Copyright © 2000, 2001, 2002, 2003, 2004, 2008, 2009, 2010, 2011 ROBERT Nicolas
Novembre 2011
Table des matières
Liste des tableaux
BSC est un programme d'échecs implanté de façon classique (en C) et de force moyenne. Ses premières versions sont fortement inspirées du programme TSCP (Tom Kerrigan Simple Chess Program). L'échiquier est représenté par deux tableaux de 64 cases, un déterminant la couleur de la pièce (NOIR, BLANC et VIDE), l'autre le type de pièce (ROI, DAME ... VIDE). Le déplacement des pièces est validé par des mailbox. La force du programme est estimée à environ 1900/2100 ELO sur un PII450 (100000 positions/sec analysées en moyenne). Selon mon analyse, le programme n'est pas brillant lors de l'ouverture du jeu: en effet, les lignes de la bibliothèque d'ouverture ne sont pas les meilleurs et sont choisies aléatoirement (pas de score ou de statistiques liés à l'ouverture choisie) Cependant, il fonctionne correctement avec l'interface Arena et peu utiliser des bibliothèques d'ouvertures meilleurs intégrées dans Arena (ex. Frank Quisinsky Opening Book). En milieu de partie, le programme joue de façon correcte et peut trouver des combinaisons gagnantes intéressantes. Son jeu est globalement intéressant et convient au joueurs de club intermediaire. En fin de partie, il est assez fort et utilise les tables de fin partie 4 ou 5 pions.
Les fonctions razoring et futility pruning désactivé (no ponder, 16MB Hash, 512kB Hash Pawn). Les tests sont réalisés sur un athlon XP 2400 avec Arena.
1 b0n0 Simple Chess 3.0 1700 101101101110111010110½1111½011 21.0/30 +147 2 Tscp 1700 010010010001000101001½0000½100 9.0/30 -147 Estimation min: ~ 1800 Elo
Arena book - 3.3 without LMR and 3.4/3.5 with LMR (64-2 MB hash, dual-core ponder on) 1: b0n0 Simple Chess 3.4 23,0/40 ········ 00==0010 00====11 01101=11 1==1==01 1=11==11 430,00 2: b0n0 Simple Chess 3.42 22,0/40 11==1101 ········ 0111==00 ==00==0= ==1=0=== 01=10111 429,00 3: b0n0 Simple Chess 3.5 22,0/40 11====00 1000==11 ········ 1=10010= 0110==== 11=0111= 422,00 4: Faile 21,0/40 10010=00 ==11==1= 0=01101= ········ 1=0111=1 000=101= 413,50 5: b0n0 Simple Chess 3.4a 17,0/40 0==0==10 ==0=1=== 1001==== 0=1000=0 ········ 01011==0 347,00 6: b0n0 Simple Chess 3.3 15,0/40 0=00==00 10=01000 00=1000= 111=010= 10100==1 ········ 306,50 b0n0 Simple Chess 3.5 - b0n0 Simple Chess 3.3 : 6,0/8 5-1-2 (11=0111=) 75% +191 b0n0 Simple Chess 3.5 - b0n0 Simple Chess 3.4 : 4,0/8 2-2-4 (11====00) 50% ±0 b0n0 Simple Chess 3.5 - b0n0 Simple Chess 3.42 : 4,0/8 3-3-2 (1000==11) 50% ±0 b0n0 Simple Chess 3.5 - b0n0 Simple Chess 3.4a : 4,0/8 2-2-4 (0110====) 50% ±0 b0n0 Simple Chess 3.5 - Faile : 4,0/8 3-3-2 (1=10010=) 50% ±0 => BSC 3.5 est 100 ELO plus fort BSC 3.3 (d'après bayeselo) BSC 3.5 est du même niveau que la version 3.4 BSC 3.5 est selectif dans sa recherche et plus rapide en fin de partie que les versions 3.4 (LMR) BSC 3.4a et 3.4 sont peu selectifs dans leur recherche (LMR) BSC 3.42 est selectif dans sa recherche (LMR) Arena book - 3.3 without LMR and 3.42 with LMR (64-2 MB hash, dual-core ponder on) -----------------b0n0 Simple Chess 3.3----------------- b0n0 Simple Chess 3.3 - b0n0 Simple Chess 3.4 : 8,5/26 4-13-9 (=0==10=00=0==0=0001000110=) 33% -123 -----------------b0n0 Simple Chess 3.4----------------- b0n0 Simple Chess 3.4 - b0n0 Simple Chess 3.3 : 17,5/26 13-4-9 (=1==01=11=1==1=1110111001=) 67% +123 Arena book - 3.3 without LMR and 3.4 with LMR (64-2 MB hash) -----------------b0n0 Simple Chess 3.3----------------- b0n0 Simple Chess 3.3 - b0n0 Simple Chess 3.4 : 4,0/15 2-9-4 (0000=011000=0==) 27% -173 -----------------b0n0 Simple Chess 3.4----------------- b0n0 Simple Chess 3.4 - b0n0 Simple Chess 3.3 : 11,0/15 9-2-4 (1111=100111=1==) 73% +173 Own book - No futility pruning - 3.3 without LMR and 3.4 with LMR (64-2 MB hash) -----------------b0n0 Simple Chess 3.3----------------- b0n0 Simple Chess 3.3 - b0n0 Simple Chess 3.4 : 2,5/10 1-6-3 (10=0=000=0) 25% -191 -----------------b0n0 Simple Chess 3.4----------------- b0n0 Simple Chess 3.4 - b0n0 Simple Chess 3.3 : 7,5/10 6-1-3 (01=1=111=1) 75% +191 Les fonctions razoring et futility pruning sont activées (no ponder, 16MB Hash, 512kB Hash Pawn) -----------------b0n0 Simple Chess 3.0----------------- b0n0 Simple Chess 3.0 - Tscp : 23,0/30 21-5-4 (=1011111100111=11111111110=1=0) 77% +210 -----------------Tscp----------------- Tscp - b0n0 Simple Chess 3.0 : 7,0/30 5-21-4 (=0100000011000=00000000001=0=1) 23% -210 Estimation min: ~ 1860 Elo
Les fonctions razoring, futility pruning et nullmove sont activées (no ponder, 16MB Hash, 512kB Hash Pawn)
-----------------b0n0 Simple Chess 2.8----------------- b0n0 Simple Chess 2.8 - b0n0 Simple Chess 3.2 : 23,0/66 17-37-12 (0=00=100001==0=10000000000110000000011100010111=0===1010101=100==0) 35% -108 -----------------b0n0 Simple Chess 3.2----------------- b0n0 Simple Chess 3.2 - b0n0 Simple Chess 2.8 : 43,0/66 37-17-12 (1=11=011110==1=01111111111001111111100011101000=1===0101010=011==1) 65% +108 -----------------b0n0 Simple Chess 3.1----------------- b0n0 Simple Chess 3.1 - Faile : 3,0/12 1-7-4 (0==000=001=0) 25% -191 b0n0 Simple Chess 3.1 - Tscp : 10,5/12 10-1-1 (111=11101111) 88% +346 -----------------Faile----------------- Faile - b0n0 Simple Chess 3.1 : 9,0/12 7-1-4 (1==111=110=1) 75% +191 Faile - Tscp : 10,5/12 10-1-1 (11111101=111) 88% +346 -----------------Tscp----------------- Tscp - b0n0 Simple Chess 3.1 : 1,5/12 1-10-1 (000=00010000) 13% -330 Tscp - Faile : 1,5/12 1-10-1 (00000010=000) 13% -330 Estimation min: ~ 1750 Elo Estimation max: ~ 2000 Elo
Pour comparer avec d'autres engines de sa catégorie sous winboard, voici le tableau final du tournoi blitz (1'): BSC (16 MB Hash, !mtdf, !null_move, !futility/razoring).
Exemple 1. Tournoi blitz 1 min, 84 jeux
------------------------------------------- Engine Score 1 2 3 4 5 6 7 ------------------------------------------- 1. BSC 2.0 10,0/12 ## 10 01 11 11 11 11 2. UFIM 1.43 8,5/12 01 ## 00 11 1= 11 11 3. TSCP 1.73 7,5/12 10 11 ## 00 10 =1 11 4. zephyr 0.61 6,5/12 00 00 11 ## 01 =1 11 5. UFIM 2.00 6,5/12 00 0= 01 10 ## 11 11 6. Adam 1.1 3,0/12 00 00 =0 =0 00 ## 11 7. List 4.61 0,0/12 00 00 00 00 00 00 ##
Exemple 2. Elo rating
Rating type: GLICKO Initial rating: 2000 Initial RD: 350 ----------------------------------------------------------------------------------------------- Place Engine Rating RD Games Wins Draws Points Score % ----------------------------------------------------------------------------------------------- 1. BSC 2318 134,1 12 10 0 10,0 83,33 2. UFIM 2100 96,6 24 14 2 15,0 62,50 3. zephyr 2068 130,9 12 6 1 6,5 54,17 4. TSCP 2057 128,1 12 7 1 7,5 62,50 5. Adam 1817 119,7 12 2 2 3,0 25,00 6. List 1569 167,2 12 0 0 0,0 0,00
Etant donnée les résultats, BSC est de la même catégorie d'engine qu'UFIM. Voici un tournoi blitz entre différentes version d'UFIM et BSC.
Exemple 3. Tournoi blitz 1 min, 60 jeux
----------------------------------------------------- Engine Score 1 2 3 ----------------------------------------------------- 1. BSC 2.0 15,5/20 ########## =1=111101= 11110111== 2. UFIM 1.43 8,0/20 =0=000010= ########## =011100011 3. UFIM 2.00 6,5/20 00001000== =100011100 ##########
Exemple 4. Elo Rating blitz (1min)
Rating type: GLICKO Initial rating: 2000 Initial RD: 350 ----------------------------------------------------------------------------------------------- Place Engine Rating RD Games Wins Draws Points Score % ----------------------------------------------------------------------------------------------- 1. BSC 2066 104,6 22 15 5 17,5 79,55 2. UFIM 1870 74,5 46 16 8 20,0 43,48
Les résultats au test LCTII (niveau tournoi, 10 minutes par problème)
Tableau 1. LCTII Test
2.0 | Found Time (sec) | Score (+Elo) | 2.2 | Found Time (sec) | Score (+Elo) | 3.0 (Athlon XP 2400, 16MB Hash, 512KB HASHPAWN, no selective) | Found Time (sec) | Score (+Elo) | 3.1b (Athlon XP 2400, 16MB Hash, 512KB HASHPAWN, no selective) | Found Time (sec) | 3.2 (Athlon XP 2400, 16MB Hash, 512KB HASHPAWN, no selective) | Found Time (sec) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
POS1 | 379 | 10 | POS1 | 32 | 20 | POS1 | 45 | POS1 | 61 | |||
POS2 | 32 | 20 | POS2 | 0 | 30 | POS2 | 0 | 30 | POS2 | 0 | POS2 | 0 |
POS4 | 56 | 20 | POS4 | 25 | 25 | POS4 | 29 | POS4 | 21 | |||
POS8 | 290 | 10 | ||||||||||
POS9 | 542 | 5 | ||||||||||
POS12 | 335 | 10 | ||||||||||
POS13 | 0 | 30 | POS13 | 0 | 30 | |||||||
CMB1 | 45 | 20 | CMB1 | 4 | 30 | CMB1 | 3 | CMB1 | 3 | |||
CMB2 | 248 | 10 | CMB2 | 1 | 30 | CMB2 | 8 | 30 | CMB2 | 11 | CMB2 | 9 |
CMB3 | 12 | 25 | CMB3 | 10 | 25 | CMB3 | 6 | 30 | CMB3 | 6 | CMB3 | 5 |
CMB4 | 3 | 30 | CMB4 | 2 | 30 | CMB4 | 348 | 10 | CMB4 | - | CMB4 | - |
CMB5 | 27 | 25 | CMB5 | 0 | 30 | CMB5 | 8 | 30 | CMB5 | 9 | CMB5 | 5 |
CMB6 | 341 | 10 | CMB6 | 160 | 15 | CMB6 | 113 | CMB6 | 77 | |||
CMB7 | 39 | 20 | CMB7 | 41 | 20 | CMB7 | 35 | CMB7 | 26 | |||
CMB8 | 166 | 15 | CMB8 | 17 | 25 | CMB8 | 15 | CMB8 | 13 | |||
CMB9 | 518 | 5 | CMB9 | 8 | 30 | CMB9 | 1 | 30 | CMB9 | 1 | CMB9 | 0 |
CMB10 | 120 | 15 | CMB10 | 143 | 15 | CMB10 | 105 | CMB10 | 81 | |||
FIN1 | 8 | 30 | FIN1 | 0 | 30 | FIN1 | 2 | 30 | FIN1 | 1 | FIN1 | 1 |
FIN2 | 28 | 25 | FIN2 | 0 | 30 | FIN2 | 0 | 30 | FIN2 | 0 | FIN2 | 0 |
FIN3 | 4 | 30 | FIN3 | 0 | 30 | FIN3 | 131 | 15 | FIN3 | 120 | FIN3 | 136 |
FIN4 | 13 | 25 | FIN4 | 4 | 30 | FIN4 | 242 | 10 | FIN4 | 59 | FIN4 | 50 |
FIN6 | 93 | 15 |
D'après le test LCTII, il apparaît clairement que BSC n'est pas très positionnel comme programme. Au niveau combinatoire, il se tient correctement, sachant que le programme n'est pas trop rapide. Son point fort est les fins de partie.
BSC 2.0 (PII 450 Mhz, 16 MB Hash)
POS = 75
CMB = 95
FIN = 125
Total : 1900 + 75 + 95 + 125 = 2195 ELO
BSC 2.2 (P4 1.8Ghz 16 MB Hash)
POS = 60
CMB = 230
FIN = 120
Total : 1900 + 60 + 255 + 120 = 2335 ELO
BSC 3.0 (P4 1.8Ghz 16 MB Hash)
POS = 75
CMB = 235
FIN = 85
Total : 1900 + 75 + 235 + 85 = 2295 ELO
BSC 3.5 (Solaris Sun-Fire-V240 1,5 ghz) 64-2 MB hash with LMR
POS = 20%
CMB = 72%
FIN = 41%
Total : 2355 ELO
1:d6 (00:00:30) 14 [10] 115600001 nodes 192666 nps X 2:Bd6b4 (00:00:01) 2 [11] 119300001 nodes 198833 nps X 3:Qf2xh4+ (00:00:01) 100 [11] 133200001 nodes 222000 nps 4:e5 (00:00:12) -53 [12] 117000001 nodes 195000 nps X 5:Rc8c7 (00:03:03) -27 [11] 124100001 nodes 206833 nps 6:Rd8d7 (00:00:00) 30 [10] 130000001 nodes 216666 nps 7:Nh5xg7 (00:00:01) 6 [11] 118900001 nodes 198166 nps 8:Nh4f3 (00:00:15) -23 [10] 118400001 nodes 197333 nps 9:Qa7d4 (00:04:05) 118 [10] 126600001 nodes 211000 nps X 10:Nc6xd4 (00:03:47) -20 [12] 112900001 nodes 188166 nps 11:Kg2f2 (00:02:08) 63 [11] 110600001 nodes 184333 nps 12:Rc6xc3 (00:00:24) 9 [11] 117800001 nodes 196333 nps 13:Rb8d8 (00:01:42) 61 [11] 124700001 nodes 207833 nps 14:a4 (00:00:01) 55 [10] 117000001 nodes 195000 nps 15:f6 (00:00:04) 843 [15] 139000001 nodes 231666 nps X 16:f5 (00:00:01) 89 [13] 129500001 nodes 215833 nps X 17:Bc6b7 (00:02:23) 35 [15] 124900001 nodes 208166 nps 18:h3 (00:04:01) -16 [12] 133300001 nodes 222166 nps X 19:a6 (00:03:10) 151 [12] 134500001 nodes 224166 nps X 20:f4 (00:00:58) -135 [13] 126900001 nodes 211500 nps X 21:Bd2b4 (00:03:27) 179 [10] 120400001 nodes 200666 nps X 22:Kd3e3 (00:00:04) 154 [15] 142600001 nodes 237666 nps 23:fxg5 (00:00:00) 731 [14] 140300001 nodes 233833 nps 24:Nc4xd6 (00:00:03) 425 [13] 124200006 nodes 207000 nps X 25:Qh5xh7+ (00:00:01) 9987 [9] 147700001 nodes 246166 nps X 26:Qf6f3 (00:00:16) 9991 [11] 150100001 nodes 250166 nps X 27:exf6 (00:00:23) 191 [12] 118100001 nodes 196833 nps X 28:Rh3xh7+ (00:00:02) 1204 [10] 156700014 nodes 261166 nps X 29:exf6 (00:00:48) 172 [10] 128700001 nodes 214500 nps X 30:Rc8xc3 (00:00:19) 408 [11] 130400001 nodes 217333 nps X 31:Nd5f6+ (00:00:25) 675 [9] 138900001 nodes 231500 nps X 32:Ra2xd2 (00:00:03) 0 [10] 127300001 nodes 212166 nps X 33:Bf4xh6 (00:00:47) 115 [11] 125700001 nodes 209500 nps X 34:Bc1f4 (00:00:47) -53 [11] 118600001 nodes 197666 nps 35:Nc3e2 (00:00:16) -64 [10] 118600001 nodes 197666 nps
Comparaison des heuristiques sur quelques postions de BT2630
Tableau 2. BT2630 Selective Options (Athlon XP 2400, 16MB Hash, 521KB HashPawn, 60sec)
BTXX | 3.0 (all false) Found Time in sec | 3.2 (all false) Found Time in sec | 3.0 (futility=true) | 3.0 (razor=true) | 3.0 (razor=true,futility=true) | 3.0 (nullmove=true) | 3.0 (lmr=true) |
---|---|---|---|---|---|---|---|
BT2 | 6 | 8 | 7 | 7 | 6 | 6 | 9 |
BT3 | 22 | 19 | 23 | 22 | 23 | 18 | 9 |
BT4 | 7 | 6 | X | 7 | X | 7 | 7 |
BT5 | 2 | 2 | 1 | 2 | 1 | 2 | 2 |
BT6 | 1 | 1 | 4 | 1 | 4 | 1 | 0 |
BT7 | 2 | 2 | 2 | 1 | 1 | 2 | 2 |
BT8 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
BT9 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
BT10 | 19 | 12 | 18 | 18 | 17 | 15 | 30 |
BT11 | 2 | 2 | 2 | 2 | 2 | 2 | 9 |
Les résultats sont effectués sur une station Sparc Sun-Fire-V240, bi-cpu 1,5 ghz (mais BSC n'est pas SMP). Il est accordé à BSC 3.5 600 secondes de réflexion.
Sunos 5.8 Generic_117350-51 sun4u sparc SUNW,Sun-Fire-V240 bsc.rc: HASH=64 HPAWN=2048 CHECKNODES=100000 NULLMOVE=1 MTDF=0 ABWINDOW=10 FUTILITY=1 RAZOR=1 LMR=1 EGBB=1 EGBBCACHE=4 EGBBPATH=c:/egbb/ 5MEN=0 LEARN=0 RESIGN_VALUE=-9000 bt2630.epd: 6k1/2b2p1p/ppP3p1/4p3/PP1B4/5PP1/7P/7K w - - bm Bxb6; id "test2"; 5r1k/p1q2pp1/1pb4p/n3R1NQ/7P/3B1P2/2P3P1/7K w - - bm Re6; id "test3"; 5r1k/1P4pp/3P1p2/4p3/1P5P/3q2P1/Q2b2K1/B3R3 w - - bm Qf7; id "test4"; 3B4/8/2B5/1K6/8/8/3p4/3k4 w - - bm Ka6; id "test5"; 1k1r4/1pp4p/2n5/P6R/2R1p1r1/2P2p2/1PP2B1P/4K3 b - - bm e3; id "test6"; 6k1/p3q2p/1nr3pB/8/3Q1P2/6P1/PP5P/3R2K1 b - - bm Rd6; id "test7"; 2krr3/1p4pp/p1bRpp1n/2p5/P1B1PP2/8/1PP3PP/R1K3B1 w - - bm Rxc6+; id "test8"; r5k1/pp2p1bp/6p1/n1p1P3/2qP1NP1/2PQB3/P5PP/R4K2 b - - bm g5; id "test9"; 2r3k1/1qr1b1p1/p2pPn2/nppPp3/8/1PP1B2P/P1BQ1P2/5KRR w - - bm Rxg7+; id "test10"; 1br3k1/p4p2/2p1r3/3p1b2/3Bn1p1/1P2P1Pq/P3Q1BP/2R1NRK1 b - - bm Qxh2+; id "test11"; 8/pp3k2/2p1qp2/2P5/5P2/1R2p1rp/PP2R3/4K2Q b - - bm Qe4; id "test12"; 2bq3k/2p4p/p2p4/7P/1nBPPQP1/r1p5/8/1K1R2R1 b - - bm Be6; id "test13"; 3r1rk1/1p3pnp/p3pBp1/1qPpP3/1P1P2R1/P2Q3R/6PP/6K1 w - - bm Rxh7; id "test14"; 2b1q3/p7/1p1p2kb/nPpN3p/P1P1P2P/6P1/5R1K/5Q2 w - - bm e5; id "test15"; 2krr3/pppb1ppp/3b4/3q4/3P3n/2P2N1P/PP2B1P1/R1BQ1RK1 b - - bm Nxg2; id "test16"; 4r1k1/p1qr1p2/2pb1Bp1/1p5p/3P1n1R/3B1P2/PP3PK1/2Q4R w - - bm Qxf4; id "test17"; 8/4p3/8/3P3p/P2pK3/6P1/7b/3k4 w - - bm d6; id "test18"; 3r2k1/pp4B1/6pp/PP1Np2n/2Pp1p2/3P2Pq/3QPPbP/R4RK1 b - - bm f3; id "test19"; r4rk1/5p2/1n4pQ/2p5/p5P1/P4N2/1qb1BP1P/R3R1K1 w - - bm Ra2; id "test20"; k7/8/PP1b2P1/K2Pn2P/4R3/8/6np/8 w - - bm Re1; id "test21"; rnb1k2r/pp2qppp/3p1n2/2pp2B1/1bP5/2N1P3/PP2NPPP/R2QKB1R w KQkq - bm a3; id "test22"; 8/7p/8/p4p2/5K2/Bpk3P1/4P2P/8 w - - bm g4; id "test23"; R7/3p3p/8/3P2P1/3k4/1p5p/1P1NKP1P/7q w - - bm g6; id "test24"; 8/8/3k1p2/p2BnP2/4PN2/1P2K1p1/8/5b2 b - - bm Nd3; id "test25"; 2r3k1/pbr1q2p/1p2pnp1/3p4/3P1P2/1P1BR3/PB1Q2PP/5RK1 w - - bm f5; id "test26"; 3r2k1/p2r2p1/1p1B2Pp/4PQ1P/2b1p3/P3P3/7K/8 w - - bm e6; id "test27"; rnb1k1nr/p2p1ppp/3B4/1p1N1N1P/4P1P1/3P1Q2/PqP5/R4Kb1 w kq - bm e5; id "test28"; r1b1kb1r/pp1n1ppp/2q5/2p3B1/Q1B5/2p2N2/PP3PPP/R3K2R w KQkq - bm O-O-O; id "test29"; 2k5/2p3Rp/p1pb4/1p2p3/4P3/PN1P1P2/1P2KP1r/8 w - - bm f4; id "test30"; rq2r1k1/5pp1/p7/4bNP1/1p2P2P/5Q2/PP4K1/5R1R w - - bm Nxg7; id "test1"; bsc.log: 1:Bd4xb6 (00:00:08) 394 [14] 122300001 nodes 203833 nps 2:Re5e6 (00:00:13) 291 [11] 141500001 nodes 235833 nps 3:Re1f1 (00:00:00) -64 [10] 130300001 nodes 217166 nps 4:Kb5a6 (00:00:25) 745 [13] 193300001 nodes 322166 nps 5:e3 (00:00:28) 302 [12] 125400001 nodes 209000 nps 6:Rc6d6 (00:00:01) 0 [13] 131300009 nodes 218833 nps 7:Rd6xc6+ (00:00:00) 154 [12] 125600001 nodes 209333 nps 8:g5 (00:00:00) -56 [11] 115100001 nodes 191833 nps 9:Rg1xg7+ (00:00:02) 220 [10] 124400001 nodes 207333 nps 10:Qh3xh2+ (00:00:02) 302 [11] 128700001 nodes 214500 nps 11:Qe6e4 (00:00:05) 1184 [11] 128800001 nodes 214666 nps 12:c2+ (00:00:00) 284 [9] 132900001 nodes 221500 nps 13:Rh3xh7 (00:00:02) 9987 [11] 143800001 nodes 239666 nps 14:Rf2f6+ (00:00:00) 184 [11] 124500001 nodes 207500 nps 15:Nh4xg2 (00:00:01) 60 [10] 128400001 nodes 214000 nps 16:Qc1xf4 (00:00:16) 9989 [11] 133000001 nodes 221666 nps 17:d6 (00:00:01) 0 [14] 129900001 nodes 216500 nps 18:f3 (00:01:15) -104 [11] 112500001 nodes 187500 nps 19:Ra1a2 (00:00:15) 297 [12] 131000001 nodes 218333 nps 20:g7 (00:00:00) 323 [8] 137600001 nodes 229333 nps 21:a3 (00:00:03) 28 [12] 110700001 nodes 184500 nps 22:Kf4xf5 (00:00:00) 114 [13] 142300001 nodes 237166 nps 23:g6 (00:03:38) 60 [9] 121800001 nodes 203000 nps 24:Kd6d7 (00:07:25) 144 [11] 125600001 nodes 209333 nps 25:f5 (00:00:08) 120 [11] 122400001 nodes 204000 nps 26:e6 (00:04:40) 3 [11] 149700003 nodes 249500 nps 27:Nd5c7+ (00:00:00) -298 [10] 119800001 nodes 199666 nps 28:Bc4xf7+ (00:01:06) -5 [8] 122700001 nodes 204500 nps 29:f4 (00:00:10) 14 [11] 117200001 nodes 195333 nps 30:Nf5xg7 (00:00:00) 255 [12] 128900001 nodes 214833 nps
Le temps passé total est de 4976 secondes. 4976/30=166. 2630-166=2464 ELO est le score obtenu.
Les résultats sont effectués sur une station Sparc Sun-Fire-V240, bi-cpu 1,5 ghz (mais BSC n'est pas SMP). Il est accordé à BSC 3.5 30 secondes de réflexion. Les problèmes suivants n'ont pas été résolus dans le temps imparti:
Sunos 5.8 Generic_117350-51 sun4u sparc SUNW,Sun-Fire-V240 bsc.rc: HASH=64 HPAWN=2048 CHECKNODES=100000 NULLMOVE=1 MTDF=0 ABWINDOW=10 FUTILITY=1 RAZOR=1 LMR=1 EGBB=1 EGBBCACHE=4 EGBBPATH=c:/egbb/ 5MEN=0 LEARN=0 RESIGN_VALUE=-9000 8/7p/5k2/5p2/p1p2P2/Pr1pPK2/1P1R3P/8 b - - bm Rxb2; id "WAC.002"; 2kr3r/pp1q1ppp/5n2/1Nb5/2Pp1B2/7Q/P4PPP/1R3RK1 w - - bm Nxa7+; id "WAC.071"; r4rk1/p1B1bpp1/1p2pn1p/8/2PP4/3B1P2/qP2QP1P/3R1RK1 w - - bm Ra1; id "WAC.080"; r4rk1/1p2ppbp/p2pbnp1/q7/3BPPP1/2N2B2/PPP4P/R2Q1RK1 b - - bm Bxg4; id "WAC.092"; 8/k1b5/P4p2/1Pp2p1p/K1P2P1P/8/3B4/8 w - - bm b6+; id "WAC.100"; r1q2rk1/p3bppb/3p1n1p/2nPp3/1p2P1P1/6NP/PP2QPB1/R1BNK2R b KQ - bm Nxd5; id "WAC.180"; rr4k1/p1pq2pp/Q1n1pn2/2bpp3/4P3/2PP1NN1/PP3PPP/R1B1K2R b KQ - bm Nb4; id "WAC.196"; 2r1r2k/1q3ppp/p2Rp3/2p1P3/6QB/p3P3/bP3PPP/3R2K1 w - - bm Bf6; id "WAC.222"; 2b2rk1/p1p4p/2p1p1p1/br2N1Q1/1p2q3/8/PB3PPP/3R1RK1 w - - bm Nf7; id "WAC.226"; 8/8/8/1p5r/p1p1k1pN/P2pBpP1/1P1K1P2/8 b - - bm Rxh4 b4; id "WAC.229"; 2b5/1r6/2kBp1p1/p2pP1P1/2pP4/1pP3K1/1R3P2/8 b - - bm Rb4; id "WAC.230"; 5r2/1p1RRrk1/4Qq1p/1PP3p1/8/4B3/1b3P1P/6K1 w - - bm Qxf7+ Rxf7+; id "WAC.235"; 1r3r1k/3p4/1p1Nn1R1/4Pp1q/pP3P1p/P7/5Q1P/6RK w - - bm Qe2; id "WAC.243"; 2k1r3/1p2Bq2/p2Qp3/Pb1p1p1P/2pP1P2/2P5/2P2KP1/1R6 w - - bm Rxb5; id "WAC.247"; 3r1rk1/1pb1qp1p/2p3p1/p7/P2Np2R/1P5P/1BP2PP1/3Q1BK1 w - - bm Nf5; id "WAC.256"; r2r2k1/1R2qp2/p5pp/2P5/b1PN1b2/P7/1Q3PPP/1B1R2K1 b - - bm Rab8; id "WAC.264"; 2r1k2r/2pn1pp1/1p3n1p/p3PP2/4q2B/P1P5/2Q1N1PP/R4RK1 w k - bm exf6; id "WAC.265"; r7/4b3/2p1r1k1/1p1pPp1q/1P1P1P1p/PR2NRpP/2Q3K1/8 w - - bm Nxf5; id "WAC.279";
282/300 sont résolus en 30 secondes, soit 94% du test.
Cette version fonctionne en mode console (cygwin Win32, winboard protocol), avec Winboard ou encore Arena.
Vous pouvez télécharger ce programme ici:
Pour les versions antèrieures à la 3.4, vous pouvez télécharger une autre bibliothèque d'ouverture (8000 variations, 200000 coups, tiré de l'openbook de Fritz4): BSC book Fritz4
Ce programme est protégé par les lois du Copyright, peut-être distribué à volonté mais ne doit pas être modifié sans l'accord de son auteur.
Ci-dessous la liste des améliorations dans l'ordre prioritaire
Amélioration de l'évaluation statique: clouage de pièces...
Implanter le nouveau protocole UCI. Utilisation de WB2UCI pour le moment
Mieux Gérer la représentation SAN (e4, Nxf3), plus de robustesse.
Implanter les BitBoards pour accélérer le node rate.
Implémenter l'algorithme singular extension (à la deep blue!)
Intégrer les ECO pour la bibliothèque d'ouverture. (intégré dans Arena donc est-ce vraiement utile ?)
Small optimized stable release
3.9+ is a buggy release with compilation bug. Tune some code with LMR(sliding)
Add new cygwin.dll for windows 7 compatibility
Add 64bit version
Last stable release BSC v 3.9 10/08/2010 (Windows 32 bits Cygwin) BSC v 3.9 10/08/2010 (Linux 32 bits static) BSC v 3.9 10/08/2010 (Linux 64 bits static) BSC v 3.9 10/08/2010 (Solaris 2.8 64 bits static)
fix bugs in interface and winboard protocol
use butterfly history for LMR
Internal Iterative Deepening
Adaptive nullmove reduce 3 or 2
only extension on recapture and check, 7th pawn, promote
Fix somes eval bugs and values tuning
BSC 3.8 du 20/03/2009 (Windows 32 bits Cygwin) BSC 3.8 du 18/04/2010 (Linux 32 bits static) BSC 3.8 du 18/04/2010 (Linux 64 bits static) BSC 3.8 du 18/04/2010 (Solaris 2.8 64 bits static)
LMR with history counters like v3.6, but not in endgame
fix bug in SSE
BSC 3.7+f du 20/03/2009 (Windows 32 bits Cygwin) BSC 3.7+f du 20/03/2009 (Linux 32 bits static) BSC 3.7+f du 20/03/2009 (Linux 64 bits static)
LMR with no history counters
Delta pruning with SEE
Tuning extension and singular
Recapture extension at pvnode
Adding disable book option in bsc.rc
fix bug in analyze xboard command
Improve mobility evaluation for minor/major pieces (not in endgame)
Fix bug in rook 7th evaluation
BSC 3.6 du 20/03/2009 (Windows 32 bits Cygwin) BSC 3.6 du 20/03/2009 (Linux 32 bits static) BSC 3.6 du 20/03/2009 (Linux 64 bits static)
Improve LMR with only when depth>=4, memory counters of fail high/low and fix bug
Tuning evaluation: new bonus and penality
Tuning extension on castle and captures
Improve function aspiration search
Improve futility pruning search: more selective
Delta pruning in quiesce search
BSC 3.5 du 14/02/2009 (Windows 32 bits Cygwin) BSC 3.5 du 14/02/2009 (Linux 32 bits static) BSC 3.5 du 14/02/2009 (Linux 64 bits static) BSC 3.5 du 14/02/2009 (Solaris 2.8 64 bits static)
null move with 3 ply/2 ply
LMR without move History counters: only no extension, no capture
Pawn extension at 7th rank
Reduce capture extension
Max depth 40 half-ply
Singular extension with check
Tuning evaluation on passed pawn
BSC 3.42 du 11/02/2009 (Windows 32 bits Cygwin) BSC 3.42 du 11/02/2009 (Linux 32 bits static) BSC 3.42 du 11/02/2009 (Linux 64 bits static) BSC 3.42 du 11/02/2009 (Solaris 2.8 64 bits static)
improve check extension
LMR without move History counters: only no extension, no capture, no endgame
Portage Solaris
BSC 3.4a du 09/02/2009 (Windows 32 bits Cygwin) BSC 3.4a du 09/02/2009 (Linux 32 bits static) BSC 3.4a du 09/02/2009 (Linux 64 bits static)
Fix some horizon effect with null move
BSC v 3.4 31/01/2009 (Windows 32 bits Cygwin) BSC v 3.4 31/01/2009 (Linux 32 bits static) BSC v 3.4 31/01/2009 (Linux 64 bits static)
Improve Late Move Reduction: history cut, research. BSC is little more stronger with LMR, perhaps 50-100 ELO
Tunning low mobility extension
Implement new opening book (same as prodeo)
Fix bug in test command with fscanf
Castle extension search
Fix hashing bug with null move
BSC v 3.3 16/05/2008 (Windows 32 Cygwin)
BSC v 3.3 16/05/2008 (Linux static)
Improve Late Move Reduction
Fix search extension
no check extension in 4-5men endgame
BSC v 3.2 23/04/2008 (Windows 32 Cygwin)
Stabilisation de la 3.1b
Improve search extension
nullmove, razoring and futility disable in endgame (no short path to win with tablebase)
Fix bug in exit with learning (segmentation fault)
BSC v 3.1b 07/04/2008 (Windows 32 Cygwin)
Support for tablebases Scorpio (EGBB) 4 or 5 MEN
Support Learning
Support for analyzing in winboard/arena (.)
Support FEN castle
Reduce check extension: successive check or capture check
BSC v 3.0 30/03/2003 (Linux static)
New evaluation
Late Move reduction implantation
New futility prunning at pre-pre and pre frontier node
Fix null move with 2 ply reduce (3 before)
New depth extend heuristic in alpha/beta
Fix bug in aspiration search with draw (no max depth)
Fix bug in null move search
New function (faster) for draw repetition moves
Add winboard adaptater bsc.eng for Chessbase
Fix parameters in extension search, pawn hash for pawn struct, logo and wb2uci in package
Méthode implantée : Pawn hashing
2.2 du 23/10/2002
Fix bugs in evaluation, fix bug in aspiration search (PV not follow), optimisation du mode blitz, optimisation de code
2.1 du 18/10/2002
Heuristique de permuation de coups, Nouveau time control, Nouvelle évaluation statique (fix bug ? for castle move), Recapture extension, Nouvelle implentation des futility (fix bug in mat balance), Fractionnal Depth extension, nouvelle implantation de la fonction is_attacked
Méthodes implantées : Fractionnal Depth, Recapture extension
2.0 du 20/07/2002
12/10/2002: Fix bug in time control
Mat Proof-search (recherche de mat + rapide), futility+razoring fix bug, heuristic extension pour la recherche de sacrifice de pieces majeures, extension pour les promotions, nouvelle fonction d'évaluation avec mobilitée, mode blitz
Méthodes implantées : + proof search, , blitz search (faster algorithm): NegaMax simplifié pour recherche plus rapide!
1.9 du 05/06/2002
Nouvelle Implantation des Hashtables
Utilisation Futility Prunning dans le fichier de configuration
Fixe bug dans root_search, posant des problèmes à mtdf
nouveau fichier pour la bibliothèque d'ouverture, basé sur l'openbook de Fritz4, refixe les limites de la bibliothèque d'ouverture (5000 lignes à 10000 lignes)
Gestion de la notation SAN en mode console
Méthodes implantées actuellement: NegaMax (null window), aspiration search, root_search, mtdf, transposition table, iterative deepening, move ordering, PV search, Killer heuristic (2 best), History heuristic, null move heuristic, futility heuristic, quiesce search, some selective extensions, ponder move, opening book, fifty move
1.8 du début 2002
aspiration search, futility pruning
Méthodes implantées : aspiration search, futiliy
1.5 du 07/05/2001
mtdf, null move heuristic, hashtables affinées
Méthodes implantées : mtdf, null move heuristic
1.2 du 18/02/2001
NegaMax with null-win, root_search, hashtables affinées, fichier de configuration « bsc.rc »
Méthodes implantées : NegaMax with null-win, root_search
1.1 du 16/02/2001
Implantation des hashtables, de la bibliothèque d'ouverture, du pondering, du check-node en partant de l'implantation de TSCP
Méthodes implantées : simple NegaMax, transposition table, iterative deepening, move ordering, PV search, History heuristic, quiesce search, some selective extensions, ponder move, opening book, fifty move
La distribution BSC comprend les fichiers suivants:
bsc.exe : l'executable
bsc.rc : le fichier de configuration de BSC
bsc.init : le fichier de configuration de BSC pour Winboard
bsc.lrn : le fichier d'apprentissage de BSC
cygwin1.dll : la librairie dynamique Cygwin 32
bsc.opn : le fichier de la bibliothèque d'ouverture de BSC (3558 lignes)
bsc.bmp : logo de BSC
bsc.pdf : ce document au format PDF
lct2.epd, bt2630.epd et wac.epd : deux fichiers de tests de positions (Win At Chess, BT2630 et LCT2)
wb2uci.eng, wb2uci.exe : adaptateur Winboard vers UCI
Exemple 5. exemple de configuration
HASH=64 (les tables de transpositions sont activées, 64 Mo, 0 pour ne pas avoir d'hashing) HPAWN=2048 (2048 Ko pour le hashing sur la structure de pions) CHECKNODES=300000 (on vérifie que le temps n'est pas dépassé toutes les 300000 positions analysées) NULLMOVE=1 (null-move heuristic activée) MTDF=0 (mtdf désactivé) ABWINDOW=25 (alpha/beta aspiration search ou mtdf window de 0.25 point matériel, pion=1) FUTILITY=1 (futility activé: pre et pre-pre frontier node) RAZOR=1 (razoring activé: pre-pre-pre frontier node) DELTA=200 (delta pruning a quiesce search: la marge est ici de 2 pions, mettre à 0 pour désactiver) LMR=1 (Late Move Reduction activé) EGBB=1 (Tablebase activée) EGBBCACHE=4 (Cache de Tablebase) EGBBPATH=c:/egbb/ (Chemin des tablebases Scorpio egbb) 5MEN=0 (utilise 5MEN => 400 Mo of RAM) LEARN=0 (apprentissage desactivé) RESIGN_VALUE=-9000 (valeur de résignation, ici mat) BOOK=1 (utilise l'openbook, 0 pour désactiver)
Les options de reduction de recherche Futility prunning, Razoring, Delta Pruning et Nullmove sont activées par défault. L'autre option selective de recherche LMR peut améliorer sensiblement le niveau du programme ou l'analyse de certaines positions. Pour mieux comprendre les différents options que supporte BSC et que vous pouvez activer, lisez les articles suivants (en Anglais uniquement): Chess Tree Search Chess Tree Search Theory MTDF
C'est le fichier de la bibliothèque d'ouverture de BSC. La structure de ce fichier est simple et contient les différentes lignes que peut jouer BSC lors de la phase d'ouverture du jeu. Vous pouvez ajouter ou modifié les lignes d'ouvertures à l'aide d'un éditeur de texte. Le choix d'une ligne se fait de façon aléatoire.
Exemple 6. bsc.opn
d2d4g8f6c2c4g7g6g1f3f8g7g2g3e8g8f1g2c7c6b1c3d7d5c4d5c6d5f3e5e7e6e1g1b8c6e5c6b7c6 d2d4g8f6c2c4g7g6g1f3f8g7g2g3e8g8f1g2c7c6b1c3d7d5c4d5c6d5f3e5e7e6e1g1f6d7e5f3b8c6
Après avoir lancer bsc.exe, vous pouvez jouer aux échecs avec BSC en mode console en tapant les commandes au clavier.
Exemple 7. Mode console
BSC: b0n0 Simple Chess ---------------------- version 3.0, 30/03/2008 Copyright (C) 2008, ROBERT Nicolas <nicolas.robert@tangentoide.net> help displays a list of commands. Opening book found => bsc.opn 3558 lines in opening book 16383 ko for HASH 512 ko for PAWN HASH hash=16MB, hashpawn=512KB, check_nodes=300000n, null move=false, mtdf=false, alp ha/beta window=5cp, fut=true, razor=true, Late Move Reduction=false 0>bsc# help help on - computer plays for the side to move off - computer stops playing st n - search for n seconds per move sd n - search n ply per move (>=1) undo - takes back a move new - starts a new game d - display the board ml - display the legal moves fen - setup a fen position mat x - brut search for a mat in x ply test file.epd n_sec nb_pos - test EPD file hard - enable pondering easy - disable pondering book - disable book bye - exit the program xboard - switch to XBoard mode Enter moves in coordinate notation, e.g., e2e4, e7e8Q 0>bsc#
Notation d'origine: Pour déplacer une pièce, il faut entrer case_départcase_arrivée: e2e4. La promotion s'écrit a7a8Q (Q pour reine, R pour tour, N pour cavalier et B pour fou). Les notations (0-0 et 0-0-0) pour le roque ne sont pas supportées. Pour roquer, la notation sera par exemple e1g1 (0-0 pour les blancs). Les commandes disponibles en mode console sont:
Extension San: vous pouvez entrez vos coups en utilisant la notation SAN: O-O, Nf3, e4, fxe6, Qb1xc4, Nbd2, a8=Q, fxe8=R. N'insertion du + pour signaler un échec en fin de notation est déconseillé.
on : bsc prend la main et joue
off : mode deux joueurs
st n: fixe la durée en secondes pour jouer
sd n: fixe la profondeur de recherche pour jouer
new: commence une nouvelle partie
undo: retour en arrière
d: affiche l'échiquier
ml: affiche la listes des coups valides
fen fen_position: entre une position au format fen
mat x: recherche un mat en force brute (en coups, soit 2x demi-coups). Les echécs sont étendus ce qui permet de trouver des mat en x+n coups.
3q1rk1/p4pp1/2pb3p/3p4/6Pr/1PNQ4/P1PB1PP1/4RRK1 b - - bm Bh2+; id "WAC.009"; 0>bsc# mat 2 Searching 4 half ply info depth 4 currmove h4g4 currmovenumber 1/38 nodes 1 time 0 info depth 4 currmove d8b8 currmovenumber 2/38 nodes 2960 time 0 info depth 4 currmove d8a8 currmovenumber 3/38 nodes 6223 time 0 info depth 4 currmove d8e8 currmovenumber 4/38 nodes 8275 time 15 info depth 4 currmove d8c7 currmovenumber 5/38 nodes 11264 time 15 info depth 4 currmove d8b6 currmovenumber 6/38 nodes 14895 time 15 info depth 4 currmove d8a5 currmovenumber 7/38 nodes 17901 time 31 info depth 4 currmove d8d7 currmovenumber 8/38 nodes 20524 time 31 info depth 4 currmove d8e7 currmovenumber 9/38 nodes 24010 time 31 info depth 4 currmove d8f6 currmovenumber 10/38 nodes 27546 time 31 info depth 4 currmove d8g5 currmovenumber 11/38 nodes 31216 time 31 info depth 4 currmove f8e8 currmovenumber 12/38 nodes 34575 time 31 info depth 4 currmove g8h8 currmovenumber 13/38 nodes 37733 time 46 info depth 4 currmove a7a6 currmovenumber 15/38 nodes 40172 time 46 info depth 4 currmove a7a5 currmovenumber 16/38 nodes 42423 time 46 info depth 4 currmove f7f6 currmovenumber 17/38 nodes 44587 time 46 info depth 4 currmove f7f5 currmovenumber 18/38 nodes 46949 time 46 info depth 4 currmove g7g6 currmovenumber 19/38 nodes 49502 time 46 info depth 4 currmove g7g5 currmovenumber 20/38 nodes 51822 time 46 info depth 4 currmove c6c5 currmovenumber 21/38 nodes 53451 time 62 info depth 4 currmove d6c7 currmovenumber 22/38 nodes 55566 time 62 info depth 4 currmove d6b8 currmovenumber 23/38 nodes 58129 time 62 info depth 4 currmove d6e7 currmovenumber 24/38 nodes 60843 time 62 info depth 4 currmove d6c5 currmovenumber 25/38 nodes 63475 time 62 info depth 4 currmove d6b4 currmovenumber 26/38 nodes 66377 time 62 info depth 4 currmove d6a3 currmovenumber 27/38 nodes 68953 time 62 info depth 4 currmove d6e5 currmovenumber 28/38 nodes 71757 time 78 info depth 4 currmove d6f4 currmovenumber 29/38 nodes 74079 time 78 info depth 4 currmove d6g3 currmovenumber 30/38 nodes 76043 time 78 info depth 4 currmove d6h2 currmovenumber 31/38 nodes 78330 time 78 Found! (88257 nodes,time=0 sec) d6h2 g1h1 h2g3 h1g1 h4h1 g1h1 d8h4 h1g1 h4h2 # info depth 4 currmove h6h5 currmovenumber 32/38 nodes 88257 time 93 info depth 4 currmove d5d4 currmovenumber 33/38 nodes 90607 time 93 info depth 4 currmove h4h5 currmovenumber 34/38 nodes 92641 time 93 info depth 4 currmove d8c8 currmovenumber 35/38 nodes 94512 time 93 info depth 4 currmove h4h3 currmovenumber 36/38 nodes 97862 time 93 info depth 4 currmove h4h2 currmovenumber 37/38 nodes 99925 time 93 info depth 4 currmove h4h1 currmovenumber 38/38 nodes 101973 time 93 Found (105698 nodes examined,time=0 sec) 0>bsc#
test fichier.epd temps_réflexion_secondes nombres_positions: test un fichier EPD de positions. Le résultat de la recherche est inscrit dans le fichier bsc.log
hard, easy: réfléchi ou non lorsque c'est votre tour
book: désactive l'utilisation de la bibliothèque d'ouverture
xboard: switch en mode xboard pour Winboard
bye: quitte le programme
Les commandes en mode xboard ne sont pas expliquées. Elles sont conformes au protocole décrit par xboard.
En activant l'option d'apprentissage, la ligne Learn file => bsc.lrn open (5000 entries) apparaît au démarrage du moteur d'échecs. La distribution est initialisée avec un fichier d'apprentissage à 5000 entrées. Le fichier d'apprentissage peut-être réinitialisé par la commande clear_learn_file.
0>bsc# clear_learn_file Cleaning Learn File for 5000 entries...Done! Learn file => bsc.lrn open (5000 entries)
Un nouveau fichier d'apprentissage peut également être crée par la commande create_learn_file n où n est le nombre d'entrée dans le fichier d'apprentissage.
0>bsc# create_learn_file 10000 Creating Learn File for 10000 entries...Done!
Winboard est une interface graphique permettant d'installer différents moteurs d'échecs. BSC supporte le protocole xboard.
Pour installer BSC avec Winboard, éditer le fichier winboard.ini et ajouter les lignes « bsc /fd="C:\progra~1\winboard\bsc" » et « bsc /sd="C:\progra~1\winboard\bsc" » dans les sections firstChessProgramNames et secondChessProgramNames.
Exemple 8. winboard.ini
/firstChessProgramNames={bsc /fd="C:\progra~1\winboard\bsc" "GNUChess -T 16000" "wcrafty-18.10.exe hash 16000000 xboard" /fd="C:\progra~1\winboard\crafty" Comet_b37 /fd="C:\progra~1\winboard\comet" } /secondChessProgramNames={bsc /sd="C:\progra~1\winboard\bsc" "GNUChess -T 16000" "wcrafty-18.10.exe hash 16000000 xboard" /sd="C:\progra~1\winboard\crafty" Comet_b37 /sd="C:\progra~1\winboard\comet" }
BSC supporte le mode analyse sous Winboard.
Dans la fenêtre d'analyse, vous voyez apparaître : la profondeur de recherche, le score de la recherche, l'analyse du coup N sur les coups possible, la meilleur variation, le temps mis pour trouver le meilleur coup, le pourcentage de réussite de recherche dans les tables de transposition, le nombre de positions analysées, le nombre de positions analysées par seconde.