
- •Введение. Экономико-математические методы и модели Основные понятия экономико-математического моделирования
- •Этапы экономико-математического моделирования
- •Классификация экономико-математических моделей
- •1. Обзор методов сетевого планирования и управления
- •1.1. Развитие методов сетевого планирования и управления
- •1.1.1. Назначение систем сетевого планирования и управления
- •1.1.2. Возникновение методов сетевого планирования и управления
- •1.1.3. Практическое применение методов сетевого планирования и управления. Программные средства, основанные на методах сетевого планирования и управления
- •1.2. Классификация систем сетевого планирования и управления
- •1.3. Элементы и параметры сетевого графика
- •1.3.1. Построение сетевой модели проекта
- •1.3.2. Правила построения сетевых графиков
- •1.3.3. Временные параметры сетевых графиков
- •1.4. Оптимизация сетевых графиков
- •1.4.1. Типы оптимизационных задач
- •1.4.2. Оптимизация сетевого графика по стоимости. Постановка задачи оптимизации. Методы оптимизации.
- •1.5. Алгоритмы, использованные для решения задачи оптимизации проекта по стоимости
- •1.5.1. Общие принципы решения задачи
- •Задача о максимальном потоке
- •1.5.2. Алгоритм поиска ранних сроков свершения событий
- •1.5.3. Алгоритм Келли (оптимизация по критерию "время-стоимость")
- •Алгоритм решения параметрической задачи
- •Определяется новый оптимальный план по формулам
- •1.5.4. Алгоритм поиска минимальной стоимости при заданной продолжительности критического пути Тд
- •2. Описание программыnet_planning
- •2.1. Краткое описание возможностей программы
- •2.2. Постановка задачи контрольного примера
- •2.3. Решение контрольного примера на основе алгоритма Келли
- •2.4. Решение задачи с использованием программыnet_planning
- •Заключение
- •Литературные источники
- •Приложение а. Связи между различными вариантами классификации систем сетевого планирования и управления
- •Приложение б. Текст программы
- •Приложение в. Текстовый файл отчета
- •Приложение г. Структурные схемы алгоритмов и основных процедур.
2.2. Постановка задачи контрольного примера
Опишем работу программы на примере сетевого графика, изображенного на рис 1.2.
Пусть для этого сетевого графика известны следующие данные:
Все bij=20, все aij=1;
На длительности работ накладываются следующие ограничения:
5≤t0,1≤7;
1≤t1,2≤3;
t1,3=2;
t0,2=10;
1≤t2,7≤2;
7≤t3,4≤10;
2≤t3,5≤3;
5≤t4,6≤8;
3≤t5,6≤6;
3≤t6,7≤5;
2≤t7,8≤4;
Необходимо найти оптимальный план выполнения проекта для Тд=32 дня.
Математическая модель задачи имеет вид:
Z= —( t0,1+ t1,2+ t1,3+ t0,2+ t2,7+ t3,4+ t3,5+ t4,6+ t5,6+ t6,7+ t7,8)+20*11=
= —( t0,1+ t1,2+ t1,3+ t0,2+ t2,7+ t3,4+ t3,5+ t4,6+ t5,6+ t6,7+ t7,8)+220min
при ограничениях
T1—T0—t0,1≥ 0;
T2—T0—t0,2≥ 0;
T2—T1—t1,2≥ 0;
T3—T1—t1,3≥ 0;
T7—T2—t2,7≥ 0;
T4—T3—t3,4≥ 0;
T5—T3—t3,5≥ 0;
T6—T4—t4,6≥ 0;
T6—T5—t5,6≥ 0;
T7—T6—t6,7≥ 0;
T8—T7—t7,8≥ 0;
T0= 0;
T8= 32.
2.3. Решение контрольного примера на основе алгоритма Келли
Рассмотрим на примере алгоритмы, реализованные в программе net_planning.
Поиск оптимального плана для Ткр=М (М—ранний срок наступления завершающего события при всех tij=Dij). Продолжительности работ в таком оптимальном плане уже известны. Необходимо найти Tj. Для этого построим матрицу, аналогичную описанной в пункте 1.5.2 (таблица 2.1) Если существует работа (i,j), то в клетку таблицы записывается tij=Dij.
Таблица 2.1
Матрица для расчета Tj
-
0
1
2
3
4
5
6
7
8
0
7
10
1
3
2
2
2
3
10
3
4
8
5
6
6
5
7
4
8
T0 считаем равным 0. Найдем T1. Для этого просматриваем столбец 1. В столбце 1 существует только один непустой элемент R01=7, значит, T1=T0+ R01=0+7=7.
В столбце 2 есть 2 непустых элемента, R02=10, R12=3, значит, T2=max{T0+ R02; T1+ R12}=max{0+10;7+3}=max{10;10}=10.
Аналогично рассчитываются все Tj. Их значения следующие:
T0=0
T1=7
T2=12
T3=9
T4=19
T5=12
T6=27
T7=32
T8=36.
Таким образом, получены ранние сроки свершения событий при Ткр=М; М=36.
Распределение работ по множествам E1, E2, Q1, Q2, Q3, Q4.
Признаки, по которым работы можно распределить по множествам E1, E2, Q1, Q2, Q3, Q4, были представлены в таблице 1.2.
Например, для работы (0,1) свободный резерв равен T1—T0—t01=0, значит, работа принадлежит множеству E1. При этом в данном оптимальном плане t01=7=D01>d01, значит, работа принадлежит также множеству Q1. Аналогично рассмотрев все работы, получаем следующее распределение работ по множествам (таблица 2.2).
Таблица 2.2.
Распределение работ по множествам E1, E2,Q1, Q2,Q3,Q4 (шаг 1)
-
0
1
2
3
4
5
6
7
8
0
E1&Q1
E1&Q2
1
E1&Q1
E1&Q2
2
E2&Q1
3
E1&Q1
E1&Q1
4
E1&Q1
5
E2&Q1
6
E1&Q1
7
E1&Q1
8
По правилам, описанным в алгоритме Келли, построим таблицу для поиска максимального потока через сеть, на которую наложены ограничения (таблица 2.3). Например, работа (0,1)E1&Q1, значит, в клетку ij записываем aij=1.
Таблица 2.3
Поиск максимального потока (шаг 1.1)
-
0*
10
20
31
43
53
64
76
87
0
1—
1
0+
1
—
2
0
0
3
0+
1—
1
4
0+
1—
5
0
6
0+
1—
7
0+
1—
8
0+
Производится разметка вершин. Столбец 0 не отмечается. В строке 0 ищем положительные элементы. Это R01 =1 и R02=, значит, столбцы 1 и 2 отмечаются числом 0 (номер просматриваемой строки). Теперь необходимо просмотреть строки 1 и 2 (их номера соответствуют номерам только что размеченных столбцов). В строке 1 два положительных элемента: R12 =1 и R13=, но столбец 2 уже отмечен, поэтому элемент R12 не рассматривается; столбец 3 отмечается числом 1 и т.д.
Теперь необходимо по разметке найти путь от завершающего события к исходному. Метка последнего столбца равна 7. Значит, элемент R78 отмечается знаком "—", а элемент R87 — знаком "+". Отметив элемент R87, мы перешли в столбец 7. Его метка равна 6, значит, в столбце 7 элемент R67 отмечаем знаком "—", а элемент R76. — знаком "+", и т.д.
Полученный путь 08: (0,1)-(1,3)-(3,4)-(4,6)-(6,7)-(7,8).
Найдем пропускную способность построенного пути:
h=min{a01,a13,a34,a46,a67,a78}=1.
Производится пересчет таблицы. От всех aij —отнимается h, ко всем aij +— прибавляется. В результате получена таблица 2.4.
Таблица 2.4
Поиск максимального потока (шаг 1.2)
-
0*
1
20
3
4
5
6
7
8
0
0
1
1
1
2
0
0
3
1
0
1
4
1
0
5
0
6
1
0
7
1
0
8
1
В такой таблице нет ни одного пути 08, т.к. невозможно разметить столбец 8. Существует только путь 02.
Распределение событий по множествам {u} и {v}. Событие 0 принадлежит {u} в любом случае; событие 2 принадлежит {u}, т.к. существует путь 02. Остальные события принадлежат {v}. В сечение попадают работы (0,1) и (2,7).
Поиск переменных двойственной задачи.
Для событий 0 и 2 0=0 и 2=0,т.к. они принадлежат {u}; для остальных событий j=1.
Найдем параметр . Для работы (0,1) 01=1, т.к. она принадлежит E1&Q1, и при этом событие 0 принадлежит {u}, а событие 1 принадлежит {v}. Все остальные ij=0.
Найдем параметр . Для работы (0,1) 01 =01+0—1=1+0—1=0. В результате расчета получаем, что все ij кроме 27 равны 0, 27= —1.
Найдем параметр 0. Для этого найдем ', ", "'.
'=(T7—T2—t27)/1=20;
'"=(t01-d01)/01=2,
0=min{'; '"}=2.
Таким образом, состав работ в оптимальном плане не изменится, если Ткр=36 уменьшить на величину , если [0;2). При этом изменятся ранние сроки свершения событий:
T'0=0;
T'1=7—;
T'2=10;
T'3=9—;
T'4=19—;
T'5=12—;
T'6=27—;
T'7=32—;
T'8=36—;
и продолжительность работы (0,1): t01=7—.
Положим =2. Тогда
T'0=0;
T'1=5;
T'2=10;
T'3=7;
T'4=17;
T'5=10;
T'6=25;
T'7=30;
T'8=34.
Снова распределяем работы по множествам E1, E2, Q1, Q2, Q3, Q4 (таблица 2.5).
Таблица 2.5.
Распределение работ по множествам E1, E2, Q1, Q2, Q3, Q4 (шаг 2)
-
0
1
2
3
4
5
6
7
8
0
E1&Q3
E1&Q2
1
E1&Q1
E1&Q2
2
E2&Q1
3
E1&Q1
E1&Q1
4
E1&Q1
5
E2&Q1
6
E1&Q1
7
E1&Q1
8
Повторяем описанные выше действия. В результате получим новый Ткр'=31.
Получено, что Ткр'< Тд< Ткр (31<32<34). Значит, для нахождения оптимального плана при Тд=32 необходимо использовать параметры, рассчитанные на данном шаге. Эти значения следующие: 34=1; остальные ij=0;
0=1=2=3=5=0; остальные j=1.
Найдем *. По определению *=Ткр—Тд=34-32=2.
По формулам (1.19) получаем оптимальный план, представленный в таблицах 2.6 и 2.7. Стоимость полученного оптимального плана выполнения проекта составит 162 д.е.