АЛГОРИТМЫ НАХОЖДЕНИЯ КРАТЧАЙШИХ ПУТЕЙ НА ГРАФАХ..

Презентация:



Advertisements
Похожие презентации
Теория графов Основные определения. Дуга Пусть имеется множество вершин V={V 1,V 2,…,V n } и пусть на нем задано бинарное отношение Г V×V, – V i Г V j.
Advertisements

Теория графов Основные определения. Задание графов Графический способ – Привести пример графического задания графа, состоящего из вершин А, В и С, связанных.
Алгоритмы на графах Волновой метод. Постановка задачи Постановка задачи. Пусть G – неориентированный связный граф, а и b – две его вершины. Требуется.
Теория графов Алгоритмы на графах. Медиана графа Медиана вершина графа, у которой сумма кратчайших расстояний от неё до вершин графа минимальная возможная.
МЕТОДЫ ОПТИМИЗАЦИИ § 1. Основные понятия. Под оптимизацией понимают процесс выбора наилучшего варианта из всех возможных В процессе решения задачи оптимизации.
Построение остовного (покрывающего) дерева графа Преподаватель «И и ИКТ» ГБОУ лицея 1557 Куленчик Олеся Николаевна.
Алгоритмы на графах Волновой метод. Постановка задачи Постановка задачи. Пусть G – неориентированный связный граф, а и b – две его вершины. Требуется.
Распределительный метод. Рассмотрим пример Пусть задана некоторая транспортная задача и соответствующая ей транспортная таблица
Л АБОРАТОРНАЯ РАБОТА 6 Тема: Численные методы решения задачи Коши для обыкновенных дифференциальных уравнений.
Алгоритмы на графах. Задача о максимальном потоке в сетях Требуется от источника к стоку передать максимальное количество энергии. В условиях задачи о.
Задача о максимальном потоке в сети Алгоритм Фалкерсона-Форда.
Кафедра математики и моделирования Старший преподаватель Е.Г. Гусев Курс «Высшая математика» Лекция 19. Тема: Транспортная задача. Цель: Рассмотреть метод.
Транспонирование матрицы переход от матрицы А к мат­рице А', в которой строки и столбцы поменялись местами с сохранением порядка. Матрица А' называется.
Графы Волновой метод. Задание графов Пусть граф задан графически. Составить матрицу смежности и матрицу инцидентности для этого графа
Номер варианта выбирается по параметру зачетки d 10 соотв Задача Коммивояжёра Имеется n городов, занумерованных числами.
Д ИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ. П РИНЦИП Б ЕЛЛМАНА.
Динамическое программирование (Dynamic Programming)
Впервые основы теории графов появились в работах Леонарда Эйлера ( ; швейцарский, немецкий и российский математик), в которых он описывал решение.
Теория графов Основные определения. Дуга Пусть имеется множество вершин V={V 1,V 2,…,V n } и пусть на нем задано бинарное отношение Г V×V, – V i Г V j.
Метод Гаусса Выполнил Межов В.С. Группа СБ
Транксрипт:

АЛГОРИТМЫ НАХОЖДЕНИЯ КРАТЧАЙШИХ ПУТЕЙ НА ГРАФАХ.

Теоретические сведения Задача отыскания в графе (как ориентированном, так и неориентированном) кратчайшего пути имеет многочисленные практические приложения. С решением подобной задачи приходится встречаться в технике связи (например, при телефонизации населенных пунктов), на транспорте (при выборе оптимальных маршрутов доставки грузов), в микроэлектронике (при проектировании топологии микросхем) и т.д. Путь между вершинами i и j графа считается кратчайшим, если вершины i и j соединены минимальным числом ребер (случай не взвешенного графа) или если сумма весов ребер, соединяющих вершины i и j, минимальна (для взвешенного графа). В настоящее время известны десятки алгоритмов решения поставленной задачи. Важным показателем алгоритма является его эффективность. Применительно к поставленной задаче эффективность алгоритма может зависеть в основном от двух параметров графа: число его вершин и число весов его ребер. В данной лабораторной работе для определения кратчайшего расстояния между вершинами графа исследуются два алгоритма: метод динамического программирования и метод Дейкстры.

Метод динамического программирования. Метод рассматривает многостадийные процессы принятия решения. При постановке задачи динамического программирования формируется некоторый критерий. Процесс разбивается на стадии (шаги), в которых принимаются решения, приводящие к достижению общей поставленной цели. Таким образом, метод динамического программирования - метод пошаговой оптимизации. Введем функцию f i, определяющую минимальную длину пути из начальной в вершину i. Обозначим через S i j длину пути между вершинами i и j, а f j - наименьшую длину пути между вершиной j и начальной вершиной. Выбирая в качестве i такую вершину, которая минимизирует сумму (S i j + f j ), получаем уравнение f i = min {S i j + f j }

Трудность решения данного уравнения заключается в том, что неизвестная функция входит в обе части равенства. В такой ситуации приходится прибегать к классическому методу последовательных приближений( итераций), используя рекуррентную формулу: f i (k+1) = min {S i j + f j (k) }, где f j (k) - k -е приближение функции. Возможен другой подход к решению поставленной задачи с помощью метода стратегий. При движении из начальной точки i в конечную k получается приближение f i (0) = S ik, где S ik - длина пути между точками i и k. Следующее приближение – поиск решения в классе двухзвенных ломаных. Дальнейшие приближения ищутся в классе трехзвенных, четырехзвенных и других ломаных.

