Алгоритм Дейкстры — различия между версиями
Материал из ALL
(Новая страница: «'''Алгоритм Дейкстры''' — это алгоритм нахождения минимальных расстояний и маршрутов от з…») |
|||
Строка 30: | Строка 30: | ||
* Заметим, что оптимальный маршрут из пункта '''n''' в пункт '''k''' имеет длину '''s<sub>nk</sub>''' и вид '''{n, ... , p<sub>p<sub>k</sub></sub>, p<sub>k</sub>, k}'''. | * Заметим, что оптимальный маршрут из пункта '''n''' в пункт '''k''' имеет длину '''s<sub>nk</sub>''' и вид '''{n, ... , p<sub>p<sub>k</sub></sub>, p<sub>k</sub>, k}'''. | ||
== Другие алгоритмы: == | == Другие алгоритмы: == | ||
− | *[[ | + | *[[алгоритм Дейкстры]]; |
− | *[[ | + | *[[алгоритм Джонсона]]; |
− | *[[ | + | *[[алгоритм Флойда]]; |
+ | *[[алгоритм Ху]]. | ||
== Ссылки == | == Ссылки == | ||
* [[Участник:Logic-samara]] | * [[Участник:Logic-samara]] | ||
[[Категория:Логистика]][[Категория:Алгоритмы]] | [[Категория:Логистика]][[Категория:Алгоритмы]] |
Версия 17:29, 1 февраля 2016
Алгоритм Дейкстры — это алгоритм нахождения минимальных расстояний и маршрутов от заданного пункта до остальных.
Содержание
Обозначения
Введём обозначения.
k – число пунктов (вершин графа);
V – множество вершин графа (пунктов);
E – множество "не просмотренных" вершин;
J – множество конечных вершин дуг исходящих из "просматриваемой" вершины;
G – множество дуг графа (дорог между пунктами);
dij – расстояние от пункта i до пункта j, зависящее от направления;
snj – наименьшее расстояние от пункта n до пункта j;
pj – пункт в оптимальном маршруте, предшествующий пункту j;
n – начальный пункт.
Алгоритм
Входные данные: k; n; V; G; {d12, d13, ..., dk k-1}.
Выходные данные: {sn1, sn2, ..., snk}; {p1, p2, ..., pk}.
- Заметим, что оптимальный маршрут из пункта n в пункт k имеет длину snk и вид {n, ... , ppk, pk, k}.
Другие алгоритмы:
- алгоритм Дейкстры;
- алгоритм Джонсона;
- алгоритм Флойда;
- алгоритм Ху.