Научная статья на тему 'Вероятность существования алгоритма раскрытия игры «Сапёр»'

Вероятность существования алгоритма раскрытия игры «Сапёр» Текст научной статьи по специальности «Математика»

CC BY
1299
55
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
АЛГОРИТМ / ИГРА / ПРОГРАММА ПОИСКА КЛАСТЕРОВ / ТЕОРИЯ ПЕРКОЛЯЦИИ

Аннотация научной статьи по математике, автор научной работы — Ляхов Александр Федорович, Виноградова Екатерина Вячеславовна

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Вероятность существования алгоритма раскрытия игры «Сапёр»»

УиЕКНАЯ

МА'СТЁРСКАЯ

Виноградова Екатерина Вячеславовна, Ляхов Александр Федорович

ВЕРОЯТНОСТЬ СУЩЕСТВОВАНИЯ АЛГОРИТМА РАСКРЫТИЯ ИГРЫ «САПЁР»

Одна из основных проблем современной теории алгоритмов связана с проблемой вычислимости, то есть с проблемой существования алгоритма вычисления функции и его сложностью. Примером задачи, в которой неизвестно существование алгоритма решения, является игра «Сапёр». В Интернете [1] есть сообщение о том, что в весеннем номере журнала Mathematical Intelligencer (2000 г.) приводится гипотеза о тождестве «решаемых» и «нерешаемых» задач, где в качестве одного из примеров приводится игра «Сапёр». Кажущаяся простота построения алгоритма открытия поля в этой игре подталкивает исследователей постоянно предпринимать попытки построить этот алгоритм [2]. Как правило, при

"fyeœn afcu - миЯимАльЯое арА&хл-ьЛо naM&fcuffai éce миЯи,

его создании на каком-то этапе возникают непреодолимые трудности.

В работе с помощью теории перколя-ции показана возможность определения вероятности существования алгоритма раскрытия игры. Для проведения численного экспериментального исследования игры в среде визуального объектно-ориентированного программирования C++Builder 6 была написана программа Cluster. Приводятся результаты исследования вероятности существования алгоритма решения игры сапёр.

АЛГОРИТМИЧЕСКИЕ И ВЕРОЯТНОСТНЫЕ ЗАДАЧИ, СВЯЗАННЫЕ С ИГРОЙ «САПЁР»

Большинство пользователей компьютеров, вероятно, играли в игру «Сапёр» («Minesweeper») - эта игра входит в стандартный комплект поставки Windows. «Сапёр» относится к классу компьютерных игр (board games) типа «Tetris» или «Lines». Эти игры при всей своей видимой простоте позволяют поставить целые классы задач, связанных с фундаментальными проблемами математики и теории информации.

Напомним основные правила игры «Сапёр».

Имеется прямоугольное минное поле, поделенное на закрытые клетки. Одни клетки пусты, в другие заложены мины. Любую клетку можно открыть или пометить как содержащую мину. Заметим, что при оши-

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

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

Задачи, связанные с открытием игрового поля, можно разделить на два класса:

1) алгоритмические задачи, когда по известным цифрам в открытых полях последовательно определяются свободные от мин клетки и также последовательно открываются;

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

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

ситуации, при ко&о-рш ^о^Ниаяей НеопререлёЧНо&йь при выборе кхеЛоис, Чих миЯ,,,

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

Приведем пример такой задачи [3].

Дано игровое поле (рис. 1).

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

Решение

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

Рис. 1.

Рис. 2.

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

Вероятностное решение задачи не столь однозначно.

Предположим, что мины распределены равномерно на игровом поле. Проанализируем полученную конфигурацию. Известно точное расположение семи мин и одна мина стоит в малой выделенной области. Следовательно, неизвестно расположение п0 = 4 мин. Число неоткрытых полей вместе с выделенной областью N 0 = 16. Вероятность расположения мины в области, помеченной крестиком, Р0 = п0^ 0 = 0,25. В большой выделенной области может быть расположена либо одна, либо две мины, следовательно, вероятность того, что в клетке, помеченной крестиком, лежит мина, будет оцениваться интервалом 2/12 < Рт < 3/12.