Пример 1. Определить кратчайший путь из вершины 1 в вершину 10 для графа, представленного на рис. 1.

Решение задачи: Начальные условия: f 1 = 0, S 11 = 0. Находим последовательно значения функции f i (в условных единицах) для каждой вершины ориентированного графа: Длина кратчайшего пути составляет 14 условных единиц. Для выбора оптимальной траектории движения следует осуществить просмотр функций f i в обратном порядке, то есть с f 10.

Пусть f i = f 10. В данном случае Получаем, что (3 + f 8 ) = 14, то есть fj = f 8. Значит, из вершины 10 следует перейти к вершине 8. Имеем fi = f 8. Рассмотрим функцию: то есть fj = f 6 и т.д. Таким образом, получаем кратчайший путь от вершины 1 к вершине 10: (1, 4, 6, 8, 10) Рассмотренный метод определения кратчайшего пути может быть распространен и на неориентированные графы (используется метод подстановок и предположений).

АЛГОРИТМ ДЕЙКСТРЫ ПРЕДНАЗНАЧЕН ДЛЯ НАХОЖДЕНИЯ КРАТЧАЙШЕГО ПУТИ МЕЖДУ ВЕРШИНАМИ В НЕОРИЕНТИРОВАННОМ ГРАФЕ. ИДЕЯ АЛГОРИТМА СЛЕДУЮЩАЯ, СНАЧАЛА ВЫБЕРЕМ ПУТЬ ДО НАЧАЛЬНОЙ ВЕРШИНЫ РАВНЫМ НУЛЮ, И ЗАНОСИМ ЭТУ ВЕРШИНУ ВО МНОЖЕСТВО УЖЕ ВЫБРАННЫХ, РАССТОЯНИЕ ОТ КОТОРЫХ ДО ОСТАВШИХСЯ НЕВЫБРАННЫХ ВЕРШИН ОПРЕДЕЛЕНО. НА КАЖДОМ СЛЕДУЮЩЕМ ЭТАПЕ НАХОДИМ СЛЕДУЮЩУЮ НЕВЫБРАННУЮ ВЕРШИНУ, РАССТОЯНИЕ ДО КОТОРОЙ НАИМЕНЬШЕЕ И СОЕДИНЁННУЮ РЕБРОМ С КАКОЙ- НИБУДЬ ВЕРШИНОЙ ИЗ МНОЖЕСТВА ВЫБРАННЫХ (ЭТО РАССТОЯНИЕ БУДЕТ РАВНО РАССТОЯНИЮ ДО УЖЕ ВЫБРАННОЙ ВЕРШИНЫ ПЛЮС ДЛИНА РЕБРА). НАЙТИ КРАТЧАЙШИЙ ПУТЬ НА ГРАФЕ ОТ ВЕРШИНЫ L ДО ВЕРШИНЫ D (РИС.2). Метод Дейкстры.

Рис. 2. Взвешенный неориентированный граф

Запишем алгоритм в виде последовательности шагов. Шаг 1. Определяются расстояния от начальной вершины L до всех остальных Длина пути до выбранной вершины Выбранная вершина Невыбранные вершины BGNRDSMA 0L710 7B

Шаг 2. Выбираем наименьшее расстояние от L до B, найденная вершина В принимается за вновь выбранную. Найденное наименьшее расстояние добавляется к длинам ребер от новой вершины В до всех остальных. Выбирается минимальное расстояние от В до N. Новая вершина N принимается за выбранную. Длина пути до выбранно й вершины Выбранн ая вершина Невыбранные вершины BGNRDSMA 0L710 7B N

Шаг 3. Определяются расстояния от вершины N до всех оставшихся (за исключением L и B). Длина пути до выбранно й вершины Выбранн ая вершина Невыбранные вершины BGNRDSMA 0L710 7B N G Для наглядности в дальнейшем вместо знака будем ставить знак -. Расстояние от вершины L через вершину N до вершины G равно 18. Это расстояние больше, чем расстояние LB+BG= 16, поэтому оно не учитывается в дальнейшем. Продолжая аналогичные построения, построим таблицу.

Длина пути до выбранно й вершины Выбранн ая вершина Невыбранные вершины B G N R D S M A 0 L B N G = = S = = = =42 34 A [34+15] - 41 R [41+32] M [42+21] - - -

Таким образом, найдена длина кратчайшего пути между вершинами L и D (44 условных единицы). Траектория пути определяется следующим образом. Осуществляем обратный просмотр от конечной вершины к начальной. Просматриваем столбец, соответствующий вершине, снизу вверх и фиксируем первое появление минимальной величины. В столбце, соответствующем вершине D, впервые минимальная длина 44 появилась снизу в четвертой строке. В этой строке указана вершина S, к которой следует перейти, то есть следующим нужно рассматривать столбец, соответствующий вершине S. В этом столбце минимальная длина, равная 27, указывает следующую вершину G, к которой следует перейти, и т.д. Таким образом, получаем траекторию пути: ( L, B, G, S, D ).