PRATIQUE DES ÉCHECS       
Mis à jour : Avril 2008  

- ANTOINE BRUNEAU'S BLOG -

Échecs et Programmation


COMMENT FONCTIONNENT
LES PROGRAMMES D'ÉCHECS



1o) Algorithmes utilisés en programmation de jeux d'échecs

L'algorithme alpha-bêta est l'algorithme le plus utilisé par les programmes d'échecs. C'est une technique d'élagage basée sur l'algorithme min-max, appliquée à l'arbre de jeu.
L'arbre de jeu est l'arbre de tous les coups possibles contenant toutes les lignes de jeu possibles depuis la position initiale. Chaque nœud de cet arbre représente une position et toutes les branches issues d'un nœud représentent tous les coups possibles depuis cette position. Il est construit récursivement, avec une profondeur limitée à cause des limites des machines.

«Chess with lasers -
Image copyright © Susan Polgar Chess Blog
Artists Rights Society (ARS), New York / ADAGP, Paris
(cf. Susan Polgar Chess Blog - It's Chess with lasers)

             'Chess with lasers' 
        Original Photograph puplished
        on the Susan Polgar Chess Blog



L'algorithme min-max évalue d'abord la position de chaque feuille de l'arbre. Le principe de base est de chercher le meilleur coup lorsqu'on a le trait en supposant que l'adversaire agira de même. Donc on cherchera toujours le coup qui correspond au maximum des évaluations et on supposera que l' adversaire choisira le coup qui minimise cette évaluation. Supposons que ce soit aux Blancs de jouer. L'algorithme procède des feuilles à la racine, il remonte aux nœuds au-dessus des feuilles et associe le minimum des valeurs des feuilles qui en dépendent si au niveau des feuilles le trait est aux Noirs, ou le maximum si au niveau des feuilles le trait est aux Blancs. On remonte ensuite un étage plus haut de l'arbre et on réitère le même procédé appliqué à l'arbre diminué d'une unité en profondeur dont les feuilles sont ce qui était les nœuds à l'étape précédente. On alterne ainsi, prenant le minimum des valeurs des nœuds, puis le maximum, etc. jusqu'à la racine.

«Normalized Cuts segmentation
results obtained on the Berkeley
Segmentation Dataset (Research Projects)

          Normalized Cuts segmentation 
        results obtained on the Berkeley   
        Segmentation Dataset (Research Projects)


L'algorithme alpha-bêta fonctionne comme l'algorithme min-max mais s'abstient d'évaluer certains nœuds lorsque ce n'est pas nécessaire. Il évite de continuer l'analyse d'un nœud si ce nœud s'avère (strictement) moins intéressant qu'un nœud déjà analysé. Pour être précis, supposons que c'est aux Blancs de jouer et que les feuilles de l'arbre correspondent à des coups blancs. On doit donc associer à chaque nœud le maximum des valeurs des feuilles qui en dépendent. Si dans l'évaluation d'un nœud à partir des feuilles on trouve une feuille dont la valeur est supérieure à la valeur d'un nœud déjà évalué, alors calculer le minimum des maxima ne requiert pas d'évaluer les feuilles restantes du nœud puisque quelles que soient leurs valeurs, la valeur du nœud sera toujours supérieure à celle du nœud de référence. Ce principe est appliqué à tout l'arbre, depuis la racine.

2o) Le générateur de coups légaux

Pour créer l'arbre de jeu on a besoin d'implémenter une fonction qui génère tous les coups possibles à partir d'une position donnée pour la couleur qui a le trait. L'échiquier sera représenté par un tableau 8x8, chaque pièce sera localisée par ses coordonnées dans ce tableau, et un coup sera repéré par deux couples de coordonnées (par ex e2-e4). Les coups légaux générés par cette fonction sont placés dans une liste. Cette fonction est aussi utilisée par l'interface du logiciel d'échecs, lorsque le joueur entre un coup pour jouer, le logiciel parcourt la liste des coups légaux pour vérifier si le coup proposé s'y trouve.
Pour implémenter cette fonction, on parcourt les pièces en jeu et on calcule pour chaque pièce tous ses déplacements possibles en tenant compte du mode de déplacement du type de pièce concernée. Un mouvement élémentaire est représenté par un vecteur, par exemple le vecteur (1,2) est l'un des 8 déplacements possibles du Cavalier. On doit également tenir compte du fait que certaines pièces sont à longue portée (la Dame, la Tour et le Fou) et pas les autres, i.e. leurs déplacements élémentaires peuvent être réitérés dans chaque direction autorisée au cours du même coup. Chaque type de pièce est défini par le tableau de ses directions de déplacement (représentées par des vecteurs) et par une variable qui spécifie si la pièce est à longue portée ou pas. Bien sûr, les pions nécessitent un traitement particulier (pour le fait que le sens de déplacement dépend de la couleur, pour la poussée, la prise en passant, le fait que le déplacement et la prise ne s'effectuent pas de la même façon, la promotion).

