книги из ГПНТБ / Трахтенброт, Б. А. Алгоритмы и вычислительные автоматы
.pdfигрывает (заштрихованная ломаная). Дерево рис. 2, б за дает игру, сводящуюся к одному ходу.
Всякая неконцевая вершина дерева может быть рас смотрена как корень «поддерева» меньшего ранга, задаю щего тоже некоторую игру.
Изображение игры посредством дерева позволяет пред ставить графически любую стратегию для игрока Л в виде системы стрелок* выходящих из вершин нечетного ранга и ведущих к смежным вершинам четного ранга. При этом должны соблюдаться следующие требования:
Рис. 2. Рис. а.
а) из каждой вершины выходит не более одной стрелки (стратегия игрока А однозначно определяет его выбор в дан ной ситуации);
б) если имеется стрелка, ведущая к вершине у (четного ранга), то и всякая вершина следующего ранга, примыкаю щая к вершине у, тоже является началом стрелки (рис. 3); это условие гарантирует как раз то, что стратегия преду сматривает л ю б у ю ситуацию, в которой может оказать ся А.
Аналогично определяется стратегия для В.
На рис. 4 изображена на дереве игры «Шесть предме тов» (ср. рис. 1) стратегия Л, заключающаяся в том, что он всегда берет в точности одну спичку. При этой стратегии
возможны |
3 партии, из которых в двух Л проигрывает, |
а в одной |
выигрывает. |
2.4.Существование выигрышной стратегии.
Те о р е м а. Во всякой игре для одного из игроков суще-
ствует выигрышная стратегия.
Д о к а з а т е л ь с т в о этой теоремы заключается в описании алгоритма, который по любой заданной игре строит выигрышную стратегию для одного из игроков. По строение алгоритма осуществляется индукцией по числу
20
v, |
равному наибольшей из длин партий, возможных при |
|||
данной |
игре (v — ранг дерева |
игры). |
||
|
С л у ч а й |
v = 1. Тогда |
вся партия сводится к одному |
|
ходу. |
Дерево |
такой игры представлено на рис. 5, где |
||
alt |
а2 , |
а н |
обозначают «+» (выигрывает А) или «—» (вы |
игрывает В). Допустим, что этот ход делает по правилам
игры игрок А; если среди ау, |
аа имеется |
хотя бы один |
«-f-», то А имеет выигрышную |
стратегию, |
изображаемую |
стрелкой, ведущей от вершины а |
к этому плюсу (для опре |
деленности — к самому левому плюсу, если их несколько). Если же все ог являются «—», то Я имеет выигрышную стра тегию, ибо любой возможный ход игрока А приводит к его собственному проигрышу. При этом никаких стрелок, ука зывающих выборы игрока В, расставлять не приходится, поскольку в данной игре В вовсе не ходит.
Совершенно аналогично рассматривается случай, когда а изображает позицию, в которой ходит В. Именно, если среди О; имеется хотя бы один минус, то В имеет выигрыш ную стратегию; в противном же случае А имеет выигрыш ную стратегию.
П е р е х о д O T V — 1 к v, Пусть теорема уже установ лена для всех рангов s < v; докажем ее для s = v. В этом случае дерево игры имеет вид, представленный на рис. 6, где треугольниками изображены поддеревья, корнями ко
торых являются вершины уи |
у2, |
•••> Ул< примыкающие к кор |
|
ню а всего дерева. Пусть для |
определенности а |
изобража |
|
ет позицию игрока А. Тогда |
поддеревья |
А„ изобра |
жают игры, в которых первый ход делает В, причем в каж дой из них наибольшая длина партии не превосходит v — 1.
21
По предположению индукции для каждой из них теорема справедлива. Допустим, что хотя бы в одной из этих подыгр А имеет выигрышную стратегию (для определенности — самое левое дерево). Тогда и во всей игре А имеет выигрыш ную стратегию. Для того чтобы ее построить, достаточно сохранить в поддереве Д, выигрышную стратегию и доба вить стрелку, ведущую из корня а к корню уг «благоприят ного» поддерева. Если же в каждой из подыгр Аь Д„
Рис. 6. |
Рис. 7. |
игрок В имеет |
выигрышную стратегию, то и во всей игре |
В имеет выигрышную стратегию, изображаемую объедине
нием его выигрышных стратегий во всех подыграх. |
|
||
Совершенно аналогично |
рассматривается |
случай, |
когда |
а изображает позицию игрока В. |
|
|
|
Тем самым т е о р е м а |
д о к а з а н а |
и описан |
про |
цесс построения алгоритма. |
Проилллюстрируем этот про |
цесс на примере дерева игры «Шесть предметов» (рис. 7). Идя от конца, т. е. от вершин высшего ранга к вершинам низшего ранга, мы размещаем в вершинах дерева знак «-f-» или «—» в зависимости от того, имеет А или В выигрышную стратегию в соответствующей подыгре.
Только одна вершина ранга 6 должна быть отмечена плюсом. Рассмотрим теперь слева направо вершины ранга 5, изображающие позиции игрока А. Очевидно, первая из них (крайняя левая) должна быть отмечена плюсом, ибо из нее можно переместиться в подчиненную вершину ранга 6, отмеченную плюсом. Остальные неконцевые вершины
22
ранга 5 должны быть отмечены минусами. Среди вершин четвертого ранга (позиции игрока В) обнаруживаем три «плюсовых» вершины, а именно те, из которых выходит по одной ветви, ведущей к знаку «+»; остальные 4 вершины приходится отмечать знаком «—».
Продолжая этот процесс, доходим до вершины первого ранга, к которой относится «+». Итак, А имеет выигрыш ную стратегию. Размещение стрелок (стратегии) можно те перь вести в обратном порядке: от корня дерева к его кон цевым вершинам. От корня проводим стрелку к «плюсо вой» вершине второго ранга (имеется лишь одна такая вер шина). От каждой из вершин третьего ранга, примыкающих к ней сверху, проводится по одной стрелке к «плюсовой» вершине. В нашем случае этим и завершается построение стратегии, которая изображена на рис. 7. Как видно из рисунка, при этой стратегии игрока А возможны лишь две партии, причем обе заканчиваются поражением В.
Заметим теперь, что теорема этого параграфа и лежа щий в ее основе алгоритм легко распространяются и на такие игры, для которых условия 1 и 2 пункта 2.3 не соблю дены, лишь бы выполнялись условия 3 и 4, которые и яв ляются существенными. Можно, например, рассматривать игры двух партнеров А и В, в которых, кроме выигрыша А или В, возможна и ничья. Здесь может оказаться, что ни один из игроков не имеет выигрышной стратегии, но тогда алгоритм строит для каждого игрока стратегию, гаранти рующую ему по крайней мере ничью (а при неразумной игре противника, быть может, и выигрыш).
Поскольку шахматы относятся к играм такого типа, то наш алгоритм устанавливает для них, какая именно ситуа ция имеет место и какова лучшая стратегия для белых. Для этого достаточно (I) построить дерево шахматной игры и восстановить по нему лучшие стратегии для игроков. Если при этом окажется, что белые (игрок А) имеют выигрышную стратегию, то исход игры предрешен в пользу белых, если они только будут строго следовать этой стратегии. Точно так же исход игры будет предрешенным, если выяснится, что черные имеют выигрышную стратегию или что оба парт нера имеют ничейные стратегии.
Таким образом, применение рассмотренного выше алго ритма к шахматам должно привести к полному рассекречи ванию этой игры в том смысле, как это удалось сделать для игры со спичками. Почему же при наличии указанного алгоритма такая ситуация до сих пор еще не возникла,
23
а шахматы по-прежнему относятся к играм, требующим большого мастерства и смекалки?
Здесь мы очевидным образом сталкиваемся с практической неосуществимостью процесса, предписанного алгоритмом. Ведь из корня шахматного дерева выходят 20 ветвей, изо бражающих всевозможные дебюты белых. Из каждой вер шины второго ранга тоже выходит много ветвей и т. д., причем ранг этого дерева очень велик. В нашем распоряже нии нет ни времени, ни места, ни материалов, достаточных для реализации такого замысла. Тем не менее, на вопрос, обладаем ли мы точным предписанием, позволяющим еди ным методом в результате конечного числа шагов находить лучшие стратегии в любой игре рассматриваемого типа, мы должны дать утвердительный ответ. При этом мы имеем в ви
ду, |
что процесс, определяемый этим предписанием, являет |
|||||
ся |
п о т е н ц и а л ь н о |
о с у щ е с т в и м ы м , |
т. е. что |
|||
он |
осуществим |
в результате к о н е ч н о г о |
(хотя, быть |
|||
может, и очень |
большого) числа элементарных |
операций. |
||||
|
Разумеется, |
мы заинтересованы, |
главным |
образом, |
||
в |
п р а к т и ч е с к и |
осуществимых |
процессах. |
Однако |
выдвинуть формальный математический критерий, позволя ющий раз навсегда различить практически осуществимый процесс от практически неосуществимого, мы не можем. Дело в том, что практическая осуществимость зависит от имеющихся в распоряжении вычислителя средств, которые могут меняться, например, с развитием техники. Так, в свя зи с появлением быстродействующих электронных машин стали практически осуществимыми и такие процессы, кото рые ранее были только потенциально осуществимыми.
При всей громоздкости рассмотренного выше алгоритма его существование является важным обстоятельством. Ведь для проблемы Гильберта о диофантовых уравнениях соглас но теореме Ю. В. Матиясевича невозможен никакой алго ритм! А между тем обнаружение алгоритма, пусть и гро моздкого, может подать надежду на его улучшение или создание более удобных алгоритмов.
Из соображений, изложенных выше, говоря о вычис лительном процессе или вообще о процессе, предписанном каким-то алгоритмом, будем всегда подразумевать потенци ально осуществимый процесс.
§3. АЛГОРИТМЫ ПОИСКА ПУТИ
ВЛАБИРИНТЕ
3.1. Лабиринты. Греческая мифология повествует о ле гендарном герое Тезее, который отважился проникнуть в лабиринт для того, чтобы разыскать в нем чудовищного Минотавра и убить его. Ему помогла выбраться из лаби ринта Ариадна, давшая Тезею клубок ниток, один конец которых держала она сама. По мере углубления Тезея в ла биринт клубок разматыва лся; наматывая потом нит
ки, |
Тезей |
благополучно |
|
|||
вернулся к |
выходу. |
|
||||
Об |
этой |
древней ле |
|
|||
генде |
напомнила |
|
сравни |
|
||
тельно |
недавно |
автомати |
|
|||
ческая |
игрушка |
«Мышь |
|
|||
в лабиринте», |
созданная |
Р и с g |
||||
американским |
математи |
|
||||
ком |
и |
инженером |
Клодом |
|
Шэнноном. В одном месте специального лабиринта ставит ся вещь, условно именуемая «куском сала», в другом — «мышь». «Мышь» начинает блуждать по лабиринту, делая при этом петли, пока находит «сало». Если повторно запу стить «мышь» с того же места, то она уже прямо бежит к «пи ще», не делая петель. Мы рассмотрим здесь некоторую род ственную задачу поиска пути в лабиринте (вернее, серию таких однотипных задач) и опишем алгоритм, в соответст вии с которым должны проводиться поиски для достижения цели, указанной в задаче.
Представим себе лабиринт в виде конечной системы пло щадок, от которых расходятся коридоры, причем каждый коридор соединяет две площадки (такие площадки будем называть смежными), но не исключается существование таких площадок, из которых можно пройти только в один коридор (такие площадки будем называть тупиками). Гео метрически лабиринт можно представить в виде системы точек А, В, С, ... (изображающих площадки) и совокупно сти отрезков АВ, ВС, ... (изображающих коридоры), со единяющих некоторые пары этих точек (рис. 8).
Будем говорить, что площадка Y достижима из площад ки А', если существует путь, ведущий от X к Учерез проме жуточные коридоры и площадки. Точнее, это означает, что либо X и Y — смежные площадки, либо существует после-
25
довательность |
площадок Хи |
Х2, |
Х3, |
Хп |
таких, что X |
|||
и Х1} |
Хх и Х2, |
Х2 |
и Хя,... |
и т. д. и, наконец, Хп |
и Y смежны. |
|||
Например, на рис. 8 площадка // достижима |
из тупика А |
|||||||
посредством пути |
А В, ВС, |
CD, DE, EF, |
FD, |
DH, в то вре |
||||
мя как площадка |
/< не достижима |
из А. |
Вместе с тем, если |
|||||
У вообще достижима из X, |
то она достижима и посредством |
|||||||
простого пути, |
т. е. такого пути, в котором каждая площад |
|||||||
ка (а |
тем более и каждый |
коридор) проходится лишь один |
раз. В предыдущем примере путь не был простым, но, с р е
з а в |
петлю DE, EF, |
FD, мы получаем |
простой |
путь А В, |
|
ВС, |
CD, |
DH. |
|
|
|
Предполагается, что Минотавр находится на одной из |
|||||
площадок |
лабиринта |
(обозначим ее М), |
а Тезей, |
отправля |
ясь на его поиски с площадки А, на которой его ждет Ариад на, должен решить след>ющую задачу: требуется выяснить, достижима ли М из Л или нет*'. Если достижима, то нужно добраться до нее по какому бы то ни было пути, но вернуть ся к Ариадне нужно уже по п р о с т о м у п у т и . Если же М недостижима, то вернуться к Ариадне.
Различных лабиринтов может быть бесчисленное мно жество, а взаимное расположение в данном лабиринте пло щадок А и М также можно варьировать. Поскольку Тезею заранее ничего не известно об устройстве данного лабирин та и о местонахождении в нем Минотавра, то решение по ставленной задачи мыслится в виде общего метода поисков, пригодного при любом лабиринте и при любом расположе нии в нем площадок А и М. Иными словами, решение мы слится в виде алгоритма, решающего любую из задач дан ного типа.
3.2. Алгоритм поиска. Для построения такого алгорит ма мы рассмотрим один специальный метод поисков. На лю бой стадии процесса поиска в соответствии с этим методом приходится различать коридоры, еще ни разу не пройден ные Тезеем (условно — зеленые), пройденные один раз (желтые), пройденные дважды (красные). Далее, находясь на какой-либо площадке, Тезей может попасть на одну из смежных площадок посредством одного из следующих двух ходов:
1. Разматывание нити. Прохождение от данной пло щадки по любому зеленому коридору до смежной площад ки. При этом нить Ариадны разматывается вдоль этого ко-
*) Естественно считать, что МфА.
26
ридора, который после прохождения уже считается жел тым.
2. Наматывание нити. Возвращение от данной пло щадки по последнему пройденному желтому коридору до смежной площадки. При этом нить Ариадны, ранее размо танная вдоль этого коридора, обратно наматывается, а этот коридор уже объявляется красным.
Предполагается, что Тезей делает какие-то пометки, позволяющие ему впоследствии отличать красные коридо ры от зеленых; желтые различимы тем, что по ним протяну та нить Ариадны. Выбор того или другого хода зависит от обстановки, наблюдаемой Тезеем на той площадке, на ко торой он находится в данный момент; эту обстановку мож но охарактеризовать одним или несколькими из следующих признаков:
I . Минотавр. На данной площадке обнаружен Мино тавр.
2: Петля. Через данную площадку уже протянута нить Ариадны; иными словами, от данной площадки расходятся
по крайней мере два желтых |
коридора. |
|
|||
3. Зеленая |
улица. |
От данной площадки есть |
выход по |
||
крайней мере в один зеленый |
коридор. |
|
|||
4. Ариадна. На |
данной площадке находится |
Ариадна. |
|||
5. |
Пятый |
случай. Отсутствие всех предыдущих призна |
|||
ков. |
|
|
|
|
|
Наш метод поиска может быть теперь задан следующей |
|||||
схемой: |
|
|
|
|
|
|
П р и з н а к |
Х о д |
|
||
1. |
Минотавр |
|
Остановка |
|
|
2. |
Петля |
|
|
Наматывание нити |
|
3. |
Зеленая |
улица |
Разматывание нити |
|
|
4. |
Ариадна |
|
Остановка |
|
|
5. |
Пятый |
случай |
|
Наматывание нити. |
|
Находясь на какой-нибудь площадке, Тезей делает очередной ход так: он проверяет по порядку номеров в со ответствии с левым столбцом схемы, какой из перечислен ных признаков имеет место; обнаружив первый такой при знак, он (уже не проверяя остальные признаки) делает со ответствующий ход (или остановку) из правого столбца. Такие ходы делаются до тех пор, пока не наступает оста новка.
27
Пригодность предложенного метода непосредственно вытекает из следующих трех утверждений:
1.При любом взаимном расположении А и М в лаби ринте после конечного числа ходов обязательно наступит остановка либо на площадке Минотавра, либо на площадке Ариадны.
2.Если остановка наступила на площадке Минотавра, то Минотавр достижим. Более того, в этом случае нить Ариадны оказывается протянутой по простому пути, веду щему от А до М; наматывая нить, Тезей может теперь вер нуться по этому лутн к Ариадне.
3.Если остановка наступила на площадке Ариадны, то Минотавр н е д о с т и ж и м.
Прежде чем доказывать эти утверждения, покажем на
двух примерах, |
как работает предложенный метод. |
П р и м е р |
1. Пусть с площадки А лабиринта (рис. 8) |
начинается поиск Минотавра, который находится в F. Про цесс поиска в соответствии с нашим методом удобно изобра
зить |
посредством |
схемы (из-за произвола при выборе зеле |
|||||||
ного коридора — это лишь одна из возможных |
схем), пред |
||||||||
ставленной в табл. |
1. |
|
|
|
|
||||
|
|
|
|
|
|
Т а б л и ц а |
1 |
||
Порядко |
Каким |
признаком |
|
Пройден |
Цвет коридора |
||||
вый |
номер |
Ход |
ный ко |
после |
его |
||||
руководствуется Тезей |
|||||||||
хода |
|
|
|
|
ридор |
прохождения |
|||
|
1 |
Зеленая |
улица |
Разматыва |
АВ |
Желтый |
|||
|
2 |
То |
же |
ние |
ВС |
|
|
||
|
» |
|
|
||||||
|
3 |
|
» |
|
|
CD |
» |
|
|
|
4 |
|
» |
|
|
DH |
|
|
|
|
5 |
|
» |
|
» |
HJ |
» |
|
|
|
6 |
Пятый случай |
Наматы |
JH |
Красный |
||||
|
7 |
|
То |
же |
ванне |
HD |
|
|
|
|
|
» |
» |
|
|||||
|
8 |
Зеленая |
улица |
Разматы |
DB |
Желтый |
|||
|
|
|
|
|
вание |
BD |
|
|
|
|
9 |
|
Петля |
Наматы |
Красный |
||||
|
10 |
Зеленая |
улица |
вание |
DF |
Желтый |
|||
|
Разматы |
||||||||
|
|
|
|
|
вание |
|
|
|
|
|
11 |
Минотавр |
Остановка |
|
|
|
Мы видим, что в данном случае Минотавр достижим. Выделив в предпоследнем столбце те из коридоров, которые остались желтыми (в соответствии с показаниями послед-
28
него столбца), получим следующий простой путь, ведущий от А к F:
АВ, |
ВС, |
CD, |
DF. |
П р и м е р 2. Если |
же |
поиск |
начинается с площадки |
/С, то процесс поиска можно изобразить в схеме, представ
ленной в табл. |
2. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Т а б л и ц а |
2 |
||
Порядко |
Каким |
признаком |
|
|
Пройден |
Цвет |
коридо |
|||
вый номер |
руководствуется |
Ход |
ный ко |
ра |
после |
|||||
хода |
Тез ell |
|
|
|
ридор |
прохождения |
||||
1 |
Зеленая |
улица |
Разматывание |
|
KN |
Желтый |
||||
2 |
То |
же |
|
|
|
NL |
|
» |
|
|
3 |
|
|
|
» |
|
|
LM |
|
» |
|
4 |
|
» |
» |
|
|
MN |
|
» |
|
|
5 |
Петля |
Наматывание |
|
NM |
Красный |
|||||
6 |
Пятый |
случай |
» |
|
|
ML |
|
» |
|
|
7 |
То |
же |
» |
|
|
LN |
|
» |
|
|
8 |
|
» |
|
|
|
|
мк |
|
|
|
9 |
Ариална |
Остановка |
|
|
|
|
|
|||
Мы видим, что в этом случае Минотавр |
недостижим. |
|
||||||||
3.3. |
Обоснование алгоритма |
поиска. |
Перейдем |
теперь |
||||||
к доказательству |
утверждений |
1—3. |
|
|
|
|
|
|||
Доказательство утверждения |
1. Покажем |
сначала |
ме |
тодом индукции по числу ходов Тезея , что на любом этапе процесса поиска возникает следующая альтернатива (т. е. имеет место один из следующих двух случаев, взаимно исключающих друг друга);
а) в лабиринте нет желтых коридоров; при этом Тезей находится на площадке А (Ариадны);
б) в лабиринте имеются желтые коридоры, причем они, будучи рассмотрены в том порядке, в каком они были найде ны Тезеем, образуют путь, ведущий от А до площадки, на которой находится Тезей.
Вместе с тем будет обнаружено, что Тезей никогда не проходит по красному коридору.
Высказанные положения являются очевидными для на чала процесса, когда Тезей еще находится на площадке А и никакой коридор еще не пройден (все коридоры — зеле ные). Предположим теперь, что указанные альтернативы справедливы после (п — 1)-го хода, и покажем, что тогда они справедливы и после /г-го хода (разумеется, если толь ко (п — 1)-й ход еще не привел к остановке).
29