русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Алгоритм нахождения кратчайших маршрутов


Дата добавления: 2015-07-23; просмотров: 787; Нарушение авторских прав


Задача о кратчайшем пути состоит в нахождении кратчайшего пути от заданной начальной вершины (s)до заданной конечной вершины (t), при условии, что такой путь существует.

Задачи данного типа имеют следующие модификации:

- для заданной начальной вершины sнайти кратчайшие пути от s ко всем другим вершинам графа;

- найти кратчайшие пути между всеми парами вершин.

Для решения этих задач рассмотрим граф , ,ребра которого имеют определенные веса (стоимости).

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

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

Введем обозначения, пусть Г( ) –множество вершин графа G, которые смежны с вершиной .

Так, для графа G1 имеем Г(1)={2,3}.

G1:

 

Алгоритм Дейкстры ( )

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

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

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

Рассмотрим этот алгоритм для случая, когда вес каждого ребра графа неотрицателен ( ).

 



<== предыдущая лекция | следующая лекция ==>
Матрица расстояний | Алгоритм Дейкстры


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.005 сек.