El razonamiento por contradicción prueba una suposición controlada y sigue únicamente deducciones válidas hasta que la rama siga siendo posible o se vuelva imposible. Si una suposición conduce inevitablemente a violar las restricciones del nonograma, el estado contrario queda demostrado.
Es lógica avanzada. Debe utilizarse después de agotar la resolución normal de líneas y la propagación de restricciones.
La regla central
Supón que una casilla sin resolver solo puede ser rellena o vacía.
Prueba temporalmente que es vacía.
Si esa hipótesis termina provocando que una fila o columna tenga cero patrones de línea válidos, la hipótesis no puede pertenecer a ninguna solución válida. Por tanto, la casilla debe ser rellena.
La misma lógica funciona al revés.
La prueba es la contradicción explícita, no que una rama «parezca peor».
Ejemplo: una suposición incorrecta destruye una pista
Considera este estado parcialmente resuelto de un 5×5.
Filas:
1 21241 1
Columnas:
1 11 11 21 21 1
Después de la propagación normal, la cuadrícula es:
???■?
???.?
.. ?■?
?■■■?
?.?.?
Para la rama de ejemplo, supón que R1C1 es vacía.
Esa hipótesis fuerza la fila 1 a su único patrón restante y modifica varias columnas. Al continuar únicamente con lógica ordinaria, la fila 2 termina necesitando dos casillas rellenas separadas aunque su pista sea solo 1.
La fila 2 queda entonces con cero patrones válidos. La rama es imposible.
Por tanto, R1C1 = vacía es falso y R1C1 debe estar rellena.
Lo importante es que todos los pasos posteriores a la suposición son deducciones forzadas normales. Solo la primera elección es provisional.
Contradicción no es lo mismo que adivinar a ciegas
Adivinar significa elegir un estado porque parece plausible y continuar como si fuera cierto.
El razonamiento por contradicción mantiene la suposición explícitamente provisional:
- elige un único estado candidato concreto;
- propaga solo consecuencias lógicamente forzadas;
- busca una imposibilidad definida;
- si aparece, deshaz la rama y confirma el estado contrario;
- si no aparece, no declares correcta la hipótesis solo porque haya sobrevivido unas cuantas deducciones.
Que una rama siga siendo posible no significa que sea la solución.
Qué cuenta como contradicción
Ejemplos válidos son:
- una línea no tiene ninguna disposición que satisfaga sus pistas y estados conocidos;
- un run relleno continuo supera la longitud de todas las pistas compatibles;
- los bloques pendientes ya no disponen de espacio suficiente;
- una casilla rellena confirmada no puede quedar cubierta por ninguna pista;
- el orden de las pistas se vuelve imposible;
- una misma casilla tendría que ser simultáneamente rellena y vacía.
Que la imagen resultante parezca rara no es una contradicción.
Usa la suposición útil más pequeña
Una buena prueba suele empezar en una casilla o colocación de bloque muy restringida, no con una larga cadena especulativa.
Prefiere candidatos donde ambos estados tengan consecuencias inmediatas fuertes. Así es más probable detectar una contradicción pronto y el razonamiento resulta más fácil de auditar.
Propaga lo suficiente, pero mantén la rama controlada
Después de asumir un estado, utiliza las mismas herramientas de siempre:
- patrones de línea válidos;
- límites de bloques;
- asignación de pistas a segmentos;
- bloques completados;
- cruce de información;
- propagación de restricciones.
No añadas una segunda suposición no demostrada dentro de la primera. Si la rama se detiene sin contradicción, vuelve al estado inicial salvo que estés entrando deliberadamente en búsqueda/backtracking.
Elige ramas informativas, no simplemente inciertas
Toda casilla desconocida tiene dos estados, pero la mayoría son malas candidatas.
Una rama útil suele estar situada donde cualquiera de sus estados cambiaría de inmediato una línea muy restringida. Buenos candidatos pueden ser:
- una casilla compartida por solo dos patrones restantes;
- el extremo de un bloque con dos colocaciones legales;
- una asignación pista-segmento con exactamente dos alternativas;
- una casilla cuyo estado completaría o rompería un bloque casi fijado.
Evita ramificar sobre una casilla libre en una gran región abierta. Ambos estados podrían conservar decenas de posibilidades y producir una búsqueda larga sin presión lógica.
Distingue lookahead corto de búsqueda completa
Una prueba por contradicción puede ser muy pequeña:
supón X → una línea cruzada pierde su último patrón válido → rechaza X.
O puede requerir una cascada más larga por varias filas y columnas.
El estatus lógico es el mismo mientras se cumplan cuatro condiciones:
- existe una única suposición provisional claramente identificada;
- cada marca posterior está forzada bajo esa suposición;
- la contradicción final es explícita;
- no se ha escondido una segunda adivinanza dentro de la rama.
Cuando empiezas a añadir decisiones arbitrarias porque la primera rama se ha detenido, ya te estás desplazando hacia búsqueda general o backtracking.
Mantén un registro de la rama
En puzles manuales difíciles ayuda distinguir mentalmente tres grupos:
- hechos raíz: estados permanentes demostrados antes de la suposición;
- consecuencias de rama: estados válidos solo mientras la hipótesis esté activa;
- conclusión de rama: contradicción explícita o ausencia de conclusión.
Si la rama falla, descarta todas sus consecuencias juntas. El único nuevo hecho permanente es la negación de la suposición que ha fallado.
Si la rama simplemente se detiene, descarta sus consecuencias y vuelve al estado raíz sin cambios.
Esta disciplina impide que estados hipotéticos se filtren al tablero real.
Las consecuencias compartidas pertenecen al análisis multilínea por casos
Si los dos estados exhaustivos de una proposición siguen siendo posibles pero ambos fuerzan la misma casilla posterior, esa consecuencia común sí es válida.
Es una técnica avanzada útil, pero la prueba ya no es «una rama contradijo». VeyraPlay la trata como razonamiento multilínea/two-way de consecuencia compartida, desarrollado en G-040.
Método paso a paso
- agota primero la propagación normal;
- elige una casilla o caso de bloque muy restringido;
- copia o aísla mentalmente el estado actual;
- asume uno de los estados candidatos;
- propaga únicamente consecuencias forzadas;
- detente en cuanto una línea quede sin patrones o aparezca otra contradicción dura;
- rechaza la hipótesis y marca el estado contrario en el puzle real;
- reinicia la propagación normal desde ese nuevo hecho.
Errores frecuentes
Tratar «me he atascado» como contradicción
Una rama que deja de producir deducciones todavía puede ser válida.
Hacer varias adivinanzas dentro de una sola rama
Entonces ya no sabes qué suposición causó la contradicción.
Rechazar una rama porque la imagen parece incorrecta
Solo las restricciones de las pistas pueden demostrar imposibilidad.
Usar contradicción demasiado pronto
Muchos aparentes callejones sin salida desaparecen tras revisar patrones, X, segmentos y líneas cruzadas modificadas.
Conservar como hecho una suposición que simplemente sobrevivió
No encontrar contradicción no es una prueba salvo que hayas demostrado exhaustivamente que la alternativa es imposible.
Dónde encaja dentro de la jerarquía de resolución
Un orden útil es:
- lógica directa de línea;
- segmentos y rangos de bloques;
- patrones de línea válidos;
- cruce de información y propagación;
- razonamiento multilínea y consecuencias compartidas;
- contradicción/lookahead controlado;
- búsqueda o backtracking completo solo cuando el puzle o el solver lo requieran.
Los buenos puzles diseñados para humanos suelen intentar que la mayor parte del progreso ocurra antes de la etapa de búsqueda.
Qué aprender después
El razonamiento por contradicción conecta la resolución humana con ideas usadas por los solvers: probar candidatos, detectar ramas imposibles y, si la propagación pura no basta, recurrir finalmente a búsqueda.
Preguntas frecuentes
¿El razonamiento por contradicción es adivinar?
Utiliza una suposición temporal, pero la conclusión solo es deductiva cuando una rama queda demostrada imposible. Es distinto de comprometerse con una opción y esperar que funcione.
¿Qué hago si las dos hipótesis siguen siendo posibles?
Ese caso todavía no demuestra la casilla elegida. Vuelve al estado original o busca una consecuencia compartida por ambas ramas.
¿Deberían usarlo los principiantes?
Normalmente no como primer recurso. La lógica fuerte de línea y la propagación resuelven una gran parte de los nonogramas normales y son mucho más fáciles de comprobar.