- •6.1. Продолжительность симплекс-алгоритма
- •6.2. Размер экземпляра задачи лп
- •6.3. Задача эквивалентной допустимости
- •6.4. Начальные сведения о методе эллипсоида
- •6.5. Описание метода эллипсоида на интуитивном уровне
- •7.1. Алгоритм Хачияна
- •7.2. Обоснование метода эллипсоида
- •8.1. Терминология теории графов
- •8.2. Задача потока минимальной стоимости
- •8.3. Метод остовного дерева
- •8.4. Условия оптимальности
- •8.5. Стержневое правило для изменения базиса
- •8.6. Поиск начального допустимого решения
- •8.7. Целочисленность оптимальных решений
- •9.1. Транспортная задача
- •9.2. Табличная форма
- •9.3. Задача назначений
- •9.4. Лп-ослабления
- •9.5. Задача о максимальном потоке
- •10.1. Теорема максимального потока – минимального разреза
- •10.2. Управление проектом
- •10.3. Задача кратчайшего пути
- •10.4. Уравнение Беллмана
- •11.1. Алгоритм Беллмана-Форда
- •11.2. Алгоритм Дейкстры
- •11.3. Преформулировка с неотрицательным
- •11.4. Задача минимального остовного дерева (мод)
- •11.5. Жадный алгоритм Прима для задачи мод
- •12.1. Задача максимального разреза
- •12.2. Задача полуопределенного программирования
- •12.3. Игра «Симметричное рандеву»
- •12.4. Методы внутренней точки для лп и поп
- •13.1. Основы метода
- •13.2. Задача о ранце
- •13.3. Метод Дакина
- •14.1. Виды алгоритмов
- •14.2. Точные методы
- •14.3. Полиномиальная формулировка зк
- •14.4. Решение с помощью метода ветвей и границ
- •14.5. Приближенный алгоритм для задачи коммивояжера
- •15.1. Эвристики задачи коммивояжера
- •15.2. Метод ближайшего соседа
- •15.3. Метод ближайшего соседа для зк
- •15.4. Имитация отжига
- •15.5. Генетические алгоритмы
8.1. Терминология теории графов
Примеры сетевых задач: задача потока минимальной стоимости, транспортная задача, задача распределения ресурсов, максимального потока, кратчайшего пути и т.д.. При изучении таких задач удобно использовать структуры, которые в математике называют графами (специалисты по компьютерным наукам используют также название: сети).
Граф
G
= (N,
A)
состоит из множества узлов
N
и множества дуг
А.
В
неориентированном
графе
дуги являются неупорядоченными парами
вершин
;
.
В ориентированном
графе
дуги являются упорядоченными парами
узлов (i,
j).
Обход
узлов графа
представляет собой упорядоченный список
узлов
,
такой, что в неориентированном графе:
,
или в ориентированном графе: либо
,
либо
для
.
Обход называется путем,
если
– различны, ициклом,
если
–
различны, но
.
Граф называется связным,
если существует путь, соединяющий каждую
пару узлов.

а б
Рис. 8.1. Примеры ориентированного графа (а) и дерева (б)
Сеть ациклична, если она не содержит циклов. Сеть является деревом, если она связна и ациклична. Сеть (N′, A′) называется подсетью (N, A), если N′ ⊂ N и A′ ⊂ A. Подсеть (N′, A′) является остовным деревом, если это дерево и N′ = N.
8.2. Задача потока минимальной стоимости
Пусть
обозначает величину потока какого-либо
материала по дуге
.
Пусть
,i
∈
N,
обозначает величину потока, входящего
в сеть в узле i
∈
N.
Если
,
то узел являетсяисточником
(подводящим
единиц потока). Если
,
то узел являетсяприемником
(расходующим
единиц потока). Пусть
– это стоимость единицы потока на дуге
(i,
j)
∈
A.
Задача
потока минимальной стоимости
формулируется следующим образом:
минимизировать
при ограничениях:
,
для всех
,
,
для всех
.
В
ограничениях отражены требования о
том, что потоки должны быть допустимыми
и должно выполняться условие материального
баланса в каждом узле. Чтобы существовали
допустимые потоки, мы должны также
иметь:
.
Важным частным случаем является случай
неограниченных потоков:
и
.
Обратите внимание, что задача потока
минимальной стоимости является особой
формой задачи линейного программирования.
Однако ее простая структура допускает
применение более простых специальных
алгоритмов. Ограничения имеют видAx
= b, где

8.3. Метод остовного дерева
Задачу потока минимальной стоимости можно решить с помощью симплекс-метода. Однако эта специфическая задача может быть решена и более простым методом, а именно – методом остовного дерева. Предположим, что граф связен. Тогда решение может быть построено следующим образом.
Выбираем множество T ⊂ A (n – 1) дуг, образующих остовное дерево, и делим оставшиеся A \ T дуг на две группы L и U.
Приравниваем
для каждой дуги (i,
j)
∈
L
и
для каждой дуги (i,
j)
∈
U.Используем найденные значения потока для определения потоков
для дуг (i,
j)
∈
T.
Начинаем с определения потоков на
дугах, инцидентных листьям дерева Т.
Затем последовательно определяем
потоки на других дугах Т.
Метод
остовного дерева с
дает допустимое
решение.
Теорема
8.1.
Вектор потока {
}
является решением задачи тогда и только
тогда, когда он является базисным
решением.
