Файл: Трахтенброт, Б. А. Алгоритмы и вычислительные автоматы.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 19.10.2024
Просмотров: 109
Скачиваний: 0
а шахматы по-прежнему относятся к играм, требующим большого мастерства и смекалки?
Здесь мы очевидным образом сталкиваемся с практической неосуществимостью процесса, предписанного алгоритмом. Ведь из корня шахматного дерева выходят 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