Проведенные исследования и игровая практика показали, что возможность открытия поля связана с плотностью мин. Действительно, все, кто играли в игру «Сапёр», представляют, что маленькое поле открывается легко (плотность мин р = 0,123 , среднее - труднее (р = 0,156), и большое поле (р = 0,206) иногда не раскрывается совсем.

При игре с высокой плотностью мин, часто возникает неопределенность открытия игрового поля. Можно заметить, что

oefieceteae& ice capoioe пале...

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

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

НЕКОТОРЫЕ СВЕДЕНИЯ

О ТЕОРИИ ПЕРКОЛЯЦИИ

Основные идеи этой достаточно новой теории были сформулированы английскими учеными Симоном Бродбентом и Джоном Хаммерсли в 1957 г. при изучении ими явлений прохождения газов через угольный фильтр. Движение газа по лабиринтам из пор в угле они назвали перколяционным процессом (percolation - просачивание, протекание). В дальнейшем выяснилось, что теория перколяции необходима для понимания широчайшего круга явлений, относящихся, главным образом, к физике и химии. Вероятно, наиболее разработанной в настоящее время областью применения теории перколяции являются электрические свойства неупорядоченных систем, таких как аморфные полупроводники, кристаллические полупроводники с примесями или материалы, представляющие собой смесь двух разных веществ - диэлектрика и металла. C помощью этой теории исследуются задачи о распространении пожаров, эпидемий.

В последние годы эта теория нашла применение при создании и анализе эффек-

тивности многопроцессорных систем (кластерных) и в многоканальной телекоммуникации. В этом случае исследуется вопрос о распространении информации в системе.

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

В 1974 г. американские физики Б. Ват-сон и П. Лис провели опыт с экранной сеткой. Они взяли кусок сетки квадратной формы, содержащий 1372 = 18769 узлов с расстоянием 1/4 дюйма (6.35 мм) между соседними узлами, припаяли к двум противоположным сторонам квадрата медные электроды и включили сетку в электрическую цепь, чтобы измерить ее сопротивление. Затем они стали блокировать отдельные узлы и изучать электрическое сопротивление в зависимости от доли блокированных узлов. Блокировка узла состояла в том, что кусачками перерезались все четыре проволоки, которые связывались с этим узлом. Каждый новый узел, подлежащий блокировке, выбирался среди нетронутых ранее узлов случайно. По мере увеличения числа блокированных узлов электропроводность сетки уменьшалась. Более того, если обозначить через х отношение числа неблоки-рованных узлов к полному числу узлов, то при некотором значении х электропроводность сетки обращалась в нуль (найденное значение х называется критическим значением, или порогом протекания хс). Это происходило, когда перерезался последний путь, связывающий левый и правый электроды. Экспериментаторы установили, что

для экранной сетки указанного размера хс = 0,59.

Порог протекания является величиной случайной, поэтому рассматривают его среднее значение для сетки из N узлов как предел среднего арифметического порогов протекания из п опытов при п, стремящемся к бесконечности:

1АЮ = ,.тх'"т+х''тх"'т.

п П

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

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

Рассматривая открытие игрового поля «Сапёра» как задачу узлов теории перколя-ции, можно проанализировать возможность существования алгоритма для этой игры.

ПОСТАНОВКА ЗАДАЧИ ПОИСКА КЛАСТЕРА ИЗ МИН

Игровая практика показывает, что вероятность раскрытия поля «Сапёра» зависит от существования кластера из мин отсекающего часть игрового поля. На основе этой практики можно сформулировать некоторые гипотезы, связанные с возможностью существования алгоритма раскрытия поля «Сапёра»:

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

2. Если кластер из мин делит иоле на область, содержащую все мины, и иустую область, то существование алгоритма раскрытия зависит от «толщины» кластера (то есть стороны наибольшего квадрата из заминированных клеток, целиком включенного в кластер). Если этот кластер содержит мины, которые не могут быть обнаружены ири иолном раскрытии иервой области, то алгоритм раскрытия не существует.

Целью данной работы является оиреде-ление вероятности иоявления на иоле кластера, соединяющего хотя бы две стороны иоля, в зависимости от илотности мин и размеров иоля.

ПРОГРАММА ПОИСКА КЛАСТЕРОВ

Для ироведения игровых эксиериментов в среде визуального объектно-ориентированного ирограммирования C++Builder 6 была наиисана ирограмма Cluster, моделирующая иоля игры «Саиёр» и иодсчитыва-ющая число случаев иоявления кластера из мин, соединяющего хотя бы две стороны иоля.

Программа (рис. 3) различает шесть видов кластеров: кластеры, соединяющие ле-

Рис. 3.

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

Начальными данными для работы иро-граммы являются размеры иоля (число клеток ио горизонтали N1 и ио вертикали N2), число мин на иоле M и количество оиытов K, которое иользователь хотел бы ировес-ти. Эти данные можно задать с клавиатуры, изменив значение соответствующих комио-нентов формы. В этом случае для каждого оиыта ирограмма случайным образом расставляет мины ио клеткам иоля. Можно заранее задать конкретное расиоложение мин на иоле в текстовом файле «field.txt». Тогда ири нажатии соответствующей кнои-ки оиыт будет ироведен один раз.

АЛГОРИТМ ПРОГРАММЫ CLUSTER

Инициализация начального состояния игрового поля

На иервом этаие работы в ирограмме создается массив X из N1X N2 элементов, в котором будет храниться информация о расиоложении мин на иоле. Клетка будет считаться заминированной, если значение элемента, отвечающего ей, равно 1, и свободной, если оно равно 0. Если заданное количество мин будет занимать меньше ио-ловины от всех клеток иоля, то все элементы массива X зануляются и единицы расставляются случайным образом. В случае, когда мин больше, чем свободных клеток, все элементы массива X становятся равными единице и случайно расставляются нули. Поскольку между клетками иоля и элементами массива X есть взаимнооднозначное соответствие, то в дальнейшем будем называть заминированные клетки «единицами», а иустые - «нулями». Массив X будем отождествлять с игровым иолем «Саиёра».

Алгоритм поиска кластера из мин

Поиск кластеров программа начинает с левой стороны поля. Все «единицы» крайнего левого столбца поля переименовываются в «двойки», то есть элементам массива X, имеющим значение 1, присваивается значение 2. Далее в цикле проверяются ближайшие соседние к «двойкам» клетки. Если сосед сверху, снизу, справа или слева является «единицей», то он становится «двойкой». Процесс заканчивается, если при очередной проверке не появляется ни одной новой «двойки». Таким образом, программа фиксирует кластер «слева направо», если на правой стороне поля появилась хотя бы одна двойка, «сверху налево» - если двойка появилась на верхней стороне, «слева вниз» - если на нижней. Потом поле возвращается в исходное состояние (все «двойки» вновь становятся «единицами»). Далее программа начинает поиск с верхней стороны поля (ищутся кластеры «сверху вниз» и «сверху направо»). Наконец, начиная поиск с правой стороны, программа проверяет наличие кластера «справа вниз».

Тестирование

Работоспособность описанного алгоритма можно проверить, задавая в текстовом файле «field.txt» поля с определенным расположением мин и сопоставляя результаты работы программы с достоверно известными данными. Например, для анализа программе предоставляются два поля, одно из которых заведомо содержит кластеры, а другое не содержит (рис. 4).

Рис. 4.

Проверка полей дает результат, представленный на рис. 5.

КОМПЬЮТЕРНЫЙ ЭКСПЕРИМЕНТ

В табл. 1 приведены результаты экспериментов по нахождению частоты появления кластеров на квадратных полях разного размера и с различной плотностью мин. Например, число 0,40940 на пересечении столбца с заголовком 14 и строки 0,1 означает, что на поле размера 14 X14 и плотностью мин 0,1 найдено 40940 различных кластеров (эксперимент проводился 105 раз).

Можно видеть, что частота появления кластеров зависит главным образом от плотности мин на игровом поле. Уже при плотности 0,25 на любом поле с достаточно высокой вероятностью будет найден хотя бы один кластер (более точно - при 0,235; это значение является порогом протекания в рассматриваемой задаче). Более половины полей с плотностью мин 0,15 содержат кластер. На полях с меньшей плотностью кластеры появляются редко, и проблем при раскрытии практически не возникает. Этим объясняется статистика положительных исходов в категориях «Новичок», «Любитель» и «Профессионал».

<П*}Ж1ЫЛМи рЬши Ыр.тмрМм! И ьг

