Пред.
След.
Макеты страниц
Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO
§ 3. АЛГОРИТМЫ ПОИСКА ПУТИ В ЛАБИРИНТЕГреческая мифология повествует о легендарном герое Тезее, который отважился проникнуть в лабиринт для того, чтобы разыскать в нем чудовищного Минотавра и убить его. Ему помогла выбраться из лабиринта Ариадна, давшая Тезею клубок ниток, один конец которых держала она сама. По мере углубления Тезея в лабиринт клубок разматывался; наматывая потом нитки, Тезей благополучно вернулся к выходу. Об этой древней легенде напомнила сравнительно недавно автоматическая игрушка «Мышь в лабиринте», созданная американским математиком и инженером Клодом Шэнноном. В одном месте специального лабиринта ставится вещь, условно именуемая куском сала, в другом — «мышь». Мышь начинает блуждать по лабиринту, делая при этом петли, пока находит «сало». Если повторно запустить «мышь» с того же места, то она уже прямо бежит к «пище», не делая петель. Мы рассмотрим здесь некоторую родственную задачу поиска пути в лабиринте (вернее серию таких однотипных задач) и опишем алгоритм, в соответствии с которым должны проводиться поиски для достижения цели, указанной в задаче. Мы представим себе лабиринт в виде конечной системы площадок, от которых расходятся коридоры, причем каждый коридор соединяет две площадки (такие площадки будем называть смежными), но не исключается существование таких площадок, из которых можно пройти только в один коридор (такие площадки будем называть тупиками). Геометрически лабиринт можно представить в виде системы точек
Рис. 8. Будем говорить, что площадка раз. В предыдущем примере путь не был простым, но, срезав петлю Предполагается, что Минотавр находится на одной из площадок лабиринта (обозначим ее через М), а Тезей, отправляясь на его поиски с площадки А, на которой его ждет Ариадна, должен решить следующую задачу: требуется выяснить, достижима ли Различных лабиринтов может быть бесчисленное множество, а взаимное расположение в данном лабиринте площадок Для построения такого алгоритма мы рассмотрим один специальный метод поисков. На любой стадии процесса поиска в соответствии с этим методом приходится различать коридоры, еще ни разу не пройденные Тезеем (условно — зеленые), пройденные один раз (желтые), пройденные дважды (красные). Далее, находясь на какой-либо площадке, Тезей может попасть на одну из смежных площадок посредством одного из следующих двух ходов: 1. Разматывание нити. Прохождение от данной площадки по любому зеленому коридору до смежной площадки. (При этом нить Ариадны разматывается вдоль этого коридора, который после прохождения уже считается желтым.) 2. Наматывание нити. Возвращение от данной площадки по последнему пройденному желтому коридору до смежной площадки. При этом нить Ариадны, ранее размотанная вдоль этого коридора, обратно наматывается, а этот коридор уже объявляется красным. Предполагается, что Тезей делает какие-то пометки, позволяющие ему впоследствии различать красные коридоры от зеленых; желтые различимы тем, что по ним протянута нить Ариадны. Выбор того или другого хода зависит от обстановки, наблюдаемой Тезеем на той площадке, на которой он находится в данный момент; эту обстановку можно охарактеризовать одним или несколькими из следующих признаков: 1. Минотавр. На данной площадке обнаружен Минотавр. 2. Петля. Через данную площадку уже протянута нить Ариадны; иными словами, от данной площадки расходятся по крайней мере два желтых коридора. 3. Зеленая улица. От данной площадки есть выход по крайней мере в один зеленый коридор. 4. Ариадна. На данной площадке находится Ариадна. 5. Пятый случай. Отсутствие всех предыдущих признаков. (см. скан) Наш метод поиска может быть теперь задан следующей схемой: Находясь на какой-нибудь площадке, Тезей делает очередной ход так: он проверяет по порядку номеров в соответствии с левым столбцом схемы, какой из перечисленных признаков имеет место; обнаружив первый такой признак, он (уже не проверяя остальные признаки) делает соответствующий ход (или остановку) из правого столбца. Такие ходы делаются до тех пор, пока не наступает остановка. Пригодность предложенного метода непосредственно вытекает из следующих трех утверждений: 1. При любом взаимном расположении 2. Если остановка наступила на площадке Минотавра, то Минотавр достижим. Более того, в этом случае нить Ариадны оказывается протянутой по простому пути, ведущему от А до М; наматывая нить, Тезей может теперь вернуться по этому пути к Ариадне. 3. Если остановка наступила на площадке Ариадны, то Минотавр недостижим. Прежде чем доказывать эти утверждения, покажем на двух примерах, как работает предложенный метод. Пример 1. Пусть с площадки А лабиринта (рис. 8) начинается поиск Минотавра, который находится в Таблица 1 (см. скан) Мы видим, что в данном случае Минотавр достижим. Выделив в предпоследнем столбце те из коридоров, которые остались желтыми (в соответствии с показаниями последнего столбца), получим следующий простой путь, ведущий от
Пример 2. Если же поиск начинается с площадки К, то процесс поиска можно изобразить в схеме, представленной на таблице 2. Таблица 2 (см. скан) Мы видим, что в этом случае Минотавр недостижим. Перейдем теперь к доказательству утверждений 1—3. Доказательство утверждения 1. Покажем сперва методом индукции по числу ходов Тезея, что на любом этапе процесса поиска возникает следующая альтернатива (т. е. имеет место один из следующих двух случаев, взаимно исключающих друг друга): а) В лабиринте нет желтых коридоров; при этом Тезей находится на площадке А (Ариадны). б) В лабиринте имеются желтые коридоры, причем они, будучи рассмотрены в том порядке, в каком они были пройдены Тезеем, образуют путь, ведущий от А до площадки, на которой находится Тезей. Вместе с тем будет обнаружено, что Тезей никогда не проходит по красному коридору. Высказанные положения являются очевидными для начала процесса, когда Тезей еще находится на площадке А и никакой коридор еще не пройден (все коридоры — зеленые). Предположим теперь, что указанные альтернативы справедливы после Пусть после единственным желтым коридором Допустим теперь, что после 1. Минотавр. Происходит остановка на площадке К с сохранением прежних желтых коридоров (случай 2. Петля. Тезей наматывает нить, т. е. отступает по желтому коридору 3. Зеленая улица. Тезей разматывает нить, т. е. продвигается по зеленому коридору, который теперь уже становится желтым. Имеет место случай 4. Ариадна. Этим признаком Тезей не будет руководствоваться, ибо если он даже и вернется на площадку Ариадны, идя по желтому пути
(т. е. если 5. При отсутствии первых четырех признаков происходит наматывание нити, которое приводит так же, как и в случае петли, к случаю а (при Таким образом, полностью установлена упомянутая выше альтернатива, а также выяснено, что по каждому коридору Тезей проходит не более двух раз (по красному он никогда не проходит). Поскольку, кроме того, число всех коридоров в лабиринте конечно, то и последовательность ходов должна быть конечной; но эта последовательность может оборваться только при остановке Тезея на площадке Минотавра или на площадке Ариадны. Доказательство утверждения 2. В случае остановки на площадке Минотавра факт достижимости очевиден, причем нить Ариадны протянута вдоль желтого пути, существование которого было установлено выше. Отсутствие петель в нити обеспечивается тем, что каждый раз, когда в процессе блуждания Тезей обнаруживает петлю, он возвращается обратно и тем самым ликвидирует ее. Доказательство утверждения 3. Заметим, что в случае остановки на площадке Ариадны 1) каждый коридор лабиринта либо пройден дважды (красный коридор), либо ни разу не пройден (зеленый коридор); иными словами, нить полностью намотана (желтых коридоров в лабиринте нет). 2) все коридоры, выходящие из А, являются красными, ибо в соответствии с принятым соглашением признак Ариадна учитывается лишь в том случае, когда предшествующие ему в схеме три признака, среди которых и зеленая улица, не имеют места. Предположим теперь от противного, что Минотавр достижим и пусть превратил бы один из этих желтых коридоров в красный, оставшийся же желтый коридор должен быть обязательно пройден впоследствии повторно, ибо желтых коридоров не должно оставаться; тогда же будет пройдена еще раз площадка Сделаем теперь следующее замечание. В предложенном нами предписании для поиска пути допускается известный элемент случайности. Именно, при условии зеленая улица очередной ход не определен однозначно, поскольку с данной площадки могут оказаться выходы в несколько зеленых коридоров, а наше предписание не предусматривает, какой из них нужно выбрать, точнее — оно допускает произвольный случайный выбор одного из них. Тем самым нарушается свойство детерминированности, о котором в § 1 говорилось, что оно присуще всем алгоритмам. Этот элемент случайности можно было бы, однако, легко устранить (и тем самым превратить рассмотренное предписание в алгоритм) хотя бы соглашением, что при наличии нескольких зеленых коридоров выбирается коридор по некоторому правилу; например, выйдя на площадку, Тезей начинает ее обходить по часовой стрелке до появления первого зеленого коридора и далее идет по нему. Рассмотрение таких предписаний, в которых заранее предусматриваются акты случайного выбора, представляет большой теоретический и практический интерес, особенно в Современной теории игр и ее применениях к вопросам экономики. Именно такого рода предписания дают «наилучшие» (в определенном смысле) стратегии для широкого класса игр, в которых выборы очередных ходов осуществляются не только решениями игроков, но и механизмом случайного выбора. Такие предписания представляют собой непосредственное обобщение алгоритма, описанного в предыдущем параграфе, применительно к играм без случайных выборов. Однако мы не будем касаться этого вопроса и не будем причислять к алгоритмам предписания, предусматривающие акты случайного выбора. Строгая детерминированность алгоритма и однозначность протекания процесса, предписанного им, являются существенной его чертой. Возвращаясь к предложенному алгоритму поиска (после устранения элемента случайности), следует отметить, что для лабиринтов более частного вида можно указать и более простые методы поиска. Вместе с тем представляется вполне естественным полагать, что в общем случае, когда алгоритм должен быть пригодным для любого произвольного лабиринта, он не может быть ни чем иным, как некоторым видом перебора вариантов. Поэтому вряд ли можно надеяться на создание алгоритма более простого, чем тот, который был предложен нами.
|
1 |
Оглавление
|