Судоку помощь в решении. О методах решения проблем – судоку полный курс. Запертый кандидат в строке

Всем привет! В этой статье подробно разберём решение сложных судоку на конкретном примере. Перед началом разбора условимся называть малые квадраты цифрами, нумеруя их слева направо и сверху вниз. Все основные принципы решения судоку расписаны в этой статье.

Как обычно в первую очередь мы рассмотрим открытые одиночки. И таких оказалось только две b5- 5, e6-3. Далее расставим возможных кандидатов на все пустые поля.

Кандидатов будем расставлять мелким шрифтом зелёного цвета, чтобы отличать от уже стоящих цифр. Делаем мы это механически, просто перебирая все пустые клетки и вписывая в них цифры, которые могут в них стоять.

Плод наших трудов можно увидеть на рисунке 2. Обратим своё внимание на клетку f2. У ней есть два кандидата 5 и 9. Нам придётся пойти методом угадывания, и в случае ошибки вернуться к этому выбору. Давайте поставим цифру пять. Уберём пятёрку из кандидатов строки f, столбца 2 и квадрата четыре.

Убирать возможных кандидатов после простановки числа мы будем постоянно и в данной статье акцентировать на том внимание больше не будем!

Смотрим дальше на четвёртый квадрат, у нас имеется тройник - это клетки e1, d2, e3, которые имеют кандидатов 2, 8 и 9. Уберём их из осталных незаполненных клеток четвёртого квадрата. Идём дальше. В квадрате шесть цифра пять может быть только на е8.

Более на данный момент не видно ни пар, ни тройников, ни тем более четвёрок. Потому пойдём по другому пути. Пройдёмся по всем вертикалям и горизонталям, чтобы поубирать лишних кандидатов.

И так на второй вертикали цифра 8 можеть быть только на клетках -h2 и i2, уберём восьмёрку с других незаполненных клеток седьмого квадрата. На третьей вертикали цифра восемь может находиться только на е3. Что у нас получилось смотрим на рисунке 3.

Дальше ничего за что можно зацепиться найти не удаётся. Нам попался довольно крепкий орешек, но мы его всё равно раскусим! И так, рассмотрим снова нашу пару е1 и d2, расставим её таким образом d2-9, e1 -2. И в случае нашей ошибки вернёмся снова к этой паре.

Теперь в клетку d9 смело можем записать двойку! А в квадрате семь, девятка может быть только на h1. После чего на вертикали 1 пятёрка может быть только на i1, что в свою очередь даёт право на клетку h9 поставить пятёрку.

На рисунке 4 изображено, что у нас получилось. Теперь рассмотрим следующую пару, это d3 и f1. У них кандидаты 7 и 6. Забегая вперёд скажу, что вариант расстановки d3- 7, f1 -6 ошибочен и мы его рассматривать в статье не будем, дабы не терять время.

Рисунок 5 иллюстрирует наши труды. Что нам остаётся делать дальше? Конечно снова перебирать варианты простановки цифр! Ставим в клетку g1 тройку. Как всегда сохраняемся, дабы можно было вернуться. На i3 ставится единица. теперь в седьмом квадрате мы получаем пару h2 и i2, с цифрами 2 и 8. Это даёт нам право исключить эти цифры из кандидатов по всей незаполненной вертикали.

Исходя из последнего тезиса расставляем. а2 -четвёрка, b2 - тройка. И после чего мы можем проставить весь первый квадрат. с1 -шестёрка, а1 - единица, b3- девятка, с3 - двойка.

На рисунке 6 показано, что получилось. На i5 у нас скрытая одиночка - цифра три! А на i2 может стоять только цифра 2! Соответственно, на h2 - 8.

Теперь обратимся к клеткам е4 и е7, это пара с кандиатами 4 и 9. Расставим их так е4 четвёрка, е7 девятка. Теперь на f6 ставится шестёрка, а на f5 девятка! Дальше на с4 получаем скрытую одиночку - цифру девять! И сразу можем проставить с 8 четыре, а затем закрыть горизонталь с: с6 восьмёрка.

