КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Кратчайший путь в ориентированном графе
Задача о кратчайшем пути. ЗАДАЧА. Задан неориентированный граф. Функция стоимости - cij. Найти оптимальный путь между двумя вершинами.
АЛГОРИТМ МИНТИ. 1. Введем переменную c/ij =cij в начальный момент. 2. Пометим начальную вершину числом m0=0. 3. Для каждой помеченной вершины i будем метить те вершины, которые можно достичь из I по дугам с нулевым значением, т.е. mj=i еще не помеченные вершины j для которых c/ij=0. Пометки расставляем до тех пор, 1) пока не пометим конечную вершину пути или 2) пока нельзя будет сделать дальнейшие пометки. 4. Для всех помеченных вершин I определим 5. Уменьшим c/ij при и перейдем к п.3 ПРИМЕР 3.5. М 9 К
2 2 4 3 А 3 1 2 7 В
Р 5 Т
Пометим вершину А числом mA= 0. Так как дальнейшая пометка невозможна, переходим к п.4: Δ=2, c/АМ=0, c/АР=1 Пометим вершину М: mМ= А. Δ=1, c/МР=0, c/АР=0, c/МТ=1, c/МК=8 Пометим вершину Р: mР= А. Δ=2, c/РК=3, c/РТ=4, c/МТ=0, c/МК=7 Пометим вершину Т: mТ=М. Δ=2, c/ТВ=5, c/ТК=0 Пометим вершину К: mК=Т. Δ=3, c/КВ=0 Пометим вершину В: mВ=К Получили оптимальный путь: A→M→T→K→В. Длина пути=11
МЕТОД расстановки пометок. ДАНО: (I,D,G) – неориентированный граф; L(i,j) – длина ребра [i,j]; n, k – начальная и конечная вершины цепи. НАЙТИ: min L(n, k) АЛГОРИТМ
3 4 2 5 2 2 5 2 3 3 4 3
2 4 1
РЕШЕНИЕ Обозначим Г(х) – множество конечных вершин дуг исходящих из x, а Г-1(х) – множество начальных вершин дуг, входящих в х. Порядковой функцией О(х) назовем функцию, определенную на множестве вершин: если xj Є Г(xi), то O(xj)>O(xi), т.е. если вершина xj следует за вершиной xi, то значение порядковой функции в ней больше, чем в xi Величину O(xi) будем называть уровнем вершины xi. ЗАДАЧА. Задан ориентированный граф G=(X,U) без циклов и числовая функция на дугах. Построить минимальный путь из вершины А в вершину В. ТЕОРЕМА ОПТИМАЛЬНОСТИ. Если некоторый путь, соединяющий вершины xi и xj, является минимальным, то его подпуть также является минимальным. АЛГОРИТМ БЕЛЛМАНА. 1. Построим порядковую функцию О(х), полагая О(А)=0. 2. Начиная с вершины В, рассматриваем последовательно все вершины графа в порядке убывания его порядковой функции и приписываем каждой вершине число, равное минимальному значению пути от этой вершины до В. ПРИМЕР 3.7. М 9 К 2 2 4 3 А 1 2 В 3 7 Р 5 Т
1. О(А)=0, О(М)=1, О(Р)=2, О(К)=3, О(Т)=4, О(В)=5 2. S(T)=7, S(K)=min(9,3)=3, S(P)=min(7,12)=7, S(M)=min(12,9,8)=8, S(A)=min(10,10)=10 Минимальный путь А→Р→К→В АЛГОРИТМ ФОРДА. 1. Положим λi=∞ в каждой вершине, кроме λ0=0 2. Ищем дугу (xi, xj ): λj -λi >l(xi, xj ) и заменяем λj на λi+l(xi, xj ) <λj ПРИМЕР 3.8. М 9 К 2 2 4 3 А 1 2 3 1 7 В Р 5 Т λА =0, λР =3 λМ =2,λК=7, λТ=8, λВ=10
ПРИЛОЖЕНИЕ ЗАДАЧИ. 1. Планирование транспортных маршрутов 2. Прокладка магистрали между двумя объектами 3. Установление последовательности взаимосвязанных работ
Дата добавления: 2014-01-20; Просмотров: 669; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |