- •Глава I Основные понятия
- •§1. Введение
- •§2. Алгоритмы и их сложности
- •§3. Запись алгоритмов
- •Глава II Графы и сети
- •§1. Графы, сети
- •§2. Машинное представление графов и сетей.
- •Глава III Сортировка данных
- •§1. Сложность задачи сортировки
- •§2. Алгоритм сортдерево
- •Глава IV Поиск в графе
- •§1. Поиск в глубину.
- •§2. Поиск в ширину.
- •§3. Цепи и пути в графах.
- •§4. Пути в лабиринте.
- •Глава V Задача о минимальном остове
- •Глава VI Пути в сетях
- •§1 Общий случай. Алгоритм Форда-Беллмана.
- •§2 Случай неотрицательных весов. Алгоритм Дейкстры.
- •§3. Случай бесконтурной сети.
- •§4. Задача о максимальном пути и сетевые графики.
- •§3. Задача о maxmin пути.
- •§6. Задача о кратчайших путях между всеми парами узлов.
Глава VI Пути в сетях
Напомним, что ориентированный взвешенный граф G=(V,E,c) называется сетью. Сеть может быть представлена в компьютере матрицей весов дуг, массивами смежностей СЛЕД или ПРЕДШ, или списками СЛЕД[v] или ПРЕДШ[v]. При этом записи в списках смежностей состоят из грех компонент: поля имени узла, поля веса соответствующей дуги и поля ссылки на следующую запись.
Пусть р: v=v0,v1,...,vk=w — путь в сети G от узла v до узла w (v-w-путь); положим
c(p)=c(v0, v1)+...+c(vk-1, vk).
Число с(р) назовем длиной пути р. Наименьшую из длин v-w-путей назовем расстоянием от v до w, а тот v-w-путь, длина которого равна расстоянию от v до w, — кратчайшим v-w-путем. Ясно, что расстояние от v до w может отличаться от расстояния от w до V.
Задача о кратчайшем пути (ЗКП) между фиксированными узлами: в заданной сети G с двумя выделенными узлами s и t найти кратчайший s-t-путь.
Отметим сразу, что ЗКП можно рассматривать и в неориентированных взвешенных графах, заменив каждое ребро {v,w} графа двумя дугами (v,w) и (w,v) и считая, что c(v,w)=c(w,v)=c({v,w}).
Далее, если в невзвешенном графе положить вес каждого ребра равным единице, то получим данное ранее определение длины пути (см.гл.2 и гл.4) как числа ребер. С этой точки зрения рассмотренная в гл.4 задача построения кратчайшего по числу ребер пути есть частный случай сформулированной только что задачи.
В первом параграфе рассматривается ЗКП в произвольных сетях, во втором и третьем рассмотрены важные частные случаи этой задачи, четвертый и пятый параграфы посвящены разбору естественных модификаций ЗКП и, наконец, в шестом параграфе рассматривается ЗКП между всеми парами узлов заданной сети.
Можно дать много практических интерпретаций ЗКП. Одна из таких была дана в главе первой, где была рассмотрена задача нахождения самого короткого пути между городами. Другая, менее очевидная ситуация возникает в задаче выбора самого надежного пути передачи информации в некоторой информационной сети.
Пусть имеется информационная сеть, связывающая n пунктов связи, и для каждого канала (v,w) передачи информации от пункта связи v к пункту w известна вероятность P(v,w) его безаварийной работы. Предположим, что аварии каналов не зависят друг от друга. Тогда вероятность исправности пути q: s=v0,v1,...,vk=t передачи информации от s до t равна
P(q) = П{P(vi-1,v1) : i=l,2,...,k}.
Самым надежным путем передачи информации от s к t естественно считать тот путь q, для которого значение P(q) максимально.
Рассмотрим сеть G*. узлы которой соответствуют пунктам связи, а дуги — каналам передачи информации, и для дуги (v,w) полагаем c(v,w) = -logP(v,w). Пусть в этой сети для узлов s и t решена ЗКП, то есть найден кратчайший s-t-путь q: s=vo,v1,…,vk=t. Иначе говоря, c(q) = ∑{c(vi-1,v1):i=l,2,...,k}→min среди всех s-t-путей, то есть ∑{-logP(vi-1,v1):i=l,2,...,k}→min.
Тогда log(П{P(vi-1,v1):i=l,2,...,k})→max. Отсюда следует, что для кратчайшего s-t-пути q вероятность правильного прохождения сигнала максимальна среди всех s-t-путей. Таким образом, кратчайший s-t-путь в сети G* определяет самый надежный путь передачи информации в информационной сети.