ЗА, 8 сем / Теория оптимального управления ЗА, 8 сем / 7_Примеры выполнения домашнего задания / Методические указания к практическим занятиям
.pdf
|
Клетки |
|
(1; 3) |
|
è |
|
(2; 1) помечены знаком (+), а клетки (1; 1) |
|||||
è |
(2; 3) |
|
знаком ( ). По полученному циклу перераспределяется |
|||||||||
x0 |
= |
min |
f |
10; 20 |
g |
= |
10 единиц продукции. В результате получаем |
|||||
|
|
|
|
|
|
|
|
|
|
: |
||
следующий план перевозок x2 |
|
|||||||||||
|
|
|
|
|
|
|
|
|
||||
|
|
|
B1 |
B2 |
B3 |
B4 |
|
|
||||
|
A1 |
|
10 |
|
100 |
|
10 |
|
|
|
|
|
|
A2 |
|
50 |
|
|
|
|
|
|
|
|
|
|
A3 |
|
|
|
|
|
70 |
|
60 |
|
|
Стоимость перевозок по данному плану равна
f(x2) = 10 ¢ 5 + 100 ¢ 3 + 10 ¢ 1 + 50 ¢ 2 + 70 ¢ 2 + 60 ¢ 4 = 840:
Переходим на следующую итерацию.
Находим потенциалы для плана x2 из системы уравнений:
v1 ¡ u1 = 5; v2 ¡ u1 = 3; v3 ¡ u1 = 1; v1 ¡ u2 = 2; v3 ¡ u3 = 2; v4 ¡ u3 = 4:
Получаем одно из решений:
u1 = 0; u2 = 3; u3 = ¡1; v1 = 5; v2 = 3; v3 = 1; v4 = 3:
Проверяем полученный план на оптимальность:
¢14 = v4 ¡ u1 ¡ c14 = 3 ¡ 0 ¡ 3 = 0,
¢22 = v2 ¡ u2 ¡ c22 = 3 ¡ 3 ¡ 4 = ¡4 < 0, ¢23 = v3 ¡ u2 ¡ c23 = 1 ¡ 3 ¡ 2 = ¡4 < 0, ¢24 = v4 ¡ u2 ¡ c24 = 3 ¡ 3 ¡ 3 = ¡3 < 0, ¢31 = v1 ¡ u3 ¡ c31 = 5 ¡ (¡1) ¡ 7 = ¡1 < 0, ¢32 = v2 ¡ u3 ¡ c32 = 3 ¡ (¡1) ¡ 6 = ¡2 < 0.
Òàê êàê âñå ¢ij · 0, то план перевозок x2 является оптимальным.
31
3.3. Задания для самостоятельной работы
1. Решить транспортную задачу методом потенциалов.
à) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
B1 |
|
B2 |
|
|
B3 |
|
B4 |
|
|
|
|
|
|
|
|
A1 |
5 |
1 |
|
2 |
|
1 |
|
|
20 |
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
A2 |
2 |
7 |
|
9 |
|
3 |
|
|
140 |
|
|
||||
|
A3 |
7 |
3 |
|
4 |
|
4 |
|
|
100 |
|
|
||||
|
|
50 |
20 |
|
130 |
|
60 |
|
|
|
|
|
|
|||
á) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
B1 |
|
B2 |
|
B3 |
|
B4 |
|
|
|
|
|
|
||
|
A1 |
2 |
3 |
|
1 |
|
8 |
|
|
70 |
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
A2 |
4 |
4 |
|
9 |
|
3 |
120 |
|
|
||||||
|
A3 |
1 |
6 |
|
2 |
|
2 |
|
|
60 |
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
40 |
50 |
|
80 |
|
80 |
|
|
|
|
|
|
|||
â) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
B1 |
|
B2 |
|
B3 |
|
B4 |
|
|
|
|
||||
|
A1 |
5 |
|
1 |
|
1 |
|
|
2 |
|
200 |
|||||
|
A2 |
3 |
|
8 |
|
2 |
|
|
6 |
|
150 |
|||||
|
A3 |
4 |
|
6 |
|
5 |
|
|
2 |
|
250 |
|||||
|
|
120 |
|
300 |
|
70 |
|
110 |
|
|
|
|
||||
ã) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
B1 |
|
B2 |
|
B3 |
|
B4 |
|
|
|
|
||||
|
A1 |
7 |
|
2 |
|
4 |
|
|
3 |
|
200 |
|||||
|
A2 |
1 |
|
5 |
|
2 |
|
|
3 |
|
140 |
|||||
|
A3 |
3 |
|
4 |
|
2 |
|
|
1 |
|
220 |
|||||
|
|
120 |
|
50 |
|
100 |
|
250 |
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32
4. ЗАДАЧИ ЦЕЛОЧИСЛЕННОГО ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ
Задачи целочисленного линейного программирования (ЦЛП) являются математическими моделями многих практических задач, возникающих в экономике, планировании, управлении и других областях. Одним из первых появившихся методов решения задач ЦЛП является метод отсечения.
4.1. Алгоритм отсечения Гомори
Симплекс-метод, использующийся для решения задачи ЛП, не гарантирует целочисленности решения задачи, поэтому для отыскания оптимального решения задачи ЦЛП требуются специальные методы метод ветвей и границ, динамическое программирование, направленный перебор, метод отсечения и другие. Рассмотрим использование первого алгоритма Гомори для решении задачи ЦЛП, который является дробным двойственным алгоритмом отсечения.
Пример 4.1. Решить задачу ЦЛП.
f(x) = x1 + x2 ! min
x1 |
¡ x2 · |
4; |
|
x1 |
+ 3x2 |
¸ |
6; |
x1 |
¡ 3x2 |
¸ ¡3; |
|
x1 |
¸ 0; x2 ¸ 0; |
x1; x2 2 Z:
Итерация 1
Решаем задачу без условия целочисленности двойственным симплекс- -методом. Заключительная таблица имеет вид:
|
|
x5 |
x4 |
f |
¡3 |
1=3 |
2=3 |
x1 |
3=2 |
¡1=2 ¡1=2 |
|
x2 |
3=2 |
1=6 ¡1=6 |
|
x3 |
4 |
2=3 |
1=3 |
x4 |
0 |
0 |
¡1 |
x5 |
0 |
¡1 |
0 |
33
Оптимальное решение задачи ЛП не является
целочисленным, следовательно, добавляем правильное отсечение к ограничениям задачи. Для этого выбираем некоторую переменную с дробным значением, например, x1. Ей соответствует следующее
уравнение:
¡12x5 ¡ 12x4 + x1 = 32.
Отсечения в первом алгоритме Гомори строятся по формуле
¡ P f®ijgxj · ¡f®i0g,
j2J
ãäå J множество индексов небазисных переменных, а f®g дробная часть числа ®.
Тогда отсечение Гомори выглядит следующим образом:
¡12x5 ¡ 12x4 · ¡12.
x6 и добавляем отсечение к
результате получаем следующую таблицу, допустимость, но остается двойственно
|
|
x5 |
x4 |
f |
¡3 |
1=3 |
2=3 |
x1 |
3=2 |
¡1=2 ¡1=2 |
|
x2 |
3=2 |
1=6 ¡1=6 |
|
x3 |
4 |
2=3 |
1=3 |
x4 |
0 |
0 |
¡1 |
x5 |
0 |
¡1 |
0 |
x6 |
¡1=2 |
¡1=2 ¡1=2 |
Решая новую задачу ЛП двойственным симплекс-методом, получаем заключительную симплексную таблицу этой задачи:
34
|
|
x6 |
x4 |
f |
¡10=3 |
2=3 |
1=3 |
x1 |
2 |
¡1 |
0 |
x2 |
4=3 |
1=3 ¡1=3 |
|
x3 |
10=3 |
4=3 ¡1=3 |
|
x4 |
0 |
0 |
¡1 |
x5 |
1 |
¡2 |
0 |
x6 |
0 |
¡1 |
0 |
Оптимальное решение задачи ЛП x¤2 = (2; 4=3; 10=3; 0; 1; 0) также не является целочисленным, следовательно, опять добавляем отсечение к ограничениям задачи. Построим отсечение, например, по переменной x2.
Ей соответствует уравнение:
13x6 ¡ 13x4 + x2 = 43.
Получаем следующее отсечение Гомори:
¡13x6 ¡ 23x4 · ¡13.
Итерация 3
Вводя дополнительную переменную x7 и добавляя отсечение к симплексной таблице, получаем таблицу:
|
|
x6 |
x4 |
f |
¡10=3 |
2=3 |
1=3 |
x1 |
2 |
¡1 |
0 |
x2 |
4=3 |
1=3 ¡1=3 |
|
x3 |
10=3 |
4=3 ¡1=3 |
|
x4 |
0 |
0 |
¡1 |
x5 |
1 |
¡2 |
0 |
x6 |
0 |
¡1 |
0 |
x7 |
¡1=3 |
¡1=3 ¡2=3 |
Решаем новую задачу ЛП. Оптимальная симплексная таблица для этой задачи ЛП имеет вид:
35
|
|
x6 |
x7 |
f |
¡7=2 |
1=2 |
1=2 |
x1 |
2 |
¡1 |
0 |
x2 |
3=2 |
1=2 ¡1=2 |
|
x3 |
7=2 |
3=2 ¡1=2 |
|
x4 |
1=2 |
1=2 |
3=2 |
x5 |
1 |
¡2 |
0 |
x6 |
0 |
¡1 |
0 |
x7 |
0 |
0 |
¡1 |
Оптимальное решение задачи ЛП x¤3 = (2; 3=2; 7=2; 1=2; 1; 0; 0) не является целочисленным. Добавляем третье отсечение к ограничениям задачи. Построим отсечение, например, по переменной x2. Åé
соответствует уравнение:
12x6 ¡ 12x7 + x2 = 32.
Получаем отсечение Гомори:
¡12x6 ¡ 12x7 · ¡12.
Итерация 4
Вводим дополнительную переменную x8 и добавляем отсечение к симплексной таблице. Получаем следующую таблицу:
|
|
x6 |
x7 |
f |
¡7=2 |
1=2 |
1=2 |
x1 |
2 |
¡1 |
0 |
x2 |
3=2 |
1=2 ¡1=2 |
|
x3 |
7=2 |
3=2 ¡1=2 |
|
x4 |
1=2 |
1=2 |
3=2 |
x5 |
1 |
¡2 |
0 |
x6 |
0 |
¡1 |
0 |
x7 |
0 |
0 |
¡1 |
x8 |
¡1=2 |
¡1=2 ¡1=2 |
Решаем задачу ЛП. Оптимальная симплексная таблица этой задачи имеет вид:
36
|
|
x8 |
x7 |
f |
¡4 |
1 |
0 |
x1 |
3 |
¡2 |
1 |
x2 |
1 |
1 |
¡1 |
x3 |
2 |
5 |
¡3 |
x4 |
0 |
1 |
1 |
x5 |
3 |
¡4 |
2 |
x6 |
1 |
¡2 |
1 |
x7 |
0 |
0 |
¡1 |
x8 |
0 |
¡1 |
0 |
Оптимальное решение задачи ЛП x¤4 = (3; 1; 2; 0; 3; 1; 0; 0) является целочисленным. Следовательно, оно также является и оптимальным решением задачи ЦЛП. Решением исходной задачи ЦЛП будет z¤ = (3; 1; 2). Значение целевой функции на этом решении равно f¤ = 4.
Заметим, что в процессе решения задачи ЦЛП можно отбрасывать некоторые отсечения. Эта процедура уменьшает вычисления и не изменяет оптимального решения задачи.
4.2.Задания для самостоятельной работы
1.Решить задачи ЦЛП, используя отсечения Гомори:
à)
f(x) = 3x1 + 2x2 ! max x1 + 7x2 · 15;
x1 ¡ 2x2 · 4; 3x1 ¡ x2 ¸ ¡5; x1; x2 ¸ 0;
x1; x2 2 Z:
á)
f(x) = 4x1 ¡ x2 + x3 ! max x1 + 5x2 + x3 · 15;
2x1 ¡ x2 ¡ x3 ¸ ¡4; x1; x2; x3 ¸ 0;
x1; x2; x3 2 Z:
37
â)
ã)
ä)
f(x) = x1 + x2 + x3 ! max
3x1 + 7x2 + 2x3 · 20;
¡x1 + 6x2 ¡ x3 ¸ ¡5; x1; x2; x3 ¸ 0;
x1; x2; x3 2 Z:
f(x) = 3x1 + x2 + 8x3 ! max x1 + 4x2 + 5x3 · 15;
2x1 + x2 + 7x3 · 20; x1 + 2x2 + x3 · 10; x1; x2; x3 ¸ 0;
x1; x2; x3 2 Z:
f(x) = 4x1 + 7x2 ! max
2x1 + 3x2 + 5x3 · 25; 4x1 ¡ 8x2 ¡ 3x3 ¸ ¡1; x1; x2; x3 ¸ 0;
x1; x2; x3 2 Z:
38
5. СЕТЕВОЕ ПЛАНИРОВАНИЕ И УПРАВЛЕНИЕ
Реализация многих проектов в различных сферах связано с осуществлением ряда работ (операций, действий), одни из которых могут выполняться одновременно, а другие только в определенной последовательности. Методы сетевого планирования позволяют наглядно представлять ход выполнения проектов, а также определять основные временные параметры.
5.1. Расчет временных параметров сетевого графика
Основными временными параметрами сетей являются ранние и поздние сроки наступления событий. Зная их, можно вычислить остальные параметры сетевого графика: сроки начала и окончания работ и резервы времени событий и работ, а также определить критический путь.
Пример 5.1. Рассчитать сетевой график. Определить критический путь.
|
|
|
|
|
|
©*¾»2 |
|
- |
¾» |
|
|
|
|||||||
|
|
|
|
5 |
©© |
3 |
|
|
|
|
|
5 |
H |
|
|
|
|
||
|
|
|
|
|
© |
|
½¼ ½¼ Hj |
||||||||||||
|
|
|
©©© |
|
|
|
|
|
|
³³³ |
|
9 |
|
HH |
|
|
|||
¾» |
8 |
-¾» |
|
|
|
|
-¾» |
||||||||||||
|
© |
|
|
|
|
³ |
³ |
|
|
|
|
|
|
|
H |
||||
1 |
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
»: 6 |
|
P |
P |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
» |
½¼ |
|||
½¼PPPPPP½¼AAUA 6 |
» |
»»»»»» |
|
|
|||||||||||||||
|
|
|
|
|
|
3 |
|
PPPq¾»4 |
7 |
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
» |
|
|
|
|
|
|
|
|
½¼
Расчет сетевого графика начнем с определения ранних сроков наступления событий, которые вычисляются по формуле:
|
|
tr(j) = maxi ftr(i) + tijg: |
Ранний |
ñðîê |
наступления первого (исходного) события равен нулю: |
tr(1) = |
0: |
Далее вычисляем ранние сроки тех событий, которым |
предшествует только первое событие. Это события с номерами 2 и 3.
39
tr(2) = tr(1) + t12 = 0 + 8 = 8; tr(3) = tr(1) + t13 = 0 + 5 = 5:
Теперь определяем ранние сроки для событий, которым предшествуют другие события, кроме событий с номерами 1, 2 Это события с номерами 4 и 5:
tr(4) = maxftr(1) + t14; tr(2) + t24g = maxf0 + 3; 8 + 6g = = maxf3; 14g = 14;
tr(5) = maxftr(2) + t25; tr(3) + t35g = maxf8 + 1; 5 + 2g = = maxf9; 7g = 9:
И, наконец, определяем ранний срок наступления шестого события:
tr(6) = maxftr(2) + t26; tr(4) + t46; tr(5) + t56g =
= maxf8 + 9; 14 + 7; 9 + 6g = maxf17; 21; 15g = 21:
Далее определим поздние сроки наступления событий по формуле:
íå è 3.
tp(j) = minftp(i) ¡ tjig:
i
Вычисление поздних сроков наступления событий начинается с завершающего события. Поздний срок завершающего события совпадает с его ранним сроком, т.е. tp(6) = tr(6) = 21. Теперь определим поздние
сроки тех событий, за которыми следует только шестое событие. Это события с номерами 4 и 5.
tp(5) = tp(6) ¡ t56 = 21 ¡ 6 = 15; tp(4) = tp(6) ¡ t46 = 21 ¡ 7 = 14:
Далее определяем поздние сроки событий, за которыми не следуют другие события, кроме событий с номерами 4, 5, 6. Это события 2, 3.
tp(3) = tp(5) ¡ t35 = 15 ¡ 2 = 13;
tr(2) = minftp(6) ¡ t26; tp(5) ¡ t25; tp(4) ¡ t24g =
= minf21 ¡ 9; 15 ¡ 1; 14 ¡ 6g = minf12; 14; 8g = 8:
Поздний срок наступления исходного события равен нулю: tp(1) = 0. Определим также резервы времени событий по формуле:
R(j) = tp(j) ¡ tr(j).
Получим
R(1) = tp(1) ¡ tr(1) = 0 ¡ 0 = 0, R(2) = tp(2) ¡ tr(2) = 8 ¡ 8 = 0, R(3) = tp(3) ¡ tr(3) = 13 ¡ 5 = 8, R(4) = tp(4) ¡ tr(4) = 14 ¡ 14 = 0,
40