Gene Lindsay wrote:Ed, By the way I have WCC Plat. and when it came out I think it was the best at that time. Your copy of WCC that you have continued improving maybe as good as cake & kingsrow, you are probably the only one who knows. The last time I talked to Gil he told me he would not work on WCC again. I still use WCC along with cake & kingsrow to analyze positions, but nemisis is to slow for me.
Gene Lindsay
Based on new information from Ed Gilbert, I would have to say Kingsrow is better than WCC overall. But remember, when WCC was
first playing checkers in tournaments (as "Checkers Experimental") it was getting about 5,000 nodes per second and rarely completing an 11-ply search! Recall also that Gil's 1990 version of the program had
no databases and the 1992 version had a 4-piece perfect play database. That's it!
So, the type of knowledge it employed "bridged the gap". It had to get into strong positions since it did not have the ability to search very deeply. This type of "knowledge" is no longer needed. Deeper searches uncover what WCC tries to do intelligently.
By the way, Gil's checkers program did play a 4-game match against Marion Tinsley in 1992. It had 3 draws, and lost the 4th game. Marion lead it into an 8-piece loss. Current analysis shows the 4x4 ending had only one move to win for 3 moves in a row, and Marion made them correctly each time. So clearly Marion had his own 8-piece database in his head.
As I look over the WCC code, I see part of the evaluation function written by Gil, and part written by me. I just spoke with Gil tonight on the phone. It's funny how much we both forget! The best thing to do now is just re-write another program from scratch. I already started this, and I am calling it
Only Perfect Checkers.
I decided to completely redo the database format for
OPC. WCC Platinum has a run-time probed database of win-loss-draw positions, just like everyone else, and a perfect-play database, which is only read off of the disk. The perfect play database announce "Win in 253", but only once you entered that position. The run-time database is what is actually used as the program searches.
Well, I decided to combine the two into one database, PLUS add information about how hard it is for a draw to be achieved. Here is how the one king vs. one king database would look:
http://www.gothicchess.com/checkers/1K0C_1K0C.txtThat is all 992 positions drawn as a text file, so don't click it unless you have an internet connection that is fast.
But if you can look at it, you can see the "theoretical value" of a position (win loss draw) is also close to the "qualitative values" -- how many moves would the win/loss require, and how hard is it to draw the position?
The problem is, this takes up a great deal of RAM. The good news is, a distance to win up to and including 511 plies can be stored using only 1 byte.
OPC will be the smartest dumb program out there. By that I mean it will probe perfect-play databases in RAM, making it very intelligent. It will have no other terms in its evaluation function, making it extremely dumb.
While currently technology does not exist to make this the best program in the world (the databases are too far away to effect the play in the opening of the game, and programs are too slow to search that far ahead), at one point in time, this will no longer be the case.
OPC will not seek to enter a position because it can inflict a deadly cramping formation, nor will it be able to win a complex ending due to strangling the mobility of your kings. It will have
NO knowledge of such things.
It will enter won positions because they are going to be impossible to avoid, and it will announce the distance to the end of the game as it gets ever closer. If the position is a draw, it will place the opponent in a position with the fewest chances to retain the draw, move after move after move.
In 2006, this won't achieve much. In 2010, when the 10-piece perfect play database will be finished, computers will be faster, and this will make a big difference. In 2020, with 512 Terabytes of RAM and lightning fast processors, it will finally be as close to "perfect" as possible, with play that will be better than any hand-crafted evaluation function.