ВКонтакте Facebook Одноклассники

Для тех, кому нравится решать загадки cудоку самостоятельно и неспешно, формула, позволяющая быстро вычислить ответы, может показаться признанием слабости или жульничеством

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

Два исследователя разработали математический алгоритм, который позволяет решать судоку очень быстро, без предположений и перебора с возвратом.

Исследователи комплексных сетей Золтан Торожкай и Мария Эркси-Раваз из Университета Нотр-Дама также смогли объяснить, почему некоторые загадки судоку более сложные, чем другие. Единственный недостаток в том, что для того, чтобы понять, что они предлагают, нужна степень доктора математики.


Вы можете решить эту головоломку? Она создана математиком Арто Инкалой, и, как утверждают, это самая сложная судоку в мире. Фото с сайта nature.com

Торожкай и Эркси-Раваз начали анализировать судоку как часть своего исследования теории оптимизации и вычислительной сложности. Они говорят, что большинство любителей судоку используют для решения этих задач подход «грубой силы», основанный на технике предположения. Таким образом, любители судоку вооружаются карандашом и пробуют все возможные комбинации чисел, пока не будет найден правильный ответ. Этот метод неизбежно приведет к успеху, но он трудоемок и занимает много времени.

Вместо этого Торожкай и Эркси-Раваз предложили универсальный аналоговый алгоритм, который абсолютно детерминирован (не использует предположение или перебор) и всегда находит правильное решение задачи, причем довольно быстро.


Исследователи использовали «детерминированный аналоговый решатель», чтобы заполнить эту судоку. Фото с сайта nature.com

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

Они создали шкалу от 1 до 4, где 1 - «легко», 2 - «средняя степень сложности», 3 - «сложно», 4 - «очень сложно». Для решения головоломки с рейтингом 2 требуется в среднем в 10 раз больше времени, чем для задачки с рейтингом 1. Согласно этой системе, самая сложная загадка из известных до сих пор имеет рейтинг 3.6; более сложные задачи судоку пока неизвестны.


Теория начинается с картографии вероятностей для каждого отдельного квадрата. Фото с сайта nature.com

«Я не интересовался судоку, пока мы не начали работать над более общим классом выполнимости Булевых проблем, - говорит Торожкай. - Так как судоку - часть этого класса, латинский квадрат 9-го порядка оказался для нас хорошим полем для испытаний, так я с ними и познакомился. Меня и многих исследователей, изучающих такие проблемы, захватывает вопрос, как далеко мы, люди, способны зайти в решении судоку, детерминировано, без перебора, который является выбором наугад, и, если догадка не верна, нужно вернуться на шаг или на несколько шагов назад и начать сначала. Наша аналоговая модель решения детерминирована: в динамике нет никакого случайного выбора или возвращения».


Теория хаоса: степень сложности загадок показывается здесь как хаотическая динамика. Фото с сайта nature.com

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

Опыт исследования также сделал Торожкая большим любителем судоку.

«У моей жены и у меня есть несколько приложений судоку на наших iPhone, и мы, должно быть, сыграли уже тысячи раз, соревнуясь за меньшее время на каждом уровне, - говорит он. - Она часто интуитивно видит комбинации паттернов, которых я не замечаю. Я должен их выводить. Для меня становится невозможным решить многие головоломки, которые наша шкала категоризирует как трудные или очень трудные, без того, чтобы записывать вероятности карандашом».

Методология Торожкая и Эркси-Раваз была впервые опубликована в журнале Nature Physics, а затем - в журнале Nature Scientific Reports.

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

Вот какие сведения я нашел об этом сверхсложном варианте в интернете:

Профессор Хельсинского университета Арто Инкала (Arto Inkala) утверждает (2011г.), что он создал самый сложный в мире кроссворд судоку. Эту сложнейшую головоломку он создавал три месяца.

