Thursday, October 23, 2008
Monday, July 7, 2008
New Functionalities :
- Verified Null-Move (tested working)
- Threat Extension
- Check Extension
- Singular Reply Extension
- Recapture Extension
- Pawn Push Extension
- Late Move Reduction (Thanks Dany!)
- Futility Pruning
- Extended Futility Pruning
- UCI command "go movetime xxxx", making possible to use Prédateur
with "x seconds per move" time ratings
- UCI command "go depth x", making possible to use Prédateur with
"search up to x plies" types "time" ratings
- Small tuning of the evaluation function.
(Hopefully) corrected bugs :
- Gigantic bug that made Prédateur play its last analyzed move before
the end of time instead of its best move found (as a result,
Prédateur was nearly playing randomly when in lack of time).
- Big bug in the hash tables : Prédateur did not take into account the
side to move when storing/retrieving positions in the hash.
- Small bug in the null-move that made it a R3 NM instead of a verified R3 NM.
- Various other unlisted small bugs.
Wednesday, June 25, 2008
The last release had a serious bug that prevented Prédateur from checkmating its opponents or see the checkmates. Its strength was thus severely severed. I'm sorry for those of you who bothered testing it. I took more time to test this one in depth before releasing it.
This is actually not a bugfix version only. Here is a list of the changes :
- added a special time manager to handle 1) games with no time increment 2) grumpy testers
- fixed an horrible bug in the checkmate handling
- a first try with null-move (verified null-move)
- total hash default size reduced to 64Mb (48 main + 16 quiesce). You can change those default sizes in the uci options.
Saturday, June 21, 2008
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
- 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
Monday, May 19, 2008
I now decided to release the last fully working version of Prédateur (that is, with no known bugs).
Amongst the improvements since v0.1.1 :
- - transposition tables
- many speedups
- checkmate bug corrected : Prédateur should now always give the mate when there's one in range, and try to escape any checkmate menace it detects
- more accurate info line
- Evaluation function deeply modified, with many new euristics (wich might make it play even worse, hehe ;-) )
- alpha beta move ordering improved.
I don't have the sources of this very specific version anymore, as the last sources I have for this Prédateur "classic" version are the ones for v0.1.3b4, which sadly has a bad bug making Prédateur selects bad variations from time to time (but even once in a game is enough to lose the game).
This version is untuched since nearly two months, as I'm in the process of rewriting Prédateur from scratch using bitboards.