Алгоритм нахождения максимального пути


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

оформить заявку

Слишком сложно? Тогда запросите консультацию специалиста!

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

ознакомиться с условиями

При решении некоторых практических задач возникает необходимость поиска максимального пути (пути с наибольшей суммой длин дуг). Такая задача сводится к задаче нахождения минимального пути заменой знаков при длинах дуг (в матрице весов C) на противоположные. При этом необходимым является требование отсутствия в ориентированном графе контуров положительной длины.

Пример 3.16.

С помощью модифицированного алгоритма 3.1 найдем максимальный путь из верши­ны х1 в вершину х3 в графе, изображенном на рис. 3.11.

Рис. 3.11

Шаг 1. Введем число вершин графа n =5. Матрица весов этого графа после замены знаков при длинах дуг на противоположные имеет вид:

C = .

Шаг 2. Положим k = 0, l1(0) = 0, l2(0) = l3(0) = l4(0) = l5(0) = . Эти значения занесем в первый столбец табл. 3.2.

Шаг 3.

k = 1.

l1(1) = 0.

Равенство (3.1) для k = 1 имеет вид:

li(1) = {lj(0) + cji}.

l2(1) = min{l1(0) + c12; l2(0) + c22; l3(0) + c32; l4(0) + c42; l5(0) + c52;} = min{0 – 1; ¥ + ¥; ¥ + ¥; ¥ + ¥; ¥ + ¥} = –1.

l3(1) = min{l1(0) + c13; l2(0) + c23; l3(0) + c33; l4(0) + c43; l5(0) + c53;} = min{0 + ¥ ; ¥ – 8; ¥ + ¥; ¥ – 2; ¥ + ¥} = ¥ .

l4(1) = min{l1(0) + c14; l2(0) + c24; l3(0) + c34; l4(0) + c44; l5(0) + c54;} = min{0 + ¥ ; ¥ – 7; ¥ + ¥; ¥ + ¥; ¥ – 4} = ¥ .

l5(1) = min{l1(0) + c15; l2(0) + c25; l3(0) + c35; l4(0) + c45; l5(0) + c55;} = min{0 – 3; ¥ – 1; ¥ + 5; ¥ + ¥; ¥ + ¥} = –3.

Полученные значения li(1) занесем во второй столбец табл. 3.2. Убеждаемся, что второй столбец, начиная со второго элемента, совпадает с первой строкой матрицы весов, что легко объясняется смыслом величин li(1), которые равны длине минимального пути из первой вершины в i-ую, содержащего не более одной дуги.

k = 2.

l1(2) = 0.

Равенство (3.1) для k = 2 имеет вид:

li(2) = {lj(1) + cji}.

l2(2) = min{0 – 1; –1 + ¥; ¥ + ¥; ¥ + ¥; –3 + ¥} = –1.

l3(2) = min{0 + ¥ ; –1 – 8; ¥ + ¥; ¥ – 2; –3 + ¥} = –9 .

l4(2) = min{0 + ¥ ; –1 – 7; ¥ + ¥; ¥ + ¥; –3 – 4} = –8 .

l5(2) = min{0 – 3; –1 – 1; ¥ + 5; ¥ + ¥; –3 + ¥} = –3.

Полученные значения li(2) занесем в третий столбец табл. 3.2. Величины li(2) равны длине минимального пути из первой вершины в i-ую, содержащего не более двух дуг.

k = 3.

l1(3) = 0.

Равенство (3.1) для k = 3 имеет вид:

li(3) = {lj(2) + cji}.

l2(3) = min{0 – 1; – 1 + ¥; – 9 + ¥; –8 + ¥; – 3 + ¥} = – 1.

l3(3) = min{0 + ¥ ; – 1 – 8; – 9 + ¥; –8 – 2; – 3 + ¥} = – 10 .




l4(3) = min{0 + ¥ ; – 1 – 7; – 9 + ¥; –8 + ¥; – 3 – 4} = – 8 .

l5(3) = min{0 – 3; – 1 – 1; – 9 + 5; –8 + ¥; – 3 + ¥} = – 4.

Полученные значения li(3) занесем в четвертый столбец табл. 3.2. Величины li(3) равны длине минимального пути из первой вершины в i-ую, содержащего не более трех дуг.

k = 4.

l1(4) = 0.

Равенство (3.1) для k = 4 имеет вид:

li(4) = {lj(3) + cji}.

l2(4) = min{0 – 1; – 1 + ¥ ; – 10 + ¥; – 8 + ¥; – 4 + ¥} = – 1.

l3(4) = min{0 + ¥ ; – 1 – 8; – 10 + ¥; – 8 – 2; – 4 + ¥} = – 10 .

l4(4) = min{0 + ¥ ; – 1 – 7; – 10 + ¥; – 8 + ¥; – 4 – 4} = – 8 .