«Computer Art - Image generated
by Sterling Fractal- Image no
copyrighted (is in the Public Domain)

             Image generated by  
        Sterling Fractal (cf.Wikipedia   
           the free Encyclopedia


Après avoir généré tous les coups possibles en traduisant la marche des pièces, le travail n'est pas terminé, car les règles spécifient que le Roi ne doit pas être en échec une fois le coup joué pour que celui-ci soit valide. On a besoin de tester la mise en échec et pour cela il faut une fonction nous permettant de savoir si une case est attaquée par une pièce adverse. Pour implémenter cette fonction, on parcourt l'échiquier à partir de cette case dans toutes les directions et on vérifie si on tombe sur une pièce adverse susceptible de prendre dans cette direction. Cette fonction est également utilisée, pour d'autres cases que celle où se trouve le Roi, pour tester si un roque est possible.

Une solution simple serait pour chaque coup déjà engendré de tester si après avoir joué ce coup le Roi est en échec, et le cas échéant de supprimer ce coup de la liste. Le problème de cette approche est que la fonction qui teste la mise en échec est assez coûteuse, et sera utilisée un grand nombre de fois. Une méthode plus économe est de limiter l'emploi de cette fonction de test aux situations où le Roi est déjà en échec (ce cas est relativement rare, et dans ce cas cette approche systématique est quasiment incoutournable), et de veiller à empêcher un déplacement qui placerait le Roi en échec. Lorsque le Roi n'est pas en échec la seule façon de l'exposer à un échec, en dehors du fait de déplacer le Roi lui-même, est de bouger une pièce clouée (et cela peut dépendre de la direction). Donc il suffit de faire précéder l'analyse par l'appel d'une fonction qui part de la position du Roi et parcourt toutes les directions pour vérifier s'il y a une pièce clouée et dans ce cas indiquer aux variables de la pièce la direction dans laquelle elle est clouée. Cette analyse se fait en amont de la recherche des coups légaux effectuée au départ. Le grand avantage de cette approche est que cette fonction de test est utilisée une fois pour toutes.

Bien sûr si la liste est vide au sortir de cette fonction cela signifie que le Roi est mat, ou pat.

© Antoine Bruneau - Avril 2008

[Cette page a été conçue par
Antoine Bruneau - All data is copyrighted
by: © Antoine Bruneau & Chess-Theory]


************

Si vous aimez la musique, vous pouvez choisir maintenant une agréable Musique d'ambiance:

    Choisissez votre Musique d'ambiance !...


  • Pour chaque morceau de musique une pop-up s'ouvre derrière votre page.
  • Chaque pop-up contient une image relative à l'artiste.
  • Vous pouvez revenir à votre page d'origine ou accéder à toute autre page du site (la pop-up restera ouverte).
  • Cette musique vous accompagnera, si vous le souhaitez, à travers tout le site.
  • Vous pouvez changer, lorsque vous le désirez, une musique pour une autre.


  • ************

       «Images taken from the Thinking Machine 4 -
    Thinking Machine 4 explores the invisible,
    Play chess against a transparent intelligence,
    its evolving thought process visible on the board
    before you. - Image copyright © Thinking Machine 4
    Artists Rights Society (ARS), New York / ADAGP, Paris»


    ***


    POUR NAVIGUER AGRÉABLEMENT SUR CE SITE :

  • Nous vous proposons les meilleures voies :

  •   «MISES A JOUR»
      «PLAN DU SITE»
      «MENU GÉNÉRAL DU SITE»
      «PAGE D'ACCUEIL DES LIENS»
      «BASE CODES ECO»
      «FORUMS DE CHESS-THEORY»
      «MOTEUR DE RECHERCHE»
      «MUSÉE D'ART VIRTUEL»


    ***


    POUR DÉCOUVRIR QUI NOUS SOMMES:

  • ... et également pour exprimer librement votre opinion:

  •   «CHESS-THEORY: LIVRE D'OR»
      «CHESS-THEORY: À PROPOS»
      «CHESS-THEORY: COPYRIGHT»





               * N'OUBLIEZ PAS DE NOUS CONTACTER ICI *           

    Cette page, créée par Michel Bruneau, est
    Copyright: © Michel Bruneau «Chess-Theory»
    Webmestre - All rights reserved 2004-2007


    Merci  visiteurs  et amis!...  Veuillez  bien
    noter  que vous nous aiderez beaucoup
    en  exprimant  ici   votre  opinion   et  en
    faisant vos commentaires sur cette page
    et  sur  le  site  Web   «Chess-Theory» :


    Exprimez-vous sur
   notre Livre d'Or  

    Mes   Chers   Amis !...  Sans   au  moins
    votre   support   moral,   exprimé    ici
    ou  sur le  forum, ce   site peut   fermer
    definitivement   sans   aucun   préavis !
    ... Humour ? Il se peut, mais il est aussi
    vrai que le Webmestre, le plus souvent
    seul face à ses ordinateurs, éprouve par
    moments, dans ses projets et réalisations,
    découragement   et  doute...  AIDEZ-MOI
    EN ECRIVANT CE QUE VOUS RESSENTEZ !


    Maintenant «Chess-Theory» reçoit
    plus de
    90, 000 visiteurs différents
    par mois, provenant d'environ
    145
    pays  différents   dans   le   monde
    (daily statistics generated by awstats)






    * «CHESS-THEORY FOUNDATION» WEB SITES *
    La  «Fondation Chess-Theory»,  actuellement
    encore non officielle, sous la  responsabilité de
    Michel  Bruneau, le   Webmestre de   «Chess-
    -Theory»,   met    à  votre  disposition  les  trois
    adresses  Web complementaires   suivantes :


    * CHESS-THEORY.COM *

    ~ CHESS-THEORY.COM ~
    C'est notre site principal, dédié à la
    Théorie des Échecs, à l'Entrainement, à
    l'Analyse et à la Pratique; mais présentant
    aussi la première version de notre "Virtual Art
    Museum". Ce Site bilingue comprend # 2 000
    pages anglaises, 2 000 pages françaises, plus
    de 10 000 images en liens, plusieurs centaines
    de diagrammes et plus de 110 parties analysées
    presentées avec le Viewer de "Chess-Theory" !...

                   ~ 'CHESS-THEORY.COM' ~
      C'est notre site principal, dédié à la
      Théorie des Échecs, à l'Entrainement, à 
      l'Analyse et à la Pratique; mais présentant 
      aussi la première version de notre 'Virtual Art 
      Museum'. Ce Site bilingue comprend # 2 000 
      pages anglaises, 2 000 pages françaises, plus  
      de 10 000 images en liens, plusieurs centaines 
      de diagrammes et plus de 110 parties analysées    
      presentées avec le Viewer de 'Chess-Theory' !...


    * VIRTUAL-ART-MUSEUM.COM *

    ~ VIRTUAL-ART-MUSEUM.COM ~
    Vous retrouverez ici, en un surprenant
    "new look design", toutes les galeries et
    images  en lien  du  Musée  d'Art Virtuel
    de "Chess-Theory" ... mais, rapidement,
    vous découvrirez aussi de nouvelles belles
    galeries   presentant   une  riche  collection
    d'étonnantes  Images en  Haute  Définition,
    de Photos Libres de Droit et bien d'autres....

             ~ 'VIRTUAL-ART-MUSEUM.COM' ~
      Vous retrouverez ici, en un surprenant 
      'new look design', toutes les galeries et 
      images en lien du Musée d'Art Virtuel  
      de 'Chess-Theory'  ... mais, rapidement,    
      vous découvrirez aussi de nouvelles belles 
      galeries presentant une riche collection 
      d'étonnantes Images en Haute Définition, 
      de Photos Libres de Droit et bien d'autres....


    * FROM-THE-WHOLE-WORLD.COM *

    ~ FROM-THE-WHOLE-WORLD.COM ~
    Ce Site Web, actuellemant en
    construction, sera consacré à
    tout sujet culturel, intellectuel
    ou moral non abordé par les autres

     ~ 'FROM-THE-WHOLE-WORLD.COM' ~
      Ce Site Web, actuellemant en 
      construction, sera consacré à
      tout sujet culturel, intellectuel 
      ou moral non abordé par les autres




    «Michel  Bruneau  le  Webmestre  de   "Chess-Theory"
    ... sans   doute   quand   il était   un   peu   plus  jeune
    et     encore   plein     d'Illusions   et   de   Rêves !  »
    Photographie et Montage par Jean-Pierre Bruneau
    Copyright © 2008 Jean-Pierre Bruneau & "Chess-Theory"
    Cependant cette image est disponible pour Échange de Liens !

         Michel Bruneau le Webmestre de 'Chess-Theory' 
         ... sans doute quand il était un peu plus jeune   
                et encore plein d'Illusions et de Rêves !


    ******** ©-«Chess-Theory.com»-2004-2008 ********


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
    Listen Music Now