← Tous les textes du Grand Oral
MathsNSIHGGSP
Soixante-quatre cases, trente-deux pièces : le jeu d'échecs tient sur une planche, et pourtant il a nourri des questions mathématiques pendant plus de mille ans. Une légende sur des grains de blé y cache une suite géométrique ; compter les parties possibles mène à des nombres plus grands que le nombre d'atomes de l'Univers observable ; promener un cavalier ou placer huit dames, ce sont des problèmes de graphes et de dénombrement ; et le classement des joueurs repose sur une fonction que l'on étudie comme en terminale.
Ce texte rassemble ces connaissances, avec des échiquiers interactifs et des programmes Python. Il ne propose pas de Grand Oral tout fait : à chacun d'y choisir une direction et d'y construire sa question.
Les historiens situent l'ancêtre des échecs, le chaturanga, dans le nord de l'Inde vers le VIe siècle de notre ère. Le jeu passe en Perse sous le nom de shatranj, puis se répand dans le monde musulman après la conquête arabe. Il atteint l'Europe vers l'an mil, par l'Espagne et l'Italie. Les règles modernes, avec une dame et des fous qui traversent tout l'échiquier, apparaissent à la fin du XVe siècle : avant, la dame (le « vizir ») ne se déplaçait que d'une case en diagonale.
Les savants du monde arabe, qui jouaient beaucoup, ont été les premiers à étudier des problèmes d'échecs par écrit, parmi lesquels des parcours du cavalier. C'est aussi dans des textes de cette époque qu'apparaît la légende du blé sur l'échiquier.
La légende de Sissa, l'inventeur du jeu d'échecs, remonte à l'Inde ancienne. Elle existe en de nombreuses versions, et les noms du roi et du sage changent d'un récit à l'autre. Un roi indien cherchait un moyen d'enseigner à son fils la sagesse, la stratégie et la prudence. On lui présenta un homme réputé pour sa sagesse, Sissa, qui proposa un jeu de son invention : il en expliqua les règles, montra comment chaque pièce avait ses mouvements propres et comment la victoire dépendait de la stratégie et de la planification.
Le roi, impressionné, demanda à Sissa ce qu'il désirait en récompense. Sissa demanda du blé, avec une règle particulière : un grain sur la première case de l'échiquier, deux grains sur la deuxième, quatre sur la troisième, et ainsi de suite en doublant à chaque case jusqu'à la soixante-quatrième. Le roi accepta aussitôt, persuadé que cela ne représentait pas grand-chose. Il avait sous-estimé la croissance d'un doublement répété : la quantité demandée dépasse de très loin tout ce que la Terre produit.
Comptons les grains des premières cases, et le total accumulé.
| case | 1 | 2 | 3 | 4 | 5 | 6 |
|---|---|---|---|---|---|---|
| grains sur la case | 1 | 2 | 4 | 8 | 16 | 32 |
| total depuis la case 1 | 1 | 3 | 7 | 15 | 31 | 63 |
Le total vaut chaque fois une unité de moins que le nombre de grains de la case suivante : $1 = 2 - 1$, $3 = 4 - 1$, $7 = 8 - 1$, $63 = 64 - 1$. On devine que le total des $64$ cases est $2^{64} - 1$. Il reste à le démontrer.
Notons $u_n$ le nombre de grains sur la case numéro $n + 1$, en commençant à $u_0 = 1$ : $u_1 = 2$, $u_2 = 4$, $u_3 = 8$. Pour tout entier $n$, $u_{n+1} = 2u_n$ : la suite $(u_n)$ est géométrique de raison $2$ et de premier terme $1$, donc $u_n = 2^n$. La dernière case porte $u_{63} = 2^{63}$ grains.
Étape 1. Notons $S = 1 + 2 + 2^2 + \cdots + 2^n$. En multipliant chaque terme par $2$ :
$$2S = 2 + 2^2 + 2^3 + \cdots + 2^{n+1}.$$Étape 2. On soustrait $S$ à $2S$. Tous les termes de $2$ à $2^n$ apparaissent dans les deux sommes et s'éliminent ; il ne reste que le dernier terme de $2S$ et le premier terme de $S$ :
$$2S - S = 2^{n+1} - 1.$$Étape 3. Comme $2S - S = S$, on obtient $S = 2^{n+1} - 1$.
C'est un cas particulier de la formule du cours : pour $q \neq 1$, $1 + q + \cdots + q^n = \dfrac{1 - q^{n+1}}{1 - q}$, qui donne ici $\dfrac{1 - 2^{n+1}}{1 - 2} = 2^{n+1} - 1$.
Pour les $64$ cases, on prend $n = 63$ :
$$S = u_0 + u_1 + \cdots + u_{63} = 2^{64} - 1,$$soit exactement $18\,446\,744\,073\,709\,551\,615$ grains, environ $1{,}84 \times 10^{19}$.
Mille grains de blé pèsent de l'ordre de $40$ à $50$ grammes, donc un grain pèse environ $0{,}045$ g. La récompense pèse alors
$$1{,}84 \times 10^{19} \times 0{,}045 \approx 8{,}3 \times 10^{17} \text{ g},$$c'est-à-dire environ $8{,}3 \times 10^{11}$ tonnes. La production mondiale de blé est de l'ordre de $800$ millions de tonnes par an, soit $8 \times 10^{8}$ tonnes : il faudrait environ mille ans de la production mondiale actuelle pour payer Sissa. Ces masses sont des ordres de grandeur ; la conclusion, elle, ne dépend pas des détails.
À partir de quelle case dépasse-t-on une année de récolte mondiale ? Une année, c'est environ $8 \times 10^{14}$ grammes, donc environ $1{,}8 \times 10^{16}$ grains. Les $k$ premières cases contiennent $2^k - 1$ grains. On cherche le plus petit $k$ tel que $2^k > 1{,}8 \times 10^{16}$. La fonction $\ln$ étant strictement croissante, cela équivaut à
$$k \ln 2 > \ln(1{,}8 \times 10^{16}),$$soit
$$k > \frac{\ln(1{,}8 \times 10^{16})}{\ln 2} \approx 54.$$Vers la $54^{\text{e}}$ case, le total atteint déjà une année de récolte de la planète. Il reste encore dix cases, et chacune double presque le total : $2^{10} = 1\,024$, d'où les mille ans. C'est toute la force d'une croissance exponentielle : lente au début, irrésistible ensuite. Le même nombre $2^{64} - 1$ apparaît dans la légende des tours de Hanoï, où il compte des déplacements de disques (voir Les tours de Hanoï).
Touchez une case pour voir son nombre de grains et le total depuis la première case.
Le programme suivant refait ces calculs. Python manipule les entiers exactement, sans arrondi, même quand ils ont vingt chiffres.
Il est assez complexe de déterminer le nombre de parties possibles au jeu d'échecs. Il faut compter les coups qui ont du sens : deux pièces n'occupent pas la même case, un roi ne peut pas se mettre en échec, etc. Beaucoup ont essayé, et c'est Claude Shannon (1916-2001), le père de la théorie de l'information, qui a laissé son nom à ce problème.
Dans un article de 1950 sur la programmation d'un ordinateur pour jouer aux échecs, Shannon fait une estimation volontairement grossière. Une partie dure en général une quarantaine de « coups », un coup étant un déplacement des blancs puis un déplacement des noirs. À chaque demi-coup, un joueur a en moyenne une trentaine de mouvements possibles. Pour un coup complet, le principe multiplicatif donne $30 \times 30 = 900$ possibilités, et pour $40$ coups :
$$(30 \times 30)^{40} = 900^{40} \approx 1{,}48 \times 10^{118}.$$Comment trouver la puissance de $10$ sans calculatrice capable d'afficher un nombre de $119$ chiffres ? Avec le logarithme décimal, qui transforme les puissances en produits :
$$\begin{aligned} \log_{10}\left(900^{40}\right) &= 40 \log_{10} 900 \\ &\approx 40 \times 2{,}954 \\ &\approx 118{,}2. \end{aligned}$$Shannon arrondit $900$ à $10^3$, ce qui donne $\left(10^3\right)^{40} = 10^{120}$ : c'est le nombre de Shannon. Ce n'est qu'un ordre de grandeur, mais il suffit à conclure. Le nombre d'atomes de l'Univers observable est estimé autour de $10^{80}$ : aucun ordinateur ne pourra jamais examiner toutes les parties d'échecs.
Ce nombre compte des parties, c'est-à-dire des suites de coups. Le nombre de positions légales différentes (une disposition des pièces sur l'échiquier) est bien plus petit, mais reste immense : il a été estimé en 2021-2022, par un calcul sur ordinateur, à environ $4{,}8 \times 10^{44}$. Pour comparer, le tic-tac-toe ne compte que $5\,478$ positions et se résout entièrement (voir Le jeu du tic-tac-toe).
Le problème du cavalier d'Euler est le suivant :
On place un cavalier sur une case quelconque d'un échiquier. Existe-t-il un trajet lui permettant de parcourir toutes les cases et de revenir à sa position initiale sans jamais passer deux fois par une même case ?
Ce problème est ancien : il remonte sans doute au premier millénaire, et des solutions sont connues au moins depuis le XVIIe siècle. Au XVIIIe siècle, des mathématiciens l'étudient en profondeur. Leonhard Euler (1707-1783) lui consacre en 1759 un mémoire où il propose, comme à son habitude, plus qu'une simple solution : une analyse de la structure du problème. Il explique comment
Dans la figure ci-dessous, les numéros donnent les positions successives du cavalier, de $1$ à $64$. Le curseur dessine le trajet pas à pas ; de la case $64$, le cavalier peut revenir d'un saut à la case $1$ : le parcours est fermé.
Additionnons les nombres d'une ligne quelconque : on trouve toujours $260$, et il en est de même pour chaque colonne. Cette solution est presque un carré magique : dans un vrai carré magique, les deux diagonales auraient aussi la même somme, ce qui n'est pas le cas ici (on trouve $248$ et $308$).
Pourquoi $260$ ? La somme de tous les nombres de $1$ à $64$ se calcule avec la formule de la somme des termes d'une suite arithmétique, $1 + 2 + \cdots + n = \dfrac{n(n+1)}{2}$ :
$$1 + 2 + \cdots + 64 = \frac{64 \times 65}{2} = 2\,080.$$Si les huit lignes ont la même somme, chacune vaut $2\,080 / 8 = 260$. Le nombre $260$ n'est donc pas un hasard : c'est la seule valeur possible. Existe-t-il un parcours dont les diagonales donnent aussi $260$ ? La réponse, obtenue en 2003 par une recherche exhaustive sur ordinateur, est non : aucun parcours du cavalier sur un échiquier $8 \times 8$ n'est un carré magique complet.
En théorie des graphes, chaque case est un sommet, et deux cases sont reliées si un cavalier peut sauter de l'une à l'autre. Un parcours fermé qui passe une fois et une seule par chaque sommet s'appelle un cycle hamiltonien (voir Calculer un trajet en métro). En général, chercher un cycle hamiltonien est un problème très difficile, pour lequel on ne connaît pas d'algorithme rapide ; mais pour le cavalier, on sait construire un parcours en un temps proportionnel au nombre de cases. Combien en existe-t-il ? En 1997, un calcul par ordinateur a donné $26\,534\,728\,821\,064$ parcours fermés sur l'échiquier $8 \times 8$, en comptant chaque circuit dans ses deux sens de parcours (soit la moitié si l'on ne distingue pas le sens).
Étape 1. Un cavalier se déplace de deux cases dans une direction et d'une case dans l'autre : à chaque saut, il change de couleur de case (d'une case claire à une case sombre, ou l'inverse).
Étape 2. Dans un parcours fermé, les couleurs alternent donc tout le long du cycle : claire, sombre, claire, sombre… et le cavalier revient à son point de départ. Les cases visitées se regroupent par paires (une claire, une sombre) : leur nombre est pair.
Étape 3. Un parcours fermé passe par toutes les cases. Sur un échiquier $5 \times 5$, il y a $25$ cases, un nombre impair : c'est impossible. Le même raisonnement vaut pour tout échiquier carré de côté impair.
Le problème des huit dames est un problème de placement : placer huit dames sur un échiquier de $64$ cases de manière à ce qu'aucune dame ne puisse en attaquer une autre. En d'autres termes, deux dames ne doivent jamais partager une même ligne, une même colonne ou une même diagonale. Il est posé en 1848 par le joueur d'échecs allemand Max Bezzel dans un journal d'échecs berlinois ; en 1850, Franz Nauck publie les $92$ solutions. Gauss, qui s'y était intéressé, l'évoque dans sa correspondance.
Essayez avant de lire la suite : touchez une case pour poser ou retirer une dame. Les cases déjà attaquées par une dame sont assombries, et une dame menacée par une autre apparaît sur fond rouge.
Une recherche « à l'aveugle » serait très longue. Comptons, avec les outils du chapitre de dénombrement, combien de placements il faudrait examiner selon la méthode choisie.
En réfléchissant un peu, on est passé de quatre milliards à quarante mille cas. Parmi ces $40\,320$, il ne reste plus qu'à éliminer ceux où deux dames sont sur une même diagonale : il en reste $92$. L'échiquier a $8$ symétries (les rotations d'un quart, d'un demi et de trois quarts de tour, l'identité, et quatre symétries axiales), qui transforment une solution en une solution ; en regroupant les solutions qui se déduisent l'une de l'autre par une symétrie, il ne reste que $12$ solutions « vraiment différentes ».
L'algorithme ci-dessous donne la liste des placements solutions. Il place une dame par ligne, de haut en bas. Sur chaque ligne, il essaie les colonnes une par une ; si une colonne est compatible avec les dames déjà posées, il passe à la ligne suivante. Quand il est bloqué, il revient en arrière (en anglais backtracking, « retour sur trace ») et essaie la colonne suivante sur la ligne précédente. La condition sur les diagonales se lit avec une remarque de géométrie : deux cases $(i\,;\,c)$ et $(r\,;\,col)$ sont sur une même diagonale lorsque $c - i = col - r$ ou $c + i = col + r$. Le programme affiche les deux premières solutions, puis le nombre total.
On peut changer le $8$ de la dernière ligne pour résoudre le problème des $n$ dames : $4$ dames ont $2$ solutions, $6$ dames en ont $4$, $10$ dames en ont $724$. Une animation du problème est aussi disponible sur ce site : Le problème des huit dames.
Avant même que les ordinateurs soient assez puissants, deux pionniers de l'informatique imaginent des programmes d'échecs. En 1948, Alan Turing et David Champernowne écrivent les règles d'un programme baptisé Turochamp. Faute de machine pour l'exécuter, Turing l'aurait « joué » à la main en 1952 contre un collègue, en calculant chaque coup sur papier, à raison d'une bonne demi-heure par coup ; le programme perdit.
En 1950, Claude Shannon publie l'article qui fonde le domaine, celui où apparaît son estimation de $10^{120}$ parties. Puisqu'on ne peut pas explorer tout l'arbre des parties, il propose deux idées toujours utilisées : explorer tous les coups sur une petite profondeur, ou seulement les coups les plus prometteurs plus loin. Dans les deux cas, le programme choisit son coup par l'algorithme minimax : il suppose que l'adversaire joue au mieux pour lui, et maximise le pire résultat possible. Le texte Le jeu du tic-tac-toe détaille cet algorithme sur un jeu assez petit pour être exploré jusqu'au bout. Shannon lui-même est présenté dans le texte Claude Shannon, Ed Thorp et le hasard vaincu.
Quand l'exploration s'arrête, le programme doit juger la position atteinte par un nombre : c'est la fonction d'évaluation. La plus simple compte le matériel, avec les valeurs traditionnelles des pièces : pion $1$, cavalier $3$, fou $3$, tour $5$, dame $9$. Le score est la valeur des pièces blanches moins celle des pièces noires.
Exemple à la main. Les blancs ont une dame, une tour, un fou et cinq pions ; les noirs ont deux tours, un cavalier, un fou et six pions. Score des blancs : $9 + 5 + 3 + 5 \times 1 = 22$ ; score des noirs : $2 \times 5 + 3 + 3 + 6 \times 1 = 22$. L'évaluation vaut $22 - 22 = 0$ : égalité matérielle. Les vrais programmes ajoutent des dizaines d'autres termes, chacun multiplié par un coefficient : mobilité des pièces, sécurité du roi, structure des pions… Régler ces coefficients est tout un art.
En février 1996, le champion du monde Garry Kasparov bat l'ordinateur Deep Blue d'IBM par $4$ points à $2$. En mai 1997, lors du match revanche à New York, Deep Blue l'emporte par $3{,}5$ à $2{,}5$ : pour la première fois, un champion du monde en titre perd un match contre une machine dans des conditions de tournoi. Deep Blue évaluait environ deux cents millions de positions par seconde, avec une fonction d'évaluation réglée en partie par des grands maîtres.
En 2017, le programme AlphaZero, de l'entreprise DeepMind, change d'approche : on ne lui donne que les règles du jeu. Il apprend en jouant des millions de parties contre lui-même, et sa fonction d'évaluation est un réseau de neurones qui s'améliore partie après partie. Après quelques heures d'apprentissage, il bat largement Stockfish, le meilleur programme classique de l'époque, dans un match de $100$ parties (les conditions de ce match ont été discutées). Sur les réseaux de neurones, voir Le neurone.
Comment classer des joueurs qui ne se rencontrent pas tous ? Le physicien et joueur d'échecs américain d'origine hongroise Arpad Elo (1903-1992) propose un système adopté par la fédération américaine en 1960, puis par la Fédération internationale des échecs (FIDE) en 1970. Chaque joueur a un nombre, son classement : autour de $1\,000$ pour un débutant, $2\,500$ pour un grand maître, un peu plus de $2\,800$ pour les meilleurs joueurs du monde. Le système est aujourd'hui utilisé bien au-delà des échecs : jeux vidéo en ligne, sports, applications de rencontre.
L'idée centrale : seule compte la différence de classement $D = R_A - R_B$ entre deux joueurs $A$ et $B$. Le résultat attendu de $A$ (son espérance de points, en comptant $1$ pour une victoire, $\tfrac12$ pour une nulle et $0$ pour une défaite) est
$$E(D) = \frac{1}{1 + 10^{-D/400}}.$$Exemple à la main. Une joueuse classée $1\,800$ affronte un joueur classé $2\,000$ : pour elle, $D = -200$, et
$$\begin{aligned} E(-200) &= \frac{1}{1 + 10^{200/400}} = \frac{1}{1 + \sqrt{10}} \\ &\approx \frac{1}{4{,}16} \approx 0{,}24. \end{aligned}$$Elle marque en moyenne environ $0{,}24$ point par partie contre lui ; lui en marque environ $1 - 0{,}24 = 0{,}76$.
Comme $10 = e^{\ln 10}$, on a $10^{-D/400} = e^{-\lambda D}$ avec $\lambda = \dfrac{\ln 10}{400} \approx 0{,}005\,76$. On étudie donc, sur $\mathbb{R}$, la fonction
$$E(x) = \frac{1}{1 + e^{-\lambda x}}.$$Dérivée. $E$ est de la forme $\dfrac{1}{v}$ avec $v(x) = 1 + e^{-\lambda x}$, qui ne s'annule pas, et $v'(x) = -\lambda e^{-\lambda x}$. Donc
$$E'(x) = -\frac{v'(x)}{v(x)^2} = \frac{\lambda e^{-\lambda x}}{\left(1 + e^{-\lambda x}\right)^2}.$$Le numérateur et le dénominateur sont strictement positifs : $E'(x) > 0$, et $E$ est strictement croissante. Plus l'écart de classement est favorable, plus le résultat attendu est grand.
Limites. Quand $x$ tend vers $+\infty$, $-\lambda x$ tend vers $-\infty$, donc $e^{-\lambda x}$ tend vers $0$ et $E(x)$ tend vers $1$. Quand $x$ tend vers $-\infty$, $e^{-\lambda x}$ tend vers $+\infty$, donc $E(x)$ tend vers $0$. Un résultat attendu reste toujours strictement entre $0$ et $1$.
Symétrie. En multipliant numérateur et dénominateur par $e^{-\lambda x}$ :
$$\begin{aligned} E(-x) &= \frac{1}{1 + e^{\lambda x}} = \frac{e^{-\lambda x}}{e^{-\lambda x} + 1} \\ &= 1 - \frac{1}{1 + e^{-\lambda x}} \\ &= 1 - E(x). \end{aligned}$$Les résultats attendus des deux joueurs ont pour somme $1$ : il y a un point en jeu par partie. En particulier $E(0) = \tfrac12$ : deux joueurs de même classement font jeu égal en moyenne.
Quel écart pour gagner trois points sur quatre ? On résout $E(D) = 0{,}75$, soit $1 + 10^{-D/400} = \tfrac43$, c'est-à-dire $10^{-D/400} = \tfrac13$. En prenant le logarithme décimal : $-\dfrac{D}{400} = -\log_{10} 3$, d'où $D = 400 \log_{10} 3 \approx 191$.
La tangente en $0$ a pour coefficient directeur $E'(0) = \dfrac{\lambda}{4} \approx 0{,}001\,44$ : autour d'un écart nul, $100$ points de classement en plus valent environ $0{,}14$ point de plus par partie. La courbe, en forme de « S », est une courbe logistique, la même que celle des populations limitées ou des épidémies (voir La modélisation des épidémies).
Après chaque partie, le classement de $A$ est corrigé selon l'écart entre ce qu'il a marqué, $S$ (qui vaut $1$, $\tfrac12$ ou $0$), et ce qu'on attendait de lui :
$$R_A' = R_A + K\,\big(S - E(D)\big),$$où $K$ est un coefficient fixé (la FIDE utilise $40$ pour les nouveaux joueurs, $20$ ensuite et $10$ pour les meilleurs). Reprenons l'exemple avec $K = 20$. Si la joueuse classée $1\,800$ gagne, elle reçoit $20 \times (1 - 0{,}24) \approx 15$ points ; si elle perd, elle n'en perd que $20 \times 0{,}24 \approx 5$. Battre plus fort que soi rapporte beaucoup, perdre contre lui coûte peu.
Si les deux joueurs ont le même $K$, ce que gagne l'un, l'autre le perd : les variations sont $K(S - E(D))$ pour $A$ et, pour $B$, grâce à la symétrie démontrée plus haut :
$$\begin{aligned} &K\big((1 - S) - E(-D)\big) \\ &= K\big(1 - S - 1 + E(D)\big) \\ &= -K\big(S - E(D)\big). \end{aligned}$$Le classement trouve-t-il le vrai niveau ? Imaginons un joueur dont le vrai niveau est $2\,000$, qui commence avec un classement de $1\,500$ et joue contre des adversaires classés $2\,000$. À chaque partie, il gagne au hasard, avec la probabilité donnée par son vrai niveau, c'est-à-dire $\tfrac12$ : son résultat moyen est $\tfrac12$. Notons $R_n$ son classement après $n$ parties. En moyenne, et en remplaçant $E$ par sa tangente en $0$ (valable quand l'écart est petit), la variation est
$$\begin{aligned} &K\left(\tfrac12 - E(R_n - 2\,000)\right) \\ &\approx -\frac{K\lambda}{4}\,(R_n - 2\,000). \end{aligned}$$L'écart $e_n = R_n - 2\,000$ vérifie donc en moyenne $e_{n+1} \approx \left(1 - \dfrac{K\lambda}{4}\right) e_n$ : c'est une suite géométrique de raison $1 - \dfrac{K\lambda}{4} \approx 0{,}971$ pour $K = 20$. Comme cette raison est comprise entre $0$ et $1$, l'écart tend vers $0$ : le classement se rapproche du vrai niveau. Il faut environ $\dfrac{\ln 2}{-\ln 0{,}971} \approx 24$ parties pour diviser l'écart par deux. Le programme suivant simule cette évolution avec de vrais résultats tirés au hasard : le classement ne se stabilise pas exactement, il oscille autour du vrai niveau.
Ce texte n'est pas un Grand Oral. Il rassemble des connaissances dans lesquelles chacun peut choisir une direction, la creuser et formuler sa propre question. Quelques directions possibles :
Le jury peut interroger sur les chapitres de spécialité mobilisés. Avec ce thème, il est utile de connaître parfaitement : les suites géométriques, la somme de leurs termes et leur limite ; la somme des termes d'une suite arithmétique ; la fonction logarithme et la résolution d'inéquations du type $2^k > A$ ; le principe multiplicatif, les permutations, les combinaisons et la factorielle ; la fonction exponentielle, la dérivée d'un quotient et d'une composée, les limites et l'équation d'une tangente ; les variables aléatoires et l'espérance ; les fonctions récursives en Python.
Pour réviser ces chapitres, l'application Maths FlashBac reprend tout le cours de spécialité en cartes.