Saturday, June 21, 2008

Prédateur 0.1.4 escaped!

Beware! The latest Prédateur just escaped and seemed to be in a playfull mood last time I met him...

This update is quite a major one. Maybe not in the playing strength (test will tell) but certainly from a user point of view. The code has been seriously cleaned up too and made ready for future improvements. I decided to postpone its translation to bitboards, as I could triple its speed by improving the current move generator. Here comes a summary of changes and improvements :

New functionalities :
- takeback implemented
- Prédateur now polls the console during its search and reacts to "stop" and "quit"
- Prédateur now handles FEN strings, though only allowing legal positions (Predateur can thus now be used as an analyse tool)
- UCI options uci Main_Hash added, allowing the user to set the main hash table size, and the uci option Quiesce_Hash that does the same for the quiescence search hash table
- Search extension for forced moves (that way Prédateur sometimes find deeper mate sequences)
- Algorythm to checkmate the naked king.
- perft tests implemented : Prédateur passes it successfully for all the test positions I tried (command : "perft x", x being the depth)
- a readme file
Modifications :
- The quiescence search hash table is back (small speed improvement)
- Evaluation function modified and speeded up :
-> penalty for isolated pawns
-> towers on (semi-)opened columns
-> pieces-square tables
-> attempt to develope minor pieces in the opening
- Check test and move generator partly rewrote.
Result : >+100% nps compared with Prédateur v0.1.3b2!
- Moves lists now sorted with quicksort instead of bubble sort. (+15% nps!)
- Better move ordering (Prédateur plays around 1.1 moves out of 30!)
- Time use slightly improved (?)
Corrected bugs :
- Yet another mate bug fixing attempt (the ultimate one?)
- bugs removed from the Restaure() function (castle flags might got lost)
- Another big bug eradicated from the Restaure() routine : Non initialized to zero, it made Prédateur compute lots of useless stuff.
- perft allowed me to correct several bugs :
-> the check test only took into account original knights, not pawns turned into knights - fixed
-> en passant capture broken - fixed


Anonymous said...


sur la 6ieme position de bt2630.epd (8/6B1/p5p1/Pp4kp/1P5r/5P1Q/4q1PK/8 w - - 0 32 ) predateur donne cette pv à la profondeur 8
FEN: 1k1r4/1pp4p/2n5/P6R/2R1p1r1/2P2p2/1PP2B1P/4K3 b - - 0 1

Predateur v0.1.4 final:
7/18 00:10 4.151.244 388.438 +0,76 e3 Rxg4 Rd1+ Kxd1
8/18 00:22 8.132.488 366.031 +0,76 e3 Rxg4 Rd1+ Rxh7 exf2+ Kxf2 Kxf3 Ne5+

Bien que les premiers coups soient justes (e3 est le coup gagnant), le coup Rxh7 est illégal, le roi blanc est en echec...

Il me semble qu'il y a d'autres problemes, comme l'evaluation bizare de certaines positions (position 19 avec un score de +4 alors que le materiel est egal).


JuLieN said...

Merci pour cette info :) Encore beaucoup beaucoup de travail...

Kristina said...


Julien, Kicki´s here :)

My Goodness, I´m so impressed! Don´t know what to say... feel like saying congratulations (it might not be the right word for it but anyways)!

These chess-words and all is a bit overkill for me... perhaps one day I could learn some of it :)

Take care J!

Kram och godnatt/