Есть ли какой-либо алгоритм, который может разрешать ЛЮБЫЕ традиционные головоломки судоку, БЕЗ угадывания (или подобных методов)?

Есть ли какой-нибудь алгоритм, который решает ЛЮБЫЕ традиционные головоломки судоку, БЕЗ гадания?

Здесь Guessing означает попытку кандидата и посмотреть, как далеко оно продвинется, если обнаружено противоречие с предположением, откат на шаг угадывания и попытка другого кандидата; когда все кандидаты исчерпаны без успеха, отступают к предыдущему шагу догадки (если есть, в противном случае доказательства головоломки недействительны.) и т.д.

EDIT1: Спасибо за ваши ответы.

традиционная судоку означает 81-бокс судоку, без каких-либо других ограничений. Скажем, мы знаем, что решение уникально, есть ли какой-либо алгоритм, который может ГАРАНТИРОВАТЬ, чтобы решить его без обратного отслеживания? Backtracking - универсальный инструмент, у меня нет ничего плохого в этом, но, используя универсальный инструмент для решения sudoku, уменьшает ценность и удовольствие при расшифровке (вручную или с помощью компьютера) головоломок sudoku.

Как человек может решить так называемую "самую трудную судоку в мире", разве он должен угадать?

Я слышал, что какой-то исследователь случайно обнаружил, что их алгоритм для некоторого анализа данных может решить всю судоку. Это правда, они тоже должны угадывать?

Ответ 1

Вы можете использовать методы, которые люди используют для решения судоку. Просто следите за каждым возможным числом на каждом квадрате и размещайте номер, если есть только одна возможность. Продолжайте обновлять возможности до тех пор, пока судоку не будет решена. Вы можете исключить возможности с помощью правил или использовать более сложные рассуждения. Например, если в одной строке два квадрата имеют возможность 1 и 2, все остальные квадраты в этой строке не могут быть 1 или 2.

Однако имейте в виду, что не каждый судоку имеет уникальное решение, и не каждый судоку может быть решен с помощью этого метода.

Изменить: Более сложные человеческие методы можно найти здесь:

http://www.sudokudragon.com/sudokustrategy.htm

Ответ 2

Не прочный ответ, просто FYI:

Там онлайн-решение Sudoku, решая проблему как человека (а не компьютер) со следующими стратегиями.

1: Скрытые синглы
2: Голые пары/тройки
3: Скрытые пары/тройки
4: Голые квадроциклы
5: Указывающие пары
6: Сокращение ящиков/линий
Трудные стратегии ==========
7: X-Wing
8: Простая раскраска
9: Y-Wing
10: Меч-Рыба
11: Крыло XYZ
Диабольные стратегии ==========
12: X-Cycles
13: XY-Chain
14: 3D Медуза
15: Желе-рыба
16: Уникальные прямоугольники
17: Extended Unique Rect.
18: Скрытый уникальный рект 19: WXYZ Wing
20: Исключительная пара исключений
Экстремальные стратегии ==========
21: Сгруппированные X-циклы
22: Пустые прямоугольники
23: Ребристый X-Wing
24: Финн-Меч-Рыба
25: Альтернатива. Цепочки выводов
26: Сью-де-Кок
27: Цифры с принудительной цепью
28: Принудительные цепи Nishio
29: Цепи клеточных приводов
30: Принудительные цепи

31: Почти заблокированные наборы
32: Смертельный цвет
33: Метод наложения шаблонов
34: Цепи цепной цепи

"Испытание и ошибка" ==========
35: Боумен Бинго

Я попробовал это, импортировав Sudoku из "очень жесткого" уровня Android Sudoku App, на котором я застрял довольно долго. Решатель сработал, самая используемая стратегия - "3D Medusa", действительно впечатляющая.

О последней стратегии,

Bowmans Bingo не решает всех "бифурцирующих судоку", но если они будут применены, он будет трещать более 80% из них. Это не панацея, как Tabling или Nishio, но это легче сделать и будет работать лучше, если вы дойдете до последних 20 или около того нерешенных квадратов.

Ответ 3

Если вы просто хотите, чтобы какой-либо алгоритм работал без угадывания, вы можете написать все традиционные судоку и их решение в большой таблице поиска. Ваш алгоритм будет выполнять поиск. Никаких угадываний не было (но таблица поиска по-прежнему кажется мне грязной).

"[...] Джарвис/Рассел вычислил количество существенно отличающихся (симметрично отличных) решений в виде 5 472 730 538". (Из https://en.wikipedia.org/wiki/Mathematics_of_Sudoku#Enumerating_essentially_different_Sudoku_solutions)

Ответ 4

Был обнаружен алгоритм, который является детерминированным (т.е. не возвратным) и гарантированно найдет решение всех проблем судоку, но это довольно сложно.

Подробности можно найти здесь: http://www.nature.com/srep/2012/121011/srep00725/full/srep00725.html