Chess Wizard

From Chessprogramming wiki
Jump to: navigation, search

Home * Engines * Chess Wizard

Chess Wizard,
a private chess engine by Frédéric Louguet, competing in various French Computer Chess Championships and Massy Programmers Tournaments, winning the FCCC 1998, FCCC 2002 and FCCC 2003 [3], and Massy 2004 [4].

Photos

Fccc2002-06.jpg

Chess Wizard vs The Crazy Bishop, Frédéric Louguet, Rémi Coulom, FCCC 2002 [5]

Description

1996

from a rgcc post by Frédéric Louguet in 1996 [6]:

Chess Wizard is a highly selective program, with a lot of knowledge in the eval function. It uses the bitmap approach, like Crafty and Chess Guru. However, it is very speculative in its evaluation and has a lot of special algorithms regarding space control.
It is quite slow compared to a lot of other programs (6000-10000 n/s on Pentium Pro 200), but I think it is not too "stupid" (that is, for a chess program :) Chess Wizard is two years old now, but the French Championship was his first official tournament.  
...
Wizard uses different extensions at different time controls, and his eval parameters change also with the time control (more agressive in sudden death). It uses an alpha-beta, and heavily prune forward by evaluating the position at each node in the tree.  
...
Since Wizard plays reasonably well positionally, I will concentrate on its tactical abilities for a few months. I was wondering what recapture extensions is considered to be optimal by other programmers. This problem is not simple at all. I am considering for now recapture extensions of equal material on the same square, plus quality sacs, plus exchanges around either king. I do not use fractional depth extensions, since I have not seen great benefits from them. 

2002

from a CCC post by Frédéric Louguet in 2002 [7]:

The first time Chess Wizard played a real game of chess was in 1994. I worked a lot in 1994/1995/1996, and in 1996 it won the french championship with Chess Guru. I read a lot of publications, studied some source code (Turbo Chess in Turbo Pascal, GNU, later Crafty), tried a thousand ideas that did not work, found a few that really worked...
I tried the bitboard approach very early (1995) because of the possibilities regarding evaluation. I always wanted Wizard to have a good evaluation, and a lot of complex things were easier to implement with bitboards. I learned some bitboard tricks from Crafty (in the 9.x to 10. versions I think) that I had not thought about before. But Chess Wizard is not entirely bitboard-based, it's more a hybrid approach.
I have two problems : my opening book is not very good, and I don't seem to find a way to make forward pruning really work. I tried 6723 ideas, a few times I thought I had found the solution, but everytime it was a false impression. Maybe I am forward-pruning challenged. I use null move (R=4 very far, then R=3, then R=2), I recently removed all checks from the quiescence search. The strength of Chess Wizard is based on two things : good evaluation, and search extensions. I use many threat extensions with small increments (2/16 of a ply), strange out of checks extensions, and so on. I tried singular extensions too, but with bad results.
When Wizard detects some patterns in the position, it simply tones down, and sometimes even shuts down completely, entire parts of the evaluation function to concentrate on the parameters that really counts (so other parameters don't get in the way).
But I really would like to find super-efficient forward pruning techniques, like those used in the top commercial programs. For the moment, I compensate with extensions. Maybe it is not possible to do both. Maybe it is the same thing, from a certain point of view.
But I have learned a few important things :
  1. You must never dismiss some thing that doesn't work now. Maybe in a year from now, It will work.
  2. You must never assume that something that works in someone else program wil work in your program.
  3. Like Christophe Théron rightly says, you must believe in statistics. Your testing methodology must be extremely well thought out.
  4. If you hear someone say "this algorithm sucks", or "it doesn't work", don't forget to add "for me" to the sentence. You must try it for yourself.
  5. Sometimes, you should completely leave the world of chess programming (even for one or two weeks). Some ideas have a way of being found only when you don't think about them !

See also

Forum Posts

External Links

References

Up one level