El juego de 2 jugadores está completo en Polynomial Space
Frecuentes
Visto 975 veces
2
Entonces hay un tablero de juego y cada ubicación en el tablero tiene un número entero. El jugador uno elige un número de la fila 1 y el jugador 2 elige un número de la fila 2 y se alternan hasta que no haya más filas. Luego suman todos los números y el jugador 1 gana si la suma es igual a una suma S predeterminada, el jugador 2 gana en caso contrario. Una estrategia ganadora para el jugador 1 para un tablero en particular y suma (B, S) es si el jugador 1 puede ganar sin importar lo que haga el jugador 2. Quiero mostrar que este problema es PSpace-completo
Así que primero tengo que mostrar que está en PSpace, lo que creo que es bastante fácil porque el número total de movimientos está limitado por el tamaño del tablero, que es n^2.
Sin embargo, me estoy quedando atascado en mostrar que es PSpace-difícil, sé que tengo que reducir de QSAT, pero no puedo entender cómo. ¿Alguien puede ayudar?
EDITAR: Bueno, en realidad no sé si tengo que reducir QSAT, pero después de buscar, parece que QSAT es el candidato más probable. Muchos otros juegos de dos jugadores, siendo Geography el ejemplo más destacado, se reducen de QSAT, así que pensé que este también debería hacerlo. Sin embargo, siéntete libre de corregirme si me equivoco en esto.
1 Respuestas
0
Si elige una reducción de QSAT, su tarea comienza con una fórmula.
Necesita construir una instancia de su juego para que la negación de esta fórmula sea una tautología exactamente si el jugador 1 tiene una estrategia ganadora. El papel del jugador 2 es principalmente fijar valoraciones de variables booleanas universalmente cuantificadas; el jugador 1 tiene un papel similar con respecto a las variables booleanas existencialmente cuantificadas.
Deberá mostrar algo de ingenio al llenar la tabla para que el jugador 1 solo pueda forzar una suma cero en el caso de una tautología. Asegúrese también de que el número de filas de la tabla que necesitará sea solo lineal en el número de ocurrencias del cuantificador dentro de la fórmula.
[Comienza SPOILER 1] Recuerden que discutimos en modo tarea. Ahora agregaré casi todos los detalles a la sugerencia, pero ocultaré tres fallas técnicas en la solución que espero que encuentre una vez que comprenda los detalles. Intente encontrar tantos como pueda y proponga sus propias soluciones a tantos como pueda en un comentario.
Primer vistazo a QSAT en términos de teoría de juegos. Sin pérdida de generalidad, suponga que una oración booleana cuantificada (fórmula sin variables libres) se escribe con todos los cuantificadores al frente; primero unas pocas variables existencialmente cuantificadas, luego unas pocas universales, luego otro bloque de existencial y así sucesivamente. El primer jugador comienza a jugar asignando (sustituyendo) valores booleanos específicos a las primeras variables existencialmente cuantificadas (a todo el primer bloque, deteniéndose solo cuando la fórmula después de la sustitución comienza con el cuantificador universal más a la izquierda). Luego, el jugador 2 maneja el primer bloque de universal. Luego, el jugador 1 continúa con lo que originalmente era el segundo bloque de cuantificación existencial y así sucesivamente. El jugador 1 gana si la fórmula, después de especificar todas las variables, se evalúa como "verdadera", de lo contrario, gana el jugador 2.
Este juego QSAT también se puede jugar numéricamente si asume alguna codificación de fórmulas, de modo que cada fórmula tenga un número único basado en la sintaxis (para que uno pueda determinar de manera eficiente el número de una fórmula y también la fórmula de un número). En lugar de intercambiar fórmulas, los jugadores intercambiarán números (códigos de fórmula).
Ahora imagina que queremos convertir este juego tipo QSAT en tu juego de mesa. Cada fila representará el movimiento de un jugador (para un bloque de cuantificadores del mismo tipo). Cada ubicación en la fila representará un posible movimiento de ese jugador desde cualquier posición en la fila anterior; más específicamente, el número diferencias hecho por el movimiento: el código de la fórmula después del movimiento menos el código de la fórmula antes del movimiento. De esta forma, el total acumulado siempre es igual a la fórmula tal como está en una fase determinada del juego.
Como excepción especial, modifique todas las ubicaciones en la última fila restando aún más el código de la fórmula true
. De esta forma, la suma total del juego de mesa completado será 0 si el jugador 1 ha ganado, y distinto de cero en caso contrario. Esa es la reducción deseada de la tautologicidad de la fórmula cuantificada en su juego de mesa. [Termina el SPOILER 1]
respondido 12 mar '12, 23:03
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas computer-science complexity-theory computation-theory space-complexity or haz tu propia pregunta.
Lo siento, no entiendo muy bien, ¿puedes explicarlo? ¿Debería construir la reducción para que la negación sea equivalente a una estrategia ganadora para el jugador uno? ¿Por qué la negación y no la satisfacción? Además, no estoy seguro de cómo hacer que QSAT sea equivalente a este juego, el jugador 1 que elige un número de cada fila es como una variable booleana existencialmente cuantificada y la libertad del jugador 2 para elegir cualquier cosa es como la variable booleana universalmente cuantificada, pero parece que no puedo para dibujar la conexión entre los dos. - eric mercer
La tautologicidad de la negación es lógicamente lo mismo que la negación de la satisfacibilidad. La tautología es una fórmula que siempre es válida independientemente de la valoración de sus variables libres. Eso significa que su negación nunca es válida o, dicho de manera más útil, no es satisfactoria. Cuando te acostumbras a esto, descubres que eres libre de elegir estudiar la satisfacibilidad o la tautologicidad. Ahora bien, ¿por qué elegir la tautologicidad? Porque su definición parte de un cuantificador universal (no existencial), exactamente como la definición de una estrategia ganadora. - Jirka Hanika
Con respecto a su otro punto: intente mirar los códigos numéricos de las fórmulas obtenidas de las fórmulas de entrada de los jugadores que sustituyen "verdadero" y "falso" por los primeros cuantificadores mientras juegan. ¿Puedes hacer que el total acumulado siempre refleje el código de la fórmula en una etapa determinada del juego? - Jirka Hanika
¿Cada cuadrado sería una variable? ¿Dónde 'verdadero' significa que el cuadrado está seleccionado y 'falso' significa lo contrario? De alguna manera, la definición de QSAT hace que parezca que cada variable debe representar una fila, ya que en el caso del cuantificador universal, no importa cuál sea el valor de la variable, al igual que no importa la fila. Pero cada cuantificador booleano tiene 2 valores donde cada fila puede tener n. - eric mercer
@Eric: Acabo de agregar "spoiler 1" a la pregunta. Todavía no estoy regalando completamente la solución, pero pruébalo como está primero. - Jirka Hanika