Jeu de permutation redux


20

Il s'agit d'une reformulation d'une question antérieure .

Considérez le jeu d' information parfait et impartial suivant entre deux joueurs, Alice et Bob. Les joueurs reçoivent une permutation des nombres entiers 1 à n. A chaque tour, si la permutation actuelle augmente, le joueur actuel perd et l'autre joueur gagne; sinon, le joueur actuel supprime l'un des numéros et le jeu passe à l'autre joueur. Alice joue en premier. Par exemple:

  • (1,2,3,4) - Bob gagne immédiatement, par définition.

  • (4,3,2,1) - Alice gagne après trois tours, peu importe la façon dont on joue.

  • (2,4,1,3) - Bob peut gagner à son premier tour, peu importe comment Alice joue.

  • (1,3,2,4) - Alice gagne immédiatement en supprimant le 2 ou le 3; sinon, Bob peut gagner à son premier tour en supprimant le 2 ou le 3.

  • (1,4,3,2) - Alice gagne finalement si elle prend le 1 à son premier tour; sinon, Bob peut gagner à son premier tour en ne retirant pas le 1.

Existe-t-il un algorithme polynomial pour déterminer quel joueur remporte ce jeu à partir d'une permutation de départ donnée, en supposant un jeu parfait ? Plus généralement, comme il s'agit d'un jeu impartial standard, chaque permutation a une valeur Sprague – Grundy ; par exemple, (1,2,4,3) a la valeur * 1 et (1,3,2) a la valeur * 2. Est-il difficile de calculer cette valeur?

L'algorithme de retour en arrière évident s'exécute en temps O (n!), Bien que cela puisse être réduit à O(2npoly(n)) via la programmation dynamique.


4
Il me semble que l'algorithme naïf s'exécute en temps O (2 ^ n⋅poly (n)).
Tsuyoshi Ito

D'après vos exemples, il est évident qu'Alice gagne toujours si la séquence descend et Bob gagne toujours si la séquence monte. Ce problème me rappelle l'analyse d'algorithmes de tri, qui ont été largement étudiés et vous permettent d'utiliser un large arsenal d'outils.
chazisop

1
@chazisop: «Alice gagne toujours si la séquence descend»: c'est le cas si et seulement si n est pair.
Tsuyoshi Ito,

@ Jɛ ff E dans le cas 3, comment Bob gagne-t-il à son premier tour?
Suresh Venkat

2
@Suresh: Dans le cas de (2,4,1,3), la représentation graphique est le graphique linéaire sur 4 sommets (2-1-4-3). Si Alice supprime un nœud d'extrémité, cela laisse le graphe linéaire sur 3 sommets; Bob gagne en supprimant le sommet central (donc 3 répond par 1, et 2 répond par 4). Si Alice supprime un nœud intérieur, cela laisse deux sommets connectés et un nœud isolé; Bob gagne en supprimant l'un des deux sommets connectés (donc 1 répond par 3 ou 4, et 4 répond par 1 ou 2).
mjqxxxx

Réponses:


7

Le "jeu de permutation" est isomorphe au jeu suivant:

Déconnectez-vous. Les joueurs suppriment alternativement les sommets d'un graphique G . Le joueur qui produit un graphique entièrement déconnecté (c'est-à-dire un graphique sans bords) est le gagnant.

Le graphe correspondant à une permutation initiale particulière π S n contient uniquement les arêtes ( i , j ) pour lesquelles i - j et π ( i ) - π ( j ) ont des signes opposés. Autrement dit, chaque paire de chiffres dans le mauvaisGππSn(i,j)ijπ(i)π(j)l'ordre dans la permutation est associé à une arête. De toute évidence, les mouvements autorisés sont isomorphes à ceux du jeu de permutation (supprimer un nombre = supprimer un nœud), et les conditions gagnantes sont également isomorphes (pas de paires dans l'ordre décroissant = pas de bords restants).

Une vue complémentaire est obtenue en considérant jouer un jeu "dual" sur le complément graphique , qui contient les arêtes ( i , j ) pour lesquelles i et j sont dans le bon ordre dans la permutation. Le double jeu à déconnecter est:Gπc=GR(π)(i,j)ij

Reconnectez-vous. Les joueurs supprimer alternativement les sommets d'un graphe . Le joueur qui produit un graphique complet est le gagnant.G

