No problemo avec ChestUci

Moins d’une seconde pour trouver le mat en 19


[diag_echecs]
B:Ff6,pb5,pg5,pf4,Fd3,Rg3,pg2/N:Fg8,pf7,pb6,pg6,pf5,pa3,pb3,pa2,Tb2,Ra1
[config]
taille=35M
plateau=wood35.png

ChestUci avec les Blancs joue et trouve le mat optimal en 19 coups.

FEN :

6b1/5p2/1p3Bp1/1P3pP1/5P2/pp1B2K1/pr4P1/k7 w - - 0 1

Chest est un programme freeware de jeu d’Echecs spécialisé dans la résolution d’études ou compositions de problèmes. Créé par Heiner Marxen, c’est Franz Huber qui l’a intégré dans Arena.

En pratique, on téléchargera la version ChestUCI pour Arena qui comprend le moteur de Heiner Marxen.

L’intégration dans Arena de ChestUCI est beaucoup mieux réussie que Popeye, un compétiteur de Chest car dans Arena les fenêtres UCI de profondeur, de coup, de nombre de positions et de vitesse sont animées lors de la recherche. ChestUCI me semble plus puissant que Popeye et surtout plus facile à installer.

Par rapport à Houdini, le générateur de coups de Chest est paramétrable.

Le but est qu’il trouve le mat plus vite que le meilleur programme généraliste Houdini.

Chargez le module ChestUCI.exe dans Arena.

Arena Niveaux "40 coups en 120 minutes" au lieu du niveau "Infini" nécessaire à Houdini.

Arena menu "Modules" > "Module 1" > "Configurer" (Ctrl+1)

En SearchMode "Normal" par défaut, Chest utilise la forte brute dans une recherche exhaustive de tous les coups. Pour ce problème de mat en 19 coups, le temps serait prohibitif.

1. Le mode automatique C16/P1

Essayez SearchMode "Automatic". Chest auto-configure son générateur de coups.

Au-dessus :

ProblemType : Mate

SearchDepth : 19

Cela veut dire qu’il faut avoir une idée du résultat, ici mat en 19 coups.

Tout l’intérêt de Chest se trouve dans son générateur de coups configurable à l’aide des cinq paramètres suivant : C, R, K, P, X.

CheckOnly (C) : 16 (valeur initiale 0 signifiait que tous les échecs seraient étudiés).

Correspond à l’heuristique de ne pas faire des échecs intempestifs sauf le dernier coup pour mater.

ThReatDepth (R) : 0 par défaut, associé à ThreatRange : 3 inchangé. Non utilisé pour ce problème.

KingSquares (K) : 0 par défaut

PieceLimit (P) : 1 (valeur initiale 0). Les Noirs ne peuvent jouer qu’une seule pièce, le Fou g8.

MaXmoves (X) : 0 par défaut

Lancer le module en cliquant sur la roue d’engrenage d’Arena.

FEN: 6b1/5p2/1p3Bp1/1P3pP1/5P2/pp1B2K1/pr4P1/k7 w - -   (7+10)
Position-Analysis:  C0/R0/K1/P1/X1   W:3/19
Automatic-Search for Special-Mate [{{C16}}/R1/K0/{{P1}}/X0] in 19 ...  (Hash=64MB)
Automatic-Search for Special-Mate [C16/R2/K0/P1/X0] in 19 ...  (Hash=64MB)
Automatic-Search for Special-Mate [C16/R-2/K0/P1/X0] in 19 ...  (Hash=64MB)
Automatic-Search for Special-Mate [C16/R3/K0/P1/X0] in 19 ...  (Hash=64MB)
Automatic-Search for Special-Mate [C16/R-3/K0/P1/X0] in 19 ...  (Hash=64MB)
Automatic-Search for Special-Mate [C16/R0/K1/P1/X0] in 19 ...  (Hash=64MB)
 19/19   00:07      2 100 428   806 306   +M19   Rg3-h2
 19/19   00:07      5 758 699   835 199   +M19   Rg3-h2 Fg8-h7 Rh2-g1 Fh7-g8 Rg1-f1 Fg8-h7 Rf1-e1 Fh7-g8 Re1-d1 Fg8-h7 Rd1-c1 Fh7-g8 Fd3-c4 Fg8-h7 Fc4xb3 Fh7-g8 Fb3-c2 Fg8-h7 Rc1-d2 Fh7-g8 Rd2-d3 Fg8-h7 Rd3-c4 Fh7-g8 Rc4-d5 Fg8-h7 Rd5-c6 Fh7-g8 Rc6xb6 Fg8-h7 Rb6-a5 Fh7-g8 Ra5-a4 Fg8-h7 Ra4xa3 Fh7-g8 Ff6xb2+
