Saltar al contenido
VEYRAPLAY
Español
Sudoku
TécnicasIntermedio

Propagación de restricciones y cascadas

Aprende a aplicar repetidamente estados confirmados en filas y columnas cruzadas hasta que la cadena de consecuencias alcance un estado estable.

La propagación de restricciones es el proceso repetido de aplicar estados recién confirmados a sus líneas cruzadas, encontrar allí nuevas consecuencias y continuar hasta que ninguna deducción inmediata cambie la cuadrícula.

Una cascada es la cadena visible de deducciones que produce ese proceso.

Diagrama conceptual

Ejemplo de cascada en una cuadrícula 5×5

Considera un nonograma monocromo de 5×5 con estas pistas:

Filas: 1, 3, 5, 3, 1

Columnas: 1, 3, 5, 3, 1

La fila 3 es un encaje exacto porque la pista 5 rellena toda la fila. Marca sus cinco casillas.

Ejemplo de cuadrícula
13531
13531

Ahora propaga:

  1. las columnas 1 y 5 tienen pista 1, ya satisfecha por la casilla central, así que todas sus demás casillas son vacías;
  2. la columna 3 tiene pista 5, por lo que se rellena completa;
  3. las filas 1 y 5 ya tienen su única casilla rellena en la columna 3 y el resto se vuelve vacío;
  4. las columnas 2 y 4, ambas con pista 3, quedan obligadas a rellenar las filas 2–4;
  5. las filas 2 y 4 pasan a ser bloques completos de tres.

Una sola línea de encaje exacto ha resuelto toda la cuadrícula mediante propagación.

La propagación no es una fuente de verdad diferente

Cada paso individual sigue usando deducciones normales: encaje exacto, bloques completados, solapamiento, eliminación de huecos, filtrado de patrones, etc.

La propagación describe cómo se programan y encadenan esas deducciones por la cuadrícula compartida.

Por qué una cascada es más eficiente que volver a escanearlo todo

Cuando cambia una casilla, las únicas líneas que reciben información nueva directamente son su fila y su columna.

En lugar de volver al principio del puzle, sigue esas líneas afectadas. Si una produce otro cambio, continúa por la perpendicular de esa nueva casilla.

Así concentras el esfuerzo donde el sistema de restricciones realmente ha cambiado.

Propaga ambos tipos de certeza

Una cascada puede estar impulsada por rellenos o por X.

Por ejemplo:

  • una casilla rellena puede anclar un bloque;
  • una X puede dividir un segmento;
  • esa división puede asignar una pista;
  • la asignación puede crear un encaje exacto;
  • el encaje exacto puede completar un bloque cruzado;
  • su separador puede eliminar otro hueco.

No existe una jerarquía donde las casillas rellenas sean «progreso real» y las vacías secundarias. Ambas eliminan patrones legales.

Detente solo en un estado estable

Una pasada de propagación termina cuando todas las líneas afectadas por nuevos estados han sido revisadas y ninguna produce otra certeza.

Los solvers suelen llamar punto fijo a ese estado: repetir el mismo modelo de deducción ya no modificaría la cuadrícula.

Desde ahí, elige otra línea prometedora o, en puzles realmente duros, utiliza razonamiento más potente.

Una cascada puede empezar sin ninguna línea de encaje exacto

El ejemplo del diamante parte de una fila completa obvia. Las cascadas más interesantes comienzan con una deducción de consenso más débil.

Considera este 5×5:

Filas: 2 1, 1 1, 2, 2, 1 1

Columnas: 1 2, 1 2, 2, 1, 2

Al comienzo ninguna fila ni columna es un encaje exacto. Sin embargo, en la fila 1 con pistas 2 1, la casilla 2 está rellena en todos los patrones iniciales válidos.

Ejemplo de cuadrícula
1212212
21112211

Marca R1C2 como rellena y propaga únicamente estados de consenso. La nueva información restringe la columna 2; esa columna genera nuevos estados en las filas 2 y 4; esas filas restringen más columnas; la cadena continúa hasta fijar todas las casillas.

La solución única es:

■■××■

××■×■

×■■××

■■×××

■××■×