По его словам, созданный им кроссворд невозможно решить с помощью одной лишь только логики. Арто Инкала утверждает, что даже самые опытные игроки на решение потратят не меньше нескольких дней. Изобретение профессора получило название AI Escargot (AI – инициалы ученого, Escargot – от англ. «улитка»).

Для решения этой непростой задачи, как утверждает Арто Инкала, в голове одновременно нужно держать восемь последовательностей, в отличие от обычных головоломок, где помнить нужно об одной-двух последовательностях.

Ну, "последовательности переборов" – это все же отдает машинным вариантом решения проблем, а те, кто решал задачу Арто Инкала посредством собственных мозгов, говорят об этом по-разному. Кто-то решал ее пару месяцев, кто-то объявил о том, что на это потребовалось лишь 15 минут. Ну что ж, чемпион мира по шахматам возможно и справился бы с задачей за такое время, а экстрасенс, если таковые обитают на нашей плане, возможно и еще быстрее. А еще мог быстро решить задачу тот, кто случайно с первого разу подобрал несколько удачных цифр для заполнения пустых ячеек. Скажем, одному из тысячи решателей задачи могло бы подобным образом и повезти.

Так вот, о переборе: если удачно выбрать две три правильных цифры, то перебирать восемь последовательностей (а это десятки вариантов) может и не потребоваться. Такое у меня было соображение, когда я решил приступить к решению указанной задачи. Для начала я, будучи уже подготовленным в рамках методик предыдущих статей, решил забыть о том, что знал до сих пор. Есть такой прием, заключающийся в том, что поиск решения должен протекать свободно, без навязанных ему схем и идей. А ситуация для меня была новой, так что требовалось на нее и по-новому взглянуть. Я расположил (в Эксель) исходную таблицу (справа) и рабочую таблицу, о смысле которой я уже имел случай рассказать в первой о судоку моей статье :

Рабочая таблица, напомню, содержит предварительно допустимые сочетания цифр в исходно пустых ячейках.

После обычной почти рутинной обработки таблиц ситуации немного упростилась:

Эту ситуацию я и начал изучать. Ну а поскольку я уже подзабыл, как именно я решал эту задачу несколькими днями раньше, то начинаю осмысливать ее по новой. Прежде всего, я обратил внимание на два числа 67 в ячейках четвертого блока и совместил их с механизмом вращения (перемещения) ячеек, о котором рассказывал в предыдущей статье. Перебрав все варианты вращения трех первых столбцов таблицы, я пришел к выводу, что цифры 6 и 7 не могут находиться в одном столбце и не могут вращаться асинхронно, они, в процессе вращения, могут лишь следовать одна за другой. Также, если присмотреться, семерка с четверкой как бы передвигаются синхронно по всем трем столбцам. Поэтому я делаю правдоподобное предположение, что в нижней левой ячейке блока 4 должна разместиться цифра 7, а в правой верхней – соответственно 6.

Но этот результат я пока принимаю лишь как возможный ориентир в опробовании других вариантов. А основное внимание я обращаю на число 59 в ячейке 4-го блока. Здесь может быть либо цифра 5, либо 9. Девятка обещает уничтожить очень много лишних цифр, т.е. упростить дальнейший ход решения задачи, и я начинаю с этого варианта. Но довольно быстро захожу в "тупик", т.е. далее надо снова делать какой-то выбор и как знать, как долго мой выбор будет проверяться. Я предполагаю, что если бы девятка действительно была когда-то правильным выбором, то Инкала вряд ли бы оставил такой очевидный вариант на виду, хотя механизм его программы мог и допустить подобный ляпсус. В общем, так или иначе, я решил сначала досконально проверить вариант с цифрой 5 в ячейке с числом 59.