Automatic-Search for Special-Mate [C16/R0/K1/P1/X1] in 19 ...  (Hash=64MB)
 19/19   00:07      5 758 699   835 199   +M19   Rg3-h2
 19/19   00:07         47 109   1 002 319   +M19   Rg3-h2 Fg8-h7 Rh2-g1 Fh7-g8 Rg1-f1 Fg8-h7 Rf1-e1 Fh7-g8 Re1-d1 Fg8-h7 Rd1-c1 Fh7-g8 Fd3-c4 Fg8-h7 Fc4xb3 Fh7-g8 Fb3-c2 Fg8-h7 Rc1-d2 Fh7-g8 Rd2-d3 Fg8-h7 Rd3-c4 Fh7-g8 Rc4-d5 Fg8-h7 Rd5-c6 Fh7-g8 Rc6xb6 Fg8-h7 Rb6-a5 Fh7-g8 Ra5-a4 Fg8-h7 Ra4xa3 Fh7-g8 Ff6xb2+
Mate in 19 found !  (1 Solution in 00:00)
 19/19   00:07         47 109   1 002 319   +M19   Rg3-h2 Fg8-h7 Rh2-g1 Fh7-g8 Rg1-f1 Fg8-h7 Rf1-e1 Fh7-g8 Re1-d1 Fg8-h7 Rd1-c1 Fh7-g8 Fd3-c4 Fg8-h7 Fc4xb3 Fh7-g8 Fb3-c2 Fg8-h7 Rc1-d2 Fh7-g8 Rd2-d3 Fg8-h7 Rd3-c4 Fh7-g8 Rc4-d5 Fg8-h7 Rd5-c6 Fh7-g8 Rc6xb6 Fg8-h7 Rb6-a5 Fh7-g8 Ra5-a4 Fg8-h7 Ra4xa3 Fh7-g8 Ff6xb2+

Chest trouve le mat le plus court +M19 en 7 secondes à comparer à Houdini 1.5 qui demande plusieurs minutes voire une demi-heure pour trouver un +M20 non optimal.

Notez comment en mode automatique Chest auto-configure son paramètre R entre 2 et -2 puis 3 et -3 et enfin R0 car K1 a pu être sélectionné comme dans le paragraphe suivant.

C16 (un seul et dernier échec et mat) est une hypothèse forte qui nécessite de connaître la solution. Continuons à configurer Chest pour trouver la plus courte solution dans le temps le plus court.

2. Le mode spécial K1/P1

La résolution du problème est plus courte que la configuration du module !

Arena Ctrl+1 pour configurer le module n°1.

SearchMode "Special".

CheckOnly (C) : 0

ThReatDepth (R) : 0

KingSquares (K) : 1 (valeur initiale était 0)

PieceLimit (P) : 1 (valeur initiale était 0)

MaXmoves (X) : 0

Dans l’élaboration du plan Parcours royal régicide pour trouver le mat, on a appliqué une heuristique qui consiste à conserver pendant toute la résolution du problème la propriété initiale de blocage du Roi noir en a1 en contrôlant la case de fuite b1. Dans le langage de configuration du générateur de coups de Chest, cela se traduit par KingSquares (K) : 1, le Roi reste sur une et une seule case, sa case initiale.

PieceLimit (P) : 1 est également une heuristique qui a été appliquée dans le plan humain.

En limitant à une et une seule pièce, les possibilités de jouer pour les Noirs, ici le Fou g8, on s’est interdit de jouer Fd4 ou e5 car cela libérerait le pion f7 et donc le Fou g8.

Idem pour le Fou d3 en f1, car le Roi s’enfuirait en b1.

Pour être sûr que le cache n’est pas conservé d’une tentative réussie à une autre, le plus simple est de sortir d’Arena et de le relancer.

Sinon dans les traces UCI, cliquez avec le bouton droit de la souris > menu contextuel "(Re)démarrer module".

"ChestUCI par Franz Huber, Austria" s’affiche.

