
- •2. Основные определения теории графов
- •2.1.1. Задание графа множествами вершин и линий
- •2.1.2. Задание графа с помощью отображения
- •2.1.3. Задание графа с помощью обратного отображения
- •2.1.4. Матричное представление графа
- •2.2. Достижимость и обратная достижимость вершин графа
- •2.2.1. Матрица достижимостей и матрица обратных достижимостей
- •2.2.2. Определение матриц достижимостей и обратных достижимостей с помощью прямых и обратных отображений
- •2.2.3. Определение матриц ограниченных достижимостей
- •2.2.4. Определение матриц достижимостей и обратных
- •2.3. Разбиение графа на подграфы
- •2.3.1. Определение существенных вершин
- •2.3.2. Определение сильных компонент графа
- •2.3.3. Определение сильных компонент графа
- •2.3.4. Определение оптимальной базы графа
- •2.3.5. Определение оптимальной антибазы графа
- •3. Алгоритмы оптимизации на графовых моделях
- •3.1. Решение задачи о максимальном потоке методом расстановки пометок на графе (алгоритм Форда-Фалкерсона)
- •Несколько источников и стоков
- •3.2. Решение задачи о максимальном потоке в табличной форме
- •3.3. Решение задачи о максимальном потоке в графе
- •3.4. Решение задачи о кратчайшем пути в транспортной сети непосредственно по графу
- •3.5. Решение задач о кратчайших путях в табличной форме
- •3.5.1. Определение кратчайшего пути между двумя
- •3.5.2. Определение длин кратчайших путей между
- •3.5.3. Решение задачи о кратчайшем пути в графе
- •3.6. Кратчайший остов графа
- •3.6.1. Понятие дерева
- •3.6.2. Определение числа остовных деревьев графа
- •3.6.3. Алгоритм построения всех остовных деревьев графа
- •3.6.4. Определение кратчайшего остова неориентированного
- •3.6.5. Решение задачи о кратчайшем пути в графе
- •3.7. Задача о назначениях
- •3.7.1. Матричная формулировка задачи
- •3.7.3. Решение задачи о назначениях
- •3.7.4. Модификации задачи о назначениях
- •3.8. Задача о наименьшем покрытии
- •3.8.1. Постановка задачи
- •3.8.2. Алгоритм решения задачи
- •3.8.3 Решение задачи о наименьшем покрытии
- •Библиографический список
- •Оглавление
- •Редактор м.Е. Цветкова Корректор н.А. Орлова
- •390005, Рязань, ул. Гагарина, 59/1.
3.5.2. Определение длин кратчайших путей между
всеми вершинами графа одновременно
Пусть матрица указывает длину дуг графа с числом вершин N. Элементы главной диагонали матрицы всегда равны нулю. Если между парой вершин отсутствует ветвь, то соответствующий элемент принимается равным бесконечности. Очевидно, матрица расстоянийc1(1,1) неориентированного графа всегда симметрична относительно своей главной диагонали; для ориентированного графа она может быть несимметричной. Возведем матрицуc1(1,1)в квадратс2(1,1) = c1(1,1) c1(1,1),где элемент
с2ij
=
Интерпретируя умножение как
последовательное, а сложение как
параллельное соединение дуг, легко
понять, что произведение
соответствует двухтранзитному пути
(т.е. пути, проходящему через две транзитные
дуги графа) от вершиныiк вершинеjчерез узелk.
При этом произведение (
),(
)
фактически соответствует однотранзитным
путям (включающим только одну ветвь),
так как длины путейciiиcjjравны нулю. Для подсчета длины каждого
из таких транзитных путей необходимо
операцию умножения заменить операцией
сложения, т.е. вместо
будем иметь
.
Если же имеется несколько параллельных
путей, то для определения длины кратчайшего
пути между вершинами необходимо операцию
сложения в формуле для определенияc2ijзаменить операцией выбора из всех длин
одно- и двухтранзитных путей наименьшей
длины, т.е.
Таким
образом, элементc2ijматрицыс2(1,1)равен длине кратчайшего пути от вершиныiк вершинеjсреди всех одно- и двухтранзитных путей.
При
возведениис1(1,1)вr-ю степень при использовании
указанных выше операций получим матрицуcr(1,1)
= cr-1(1,1)c1(1,1),
элемент которой
,
будет равен длине кратчайшего пути от
вершиныiк вершинеjсреди всех однотранзитных путей и т.д.
доr-транзитных путей.
При
наличии в графеNвершин
число транзитных дуг в пути без петель
не может быть большеN-1.
Для конкретной сети может оказаться,
что приr<N– 1 выполняется условие
cr(1,1)
= cr-1(1,1)c1(1,1).
Тогда
вычисление матрицы более высокой степени
прекращается, так как при этом всегда
выполняются равенствасr+1(1,1)
= cr(1,1);cN-1(1,1)
= cr-1(1,1).
МатрицаcN-1(1,1)называется матрицей кратчайших путей.
Рассмотренный способ позволяет определять
длину кратчайшего пути, но не указывает
дуги, которые входят в этот путь, однако
в ряде задач такой информации бывает
достаточно для принятия оптимального
решения.
3.5.3. Решение задачи о кратчайшем пути в графе
на основе линейного программирования [1,4]
Модель линейного программирования для задачи о кратчайшем пути строится следующим образом.Пусть Xij ,dijпредставляют соответственно величину и стоимость потока по дуге (i,j). Тогда задача о кратчайшем пути в сети сNузлами формулируется как :
минимизировать Z=
при ограничениях
=1
(исходный пункт),
=
(для всех к#1 илиN)
=1
(пункт назначения)
Целевая функция требует, чтобы общее
”расстояние”, пройденное единицей
потока, было минимальным. Здесь принято,
что
=1,если дуга(i,j)принадлежит кратчайшему пути и
=0, если дуга(i,j)не принадлежит кратчайшему пути .