Но уже позже, когда решил задачу, я, так сказать для очистки совести, все же вернулся к варианту с цифрой 9, чтобы определить как долго пришлось бы его проверять. Проверять пришлось не очень долго. Когда у меня в правой верхней ячейке блока 4 оказалась цифра 6, как и полагалось по предварительно выбранному ориентиру, то в правой средней ячейке возникло число 19 (убралась 6 из 169). Я выбрал для дальнейшего опробование цифру 9 в этой ячейке и быстро пришел к противоречивому результату, т.е. выбор девятки не верен. Тогда выбираю цифру 1 и снова проверяю, что из этого выйдет.

На каком-то шаге прихожу к ситуации:

где снова приходится делать выбор – цифру 2 или 8 в верхней средней ячейке блока 4. Проверяю оба варианта (2 и 8) и в обоих случаях заканчиваю противоречивым (не отвечающим условию судоку) результатом. Так что мог бы проверить вариант с цифрой 9 в средней нижней ячейке блока 4 с самого начала и много времени на это не потребовалось бы. Но я все же, как уже говорил, остановился на цифре 5 в упомянутой ячейке. Это привело меня к следующему результату:

Расположение цифр 4 и 7 в первых трех столбцах (колонках) свидетельствует о том, что они вращаются синхронно, что собственно и предполагалось при выборе цифры 7 для нижней левой ячейки 4-го блока. При этом двойка или девятка, будь любая из них требуемой цифрой в средней левой ячейке этого блока, должны соответственно двигаться асинхронно паре 4 и 7. Предпочтение в данном случае я отдал цифре 2, так как она "обещала" устранить много лишних цифр из чисел ячеек и, соответственно, быструю проверку допустимости данного варианта. А девятка быстро заводила в тупик – требовала подбора новых цифр. Таким образом, в левой средней ячейке блока с числом 29 я проставил не мой взгляд более предпочтительную из цифр – 2. Результат вышел следующим:

Далее мне пришлось еще раз сделать так сказать полупроизвольный выбор: выбрал двойку в ячейке с числом 26 в девятом блоке. Для этого достаточно было заметить, что 5 и 2 в трех нижних строках вращаются синхронно, так как 5 не вращалась синхронно ни с 1, ни с 6. Правда, синхронно могли вращаться еще 2 и 1, но из каких-то соображений – точно не помню – я выбрал 2 вместо числа 26, возможно потому, что этот вариант, по моей оценке, быстро проверялся. Впрочем, уже оставалось немного вариантов, и можно было достаточно быстро проверить любой из них. Можно было также вместо варианта с двойкой предположить, что цифры 7 и 8 вращаются синхронно в последних трех столбцах (колонках), а отсюда следовало, что в левой верхней ячейке 9-го блока могла быть только цифра 8, что также приводит к быстрой развязке задачи.

Надо сказать, что задача Арто Инкала не допускает чисто логического решения в рамках возможностей обычного человека – так она задумана, – но все же позволяет заметить некоторые перспективные варианты перебора возможных подстановок цифр и существенно сократить этот перебор. Попробуйте начать перебор с иных, чем в данной статье, позиций, и вы, убедитесь, что почти все варианты очень быстро заводят в тупик и требуется делать все новые и новые предположения относительно дальнейшего выбора подходящих подстановок цифр. Месяца два назад я уже пытался решить эту задачу, не имея той подготовки, которую я описал в предыдущих статьях. Проверил вариантов десять ее решения и оставил дальнейшие попытки. Последний же раз, уже будучи более подготовленным, я решал эту задачу полдня или немного более, но при этом с одновременным обдумыванием выбора с моей точки зрения наиболее показательных для читателей вариантов и также с предварительным обдумыванием текста будущей статьи. А окончательный результат решения получился следующий:

Собственно, данная статья не имеет самостоятельного значения, она написана лишь для иллюстрации того, как приобретенные навыки и теоретические соображения, описанные в предыдущих статьях, позволяют решать довольно сложные проблемы. А статьи были, напомню, не о судоку, а о механизмах решения проблем на примере судоку. Предметы, как по мне, совершенно разные. Однако поскольку судоку интересует многих, то я таким образом решил привлечь внимание к более существенному вопросу, касающемуся не собственно судоку, но решения проблем.

