Методы оптимизации. Учебное пособие-2
.pdfПример 22. Решить методом потенциалов транспортную задачу, условия которой заданы следующей таблицей:
пункты |
B1 |
B2 |
B3 |
B4 |
запасы |
A1 |
2 |
4 |
5 |
1 |
60 |
A2 |
2 |
3 |
9 |
4 |
70 |
A3 |
3 |
4 |
2 |
5 |
20 |
потребности |
40 |
30 |
30 |
50 |
- |
|
|
|
|
|
|
Решение. Поиск опорного решения.
Выберем клетку транспортной таблицы с минимальной стои-
мостью c14 min cij = 1. Положим x14 = min(a1, b4) = min(60, 50) = 50.
i, j
Исключим из дальнейшего рассмотрения пункт B4 и уменьшим запасы в пункте отправления A1: a'1 = 60 – 50 = 10. Найдем в первой
строке клетку с минимальной стоимостью c11 |
min c1 j |
2. |
|
j |
|
Положим x11 = min(a'1, b1) = min(10, 40) = 10 и исключим из дальнейшего рассмотрения пункт отправления A1. Уменьшим потребность в грузе в пункте назначения B1: b'1 = 40 – 10 = 30.
|
|
|
|
|
Таблица 21.1 |
|
|
|
|
|
|
|
|
пункты |
B1 |
B2 |
B3 |
B4 |
запасы |
|
A1 |
2 |
4 |
5 |
1 |
60 |
|
10 |
|
|
50 |
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
A2 |
2 |
3 |
9 |
4 |
70 |
|
30 |
30 |
10 |
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
A3 |
3 |
4 |
2 |
5 |
20 |
|
|
|
20 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
потребности |
40 |
30 |
30 |
50 |
- |
|
|
|
|
|
|
|
|
Поскольку опорное решение еще не найдено, рассмотрим первый столбец и найдем в нем клетку с минимальной стоимостью
71
min(c21, c31) = min(2, 3) = c21. Положим x21 = min(a2, b'1) = min(70, 30) = 30. Продолжая далее, получим опорное решение (см. таблицу 21.1)
Базисные переменные x11 = 10, x14 = 50, x21 = 30, x22 = 30, x23 = 10, x33 = 20. Суммарная стоимость перевозок равна
F = 2·10 + 1·50 + 2·30 + 3·30 + 9·10 + 2·20 = 350 .
Поиск оптимального решения.
1) Определим потенциалы, положим α1 = 0, тогда
α1 + β1 = с11 = 2 |
β1 = 2; |
α1 + β4 = с14 = 1 |
β4 = 1; |
α2 + β1 = с21 = 2 |
α2 = 0; |
α2 + β2 = с22 = 3 |
β2 = 3; |
α2 + β3 = с23 = 9 |
β3 = 9; |
α3 + β3 = с33 = 2 |
α3 = –7. |
Таблица 21.2
пункты |
B1 |
B2 |
B3 |
B4 |
ai |
αi |
A1 |
2 |
4 |
5 |
1 |
60 |
0 |
|
10 |
|
|
50 |
|
|
|
|
|
|
|
|
|
A2 |
2 |
3 |
9 |
4 |
70 |
0 |
|
30 |
30 |
10 |
|
|
|
|
|
|
|
|
|
|
A3 |
3 |
4 |
2 |
5 |
20 |
-7 |
|
|
|
20 |
|
|
|
|
|
|
|
|
|
|
bj |
40 |
30 |
30 |
50 |
|
|
|
|
|
|
|
|
|
βj |
2 |
3 |
9 |
1 |
|
|
|
|
|
|
|
|
|
2)проверяем план на оптимальность: для свободных клеток
таблицы 21.2 вычисляем разности γij = αi + βj – cij. Поскольку γ13 = 4 > 0, план перевозок не является оптимальным (см. таблицу 21.3).
72
Таблица 21.3
пункты |
B1 |
B2 |
B3 |
B4 |
A1 |
0 |
–1 |
4 |
0 |
A2 |
0 |
0 |
0 |
–3 |
A3 |
–8 |
–8 |
0 |
–11 |
3)для свободной клетки (1, 3) составляем цикл x13, x23, x21, x11, x13, обозначая вершины цикла ”+” и ”–” (см. таблицу 21.4).
|
|
|
|
|
|
Таблица 21.4. |
|
пункты |
B1 |
|
B2 |
B3 |
B4 |
ai |
αi |
A1 |
|
2 |
4 |
5 |
|
1 |
|
|
10 |
– |
|
|
+ |
60 |
0 |
A2 |
|
2 |
3 |
|
9 |
4 |
|
|
30 |
+ |
30 |
10 |
– |
70 |
0 |
A3 |
|
3 |
4 |
|
2 |
5 |
|
|
|
|
|
20 |
|
20 |
-7 |
bj |
40 |
|
30 |
30 |
50 |
|
|
βj |
2 |
|
3 |
|
9 |
1 |
|
Определяем минимальное значение среди ”–” вершин цикла
θ = min(10, 10) = 10.
Уменьшаем переменные в ”–” вершинах на 10 единиц и увеличиваем переменные в ”+” вершинах на 10 единиц и получаем таблицу 21.5. Количество заполненных клеток всегда остается равным m + n – 1.
73
|
|
|
|
|
|
Таблица 21.5 |
||
|
|
|
|
|
|
|
|
|
пункты |
B1 |
B2 |
B3 |
B4 |
ai |
|
αi |
|
A1 |
2 |
4 |
5 |
1 |
60 |
|
0 |
|
|
0 |
|
10 |
50 |
|
|
|
|
A2 |
2 |
3 |
9 |
4 |
70 |
|
0 |
|
|
40 |
30 |
|
|
|
|
|
|
A3 |
3 |
4 |
2 |
5 |
20 |
|
–3 |
|
|
|
|
20 |
|
|
|
|
|
bj |
40 |
30 |
30 |
50 |
|
|
|
|
βj |
2 |
3 |
5 |
1 |
|
|
|
|
Переходим к пункту 2). Полученный план перевозок является оптимальным (см. таблицу 21.6).
Таблица 21.6
пункты |
B1 |
B2 |
B3 |
B4 |
A1 |
0 |
–1 |
0 |
0 |
A2 |
0 |
0 |
–4 |
–3 |
A3 |
–4 |
–4 |
0 |
–7 |
Следовательно, при оптимальном плане перевозок x13 = 10; x14 = 50; x21 = 40; x22 = 30; x13 = 10; x33 = 20; остальные xij = 0. Суммарная стоимость перевозок при оптимальном плане равна
F = 5·10 + 4·50 + 2·40 + 3·30 + 2·20 = 310.
Ответ: x13 = 10; x14 = 50; x21 = 40; x22 = 30; x13 = 10; x33 = 20; min F = 310.
Потенциалы αi, i = 1, 2,…m и βj, j = 1, 2,…n имеют простой экономический смысл. Пусть (–αi) – стоимость единицы груза (цена) в пункте отправления; βj – цена единицы груза в пункте назначения. Если план оптимален, то при перевозке груза из пункта Ai в пункт Bj справедливо равенство αi + βj = сij или
сij =(– αi) + βj ,
т.е. цена груза в пункте назначения равна цене груза в пункте отправления плюс транспортные расходы.
74
3.2. Квадратичное программирование
Важным частным случаем задач нелинейного программирования являются задачи квадратичного программирования. В задачах квадратичного программирования целевая функция является квадратичной функцией, множество допустимых решений задачи задается системой линейных равенств или неравенств.
Рассмотрим в качестве примера задачу максимизации функции двух переменных: максимизировать функцию
F(x1, x2 ) c11x12 2c12x1x2 c22x22 b1x1 b2 x2 max
при ограничениях
a11x1 a12x2 d1
a21x1 a22x2 d2
.......................
am1x1 am2 x2 dm x1 0, x2 0,
или в матричном виде:
F(X) = XTCX + BTX → max,
AX ≤ D,
X ≥ 0,
|
|
a11 |
a12 |
|
|
|
|
|
|
|
|
|
|
b1 |
|
|
c11 |
где |
A |
a21 |
a22 |
|
, |
|||
... |
... |
, |
B |
|
C |
|||
|
|
|
b |
|
|
c |
||
|
|
|
|
|
2 |
|
|
12 |
|
|
|
|
|
|
|
|
|
|
|
am1 |
am2 |
|
|
|
|
|
|
|
|
|
d1 |
|
|
|
|
||
c |
|
, |
D |
d |
2 |
|
, |
x |
|
|
12 |
|
|
|
|
X 1 |
. |
||||
|
|
|
|
|
|
|
|
|
|
|
c22 |
|
|
|
|
|
|
x2 |
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dm |
|
|
|
|||
Матрица C должна удовлетворять следующим условиям:
1)C = CT ;
2)c11 < 0;
75
3) |
c11 |
c12 |
0. |
|
c12 |
c22 |
|
Эти условия означают, что матрица C является симметричной отрицательно определенной матрицей, в силу этого целевая функция, будет являться выпуклой вверх функцией.
Теорема 12 (необходимое и достаточное условие оптимальности)
Для того, чтобы вектор X ≥ 0 являлся оптимальным решением задачи квадратичного программирования необходимо и достаточно, чтобы существовали два m–мерных вектора Λ ≥ 0 и W ≥ 0 и двумерный вектор V ≥ 0 такие, что выполняются следующие четыре условия:
1)2CX – ATΛ + V+ B = 0;
2)– AX – W + D = 0;
3)VT X = 0;
4)WTΛ = 0.
Пример 23. Решить задачу квадратичного программирования
F(x , x |
2 |
) 4x2 |
16x2 |
16x 64x |
2 |
max, |
|
|
||
1 |
1 |
2 |
|
1 |
|
|
|
|
||
при ограничениях |
|
|
|
|
|
|
|
|
||
2x1 + 7x2 ≤ 20 |
|
|
|
|
|
|
|
|
||
x1 ≥ 0, |
x2 ≥ 0. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
16 |
|
|
4 |
0 |
A = (2, 7), |
|
|
|
|
B |
, |
C |
, |
|||
Решение. В данной задаче |
|
|
|
|
|
|
|
|||
|
64 |
|
|
0 |
16 |
|
||||
D = (20). |
|
|
|
|
|
|
|
|
|
|
Матрица C является симметричной C= CT , c11= –4 < 0 и |
|
|||||||||
|
c11 |
c12 |
|
|
|
4 |
0 |
|
64 0. |
|
|
|
|
||||||
|
c21 |
c22 |
|
|
|
0 |
16 |
|
|
76
Сформулированная задача является задачей квадратичного программирования, поэтому для ее решения можно применить применим теорему 12. Сформулируем условия теоремы 1) – 4).
1)–8x1 – 2λ1+ v1 +16 = 0, –32x2 –7λ1 + v2 + 64 = 0;
2)–2x1 – 7x 2 – w1 + 20 = 0;
3)v1x1 = 0,
v2x2 = 0;
4)λ1w1 = 0.
Решая эту систему, получим
x1 = 2, x2 = 2, λ1 = 0, v1 = 0, v2 = 0, w1 = 2. Ответ F(2, 2) = 80.
Замечание. Если оптимальное решение задачи существует, то оно должно быть одним из допустимых базисных решений системы уравнений 1), 2), удовлетворяющих условиям 3), 4). Следовательно, решение системы 1) – 4) может быть сведено к задаче линейного программирования, например, методом введения искусственных переменных .
77
3.3.Динамическое программирование. Уравнение Беллмана
Рассмотрим некоторые задачи динамического программирования.
3.3.1 Задача выбора наименее дорогостоящего пути
Необходимо провести транспортировку груза из пункта A в пункт D. Путь транспортировки может пролегать по различным дорогам, через различные населенные пункты. При этом известно, какие населенные пункты связаны между собой дорогами и какова цена перевозки между двумя связанными соседними пунктами.
|
|
|
|
таблица стоимости перевозок |
||
|
|
|
|
|
|
|
пункты |
A |
B |
C |
|
D |
|
|
|
|
|
|
|
|
A |
0 |
4 |
10 |
|
25 |
|
|
|
|
|
|
|
|
B |
4 |
0 |
4 |
|
10 |
|
|
|
|
|
|
|
|
C |
10 |
4 |
0 |
|
10 |
|
|
|
|
|
|
|
|
D |
25 |
10 |
10 |
|
0 |
|
|
|
|
|
|
|
|
Ставится задача нахождения наиболее дешевого маршрута транспортировки.
3.3.2. Задача распределения ресурсов
Необходимо с максимальной эффективностью распределить имеющиеся 120 миллионов рублей капитальных вложений между четырьмя строительными предприятиями (распределяемые суммы должны быть кратны 20 миллионам рублей). Показатели эффективности fk(x) k-го предприятия от x миллионов руб. капитальных вложений приведены в таблице ниже.
Таблица эффективности капитальных вложений
xj |
0 |
20 |
40 |
60 |
80 |
100 |
120 |
f1(x) |
0 |
20 |
30 |
35 |
40 |
45 |
47 |
f2(x) |
0 |
18 |
20 |
30 |
35 |
40 |
42 |
f3(x) |
0 |
12 |
20 |
45 |
46 |
47 |
47 |
f4(x) |
0 |
10 |
40 |
40 |
41 |
41 |
41 |
78
3.3.3. Задача экономии строительных материалов
Здание имело лестницу, сечение которой приведено на рис.12.
Рис. 12
Ширина лестницы равна 10 м = 100 дм. Высота и ширина ступенек в дм приведены в таблице.
номер ступени |
ширина ступени |
высота ступени |
|
|
|
1 |
3 |
1 |
|
|
|
2 |
4 |
1,5 |
|
|
|
3 |
1 |
0,7 |
|
|
|
4 |
5 |
1 |
|
|
|
5 |
3 |
1,2 |
|
|
|
6 |
4 |
1 |
7 |
4 |
0,8 |
|
|
|
8 |
3 |
1,2 |
|
|
|
9 |
1,8 |
1,1 |
|
|
|
При разработке проекта реконструкции лестницы было выдвинуто требование сократить число ступенек лестницы до четырех путем наращивания их высоты. Какой вид должна иметь лестница, чтобы объем бетона, используемого для наращивания, был бы минимален.
79
Три приведенные выше задачи могут быть решены методом динамического программирования. В его основе лежит принцип оптимальности Беллмана: оптимальное управление в любой момент времени не зависит от предыстории системы и определяется управлением и состоянием системы в этот момент.
При применении указанного метода нахождение оптимального решения разбивается на конечное число последовательных шагов, описываемых рекуррентным соотношением – уравнением Беллмана; на каждом шаге решается более простая задача оптимизации. Последовательно решив все задачи оптимизации, начиная с первого шага, и, тем самым, найдя оптимальное решение (оптимальное состояние системы) на последнем шаге, находим соответствующее оптимальное состояние системы на предпоследнем шаге, т.е. находим состояние системы на предпоследнем шаге, при котором может быть достигнуто оптимальное состояние системы на последнем шаге. Последовательно проводя эту процедуру, находим оптимальные состояния системы на каждом шаге.
Рассмотрим метод динамического программирования на примере решения задачи о реконструкции лестницы. Всюду в дальнейшем будем вычислять и минимизировать площадь сечения наращиваемой лестницы, поскольку ее ширина постоянна.
На первом шаге рассмотрим случай, когда лестницы из разного числа ступенек заменяются одной ступенькой (рассматриваются лестницы из нескольких первых ступенек лестницы). Обозначим площадь наращиваемого сечения при замене n первых ступеней одной ступенькой f1(n), 1 ≤ n ≤ 9.
Если бы первоначальная лестница состояла из одной ступеньки, то и наращивать было бы нечего, следовательно, площадь сечения наращиваемой части равна нулю. Запишем это так:
f1(1) = 0.
80
