Juego de permutación redux

20

Esta es una reformulación de una pregunta anterior .

Considere el siguiente juego imparcial de información perfecta entre dos jugadores, Alice y Bob. Los jugadores reciben una permutación de los enteros 1 a n. En cada turno, si la permutación actual aumenta, el jugador actual pierde y el otro jugador gana; de lo contrario, el jugador actual elimina uno de los números y el juego pasa al otro jugador. Alice juega primero. Por ejemplo:

  • (1,2,3,4) - Bob gana de inmediato, por definición.

  • (4,3,2,1) - Alice gana después de tres turnos, sin importar cómo juegue alguien.

  • (2,4,1,3) - Bob puede ganar en su primer turno, no importa cómo juegue Alice.

  • (1,3,2,4) - Alice gana inmediatamente al eliminar el 2 o el 3; de lo contrario, Bob puede ganar en su primer turno eliminando el 2 o el 3.

  • (1,4,3,2) - Alice finalmente gana si toma el 1 en su primer turno; de lo contrario, Bob puede ganar en su primer turno al no eliminar el 1.

¿Existe un algoritmo de tiempo polinómico para determinar qué jugador gana este juego a partir de una permutación inicial dada, suponiendo un juego perfecto ? En términos más generales, dado que este es un juego imparcial estándar, cada permutación tiene un valor Sprague-Grundy ; por ejemplo, (1,2,4,3) tiene valor * 1 y (1,3,2) tiene valor * 2. ¿Qué tan difícil es calcular este valor?

El algoritmo de retroceso obvio se ejecuta en tiempo O (n!), Aunque esto puede reducirse a tiempo O(2nortepagoly(norte)) mediante programación dinámica.

Jeffε
fuente
44
Me parece que el algoritmo ingenuo se ejecuta en tiempo O (2 ^ n⋅poly (n)).
Tsuyoshi Ito
A partir de sus ejemplos, es obvio que Alice siempre gana si la secuencia es descendente y Bob siempre gana si la secuencia es ascendente. Este problema me recuerda el análisis de algoritmos de clasificación, que se han estudiado ampliamente y le permiten utilizar un amplio arsenal de herramientas.
chazisop
1
@chazisop: "Alice siempre gana si la secuencia es descendente": ese es el caso si y solo si n es par.
Tsuyoshi Ito
@ Jɛ ff E en el caso 3, ¿cómo gana Bob en su primer turno?
Suresh Venkat
2
@Suresh: en el caso de (2,4,1,3), la representación gráfica es el gráfico lineal en 4 vértices (2-1-4-3). Si Alice elimina un nodo final, esto deja el gráfico lineal en 3 vértices; Bob gana al eliminar el vértice central (entonces 3 es respondido por 1 y 2 es respondido por 4). Si Alice elimina un nodo interior, esto deja dos vértices conectados y un nodo aislado; Bob gana al eliminar cualquiera de los dos vértices conectados (entonces 1 es respondido por 3 o 4, y 4 es respondido por 1 o 2).
mjqxxxx

Respuestas:

7

El "juego de permutación" es isomorfo al siguiente juego:

Desconectar. Los jugadores eliminan alternativamente vértices de un gráfico . El jugador que produce un gráfico completamente desconectado (es decir, un gráfico sin bordes) es el ganador.sol

El gráfico correspondiente a una permutación inicial particular π S n contiene solo aquellos bordes ( i , j ) para los cuales i - j y π ( i ) - π ( j ) tienen signos opuestos. Es decir, cada par de números en el incorrectosolππSnorte(yo,j)yo-jπ(yo)-π(j)El orden en la permutación está asociado con un borde. Claramente, los movimientos permitidos son isomórficos para aquellos en el juego de permutación (eliminar un número = eliminar un nodo), y las condiciones ganadoras también son isomorfas (sin pares en orden descendente = sin bordes restantes).

Se obtiene una vista complementaria considerando jugar un juego "dual" en el complemento gráfico , que contiene los bordes ( i , j ) para los que i y j están en el orden correcto en la permutación. El doble juego para desconectar es:solπC=solR(π)(yo,j)yoj

Reconectar Los jugadores eliminan alternativamente vértices de un gráfico . El jugador que produce un gráfico completo es el ganador.sol