Eventuellement on peut repartir d’une partie nouvelle

Ctrl + N suivi de F6 si la position initiale était dans le presse-papiers.

Voir 5. Paramètres et raccourcis utiles dans Arena de l’article précédent.

Lancer le module en cliquant sur la roue d’engrenage d’Arena.

FEN: 6b1/5p2/1p3Bp1/1P3pP1/5P2/pp1B2K1/pr4P1/k7 w - -   (7+10)
Position-Analysis:  C0/R0/K1/P1/X1   W:3/19
Search for Special-Mate [C0/R0/K1/P1/X0] in 19 ...  (Hash=64MB)
d=1  t=0.00s [1.00]  n=0kN [1.00]   Hash: spd=1.00  in=1  out=0
d=2  t=0.00s [1.00]  n=0kN [1.00]   Hash: spd=0.95  in=1  out=0
d=3  t=0.00s [1.00]  n=0kN [5.30]   Hash: spd=0.99  in=5  out=0
d=4  t=0.00s [1.00]  n=0kN [3.37]   Hash: spd=1.50  in=14  out=0
d=5  t=0.00s [1.00]  n=1kN [2.16]   Hash: spd=2.41  in=23  out=0
d=6  t=0.01s [1.00]  n=1kN [1.69]   Hash: spd=3.71  in=29  out=0
d=7  t=0.01s [1.00]  n=2kN [1.39]   Hash: spd=5.01  in=35  out=0
d=8  t=0.01s [1.00]  n=3kN [1.39]   Hash: spd=6.86  in=40  out=0
d=9  t=0.01s [1.00]  n=4kN [1.29]   Hash: spd=8.25  in=47  out=0
d=10  t=0.01s [1.00]  n=5kN [1.31]   Hash: spd=9.89  in=64  out=0
d=11  t=0.01s [1.00]  n=7kN [1.39]   Hash: spd=10.46  in=111  out=0
d=12  t=0.01s [1.00]  n=11kN [1.60]   Hash: spd=10.55  in=236  out=0
d=13  t=0.03s [3.00]  n=19kN [1.80]   Hash: spd=10.32  in=492  out=0
d=14  t=0.06s [2.00]  n=43kN [2.21]   Hash: spd=10.19  in=1166  out=0
d=15  t=0.14s [2.33]  n=104kN [2.43]   Hash: spd=11.15  in=2838  out=0
d=16  t=0.33s [2.36]  n=262kN [2.51]   Hash: spd=14.45  in=6835  out=0
d=17  t=0.80s [2.42]  n=618kN [2.36]   Hash: spd=18.74  in=15236  out=0
d=18  t=1.95s [2.44]  n=1489kN [2.41]   Hash: spd=23.02  in=37250  out=0
  19   00:04      1 745 670   761 303   +M19   Rg3-h2
d=19  t=4.66s [2.39]  n=3638kN [2.44]   Hash: spd=26.74  in=92112  out=0
Search completed ...  (Time=4.66s)
Mate in 19 found !  (1 Solution in 00:04)
 19/19   00:04      3 638 482   780 120   +M19   Rg3-h2 Fg8-h7 Rh2-g1 Fh7-g8 Rg1-f1 Fg8-h7 Rf1-e1 Fh7-g8 Re1-d1 Fg8-h7 Rd1-c1 Fh7-g8 Fd3-c4 Fg8-h7 Fc4xb3 Fh7-g8 Fb3-c2 Fg8-h7 Rc1-d2 Fh7-g8 Rd2-d3 Fg8-h7 Rd3-c4 Fh7-g8 Rc4-d5 Fg8-h7 Rd5-c6 Fh7-g8 Rc6xb6 Fg8-h7 Rb6-a5 Fh7-g8 Ra5-a4 Fg8-h7 Ra4xa3 Fh7-g8 Ff6xb2+

Dans ce mode spécial, le mat a été trouvé en seulement 4 secondes.

3. Le mode spécial K1/X1

Arena Ctrl+1 pour configurer le module n°1.

SearchMode "Special".

CheckOnly (C) : 0

ThReatDepth (R) : 0

KingSquares (K) : 1 (valeur initiale était 0)

PieceLimit (P) : 0

MaXmoves (X) : 1 (valeur initiale était 0)

