Поиск закономерностей в решении проблем – приемы для судоку

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

 

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

 

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

 

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

 

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

 

Ладно, я кажется уже и излишне заболтался – пора переходить к делу.

 

Итак, перед нами знакомая по предыдущей статье незаполненная таблица судоку:

 

 

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

 

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

 

Итак смотрим на таблицу; смотрим и размышляем...

 

Средняя, т.е. вторая, строка первого блока или "квадратика" таблицы содержит цифры 1, 7, 2. Это бросается в глаза, но что это – размышляем мы с вами – могло бы означать. Мысленно подставляем эти цифры в пустые клетки второй строки – нет, не годится, "говорит" нам наш мысленный эксперимент. Да, дорогие друзья, мы моделируем и совершаем на этих моделях мысленный эксперимент, что и есть основное содержание всех наших мыслей, окромя пустых фантазий. Хотя фантазии это тоже моделирование, а за просторечие "окромя" простите. Итак, мы можем подставлять в пустые клетки второй строки пока что все, что угодно, но за исключением цифр 1, 7, 2 – таков результат наших размышлений.

 

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

 

Через какое-то время мы замечаем, что цифра четыре содержится в трех позициях – F3, H4 и D8 – которые полностью перекрывают пустые клетки Блока 5, запрещая подставлять четверку в этих клетках, за исключением единственной, не попавшей под запрет клетки E5, куда, как показывает нам результат размышлений, мы можем, имеем право и даже обязаны подставить цифру 4. Сей факт подстановки в E5 цифры 4 запишем в виде E5-4. Запомните, пожалуйста, и осмыслите этот вид записи, чтобы мне далее не пришлось лишний раз его пояснять.

 

Теперь осмыслим сам результат, которого мы сейчас достигли. Некоторые клетки, содержащие одинаковую цифру, перекрывают пустые клетки, в смысле "запрещают" туда эту цифру помещать. Но эта цифра может находиться внутри перекрытых клеток. Пример E5-4 как раз об этом и говорит. Сочетание перекрытых и оставшихся внутри них неперекрытых пустых клеток – это наша замеченная особенность или проявленное свойство системы. Но кроме этого, что важно, замеченное свойство позволяет опознать в ней и построить очередную мысленную модель, над которой мы можем провести мысленный эксперимент. Для этого представим себе все возможные ситуации с перекрытием пустых клеток и – самое главное – осмыслим их. Если осмыслим, то справимся с любой подобной ситуацией, а если не осмыслим, то... тоже справимся с любой подобной ситуацией, но только после многочисленный "тупых" проб и ошибок. Так что осмысление достигнутого результата – это то, что сокращает время накопления нужного опыта в решении наших проблем.

 

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

 

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

 

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

 

Теперь несколько иная умозрительная ситуация. Допустим, клетка с цифрой 1 перекрывает часть клеток в другом блоке и в этом блоке остается несколько пустых клеток скажем в одном столбце. В какой именно клетке этого столбца должна быть размещена неперекрытая цифра 1 мы не знаем, но точно знаем, что она находится лишь в неперекрытом полностью столбце – больше и негде ей находиться. А это, после малых размышлений, означает для нас, что этот столбец перекрывается цифрой 1 для всех оставшихся пустых клеток столбца таблицы.

 

Например, H4 и A9 перекрывают цифрой 4 блок 9 так, что цифра 4 может находиться лишь в крайнем правом раду блока. Этот столбец пустых клеток в свою очередь перекрывает цифрой 4 крайний правый столбец блока 1. Этот блок дополнительно перекрывается клетками F3 и уже участвовавшей в "игре" клеткой H4. Таким образом, неперекрытыми в третьем блоке остаются лишь две клетки G1 и G2. Но клетка F3 перекрывает нижнюю часть блока 1 так, что цифра 4 может располагаться лишь в верхней строке блока, которая, в свою очередь, перекроет в третьем блоке одну из еще не перекрытых клеток, а именно G1. В итоге, мы допустимым образом можем разместить цифру 4 лишь в клетке G2, что и запишем в символьном виде как G2-4. А вместе с предыдущим шагом в заполнении клеток получим запись E5-4 G2-4. Здесь я, правда, чуть увлекся несколько переусложненным примером и заполнение можно было сделать немного проще, шагами: E5-4 I7-4 G2-4. Но главное – осмыслить и этот пример до впечатления его простоты, и тогда уж точно мы пойдем быстрее в разрешении славных судокушновеликоумных проблем.

 

