Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Постановка задачи. Вывод пути





Дан ориентированный граф G=< V, E>,

веса дуг — A[i, j] (i, j=l..N, где N — количество вершин графа), начальная и ко­нечная вершины — s, t V. Веса дуг записаны в матрице смеж­ности А, если вершины i и j не связаны дугой, то A[i,, j]= . Путь между s и t оценивается Необходимо найти путь с минима­льной оценкой.

Пример. Кратчайший путь из 1 в 4 проходит через 3-ю и 2-ю вершины и имеет оценку 6 (см. рис 4.23)

Особый случай — контуры с отри­цательной оценкой.

Пример. При s=l и t=5, обходя контур 3" 4" 2" 3 (см. рис. 4.) достаточное число раз, можно сделать так, что оценка пути между вершинами 1 и 5 будет меньше любого целого числа. Оценку пути на­зовем его весом или длиной. Будем рассматривать только графы без кон­туров отрицательного веса.

 

рис.4

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

Обозначим ее через D[s, t]. Неизвестны алгоритмы, определяющие только D[s, t], все они определяют оценки от вершины s до всех остальных вершин графа. Определим D как Array[1..N] Of Integer. Предположим, что мы определили зна­чения элементов массива D — решили вторую подзадачу. Опре­делим сам кратчайший путь. Для s и t существует такая вер­шина v, что D[t]=D[v]+A[v, t]. Запомним v (например, в стеке). Повторим процесс поиска вершины и, такой, что D[v]=D[u]+А[u, v], и так до тех пор, пока не дойдем до верши­ны с номером s. Последовательность t, v, u,...., s дает кратчай­ший путь.

 

Procedure Way(s, t: Integer);

{*D, A - глобальные

структуры данных. St - локальная структура данных для хранения номеров вершин. *)

Var v, u: Integer;

Procedure Print; {*Выводит содержимое St.*}

Begin

End

Begin

< почистить St>;

< Занести вершину с номером t в St>; v: =t;

While v< > s Do

Begin u: =< номер вершины, для которой

D[v] =D[u] +A[u, v]>;

< занести вершину с номером v в St>;

V: =u;

End;

End;

 

Итак, путь при известном D находить мы умеем. Осталось научиться определять значения кратчайших путей, т. е. эле­менты массива D. Идея всех известных алгоритмов заключает­ся в следующем. По данной матрице весов А вычисляются пер­воначальные верхние оценки. А затем пытаются их улучшить до тех пор, пока это возможно. Поиск улучшения, например для D[v], заключается в нахождении вершин и, таких, что D[u]+A[u, v]< D[v]. Если такая вершина u есть, то значение D[v] можно заменить на D[u]+A[u, v].

 







Дата добавления: 2014-11-10; просмотров: 608. Нарушение авторских прав; Мы поможем в написании вашей работы!




Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...


Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...


Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...


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

Йодометрия. Характеристика метода Метод йодометрии основан на ОВ-реакциях, связанных с превращением I2 в ионы I- и обратно...

Броматометрия и бромометрия Броматометрический метод основан на окислении вос­становителей броматом калия в кислой среде...

Метод Фольгарда (роданометрия или тиоцианатометрия) Метод Фольгарда основан на применении в качестве осадителя титрованного раствора, содержащего роданид-ионы SCN...

Весы настольные циферблатные Весы настольные циферблатные РН-10Ц13 (рис.3.1) выпускаются с наибольшими пределами взвешивания 2...

Хронометражно-табличная методика определения суточного расхода энергии студента Цель: познакомиться с хронометражно-табличным методом опреде­ления суточного расхода энергии...

ОЧАГОВЫЕ ТЕНИ В ЛЕГКОМ Очаговыми легочными инфильтратами проявляют себя различные по этиологии заболевания, в основе которых лежит бронхо-нодулярный процесс, который при рентгенологическом исследовании дает очагового характера тень, размерами не более 1 см в диаметре...

Studopedia.info - Студопедия - 2014-2026 год . (0.009 сек.) русская версия | украинская версия