# Search Instability

## Without this, life would be fun

Search instability is when you search a position twice and get contradictory values.  For instance, you could search a position and get a return value of 8, and search it again and get a return value of 10.

Search instability is something that happens when you try to write a program that is strong, as opposed to one that is "correct" and weak.  There are many causes of instability, and I will discuss how various search enhancements can lead to instability, when I discuss those enhancements.  A few other search techniques must take into account the possibility of instability.

You can never assume that you'll get the same value back when you search a position twice.

Fact is, a lot of the things that make a chess program fast or strong do sleazy things that result in searches returning slightly different values when called for a second time, and if you aren't expecting the values you get, you can crash or have a bug that might make your program play a dumb move.

Some chess programmers can't handle the idea of search instability, and they are willing to let very good search techniques go in order to avoid it, or in order to think that they are avoiding it.

I wish it was possible to get rid of it completely, but as long as certain very basic techniques are used, it will be a problem.  I think that the solution is to defend against crashes and bad behavior, then try to put it out of your mind.

If you are completely confused now, and want to see an example of how instability could happen, check out the article on hashing.

 
Send mail to brucemo@seanet.com with questions or comments about this web site.
Copyright © 2001 Bruce Moreland
Last modified: 01/24/03
