Skip to Content

Juego del 15: existencia de la solución

Este juego se juega en un tablero 4×44 \times 4. En este tablero hay 1515 fichas numeradas del 1 al 15. Una celda se deja vacía (denotada por 0). Hay que llevar el tablero a la posición presentada abajo moviendo repetidamente una de las fichas al espacio libre:

12345678910111213141501amp;2amp;3amp;45amp;6amp;7amp;89amp;10amp;11amp;1213amp;14amp;15amp;0\begin{matrix} 1 & 2 & 3 & 4 \ 5 & 6 & 7 & 8 \ 9 & 10 & 11 & 12 \ 13 & 14 & 15 & 0 \end{matrix}

El juego “15 Puzzle” fue creado por Noyes Chapman en 1880.

Existencia de la solución

Consideremos este problema: dada una posición en el tablero, determinar si existe una secuencia de movimientos que lleve a una solución.

Supongamos que tenemos alguna posición en el tablero:

a1a2a3a4a5a6a7a8a9a10a11a12a13a14a15a16a1amp;a2amp;a3amp;a4a5amp;a6amp;a7amp;a8a9amp;a10amp;a11amp;a12a13amp;a14amp;a15amp;a16\begin{matrix} a_1 & a_2 & a_3 & a_4 \ a_5 & a_6 & a_7 & a_8 \ a_9 & a_{10} & a_{11} & a_{12} \ a_{13} & a_{14} & a_{15} & a_{16} \end{matrix}

donde uno de los elementos es igual a cero e indica una celda vacía az=0a_z = 0

Consideremos la permutación:

a1a2...az1az+1...a15a16a_1 a_2 … a_{z-1} a_{z+1} … a_{15} a_{16}

es decir, la permutación de números correspondiente a la posición en el tablero sin el elemento cero

Sea NN el número de inversiones en esta permutación (es decir, el número de tales elementos aia_i y aja_j tales que i<ji < j, pero ai>aja_i > a_j).

Supongamos que KK es un índice de una fila donde está ubicado el elemento vacío (es decir, usando nuestra convención, K=(z1)÷ 4+1K = (z - 1) \div \ 4 + 1).

Entonces, la solución existe sii N+KN + K es par.

Implementación

El algoritmo de arriba se puede ilustrar con el siguiente código de programa:

int a[16]; for (int i=0; i<16; ++i) cin >> a[i]; int inv = 0; for (int i=0; i<16; ++i) if (a[i]) for (int j=0; j<i; ++j) if (a[j] > a[i]) ++inv; for (int i=0; i<16; ++i) if (a[i] == 0) inv += 1 + i / 4; puts ((inv & 1) ? "No Solution" : "Solution Exists");

Demostración

En 1879 Johnson demostró que si N+KN + K es impar, entonces la solución no existe, y en el mismo año Story demostró que todas las posiciones cuando N+KN + K es par tienen solución.

Sin embargo, todas estas demostraciones eran bastante complejas.

En 1999 Archer propuso una demostración mucho más simple (se puede descargar su artículo aquí ).

Problemas de práctica