Теория системного анализа и принятия решений. Курс лекций
.pdf
Целевая функция – максимизировать доход:
z = 5x1 + 4x2 → max.
Ограничения на расход сырья 1:
6x1 + 4x2 ≤ 24 .
Ограничения на расход сырья 2:
x1 + 2x2 ≤ 6 .
Дополнительные условия:
x2 − x1 ≤ 1 , x2 ≤ 2 .
Условия неотрицательности переменных: x1 ≥ 0 ,
x2 ≥ 0 .
Графическая интерпретация данной задачи представлена на ри- сунке 2.1.
Рисунок 2.1 – Графическая интерпретация рассматриваемой задачи линейного программирования
31
Любое решение (точка) в пространстве решений ABCDEF являет- ся допустимым. Например, точка (3;1) – допустимое решение, так как не противоречит ни одному из ограничений.
Задача оптимизации – найти наилучшее допустимое решение.
2.1.2 Графическое решение
Графический поиск решения задачи линейного программирования представлен на рисунке 2.2.
Рисунок 2.2 – Графический метод решения задачи линейного программирования
2.1.3 Симплекс-метод
При решении задачи ЛП графическим методом заметно, что ее оптимальное решение всегда находится в угловой точке пространст- ва решений. Поэтому логично искать оптимальное решение задачи исключительно среди угловых точек пространства решений. Данная идея легла в основу симплекс-метода, предложенного немецким ма- тематиком Данцигом.
Симплекс-метод – это алгоритмический универсальный метод решения задач ЛП. Данный алгоритм – итеративный, и предполагает последовательное рассмотрение угловых точек. Угловые точки обра- зуются пересечением линий, соответствующих ограничениям. Эти линии записываются в виде равенств.
32
Поэтому первый шаг решения задачи ЛП симплекс-методом со- стоит в преобразовании ограничений из неравенств в уравнения (что позволит отыскивать точки их пересечения).
Второй шаг решения задачи состоит в обеспечении неотрица- тельности всех переменных (если это не так по условию).
Первые два шага называют еще приведением к стандартной форме задачи ЛП.
Стандартная форма – форма записи задачи ЛП, при которой все ограничения представлены в виде равенств, а все переменные ≥ 0. Приведение к стандартной форме осуществляется за счет введения фиктивных переменных.
Например:
6x1 + 4x2 ≤ 24 6x1 + 4x2 + s1 = 24 ,
где s1 ≥ 0 .
Либо для случая «≥»:
6x1 + 4x2 ≥ 24 6x1 + 4x2 − s1 = 24 ,
где s1 ≥ 0 .
Если для некоторого xk не задано условие «≥0», то данную пере- менную можно заменить разностью двух новых неотрицательных переменных:
xk = xk +1 − xk +2 ,
где xk +1 ≥ 0 и xk +2 ≥ 0 .
На рисунке 2.3 представлена геометрическая интерпретация идеи Данцига. Имеется несколько вариантов перебора угловых точек. На каждом шаге выбирается направление, максимально приближающее к цели, т.е. дающее максимальное приращение z.
х2
E
D
C
F
A
В
х1
Рисунок 2.3 – Графическая интерпретация идеи Данцига
33
2.1.4 Вычислительный алгоритм
Рассмотрим пример (уже приведенный к стандартной форме):
z = 5x1 + 4x2 + 0s1 + 0s2 + 0s3 + 0s4 → max.
Ограничения:
6x1 + 4x2 + 1s1 = 24 ;
1x1 + 2x2 + 1s2 = 6 ;
−1x1 + 1x2 + 1s3 = 1 ;
1x2 + 1s4 = 2 ;
x1 ≥ 0 ; x2 ≥ 0 ; s1 ≥ 0 ; s2 ≥ 0 ; s3 ≥ 0 ; s4 ≥ 0 ,
где s1, s2, s3, s4 – фиктивные переменные, добавленные в неравен- ства для преобразования.
Представим целевую функцию в виде уравнения
z − 5x1 + 4x2 = 0 .
Запишем уравнения в компактной форме в виде таблицы 2.2, которая показывает множества базисных и свободных переменных, а также ре- шение, соответствующее данной (начальной) итерации (х1, х2) = (0, 0). Это соответствует следующим множествам переменных:
-свободные (нулевые) переменные: (х1, х2);
-базисные переменные: (s1, s2, s3, s4).
Таблица 2.2 – Табличная форма записи задачи линейного программирования
|
|
|
|
|
|
|
|
|
|
Базис |
z |
x1 |
x2 |
s1 |
s2 |
s3 |
s4 |
Решение |
Строка |
z |
1 |
–5 |
–4 |
0 |
0 |
0 |
0 |
0 |
z |
s1 |
0 |
6 |
4 |
1 |
0 |
0 |
0 |
24 |
s1 |
s2 |
0 |
1 |
2 |
0 |
1 |
0 |
0 |
6 |
s2 |
s3 |
0 |
–1 |
1 |
0 |
0 |
1 |
0 |
1 |
s3 |
s4 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
2 |
s4 |
|
|
|
|
|
|
|
|
|
|
Далее решается система с базисными переменными. В данном случае решение элементарно: s1 = 24, s2 = 6, s3 = 1, s4 = 2.
34
После этого проводится проверка, могут ли свободные перемен- ные при добавлении в базис улучшить результат. Для этого из z- строки формируется выражение
z = 5x1 + 4x2 .
Очевидно, что x1 дает прирост в 5 единиц, а x2 – в 4. Значит, x1 вносим в базис, эту переменную еще называют ведущей. Но перед ее внесением в базис, из него необходимо удалить одну из старых пе- ременных. Чтобы определить исключаемую переменную, надо вы- числить точки пересечения всех функций ограничений с положи- тельным направлением оси x1. Координаты этих точек пересечения можно вычислить как отношения правых частей равенств (значение в столбце «Решение») к коэффициентам при переменной х1 в этих ра- венствах (таблица 2.3).
Таблица 2.3 – Вычисление точек пересечения функций ограничений с положительной полуосью x1
Базис |
z |
x1 |
x2 |
s1 |
s2 |
s3 |
s4 |
Решение |
Отношение |
z |
1 |
–5 |
–4 |
0 |
0 |
0 |
0 |
0 |
– |
s1 |
0 |
6 |
4 |
1 |
0 |
0 |
0 |
24 |
24/6 = 4 |
s2 |
0 |
1 |
2 |
0 |
1 |
0 |
0 |
6 |
6/1 = 6 |
s3 |
0 |
–1 |
1 |
0 |
0 |
1 |
0 |
1 |
1/–1 = –1 |
s4 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
2 |
2/0 = ∞ |
Только неотрицательные отношения порождают точки пересече- ния на положительной полуоси х1. Отношения (пересечения), соот- ветствующие переменным s3 и s4, исключаются из рассмотрения, по- скольку для них точка пересечения лежит либо на отрицательной полуоси, либо в бесконечности.
Графическая интерпретация отношений как точек пересечения функций ограничений с положительной полуосью x1 представлена на рисунке 2.4.
Минимальное неотрицательное отношение соответствует базис- ной переменной s1, тем самым, определяя эту переменную как ис- ключаемую (т.е. на следующей итерации ее значение будет равно нулю). Значение вводимой переменной x1 в новом решении соответ- ствует точке пересечения, а, следовательно, равно полученному от- ношению, а именно x1 = 4. Значение целевой функции при этом воз- растет до 20 (5 × 4) (таблица 2.4).
35
Рисунок 2.4 – Графическое представление отношений как точек пересечения функций ограничений с положительной полуосью x1
Таблица 2.4 – Замена базисной переменной на первом шаге расчета
|
|
|
|
|
|
|
|
|
|
|
|
|
Базис |
z |
x1 |
x2 |
s1 |
s2 |
s3 |
s4 |
Решение |
Отношение |
|
|
z |
1 |
–5 |
–4 |
0 |
0 |
0 |
0 |
0 |
|
|
|
s1 |
0 |
6 |
4 |
1 |
0 |
0 |
0 |
24 |
24/6 = 4 (min) |
|
|
s2 |
0 |
1 |
2 |
0 |
1 |
0 |
0 |
6 |
6/1 = 6 |
|
|
s3 |
0 |
–1 |
1 |
0 |
0 |
1 |
0 |
1 |
1/–1 = –1 (н.у.) |
|
|
s4 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
2 |
2/0 = ∞ (н.у.) |
|
Примечание – н.у. – условие не выполняется.
В завершение необходимо выполнить преобразования в послед- ней таблице так, чтобы в столбцах «Базис» и «Решение» получить новое решение, соответствующее точке В (таблица 2.5). Вычисление нового базисного решения основывается на методе исключения пе- ременных (методе Гаусса – Жордана, или методе Жордановых ис- ключений).
На втором шаге вновь из z-строки формируется выражение
z = 2 x2 − 5 s1 + 20 . 3 6
36
Таблица 2.5 – Вычисление нового базисного решения на первой итерации
|
|
|
|
|
|
|
|
|
|
Базис |
z |
x1 |
x2 |
s1 |
s2 |
s3 |
s4 |
Решение |
Отношение |
z |
1 |
0 |
–2/3 |
5/6 |
0 |
0 |
0 |
20 |
|
x1 |
0 |
1 |
2/3 |
1/6 |
0 |
0 |
0 |
4 |
4/(2/3) = 6 |
s2 |
0 |
1 |
4/3 |
–1/6 |
1 |
0 |
0 |
2 |
2/(4/3) = 3/2(min) |
s3 |
0 |
–1 |
5/3 |
1/6 |
0 |
1 |
0 |
5 |
5/(5/3) = 3 |
s4 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
2 |
2/1 = 2 |
|
|
|
|
|
|
|
|
|
|
Здесь x2 дает прирост, а s1 – нет. Значит x2 вносим в базис. Далее рас- считываем отношения и производим замену и перерасчет (таблица 2.6).
Таблица 2.6 – Вычисление нового базисного решения на второй итерации
|
|
|
|
|
|
|
|
|
Базис |
z |
x1 |
x2 |
s1 |
s2 |
s3 |
s4 |
Решение |
z |
1 |
0 |
0 |
3/4 |
1/2 |
0 |
0 |
21 |
x1 |
0 |
1 |
0 |
1/4 |
–1/2 |
0 |
0 |
3 |
x2 |
0 |
0 |
1 |
–1/8 |
3/4 |
0 |
0 |
3/2 |
s3 |
0 |
0 |
0 |
3/8 |
–5/4 |
1 |
0 |
5/2 |
s4 |
0 |
0 |
0 |
1/8 |
–3/4 |
0 |
1 |
1/2 |
|
|
|
|
|
|
|
|
|
Вновь из z-строки сформируем выражение
z = − 3 s1 − 1 s2 + 21. 4 2
Свободные переменные прироста не дают, а значит полученное решение – оптимально. Следовательно (из таблицы 2.6): x1 = 3, x2 = = 3/2, z = 21.
Сформулируем обобщенный алгоритм симплекс-метода. Этап 0 Находится начальное допустимое базисное решение.
Этап 1 На основе условия оптимальности определяется вводимая пе- ременная. Если вводимых переменных нет, вычисления заканчиваются.
Этап 2 На основе условия допустимости выбирается исключае- мая переменная.
Этап 3 Методом Гаусса – Жордана вычисляется новое базисное решение. Переход к этапу 1.
2.1.5 Двойственная задача
Запишем задачу ЛП в общем виде:
n |
|
z = ∑cj xj |
→ max, |
j=1 |
X |
|
37
n
∑aij xj ≤ bi , xj ≥ 0, i = 1,m, j = 1,n.
j=1
Вэкономической интерпретации задачи ЛП коэффициент сj характе- ризует доход от единицы продукции, а bi – расход на единицу ресурса.
Запишем обратную задачу ЛП:
m |
|
|
|
|
|
w = ∑bi yi |
→ min, |
||||
i=1 |
Y |
||||
|
|
|
|
|
|
m |
|
|
|
|
|
∑aij yi ≥ cj , yi ≥ 0, |
i = |
1,m |
, j = |
1,n |
. |
i=1 |
|
|
|
|
|
То есть с одной стороны мы максимизируем совокупный доход, а с другой – минимизируем совокупный расход. Решение оптимально, если z = w.
2.2 Нелинейные задачи математического программирования
2.2.1 Экстремумы целевой функции
Поиск оптимального решения предполагает минимизацию или максимизацию некоторой целевой функции.
Математически оптимальное значение – точка минимума или максимума на целевой функции (рисунок 2.5). Для ее отыскания в общем случае (когда целевая функция не строго линейная) использу-
ется аппарат дифференциального исчисления.
Оптимизация заключается в отыскании точек, подозрительных на максимум или минимум, и проверке этих точек на «экстремальность».
Подозрительные точки еще называют стационарными, в них про- изводная целевой функции равна нулю. По форме это могут быть точки максимума, минимума или перегиба.
2.2.2 Необходимое условие существования экстремума
Для некоторой функции многих переменных f (X), где X = (х1, х2…xn), определим все частные производные.
Составим вектор частных производных, называемый градиентом
f (X ) = ( ∂f , ∂f ∂f ) .
∂x1 ∂x2 ∂xn
38
Рисунок 2.5 – Экстремумы функции одной переменной
Тогда точка X0 считается подозрительной на экстремум, если значе- ние градиента в ней равно нулю:
f (X0 ) = 0 . |
|
|||||
Например: |
|
|
|
|
|
|
f (x , x ) = x2 |
+ 2x2 |
− x ; |
||||
1 |
2 |
|
1 |
2 |
2 |
|
f (x1, x2 ) = ( |
∂f |
, |
∂f |
|
) = (2x1, 4x2 − 1); |
|
|
|
|
||||
|
∂x1 |
∂x2 |
|
|||
|
2x1 = 0; |
|
||||
|
4x2 − 1 = 0; |
|
||||
x1 = 0, x2 |
= 1/ 4. |
|||||
2.2.3 Достаточное условие существования экстремума
Для того чтобы стационарная точка Х0 была экстремальной, дос- таточно, чтобы матрица Гессе Н в точке Х0 была:
-положительно определенной (точка минимума);
-отрицательно определенной (точка максимума). Например:
39
|
f (x , x ) = x2 |
+ 2x2 |
− x , |
|
||||||||||
|
|
1 |
2 |
|
1 |
|
|
|
2 |
|
|
2 |
|
|
|
|
|
∂ |
|
f |
|
∂ |
|
f |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
H (x1 |
, x2 ) = |
∂x12 |
∂x1∂x2 |
|
|
2 0 |
||||||||
|
|
2 |
|
|
|
|
2 |
|
|
|
= |
. |
||
|
|
∂ |
f |
|
∂ |
f |
|
|
0 4 |
|||||
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
2 |
|
|
|
||
|
|
|
∂x2∂x1 |
|
|
|
|
|
|
|
||||
|
|
|
|
∂x2 |
|
|
|
|
||||||
Матрица H является положительно определенной, если значения всех угловых миноров определителя |H| положительны.
Матрица H является отрицательно определенной, если значения k-x угловых миноров определителя |H| отличны от нуля и имеют знак
(–1)k, где k = 1,…, n.
Для примера выше:
|
|
|
|
|
|
∂2 f |
|
|
∂2 |
f |
|
|
||||||
H |
|
= |
|
|
∂x12 |
|
∂x1∂x2 |
|
; |
|||||||||
|
|
|
|
|
||||||||||||||
|
|
|
∂2 f |
|
|
∂2 |
f |
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
∂x2∂x1 |
|
|
∂x22 |
|
|
||||||||
|
|
|
H |
|
1 = |
|
2 |
|
= 2; |
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
H |
|
= |
2 |
0 |
= 8. |
|
|
|
|||||||
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
2 |
|
|
|
0 |
4 |
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
Значит, точка (0;1/4) – точка максимума.
2.2.4 Оптимизация с ограничениями в виде равенств
Для некоторой функции многих переменных f (X), где X = (х1, х2…xn), зададим границы поиска ее оптимального значения, в виде системы уравнений
g(X ) = (g1 (X ), g2 (X ),…, gm (X )) = 0
или
g1 (X ) = 0;...
gm (X ) = 0.
40
