Trzy podejścia tutaj, wszystkie polegają na redukcji SAT do 2D geometrycznej lingua franca: łamigłówki logiczne nonogram. Komórki w układance logicznej odpowiadają zmiennym SAT, ograniczeniom klauzul.
Aby uzyskać pełne wyjaśnienie (i proszę przejrzeć mój kod pod kątem błędów!) Już opublikowałem pewien wgląd w wzorce w obszarze rozwiązania nonogram. Zobacz https://codereview.stackexchange.com/questions/43770/nonogram-puzzle-solution-space. Wyliczenie> 4 miliardów rozwiązań łamigłówek i zakodowanie ich w tabeli prawdy pokazuje wzorce fraktalne - podobieństwo do siebie, a zwłaszcza powinowactwo do siebie. Ta nadmiarowość afiniczna pokazuje strukturę problemu, którą można wykorzystać do zmniejszenia zasobów obliczeniowych niezbędnych do generowania rozwiązań. Pokazuje także potrzebę chaotycznej informacji zwrotnej w ramach dowolnego udanego algorytmu. W zachowaniu przejścia fazowego występuje moc wyjaśniająca, w której „łatwymi” instancjami są te, które leżą wzdłuż grubej struktury, podczas gdy „twarde” instancje wymagają dalszej iteracji do drobnych szczegółów, całkowicie ukrytych przed normalną heurystyką. Jeśli chcesz powiększyć narożnik tego nieskończonego obrazu (wszystkie zakodowane instancje <= 4x4) zobacz http://re-curse.github.io/visualizing-intractability/nonograms_zoom/nonograms.html
Metoda 1. Ekstrapoluj cień przestrzeni rozwiązania nonogram za pomocą chaotycznych map i uczenia maszynowego (pomyśl dopasowanie funkcji podobnych do tych, które generują zestaw Mandelbrota).
Oto wizualny dowód indukcji. Jeśli możesz zeskanować te cztery obrazy od lewej do prawej i uważasz, że masz dobry pomysł, aby wygenerować brakujące 5. ... 6. ... itd., To właśnie zaprogramowałem cię jako moją wyrocznię NP dla problemu decyzyjnego rozwiązania nonogram istnienie. Zrób krok, aby odebrać swoją nagrodę jako najpotężniejszy superkomputer na świecie. Od czasu do czasu karmię cię prądem, podczas gdy świat dziękuje ci za wkład w obliczenia.
Metoda 2. Użyj transformacji Fouriera w wersji wejściowej z obrazem logicznym. FFT zapewniają globalne informacje o częstotliwości i pozycji w instancji. Podczas gdy część wielkości powinna być podobna między parą wejściową, ich informacja o fazie jest zupełnie inna - zawiera ukierunkowane informacje o rzucie rozwiązania wzdłuż określonej osi. Jeśli jesteś wystarczająco sprytny, możesz zrekonstruować obraz fazowy rozwiązania za pomocą specjalnej superpozycji wejściowych obrazów fazowych. Następnie odwróć transformację fazy i wspólnej wielkości z powrotem do dziedziny czasu rozwiązania.
Co ta metoda może wyjaśnić? Istnieje wiele kombinacji obrazów boolowskich z elastycznym wypełnieniem między ciągłymi przebiegami. Pozwala to na mapowanie między rozwiązaniem wejściowym -> dbającym o wielość, przy jednoczesnym zachowaniu właściwości FFT dwukierunkowych, unikalnych mapowań między dziedziną czasu <-> (częstotliwość, faza). Oznacza to również, że nie ma czegoś takiego jak „brak rozwiązania”. Mówiłoby to, że w ciągłym przypadku istnieją rozwiązania w skali szarości, których nie bierze się pod uwagę, patrząc na dwupoziomowy obraz tradycyjnego rozwiązywania łamigłówek z użyciem nonogramów.
Dlaczego tego nie zrobiłeś? To okropny sposób na obliczenia, ponieważ FFT w dzisiejszym zmiennoprzecinkowym świecie byłyby bardzo niedokładne w przypadku dużych instancji. Precyzja jest ogromnym problemem, a rekonstrukcja obrazów z kwantowanych obrazów wielkości i faz zwykle tworzy bardzo przybliżone rozwiązania, choć może nie wizualnie dla progów ludzkiego oka. Bardzo trudno jest wymyślić ten biznes superpozycjonowania, ponieważ rodzaj faktycznie wykonującej go funkcji jest obecnie nieznany. Czy byłby to prosty schemat uśredniania? Prawdopodobnie nie i nie ma żadnej konkretnej metody wyszukiwania oprócz intuicji.
Metoda 3. Znajdź regułę automatów komórkowych (z możliwych ~ 4 miliardów tabel reguł dla reguł 2-stanowych von Neumanna), która rozwiązuje symetryczną wersję łamigłówki nonogramowej. Wykorzystujesz bezpośrednie osadzenie problemu w pokazanych tutaj komórkach.
Jest to prawdopodobnie najbardziej elegancka metoda pod względem prostoty i dobrych efektów na przyszłość komputerów. Istnienie tej reguły nie zostało udowodnione, ale mam przeczucie, że ona istnieje. Dlatego:
Nonogramy wymagają wielu chaotycznych informacji zwrotnych w algorytmie, aby zostały dokładnie rozwiązane. Jest to ustalone przez kod brutalnej siły powiązany z przeglądem kodu. CA jest językiem najbardziej zdolnym do programowania chaotycznego sprzężenia zwrotnego.
To wygląda dobrze, wizualnie. Reguła ewoluowałaby poprzez osadzanie, przekazywanie informacji poziomo i pionowo, ingerowanie, a następnie stabilizowanie do rozwiązania, które zachowało liczbę ustawionych komórek. Ta trasa propagacji podąża ścieżką (do tyłu), o której zwykle myślisz, rzutując cień obiektu fizycznego na pierwotną konfigurację. Nonogramy wywodzą się ze specjalnego przypadku tomografii dyskretnej, więc wyobraź sobie, że siedzisz jednocześnie w dwóch tomografach komputerowych z rogami kotka. W ten sposób promieniowanie rentgenowskie zareagowałoby na generowanie obrazów medycznych. Oczywiście istnieją problemy graniczne - krawędzie wszechświata CA nie mogą dalej propagować informacji poza granicami, chyba że dopuścisz wszechświat toroidalny. To także stawia zagadkę jako okresowy problem z wartością graniczną.
Wyjaśnia wiele rozwiązań jako stany przejściowe z ciągłym oscylującym efektem między zamianą wyjść jako danych wejściowych i odwrotnie. Wyjaśnia przypadki, które nie mają rozwiązania, jako oryginalne konfiguracje, które nie oszczędzają liczby ustawionych komórek. W zależności od faktycznego wyniku znalezienia takiej reguły może ona nawet przybliżać nierozwiązywalne przypadki za pomocą bliskiego rozwiązania, w którym zachowane są stany komórek .