Три підходи тут передбачають зменшення SAT у його двовимірній геометричній lingua franca: логічні головоломки нонограми. Клітини в логічній загадці відповідають змінним SAT, обмеженням пунктів.
Для повного пояснення (і, будь ласка, перегляньте мій код на предмет помилок!) Я вже розмістив деяке розуміння шаблонів у просторі рішення нонограму. Дивіться https://codereview.stackexchange.com/questions/43770/nonogram-puzzle-solution-space. Перерахування> 4 мільярдів головоломкових рішень та їх кодування, щоб вони вмістилися в таблиці істинності, показують фрактальні візерунки - самоподібність та, особливо, спорідненість. Це споріднене надмірність демонструє структуру в рамках проблеми, яку можна використовувати для зменшення обчислювальних ресурсів, необхідних для генерації рішень. Це також свідчить про необхідність хаотичного зворотного зв’язку в межах будь-якого успішного алгоритму. Існує пояснювальна сила в поведінці фазового переходу, де "легкими" екземплярами є ті, що лежать уздовж грубої структури, тоді як "жорсткі" екземпляри вимагають подальшої ітерації до тонких деталей, досить прихованих від звичайної евристики. Якщо ви хочете збільшити масштаб кута цього нескінченного зображення (закодовані всі <= 4x4 екземпляри головоломки), див. Http://re-curse.github.io/visualizing-intractability/nonograms_zoom/nonograms.html
Спосіб 1. Екстраполюйте космічну тінь розчину нонограму за допомогою хаотичних карт та машинного навчання (подумайте, придатні функції, аналогічні тим, які генерують набір Мандельброта).
Ось наочний доказ індукції. Якщо ви можете сканувати ці чотири зображення зліва направо і вважаєте, що у вас є гарна ідея генерувати відсутні 5-й ... 6-й ... і т.д. зображення, то я щойно запрограмував вас як мій NP Oracle для вирішення проблеми нонограмного рішення існування. Будь ласка, відійдіть, щоб претендувати на свій приз як найпотужніший суперкомп'ютер у світі. Я буду годувати вас струмами електроенергії раз у той час, поки світ дякує вам за ваш обчислювальний внесок.
Спосіб 2. Використовуйте перетворення Фур'є на булевій версії зображення входів. FFT надають глобальну інформацію про частоту та положення в екземплярі. Хоча частина величини повинна бути однаковою між вхідною парою, їх фазова інформація зовсім інша - містить орієнтовану інформацію про проекцію розчину вздовж певної осі. Якщо ви досить розумні, ви можете реконструювати фазове зображення рішення за допомогою спеціального накладу зображень на вхідній фазі. Потім обернені перетворюють фазу та загальну величину назад у часову область рішення.
Що міг би пояснити цей метод? Існує безліч перестановок булевих зображень з гнучким підбиванням між суміжними прогонами. Це дозволяє відображати рішення між вхідним рішенням>, доглядаючи за кратністю, зберігаючи при цьому властивість FFT двонаправлених, унікальних відображень між часовою областю <-> (частотою, фазою). Це також означає, що немає такого поняття, як "немає рішення". Що б це сказало, це те, що у безперервному випадку є варіанти сірого масштабу, які ви не замислюєтесь, дивлячись на зображення жовчі в традиційному вирішенні головоломки нонограм.
Чому б ти цього не зробив? Це насправді жахливий спосіб обчислити, оскільки FFT в сучасному світі з плаваючою комою були б дуже неточними з великими випадками. Точність є величезною проблемою, і реконструкція зображень із квантованих зображень величини та фаз зазвичай створює дуже приблизні рішення, хоча, можливо, візуально не для порогів очей людини. Також дуже важко придумати цей суперпозиційний бізнес, оскільки тип функцій, які він справді виконує, наразі невідомий. Це була б проста схема усереднення? Напевно, ні, і немає жодного конкретного способу пошуку, окрім інтуїції.
Спосіб 3. Знайдіть правило стільникового автомата (з можливих ~ 4 мільярдів таблиць правил за правилами фон Неймана 2-го стану), яке розв’язує симетричну версію головоломки нонограм. Ви використовуєте пряме вбудовування проблеми в комірки, показані тут.
Це, мабуть, найелегантніший метод з точки зору простоти та хороших ефектів для майбутнього обчислень. Існування цього правила не доведено, але я маю думку, що воно існує. Ось чому:
Нонограми вимагають багато хаотичного зворотного зв’язку в алгоритмі, щоб точно вирішити. Це встановлено кодером грубої сили, пов'язаним з Code Review. CA - це якраз про найбільш здатну мову програмувати хаотичний зворотний зв'язок.
Це виглядає правильно, візуально. Правило розвиватиметься за допомогою вбудовування, розміщення інформації по горизонталі та вертикалі, втручається, а потім стабілізується до рішення, що збереже кількість заданих комірок. Цей маршрут пропонування відповідає шляху (назад), про який ви зазвичай думаєте, коли проектуєте тінь фізичного об'єкта в оригінальну конфігурацію. Нонограми походять від окремого випадку дискретної томографії, тому уявіть, що сидите одночасно у двох точилових томографах, котрих розгорнутих куточками. Ось так рентгенівські промені пропонували б генерувати медичні зображення. Звичайно, існують межові проблеми - краї всесвіту ЦА не можуть тримати пропонування інформації поза межами, якщо ви не дозволите тороїдальну Всесвіт. Це також розглядає головоломку як періодичну крайову проблему.
Він пояснює численні рішення як перехідні стани, що мають постійно коливальний ефект між перемиканнями виходів у якості входів, і навпаки. Він пояснює випадки, які не мають рішення, як оригінальні конфігурації, які не зберігають кількість встановлених комірок. В залежності від фактичного результату знаходження такого правила, він може навіть приблизно нерозв'язні випадки з близьким рішенням , де клітинні стану є законсервованими.