Dependiendo de la permutación particular, uno de estos juegos puede parecer más simple de analizar que el otro. La ventaja de la representación gráfica es que está claro que los componentes desconectados del gráfico son juegos separados, por lo que se espera una reducción en la complejidad. También hace que las simetrías de la posición sean más evidentes. Desafortunadamente, las condiciones ganadoras no son estándar ... el juego de permutación siempre terminará antes de que se agoten todos los movimientos, dándole un carácter algo misère . En particular, el valor nim no puede calcularse como la suma nim (XOR binario) de los valores nim de los componentes desconectados.


Para Desconectar, no es difícil ver que para cualquier gráfico y cualquier par n , el juego G ˉ K n es equivalente a G (donde ˉ K n es el gráfico sin bordes en n vértices). Para demostrarlo, debemos demostrar que la suma disyuntiva G + G ˉ K n es una victoria para el segundo jugador. La prueba es por inducción en | G | + n . Si GsolnortesolK¯nortesolK¯nortenortesol+solK¯norteEl |solEl |+nortesolno tiene bordes, entonces el primer jugador pierde inmediatamente (ambos juegos han terminado). De lo contrario, el primer jugador puede moverse en , y el segundo jugador puede copiar su movimiento en el otro (reduciendo a G + G ¯ K n con | G | = | G | - 1 ); o, si n 2 , el primer jugador puede moverse en la pieza desconectada, y el segundo jugador puede hacer lo mismo (reduciendo a G + G ˉ K n - 2 ).solsol+solKnorte¯El |solEl |=El |solEl |-1norte2sol+solK¯norte-2

Esto demuestra que cualquier gráfico es equivalente a H K p , donde H es la parte de G con no hay vértices desconectados, y p = 0 o 1 es la paridad del número de vértices desconectados en G . Todos los juegos en una clase de equivalencia tienen el mismo valor nim, y además, la relación de equivalencia respeta la operación de unión: si G H K p y G H K p entonces GsolHKpagHsolpag=0 01solsolHKpagsolHKpag . Además, se puede ver que los juegos en [ H K 0 ] y [ H K 1 ] tienen valores nim diferentes a menos que H sea ​​el gráfico nulo: cuando se juega H + H K 1 , el primer jugador puede tomar el aislado vértice, dejando H + H , y luego copia los movimientos del segundo jugador a partir de entonces.solsol(HH)Kpagpag[HK0 0][HK1]HH+HK1H+H

No conozco ningún resultado de descomposición relacionado para Reconectar.


Dos tipos especiales de permutaciones corresponden a juegos de montón particularmente simples.

  1. El primero es una carrera ascendente de descensos , por ejemplo, . Cuando π toma esta forma, el gráfico G π es una unión de camarillas disjuntas, y el juego de Desconectar se reduce a un juego en montones: los jugadores eliminan alternativamente un solo frijol de un montón hasta que todos los montones tengan el tamaño 1 .32165487πsolπ1
  2. El segundo es una carrera descendente de ascensos , por ejemplo, . Cuando π toma esta forma, el gráfico G c π es una unión de camarillas disjuntas, y el juego de Reconectar se reduce a un juego en montones: los jugadores eliminan alternativamente un solo frijol de un montón hasta que solo quede un montón .78456123πsolπC

Un pequeño pensamiento muestra que estos dos juegos diferentes en montones (podemos llamarlos 1- montones y One-Heap , con cierto riesgo de confusión) son, de hecho, isomórficos. Ambos pueden representarse mediante un juego en un diagrama de Young (como lo propuso inicialmente @domotorp) en el que los jugadores alternan quitando un cuadrado inferior derecho hasta que solo quede una sola fila. Obviamente, este es el mismo juego que 1-Heaps cuando las columnas corresponden a los montones, y el mismo juego que One-Heap cuando las filas corresponden a los montones.

Un elemento clave de este juego, que se extiende a Desconectar y Reconectar, es que la duración está relacionada con el estado final del juego de una manera simple. Cuando sea tu turno, ganarás si el juego tiene un número impar de movimientos restantes, incluido el que estás a punto de hacer. Dado que se elimina un solo cuadrado en cada movimiento, esto significa que desea que el número de cuadrados restantes al final del juego tenga la paridad opuesta que tiene ahora. Además, el número de cuadrados tendrá la misma paridad en todos tus turnos; para que sepa desde el principio qué paridad desea que tenga el conteo final. Podemos llamar a los dos jugadores Eve y Otto, según si el conteo final debe ser par o impar para que ganen. Eva siempre se mueve en estados con paridad impar y produce estados con paridad par, y Otto es lo contrario.

