Опубликован: 25.07.2006 | Уровень: для всех | Доступ: платный | ВУЗ: Новосибирский Государственный Университет
Лекция 4:

Эйлеровы графы

< Лекция 3 || Лекция 4: 1234 || Лекция 5 >

Лабиринты

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

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

Решение каждого лабиринта может быть найдено, и притом сравнительно простым путем.

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

Задача о лабиринте в общем случае сводится к построению алгоритма, позволяющего отыскать маршрут в соответствующем графе от заданной вершины v_{a} до заданной вершины v_{b}. Вершина v_{a} может быть входом или внутренней точкой лабиринта, из которой нужно выбраться, вершина v_{b} — выходом или тоже внутренней точкой, в которую необходимо попасть. Чтобы избежать бесконечного блуждания, необходимо иметь возможность запоминать пройденный путь, например, отмечать ребра графа, по которым уже прошли, и направление пути.

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

Разработаны алгоритмы, позволяющие обойти любой лабиринт, не пользуясь его схемой.

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

Геометрическая постановка задачи о лабиринтах

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

Но еще раньше, чем приступить к этому доказательству, можно выполнить довольно интересное математическое построение, которое поможет понять все вышеизложенное и будет весьма полезно для усвоения самого доказательства. На листе бумаги возьмите произвольно несколько точек и соедините их по две столько раз, сколько хотите, произвольным числом прямых или кривых линий, но так, чтобы ни одна точка системы не осталась изолированной. Итак, получается граф. Если нарисовать сеть трамваев или троллейбусов города, сеть железных дорог страны, сеть рек и каналов и т.д., прибавить к ним, границы страны — опять получается граф, или лабиринт. В данном лабиринте нужно выбрать какую-то вершину v_{a} и обойти все ребра два раза (пройти каждое ребро вперед и назад) и возвратиться в точку v_{a}.

< Лекция 3 || Лекция 4: 1234 || Лекция 5 >
Никита Толышев
Никита Толышев
Владислав Нагорный
Владислав Нагорный

Подскажите, пожалуйста, планируете ли вы возобновление программ высшего образования? Если да, есть ли какие-то примерные сроки?

Спасибо!

Антон Фоломеев
Антон Фоломеев
Украина
Ту Нгуен
Ту Нгуен
Вьетнам, Беларусь