А в остальном – желаю вам успехов в решении всех проблем.

В этой статье разберём подробно каким образом решать сложные судоку на примере диагонального судоку.

Нам выпадает условие номер 437, которое показано на рисунке 1. И сразу бросается в глаза первый квадрат, он самый насыщенный на открытые цифры. Не хватает цифр 1, 3,4,9. Но так как горизонталь а тройку уже содержит, то цифра три ставится на с1. Остальные мы точно поставить не можем. Потому рассмотрим что у нас ещё есть. К примеру вертикаль 4 и здесь цифра четыре может стоять только на b4, из за наличия четвёрки в пятом квадрате и на горизонталь с. Остальные цифры мы пока ставить не будем.

Все приёмы и методы, которые мы будем применять далее относятся как к решению простых, так и сложных судоку.

А что у нас на горизонтали b? Тут не хватает тройки и стоять она может только на b8. (Во втором квадрате она уже есть и на вертикали 9). И если внимательно рассмотреть дальше горизонталь b, то мы обнаружим, что у нас есть скрытая одиночка - цифра 9 на клетке b9. Потому как остальные кандидаты (это 1 и 5) на этой клетке стоять не могут!

Что мы можем дальше сделать? Если рассмотреть квадрат пять. Тут цифры 3 и 5 могут быть либо на d5 либо на e6. Значит для остальных цифр эти клетки не рассматриваем.Исходя из этого для единички остаётся только одно место - клетка d6.

Результат наших действий на рисунке 2. Благодаря проведённому нами анализу ряд b проставляется полностью. Единица на b5, пятёрка на b6. Что даёт нам право расставить 3 и 5 в пятом квадрате!

Продолжим анализ пятого квадрата. В нём не хватает цифры 7, её же нет на главных диагоналях, а что самое интересное на вертикали 4. Благодаря этой самой вертикали мы можем точно сказать что цифра семь в пятом квадрате может стоять либо на f4 или e4. Так как горизонтали с и d семёрку уже содержат. А на е5 она не может стоять из за вертикали 4. Дальше обратимся к главным горизонталям. И тут семёрки сразу расставляются! На i9 и на f4.

Что у нас получилось можно увидеть на рисунке 3. Дальше продожим анализ главных диагоналей. Если рассмотреть идущую с клетки а1, то в ней не хватает двойки, которая ставится только на h8. Ещё в этой диагонали не хватает 1, 8 и 9 . Единичка может стоять только на а1, ставим быстренько её! А восьмёрка на d4 стоять не может, так как она есть на горизонтали d уже. Расставляем - d4 -9, e5 -8.

А вот теперь мы можем полностью заполнить пятый и первый квадраты! Что у нас получилось смотрим на рисунке 4.

Обратите внимание на вертикаль 3. Тут нужно расставить 1, 6, 7. Единица ставится только на f3, а исходя из этого расставляются остальные - e3 -7, h3-6. Дальше на очереди у нас вертикаль 9, так как она расставляется просто сказочно. d9-2, g9-6, h9-8.

А что если нам проверить на открытые одиночки?! К примеру, цифра три смело ставится на клетки d2 и h5. Хотя дальнейший анализ одиночек ничего не даёт. Тогда обратимся к оставшейся диагонали. У ннеё не хватает 6, 2, 4. Цифра шесть может быть только на c7. Остальное уже просто заполнить.

А почему у нас вертикаль 4 не проставлена до конца? Исправляем. с4 -8.

Результат наших изысканий на рисунке5. А теперь заполним горизонталь с. с8-1, с5-9, с6-2. И это всё исходя из наличия этих цифр в других вертикалях. Основываясь на горизонтали с легко заполнить горизонталь d. d1-6, d7 -4. Дальше совсем просто заполняется третий квадрат. А вот второй квадрат пока не заполнится, хотя так же только два кандидата - шестёрка и семёрка. Но по вертикалям пять и шесть они не встречаются и потому пока отложим их.