En su respuesta, @PeterShor ofrece un análisis completo de One-Heap. Sin repetir la prueba, el resultado es el siguiente:

  • A Otto le gustan y 2 montones, y puede tolerar un montón más grande. Gana si puede hacer todos los tamaños de almacenamiento dinámico excepto uno 2 , al menos sin darle a Eve una ganancia inmediata de la forma ( 1 , n ) . Una estrategia óptima para Otto es tomar siempre del segundo montón más grande, excepto cuando el estado es ( 1 , 1 , n > 1 ) , cuando debería tomar del n . Otto perderá si hay demasiados frijoles en grandes cantidades para empezar.122(1,norte)(1,1,norte>1)norte
  • A Eva no le gusta -con montones. Ella gana si puede hacer todos los tamaños de montón 2 . Una estrategia óptima para Eve es tomar siempre de un montón 1 , si hay alguno, y nunca tomar de un montón 2 . Eve perderá si hay demasiados 1- montones para empezar.12121

Como se señaló, esto también proporciona estrategias óptimas para 1-Heaps, aunque son algo más incómodas de expresar (y bien podría estar cometiendo un error en la "traducción" de primaria a dual). En el juego de 1-Heaps:

  • A Otto le gustan uno o dos montones grandes, y puede tolerar cualquier cantidad de montones. Gana si puede hacer que todos menos los dos montones más grandes sean 1 -caídas, al menos sin darle a Eve una victoria inmediata de la forma ( 1 , 1 , ... , 1 , 2 ) . Una estrategia óptima para Otto es tomar siempre del tercer montón más grande, o del montón más pequeño cuando solo hay dos montones.11(1,1,...,1,2)
  • A Eva no le gusta una brecha entre el montón más grande y el segundo más grande. Ella gana si puede hacer los dos montones más grandes del mismo tamaño. Una estrategia óptima para Eve es tomar siempre del montón más grande, si es único, y nunca si hay exactamente dos del tamaño más grande.

Como señala @PeterShor, no está claro cómo (o si) estos análisis podrían extenderse a los juegos más generales de Disconnect and Reconnect.

mjqxxxx
fuente
2
Creo que este tipo de juegos se conocen colectivamente como "juegos de eliminación de vértices". Pero estoy de acuerdo con usted en que la condición ganadora es bastante no estándar, ya que se refiere a la propiedad global del gráfico en lugar de a las propiedades locales, como el grado de un vértice
Tsuyoshi Ito
44
El gráfico construido se llama gráfico de permutación ( en.wikipedia.org/wiki/Permutation_graph ) en la literatura. Algunas propiedades estructurales pueden ayudar.
Yoshio Okamoto
1
@Yoshio: Ese es un buen punto. El juego de permutación es isomorfo al juego de gráficos, pero los gráficos iniciales no son arbitrarios. Entonces, incluso si el juego de gráficos general es difícil de analizar, es posible que cuando se restringe a esta subclase de gráficos, se vuelva más simple.
mjqxxxx
2
Por otro lado, la formulación más general podría ser más fácil de probar. Se sabe que las variantes de los juegos de eliminación de vértices son difíciles de PSPACE, por ejemplo: emis.ams.org/journals/INTEGERS/papers/a31int2005/a31int2005.pdf
Jeffε
2
He agregado una pregunta sobre este tipo de juego específicamente en math.SE ( math.stackexchange.com/questions/95895/… ). Por cierto, dado que los gráficos de permutación son gráficos circulares, una formulación alternativa es la siguiente: los jugadores se turnan para quitar los acordes de un conjunto inicial; el jugador que deja un conjunto de acordes que no se cruzan es el ganador.
mjqxxxx
7

En su respuesta, domotorp sugiere analizar un caso especial del juego. Este caso especial surge cuando la permutación es una serie de secuencias crecientes, cada una de las cuales es más grande que la siguiente, como (8,9,5,6,7,4,1,2,3). En este juego, comienzas con una colección de montones de piedras, y los jugadores eliminan alternativamente una piedra de un montón. El jugador que deja un solo montón gana. Diremos el º montón tiene h i piedras en ella, y se supone que la h i se dan en orden decreciente. Por ejemplo, para la permutación anterior, la h iyohyohyohyoson 3,3,2,1. Intenté dar el análisis de este juego en los comentarios a la respuesta de domotorp, pero (a) me equivoqué y (b) no hay suficiente espacio en los comentarios para dar una prueba real.

