
- •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.
2.3. Разбиение графа на подграфы
Операция разбиения графа позволяет в ряде случаев существенно упростить задачу анализа сложной системы, представленной в виде графа. Иногда такое разбиение само является целью анализа графовой модели системы. Изложение методики разбиения будет вестись, как и ранее, на основе множественного подхода (использования операций теории множеств – пп. 1.2,1.3) и матричного подхода (использования теории матриц – пп. 1.4, 1.5).
2.3.1. Определение существенных вершин
на пути из вершины xi в вершину xj
Так как RM(xi), определяемое формулой (2.5), является множеством вершин, достижимых изxi, аQM{xj}, определяемое формулой (2.6), является множеством вершин, из которых можно достигнутьxj, то их пересечениеRM(xi) Ç QM(xj)определяет множество таких вершин, каждая из которых принадлежит, по крайней мере, одному пути, идущему отxiкxj. Эти вершины называются существенными или неотъемлемыми относительно двух концевых вершинxiиxj. Все остальные вершиныxk Ï ÏRM(xi) Ç QM(xi) называются несущественными или избыточными, поскольку их удаление не влияет на пути отxiкxj.
2.3.2. Определение сильных компонент графа
на основе множественного подхода
Определим вначале понятие «сильно связный граф». Ориентированный граф называется сильно связным, если для любых двух различных вершин xiиxjcуществует, по крайней мере, один путь, соединяющийxiиxj. Это определение означает также, что любые две вершины такого графа взаимно достижимы.
На основании введенного понятия сильная компонента (СК) графа может быть определена как максимальный (содержащий наибольшее число вершин) сильно связный подграф исходного графа. Поскольку в сильно связном графе произвольная вершина xjдостижима из любой другой вершиныxi, то в ориентированном графе существует одна и только одна СК, содержащая данную вершинуxi.
Таким образом, в СК каждую вершину xiможно считать одновременно начальной и конечной вершиной пути, определяющего цикл, содержащийxi. Естественно, что вСКдолжны оставаться только существенные вершины некоторого цикла, содержащегоxi. Такое множество существенных вершин определяется пересечениемRM(xi) Ç Ç QM(xi)и задает сильную компоненту, содержащую вершинуxi. Если эти вершины удалить из графаG = (X,Г), то в оставшемся подграфе можно таким же способом выделить новуюСК, содержащуюxj Î X – RM(xi) Ç Ç QM(xi). Эту процедуру можно повторять до тех пор, пока все вершины графаGне будут сгруппированы в соответствующиеСК. После завершения этой процедуры графGбудет разбит на свои сильные компоненты, а графG*, отображающий с помощью дуг связь между собой сильных компонент, называют конденсацией графаG.
Подчеркнем, что конденсация G*не может содержать циклов, поскольку наличие цикла означает, что любые вершины этого цикла взаимно достижимы, а поэтому совокупность всех вершин цикла может принадлежать лишь некоторойСКвG*.
2.3.3. Определение сильных компонент графа
на основе матричных представлений графа
Процедуру, связанную с нахождением СКграфа, можно сделать более удобной, если непосредственно использовать матрицы достижимостейRи обратных достижимостейQ. Определим скоттово (адамарово) произведение (п.1.5.6)R O Q. В полученной матрицеR O Qстрокаxiсодержит единицы только в тех столбцахxj, для которых выполняется условие: вершиныxiиxjвзаимно достижимы; в других местах строкиxiстоят нули. После определения СК, содержащей вершинуxi, из матрицыR O Qудаляются строки и столбцы, соответствующие вершине СК. Описанную процедуру удаления повторяют каждый раз после определения новой СК.