Vous êtes sur la page 1sur 20

Analyse combinatoire du jeu de société Pylos

Lemmens Thomas, Lebrun Nicolas, Choserot Néot.

UClouvain, Belgique.

Décembre 2022

P
ylos est un jeu à deux joueurs et aux règles simples. Malgré cela, les parties peuvent avoir
des déroulements complexes, ce qui les rend difficiles à analyser. Dans cet article, nous
cherchons à apporter une compréhension analytique de ce jeu sur un fond mathématique.

1 Introduction à Pylos
Avant de se lancer dans de quelconques considérations mathématiques, explicitons le fonctionnement
de Pylos. Nous passons en revue les règles du jeu, puis discuterons des propriétés que nous mettrons
en lumière au travers de cet article. Une courte vidéo introduit le sujet pour les lecteurs avides de
visualisations (https://youtu.be/bASqYkZ7oTI). Cela dit, celle-ci est indépendante de cet article.

1.1 Plateau et règles du jeu

Figure 1 – Plateau de jeu

Une partie prend place sur une pyramide à base carrée. A tour de rôle, chaque joueur place une
bille sur le plateau, soit à un emplacement disponnible, soit empilée sur un carré formé de quatre billes.
La partie est remportée par le joueur qui pose la dernière bille au sommet de la pyramide. Si un joueur
Analyse combinatoire du jeu de société Pylos

n’a plus de billes à placer, il est déclaré perdant et la partie s’arrête.

Un joueur contrôle les billes blanches, tandis que l’autre les billes brunes. La taille standard du
plateau de jeu est un carré de 4 × 4 billes et donc une partie se joue sur une pyramide à 4 étages. Il est
évident qu’il est facile de généraliser cette configuration à une pyramide de base n × n. Chaque joueur
démarre la partie avec 15 billes dans sa main (dans le cas 4 × 4). Une bille est dite libre, si aucune autre
bille ne repose sur elle. Pour permettre aux joueurs de récupérer des billes déjà jouées, les trois règles
qui suivent sont ajoutées. Cependant, nous ne prendrons pas en compte les deux dernières dans notre
réflexion, nous les citons simplement par soucis de complétude vis-à-vis du jeu officiel.

1. Le saut : Plutôt que d’ajouter une nouvelle bille au plateau, un joueur peut, à la place, déplacer
une bille du plateau sur un étage strictement supérieur à un emplacement disponnible, à condition
que cette bille soit libre et soit de sa couleur.
2. Le carré : Si pendant son tour, un joueur réussi à former un carré de quatres billes de sa couleur
sur un même étage, alors il peut retirer une ou deux de ses billes libres de son choix du plateau et
les reprendre dans sa main.
3. L’alignement : À l’instar du carré, un joueur peut retirer une à deux de ses billes libres et les
reprendre dans sa main s’il parvient à aligner quatres billes de sa couleurs aux rez-de-chaussé de
la pyramide.

Figure 2 – Saut

Ainsi, chaque joueur peut à son tour soit faire sauter une bille libre, soit en ajouter une nouvelle
depuis sa main. Puis par carré ou alignement, il peut reprendre dans sa main jusqu’à deux billes libres
du plateau. Bien que ces règles semblent abordables, elles complexifient de manière conséquente le
déroulement d’une partie de Pylos. Prenons en exemple la situation dans laquelle chaque joueur a posé
trois billes sur une même ligne. A leur tour, chaque joueur choisit de compléter sa ligne de quatre billes.
Par la règle de l’allignement, ils peuvent la retirer aussi tôt pour recommencer le même procédé au tour
suivant. Autrement dit, les joueurs peuvent agir de telle manière à jouer une partie sans fin. Un cas
similaire est facilement envisageable avec la règle du carré. Pour éviter des parties interminables, nous
ne prendrons pas en compte les règles du carré et de l’alignement dans la suite de cet article.

1.2 Cadre de travail


Nous sommes principalement intéressés par la mécanique et la structure de Pylos. C’est pourquoi
nous nous permettons d’ignorer les couleurs de billes à partir de maintenant. Autrement dit, on joue à
un joueur.

Pour mettre en relief cette structure, nous allons étudier des plateaux de jeu de tailles arbitraires, c’est-
à-dire dont la base n’est plus de taille 4 × 4, mais n × n. Enfin, étudier la longueur d’une partie, et surtout
l’ensemble des parties, est un travail fastidieux. C’est pourquoi nous procédons à une simplification du

Page 2 of 20
Analyse combinatoire du jeu de société Pylos

jeu. Au lieu de considérer une pyramide à trois dimensions, nous nous focalisons sur son analogue à
deux dimensions dont voici l’illustration.

Même s’il ne s’agit plus d’une pyramide à proprement parler, nous la désignerons comme tel dans ce
qui suit. Il est intuitif de se dire que les raisonnements que nous établirons sur ces pyramides peuvent
s’étendre à leurs analogues tridimensionnels. Nous clôturons cette introduction en présentant les deux
questions de recherche qui guiderons notre réflexion, celles-ci sont posées sur le cas bidimensionnel
pour une taille arbitraire de pyramide.
1. Quelle est la longueur maximale d’une partie ?

Si on joue sans la règle du saut, cette question est triviale. En effet, la longueur de chaque partie,
autrement dit le nombre de coup nécessaire pour terminer la construction, est simplement égal
au nombre total de billes étant donné que chaque bille doit être jouée. La question est d’intérêt
lorsque l’on joue avec la règle du saut car dans ce cas, un joueur peut jouer un coup sans ajouter
de nouvelles billes au plateau.

2. Combien existe-t-il de parties différentes ?

Donner le nombre de parties possibles pour une pyramide de hauteur n n’est pas chose aisée, et ce
même sans la règle du saut ! Nous répondrons à cette question du mieux possible sans considérer
cette règle. En plus de calculer certaines valeurs théoriques, on établira un algorithme de dé-
nombrement qui nous fournira davantages de valeurs, numériques cette fois. De plus, on établira
des bornes théoriques dans le but de proposer tout de même un résultat lorsque l’algorithme ne
renvoie pas de réponse dans un temps raisonnable.

Au delà des ces questions de recherches, des pistes de réflexions seront proposées pour généraliser
la démarche au cas tridimensionnel. Pour finir, une annexe est disponible avec des codes Python dont
l’objet est de modéliser une pyramide, vérifier numériquement la longueur maximale d’une partie avec
saut et calculer le nombre de parties sans saut.

Page 3 of 20
Analyse combinatoire du jeu de société Pylos

2 Longueur d’une partie


2.1 Calcul du nombre de coups dans une partie et premières bornes
On souhaite tout d’abord trouver le nombre de coups qui peuvent avoir lieu dans une partie. Pour ce
faire, nous allons étudier les diagrammes obtenus comme suit : on regarde la position finale de chaque
bille dans la pyramide et on la numérote en fonction du nombre de coups ayant étés nécessaires pour la
mettre à sa position finale. Considérons par exemple la partie suivante (les lettres de l’alphabet sont là
pour distinguer les boules et l’ordre dans lequel elles sont entrées en jeu) où l’on fait un seul saut :

C C E

A B C A B D

Nous numérotons les billes et obtenons le diagramme suivant :

2 1

1 1 1

On dira que la numérotation d’une bille correspond à son poids. La longueur de la partie jouée devient
donc tout simplement la somme des poids de toutes les billes. Dans l’exemple précédent, la partie était
de longueur 7.

Chaque bille devant être mise en jeu, les poids observés sont au minimum égaux à 1, la longueur
d’une partie est donc supérieure ou égale au nombre de billes dans la pyramide, c’est à dire la somme
du nombre de billes sur chaque étage. On notera nk le nombre de billes sur l’étage k de la pyramide
(n1 pour le rez-de-chaussé). On a donc n1 étages, car chaque étage a une bille en moins que l’étage
précédent. Nous déduisons que la longueur d’une partie est supérieure ou égale à,
n1
X n1 (n1 + 1)
nk = n1 + n2 + · · · + nn1 = n1 + (n1 − 1) + · · · + 1 = .
2
k=1

Ceci nous donne une borne inférieure à la longueur d’une partie en fonction de la taille de la base de la
pyramide. On remarque que cette borne est atteinte : il suffit de jouer une partie sans faire de sauts. La
longueur minimale d’une partie de base n1 est donc n1 (n1 + 1)/2.

Nous pouvons d’ores et déjà donner une borne supérieure à la longueur d’une partie en fonction de
la taille de la base. En effet, une bille ayant effectué au moins k sauts se trouve au minimum au k + 1
ème étage, le nombre de sauts qu’une bille a effectués est donc strictement inférieur au numéro de
l’étage auquel elle se trouve. Nous déduisons que le poids d’une bille est borné par le numéro de son étage.

Page 4 of 20
Analyse combinatoire du jeu de société Pylos

Une borne supérieure de la longueur d’une partie est donc donnée par (on somme les poids étage
par étage, et on suppose que le poids de chaque bille est égal au numéro de son étage),
n1 n1 n1 n1
X X X X n1 (n1 + 1)2 n1 (n1 + 1)(2n1 + 1)
knk = k(n1 + 1 − k) = (n1 + 1) k− k2 = −
2 6
k=1 k=1 k=1 k=1
n1 (n1 + 1)(2n1 + 4)
= .
12
On obtient donc une première borne cubique en n1 de la longueur maximale d’une partie. Celle-ci n’est
néanmoins jamais atteinte ! En effet, une observation que nous pouvons faire est que la dernière bille
posée dans un étage est d’office de poids 1 : elle ne peut pas venir d’un étage inférieur par le biais d’un
saut. On n’obtient donc jamais de partie où toutes les billes du k ème étage sont de poids k (sauf dans
le cas très particulier où n1 = 1).

2.2 Proposition de partie de longueur maximale


On souhaite construire une partie de longueur maximale. Pour cela nous considérons un type
particulier de parties : celles où les billes sur un étage sont, à chaque étape du jeu, collées le plus à
gauche possible. Ce type de parties est assez facile à représenter, chaque instant de la partie peut être vu
comme un élément de Nb avec b la taille de la base (qui correspondait à n1 dans la section précédente),
les composantes représentant le nombre de boules sur chaque étage. Nous avons par exemple que
l’élément (6, 5, 3, 1, 0, 0) correspond à :

On remarque que les composantes xn de ces b-tuplets respectent les règles suivantes : xn+1 + 1 ≤ xn et
x1 ≤ b. Nous étudierons ce type de parties et leur nombre dans la prochaine section, cherchons tout
d’abord la partie de longueur maximale parmi celles-ci. Comme nous l’avons mentionné, la dernière
bille posée sur un étage est de poids 1, comme celles-ci se retrouvent à l’extrême droite de leur étage
(on remplit chaque étage de gauche à droite), nous pouvons déjà partiellement déduire la numérotation
de ces pyramides :

1
1
1
1
1
1 1 1 1 1 1

Nous pouvons légèrement modifier le déroulement d’une partie pour faire en sorte que ses dernières
billes, placées sur l’extrême droite de la pyramide, soient posées à la toute fin, et que les sauts des billes
venant de l’étage 1 et de la diagonale de droite soient faits à partir du coin inférieur droit de la pyramide.
Ces quelques modifications à une partie ne changent rien à sa numérotation finale mais nous permettent
d’observer l’existence d’une sous-pyramide (en gris dans la figure précédente) indépendante des billes

Page 5 of 20
Analyse combinatoire du jeu de société Pylos

d’extrême droite, excepté pour les sauts. Cette diagonale de droite est donc uniquement utilisée pour
les sauts vers cette sous-pyramide, et est remplie à la fin de la partie.

Or la sous-pyramide se comporte exactement de la même manière : les dernières billes sur chaque
étage ne viennent pas d’un étage inférieur de la sous-pyramide et nous pouvons modifier le déroulement
de cette sous-partie de manière analogue à précédemment, sans changer la numérotation. Seule chose
que nous pouvons faire dans la sous-partie : nous avons la possibilité de faire venir les billes de l’extérieur
(en les faisant passer par la position en rouge dans la figure) pour leur conférer un poids plus élevé.
Notre intuition est que dans une partie de taille maximale c’est ce qui doit se passer pour toutes les billes
de la sous-pyramide, et la numérotation des billes dans la sous-pyramide se fait en partie comme suit.

1
2 1
2 1
2 1
2 2 2 2 1
1 1 1 1 1 1

En itérant l’argument sur la sous-pyramide résultante, et ainsi de suite, nous déduisons qu’un bon
candidat pour la partie de taille maximale possède une numérotation avec des V de billes de poids
de plus en plus élevés. Quelle est sa longueur ? On observe que celle-ci peut être vue comme une
superposition de plusieurs pyramides illustrée comme suit :

1 1
2 1 1 1 1
3 2 1 1 1 1 1 1 1
3 3 2 1 = 1 1 1 1 + 1 1 1 + 1 1
2 2 2 2 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1

La longueur de cette partie est donc obtenue en sommant les longueurs de ces autre parties. Les tailles
des bases des pyramides trouvées décroissent de 2 unités au fur et à mesure. La longueur d’une partie
de ce type de base b = n1 paire correspond donc à :

b/2 b/2 b/2 b/2


X (b − 2k)(b − 2k + 1) X b(b + 1) X X b( 2b + 1)(2b + 5)
= − (2b + 1) k+2 k2 = .
2 2 12
k=0 k=0 k=0 k=0

Page 6 of 20
Analyse combinatoire du jeu de société Pylos

Pour une base b impaire, nous devons simplement ajouter une diagonale supplémentaire :

1
2
...
b+1
2
...
2
1
b−1
La longueur de la partie considérée est donc donnée par,
b−1
(b − 1)( b−1
2 + 1)(2(b − 1) + 5) b+1 2
X (b − 1)( b−1
2 + 1)(2(b − 1) + 5) b+1 1b−1b+1
+ +2 k= + +2
12 2 12 2 2 2 2
k=1
(b − 1)( b−1
2 + 1)(2(b − 1) + 5) (b + 1)2
= + .
12 4
Nous avons donc trouvé un bon candidat pour une partie de taille maximale parmi celles ou les billes
se jouent le plus à gauche possible. Nous allons montrer que cela est bien le cas dans la prochaine
sous-section.

2.3 Bornes sur le poids des dernières billes


Nous avions vu précédemment que la dernière bille posée d’un étage est de poids 1. En effet celle-ci
ne peut venir d’un étage du dessous. Pour rendre cela rigoureux nous observons que la dernière bille
sur un étage devra être posée lors une situation ressemblant à ceci (avec au moins ces boules là) :

Les billes déjà placées bloquent des positions sur plusieurs étages car celles-ci doivent être supportées.
Les positions qui restent peuvent potentiellement être utilisées pour amener la dernière bille à sa
position finale. Ici il est clair que nous ne pouvons pas faire de sauts pour amener la dernière bille à sa
position finale : la dernière bille d’une ligne a donc un poids inférieur ou égal à 1. Qu’en est-il pour
l’avant-dernière bille ? Et celle d’encore avant ? On peut faire le même type de schéma :

k
La k-dernière (2-dernière désignant avant-dernière) bille se retrouve dans ce type de situation : nous
pouvons utiliser au plus k diagonales pour l’amener à sa position finale. Hors comme nous jouons le
plus à gauche possible, une bille se déplace tout le temps d’au moins une diagonale vers la gauche lors
d’un saut ! On remarque donc que la k-dernière bille pourra uniquement effectuer k − 1 sauts : elle aura
au plus un poids k. Il y a donc deux contraintes importantes bornant le poids d’une bille : l’étage auquel
elle se trouve et sa position dans l’étage. Si nous revenons à la partie étudiée dans la section précédente,
celle-ci sature toutes ces bornes ! C’est donc une partie de taille maximale parmi les parties où l’on joue
les billes le plus à gauche possible.

Page 7 of 20
Analyse combinatoire du jeu de société Pylos

2.4 Passage des parties classiques à celles jouées à gauche


Nous avons donc trouvé la longueur maximale des parties où tout se joue à gauche. Mais qu’en est-il
des parties classiques ? Supposons qu’on ai la numérotation finale d’une certaine partie, nous pouvons
réarranger les numérotations sur chaque ligne de manière décroissante :

1 1
1 1 1 1
1 2 3 3 2 1
1 2 3 2 3 2 2 1
1 2 1 2 1 2 2 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1

Ce que nous allons prouver est que cette nouvelle numérotation peut être obtenue avec une partie se
jouant à gauche ! Il va de soit que cette partie sera de même longueur que la partie initiale : nous
avons uniquement réarrangé les poids de la numérotation, la somme totale des poids reste la même.
Nous allons prouver notre affirmation par récurrence. Tout d’abord il est clair que c’est le cas pour une
pyramide de base 1, c’est à dire une pyramide formée d’une seule et unique bille. En effet dans ce cas là
la renumérotation ne change rien, et la partie initiale est déjà jouée entièrement à gauche.

Qu’en est-il d’une partie de base b ? Regardons uniquement les coups joués dans la sous-pyramide de
base b − 1 se trouvant directement au dessus de la première ligne. Si on interprète les sauts de billes de
la première ligne vers la sous pyramide comme une bille directement posée dans la sous-pyramide (on
ignore totalement la première ligne) nous observons qu’une partie est jouée dans cette sous-pyramide !

Par hypothèse de récurrence appliquée sur cette partie là, nous pouvons jouer totalement à gauche et
obtenir la numérotation réarrangée de la sous-partie.

Qu’avons nous fait ? Nous avons séparé la pyramide en sa base et en une sous-pyramide, on considère
ensuite la partie ayant lieu dans cette sous-pyramide (on doit donc ignorer les sauts faits à partir de
la première ligne c’est-à-dire diminuer le poids des billes concernées de 1), sur laquelle on a ensuite
appliqué notre hypothèse de récurrence :

1 1 1
1 1 1 1 1 1
Sous-partie Récurrence
1 2 3 1 2 3 3 2 1
1 2 3 2 1 2 2 2 2 2 2 1
1 2 1 2 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Nous pouvons nous assurer que la diagonale de droite de la sous-partie soit remplie à la fin comme dans
les sections précédentes : on remplit la première ligne et on fait les sauts du coin inférieur droite.

Page 8 of 20
Analyse combinatoire du jeu de société Pylos

On va maintenant jouer entièrement à gauche la partie suivante (on complète la première ligne de
gauche à droite puis on joue la sous-partie trouvée précédemment) :

1
1 1 1
3 2 3 2 1
2 2 2 2 2 2 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Cette partie, jouée entièrement à gauche est très similaire à celle que nous voulons obtenir. Ce
qu’il reste à faire est de prendre en compte les sauts que nous avons ignorés lors de l’étude de la
sous-partie. Nous pouvons les inclure dans notre partie en les effectuant à partir du coin inférieur
droite : celui-ci permet d’augmenter le poids de n’importe quelle bille de la sous-pyramide d’une
unité (excepté les billes sur la diagonale de droite, mais cela n’est jamais nécessaire car ce sont les der-
nières billes jouées de chaque ligne, qui sont toujours de poids 1). Ceci fini la preuve de notre affirmation.

Nous sommes donc capable, pour toute partie, d’associer une partie se jouant entièrement à gauche
et de même longueur. La borne sur la longueur maximale d’une partie se jouant à gauche est donc
applicable pour toutes les parties !

Remarquons que ce passage à une partie jouée entièrement à gauche nous permet d’obtenir une
condition nécessaire pour qu’une numérotation de fin de partie puisse être obtenue : on renumérote
comme précédemment et on vérifie que cette nouvelle numérotation respecte les contraintes de poids
vues précédemment pour les parties jouées entièrement à gauche ! Cette question de numérotations
obtenables n’est pas traitée en plus de profondeur dans cet article.

Page 9 of 20
Analyse combinatoire du jeu de société Pylos

3 Nombre de parties
Dans cette section, notre objectif est simple : Dénombrer l’ensemble des parties. Nous allons simplifier
la situation au maximum afin de cerner la dynamique à l’oeuvre. Tout au long de ce qui suit, la règle
du saut ne sera pas d’application. Par conséquent, toutes les parties auront la même longueur. On se
demande en réalité combien existe-t-il de manières différentes de construire, seul, une pyramide de base
de taille arbitraire. La construction d’une pyramide admet une dynamique complètement déterminée
par deux contraintes. Premièrement, nous sommes sujets à la contrainte de gravité qui s’exprime
comme suit : On ne peut poser une nouvelle bille à un emplacement disponnible que si deux autres
forment un socle dessous. Autrement dit, aucune bille ne peut léviter, nous sommes contraints à la
gravité. Deuxièmement, nous sommes sujets à la contrainte de finitude qui s’exprime comme suit : Le
nombre de billes à la base de la pyramide est fini. Cela donne à celle-ci une hauteur finie et de faite,
un temps de construction finit. L’existence de ces deux contraintes explicites est fondamentale dans la
conception de la théorie qui suit, ou plus brutalement, dans la conception d’un algorithme informatique
de dénombrement. Pour sentir au mieux la dynamique induite par ces contraintes, nous nous attardons
sur la construction d’une partie bien précise de la pyramide, celle représentée en blanc dans la figure
qui suit, à savoir le trapèze formé par les deux premières diagonales gauches de la pyramide.

Figure 3 – Mise en évidence du trapèze formé par les deux premières diagonales

Nous commençons donc par répondre à la question suivante : Combien existe-t-il de manières
différentes de construire un trapèze de hauteur arbitraire ?

3.1 Ensemble des constructions du trapèze


Formellement, on représente la construction d’un trapèze de hauteur n ∈ N − {0}, où n est le nombre
d’emplacements dans la seconde diagonale, par une suite finie de 2n coups. Un tel trapèze est constitué
de 2n + 1 billes. Cependant, comme la bille au sommet de la pyramide associée sera toujours placée
en dernier lieu, on se permet de l’omettre. Dans la figure précédente, le découpage considéré défini
un système de coordonnées précis. Celui-ci induit naturellement le point de vue suivant, duquel on va
déduire une définition de l’ensemble des coups : À chaque instant de la construction, au plus deux coups
sont possibles, le premier consiste à placer une bille dans la première diagonale et le second consiste à en
placer une dans la seconde. Il est inutile de préciser à quelle hauteur est-ce qu’on place notre bille étant
donné la contrainte de gravité. En effet, on la place forcément sur le premier emplacement disponnible
en partant du bas de la diagonale choisie. Le premier coup est noté 1 et le second est noté 2. L’ensemble
des coups est noté Ω et est donc donné par Ω = {1, 2}. Ainsi, la construction ρ d’un trapèze de hauteur
n ∈ N − {0} est représentée par une suite de la forme ρ : τ = {1, 2, 3, ..., 2n} → Ω = {1, 2} : t 7→ ρ(t)
dans laquelle ρ(t) désigne le te coup joué et τ l’ensemble des instants de la construction. Pour faire un

Page 10 of 20
Analyse combinatoire du jeu de société Pylos

petit lien avec la section précédente, la longueur de la construction ρ est le cardinal de τ , à savoir 2n,
puisqu’on omet le sommet. Finalement, l’ensemble des construction d’un trapèze de hauteur n ∈ N − {0}
est noté T (n).

Avant de dénombrer T (n), on établit deux bornes sur son cardinal. L’intérêt de ce détour est le
suivant : Ces deux bornes vont induire des bornes analogues sur l’ensemble des constructions de la
pyramide, duquel nous n’aurons malheureusement pas de dénombrement au-delàs d’une certaine taille.

3.2 Borne exponentielle et borne combinatoire sur T (n)


T (n) est un sous-ensemble d’un ensemble évident et défini par,
n o
E(n) = ρ : τ = {1, 2, 3, ..., 2n} → Ω = {1, 2} : t 7→ ρ(t) ,

dont le cardinal est 22n = 4n . En effet, chaque suite de E(n) correspond à 2n choix mutuellement
indépendants d’un élément parmis deux. Cette quantité est nommée borne exponentielle sur T (n).
Pour cause, |T (n)| ≤ |E(n)| = 4n .

Mieux, T (n) est un sous-ensemble d’un ensemble plus petit. En effet, remarquons que dans chaque
construction, le coup 1 est joué autant de fois que le coup 2, c’est-à-dire n fois. De faite, T (n) est un
sous-ensemble de l’ensemble défini par,
n o
C(n) = ρ : τ = {1, 2, 3, ..., 2n} → Ω = {1, 2} : t 7→ ρ(t) |ρ−1 {1}| = n = |ρ−1 {2}| ,

où ρ−1 {ω} désigne la pré-image de ω ∈ Ω, ou autrement dit, l’ensemble des instants où on joue le coup
ω ∈ Ω. Chaque suite de C(n) correspond au choix de n positions du coup 1 parmis les 2n positions
possibles, autrement dit, on a autant de suite dans C(n) que de nombre de combinaisons de n éléments
parmis 2n, c’est-à-dire,
n 2n!
C2n = .
(n!)2
cette quantité est nommée borne combinatoire sur T (n). Pour cause, |T (n)| ≤ |C(n)| = 2n!/(n!)2 .

En conclusion, nous avons la chaine d’inclusions suivante,

T (n) ⊆ C(n) ⊆ E(n),

qui induit la chaine d’inégalités suivante,

2n!
|T (n)| ≤ ≤ 4n .
(n!)2

Cela, rappelons le, pour tout n ∈ N − {0}.

3.3 Chemins de Dyck et dénombrement de T (n)


Il est temps de dénombrer T (n). Pour cela, un point de vue intéressant est celui des mots de Dyck.
Un mot de Dyck de longueur 2n est un mot de longueur 2n écrit avec seulement deux lettres, disons a et
b, tel que la contrainte de Dyck soit respectée : À chaque instant de l’écriture du mot, le nombre de b ne
peut excéder le nombre de a. Par exemple, le mot abaababbab est un mot de Dyck de longueur 10, tandis
que le mot ababbabaab n’est pas un mot de Dyck. Observons que la contrainte de Dyck est analogue à
notre contrainte de gravité. En regard du système de coordonnées induit par le découpage du trapèze en
deux diagonales, l’analogie est évidente : Toute partie ρ ∈ T (n) est une suite de longueur 2n de 1 et de
2 telle qu’à chaque instant de l’écriture, le nombre de 1 ne peut excéder le nombre de 2 augmenté d’une

Page 11 of 20
Analyse combinatoire du jeu de société Pylos

unité. Par exemple, la construction 12211221 ∈ T (4) est valide tandis que la suite 11122221 ∈ C(4)
correspond à une construction non valide, c’est-à-dire allant à l’encontre de la contrainte de gravité. De
faite, le cardinal de T (n) est le nombre de mots de Dyck de longueur 2n.

À chaque mot de Dyck peut être associé un unique chemin de Dyck. Un chemin de Dyck de longueur
2n est un taxi-chemin, c’est-à-dire un chemin sur le quadrillage unitaire dans le plan R2 , reliant l’origine
(0, 0) et la destination (n, n) tel qu’une contrainte analogue à la contrainte de Dyck soit respectée : Le
chemin ne peut progresser que vers la droite et vers le haut, de telle manière à ne jamais passer une
unité ou plus au-delà de l’axe oblique passant par l’origine et la destination (n, n). Par exemple, dans
l’illustration qui suit, le chemin α est un chemin de Dyck de longueur 10 tandis que le chemin β, lui
aussi de longueur 10 et progressant uniquement vers la droite et vers le haut, n’est pas un chemin de
Dyck car il passe une unité au-delà de l’axe passant par l’origine et la destination (5, 5).

Figure 4 – Chemin de Dyck

La correspondance entre l’ensemble des mots de Dyck et l’ensemble des chemins de Dyck est simple :
La lettre a correspond à progresser vers la droite et la lettre b correspond à progresser vers le haut,
il est évident que cette correspondance peut être étendue aux taxi-chemins de longueurs 2n reliant
l’origine et la destination en ne progressant uniquement vers la droite et vers le haut. Dans l’illustration
précédente, le chemin α correspond au mot de Dyck abaababbab tandis que le chemin β correspond au
mot bababaaabb qui n’est pas un mot de Dyck.

Le nombre de chemins de Dyck de longueur 2n est bien connu des mathématiciens et est égal au ne
nombre de Catalan. On observe la suite de Catalan en mathématiques dans des dénombrements à
priori différents, mais à fortiori identiques. Les premiers termes de cette suite sont 1, 1, 2, 5, 14, 42, 132.
Elle a un lien étroit avec le nombre de parties de T (n). En effet, lançons-nous dans la preuve du résultat
suivant.

n n−2
∀n ≥ 2 : |T (n)| = C2n − C2n = (n + 1)e nombre de Catalan.
Pour prouver cela, voyons nos constructuions de T (n) comme des chemins de Dyck dans le plan
R2 reliant l’origine (0, 0) et la destination (n, n), uniquement en progressant vers la droite et vers le
haut, à la manière des chemins de Dyck. Fixons qu’aller à droite signifie jouer le coup 2 tandis que

Page 12 of 20
Analyse combinatoire du jeu de société Pylos

monter signifie jouer le coup 1. Ainsi, on observe qu’un chemin valide, c’est-à-dire correspondant à une
construction valide, est un chemin ne passant jamais une unité ou plus au-delà de l’axe, que l’on note γ,
d’équation y = x + 1, où x désigne l’axe horizontal et y l’axe vertical. Cet axe γ, tout comme tous les
objets qui suivent, est représenté en violet dans l’illustration qui suit et qui accompagne toute la preuve.

Figure 5 – Décompte des chemins non valides

Le chemin valide ρ = 122211122122112121 ∈ T (n) relie les points A = (0, 0) et B = (n, n) en restant
sous l’axe γ tandis que le chemin non valide δ = 211211122121121222 ∈ C(n) les relie en allant au-delà
de l’axe γ, c’est-à-dire en brisant la contrainte de gravité. Notons que n = 9 dans notre exemple.

Il est évident que l’ensemble des chemins valides est donné par la différence entre l’ensemble des
chemins C(n) et l’ensemble des chemins non valides reliant A et B. Remarquons que tout chemin non
valide, comme δ, intersecte l’axe β d’équation y = x + 2 en au moins un point. Notons Θ(δ) l’unique
point d’intersection de δ le plus proche de l’origine A. nous allons utiliser cette fonction Θ, définie
sur l’ensemble des chemins non valides de C(n), pour construire une bijection entre l’ensemble de
ces chemins et l’ensemble des taxi-chemins reliant le point A et le point B ′ = (n − 2, n + 2), pareille-
ment, uniquement en progressant vers la droite et vers le haut. Voici la transformation que nous allons
appliquer à un chemin non valide δ ∈ C(n). Ce chemin va être sectionné en deux sous-chemins au

Page 13 of 20
Analyse combinatoire du jeu de société Pylos

niveau du point Θ(δ), le premier sous-chemin, celui reliant A et Θ(δ), est laissé inchangé tandis que
le second sous-chemin, reliant Θ(δ) et B, est envoyé sur son image par symétrie orthogonale d’axe β,
ce sous-chemin symétrique est noté ϵ dans l’illustration. Ainsi, on a envoyé un chemin non valide sur
un chemin reliant A et B ′ . Dans notre exemple, on a envoyé le chemin δ = 211211Θ(δ)122121121222
sur le chemin 211211Θ(δ)ϵ = 211211Θ(δ)211212212111. Notons que le point B ′ est l’image du point B
par symétrie orthogonale d’axe β. Au niveau de la notation, cela revient à remplacer tous les 1 par des
2 et inversément à partir de Θ(δ). Cette transformation est une bijection étant donné qu’elle admet
une réciproque évidente, ce car Θ est bien définie, l’unicité du point d’intersection le plus proche de
l’origine est essentielle. Ainsi, on conclu : Le cardinal de T (n) est égal à la différence entre le cardinal
de C(n), soit la borne combinatoire sur T (n), et la quantité de taxi-chemins reliant A = (0, 0) et
B ′ = (n − 2, n + 2), encore et toujours, uniquement en progressant vers la droite et vers le haut, qui est
tout simplement le nombre de combinaisons de n − 2 éléments parmis 2n.

Notons que pour que cette construction soit bien définie, il est nécessaire que n ≥ 2. Pour n = 1,
T (1) = {12, 21} est de cardinal 2 et coïncide avec le 3e nombre de Catalan : 2.

3.4 Qualités des bornes exponentielle et combinatoire sur T (n)


On ne va pas établir une formule analytique du nombre de constructions de la pyramide de taille
arbitraire, mais établir dessus une borne exponentielle et une borne combinatoire, analogues à celles sur
T (n). L’avantage de la première est qu’elle est facile à calculer, l’avantage de la seconde est qu’elle est
plus précise. Par conséquent, il serait bon de connaître la qualité de ces bornes sur T (n), ce qu’on peut
faire puisqu’on en a un dénombrement théorique. Dans le tableau qui suit, on compare non seulement les
deux bornes à la valeur théorique, mais aussi leurs écarts à celle-ci et surtout l’évolution, en proportions
par rapports aux bornes, de ces écarts en fonction de n ∈ N − {0}. Nous notons e(n) la différence
n−2
4n − |T (n)|, il s’agit de l’écart de la borne exponentielle à la valeur théorique, et c(n) la quantité C2n ,
l’équivalent pour la borne combinatoire, définie pour n ≥ 2, étant donné le résultat de la sous-section
précédente. On pose également c(1) = 0 puisqu’on peut voir c(n) comme la quantité de chemins non
valide de C(n) et que C(1) = T (1) = {12, 21}. Enfin, e% (n) désigne le rapport,

e(n)
,
4n
converti en pourcents et c% (n) le rapport,
c(n)
n ,
C2n
également converti en pourcents, ce dernier est la proportion de parties non valides de C(n) au sein de
tous ses chemins.

n 4n e(n) e% (n) n
C2n c(n) c% (n) |T (n)|
1 4 2 50% 2 0 0% 2
2 16 11 68% 6 1 16% 5
3 64 50 78% 20 6 30% 14
4 256 214 83% 70 28 40% 42
5 1024 892 87% 252 120 47% 132
6 4096 3667 89% 924 495 53% 429
7 16384 14954 91% 3432 2002 58% 1430
8 65536 60674 92% 12870 8008 62% 4862
9 262144 245348 93% 48620 31824 65% 16796
10 1048576 989790 94% 184756 125970 68% 58786
11 4194304 3986292 95% 705432 497420 70% 208012
12 16777216 16034316 95% 2704156 1961256 72% 742900

Page 14 of 20
Analyse combinatoire du jeu de société Pylos

Dans ce tableau, on peut faire une série d’observations. Tout d’abord, on voit à quel point la
borne exponentielle est mauvaise, même pour des petites valeurs de n. Ensuite, on voit que la borne
combinatoire est meilleure, même si très vite, à partir de n = 6, cette borne a un écart à la valeur
théorique de plus de 50%. Autrement dit, la proportion de parties non valides de C(n) au sein de tous
ses chemins devient vite majoritaire, ce qui rend la borne assez vite mauvaise. Enfin, on voit à quel
point la suite des valeurs théoriques croît rapidement, un trapèze de taille 12, qu’on construit en 24
coups, donc dans un temps assez court, admet déjà 58786 constructions différentes.

3.5 Bornes exponentielle et combinatoire sur la pyramide


L’ensemble des constructions d’une pyramide dont la base admet n ∈ N − {0} emplacements est
noté ∆(n). De façon analogue à précédemment, on peut voir cet ensemble comme un sous-ensemble de
l’ensemble des applications,
n o
E∆ (n) = ρ : τ = {1, 2, 3, ..., n(n + 1)/2} 7→ Ω = {1, ..., n} ,

dans lequel ρ(t) désigne le te coup joué, Ω l’ensemble des coups possibles et τ l’ensemble des instants
dont le cardinal coïncide avec le nombre total de billes.

Figure 6 – Découpage de la pyramide en n diagonales

Dans l’illustration qui précède, on numérote les diagonales de gauche à droite de 1 à n. Notons que
pour simplifier les calculs, nous prennons en compte le sommet contrairement à précédemment, même
si celui-ci sera toujours joué en dernier lieu. La borne exponentielle sur ∆(n) est le cardinal de E∆ (n)
qui s’élève à
n(n+1)
n 2 .
Tandis que sa borne combinatoire est donnée par la cardinalité d l’ensemble suivant, dont ∆(n) est un
sous-ensemble,
n o
C∆ (n) = ρ : τ = {1, 2, 3, ..., n(n + 1)/2} 7→ Ω = {1, ..., n} ∀ω ∈ Ω : |ρ−1 {ω}| = n − (ω − 1) .

Nous allons extraire une formule analytique de son cardinal de l’idée suivante : Pour placer les n 1
au sein des n(n + 1)/2 instants, on a autant de choix que n combinaisons parmis n(n + 1)/2, et ensuite,
on se retrouve à calculer à nouveau une borne combinatoire, non plus sur C∆ (n), mais sur C∆ (n − 1).
Ainsi, nous avons l’égalité,

|C∆ (n)| = C nn(n+1) · |C∆ (n − 1)|.


2

Page 15 of 20
Analyse combinatoire du jeu de société Pylos

En remarquant que |C∆ (1)| = 1, on aboutit aisément à la formule analytique suivante,


n
Y
|C∆ (n)| = C kk(k+1) .
2
k=1

Dans une prochaine sous-section, on observera la qualité de ces bornes pour de petites valeurs de n.

3.6 Formalisation des contraintes et algorithme de dénombrement


Nous allons formaliser avec précisions les contraintes de gravité et de finitude afin de développer
un algorithme qui sera capable de dénombrer le nombre de constructions de la pyramide de taille
arbitraire. On pourra alors comparer nos bornes aux valeurs réelles ainsi calculées. Le noyau dur de cet
algorithme fonctionne comme suit. Il va considérer une sous-construction ϵ, c’est-à-dire un début de
construction, et se demander si elle est finie. Si oui, alors il oublie ϵ et un compteur préalablement défini
est incrémenté d’une unité. Sinon, il se demande quels coups sont possibles à jouer, ceux-ci sont induits
par les contraintes. Admettons que nous soyons dans ∆(12) et que les uniques coups possibles à ce
stade soient 1, 6 et 8. Dans cette configuration, notre algorithme va oublier le début de construction ϵ et
plutôt considérer les trois débuts de construction ϵ1, ϵ6 et ϵ8. Ensuite, il oppère le même questionnement
sur ces trois nouvelles sous-construction. Formellement, on lui donne une liste initiale [1,...,n] avec
les premières sous-constructions possibles et lui va transformer cette liste petit à petit en considérant
à chaque fois son premier élément. Oublier un élément signifie le supprimer de la liste, tandis qu’en
considérer de nouveaux signifie les ajouter à la liste. Et dès qu’il détecte une construction finie, il la
supprime de la liste et incrémente le compteur de constructions d’une unité. Enfin, cet algorithme, qui
prend en argument la taille n ∈ N − {0} de la pyramide, retourne le compteur. Le lecteur est libre de
consulter cet algorithme qui se trouve dans la sous-section de l’Annexe correspondante, mais ici, on se
contente de définir rigoureusement ces contraintes.

Comme mentionné plus tôt, on avait dans le trapèze une contrainte de gravité et une contrainte de
finitude. Dans une pyramide de taille n ∈ N − {0}, il y a en tout n − 1 contraintes de gravité et une
unique contrainte de finitude. Les n − 1 premières contraintes sont les suivantes : Lors du déroulement
de toute construction, le nombre de ω ∈ Ω − {n} joué ne peut excéder le nombre de ω + 1 joué augmenté
d’une unité, il y a une analogie forte avec l’axe γ de la sous-section 3.3 qui limite la progression vers
le haut des taxi-chemins valides. Tandis que la seconde est la suivante : Dans toute construction, on
ne peut jouer le coup n ∈ Ω qu’une seule fois. La contrainte de gravité empèche la première colone de
la pyramide de "grandir plus vite que la suivante" tandis que la contrainte de finitude fixe la hauteur
maximale de la pyramide ainsi construite à n. Pour définir l’application de contrainte, on a besoin de
l’ensemble suivant,
τk = {1, ..., k} pour k ∈ τ = {1, 2, 3, ..., n(n + 1)/2}.
Enfin, on définit,
−1
µ : ∆(n) × τ × Ω 7→ {0, ..., n} : µ(ρ, k, ω) = ρ|τk {ω} ,

où µ(ρ, k, ω) est le nombre de fois qu’on a joué ω dans la partie ρ durant les k premiers coups. L’ensemble
des contraintes est alors donné par les n − 1 contraintes de gravité,

∀ρ ∈ ∆(n) : ∀k ∈ τ : ∀ω ∈ Ω − {n} : µ(ρ, k, ω) ≤ µ(ρ, k, ω + 1) + 1,

et la contrainte de finitude,
∀ρ ∈ ∆(n) : ∀k ∈ τ : µ(ρ, k, n) ≤ 1.
C’est le fait de pouvoir formaliser analytiquement ces contraintes qui induit l’existence de l’algorithme
de dénombrement.

Page 16 of 20
Analyse combinatoire du jeu de société Pylos

3.7 Qualité des bornes exponentielles et combinatoires sur ∆(n)


Comparons à présent les résultats fournis par l’algorithme aux deux bornes et observons les évolutions
n(n+1)
de leurs écarts à la valeur calculée numériquement. On note e∆ (n) l’écart n 2 − |∆(n)| de la borne
exponentielle à la valeur numérique et c∆ (n) l’écart nk=1 C kk(k+1) − |∆(n)| de la borne combinatoire à
Q
2
la valeur numérique. Enfin, on note e∆
% (n) le rapport,

e∆ (n)
n(n+1)
,
n 2

converti en pourcents et c∆
% (n) le rapport,

c∆ (n)
n ,
Y
k
C k(k+1)
2
k=1

également converti en pourcents. Malheureusement, à partir de n = 6, le temps de calcul de l’algorithme


n’est plus raisonnable. Par ailleurs, les bornes deviennent rapidemment tellement grande que par soucis
de visibilité, nous décidons d’afficher seulement les 6 premières lignes.
n(n+1) Qn
n n 2 e∆ (n) e∆
% (n)
k
k=1 C k(k+1) c∆ (n) c∆
% (n) |∆(n)|
2
1 1 0 0% 1 0 0% 1
2 8 6 75% 3 1 33% 2
3 729 713 97% 60 44 73% 16
4 1048576 1047808 99% 12600 11832 93% 768
5 30517578125 30517285261 99% 37837800 37544936 99% 292864
6 21936950640377856 ? ? 2053230379200 ? ? ?

Dans ce tableau, on observe que la borne exponentielle est excèssivement mauvaise et même si la borne
combinatoire semble meilleure, la proportion de l’écart à la valeur calculée atteint rapidemment les
99%. Enfin, on observe le saut immense de 768 parties pour une pyramide de taille 4 à 292864 parties
pour une pyramide de taille 5, on commence là à toucher à des ensembles de constructions impossibles
à dénombrer à la main dans un temps raisonnable.

3.8 Piste de réflexion sur le dénombrement de la pyramide tridimensionnelle


A présent, nous proposons une piste de réflexion pour aborder le dénombrement de l’ensemble
des constructions dans le cas tridimensionnel, toujours sans la règle du saut, afin de se rapprocher
davantage du jeu de société initial. Il est évident que la construction de notre application de contrainte
de la sous-section 3.7 peut se généraliser au cas tridimensionnel. Ainsi, il existe un algorithme capable
de dénombrer l’ensemble désiré sur lequel on peut également définir des bornes analogues aux bornes
exponentielles et combinatoires. La clé de cette réflexion est un choix intelligent de notation pour la
construction tridimensionnelle, analogue au découpage de la pyramide en diagonales, celle-ci induira
une définition de l’ensemble des coups tridimensionnels. Plus le choix de cette notaion sera intelligent,
plus il induira un petit nombre de coups possibles. Ce nombre est arbitraire. En effet, sur T (n), on a 2
coups possibles car on l’a choisi, mais on aurait pu, par exemple, définir qu’un coup correspond, non plus
à une diagonale, mais à un emplacement. À ce moment là, on aurait 2n coups possibles, sans prendre
en compte le sommet, et la borne exponentielle, non plus égale à 4n , aurait été égale à n!, on parle alors
de borne factorielle, c’est le cas limite, le moins bon, de la borne exponentielle, celui dans lequel un
coup correspond à un emplacement. L’idée est d’utiliser le plus intelligemment possible les contraintes
de gravité pour regrouper plusieurs emplacements de la même diagonale tridimensionnelle en un

Page 17 of 20
Analyse combinatoire du jeu de société Pylos

même coup tridimensionnel. La borne factorielle sur la pyramide tridimensionnelle de base n × n est
égale à la factorielle du nombre total de billes, soit,
n
X 
2 n(n + 1)(2n + 1)
k != !.
6
k=1

Nous laissons au lecteur le plaisir de poursuivre la réflexion.

Page 18 of 20
Analyse combinatoire du jeu de société Pylos

4 Annexe : Codes Python


4.1 Modélisation d’une pyramide et calcul de la longueur d’une partie

1 def Pyramide ( b ) :
2 # b est la taille de la base de la pyramide , return une pyramide ou l ’ element Pyramide
[ i ][ j ] est la place au i - eme etage et j - eme colonne .
3 list = [0] * b
4 for i in range ( b ) :
5 list [ i ] = [0] * (b - i )
6 return list
7
8 def Plp ( p ) :
9 # Partie la plus longue , prend une pyramide en argument , return le nombre coups joues
10 b = len ( p )
11 count = 2
12 for i in range (b -2) :
13 for j in range (b - i ) :
14
15 if p [ i ][ j ] == 0:
16 # on ajoute une bille
17 p [ i ][ j ] = 1
18 count = count + 1
19
20 if p [ i ][ j -2] == 1 and p [ i ][ j -1] == 1 and p [ i ][ j ] == 1 and p [ i +1][ j -2] ==
0:
21 # on fait sauter la bille et on remet une nouvelle bille a la place
22 p [ i +1][ j -2] = 1
23 count = count + 2
24 return count

4.2 Algorithme de dénombrement de l’ensemble des constructions

1 # Retourne la liste [[1] ,[2] ,... ,[ n -1] ,[ n ]] de tous les debuts de constructions
possibles .
2 def Delta1 ( n ) :
3 D = []
4 for omega in range (1 , n +1) :
5 D . append ([ omega ])
6 return D
7
8 # Retourne la liste [1 ,2 ,... , n -1 , n ] des coups possibles .
9 def Omega ( n ) :
10 O = []
11 for omega in range (1 , n +1) :
12 O . append ( omega )
13 return O
14
15 # Retourne le nombre d ’ occurence du coup omega dans un debut de construction rho .
16 def nu ( rho , omega ) :
17 n = 0
18 for r in rho :
19 if r == omega :
20 n = n + 1
21 return n
22
23 # Retourne True si et seulement si rho - omega est une construction valide de Delta ( n ) .
24 def can (n , rho , omega ) :
25 if omega == n :
26 if nu ( rho , omega ) == 0:
27 return True
28 else :

Page 19 of 20
Analyse combinatoire du jeu de société Pylos

29 return False
30 else :
31 if nu ( rho , omega ) < nu ( rho , omega +1) + 1:
32 return True
33 else :
34 return False
35
36 # Retourne le nombre de constructions de Delta ( n ) .
37 def | Delta |( n ) :
38 Delta = Delta1 ( n )
39 |D| = 0
40 while len ( Delta ) > 0:
41 rho = Delta [0]
42 End = True
43 for omega in Omega ( n ) :
44 if can (n , rho , omega ) :
45 rhoomega = rho . copy ()
46 rhoomega . append ( omega )
47 Delta . append ( rhoomega )
48 End = False
49 if End :
50 |D| = |D| + 1
51 Delta . remove ( rho )
52 else :
53 Delta . remove ( rho )
54 return | D |

Page 20 of 20

Vous aimerez peut-être aussi