Para analizar este juego, necesitamos comparar dos cantidades: , el número de montones que contienen piedras individuales y t = i 2 , h i > 2s ; tenga en cuenta que ignoramos el montón más grande en la suma. Este es el número de piedras que deberías eliminar para asegurarte de que todos los montones, pero uno, no contengan más de dos piedras. Afirmamos que las posiciones perdedoras son las siguientes:t=yo2,hyo>2hyo-2

  1. Posiciones donde contiene un número impar de piedras.ts-2

  2. Posiciones donde contiene un número par de piedras.ts

Es fácil demostrar que desde una posición perdedora, debes ir a una posición ganadora, ya que solo puede cambiar como máximo 1 en cada turno, y la cantidad de piedras disminuye en 1 en cada movimiento.t-s

Para terminar de mostrar que esto es correcto, debemos mostrar que desde cualquier posición que no esté en la categoría (1) o (2), el primer jugador puede, en un movimiento, alcanzar una posición en la categoría (1) o (2), o ganar directamente.

Hay dos casos:

  1. Posiciones donde contiene un número impar de piedras. Aquí, si s > 0 , elimine una piedra de un montón con una sola piedra. Si solo queda un montón, hemos ganado. De lo contrario, ahora tenemos t s . Si no hay montones con una sola piedra, retire una piedra de un montón con al menos tres piedras. (Dado que había un número impar de piedras, esto es posible). Como s = 0 , tenemos t s .ts1s>0tss=0ts

  2. Posiciones donde contiene un número par de piedras. Aquí, si hay montones con al menos dos piedras que no sean el montón más grande, retire una piedra de una de ellas. Si este montón tiene tres o más piedras, t disminuye en uno. Si tiene exactamente dos piedras, s aumenta en una. Ahora tenemos t s - 2 . El último caso es cuando todos los montones excepto uno consisten en piedras individuales; En este caso, es fácil comprobar si el primer jugador gana si hay un número par de piedras.ts1tsts2

He intentado generalizar esta estrategia al juego original, y no he descubierto cómo hacerlo.

Peter Shor
fuente
1
En mi respuesta, noté que tener una solución para este caso especial también resuelve el caso especial con una serie creciente de carreras decrecientes, jugando en la posición "dual" obtenida al transponer el diagrama de Young. En particular, la estrategia óptima de Eve se convierte en "tomar del montón más grande, a menos que haya exactamente dos de ese tamaño", y la estrategia óptima de Otto se convierte en "tomar del montón más pequeño".
mjqxxxx
Estoy seguro de que este enfoque conducirá a una solución perfecta, pero en este momento todavía hay un pequeño error, por ejemplo, (3,1) no está perdiendo y (3,1,1) sí. El problema es que la definición de 2. debería excluir este caso, ya que podemos alcanzar una posición de un montón en un solo paso. Pero creo que este es el único problema con 2. y espero que no sea difícil corregirlo.
domotorp
1
@domotorp: Para (3,1), t = 0 y s = 1, entonces t s , y el criterio (2) dice que no es una posición perdedora. Para (3,1,1), t = 0 y s = 2, entonces t s - 2, y el criterio (1) dice que es una posición perdedora. Creo que te perdiste eso en la definición de t , ignoras el montón más grande.
Peter Shor
Por supuesto, olvidé esa parte al final ... ¡Entonces este juego está resuelto!
domotorp
1
No es una respuesta completa, pero vale la pena.
Jeffε
3

He implementado una solución para la verificación rápida de hipótesis. Siéntase libre de jugar con él . Si no tiene el compilador C ++ localmente, puede ejecutarlo en diferentes entradas de forma remota utilizando el enlace "cargar con nueva entrada".O(2nn)

@ Jɛ ff E Sucedió que (1,4,3,2) tiene el valor * 1, no * 2 como usted sugirió.

Dmytro Korduban
fuente
Vaya, mi error. Se corrigió la pregunta: g (1,3,2) = mex {g (1,3), g (1,2), g (3,2)} = mex {0, 0, * 1} = * 2.
Jeff el
n10n
@maldini: da la esperanza de que el juego tenga algunas buenas propiedades, lo que podría hacerlo manejable. Me pregunto qué pasa con el juego generalizado a gráficos, o el juego simplemente generalizado a gráficos perfectos.
Peter Shor
3

