Кратчайший путь в ациклическом графе — различия между версиями
Кирилл (обсуждение | вклад) (Новая страница: «=Кратчайший путь в ациклическом графе= Кратчайший путь из u в v – это любой путь p из u в v, для…») |
Кирилл (обсуждение | вклад) (→Кратчайший путь в ациклическом графе) |
||
Строка 1: | Строка 1: | ||
− | |||
Кратчайший путь из u в v – это любой путь p из u в v, для которого <math>\boldsymbol w(p) = \delta(u, v)</math>, где: <br> | Кратчайший путь из u в v – это любой путь p из u в v, для которого <math>\boldsymbol w(p) = \delta(u, v)</math>, где: <br> | ||
* <math>\boldsymbol w(p)</math> = сумма весов всех ребер пути p | * <math>\boldsymbol w(p)</math> = сумма весов всех ребер пути p |
Версия 19:48, 12 декабря 2010
Кратчайший путь из u в v – это любой путь p из u в v, для которого
- = сумма весов всех ребер пути p
- : по всем путям p из u в v, если существует путь u в v
- в противном случае
Принцип оптимальности на префиксе
Префикс оптимального решения сам является оптимальным решением (в другой подзадаче)
Если ac - оптимальное решение , то и ab (префикс ac) тоже является оптимальным решением.
Для нахождения кратчайшего пути в графе заведем функцию переменную opt[x], в которой хранится длина кратчайшего пути до вершины х.
В общем случае мы можем написать:
, где cost(vu) - вес ребра из u в v