- •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. Генетические алгоритмы
10.2. Управление проектом
Проект
определяется как множество работ,
которые должны быть выполнены в
определенном порядке. Работа i
имеет длительность
.
Как определить наименьшее время, за
которое проект может быть завершен?
Рассмотрим
граф (рис. 10.1), в котором дуга (i,
j)
существует в том случае, если работа i
должна быть выполнена перед работой j.
Введем две дополнительные работы s
и s′
нулевой длительности для обозначения
начала и окончания проекта, и введем
дуги (s,
i)
и (i,
s′)
для каждой работы
i.
Предположим. мы начинаем работу i
в момент времени
.
Мы хотим:
минимизировать
,
при условии
для всех
.

Рис. 10.1. Граф задачи управления проектом
Двойственная задача формулируется следующим образом:
максимизировать
при условии
для
всех і,
и
для всех
,
где
,
и
для
.
Это задача потока минимальной стоимости,
в которой каждая дуга имеет стоимость:
.
Путь по дугам, для каждой из которых
,
называетсякритическим
путем.
10.3. Задача кратчайшего пути
Задача кратчайшего пути имеет приложения на транспорте и в области связи, и часто является подзадачей для более сложных задач в практически используемых алгоритмах. Хотя ее можно рассматривать как частный случай задачи потока минимальной стоимости, однако более эффективно она может быть решена с помощью специальных алгоритмов.
Пусть
задан ориентированный граф (N,
A),
в котором вес каждой дуги (
)
имеет смысл длины. Будем рассматривать
только те пути, в которых дуги проходятся
в направлении вперед. Длина пути равна
сумме длин дуг, входящих в этот путь.
Кратчайший путь между заданной парой
узлов является путем минимальной длины
(между этими узлами). Обычно рассматривают
сразу несколько задач нахождения
кратчайших путей из всех узлов до одного
заданного узла.
Возьмем
некоторый узел, например узел под номером
n
= |N|,
в качестве корневого узла. Возвращаясь
к смысловой трактовке задачи минимального
потока, установим спрос (на некий условный
товар) в этом узле, равный величине:
.
Остальные узлы будут удовлетворять
этот спрос с равным участием: (
),
так что в итоге спрос и предложение
будут равны. Теперь решим задачу потока
минимальной стоимости, не забывая при
этом, что стоимость каждой дуги имеет
смысл ее длины.
Кратчайший
путь от любого узла i
к узлу n
задается дугами остовного дерева. Пусть
обозначает кратчайшее расстояние от
узлаi
до
корневого узла n.
Такие величины называются метками.
Алгоритмы, которые определяют их
значения, называются алгоритмами
установления меток.
Алгоритмы, которые находят величины
меток путем последовательности итераций,
называются алгоритмами
коррекции меток.
10.4. Уравнение Беллмана
Рассмотрим
задачу кратчайшего пути как задачу
потока минимальной стоимости. Предположим,
что величины
являются оптимальными двойственными
переменными, обеспечивающими оптимальное
решение (методом остовного дерева).
Напомним, что на каждой дуге дерева, где
,
мы должны иметь
.
Принимая
,
и, добавляя эти равенства вдоль пути отi
к n,
мы приходим к выводу, что
– это длина кратчайшего пути отi
к
n.
Более того, так как
,
то двойственная задача с
,
может быть сформулирована так:
максимизировать
,
при
условии
для всех
.
Отсюда
следует, что если в оптимальном векторе
зафиксировать все компоненты, за
исключением
,
то мы должны присвоить переменной
как можно большее значение, удовлетворяющее
заданным ограничениям. То есть,
должны удовлетворять уравнениям (рис.
10.2):
.
с
.
Эти уравнения известны какуравнения
Беллмана.

Рис. 10.2. Граф задачи кратчайшего пути
Идея
заключается в том, что если мы ищем
кратчайший путь от i
к n,
то должны выбрать первую дугу (i,
k)
таким образом, чтобы длина
была наименьшей. Этот метод известен
также какдинамическое
программирование.
Лекция 11. АЛГОРИТМЫ РЕШЕНИЯ ЗАДАЧИ КРАТЧАЙШЕГО ПУТИ