Encore plus limitatif que P=1 (seul le Fou g8 noir peut bouger), X=1 limite la réponse des Noirs à un seul coup soit Fg8-h7, soit Fh7-g8

FEN: 6b1/5p2/1p3Bp1/1P3pP1/5P2/pp1B2K1/pr4P1/k7 w - -   (7+10)
Position-Analysis:  C0/R0/K1/P1/X1   W:3/19
Search for Special-Mate [C0/R0/K1/P0/X1] in 19 ...  (Hash=64MB)
d=1  t=0.00s [1.00]  n=0kN [1.00]   Hash: spd=1.00  in=1  out=0
d=2  t=0.00s [1.00]  n=0kN [1.00]   Hash: spd=0.95  in=1  out=0
d=3  t=0.00s [1.00]  n=0kN [5.30]   Hash: spd=0.99  in=5  out=0
d=4  t=0.00s [1.00]  n=0kN [3.37]   Hash: spd=1.50  in=14  out=0
d=5  t=0.00s [1.00]  n=1kN [2.16]   Hash: spd=2.41  in=23  out=0
d=6  t=0.00s [1.00]  n=1kN [1.69]   Hash: spd=3.71  in=29  out=0
d=7  t=0.01s [1.00]  n=2kN [1.39]   Hash: spd=5.01  in=35  out=0
d=8  t=0.01s [1.00]  n=3kN [1.39]   Hash: spd=6.86  in=40  out=0
d=9  t=0.01s [1.00]  n=4kN [1.29]   Hash: spd=8.25  in=47  out=0
d=10  t=0.01s [1.00]  n=5kN [1.30]   Hash: spd=9.95  in=64  out=0
d=11  t=0.01s [1.00]  n=6kN [1.34]   Hash: spd=11.00  in=97  out=0
d=12  t=0.01s [1.00]  n=9kN [1.40]   Hash: spd=12.46  in=157  out=0
d=13  t=0.03s [3.00]  n=13kN [1.41]   Hash: spd=14.03  in=240  out=0
d=14  t=0.03s [1.00]  n=17kN [1.36]   Hash: spd=17.09  in=317  out=0
d=15  t=0.03s [1.00]  n=22kN [1.30]   Hash: spd=20.66  in=367  out=0
d=16  t=0.05s [1.67]  n=27kN [1.23]   Hash: spd=25.18  in=399  out=0
d=17  t=0.05s [1.00]  n=34kN [1.22]   Hash: spd=29.48  in=433  out=0
d=18  t=0.05s [1.00]  n=41kN [1.22]   Hash: spd=33.73  in=483  out=0
  19   00:00              0   0   +M19   Rg3-h2
d=19  t=0.06s [1.20]  n=50kN [1.23]   Hash: spd=36.98  in=562  out=0
Search completed ...  (Time=0.06s)
Mate in 19 found !  (1 Solution in 00:00)
 19/19   00:00         50 390   812 741   +M19   Rg3-h2 Fg8-h7 Rh2-g1 Fh7-g8 Rg1-f1 Fg8-h7 Rf1-e1 Fh7-g8 Re1-d1 Fg8-h7 Rd1-c1 Fh7-g8 Fd3-c4 Fg8-h7 Fc4xb3 Fh7-g8 Fb3-c2 Fg8-h7 Rc1-d2 Fh7-g8 Rd2-d3 Fg8-h7 Rd3-c4 Fh7-g8 Rc4-d5 Fg8-h7 Rd5-c6 Fh7-g8 Rc6xb6 Fg8-h7 Rb6-a5 Fh7-g8 Ra5-a4 Fg8-h7 Ra4xa3 Fh7-g8 Ff6xb2+

Chest trouve immédiatement la solution en 50 millisecondes.

Ici la réponse étant immédiate, on peut s’arrêter d’améliorer la configuration du moteur.

Cependant il serait également possible d’établir une priorité entre les cinq paramètres avec la liste SearchOrder par défaut KPX : KingSquares en premier, PieceLimit, MaXmoves.

D’autres stratégies sont proposées. KXP, PKX, etc.

On pourrait aussi bien cumuler dans la configuration K1/P1/X1 : le Roi noir ne bouge pas, seul le Fou g8 a un facteur de liberté d’un seul coup à chaque coup des Blancs.

Référence : ChestUCI\English.txt fourni avec ChestUci.

Posté le 16 janvier 2012 par Matt