Este ejemplo muestra que propagar no significa simplemente «resolver primero las filas fáciles». Una deducción modesta de una sola línea puede ser decisiva porque la cuadrícula la amplifica repetidamente mediante restricciones perpendiculares.

Usa una cola de líneas modificadas

Una forma precisa de pensar la propagación manual es como una cola:

  1. cuando una casilla cambia, añade su fila y columna a la cola;
  2. toma una línea modificada y resuélvela contra el estado actual;
  3. si cambia más casillas, añade sus líneas perpendiculares;
  4. retira la línea procesada;
  5. continúa hasta que la cola quede vacía.

Una misma línea puede volver varias veces a la cola al recibir nueva información cruzada. Es normal.

Los solvers informáticos usan ideas similares porque una línea que no ha cambiado no necesita ser reconsiderada inmediatamente.

Un punto fijo depende de la potencia de tu analizador de líneas

Aquí hay un matiz avanzado importante.

Si tu análisis solo usa solapamiento simple, puedes llegar a un estado donde el solapamiento simple ya no produzca nada. Eso no demuestra que hayas alcanzado un punto fijo lógico completo.

Un analizador más fuerte que considere todos los patrones válidos puede encontrar nuevas casillas y reiniciar la propagación.

Por eso, al decir que «la propagación se ha agotado», conviene saber qué motor lógico estás propagando:

  • punto fijo de solapamiento básico;
  • punto fijo de patrones de línea completos;
  • punto fijo más fuerte de razonamiento multilínea/global.

Esto explica por qué un nonograma puede parecer atascado sin requerir realmente ninguna adivinanza.

Propagación y patrones de línea válidos

El razonamiento por patrones ofrece una visión formal muy limpia.

Cada fila y columna conserva un conjunto de patrones válidos. Cuando una casilla pasa a rellena o vacía:

  1. desaparecen los patrones incompatibles de la línea cruzada;
  2. los patrones supervivientes pueden coincidir ahora en otra casilla;
  3. ese nuevo estado filtra otra línea perpendicular;
  4. el proceso se repite.

Eso es exactamente una cascada lógica.

Flujo práctico de propagación

  1. mantén una pequeña cola mental de las líneas afectadas por tus últimos movimientos;
  2. procesa una usando la técnica de línea más fuerte que sea adecuada;
  3. cada vez que marques una casilla, añade su línea perpendicular;
  4. evita repetir líneas que no han recibido información nueva;
  5. continúa hasta que la cola no produzca más estados;
  6. vuelve entonces a un escaneo amplio para encontrar el siguiente punto de entrada.

En cuadrículas grandes este flujo es mucho más eficiente que regresar a la fila 1 después de cada deducción.

Errores frecuentes

Detenerse tras la primera consecuencia

Una nueva casilla puede desencadenar varias más. Sigue la cadena hasta que se estabilice.

Propagar una suposición incierta como si fuera un hecho

La propagación ordinaria usa estados confirmados. Si pruebas deliberadamente una hipótesis, mantén esa rama separada: eso pertenece al razonamiento por contradicción.

Ignorar cascadas de casillas vacías

Las X pueden ser el paso que divide una línea, asigna una pista o cierra un bloque.

Volver a comprobar indiscriminadamente todas las líneas

Prioriza las líneas tocadas por casillas que hayan cambiado.

Qué aprender después

Si la propagación alcanza un estado estable con casillas sin resolver, algunos puzles expertos requieren una suposición controlada: probar un estado candidato, propagar solo consecuencias lógicas y rechazarlo si produce una imposibilidad. Eso es razonamiento por contradicción.

Preguntas frecuentes

¿Propagación de restricciones y cruce de información son lo mismo?

El cruce es una transferencia entre líneas perpendiculares. La propagación es repetir esas transferencias hasta que no quede ninguna consecuencia inmediata.

¿La propagación implica adivinar?

No. La propagación estándar utiliza estados ya demostrados.

¿Una sola deducción puede resolver todo un puzle?

Sí. Algunos nonogramas contienen cascadas largas donde una única línea forzada inicia suficientes consecuencias como para completar la cuadrícula.