Cours Graphes
Cours Graphes
Cours Graphes
UNIVERSITÉ DE NANCY
Olivier GARET
1 Graphes 1
1.1 Graphes orientés . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1 Degrés d’un sommet, matrice d’adjacence . . . . . . . . 1
1.1.2 Morphismes de graphes orientés . . . . . . . . . . . . . 2
1.1.3 Graphe engendré par une partie . . . . . . . . . . . . . 3
1.2 Graphes non orientés . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.1 Graphes orientés symétriques et graphes non-orientés . 4
1.2.2 Degrés d’un sommet, matrice d’adjacence . . . . . . . . 4
1.2.3 Morphismes de graphes non-orientés . . . . . . . . . . 5
1.2.4 Graphe engendré par une partie . . . . . . . . . . . . . 6
1.2.5 Notion de clique . . . . . . . . . . . . . . . . . . . . . . 6
1.3 Graphes classiques . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3.1 Graphe complet . . . . . . . . . . . . . . . . . . . . . . 6
1.3.2 Graphe cyclique . . . . . . . . . . . . . . . . . . . . . . 7
1.3.3 Graphe biparti complet . . . . . . . . . . . . . . . . . . 7
1.4 Chemins dans un graphe orienté . . . . . . . . . . . . . . . . . 8
1.5 Chemin de longueur minimale . . . . . . . . . . . . . . . . . . 8
1.5.1 Cas où toutes les arêtes ont le même coût . . . . . . . 9
1.5.2 Cas général : algorithme de Dijkstra . . . . . . . . . . 10
1.6 Cycles eulériens, chaı̂nes eulérienne . . . . . . . . . . . . . . . 10
1.7 Matrice d’adjacence associée à un graphe . . . . . . . . . . . . 12
1.7.1 Nombre de chemins . . . . . . . . . . . . . . . . . . . . 12
1.7.2 La semi algèbre des matrices d’adjacences . . . . . . . 12
1.7.3 Application au calcul du diamètre d’un graphe . . . . . 13
1.8 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
i
ii TABLE DES MATIÈRES
3 Jeux de blocage 33
3.1 Jeux sur un graphe . . . . . . . . . . . . . . . . . . . . . . . . 33
3.2 Somme digitale . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.2.1 Développement binaire d’un entier . . . . . . . . . . . 35
3.2.2 Quelques propriétés de la différence symétrique . . . . 36
3.2.3 Application . . . . . . . . . . . . . . . . . . . . . . . . 37
3.3 Noyau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.4 Fonction de Grundy . . . . . . . . . . . . . . . . . . . . . . . 39
3.5 Jeux décomposables . . . . . . . . . . . . . . . . . . . . . . . . 42
3.5.1 Le théorème de Grundy . . . . . . . . . . . . . . . . . 42
3.5.2 Applications aux jeux de type Nim . . . . . . . . . . . 44
3.5.3 Étude d’un exemple . . . . . . . . . . . . . . . . . . . . 48
3.6 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Index 53
Chapitre 1
Graphes
(a, b) ∈ A ⇐⇒ (b, a) ∈ A.
d−
A (x) = |{y ∈ S; (y, x) ∈ A}|.
1
2 CHAPITRE 1. GRAPHES
Ainsi, dTA (x) est le nombre d’arêtes dont x est une extrémité, les boucles
étant comptées deux fois.
On appelle matrice d’adjacence du graphe G = (S, A) la matrice
M = (mi,j )(i,j)∈S 2 indexée par les sommets du graphe telle que
{
1 si (i, j) ∈ A
mi,j =
0 si (i, j) ∈
/A
et ∑
∀j ∈ S d−
A (j) = mi,j .
i∈S
Gc = (S, B2 (S)\A).
4 CHAPITRE 1. GRAPHES
G = (S, B2 (S)),
K3 K4
1.3. GRAPHES CLASSIQUES 7
G = (Z/nZ, A),
où
A = {{x, y} ∈ B2 (Z/nZ), x − y ∈ {−1, +1}}.
C3 C5
G = (X ∪ Y, A),
A = {{x, y}, x ∈ X; y ∈ Y }.
K3,1 K3,2
Remarque : : les graphes Kp,q et Kq,p sont isomorphes.
8 CHAPITRE 1. GRAPHES
V + (F ) = {y ∈ S ∃x ∈ F (x, y) ∈ A}.
V − (F ) = {x ∈ S ∃y ∈ F (x, y) ∈ A}.
Ces notions ont été présentées pour un graphe orienté. Elles s’étendent
aux graphes non-orientés sans difficulté.
Deux sommets nous étant donnés, l’un appelé sommet de départ, l’autre
sommet d’arrivée, un problème est de déterminer un chemin de coût minimal
reliant le sommet de départ au sommet d’arrivée.
Afin de simplifier l’exposé, on supposera ici que l’on travaille avec un
graphe fini.
On dit qu’une chaı̂ne d’un graphe G est eulériene si elle passe par tous
les points du graphe et utilise chaque arête une unique fois.
On dit qu’un cycle d’un graphe G est eulérien s’il passe par tous les points
du graphe et utilise chaque arête une unique fois.
Bien sûr, une chaı̂ne eulérienne ou un cycle eulérien ne peuvent exister
que sur un graphe connexe.
On dit qu’un graphe est eulérien s’il possède au moins un cycle eulérien
∏
où l’on a posé k0 = i et kn = j. Or n−1 i=0 mki ,ki+1 vaut 1 si et seulement si
k0 , k1 , . . . , kn est un chemin de i vers j. Dans le cas contraire, ce produit vaut
0. Comme on a énuméré toutes les listes de candidates potentielles pour être
une séquence de longueur n reliant i à j, le résultat s’ensuit.
Ainsi, il existe un chemin de longueur n de i vers j dans un graphe de
matrice d’adjacence M si et seulement si (M n )i,j > 0.
1.8 Exercices
1. Montrer que, depuis l’apparition de l’homme sur terre, le nombre
d’hommes ayant serré la main d’un nombre impairs de personnes est
pair.
2. Soit X un ensemble à 5 éléments. Combien existe-t-il de graphes
simples orientés construits sur X ?
3. Pour n ≥ 2, on note En le graphe complémentaire de Cn . Pour n ∈
{2, . . . , 6}, représenter Cn et En .
4. Soit n ≥ 2. On pose S =∈ Z/nZ et l’on se fixe un a ∈ Z/nZ. On
définit un graphe orienté G = (S, A) sur S par
(x, y) ∈ A ⇐⇒ y = x + a.
(a) On rappelle que pour n entier admettant la décomposition en pro-
duits de facteurs premiers :
n = pα1 1 . . . pαk k ,
on a
ϕ(n) = pα1 1 −1 (p1 − 1) . . . pαk k (pk − 1),
où ϕ(n) désigne le nombre d’inversibles de Z/nZ (ou encore le
nombre d’entiers entre 1 et n qui sont premiers avec n).
Montrer que n ≥ 7 =⇒ ϕ(n) ≥ 4.
(b) Pour quelles valeurs de n a-t-on “G connexe =⇒ a ∈ {+1; −1} “ ?
5. Montrer que si un graphe G = (X, E) possède k composantes connexes,
on a
|X| ≤ |E| + k.
Suggestion : on pourra procéder par récurrence sur le nombre d’arêtes.
6. Un enseignant pose 24 exercices à ses étudiants. Chacun des exercices
vaut un point, et la note accordée à chaque exercice ne peut valoir
que 0 ou 1. Catastrophe ! Non seulement les étudiants ont tous 6/24,
mais pire, chaque exercice a été résolu par exactement deux étudiants !
Magnanime, l’enseignant leur propose alors de travailler par binômes :
chaque membre d’un binôme aura alors la note de leur copie commune.
On suppose que deux étudiants n’ont jamais plus d’un exercice réussi
en commun. Montrer qu’il est possible aux étudiants de s’associer de
telle manière que tout le monde ait la moyenne.
(Note : évidemment, la copie rendue par le binôme donne la bonne
réponse a un exercice donné si au moins l’un des deux membres
connaissait la bonne réponse.)
1.8. EXERCICES 15
à gauche.
(a) Pour chacun des sommets du graphe, déterminer un chemin de
longueur minimale allant du sommet de départ (0, 0) à ce sommet.
(b) Adapter l’algorithme du cours de façon à déterminer, pour chaque
sommet du graphe, le nombre de chemins de longueur minimale
joignant le somment de départ à ce sommet.
10. On considère le graphe non-orienté d’ensemble de sommets
S = {0, 1, 2, 3} × {0, 1, 2, 3, 4}
et d’arêtes
A = {{u, v} ∈ B2 (S) ∥u − v∥ = 1},
où ∥u − v∥ = |u1 − v1 | + |u2 − v2 |. Faire un dessin de ce graphe, puis
répondre aux questions suivantes :
(a) Pour chacun des sommets du graphe, déterminer un chemin de
longueur minimale allant du sommet de départ à ce sommet.
(b) Adapter l’algorithme du cours de façon à déterminer, pour chaque
sommet du graphe, le nombre de chemins de longueur minimale
joignant le somment de départ à ce sommet. Que remarquez-vous ?
16 CHAPITRE 1. GRAPHES
∑
k ∑
n
∀k ∈ {1, . . . , n} d(xi ) ≤ k(k − 1) + min(k, d(xi )).
i=1 i=k+1
A B C
(b) Lorsqu’ils le sont, l’isomorphisme est-il unique ?
1.8. EXERCICES 17
fleuve qui l’entoure se divise en deux bras, sur lesquels sont jetés les
sept ponts a, b, c, d, e, f, g. Cela posé, peut-on arranger son parcours de
telle sorte que l’on passe sur chaque pont, et que l’on ne puisse y passer
qu’une seule fois ? Cela semble possible, disent les uns ; impossible,
disent les autres. ≫
Tous les graphes considérés dans ce chapitre sont des graphes non-orientés.
Cela signifie que 2 sommets qui sont dans E ne peuvent être reliés.
On dit qu’un graphe G = (S, A) est k-parti s’il existe une partition
(E1 , . . . , Ek ) de S formée de k stables.
Remarques :
— On ne dit pas “un graphe 2-parti”, mais plutôt “un graphe biparti”.
— Le graphe G = (S, A) est au moins |S|-parti (il suffit de prendre
comme partition de S l’ensemble des singletons de S).
Exemple : On prend pour S l’ensemble des étudiants hétérosexuels actifs
de la faculté des Sciences (on suppose cet ensemble non-vide) et on relie x
et y s’ils ont eu des relations sexuelles. Le graphe obtenu ainsi est biparti.
Il suffit de considérer l’ensembles des hommes, d’une part, l’ensemble des
femmes d’autre part.
19
20 CHAPITRE 2. COLORIAGE DES SOMMETS
Le graphe V4 .
Le graphe L4 .
Le coloriage de C3 correspondant.
Théorème 12. Soit G un graphe simple dont e est une arête. Alors on a la
formule
∑
n
PG (X) = (−1)n−k ak X k
k=1
Démonstration. L’unicité d’un tel polynôme provient du fait que deux po-
lynômes coı̈ncidant en une infinité de points – ici les éléments de N – sont
nécessairement égaux.
Pour l’existence, on va procéder par récurrence sur le nombre d’arêtes
|A|. Lorsque |A| = 0, G est le graphe sans arêtes. Or on a vu précédemment
que le graphe sans arêtes à n éléments vérifie |CPk (Vn )| = k n . Ainsi, on a
PVn = X n . Il est facile de voir que ce polynôme vérifie toutes les propriétés
citées.
Supposons maintenant |A| ≥ 1 et soit e une arête de G. D’après le
théorème 12, on a |CPk (G)| = |CPk (G − e)| − |CPk (G.e)|. Or les graphes
G − e et G.e contiennent tous deux |A| − 1 arêtes. Si l’on pose alors PG =
PG−e − PG.e , on a bien alors |CPk (G)| = PG (k).
G − e possède autant de sommets que G, donc, d’après l’hypothèse de
récurrence, PG−e est de degré n. Encore d’après l’hypothèse de récurrence,
on peut trouver des entiers positifs où nuls (ak ) tels que
∑
n
PG−e (X) = (−1)n−k ak X k .
k=1
∑
n−1
PG.e (X) = (−1)n−1−k bk X k .
k=1
PG = PG−e − PG.e
∑n ∑
n−1
= (−1) ak X −
n−k k
(−1)n−1−k bk X k
k=1 k=1
∑
n−1
= an X n + (−1)n−k (ak + bk )X k
k=1
∑
n−1
= Xn + (−1)n−k (ak + bk )X k .
k=1
2.4. UN EXEMPLE DE CALCUL 25
Ainsi PG est bien unitaire, de degré n – c’est à dire son nombre de sommets
– et de coefficient en X 0 nul. Comme les suites (ak ) et (bk ) sont à termes
positifs, la suite (ak + bk ) l’est aussi. Quant au coefficient en X n−1 , il vaut
−(an−1 + bn−1 ) = −(an−1 + 1). D’après l’hypothèse de récurrence, an−1 est le
nombre d’arêtes de G − e, c’est à dire |A| − 1 : le coefficient de PG en X n−1
vaut donc bien −|A|.
PG = PG−e − PG.e
G G-e G.e
= -
= -
= -
On a successivement
PG = PC4 − PL3
PC4 = PL4 − PC3
PC3 = PL3 − PL2
On en déduit
2.6 Exercices
1. Faire un beau dessin de K4 et déterminer son nombre chromatique.
2. Montrer qu’un graphe est biparti si et seulement si il ne possède aucun
cycle élémentaire de longueur impaire.
3. (a) Soit G = (X, E) un graphe. On note X1 , X2 , . . . , Xχ(G) une parti-
tion de G en χ(G) couplages. Soit p ∈ {1, . . . , χ(G)}. Montrer que
p
le nombre chromatique du sous-graphe de G engendré par ∪ Xk
k=1
est p.
(b) Montrer que dans tout graphe G vérifiant χ(G) ≥ 6, on peut
trouver deux cycles élémentaires de longueur impaire disjoints.
4. (a) Soit G = (S, A) un graphe biparti. Montrer qu’il existe une appli-
cation ε : S → {+1; −1} telle que
∑
ε(x)d(x) = 0.
x∈S
(b) Des garçons et des filles dansent dans une soirée de gala. À la fin
de la soirée, on demande à chacun et chacune le nombre de danses
auxquelles ils ont participé.
Les réponses sont 3, 3, 3, 3, 3, 5, 6, 6, 6, 6.
Montrer qu’au moins une personne a fait une erreur.
5. Pour n entier non nul, calculer PKn .
6. Soit G un graphe possédant 5 sommets. Montrer que ce graphe admet
au moins 120 coloriages propres à 5 couleurs.
7. Soit G un graphe connexe non-orienté, avec G ̸= L2 . On suppose que
G possède m sommets de degré 1. Montrer que le polynôme (X − 1)m
divise PG .
8. Soit G = (S, A) un graphe et (S1 , S2 ) une partition de S telle que
∀X ∈ S1 ∀y ∈ S2 {x, y} ∈
/ A.
∑
n
P (X) = ak X k ,
k=0
Jeux de blocage
Tous les graphes considérés dans ce chapitre sont des graphes orientés.
Exemple : Un sac contient 100 pièces d’or. Deux joueurs y puisent al-
ternativement un certain nombre de pièces d’or, une au minimum, dix au
maximum. Celui qui ne peut plus prendre de pièce a perdu (et donc l’autre
a gagné).
Ici S = {1, . . . , 100} et A = {(i, j) ∈ A2 1 ≤ i − j ≤ 10}.
On dit qu’un graphe simple orienté G = (S, A) est progressivement fini si
il n’existe pas de chemin de longueur infinie dans G : pour toute suite (xi )i≥0
à valeurs dans S, il existe i ≥ 0 tels que (xi , xi+1 ) ∈
/ A.
33
34 CHAPITRE 3. JEUX DE BLOCAGE
{0, |S|} → S
i 7→ xi
∑
n ∑
n
ϕ(x0 ) ≥ ϕ(x0 ) − ϕ(xn ) = (ϕ(xi−1 ) − ϕ(xi )) ≥ 1 = n,
i=1 i=1
Pf2 → N
∑
A 7→ s(a) = x.
x∈A
est bijective.
On notera p sa bijection réciproque.
∑
s(x) = x ≥ min(A) ≥ 1 > 0.
x∈A
A∆B = {x ∈ A; x ∈
/ B} ∪ {x ∈ B; x ∈
/ A}.
On a les propriétés suivantes :
— ∀A, B A∆B = B∆A.
— ∀A A∆∅ = ∅∆A = A.
— ∀A A∆A = ∅.
— ∀A, B, C (A∆B)∆C = A∆(B∆C).
— 11A∆B ) = 11A + 11B mod 2.
3.2. SOMME DIGITALE 37
3.2.3 Application
.
Pour a, b entiers naturels, on définit leur somme digitale a + b par
.
a + b = s(p(a)∆p(b)).
Exemple :
.
37 + 17 = s(p(37)∆p(17)) = s({1; 4; 32}∆{1; 16}) = s({4; 16; 32}) = 52.
On a les propriétés suivantes :
. .
— ∀a, b ∈ N a + b = b + a.
. .
— ∀a ∈ N a + 0 = 0 + a = a.
.
— ∀a ∈ N a + a = 0.
. . . .
— ∀a, b, c (a + b) + c = a + (b + c).
.
Lemme 4. Soient a, b, c ∈ N tels que a < b + c.
Alors
.
— soit a + b < c,
.
— soit a + c < b.
3.3 Noyau
Soit G = (S, A) un graphe orienté simple.
On dit qu’un ensemble N ⊂ S est un noyau de G si il vérifie
— ∀x ∈ N V + (x) ∩ N = ∅
— ∀y ∈ S\N V + (y) ∩ N ̸= ∅
∀x ∈ S g(x) = min{n ∈ N n ∈
/ g(V + (x))}. (3.1)
N = {x ∈ S; g(x) = 0}
est un noyau de G.
∀y ∈ V (x) y ∈
+
/ N.
Soit x ∈ S\N : on a 0 ̸= g(x) = min{n ∈ N n ∈ / g(V + (x))}. Pour que
0 ne soit pas le plus petit élément d’une partie de N, il faut que cette partie
ne contienne pas 0, donc 0 ∈ g(V + (x)), donc ∃y ∈ V + (x), avec g(y) = 0, soit
y ∈ N.
Le théorème qui suit est dû à Grundy. Son rôle est essentiel, car il permet
de montrer que les objets dont on parle existent bien dans de nombreux cas.
1. Si le nombre des sommets est infini, on utilise l’axiome du choix...
40 CHAPITRE 3. JEUX DE BLOCAGE
Sk+1 = {x ∈ S V + (x) ⊂ Sk }.
Pour connaı̂tre ou définir une fonction sur S, il suffit donc de le faire sur
tout les Sk . On va donc procéder ainsi pour définir une fonction de Grundy
g.
Pour x ∈ S1 , la définition d’une fonction de Grundy impose de poser
g(x) = 0.
Posons donc comme hypothèse de récurrence Hk : il existe une unique
fonction g : Sk → N vérifiant
∀x ∈ Sk g(x) = min{n ∈ N n ∈
/ g(V + (x))}. (3.2)
g(x) = min{n ∈ N n ∈
/ g(V + (x))}.
Exemples :
1. Le jeu de Grossbaff et Grossbouff, hommes préhistoriques.
Un paquet de 100 lézards est sur la table. À tour de rôle, chacun en
mange autant qu’il veut, au moins un. Celui qui ne peut plus manger
a perdu. Grossbaff commence. Nous allons voir – qui l’eût cru – qu’il
existe une stratégie gagnante pour Grossbaff. On a S = {0, . . . , 100}
et A = {(x, y) ∈ S 2 ; y < x}. (Bien remarquer que le graphe est la
traduction de la règle du jeu). En appliquant le lemme 1 à ϕ(x) = x,
on voit que le graphe est progressivement fini. Comme V + (0) = ∅, on
a g(0) = 0. Alors, on monte par récurrence sur n que g(n) = n. Le
noyau du graphe est donc réduit à {0}.
2. Préhistoire de la civilité
Quelques centaines de milliers d’années ont passé et les mœurs se
sont adoucies. Grossbaff et Grossbouff, hommes préhistoriques, ont
toujours un paquet de 100 lézards est sur la table. À tour de rôle,
chacun en mange au moins un, mais – civilité oblige – s’interdit d’en
prendre plus que m. Celui qui ne peut plus manger a perdu. Grossbaff
commence. On a S = {0, . . . , 100} et A = {(x, y) ∈ S 2 ; x − m ≤
y < x}. (Là encore, le graphe est la traduction de la règle du jeu).
En appliquant le lemme 1 à ϕ(x) = x, on voit que le graphe est
progressivement fini. Comme V + (0) = ∅, on a g(0) = 0. Alors, on
monte par récurrence sur n que g(n) est le reste de la division de n
par (m + 1). Le noyau du graphe est donc à (m + 1)N ∩ {0, . . . , 100}.
Si m + 1 divise 100 et que Grossbouff a suivi l’unité Probabilités et
Graphes , alors Grossbaff va perdre.
3. Promotion sociale
Quelques centaines de milliers d’années ont (encore) passé et les mœurs
se sont (encore) adoucies. M. de Grossbaff et M. de Grossbouff, pairs
du royaume, ont maintenant un paquet de 100 ortolans est sur la table.
À tour de rôle, chacun en mange au moins un, mais – civilité oblige
– s’interdit d’en prendre plus que m. Celui qui mangera le dernier se
sentira confus, et devra se retirer, ayant perdu l’estime du roi. M. de
Grossbaff commence.
On a S = {1, . . . , 100} et A = {(x, y) ∈ S 2 ; x − m ≤ y < x}. (Là
42 CHAPITRE 3. JEUX DE BLOCAGE
Sk+1 = {x ∈ S V + (x) ⊂ Sk }.
Une propriété réalisée dans tous les Sk est donc réalisée dans S tout entier.
Posons comme hypothèse de récurrence Hk :
.
∀z ∈ Sk ∀(x, y) ∈ S 2 z = x + y =⇒ g(z) = g(x) + g(y) (3.3)
.
— cas où g(z) < g(x) + g(y).
D’après le lemme 4, on a
.
— soit g(z) + g(x) < g(y),
.
— soit g(z) + g(y) < g(x).
— Dans le premier cas, en utilisant comme précédemment la définition
d’une fonction de Grundy, on trouve s ∈ V + (y) tel que g(s) =
.
g(z) + g(x).
. .
Comme x + s ∈ x + V + (y) ⊂ V + (x + y) = V + (z) ⊂ Sn , on a
.
g(x + s) = g(x) + g(s), d’où
. .
g(x + s) = g(x) + (g(z) + g(x)) = g(z),
. .
g(t + y) = (g(z) + g(y)) + g(y) = g(z),
— enlever du jeu un, plusieurs pions, voire la totalité des pions du tas
— créer un ou plusieurs nouveaux tas à partir d’ un, plusieurs pions,
voire la totalité des pions du tas
— toute combinaison de ces deux actions
Il est important de noter qu’on ne peut pas modifier deux tas existants à la
fois. Le joueur qui ne peut plus jouer a perdu
Exemples :
1. on choisit un tas et on en enlève au moins un pion, éventuellement la
totalité (jeu de Fan Tan).
2. on choisit un tas et on en enlève 1 ou 2 pions (pas plus que sa hauteur,
bien sûr).
3. on choisit un tas, on en enlève 1 pion, puis on le divise en 2 tas non
vides.
4. on choisit un tas que l’on divise en deux tas non vides inégaux.
5. on choisit un tas que l’on divise en deux tas non vides dont la différence
des tailles ne peut dépasser 1.
Modélisation
L’état du jeu est modélisé par une suite d’entiers nuls à partir d’un certain
∗
rang : on note S = (NN ) Si x = (xi )i≥1 est un élément de S, xk représente
le nombre de tas de hauteur k quand le jeu est dans l’état x.
On note tk la position du jeu formée d’un unique tas de hauteur k. Ainsi,
tki est égal à un si k = i, à zéro sinon.
On note 0 la suite identiquement nulle, correspondant à une table de jeu
vide.
Si l’on a 2 suites x = (xn )n≥1 et y = (yn )n≥1 à valeurs dans Z, on note
∗
comme d’habitude x + y = (xn + yn )n≥1 . Si A est inclus dans ZN , on note
x + A = {x + y; y ∈ A}
∗
On se donne maintenant une famille (Ai )i≥1 de parties de ZN vérifiant
∀k ≥ 1 ∀x ∈ Ak tk + x ∈ S.
V + (x) = ∪ x − ti + V + (ti ).
i:xi >0
Exemples :
1. Fan Tan on choisit un tas et on en enlève au moins un pion, éventuellement
la totalité.
∀k ≥ 1 Ak = {−tk } ∪ {−tk + ti ; 0 < i < k}.
4. on choisit un tas que l’on divise en deux tas non vides inégaux.
A1 = A2 = ∅ et
∀k ≥ 3 Ak = {−tk + ti + tk−i ; 1 ≤ i < k/2}.
5. on choisit un tas que l’on divise en deux tas non vides dont la différence
des tailles ne peut dépasser 1. A1 = ∅ et
∀k ≥ 1 A2p = {−t2p + 2tp } et A2p+1 = {−t2p + tp + tp+1 }
on a
∑
g(x) = g(ti ),
xi =1 mod 2
∑
.
(ATTENTION ! est une somme digitale !)
3.5. JEUX DÉCOMPOSABLES 47
et
∑
y= yi ti .
i≥1
On a
V + (x + y) = ∪ x + y + Ai
i:xi +yi >0
( )∪( )
= ∪ x + y + Ai ∪ x + y + Ai
i:xi >0 i:yi >0
( )∪( )
= ( ∪
x + Ai ) + y x+( ∪ y + Ai )
i:xi >0 i:yi >0
( )∪( )
= V + (x) + y x + V + (y)
On a donc
∑
.
g(x) = g(xi ti ).
i≥1
∑
∀i ≥ 0 ∀x ∈ V + (ti ) kxk ≤ i.
k≥1
∑
+∞
ϕ(x) = k 2 xk .
k=1
Soit x ∈ S et y ∈ V + (x).
Nous avons déjà remarqué que V + (x) = ∪ x − ti + V + (ti ). Il existe donc
i:xi >0
48 CHAPITRE 3. JEUX DE BLOCAGE
≤ −i0 2 + i20 = 0
L’égalité ne peut donc se produire que si x = ti0 , ce qui est absurde car on a
supposé dès le départ que le graphe est sans boucle.
On a donc
∀x ∈ S ∀y ∈ V + (x) ϕ(y) < ϕ(x).
Comme ϕ est à valeurs dans N, les hypothèses du lemme 1 sont vérifiées. Le
graphe du jeu est donc progressivement fini.
Celui qui enlève le dernier jeton a gagné. Question : le premier joueur possède-
t-il une stratégie gagnante ? Si oui, comment peut-il jouer son premier coup
sans perdre son avantage ?
Le jeu considéré ici est un jeu de Nim sans création de pions. La règle du
jeu peut se traduire par
— V + (t1 ) = {0},
— V + (t2 ) = {t1 },
— ∀k ≥ 3 V + (tk ) = {tk−1 ; tk−2 + t2 }.
On construit ligne après ligne le tableau suivant (avec la notation t0 = 0
(c’est le jeu vide) ).
La position de départ est x = t1 +t2 +t3 +t4 +t5 : elle a donc comme nombre
. . . . . . . .
de Grundy g(t1 ) + g(t2 ) + g(t3 ) + g(t4 ) + g(t5 ) = 1 + 0 + 2 + 1 + 0 =
. .
1 + 1 + 2 = 2. Son nombre de Grundy n’est pas nul : cette position n’est
donc pas dans le noyau : le joueur qui commence peut donc amener son
adversaire dans le noyau, puis, s’il ne fait pas d’erreur, gagner la partie.
Pour passer d’une position x qui n’est pas dans le noyau à une position y
qui est dans le noyau, il faut et il suffit de trouver un entier i0 et un y ′ ∈ S tels
que xi0 > 0 et y ′ ∈ V + (ti0 ) tels que si l’on pose y = x−ti0 +y ′ , on ait g(y) = 0,
.
ce qui équivaut à g(ti0 ) + g(y ′ )) = g(x). Ici, comme x = t1 + t2 + t3 + t4 + t5
et g(x) = 2 il faut choisir i0 dans {1, 2, 3, 4, 5} et y ′ ∈ V + (ti0 ) tels que
.
g(ti0 ) + g(y ′ )) = 2. On voit facilement que ce système admet deux solutions :
l’une est i0 = 3 et y ′ = t2 ; elle consiste à enlever 1 pion au troisième tas.
L’autre solution est i0 = 5 et y ′ = t2 + t3 : elle consiste à enlever 2 pions aux
50 CHAPITRE 3. JEUX DE BLOCAGE
3.6 Exercices
1. La cagnotte
Deux joueurs s’opposent. Ils partent de zéro. Chacun à leur tour ajoute
un nombre d’euros entier entre 1 et 20 à une cagnotte. Le joueur
atteignant 200 euros remporte la cagnotte. Lequel des deux joueurs a
une stratégie gagnante ? Décrire cette stratégie.
2. Un peu, beaucoup...
Deux joueurs s’opposent, avec comme terrain de jeu une marguerite.
Chaque joueur arrache lorsque c’est son tour un pétale ou deux pétales
adjacents. Celui qui arrache le dernier pétale gagne. Lequel des deux
joueurs a une stratégie gagnante ? Décrire cette stratégie.
3. Passionnément
Même question que dans l’exercice précédent, mais en supposant qu’on
a désigné au début du jeu un pétale que nul n’a le droit d’enlever.
. . .
4. Calculer 18 + 34, 147 + 81,151 + 83.
5. Combien y a-t-il de couples (a, b) ∈ {0, . . . , 15} × {0, . . . , 15} tels que
.
a + b = a + b?
6. Dans le jeu Fan Tan, que faut-il jouer lorsqu’il y simultanément sur
la table : un pion isolé, un tas de 4 pions, un tas de 5 pions, un tas de
7 pions ?
7. Dans la variante de Fan Tan présentée dans le cours (celle où l’on ne
peut enlever que un ou deux pions à la fois), que faut-il jouer lorsqu’il
y simultanément sur la table : un pion isolé, un tas de 4 pions, un tas
de 5 pions, un tas de 7 pions ?
8. Le singe
À la fête foraine, un amuseur vous propose de jouer (moyennant fi-
nances !) au jeu suivant contre son singe savant : on pose sur la table
un ou plusieurs tas de pions indiscernables, la taille des tas pouvant
différer. Chacun des joueurs choisit, lorsque c’est son tour, un des tas,
qu’il divise en deux tas non vides dont la différence des tailles ne peut
dépasser un. Faut-il se méfier ?
9. Les dominos
élémentaire, 8
boucle, 1, 3
chaı̂ne, 8
clique, 6
composantes connexes, 8
connexe, 8
cycle, 8
extrémités, 1, 3
fonction de Grundy, 39
jeu de Nim, 45
jeu direct, 33
jeu inverse, 33
matrice d’adjacence, 12
polynôme chromatique, 23
progressivement fini, 33
sommets, 1, 3
stable, 19
voisinage à droite, 8
voisinage à gauche, 8
53