Ьат)и *а«н мщл^ и1рн [ 1 «

■-.■гЛ|[рш"1||:р\'. 11-Н.Г Чй11«№| | „. 1' К

Ш[ГЕ||Ш "! М1.1Н1/ ЦЦВ Р (П*

.....ип^Ьг 1 .1Л-. Ш К

Ьмспрга ^врн^ нм^ ыщ|ни 1 .и. к Ь

ки|прр|-н-г*м ГННГНШЦ'Н .14. Ь

ЁСЕГО КЙПШИШИ 1

Рис. 5.

Табл. 1.

—___£Г0рОН1 ИЩИ ПЛОТНОСТЬ ннв --- _ 9 10 12 14 16 18 20 среднее

0.05 0.19974 0.19990 0.19309 0.20263 0.20366 0.19798 0.20233 0.19990

0.1 0.39324 0.40492 0.39173 0.40940 0.41410 0.39892 0.40305 0.40291

0.15 0.60340 0.61085 0.62414 0.60508 0.60445 0.62213 0.61213 0.61246

0.2 0.82288 0.83670 0.84083 0.83362 0.83221 0.34002 0.33822 0.83493

0.25 1.05229 1.07365 1.07075 1.07428 1.07545 1.07194 1.08004 1.07120

0.3 1.30341 1.33027 1.32234 1.34058 1.34465 1.33323 1.34067 1.33146

0.35 1.59134 1.61423 1.60732 1.63276 1.63162 1.61373 1.62389 1.61642

0.4 1.91887 1.95546 1.96590 1.93442 1.94239 1.96092 1.95494 1.94756

0.45 2.33285 2.37835 2.37768 2.33967 2.34058 2.34616 2.34257 2.35112

0.5 3.07075 2.96305 2.93342 2.90359 2.88190 2.85613 2.84452 2.92191

0.55 3.87961 3.77452 3.73631 3.76310 3.74376 3.67915 3.67160 3.74972

0.6 4.75903 4.69970 4.69852 4.83059 4.87001 4.32814 4.38149 4.79535

0.65 5.46554 5.46303 5.56690 5.58123 5.64228 5.71424 5.74255 5.59654

0.7 5.83629 5.85508 5.89997 5.92378 5.94777 5.96661 5.97462 5.91487

0.75 5.97211 5.97487 5.98761 5.99296 5.99663 5.99827 5.99882 5.93875

0.8 5.99730 5.99798 5.99932 5.99979 5.99935 5.99993 6.00000 5.99917

0.85 5.99998 5.99995 5.99998 6.00000 6.00000 6.00000 6.00000 5.99999

0.9 8.00000 8.00000 6.00000 6.00000 6.00000 6.00000 6.00000 6.00000

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Найденная экспериментальная зависимость частоты появления кластеров, соединяющих две стороны поля, от плотности мин имеет существенно нелинейный характер. График этой зависимости приведен на рис. 6.

Точки 1, 2 и 3 на графике соответствуют игровым полям «Новичок», «Любитель» и «Профессионал». Их расположение свидетельствует о том, что создатели игры «Сапёр» предусмотрели ненулевую вероятность раскрытия стандартных полей. Точка 4 соответствует порогу протекания.

lli.iiidlM.iHr4tJj-rhi lHjji.ili

Среднее квадратичное отклонение, характеризующее разброс экспериментально найденных частот появления кластера из мин, вычислялось по формуле

а =

Ё (рср - р )2

I=1

N

Рисунок 6.

где Рср - экспериментальная средняя частота появления кластера при заданной плотности мин, р - количество кластеров в единичном эксперименте, N - количество экспериментов (N = 105) (рис. 7).

ЗАКЛЮЧЕНИЕ

Полученные результаты позволяют сделать вывод о том, что вероятность существования алгоритма раскрытия игрового поля «Сапёра» тем меньше, чем выше плотность расположения мин, причем эта зависимость имеет нелинейный характер. При исследовании было экспериментально установлено пороговое значение плотности мин хс = 0,235.

II г:-

Вероятность раскрыть поле с плотностью выше этого значения мала.

Проблема, связанная с поиском алгоритма для игры «Сапёр», требует дальнейшего исследования. В данной работе не рассматривались замкнутые кластеры, начинающиеся и заканчивающиеся на одной и той же

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

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

Рисунок 7.

некоторого цветового преобразования кластер изображения сохраняется, а вероятность его возникновения и в новой цветовой гамме также мала, то это, по-видимому, изображение искусственного объекта.

Данная работа была начата в 2005 году при активном участии Кошелева Геннадия, Лопарёва Григория (шк. № 119, 10 кл.), представлялась на конкурсе «Юниор-2007» и была отмечена дипломом III степени.

Литература

1. В игре «Сапёр» зарыта смерть современной криптографии. http://www.netoscope.ru/forum/ 727/&msgid=3603.

2. Пестов O.A. Шалыто A.A. Сапёры, мины и автоматы // Компьютерные инструменты в образовании № 2, 2005. С.76-80.

3. Константин Ветлугин «Сапёр»: от игры к задачам - 2003 // Журнал «Компьютерра» // http:/ /www.computerra.ru/offline Опубликовано: 27.4.1998.

4. А.Л. Эфрос. Физика и геометрия беспорядка // Библиотечка «Квант». Вып. 19. М.: Изд. «Наука». Гл. редакция физ.-мат. литературы, 1982.

Ляхов Александр Федорович, кандидат физико-математических наук, доцент кафедры теоретической механики механико-математического факультета Нижегородского государственного университета им. Н.И. Лобачевского.

Виноградова Екатерина Вячеславовна, магистрант первого года обучения механико-математического факультета Нижегородского государственного университета им. Н.И. Лобачевского.

© Наши авторы, 2007 Our authors, 2007

i Надоели баннеры? Вы всегда можете отключить рекламу.