Проанализировав все вертикали и горизонтали мы приходим к выводу, что однозначно поставить нельзя ни одной цифры. Потому переходим к рассмотрению квадратов. Обратимся к шестому квадрату. Тут не хватает 5,6,8,9. Но цифры 6 и 8 мы точно можем поставить на клетки f7 и f8. Благодаря нашему анализу горизонталь f проставляется вся! f1 -9, f2 -5. И что мы тут видим - четвёртый квадрат заполняется весь! е1- 4, е2 -2.

Что у нас получилось можно посмотреть на рисунке 6. Теперь обратимся к квадрату девять. Здесь у нас появляется одна открытая одиночка - цифра один на i7. Благодаря чему мы можем поставить единичку в седьмом квадрате на g2. Восьмёрка на i2.

Проверьте, нет ли на поле больших квадратов с одной отсутствующей цифрой. Проверьте каждый большой квадрат и посмотрите, нет ли среди них такого, в котором отсутствует всего одна цифра. Если такой квадрат есть, его будет легко заполнить. Просто определите, какой из цифр от единицы до девятки в нем не хватает.

  • Например, в квадрате могут присутствовать цифры от одного до трех и от пяти до девяти. В таком случае там отсутствует четверка, которую и требуется вставить в пустую ячейку.

Проверьте, нет ли рядов и колонок, в которых отсутствует всего одна цифра. Пройдитесь по всем рядам и колонкам головоломки, чтобы выяснить, нет ли случаев отсутствия всего одной цифры. Если такой ряд или колонка есть, определите, какой цифры из ряда от одного до девяти не хватает, и впишите ее в пустую ячейку.

  • Если в колонке цифр стоят числа от одного до семи и девятка, то становится ясно, что не хватает восьмерки, которую и требуется вписать.
  • Внимательно просмотрите ряды или колонки, чтобы заполнить недостающими цифрами крупные квадраты. Посмотрите на ряд из трех крупных квадратов. Проверьте его на наличие двух повторяющихся цифр в разных больших квадратах. Проведите пальцем по рядам, в которых содержатся эти цифры. В третьем крупном квадрате также должна присутствовать эта цифра, но она не может располагаться в тех же двух рядах, которые вы проследили пальцем. Она должна располагаться в третьем ряду. Иногда две ячейки из трех в этом ряду квадрата будут уже заполнены цифрами и вам будет легко вписать на свое место ту цифру, которую вы проверяли.

    • Если в двух больших квадратах ряда присутствует восьмерка, ее необходимо проверить в третьем квадрате. Проведите пальцем по рядам с присутствующими двумя восьмерками, так как в этих рядах в третьем большом квадрате восьмерка стоять не может.
  • Дополнительно просмотрите поле головоломки в другом направлении. Как только поймете принцип просмотра рядов или колонок головоломки, добавьте к нему просмотр в другом направлении. Используйте вышеуказанный принцип просмотра с небольшим дополнением. Возможно, когда вы доберетесь до третьего большого квадрата, в рассматриваемом ряду будет присутствовать лишь одна готовая цифра и две пустые ячейки.

    • В таком случае необходимо будет проверить колонки цифр над и под пустыми ячейками. Посмотрите, нет ли в одной из колонок той же цифры, которую вы собираетесь поставить. Если вы нашли эту цифру, вам нельзя ставить ее в ту колонку, где она уже есть, поэтому ее нужно вписать в другую пустую ячейку.
  • Работайте сразу с группами цифр. Другими словами, если вы заметите много одинаковых цифр на поле, они могут помочь вам заполнить остальные квадраты этими же цифрами. Например, на поле головоломки может присутствовать много пятерок. Используйте вышеуказанную технику просмотра поля, чтобы заполнить его оставшимися пятерками, насколько это возможно.