
- •«Математические модели и методы исследования операций» Аснина а.Я., Аснина н.Г.
- •Тема 1. Оптимизация на сетях.
- •Построение математической модели.
- •Метод потенциалов для сетевой транспортной задачи.
- •Тема 2. Сети без контуров. Свойства сетей без контуров.
- •Задачи о кратчайшем и критическом пути.
- •Метод решения задач о кратчайшем и критическом пути.
- •Тема 3. Задачи, сводящиеся к задачам о кратчайшем и критическом пути. Задача о замене оборудования.
- •Задача оптимизации временной структуры проекта.
- •Тема 4. Теория расписаний. Общие положения
- •Задача о назначениях
- •Самостоятельная работа.
- •Система конвейерного типа с двумя приборами
- •Конвейерная система с тремя и более приборами
- •Самостоятельная работа.
- •Библиографический список
Задачи о кратчайшем и критическом пути.
Постановка задачи: дана сеть без контуров с одним источником и одним стоком, cij – длины дуг.
Требуется найти кратчайший путь от источника к стоку.
Требуется найти критический (самый длинный) путь от источника к стоку.
Построим математическую модель, сведя нашу задачу к сетевой транспортной:
Если
источнику присвоить значение T1=1,
стоку
– Tn=-1,
а Ti=0для
,
то можем записать соответствующую
транспортную задачу:
Так как в правой части стоят только целые числа, то все потоки будут равны либо 1, либо 0, значит:
где cij–длина дуги.
Таким образом, мы можем свести задачу о кратчайшем пути к сетевой транспортной задаче. В задаче о критическом пути ограничения сохраняются, для целевой функции ищется максимум.
???Задание для самостоятельной работы:
Можно ли решить задачу о кратчайшем пути для сети с контуром?
Можно ли решить задачу о кратчайшем пути для сети с контурами?
Метод решения задач о кратчайшем и критическом пути.
Вместо полученной сетевой транспортной задачи будем решать двойственную, которая имеет вид:
- для кратчайшего пути - для критического пути
Рассмотрим задачу о кратчайшем пути:
положим un= 0, тогда получаем
Выпишем ограничения для u1 в виде:
Таким образом, чтобы найти u1 – максимальное, надо чтобы все ui были максимальными. Перепишем все ограничения в виде:
Так
как
,
то для
имеем одно ограничение:
И максимальное значение:
Пусть
теперь найдены потенциалы (i-1)вершины
из (2.11). Следует, что максимальное значение
будет
равно:
Таким
образом, последовательно можно найти
потенциалы всех вершин, при этом
будет равно длине кратчайшего пути, что
следует из теории двойственности.
Теперь
необходимо найти сам путь. Для этого
надо вернуться к рассмотрению исходной
задачи. В путь войдут те дуги, по которым
потоки
,
но это базисные дуги, следовательно для
них
.
Таким образом, для того чтобы определить базисные дуги, надо в формуле (2.14) для каждого iопределить номер j,на котором это равенство достигается.
Поэтому
при вычислении ui
введем
пометку
для
номера вершины, на которой достигается
минимум. Тогда путь будет начинаться с
вершины с номером 1, и переходить к
вершинам, указанным в пометках.
Для
задачи о критическом пути производятся
те же вычисления, только в формуле (2.14)
заменим на
.
Алгоритм:
Шаг 1.Полагаем un =0.
Шаг
2.Цикл по i
=
2.1
2.2
Определяется
Шаг 3.Выписывается ответ: длина кратчайшего пути Lкрат. = u1.
Шаг
4.Строится кратчайший путь 1
– j1
–
– … – n.
Обозначим через Uкрат. множество вершин, вошедших в кратчайший путь.
Шаг 5.Вычисление:
Шаг
6.Проверка равенства:
Замечание 2.3. При решении задачи о критическом пути в алгоритме необходимо заменить на втором шаге min на max.
Рассмотрим пример использования приведённого выше алгоритма:
Н
айдём
кратчайший путь
Рис. 2.6
Lкрат. = 9
Кратчайший путь: 1– 3 – 6 – 10
Н
айдём
критический путь
Рис. 2.7
Lкрит. = 28
Критический путь: 1– 3 – 4 – 6 – 8 – 9 – 10
???Задание для самостоятельной работы:
Решить задачу о кратчайшем и критическом пути, используя граф, изображённый на рис. 3.5, заменив веса трёх указанных дуг новыми значениями, приведёнными ниже:
1. c1,3 = 5, c3,6 = 11, c5,6 = 13.
2. c2,5 = 7, c6,8 = 14, c8,10 = 1.
3.c1,4 = 10, c3,4 = 2, c11,14 = 13.
4.c8,9 = 10, c9,11 = 4, c13,14 = 11.
5.c1,2 = 8, c6,8 = 1, c10,11 = 12.
6.c4,10 = 6, c8,10 = 17, c5,6 = 10.
7.c3,4 = 16, c7,8 = 3, c11,12 = 12.
8.c1,3 = 1, c2,5 = 14, c2,9 = 19.
9.c10,13 = 7, c11,13 = 15, c8,10 = 4.
10.c5,6 = 8, c7,10 = 8, c10,13 = 1.
11.c1,4 = 16, c4,7 = 5, c8,9 = 1.
12.c1,3 = 1, c3,4 = 16, c3,5 = 12.
13.c7,8 = 7, c7,10 = 5, c8,10 = 2.
14.c11,12 = 16, c12,14 = 1, c11,13 = 15.
15.c10,11 = 12, c9,11 = 4, c9,12 = 18.
16.c6,8 = 8, c7,8 = 2, c5,9 = 12.
17.c2,9 = 1, c3,6 = 10, c3,7 = 17.
18.c2,5 = 1, c5,6 = 6, c8,10 = 10.
19.c7,10 = 2, c8,10 = 9, c9,11 = 11.
20.c3,4 = 5, c4,10 = 13, c11,14 = 13.
21.c9,12 = 18, c12,14 = 3, c11,12 = 16.
22.c5,6 = 1, c2,5 = 9, c1,2 = 17.
23.c9,11 = 17, c10,11 = 6, c11,13 = 2.
24.c7,8 = 16, c1,3 = 17, c6,8 = 1.
25.c7,10 = 14, c9,11 = 2, c512,14 = 8.