Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мат. мет. исл. оп Погорелов / Лекции по мат. мет. ИО.doc
Скачиваний:
67
Добавлен:
26.03.2015
Размер:
3.62 Mб
Скачать

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. АЛГОРИТМЫ РЕШЕНИЯ ЗАДАЧИ КРАТЧАЙШЕГО ПУТИ