Supongamos que tiene una cuadrícula de n por n, y para cada fila y columna, se le dan n números que debe colocar en esa fila.
¿Se sabe si hay condiciones no muy restrictivas que puede poner en el contenido de las filas y columnas que serán suficientes para asegurarse de que puede poner un número en cada celda, para obtener el contenido correcto para cada fila y columna?
Las condiciones claramente necesarias incluyen:
Como ejemplo: para n=3, si le dicen que la fila 1 debe contener {1,2,4}, la fila 2 debe contener {1,3,5} y la fila 3 debe contener {2,3,6}, pero la columna 1 debe contener {1,3,4}, la columna 2 debe contener {2,3,5} y la columna 3 debe contener {1,2,6}:
No puede haber condiciones necesarias y suficientes fáciles de verificar , porque este problema es NP-completo.
(Supongo que podría imponer condiciones suficientes para que se pueda completar la cuadrícula que no son condiciones necesarias: por ejemplo, es trivial completar la cuadrícula si no se repite ningún número en dos filas o dos columnas).
Para mostrar esto, apelaremos a un conocido problema NP-completo: la terminación de cuadrados latinos . Este es un problema muy similar a éste. Un cuadrado latino es un cuadrícula llena de números a través de tal que cada número aparece exactamente una vez en cada fila y exactamente una vez en cada columna. En el problema de completar cuadrados latinos, se le proporciona una cuadrícula parcial como la siguiente:
Para codificar esto como una instancia del problema de fila y columna que define aquí, primero escriba los números restantes que necesitamos en cada fila y columna. En esto ejemplo, eso es por fila , por fila , por fila , para columna , para columna , y para columna .
La otra cosa que debemos asegurarnos es que ninguno de estos valores se coloque en los lugares donde el cuadrado latino ya está lleno. Así que reemplace todos esos lugares por valores únicos:
Entonces obtenemos el conjunto final de restricciones de esa fila debe tener , fila debe tener , fila debe tener , columna debe tener , columna debe tener y columna debe tener .
Entonces, si encuentra una forma rápida de verificar si se puede completar una cuadrícula con tales restricciones, puede usarla para verificar rápidamente si se puede completar un cuadrado latino, y luego puede reclamar su millón de dólares por demostrar que P = NP.