Editar 5 de enero: De hecho, el juego One Heap descrito a continuación es un caso especial del problema, es decir, cuando los números se siguen entre sí de una manera específica, de modo que el primer grupo es más grande que el segundo grupo, que es más grande que el tercero, etc. . y los números en cada grupo están aumentando. Por ejemplo, 8, 9, 4, 5, 6, 7, 2, 3, 1 es tal permutación. Entonces propongo resolver este caso especial primero.

Descargo de responsabilidad: ya no afirmo que la prueba a continuación es correcta, vea, por ejemplo, el comentario de Tsuyoshi que muestra que eliminar un número de una permutación dará un diagrama que no se puede obtener al eliminar un cuadrado del diagrama de la permutación. Dejé la respuesta aquí para mostrar que este enfoque no funciona, además, ya que contiene otro juego simple.

El juego tiene una formulación muy simple gracias a Young Tableaux. Estoy seguro de que se puede analizar desde allí como otros juegos y producirá un algoritmo de tiempo lineal.

Primero defina el siguiente juego en Young Diagrams: en cada turno, si el diagrama actual es horizontal (todos los cuadrados en una línea), el jugador actual pierde y el otro jugador gana; de lo contrario, el jugador actual elimina uno de los cuadros de abajo a la derecha y pasa pases al otro jugador.

Ahora ordene la secuencia de números en un cuadro joven. La afirmación principal es que el ganador del juego original es el mismo que el ganador del juego de diagrama que comienza con esta forma. Para ver esto, observe que cada vez que los jugadores eliminan un número, el diagrama de la nueva secuencia se puede lograr eliminando un cuadrado inferior derecho del diagrama. Además, cualquier diagrama de este tipo se puede lograr eliminando el número del cuadrado inferior derecho respectivo. Estas declaraciones se desprenden de la teoría estándar de Young Tableaux.

Aunque este juego de diagramas es bastante simple, es trivialmente equivalente al siguiente juego, que parece más estándar:

One Heap Game: los jugadores reciben algunos montones con algunos guijarros en cada uno. En cada turno, si queda solo un montón, el jugador actual pierde y el otro jugador gana; de lo contrario, el jugador actual elimina un guijarro de un montón y pasa los pases al otro jugador.

Si hay una solución simple para el juego dinámico (y creo firmemente que hay una), también obtenemos una solución para el juego original: simplemente coloque la secuencia en un Tableaux joven y transforme su diagrama en montones.

Desafortunadamente, no veo qué posiciones de montón están ganando / cómo determinar los valores de Sprague-Grundy. Revisé algunos casos a mano, y las siguientes son las posiciones perdedoras con un máximo de 6 piedras:

un montón (1,1,1); (2,2); (3,1,1); (2,1,1,1); (1,1,1,1,1); (4,2); (3,3); (2,2,2).

¿Alguien puede resolver este juego?

Editar: Peter Shor puede, ver su respuesta!

domotorp
fuente
1
¿Puedes dar al menos un ejemplo que muestre cómo una permutación particular se convierte en un Tableau joven y cómo se juega en Tableau el mismo juego (eliminación de números hasta que se alcanza una secuencia ascendente)? En particular, no entiendo lo que significa eliminar "uno de los cuadrados inferiores a la derecha".
mjqxxxx
55
Aquí hay un contraejemplo a una afirmación más débil de que eliminar un número de una permutación corresponde a eliminar una de las celdas inferiores a la derecha del diagrama de Young correspondiente (en lugar del cuadro de Young ). Deje n = 5 y considere una posición especificada por la permutación [4,1,3,5,2] (es decir, σ (1) = 4, σ (2) = 1, y así sucesivamente), y elimine 3 de eso. El diagrama de Young correspondiente antes del movimiento es 5 = 3 + 1 + 1, pero el diagrama de Young correspondiente después del movimiento es 4 = 2 + 2, que no se obtiene al eliminar una celda de 3 + 1 + 1.
Tsuyoshi Ito
55
Y la permutación [5,4,1,2,3] tiene el mismo diagrama de Young que [4,1,3,5,2], pero no puedes alcanzar el diagrama de Young 4 = 2 + 2 desde él. Entonces, el juego depende de algo más que la forma del cuadro Joven.
Peter Shor
2
¡Hurra por malentendidos constructivos!
Jeff el
3
@ Jɛ ff E: Sí, esto es mucho más útil que una prueba de la mera existencia de malentendidos.
Tsuyoshi Ito