Aquí hay tres enfoques, todos implican una reducción de SAT en su lingua franca geométrica 2D: rompecabezas de lógica de nonogramas. Las celdas en el rompecabezas lógico corresponden a variables SAT, restricciones a cláusulas.
Para obtener una explicación completa (¡y para revisar mi código en busca de errores!), Ya publiqué algunas ideas sobre los patrones dentro del espacio de solución de nonogramas. Ver https://codereview.stackexchange.com/questions/43770/nonogram-puzzle-solution-space. Enumerar> 4 mil millones de soluciones de rompecabezas y codificarlas para que encajen en una tabla de verdad muestra patrones fractales: auto-similitud y especialmente autoafinidad. Esta redundancia afín demuestra la estructura dentro del problema, explotable para reducir los recursos computacionales necesarios para generar soluciones. También muestra la necesidad de retroalimentación caótica dentro de cualquier algoritmo exitoso. Existe un poder explicativo en el comportamiento de transición de fase donde las instancias "fáciles" son aquellas que se encuentran a lo largo de la estructura gruesa, mientras que las instancias "duras" requieren una mayor iteración en detalles finos, bastante ocultas de la heurística normal. Si desea ampliar la esquina de esta imagen infinita (todas las instancias de rompecabezas <= 4x4 codificadas) consulte http://re-curse.github.io/visualizing-intractability/nonograms_zoom/nonograms.html
Método 1. Extrapolar la sombra espacial de la solución de nonogramas utilizando mapas caóticos y aprendizaje automático (piense en funciones de ajuste similares a las que generan el conjunto de Mandelbrot).
Aquí hay una prueba visual de inducción. Si puede escanear estas cuatro imágenes de izquierda a derecha y piensa que tiene una buena idea para generar la quinta falta ... etc ... sexta imágenes, entonces me acaba de programar que como mi oráculo NP para el problema de decisión de la solución nonogram existencia. Da un paso adelante para reclamar tu premio como la supercomputadora más poderosa del mundo. Te alimentaré con descargas eléctricas de vez en cuando mientras el mundo te agradece por tus contribuciones computacionales.
Método 2. Utilice transformadas de Fourier en la versión de imagen booleana de las entradas. Los FFT proporcionan información global sobre frecuencia y posición dentro de una instancia. Si bien la porción de magnitud debe ser similar entre el par de entrada, su información de fase es completamente diferente, ya que contiene información direccionalizada sobre una proyección de solución a lo largo de un eje específico. Si es lo suficientemente inteligente, puede reconstruir la imagen de fase de la solución a través de una superposición especial de las imágenes de fase de entrada. Luego, invierta la transformación de la fase y la magnitud común de vuelta al dominio del tiempo de la solución.
¿Qué podría explicar este método? Hay muchas permutaciones de las imágenes booleanas con relleno flexible entre ejecuciones contiguas. Esto permite un mapeo entre la entrada -> solución cuidando la multiplicidad mientras conserva la propiedad de FFT de mapeos bidireccionales y únicos entre el dominio del tiempo <-> (frecuencia, fase). También significa que no existe tal cosa como "no hay solución". Lo que diría es que, en un caso continuo, existen soluciones en escala de grises que no está considerando al mirar la imagen de dos niveles de la resolución tradicional de rompecabezas de nonogramas.
¿Por qué no lo harías? Es una forma horrible de calcular, ya que las FFT en el mundo de punto flotante de hoy en día serían muy inexactas con grandes instancias. La precisión es un gran problema, y la reconstrucción de imágenes a partir de imágenes cuantificadas de magnitud y fase generalmente crea soluciones muy aproximadas, aunque tal vez no sea visualmente para los umbrales del ojo humano. También es muy difícil llegar a este negocio de superposición, ya que actualmente se desconoce el tipo de función que lo realiza. ¿Sería un simple esquema de promedio? Probablemente no, y no hay un método de búsqueda específico para encontrarlo, excepto la intuición.
Método 3. Encuentre una regla de autómatas celulares (de un posible ~ 4 mil millones de tablas de reglas para las reglas de 2 estados de von Neumann) que resuelve una versión simétrica del rompecabezas de nonogramas. Utiliza una incrustación directa del problema en las celdas, como se muestra aquí.
Este es probablemente el método más elegante, en términos de simplicidad y buenos efectos para el futuro de la informática. La existencia de esta regla no está probada, pero tengo el presentimiento de que existe. Este es el por qué:
Los nonogramas requieren muchos comentarios caóticos en el algoritmo para ser resueltos exactamente. Esto se establece mediante el código de fuerza bruta vinculado a la Revisión de código. CA es el lenguaje más capaz para programar comentarios caóticos.
Se ve bien, visualmente. La regla evolucionaría a través de una incrustación, propagaría la información horizontal y verticalmente, interferiría y luego se estabilizaría en una solución que conservara el número de celdas establecidas. Esta ruta de propagación sigue el camino (hacia atrás) en el que normalmente piensa cuando proyecta la sombra de un objeto físico en la configuración original. Los nonogramas se derivan de un caso especial de tomografía discreta, así que imagínese sentado al mismo tiempo en dos escáneres de CT acorralados por gatitos ... así es como se propagarían los rayos X para generar las imágenes médicas. Por supuesto, hay problemas de límites: los bordes del universo CA no pueden seguir propagando información más allá de los límites, a menos que permita un universo toroidal. Esto también arroja el rompecabezas como un problema periódico de valor límite.
Explica múltiples soluciones como estados transitorios en un efecto oscilante continuo entre el intercambio de salidas como entradas, y viceversa. Explica instancias que no tienen solución como configuraciones originales que no conservan el número de celdas establecidas. Dependiendo del resultado real de encontrar dicha regla, incluso puede aproximarse a instancias insolubles con una solución cercana donde se conservan los estados celulares .