Articoli con tag Scacchi
Naraku 1.3 bugged
0Naraku 1.3 is bugged. It stop responding on Chessbase and Acquarium GUI. At this moment, it only work on Arena.
I want to thank Werner Schule, who discovered this bug (related to uci implementation) and help me finding a solution. I’ve identified 2 other bugs, in the evaluation and in the futility pruning algorithm, that also crash the engine in non-Arena GUI. I rewrote part of the functions that receive and send UCI commands, and now I’m working to correct the other bugs. In this week I release a new version.
Naraku 1.3
9I’ve released a new version of my engine. This version adds many new features:
- More aggressive pruning and better move ordering
- Engine now dinamically select optimum futility parameters based on depth and turns of game, but it is still not perfect tuned
- Late move reduction
- Better PGO compile (engine slighty faster)
- Better evaluation function
- Bishop outpost
Naraku logo by Dusan Stamenkovic
Now I’m making internal tests based on H.Schnapp 220-suite, with 40/4 match against various engine (Fruit 2.1, Amyan 1.72, Rotor 0.5, Aristarch 4.50, Ufim 8.02, AnMon 5.7 and Naraku 1.2) as used by CEGT. After over 10000 games with various revisions of the engine, I estimate Naraku 1.3 with a rating of 2613 +- 14 elo points (using CEGT rating for the other engines).
Naraku is actually competing on Chesswar.
Due to work, that absorbs all my energies, I have to postpone personalities in the engine to the next version.
Naraku chess engine on CEGT!!!
0Naraku 1.2 has been added to the prestigious CEGT:
http://www.husvankempen.de/nunn/rating.htm
It is in position 575, with a rating of 2574 elo points (all version rating list) and 158 in single version rating list! It seems that I have overestimated a bit his strength but it is a very good result
Naraku 1.2
0I’ve released a new version of my engine. This version adds many new features:
- Adaptive Deep Razoring
- Futility Pruning
- Code cleanup and optimization, about 1% faster when searching
- SSE1 compile (to support old CPU)
- Logo by Dusan Stamenkovic
By my internal tests, this new version is 20-25 elo points stronger than Naraku 1.12 on long time control. So Naraku could be rated approx 2745 elo.
I removed Inuyasha and Shippo, because in the next releases I’ll add some options to setup the engine strength by choosing some personalities.
Naraku Chess Engine
28Naraku is a free strong UCI engine that I realized in my spare time. It uses many of the most diffuse algorithms used in modern chess engines: alpha-beta and null move pruning, bitboard and so on. It is in an early stage of development but already has opening book support and ponder mode. It’s written in C++ and it is extremely fast (about 1-1.5 MNodes/s on a single CPU). My goal is to create a very strong free engine, with many personalities of various strength. Naraku must be used with a Chess GUI, like Arena, free to download and use.
Terms of use
Naraku can be freely copied, used, distribuited and included in other programs (like chess gui). It is freeware but closed source.
Features list:
Bitboards
Alpha-beta pruning
Null move pruning
Iterative deepening
Quiescience Search
Futility pruning
Late move reductions
Hash up to 4096MB
Ponder
Difficulty levels
Download: Naraku 1.4 (32 bit Windows only)
Change log and news
Naraku 1.4
- 80-90 elo points better than Naraku 1.31 (estimated)
- Tuned a lot of parameters
- Better positional evaluation, more like a human game
- Better endgame evaluation
- Bitboard rewritten and much more efficient, similar to the engines of the ippolit series or gull
- Some moves inserted into the engine as lookup tables, a sort of small book inside the engine. Currently it not give an advantage in terms of elo (it’s only a test), but I am convinced that in next versions there will be a considerable improvement
- More efficient time management
- Rewritten input / output interface
- Deep razoring REMOVED. It gave a lot of problem in long time matches.
- Difficulty levels: Currently you can set from 850 to about 2500 elo in a chess interface that support UCI_EloLimit command (like Arena). The difficulty levels have yet to to be tuned.
Rating: 2800-2850 elo points
Naraku 1.31 (17 november 2010)
- Correct some bugs. Now Naraku works fine again with Shredder/Chessbase GUI
Rating: 2600-2630 elo points
Naraku 1.3 (11 november 2010) BUGGED, version removed
- More aggressive pruning and better move ordering
- Engine now dinamically select optimum futility parameters based on depth and turns of game, but it is still not perfect tuned
- Late move reduction
- Better PGO compile (engine slighty faster)
- Better evaluation function
- Bishop outpost
Rating: 2600-2630 elo points
Naraku 1.2 (26 september 2010)
- Adaptive Deep Razoring
- Futility Pruning
- Code cleanup and optimization, about 1% faster when searching
- SSE1 and SSE2 compile
- Logo by Dusan Stamenkovic
Rating: approssimatively 2574 elo points (as rated by CEGT)
Naraku 1.12 (27 august 2010)
Some bugs removed
Naraku 1.1 (15 august 2010)
Null move alghorithm totally rewritten, better evaluation function, better material weight
Inuyasha and Shippo 1.00 (1 august 2010)
Rating: approssimatively 600 ELO points (Inuyasha) and 850 ELO points (Shippo)
Naraku 1.01 (27 july 2010)
Code cleanup, better pieces evaluation, Hash size option fixed, book support, Knight outpost
Naraku 1.00
First version (never released)
Chess engine rating list – Classifica motori scacchistici 40/4
0Ho completato anche una classifica dei migliori motori scacchistici per partite brevi (40/4 ripetuti, ovvero 40 mosse in 4 minuti ripetute). Le impostazioni sono: 40/4′ ripetuti, ponder off, opening book fino a 10 mosse. Ho tolto i risultati dei motori a 32 bit, concentrandomi solo su quelli a 64 bit, per risparmiare tempo e partite. La classifica finale è la seguente:
Program Elo + - Games Score Av.Op. Draws
1 Houdini 1.02 x64 4CPU : 3280 11 11 1723 54.4 % 3249 57.3 %
2 IvanHoe 9.55b x64 4CPU : 3266 16 16 771 51.8 % 3254 57.5 %
3 IvanHoe 57a4 x64 4CPU : 3266 13 13 914 51.9 % 3253 66.7 %
4 Fire 1.2 x64 4CPU : 3264 17 17 702 51.8 % 3252 54.8 %
5 Deep Rybka 4 x64 4CPU TM : 3262 9 9 2908 60.6 % 3187 44.9 %
6 Fire 1.31 x64 4CPU : 3261 18 18 730 50.8 % 3255 50.7 %
7 Deep Rybka 3 x64 4CPU : 3228 11 11 2548 63.8 % 3130 40.5 %
8 Robbolito 0.09 x64 : 3227 16 16 968 46.1 % 3255 49.8 %
9 Stockfish 1.8 x64 4CPU : 3222 13 13 1581 53.4 % 3198 42.0 %
10 Stockfish 1.71JA x64 4CPU : 3199 13 13 1592 56.8 % 3152 45.1 %
11 Naum 4.2 x64 4CPU : 3154 13 13 1575 51.5 % 3144 43.1 %
12 Rybka 2.3.2a x64 4CPU : 3100 18 18 712 48.5 % 3110 47.9 %
13 Deep Shredder 12 4CPU : 3093 14 14 1464 43.8 % 3136 37.7 %
14 Critter 0.70 64bit 4CPU : 3084 19 19 673 41.5 % 3144 47.8 %
15 Deep Fritz 12 4CPU : 3080 22 22 607 36.4 % 3177 40.2 %
16 Spark 0.5 64bit 4CPU : 3067 25 25 451 41.8 % 3125 38.4 %
17 Deep Fritz 11 4CPU : 3050 18 18 825 31.9 % 3182 45.1 %
18 Zappa Mexico 2 x64 4CPU : 3013 14 14 1727 28.0 % 3177 35.2 %
19 Thinker 5.4c Inert x64 4CPU : 3005 26 27 529 26.8 % 3179 29.5 %
I pc usati sono dei quad core intel e amd: 2 quad core Q6600, 2 i7 920 2.66 ghz, 1 amd phenom 2 940. Ai miei risultati ho aggiunto altri risultati reperiti in rete alle stesse impostazioni (stesso tempo e capacità computazionali). In questo modo ho ottenuto una buona base statistica che consente di valutare con una buona approssimazione la forza di ciascun motore scacchistico. I dati sono stati calcolati con elostat tramite il programma Arena 2.01 in modo che Deep Rybka 4 abbia lo stesso punteggio del test 40/40′.
Rispetto a tempi più lunghi, dove aveva prevalso Rybka 4 (seppur di pochissimo, pochi punti elo), qui la situazione è capovolta. Tutti i motori più o meno derivati o successori di Ippolit (Ivanhoe, Houdini, Fire/Firebird), si dimostrano migliori, anche se tolto Houdini, avanti di 18 punti elo, tutti gli altri hanno praticamente lo stesso punteggio di Deep Rybka 4. Anche Robbolito, che sfrutta un solo core, guadagna qualcosa rispetto alla precedente classifica. Ciò lascia supporre che a tempi ancora più lunghi, o con più core (6-8 o veri e propri cluster), Deep Rybka 4 abbia ancora del margine, un aspetto da non sottovalutare nell’analisi delle partite. Il simbolo TM accanto a Deep Rybka 4 sta a significare che si sono adottati tempi diversi da quelli standard; più precisamente si sono adottati Normal move time=100 e Max move time=150, che sembra diano migliori risultati su partite brevi.
Chess engine rating list – Classifica motori scacchistici
0Dopo mesi e mesi di test, sono riuscito a calcolare una classifica dei motori scacchistici, commerciali, free o open source. Riporto qui i risultati, ottenuti con diversi PC: Core 2 Quad Q6600 2.4ghz, i7 920 2.66 ghz, 40/40 ripetuti, ponder off, general book (massimo di 10 mosse). Ai miei risultati ho aggiunto tutti gli altri risultati trovati in rete per tempi analoghi e hardware simile (stesso processore o dotato di velocità equivalente).
I risultati, per partite Long Term, sono i seguenti:
Program Elo + - Games Score Av.Op. Draws
1 Deep Rybka 4 x64 4CPU : 3262 11 11 1901 60.4 % 3189 52.9 %
2 Houdini 1.02 x64 4CPU : 3257 14 14 822 52.6 % 3239 65.0 %
3 IvanHoe 9.55b.x64 : 3254 14 14 674 51.7 % 3243 72.0 %
4 IvanHoe 57a4.x64 : 3247 17 17 531 50.8 % 3241 65.5 %
5 Fire 1.31 x64 4 CPU : 3242 21 21 486 49.6 % 3245 53.1 %
6 Fire 1.2 x64 4CPU : 3242 21 21 483 49.6 % 3245 53.2 %
7 Deep Rybka 3 x64 4CPU : 3218 15 15 1000 58.1 % 3161 52.7 %
8 Stockfish 1.8 x64 4CPU : 3212 20 20 550 55.5 % 3174 51.3 %
9 Robbolito 0.09 x64 : 3210 14 14 1098 45.6 % 3241 54.7 %
10 Stockfish 1.7.1 64-bit 4CPU : 3206 16 16 813 56.2 % 3163 54.4 %
11 Naum 4.2 64-bit 4CPU : 3154 21 21 518 43.8 % 3197 52.1 %
12 Deep Shredder 12 64-bit 4CPU : 3103 21 21 620 38.3 % 3186 40.2 %
13 Deep Fritz 12 4CPU : 3088 35 36 196 35.7 % 3190 46.9 %
14 Deep Fritz 11 4CPU : 3077 26 26 345 39.4 % 3152 49.3 %
15 Critter 0.70 x64 4CPU : 3073 46 48 102 33.3 % 3193 51.0 %
16 Rybka 2.3.2a 64-bit 4CPU : 3063 39 40 184 31.5 % 3198 41.3 %
17 Zappa Mexico 2 64-bit 4CPU : 3046 23 23 446 34.5 % 3157 48.4 %
18 Spark 0.5 64-bit 4CPU : 3021 53 57 79 29.1 % 3176 48.1 %
19 Thinker 5.4C Inert 64-bit 4CPU : 3004 39 40 202 31.2 % 3142 36.6 %
Ho deciso di includere nei test anche i più famosi motori scacchistici derivati da “Ippolit”, che risultano esclusi da tutti i maggiori siti di rating a causa delle dubbie origini (sono sospettati di essere dei cloni illegali di Rybka 3). Mi è sembrato comunque corretto includerli per mostrare il loro effettivo livello di forza. Deep Rybka 4 si conferma ancora il migliore motore scacchistico, praticamente alla pari con Houdini (considerato da tutti il migliore a 32 bit e a partite di tipo blitz, e in un secondo test che sto ultimando i risultati lo stanno per ora dimostrando) e dal resto dei motori derivati da Ippolit. Anche l’ultima versione di Ivanhoe su cui ho potuto mettere mano, la 55b, si dimostra estremamente forte. Interessante notare la voragine di punti ELO che si verifica dopo le versioni di Stockfish, ben 60 punti elo, un abisso.
Nota: in classifica tutti i motori sfruttano 4 CPU, tranne Robbolito 0.09, in pratica la versione single core di IvanHoe. Nonostante ciò si è difeso molto bene, dato che è praticamente alla pari con Rybka 3 e Stockfish che di core ne usano ben 4!
Sto ultimando anche una classifica che tenga conto di qualsiasi tipo di motore (32 o 64 bit), per tempi 40/4, che pubblicherò a breve.