Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
39
Добавлен:
27.02.2016
Размер:
501.06 Кб
Скачать

Задача о кратчайшем пути

Постановка задачи

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

Задача о кратчайшем пути на графе в общем виде может быть сформулирована следующим образом. Дан неориентированный граф G = (X, U). Каждому ребру этого графа приписано некоторое число l(u) > 0, называемое длиной ребра. В частных случаях l(u) может быть расстоянием между вершинами, соединяемыми ребром u, временем или стоимостью проезда по этому ребру и т. п. При этом любая цепь µ будет характеризоваться длиной, определяемой соотношением

X

l(u) = l(u).

u µ

Требуется для произвольных вершин a и b графа G найти путь µab, причем такой, чтобы его полная длина была наименьшей.

Прежде чем найти общий метод решения этой задачи, рассмотрим правило для решения задачи частного вида, когда длина каждого ребра равна единице.

Назад Первая Предыдущая Следующая Последняя Перейти Предметный указатель

Нахождение кратчайшего пути в графе с ребрами единичной длины

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

Пример (задача о ханойской башне).

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

Пронумеруем диски в порядке убывания их диаметров: m, m − 1, . . . , 1. Обозначим через X, Y и Z множества дисков, надетых соответственно на первый, второй и третий колышки на любом из шагов. При этом достаточно указать только множества X и Z, так как множество Y получается как дополнение множества X и Z до полного числа дисков. Элементом множества X или Z может быть одна из следующих комбинаций дисков: 0, 1, 2, 21, 3, 31, 32, 321, 4, 41, 42, 421, 43, 431, 432, 4321 . . . Эти комбинации можно изобразить условными точками на осях X и Z, как показано на рис. 3.7,а так что любое расположение дисков будет изображаться некоторой точкой на плоскости (X, Z). Соединяя эти точки линиями, указывающими возможные на каждом шаге перемещения дисков, получаем неориентированный граф, на котором можно найти путь, в том числе и кратчайший, для перехода из начальной точки графа в конечную.

Построение графа можно произвести путем перехода от m дисков к m + 1. При m = 1 возможные состояния будут представляться множеством {(1, 0), (0, 0), (0, 1)}, которому соответствует граф на рис. 3.7,а с указанным на нем кратчайшим переходом из начального состояния (1, 0) в конечное (0, 1),

Назад Первая Предыдущая Следующая Последняя Перейти Предметный указатель

 

 

 

 

Z 0

 

 

 

 

 

 

 

 

 

 

 

 

321

 

 

 

 

 

 

 

 

1

Z

 

 

1

1

 

 

 

 

 

 

 

m = 1

 

 

 

 

 

 

 

 

 

 

 

 

32

 

 

 

 

 

 

 

 

0

1 X

 

 

3

 

3

 

 

 

 

 

 

 

а)

 

 

31

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

3

m = 3

 

 

 

 

 

 

 

 

3

2

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Z

 

 

7

 

 

 

7

 

 

 

 

21

 

 

21

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

6

7

 

 

7

6

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

m = 2

 

 

 

 

 

 

 

 

 

1

 

 

 

6

 

5

 

5

 

6

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

21 X

7

7

5

4

4

5

7

7

X

0

1

2

0

1

2

21

3

31

32

321

 

б)

 

 

 

 

 

 

в)

 

 

 

 

 

 

 

Рис. 3.7. Графы переходов в задаче о ханойской башне

 

 

 

 

 

Назад Первая Предыдущая Следующая Последняя Перейти Предметный указатель

Для получения общего правила предположим, что уже построен граф для случая m дисков, который назовем m-графом. Нетрудно убедиться, что такой граф будет иметь вид треугольника, изображенного на рис. 3.8,а, хотя внутренние связи в нем нам пока неизвестны. Каков при этом будет граф для m + 1 дисков?

Заметим, что диск с номером m + 1 может занимать на любом из колышков только нижнее положение. При этом остальные m дисков могут перемещаться как угодно в соответствии с m-графом без изменения положения (m + 1)-го диска. Следовательно, граф для m + 1. диска (рис. 3.8,б) будет состоять из трех m-графов, обозначенных; цифрами (в кружочках) 1, 2 и 3, означающими номер колышка, на котором находится (m + 1)-й диск. Остается выяснить только переходы от одного m-графа к другому, соответствующие перемещению (m + 1)-го диска.

Диск (m + 1)-й может быть переложен только на свободный колышек, а это возможно лишь в том случае, когда на одном из колышков расположены все m меньших дисков. В соответствии с этим на рис. 3.8,б показаны возможные переходы (m+1)-го диска, обозначенные цифрами 1, 2 и 3, означающими номер колышка, на котором находится m меньших дисков.

Диаграмма, показанная на рис. 3.8,б, дает общий принцип перехода от m-графа к (m + 1)-графу. На рис. 3.7,б и в приведены графы переходов для двух и трех дисков.

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

Назад Первая Предыдущая Следующая Последняя Перейти Предметный указатель

m+1,…,1

Z

 

 

Z

 

 

 

 

m,m-1,…,1

 

m+1,1

 

3

 

 

 

m+1

 

 

1

 

 

 

 

 

 

X

 

 

3

0

1

 

 

m,m-1,…,1

m,…,1

 

 

 

 

 

 

а)

 

 

2

1

 

 

 

 

 

 

 

 

 

 

1

 

2

1

 

б)

 

 

 

 

 

X

0

1

m,…,1

m+1 m+1,1

m+1,…,1

 

Рис. 3.8. Переход от m-графа к (m + 1)-графу

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

Назад Первая Предыдущая Следующая Последняя Перейти Предметный указатель

Соседние файлы в папке Конспект лекций