l5(4) = min{0 – 3; – 1 – 1; – 10 + 5; – 8 + ¥; – 4 + ¥} = – 5.

Полученные значения li(4) занесем в пятый столбец табл. 3.2. Величины li(4) равны длине минимального пути из первой вершины в i-ую, содержащего не более четырех дуг.

Таблица 3.2

i(номер вершины) li(0) li(1) li(2) li(3) li(4)
0 0 0 0 0 ¥ – 1 – 1 – 1 1 ¥ ¥ – 9 – 10 – 10 ¥ ¥ – 8 – 8 – 8 ¥ – 3 –3 – 4 – 5

Заменив в табл. 3.2 отрицательные числа положительными, получим таблицу индексов максимальных путей (табл. 3.3). При этом li(k) определяет длину максимального пути из первой вершины в i-ую, содержащего не более k дуг.

Таблица 3.3

i(номер вершины) li(0) li(1) li(2) li(3) li(4)
0 0 0 0 0 ¥ 1 1 1 1 ¥ ¥ 9 10 10 ¥ ¥ 8 8 8 ¥ 3 3 4 5

Шаг 5. Восстановление максимального пути производится по тому же правилу, что и для минимального пути.



Длина максимального пути равна 10. Этот путь состоит из трех дуг, т. к. li(3) = li(4) = 10. Поэтому в соотношении (3.2) будет выполнено, начиная с n – 1.

Учитывая это замечание, для последней вершины x3предшествующую ей вершину xrопределим из соотношения (3.2) полученного при s =3:

lr(2) + cr3 = l3(3), (3.7)

xrÎ G-1(x3), где G-1(x3) - прообраз вершины x3.

G-1(x3)= {x2, x4}.

Подставим в (3.7) последовательно r = 2 и r = 4, чтобы определить, для какого r это равенство выполняется:

l2(2) + c23 = 1 + 8 ¹ l3(4) = 10,

l4(2) + c43 = 8 + 2 = l3(4) = 10.

Таким образом, вершиной, предшествующей вершине x3, является вершина x4.

Для вершины x4предшествующая ей вершина xrопределяется из соотношения (3.2) полученного при s =4:

lr(1) + cr4 = l4(2), xrÎ G-1(x4), (3.8)

где G-1(x4) - прообраз вершины x4.

G-1(x4)= {x2, x5}.

Подставим в (3.8) последовательно r = 2, r = 3 и r = 5, чтобы определить, для какого r это равенство выполняется:

l2(1) + c24 = 1 + 7 = l4(3) = 8,

l5(1) + c54 = 3 + 4 ¹ l4(3) = 8,

Таким образом, вершиной, предшествующей вершине x4, является вершина x2.

Для вершины x2предшествующая ей вершина xrопределяется из соотношения (3.2) полученного при s =2:

lr(0) + cr2 = l2(1), xr G-1(x2), (3.9)

где G-1(x2) - прообраз вершины x2.

G-1(x2)= {x1}.

Подставим в (3.9) r = 1, чтобы определить, выполняется ли это равенство:

l1(1) + c12 = 0 + 1 = l2(1) = 1.

Таким образом, вершиной, предшествующей вершине x2, является вершина x1.

Итак, найден максимальный путь – x1, x2, x4, x3, его длина равна 10.


Хм, так же просматривали

Заказ

ФОРМА ЗАКАЗА

Бесплатная консультация

Наша компания занимается написанием студенческих работ. Мы выполняем: дипломные, курсовые, контрольные, задачи, рефераты, диссертации, отчеты по практике, решаем тесты и задачи, и многие другие виды заданий. Чтобы узнать стоимость, а так же условия выполнения работы заполните заявку на этой странице. Как только менеджер увидит ваше сообщение, он сразу же свяжется с вами.

Этапность

СОПРОВОЖДЕНИЕ КЛИЕНТА

Получить работу можно всего за 4 шага

01
Оставляете запрос

Оформляете заказ работы, заполняя форму на сайте.

02
Узнаете стоимость

Менеджер оценивает сложность. Узнаете точную цену.

03
Работа пишется

Оплачиваете и автор приступает к выполнению задания.

04
Забираете заказ

Получаете работу в электронном виде на вашу почту.

Услуги

НАШ СЕРВИС

Что мы еще делаем?

icon
Дипломные работы

от 9800 рублей

ПОДРОБНЕЕ
icon
РГР (расчетно-графические работы)

от 230 рублей

ПОДРОБНЕЕ
icon
Домашние работы

от 180 рублей

ПОДРОБНЕЕ
icon
Отчеты по практике

от 780 рублей

ПОДРОБНЕЕ
icon
Научные статьи

от 2300 рублей

ПОДРОБНЕЕ
icon
Работы для духовной семинарии

от 980 рублей

ПОДРОБНЕЕ