Selon la permutation particulière, l'un de ces jeux peut sembler plus simple que l'autre à analyser. L'avantage de la représentation graphique est qu'il est clair que les composants déconnectés du graphique sont des jeux séparés, et donc on espère une certaine réduction de la complexité. Cela rend également les symétries de la position plus apparentes. Malheureusement, les conditions gagnantes ne sont pas standard ... le jeu de permutation se terminera toujours avant que tous les mouvements ne soient utilisés, ce qui lui donne une sorte de caractère misère . En particulier, la valeur nim ne peut pas être calculée comme la somme nim (XOR binaire) des valeurs nim des composants déconnectés.


Pour Déconnecter, il n'est pas difficile de voir que pour tout graphique et tout n pair , le jeu G ˉ K n est équivalent à G (où ˉ K , et le deuxième joueur peut copier son coup dans l'autre (réduisant à G + G ¯ K n avec | G |GnGK¯nG est le graphe sans bord sur n sommets). Pour le prouver, nous devons montrer que la somme disjonctive G + G ˉ K n est une victoire du second joueur. La preuve est par induction sur | G | + n . Si GK¯nnG+GK¯n|G|+nGest sans bord, puis le premier joueur perd immédiatement (les deux parties sont terminées). Sinon, le premier joueur peut se déplacer dans l'un ou l'autre ).GG+GKn¯ ); ou, si n 2 , le premier joueur peut se déplacer dans la pièce déconnectée, et le deuxième joueur peut faire de même (en réduisant à G + G ˉ K n - 2|G|=|G|1n2G+GK¯n2

Cela montre que tout graphique est équivalent à H K p , où H est la partie de G sans sommets déconnectés, et p = 0 ou 1 ( H H ) K p p . De plus, on peut voir que les jeux de [ H K 0GHKpHGp=01 est la parité du nombre de sommets déconnectés dans . Tous les jeux d'une classe d'équivalence ont la même valeur nim, et de plus, la relation d'équivalence respecte l'opération d'union: si G H K p et G H K p GGHKpGHKp alors H , puis copiez les mouvements du deuxième joueur par la suite.GG(HH)Kpp et [ H K 1 ] ont des valeurs nim différentes sauf si H est le graphique nul: en jouant H + H K 1 , le premier joueur peut prendre l'isolement sommet, laissant H +[HK0][HK1]HH+HK1H+H

Je ne connais aucun résultat de décomposition associé pour Reconnecter.


Deux types spéciaux de permutations correspondent à des jeux de tas particulièrement simples.

  1. Le premier est une série ascendante de descentes , par exemple . Lorsque π prend cette forme, le graphique G π est une union de cliques disjointes, et le jeu de déconnexion se réduit à un jeu sur des tas: les joueurs retirent alternativement un seul bean d'un tas jusqu'à ce que tous les tas aient la taille 1 .32165487πGπ1
  2. La seconde est une descente ascendante , par exemple . Lorsque π prend cette forme, le graphe G c π est une union de cliques disjointes, et le jeu de Reconnect se réduit à un jeu sur des tas: les joueurs retirent alternativement un seul bean d'un tas78456123πGπc jusqu'à ce qu'il ne reste qu'un seul tas .

Une petite réflexion montre que ces deux jeux différents sur des tas (on peut les appeler 1-tas et un-tas , à un certain risque de confusion) sont, en fait, eux-mêmes isomorphes. Les deux peuvent être représentés par un jeu sur un diagramme de Young (comme proposé initialement par @domotorp) dans lequel les joueurs alternent en supprimant un carré en bas à droite jusqu'à ce qu'il ne reste qu'une seule ligne. C'est évidemment le même jeu que 1-tas lorsque les colonnes correspondent à des tas, et le même jeu que One-Heap lorsque les lignes correspondent à des tas.

Un élément clé de ce jeu, qui s'étend à Disconnect and Reconnect, est que la durée est liée à l'état final du jeu de manière simple. Quand c'est votre tour, vous gagnerez si le jeu a un nombre impair de coups restants, y compris celui que vous êtes sur le point de faire. Puisqu'un seul carré est supprimé à chaque coup, cela signifie que vous voulez que le nombre de carrés restant à la fin de la partie ait la parité opposée qu'il a maintenant. De plus, le nombre de cases aura la même parité sur tous vos tours; vous savez donc dès le départ quelle parité vous voulez que le décompte final ait. On peut appeler les deux joueurs Eve et Otto, selon que le décompte final doit être pair ou impair pour qu'ils gagnent. Eve se déplace toujours dans des états avec une parité impaire et produit des états avec une parité paire, et Otto est le contraire.

Dans sa réponse, @PeterShor donne une analyse complète de One-Heap. Sans répéter la preuve, le résultat est le suivant:

  • Otto aime tas et 2 tas et peut tolérer un seul tas plus grand. Il gagne s'il peut faire toutes les tailles de tas sauf un 2 , au moins sans donner à Eve une victoire immédiate de la forme122 . Une stratégie optimale pour Otto est de toujours prendre du deuxième plus grand tas sauf lorsque l'état est ( 1 , 1 , n > 1 ) , quand il devrait prendre du n . Otto perdra s'il y a trop de haricots en gros tas pour commencer.(1,n)(1,1,n>1)n
  • Eve n'aime pas tas. Elle gagne si elle peut faire toutes les tailles de tas 2 . Une stratégie optimale pour Eve est de toujours prendre à partir d'un 1- tas, s'il y en a, et de ne jamais prendre à partir d'un 2- tas. Eve perdra s'il y en a trop 112121 tas pour commencer.

Comme indiqué, cela donne également des stratégies optimales pour les 1-tas, bien qu'elles soient un peu plus gênantes à exprimer (et je peux très bien faire une erreur dans la "traduction" primaire à double). Dans le jeu de 1-tas:

  • Otto aime un ou deux gros tas et peut tolérer n'importe quel nombre de tas. Il gagne s'il peut faire tous les tas, sauf les deux plusgrands, à 1- tas, au moins sans donner à Eve une victoire immédiate de la forme ( 1 , 1 , , 1 , 2 ) . Une stratégie optimale pour Otto est de toujours prendre du troisième plus grand tas, ou du plus petit tas quand il n'y a que deux tas.11(1,1,,1,2)
  • Eve n'aime pas un écart entre le plus grand et le deuxième plus grand tas. Elle gagne si elle peut faire les deux plus gros tas de la même taille. Une stratégie optimale pour Eve est de toujours prendre le plus grand tas, s'il est unique, et jamais s'il y en a exactement deux de la plus grande taille.

Comme le note @PeterShor, il n'est pas clair comment (ou si) ces analyses pourraient être étendues aux jeux plus généraux de déconnexion et de reconnexion.


2
Je pense que ce type de jeux est collectivement appelé «jeux de suppression de vertex». Mais je suis d'accord avec vous que la condition gagnante est assez non standard en ce qu'elle se réfère à la propriété globale du graphique au lieu de propriétés locales telles que le degré de un sommet.
Tsuyoshi Ito

4
Le graphe construit est appelé graphe de permutation ( en.wikipedia.org/wiki/Permutation_graph ) dans la littérature. Certaines propriétés structurelles pourraient aider.
Yoshio Okamoto

1
@Yoshio: C'est un bon point. Le jeu de permutation est isomorphe au jeu de graphes, mais les graphes de départ ne sont pas arbitraires. Ainsi, même si le jeu de graphes général est difficile à analyser, il est possible que lorsqu'il est limité à cette sous-classe de graphes, il devienne plus simple.
mjqxxxx

2
D'un autre côté, la formulation plus générale pourrait être plus facile à prouver. Les variantes de jeux de suppression de vertex sont connues pour être difficiles pour PSPACE, par exemple: emis.ams.org/journals/INTEGERS/papers/a31int2005/a31int2005.pdf
Jeffε

2
J'ai ajouté une question sur ce genre de jeu spécifiquement sur au math.SE ( math.stackexchange.com/questions/95895/... ). Soit dit en passant, puisque les graphiques de permutation sont des graphiques circulaires, une autre formulation est la suivante: les joueurs retirent à tour de rôle les accords d'un ensemble initial; le joueur qui laisse un jeu d'accords non entrecroisés est le gagnant.
mjqxxxx

7

Dans sa réponse, domotorp propose d'analyser un cas particulier du jeu. Ce cas particulier se produit lorsque la permutation est une série de séquences croissantes, chacune étant plus grande que la suivante, comme (8,9,5,6,7,4,1,2,3). Dans ce jeu, vous commencez avec une collection de tas de pierres, et les joueurs retirent alternativement une pierre d'un tas. Le joueur qui laisse un seul tas gagne. Nous dirons que le ème tas contient h i pierres, et supposons que le hihi sont donnés en ordre décroissant. Par exemple, pour la permutation ci-dessus, le h ihihisont 3,3,2,1. J'ai essayé de donner l'analyse de ce jeu dans les commentaires à la réponse de domotorp, mais (a) je me suis trompé et (b) il n'y a pas assez de place dans les commentaires pour donner une vraie preuve.

Pour analyser ce jeu, nous devons comparer deux quantités: , le nombre de tas contenant des pierres simples et t = i 2 ,s ; notons que nous ignorons le plus grand tas de la somme. Il s'agit du nombre de pierres que vous devez retirer pour vous assurer que tous les tas sauf un ne contiennent pas plus de deux pierres. Nous affirmons que les positions perdantes sont les suivantes:t=i2,hi>2hi2

  1. Positions où contenant un nombre impair de pierres.ts2

  2. Positions où contenant un nombre pair de pierres.ts

Il est facile de montrer qu'à partir d'une position perdante, vous devez aller à une position gagnante, car les ne peuvent changer que d'au plus 1 à chaque tour et le nombre de pierres diminue de 1 à chaque mouvement.ts

Pour finir de montrer que c'est correct, nous devons montrer que depuis n'importe quelle position qui n'est pas dans la catégorie (1) ou (2), le premier joueur peut d'un seul coup atteindre une position dans la catégorie (1) ou (2), ou gagnez directement.

Il y a deux cas:

  1. Positions où contenant un nombre impair de pierres. Ici, si s > 0 , retirez une pierre d'un tas avec une seule pierre. S'il ne reste qu'un tas, nous avons gagné. Sinon, nous avons maintenant t s . S'il n'y a pas de tas avec une seule pierre, retirez une pierre d'un tas avec au moins trois pierres. (Puisqu'il y avait un nombre impair de pierres, c'est possible). Puisque s = 0 , nous avons t s .ts1s>0tss=0ts

  2. Positions où contenant un nombre pair de pierres. Ici, s'il y a des tas avec au moins deux pierres autres que le plus gros tas, retirez une pierre de l'une d'elles. Si ce tas contient trois pierres ou plus, t diminue d'une unité. S'il contient exactement deux pierres, s augmente d'une unité. Nous avons maintenant t s - 2 . Le dernier cas est celui où tous les tas sauf un sont constitués de pierres simples; dans ce cas, il est facile de vérifier si le premier joueur gagne s'il y a un nombre pair de pierres.ts1tsts2

J'ai essayé de généraliser cette stratégie au jeu original, et je n'ai pas compris comment le faire.


1
Dans ma réponse, j'ai noté qu'avoir une solution à ce cas spécial résout également le cas spécial avec une série croissante de descentes décroissantes, en jouant dans la position "dual" obtenue en transposant le diagramme d'Young. En particulier, la stratégie optimale d'Eve devient "prendre du plus grand tas, à moins qu'il y en ait exactement deux de cette taille", et la stratégie optimale d'Otto devient "prendre du plus petit tas".
mjqxxxx

Je suis sûr que cette approche mènera à une solution parfaite, mais pour le moment il y a encore une erreur mineure, par exemple (3,1) ne perd pas et (3,1,1) l'est. Le problème est que la définition de 2. devrait exclure ce cas, car nous pouvons atteindre une position de tas en une seule étape. Mais je pense que c'est le seul problème avec 2. et j'espère qu'il n'est pas difficile de le corriger.
domotorp

1
@domotorp: Pour (3,1), t = 0 et s = 1, donc t s , et le critère (2) dit que ce n'est pas une position perdante. Pour (3,1,1), t = 0 et s = 2, donc t s - 2, et le critère (1) dit que c'est une position perdante. Je pense que vous avez manqué cela dans la définition de t , vous ignorez le plus grand tas.
Peter Shor

Bien sûr, j'ai oublié cette partie à la fin ... Alors ce jeu est résolu!
domotorp

1
Pas une réponse complète, mais ça vaut quand même la récompense.
Jeffε

3

J'ai implémenté une solution pour la vérification rapide des hypothèses. N'hésitez pas à jouer avec . Si vous n'avez pas de compilateur C ++ localement, vous pouvez l'exécuter à distance sur différentes entrées en utilisant le lien "upload with new input".O(2nn)

@ Jɛ ff E Il est arrivé que (1,4,3,2) ait la valeur * 1, pas * 2 comme vous l'avez suggéré.


Oups, mon erreur. Correction de la question: g (1,3,2) = mex {g (1,3), g (1,2), g (3,2)} = mex {0, 0, * 1} = * 2.
Jeffε

n10n

@maldini: cela donne de l'espoir que le jeu a de belles propriétés, ce qui pourrait le rendre maniable. Je me demande ce qui arrive au jeu généralisé aux graphiques, ou au jeu simplement généralisé aux graphiques parfaits.
Peter Shor

3

Modifier le 5 janvier: En fait, le jeu de tas décrit ci-dessous est un cas particulier du problème, c'est-à-dire lorsque les chiffres se suivent de manière spécifique de sorte que le premier groupe est plus grand que le deuxième groupe qui est plus grand que le troisième, etc. et les nombres dans chaque groupe augmentent. Par exemple 8, 9, 4, 5, 6, 7, 2, 3, 1 est une telle permutation. Je propose donc de résoudre ce cas spécial en premier.

Avertissement: je ne prétends plus que la preuve ci-dessous est correcte, voir par exemple le commentaire de Tsuyoshi qui montre que la suppression d'un nombre d'une permutation donnera un diagramme qui ne peut pas être obtenu en supprimant un carré du diagramme de la permutation. J'ai laissé la réponse ici pour montrer que cette approche ne fonctionne pas, d'autant plus qu'elle contient un autre jeu simple.

Le jeu a une autre formulation très simple grâce à Young Tableaux. Je suis sûr qu'il peut être analysé à partir de là comme d'autres jeux et qu'il produira un algorithme de temps linéaire.

Définissez d'abord le jeu suivant sur les jeunes diagrammes: à chaque tour, si le diagramme actuel est horizontal (toutes les cases sur une ligne), le joueur actuel perd et l'autre joueur gagne; sinon, le joueur actuel supprime l'un des carrés en bas à droite et le jeu passe à l'autre joueur.

Commandez maintenant la séquence de nombres dans un Young Tableaux. La revendication principale est que le gagnant du jeu original est le même que le gagnant du jeu de diagramme commençant par cette forme. Pour voir cela, notez que chaque fois que les joueurs suppriment un nombre, le diagramme de la nouvelle séquence peut être réalisé en supprimant un carré en bas à droite du diagramme. De plus, un tel diagramme peut être obtenu en supprimant le nombre du carré inférieur droit respectif. Ces déclarations découlent de la théorie standard des Young Tableaux.

Bien que ce jeu de diagrammes soit assez simple, il est trivialement équivalent au jeu suivant, qui semble plus standard:

Un jeu de tas: les joueurs reçoivent des tas avec des cailloux dans chacun. A chaque tour, s'il ne reste qu'un tas, le joueur actuel perd et l'autre joueur gagne; sinon, le joueur actuel retire un caillou d'un tas et le jeu passe à l'autre joueur.

S'il existe une solution simple au jeu de tas (et je crois fermement qu'il y en a une), nous obtenons également une solution au jeu original: il suffit de mettre la séquence dans un Young Tableaux et de transformer son diagramme en tas.

Malheureusement, je ne vois pas quelles positions de tas gagnent / comment déterminer les valeurs Sprague – Grundy. J'ai vérifié quelques cas à la main, et voici les positions perdantes avec au plus 6 cailloux:

un tas; (1,1,1); (2,2); (3,1,1); (2,1,1,1); (1,1,1,1,1); (4,2); (3,3); (2,2,2).

Tout le monde peut résoudre ce jeu?

Edit: Peter Shor peut, voir sa réponse!


1
Pouvez-vous donner au moins un exemple montrant comment une permutation particulière est transformée en un jeune tableau et comment le même jeu (suppression du numéro jusqu'à ce qu'une séquence ascendante soit atteinte) est joué sur le tableau? En particulier, je ne comprends pas ce que cela signifie de supprimer "l'un des carrés en bas à droite".
mjqxxxx

5
Voici un contre-exemple d'une affirmation plus faible selon laquelle la suppression d'un nombre d'une permutation correspond à la suppression d'une des cellules en bas à droite du diagramme de Young correspondant (au lieu du tableau de Young ). Soit n = 5, et considérons une position spécifiée par la permutation [4,1,3,5,2] (c'est-à-dire, σ (1) = 4, σ (2) = 1, etc.), et supprimons 3 à partir de cela. Le diagramme d'Young correspondant avant le déplacement est 5 = 3 + 1 + 1, mais le diagramme d'Young correspondant après le déplacement est 4 = 2 + 2, qui n'est pas obtenu en supprimant une cellule de 3 + 1 + 1.
Tsuyoshi Ito

5
Et la permutation [5,4,1,2,3] a le même diagramme de Young que [4,1,3,5,2], mais vous ne pouvez pas en atteindre le diagramme 4 = 2 + 2. Le jeu dépend donc de plus que de la forme du tableau Young.
Peter Shor

2
Hourra pour un malentendu constructif!
Jeffε

3
@ Jɛ ff E: Oui, c'est beaucoup plus utile qu'une preuve de simple existence de malentendu.
Tsuyoshi Ito le
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.