Appearance
Метод решения судоку Forcing Net
Во многих источниках этом метод упоминается как "Последний шанс".
По моему мнению, есть методы которые можно применять Человеку, а некоторые из-за сложности и большого количества вариантов лучше доверить компьютеру. Так вот, этот метод для Людей и может помочь Вам в решении судоку уровня Эксперт.
Суть метода:
Выбрать точку начала. Обычно это ячейка с двумя кандидатами, нужно выбрать один Узел и сделать предположение, что это правильное решение. Т.е. Вы принимаете, что это Узел-Истина.
Начинаете раскрашивать всех остальных соседей кандидатов в красный по секторам, ячейкам.
В ходе раскрашивания, могут появиться новые Узлы-Истина.
- Если все кандидаты в секторе или ячейке кроме одного - красные, тогда последний Узел будет Истиной.
- Можно использовать Линки/Связи. Для сильных линков, если любой конец окрасился, то другой конец окрашивается в противоположный цвет.
- Вы столкнулись с ошибочной ситуацией. То первоначальное предположение неверно.
- Если в секторе два и более Узла-Истина для одной цифры
- Если в секторе все Узлы-Ложь для одной цифры
- Если в ячейке два Узла-Истина
- Если в ячейке все Узлы-Ложь
- (для Человека тяжело) Если у Вас получилась Deadly Pattern
У Вас нет дальнейших ходов, тогда нужно попробовать метод с другим предположением, т.е. начать все сначала.
У Вас получилось открыть все цифры, значит первое предположение было верным.
Пример
txt
098634000067821090002795000650248010024907600870306040906582400745163009280479000
{15}@A1;{1257}@A7;{257}@A8;{1257}@A9;{345}@B1;{35}@B7;{345}@B9;{134}@C1;{13}@C2;{138}@C7;{368}@C8;{13468}@C9;{39}@D3;{379}@D7;{37}@D9;{13}@E1;{15}@E5;{358}@E8;{358}@E9;{19}@F3;{15}@F5;{259}@F7;{25}@F9;{13}@G2;{37}@G8;{137}@G9;{28}@H7;{28}@H8;{13}@K3;{135}@K7;{356}@K8;{1356}@K9
1. Предположение
Сделаем предположение, что {1}@A1 - Истина
2. Импликация 1.
- Если {1}@A1 => {!1}@A7, {!1}@A9 (соседи 1 по Строке A)
- Если {1}@A1 => {!1}@C1, {!1}@E1 (соседи 1 по Столбцу 1)
- Если {1}@A1 => {!1}@C1, {!1}@C2 (соседи 1 по Блоку 1)
- Если {1}@A1 => {!5}@A1 (Сосед по клетке)
Закрашиваем их красным.
Рис. 1. Forcing Net. Step 1
3. Импликация 2.
- Если {!1}@C2 => {3}@C3 (Последний кандидат в клетке)
- Если {!1}@E1 => {3}@E1 (Последний кандидат в клетке)
- Если {!5}@A1 => {5}@B1 (Последний кандидат 5 в Блоке 1)
Рис. 2. Forcing Net. Step 2
4. Импликация 3.
- Если {5}@B1 => {!3}@B1, {!4}@B1, {!5}@B7, {!5}@B9
- Если {3}@C2 => {!3}@C7, {!3}@C8, {!3}@C9, {!3}@G2
- Если {3}@E1 => {!3}@D3, {!3}@E8, {!3}@E9
Рис. 3. Forcing Net. Step 3
N. Импликация N (Последняя)
После выполнения всего раскрашивания, получится следующее.
Рис. 4. Forcing Net. Step N
Открытая судоку в примере
Рис. 5. Forcing Net. Открытая судоку
- В приложении "Sudoku by Peter" этот метод реализован, использовался. Но был отключен, в связи со сложностью описания и восприятия решения по этому методу.