Jeux pour la théorie des automates, la vérification et l`internet Jeux

Transcription

Jeux pour la théorie des automates, la vérification et l`internet Jeux
Jeux pour la théorie des automates, la vérification et l’internet
Master Parisien de Recherche en Informatique
Olivier Serre et Wieslaw Zielonka
13 novembre 2007 (durée : 2 heures)
Corrigé
⋆⋆⋆
Jeux combinatoires
Rappel : Un jeu combinatoire est dit impartial si pour chaque position les deux joueurs ont exactement les
mêmes mouvements disponibles.
Exercice 1
Le jeu Nim misère se joue comme le jeu Nim normal avec des tas de pièces où à chaque tour le joueur
courant doit enlever au moins une pièce d’un seul tas. Par contre, on inverse la règle qui détermine le joueur
gagnant : dans le Nim misère le joueur qui a enlevé les dernières pièces de la table perd.
Question 1: Supposons que sur la table nous avons k tas de tailles n1 , . . . , nk , k ≥ 1. Montrer que si parmi ces
tas il y a exactement un seul tas i de taille ni ≥ 2 (tous les autres tas sont de taille ≤ 1) alors le premier joueur
(celui dont c’est le tour de jouer) possède une stratégie gagnante. Décrire cette stratégie et montrer qu’elle est
gagnante.
Question 2: Maintenant on considère une configuration où il existe au moins deux tas de tailles ≥ 2. Montrer
que dans ce cas le joueur gagnant dans le Nim misère est celui qui est gagnant dans le Nim normal. Quelle est
sa stratégie dans le Nim misère ?
Indication Pensez à utiliser la stratégie gagnante pour le Nim normal et à l’appliquer jusqu’à un certain
moment (voir la question précédente).
Corrigé
Question 1: First note that if there k heaps all of size 1 then the game will end in exactly k steps since each
player can (and must) take one element at each step. Thus such a configuration is winning for the second player
if and only if k is odd.
Now if there are k heaps with one heap having ≥ 2 elements (large heap) and all the other heaps with
exactly one element (small heaps) then
– if k is even then the first player should take all elements of the large heap which leaves an odd number
k − 1 of heaps of size 1, and this configuration is winning for him.
– if k is odd then the first player should take all elements except one from the large heap which yields a
configuration with an odd number k of heaps of size 1, a configuration which is winning for him.
Question 2: Let us recall first what happens in impartial games with normal winning rule (the player unable
to move loses). A configuration of any impartial game has either the Grundy value 0 and in this case it is losing
for the first player or value 6= 0 and then it is winning for the first player. Moreover, if the Grundy value is
0 then either the first player has no valid move and then he loses immediately or all his valid moves lead to
configurations with Grundy value > 0. On the other hand, if Grundy value of a given configuration is > 0 then
the first player has a valid move leading to a configuration with Grundy value 0.
Thus if the current configuration C contains at least two heaps with size ≥ 2 and Grundy value is > 0 then
the first player should play as in normal Nim game, i.e. he should choose a move leading to a configuration with
Grundy value 0. He will play in this way as long as there are at least two heaps of size ≥ 2.
1
At some moment we arrive at a configuration C ′ with exactly one heap of size ≥ 2. The Grundy value of
such a configuration is different from 0 (since 1 ⊕ . . . ⊕ 1 ⊕ n 6= 0 if n > 1) thus it is the turn of the first player
to play at C ′ . Now the first player should move as indicated in response to Question 1.
Exercice 2
Au lieu d’utiliser les valeurs de jeux dans le sens de Grundy, on peut analyser les jeux impartiaux en utilisant
une fonction d’éloignement (dans le cas général il faut deux fonctions – éloignement gauche et droite, mais on
se limitera ici aux jeux impartiaux). De plus, on suppose que pour chaque jeu considéré G il existe un entier
n tel que la longueur de chaque partie de G est bornée par n (on ne considère que les jeux «courts » dans la
terminologie de Conway).
On supposera que les deux joueurs poursuivent deux objectifs supplémentaires :
(A) le joueur gagnant veut terminer la partie le plus vite possible (mais son objectif principal reste toujours de
gagner, il veut juste gagner le plus vite possible),
(B) le joueur perdant veut prolonger la partie autant que possible (il veut perdre le plus tard possible).
L’éloignement e(G) d’un jeu G est défini comme le nombre de coups pour terminer le jeu quand les deux
joueurs jouent optimalement selon les critères (A) et (B).
Par exemple, pour le jeu Nim à un seul tas non vide, l’éloignement vaut 1 (le premier joueur, qui est le
gagnant, enlève d’un seul coup toutes les pièces).
Question 1: Démontrer que pour le jeu Nim avec deux tas de même taille k > 0 l’éloignement vaut 2k (on
voit ici le défaut de la fonction e, les valeurs e(G) et e(H) ne permettent pas de déterminer la valeur e(G + H)).
Question 2: Comment déterminer le joueur gagnant dans un jeu G (premier ou deuxième) si l’on connaı̂t
l’éloignement e(G) ?
Question 3: Soit G = {G1 , . . . , Gk }, c’est-à-dire qu’un coup dans G nous mène vers l’un de jeux Gi , 1 ≤ i ≤ k.
Donner une formule récursive qui exprime e(G) en fonction de e(G1 ), . . . , e(Gk ).
Indication : il y a deux cas selon la parité des valeurs e(G1 ), . . . , e(Gk ).
Question 4: Soit G1 et G2 deux jeux impartiaux. La jointure rapide G1 ∧ G2 est définie comme un jeu où
le joueur dont c’est le tour de jouer doit faire un mouvement valable à la fois dans G1 et dans G2 . Donc le
jeu G1 ∧ G2 se termine si soit dans G1 soit dans G2 nous n’avons plus de mouvement valide. Montrer que
e(G1 ∧ G2 ) = min{e(G1 ), e(G2 )}.
Corrigé
Question 1: Note that the Grundy value for two heaps of size n1 and n2 is n1 ⊕ n2 , which is 0 if and only
if n1 = n2 . Thus the configuration (n1 , n2 ) is winning for the first player if and only if n1 6= n2 and the only
possible move leading to a losing configuration consists in reducing the size of the largest heap to get two heaps
of equal size min(n1 , n2 ).
Thus a configuration with two heaps of the same size k is losing for the first player. Since there are 2k
elements to remove the number of steps cannot be greater that 2k.
If at each configuration with equal heaps the current player removes just one element from any heap then
the other player is obliged to remove one element from the other heap to always maintain heaps of equal size.
This gives 2k moves in total.
Question 2: If the remoteness e(G) is even then if both players play optimally the game ends after e(G) steps
and at this moment it is the first player turn to move. Thus for e(G) even the second player has a winning
strategy while for e(G) odd the first player has a winning strategy.
2
Question 3: If e(G) is even then G is losing for the first player and then all e(G1 ), . . . , e(Gk ) are odd (winning
for his adversary). The losing player wants to lose as late as possible thus he will move to Gi with the greatest
value e(Gi ).
If the remoteness e(G) is odd then the first player has a winning strategy and thus there exist Gi with even
value e(Gi ). Since he wants to win as quickly as possible he will choose Gi with the smallest even value of e(Gi ).
Therefore
(
1 + max{e(Gi ) | 1 ≤ i ≤ k}
if all e(Gi ) are odd,
e(G) =
1 + min{e(Gi ) | 1 ≤ i ≤ k and e(Gi ) even} if there exist Gi with e(Gi ) even.
Question 4: Let σ1 , σ2 be optimal strategies for the first player in G1 and G2 respectively, while τ1 , τ2 optimal
strategies for the second player1 .
Then (σ1 , σ2 ) and (τ1 , τ2 ) yield remoteness min{e(G1 ), e(G2 )} in G1 ∧ G2 .
(1) If e(G1 ) and e(G2 ) are odd then (σ1 , σ2 ) guarantee that the first player wins in G1 ∧ G2 with at most
min{e(G1 ), e(G2 )} steps against any strategy of his adversary. On the other hand, strategy (τ1 , τ2 ) guarantees that he second player will not lose before min{e(G1 ), e(G2 )} steps against any strategy of his adversary.
(2) If e(G1 ) and e(G2 ) are even then the situation is similar to the previous case with the roles of the first and
the second player exchanged.
It remains to consider the case when the remoteness is even for one of the games and odd for the other. Without
loss of generality we can assume e(G1 ) ≤ e(G2 ) or even that
e(G1 ) < e(G2 )
since now the equality is impossible.
(3) Suppose that e(G1 ) is odd while e(G2 ) is even. Then (σ1 , σ2 ) guarantees that the first player wins G1 in at
most e(G1 ) steps while in G2 either he loses, but this would take at least e(G2 ) steps, or he wins2 . Since
e(G1 ) < e(G2 ), this shows that using (σ1 , σ2 ) in G1 ∧ G2 the first player guarantees himself to win at most
e(G1 ) = min{e(G1 ), e(G2 )} steps.
Using (τ1 , τ2 ) the second player will not lose in G1 before e(G1 ) steps. In G2 the second player wins. When
the second player applies this compound strategy in G1 ∧ G2 then the play will last at least e(G1 ) steps
before the first player wins.
(4) Suppose that e(G1 ) is even while e(G2 ) is odd. This situation is symmetric to the one of (3) with the roles
of both player interchanged.
Exercice 3
Soit G le jeu suivant. Sur la table il y a plusieurs tas d’allumettes. Le joueur peut
(a) soit enlever n’importe quel nombre (non nul) d’allumettes d’un tas,
(b) soit diviser un tas en deux tas non vides.
Comme d’habitude, les joueurs jouent à tour de rôle et le joueur qui n’a plus de mouvement valide perd.
Soit g(i), i ≥ 0, la valeur de la fonction Grundy d’un tas de i allumettes. Donner une formule récursive pour
g(i). On ne demande pas de chercher à simplifier la formule.
Corrigé
g(0) = 0 and, for n ≥ 0,
g(n) = mex{g(i) ⊕ g(j) | i + j = n, 0 < i, j} ∪ {g(i) | 0 ≤ i < n}
Jeux sur des graphes finis
1 optimal for the remoteness, i.e. they guarantee for the winning player to win in at most e(G ) steps and for the losing player
i
not to lose before e(Gi ) steps.
2 He can win in G if the second player plays badly in G .
2
2
3
Exercice 4
Le but de l’exercice est de proposer un algorithme en temps linéaire pour résoudre les jeux de parité sur
des graphes non-orientés. Un graphe non-orienté sera ici vu comme un graphe (orienté) G = (S, A), où S est
un ensemble fini de sommets, et A ⊆ S 2 est un ensemble fini d’arcs tel que pour tous sommets s, s′ ∈ S on a
(s, s′ ) ∈ A si et seulement si (s′ , s) ∈ A. Si l’on se donne une partition S = SE ∪ SA des sommets entre deux
joueurs Eve (E) et Adam (A), on obtient un graphe de jeu non orienté G = (G, SE , SA ). Enfin, si l’on munit ce
dernier d’une fonction de coloriage ρ : S → N, on obtient un jeu de parité G = (G, ρ). Rappelons que dans un tel
jeu, une partie qui aboutit dans un cul-de-sac est perdue par le joueur qui doit jouer depuis ce dernier sommet,
et qu’une partie infinie est remportée par Eve si et seulement si la plus petite couleur infiniment souvent visitée
est paire.
Dans la suite, on supposera que tous les sommets ont des couleurs distinctes et on identifiera ces derniers
avec leur couleur. Dans les dessins, un sommet contrôlé par Eve sera représenté par un cercle tandis qu’un
sommet contrôlé par Adam sera représenté par un carré. La figure 1 présente un exemple d’un graphe de jeu
non-orienté.
1
2
3
6
7
4
5
8
Fig. 1 – Exemple de graphe de jeu non orienté
Dans tout l’exercice, on suppose que A ⊆ SE × SA ∪ SA × SE , c’est à dire que les joueurs jouent à tour de
rôle.
e = (S, A)
e défini par :
Question 1. On considère le graphe G
(
min{i, j} est pair et i ∈ SE
e
(i, j) ∈ A ssi (i, j) ∈ A et
min{i, j} est impair et i ∈ SA
e associé au graphe G de la figure 1.
a. Donner le graphe G
1
2
3
6
7
4
5
8
Fig. 2 – Réponse question 1.a
e ne contient pas de cycle (on pourra commencer par considérer le cas particulier
b. Prouver que le graphe G
e un sous-ensemble F ⊆ S de sommets sans successeur.
des cycles de longueur 4). En conclure qu’il existe dans G
Réponse. Supposons le contraire et notons v0 , . . . , vk un tel cycle. Considérons i tel que vi est minimal.
e et que min(vi−1 , vi ) = vi , on en déduit que vi est impair.
Supposons que vi ∈ SE . Alors comme (vi−1 , vi ) ∈ A,
e
De même comme (vi , vi+1 ) ∈ A, et que min(vi , vi+1 ) = vi , on en déduit que vi est pair, ce qui est contradictoire.
Un raisonnement symétrique règle le cas où vi ∈ SA .
4
L’existence de F vient du fait que tout graphe acyclique contient au moins un cul-de-sac.
e SE , SA ) le graphe de jeu induit par SE ∪ SA . D’après la question précédente, toute partie
c. Soit Ge = (G,
e
e le jeu d’accessibilité sur Ge dans lequel Eve remporte une
dans G va se terminer dans F . On appelle alors G
partie si et seulement si elle se termine dans un sommet de F ∩ SA . Montrer qu’un sommet est gagnant pour
e
Eve dans G si et seulement s’il est gagnant pour Eve dans G.
Réponse. Soit ϕ une stratégie positionnelle gagnante pour Eve dans G sur son ensemble de position gagnante.
e est bien définie lorsqu’elle est utilisée dans une partie débutant dans un sommet
Montrons que ϕ utilisée dans G
e où Eve respecte ϕ
gagnant d’Eve dans G. Soit v0 un tel sommet et soit λ = v0 · · · vn une partie partielle dans G
e :
e
et telle que vn ∈ SE . Soit vn+1 = ϕ(vn ). Supposons que (vn , vn+1 ) ∈
/ A (i.e. ϕ n’est pas bien définie dans G)
min(vn , vn+1 ) est donc impair. Considérons la partie infinie v0 · · · (vn vn+1 )ω : c’est une partie dans G où Eve
respecte ϕ et qui débute dans un sommet gagnant pour elle. Cependant la plus petite couleur infiniment visitée
e ce qui veut en
est min(vn , vn+1 ) et est donc impaire, ce qui est contradictoire. Ainsi, ϕ est bien définie sur G,
particulier dire que si Eve la respecte, elle n’atteint jamais un sommet de F ∩ SE (sinon φ lui donnerait un coup
non valide dans un tel sommet). Ainsi, ϕ est gagnante et toute position gagnante pour Eve dans G l’est aussi
e
dans G.
Réciproquement, on fait le même raisonnement en partant cette fois d’une stratégie pour Adam dans G. Soit
ϕ une stratégie positionnelle gagnante pour Adam dans G sur son ensemble de position gagnante. Montrons
e est bien définie lorsqu’elle est utilisée dans une partie débutant dans un sommet gagnant
que ϕ utilisée dans G
e où Adam respecte ϕ
d’Adam dans G. Soit v0 un tel sommet et soit λ = v0 · · · vn une partie partielle dans G
e
e :
et telle que vn ∈ SA . Soit vn+1 = ϕ(vn ). Supposons que (vn , vn+1 ) ∈
/ A (i.e. ϕ n’est pas bien définie dans G)
ω
min(vn , vn+1 ) est donc pair. Considérons la partie infinie v0 · · · (vn vn+1 ) : c’est une partie dans G où Adam
respecte ϕ et qui débute dans un sommet gagnant pour lui. Cependant la plus petite couleur infiniment visitée
e ce qui veut en
est min(vn , vn+1 ) et est donc paire, ce qui est contradictoire. Ainsi, ϕ est bien définie sur G,
particulier dire que si Adam la respecte, il n’atteint jamais un sommet de F ∩ SA (sinon φ lui donnerait un
coup non valide dans un tel sommet). Ainsi, ϕ est gagnante et toute position gagnante pour Adam dans G l’est
e
aussi dans G.
Question 2. Proposer un algorithme fonctionnant en temps linéaire pour calculer les positions gagnantes pour
e En déduire que l’on peut calculer en temps linéaire les positions gagnantes dans le jeu G.
Eve dans le jeu G.
Réponse. Le graphe de jeu Ge se calcule en temps linéaire à partir de G. Ensuite, il faut résoudre un jeu
e ce qui se fait également en temps linéaire.
d’accessibilité sur G,
Jeux avec paiement
Exercice 5
Les joueurs 1 et 2 doivent décider s’ils prennent leurs parapluies en sortant de la maison. La probabilité qu’il
pleuve est de 12 et elle est connue de deux joueurs. Les préférences de chaque joueurs sont modélisées avec une
fonction de paiement :
– −5 si le joueur sort sans parapluie et qu’il pleut,
– −2 s’il sort avec un parapluie et qu’il pleut,
– −1 s’il sort avec un parapluie et qu’il ne pleut pas,
– +1 s’il sort sans parapluie et qu’il ne pleut pas.
Le joueur 1 apprend quel est le temps avant de sortir. Le joueur 2 ne sais pas quel est le temps mais il peut
observer si le joueur 1 sort avec ou sans son parapluie.
Donner la forme extensive et la forme stratégique de ce jeu.
Corrigé
Extensive form game :
5
(Intuitively, actions a, A mean « avec parapluie » while s, S mean « sans parapluie ».)
In stratégic form player 1 has stratégies {Aa,As,Sa,Ss} where for each pair Xy, X∈ {A, S} is the strategy in
information state (1, 0) while y∈ {a, s} is the strategy in state (1, 1).
Player 2 has also 4 strategies : {Aa,As,Sa,Ss}, where where for each pair Xy, X∈ {A, S} is the strategy in
information state (2, a) while y∈ {a, s} is the strategy in information state (2, s).
Thus the same game in strategic form looks like :
2
1
Aa
As
Sa
Ss
Aa
As
(− 32 , − 23 ) (− 32 , − 32 )
(− 12 , − 23 ) (− 12 , − 12 )
(−3, − 23 ) (−3, −3)
(−2, − 23 ) (−2, −2)
Sa
Ss
(− 32 , −2) (− 32 , −2)
(− 12 , −3) (− 12 , −2)
(−3, − 21 ) (−3, −2)
(−2, − 23 ) (−2, −2)
Exercice 6
Une journée ensoleillée, les vacanciers se repartissent uniformément sur une plage de longueur 1, c’est-à-dire
le nombre de vacanciers sur un intervalle [a, b] de la plage, 0 ≤ a ≤ b ≤ 1, est proportionnel à b − a.
Le matin, chaque marchand de glaces décide de façon indépendante où il se placera pour toute la journée
sur la plage (ils ne bougent plus jusqu’à la fin de la journée). Chaque vacancier achète toujours les glaces chez
le marchand le plus proche. Le but de chaque marchand de glaces est de maximiser le nombre de ses clients.
Si, par exemple, il y a trois marchands sur les positions respectives 0 ≤ a < b < c ≤ 1 alors le premier reçoit
a+b b+c
tous les clients de l’intervalle [0, a+b
2 ], le deuxième tous les clients de l’intervalle [ 2 , 2 ] et le troisième tous
b+c
les client de [ 2 , 1].
Plusieurs marchands peuvent occuper la même position et dans ce cas ils se repartissent de façon équitable
les clients correspondants : s’il y a n marchands sur la même position et si cette position est la plus proche pour
m clients alors chacun de ces marchands recevra m
n de clients.
La stratégie d’un marchand se résume donc au choix de sa position x sur la plage.
Quels sont les équilibres de Nash s’il y a juste deux marchands sur la plage ?
Est-ce qu’il y a des équilibres de Nash s’il y a n ≥ 3 marchands à se partager les clients ?
Justifier votre réponse.
Corrigé
If there are two ice cream vendors at positions 0 ≤ x < y ≤ 1 then this is not an equilibrium since, for
example, the vendor at position x can get strictly more customers if he takes the position x+y
2 (or any position
closer to the other vendor) .
6
Suppose now that both ice cream vendors have the same position 0 ≤ x ≤ 1 with x 6= 21 . Then both of them
have exactly half of the clients. However, this is not an equilibrium since the vendor going to the position 12
would get more than half of the clients if the other vendor stays at x.
If both vendors are at 12 , i.e. in the middle of the beach then this is an equilibrium, any vendor trying to
change his position (while the other stays at 21 ) will get strictly less than half of the clients.
If there are three vendors then there is no Nash equilibrium. If all three vendors are at the same position
0 ≤ x ≤ 1 then each of them gets 13 of clients. The point x divides the interval [0; 1] on two intervals of length
x and 1 − x, one of them has length ≥ 21 . Without loss of generality we can suppose that x ≥ 21 and ten if one
of the vendors goes to position x − ǫ he gets x − ǫ/2 ≥ 12 − ǫ/2 clients, which for sufficiently small ǫ is greater
than 31 .
If the tree vendors are not all at the same position, i.e. they are at positions 0 ≤ x1 ≤ x2 ≤ x3 ≤ 1, where
either x1 6= x2 or x2 6= x3 then either there is only one vendor at x1 or there is only one vendor at x3 . Such a
vendor can get more clients if he comes closer and closer to x2 .
If there are more than 3 vendors then there exist Nash equilibria.
Suppose that the number of vendors is even, say 8 to fix the attention. Then we place them in group of 2 at
positions : 18 , 38 , 58 , 87 like this :
Each vendor will get the fraction 81 of customers and one can see readily that if a single vendor changes his
position while the other vendors remain on place then the vendor changing the position cannot capture more
than 18 customers. Generalisation to any even number of vendors should be evident.
Suppose now that the number of vendors is odd and ≥ 5. Again to fix the attention we fix their number to
1
3
5
7
9
9. We place the vendors at positions 10
, 10
, 10
, 10
, 10
with the following constraints :
9
1
– two vendors are placed at 10 and two at 10 , i.e. at the two extreme positions,
5
7
3
, 10
, 10
we place either 2 vendors or 1 vendor like, for example,
– At each of the three middle positions 10
at the figure below :
3
5
7
Note that it is not important at which of the three positions 10
, 10
, 10
we place the vendor that stays
alone.
2
1
clients, except the vendor who is alone and who gets 10
clients.
All vendors get 10
7