Следующие шаги заполнения пустых клеток достаточно очевидны и иллюстрируют приемы, освещенные в предыдущем абзаце; запишем эти шаги вместе с предыдущими:

 

E5-4 I7-4 G2-4 E4-5 D9-8 I6-8 H5-1

 

А вот следующий шаг G4-7, который я предлагаю сделать, требует дополнительного пояснения, хотя мы о нем, вернее о его смысле, уже выше говорили. В трех оставшихся пустыми клетках блока 6 могут находиться только три дозволенные цифры 5, 6 и 7. Но на клетку G4 уже "смотрят" клетки C4 и E4 цифрами 6 и 5. Так что в клетке G4 может остаться лишь одна дозволенная цифра 7. Далее заполнение идет уже более традиционным для нас образом:

 

G4-7 D5-7 I1-1 I3-7 G5-6 G6-5

 

Последний шаг G6-5 означает, что клетка G6 осталось единственной пустой в блоке 6 и для этой пустой клетки остается лишь одна неиспользованная в этом блоке цифра 5.

 

Осмысление следующего шага G9-3 может потребовать некоторых умственных усилий или просто внимательности в переборе вариантов шагов. В оставшихся пустых клетках G-столбца могут быть лишь цифры 2, 3 и 9. При этом в связи с перекрытиями клетками С2 и Н6 цифра 2 должна обязательно находиться либо G1 либо в G3, так как ей больше и негде находиться в пределах блока 3. А это означает, что G1 и G3 перекрывают двойку в G9, и там может разместиться лишь цифра 3 или 9. Но цифра 9 уже есть в девятом блоке, поэтому остается единственный вариант для клетки G9, а именно G9-3.

 

Далее, в клетках H7, I8, I9 могут находиться лишь оставшиеся неиспользованными в блоке 9 цифры 2, 5 и 6. Но 5 и 2 в клетке H7 перекрываются клетками F7=5 и H6=2. Следовательно, для H7 остается вариант H7-6.

 

Шаг I2-6, надеюсь, тоже понятен. Шестерке попросту больше негде находиться в I-столбце, поскольку она уже есть в блоке 9.

 

Шаг E2-8 можно объяснить следующим образом. Цифра 8 ведь обязана находиться во второй строке. Но ячейки D2 уже F2 перекрыты клетками D9=8 и F5=8. Так что остается неперекрытой лишь E2.

 

Дальнейшие шаги видимо уже не должны вызывать затруднений в их понимании. Я привожу полностью весь список шагов по заполнению пустых клеток в нашей задаче:

 

E5-4 I7-4 G2-4 E4-5 D9-8 I6-8 H5-1

G4-7 D5-7 I1-1 I3-7

G5-6 G6-5 G9-3 H7-6 I2-6

H2-5 E2-8 F1-6 D6-6 A8-6 E1-7 F9-7 C7-7

D7-1 F8-9 D3-2 D2-9 F2-3 D4-3 F4-2 F6-1 G1-2 G3-9

B4-1 A4-8 B1-8 H3-8 H1-3 C1-4 A1-9 B6-4 C6-3 A1-3

C3-5 A5-5 A7-2 E7-3 E8-2 I9-2 I8-5 B7-9 B8-3

C5-9 B5-2 B9-5 C9-1

 

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

 

В целях дальнейшей тренировки, привожу для самостоятельного рассмотрения еще один вариант решения задачи судоку с соответствующей записью шагов:

 

 

E3-2 A5-5 C3-5 I1-5 C6-7 B3-7 E2-7 D9-7 G8-7 F6-8

B7-9 A9-2 B4-2 I6-2 H7-2 H9-5 E7-5 C7-8 I9-8 B5-8

H4-8 A4-4 F9-9 E9-3 G6-9 E4-9 E6-1 A6-6 C8-6

C4-1 A8-3 C2-3 A2-1 I4-6 H2-6 I2-9 H8-9 G7-1 H5-1

G5-3 H3-3 F8-1 D1-1 F1-3 I7-3 I8-4 E5-6 D5-4 E1-4

D3-9 F3-6 A1-9 A3-8 G1-8 G3-4 F7-4 D7-6

 

Список и краткий обзор статей, касающихся судоку

Copyright © 2009 - 2024 Алгоритмист | Правовая информация
Карта сайта
Яндекс.Метрика