 
        
        книги / Математические основы теории систем. Методы оптимизации
.pdf 
3.Находится область допустимых решений (область, где выполняются все ограничения).
4.Строится график целевой функции при каком-либо значении правой части:
Q = −2x1 − 4x2 = 0, x2 = − x1 . 2
5.График целевой функции перемещается параллельно его начальному положению в сторону уменьшения целевой функции до касания с границей области допустимых решений.
Отрезок прямой АВ является решением задачи линейного программирования.
6.В ответе записываются функция, граничные точки отрезка
изначение целевой функции на этом отрезке:
| x1 | = | 4; | 32 | 
 | , | x2 | = | 2 | ;4 | , Qmin | = −2 | 32 | − 4 | 2 | = −24. | 
| 
 | 3 | 
 | 
 | ||||||||||||
| 
 | 
 | 3 | 
 | 
 | 
 | 
 | 
 | 
 | 3 | 3 | 
 | ||||
Способ 2
Пункты 1 – 3 выполняются аналогично описанным в способе 1. 4. Подсчитываются значения целевой функции во всех вершинах
допустимого многогранника:
| O [0;0], | 
 | Q = 0; | ||||
| C [0;4], | 
 | Q = −10; | ||||
| A [4;4], | 
 | Q = −24; | ||||
| B | 32 | ; | 2 | 
 | , | Q = −24; | 
| 
 | 
 | |||||
| 3 3 | 
 | 
 | ||||
| D [10;0], | 
 | Q = −20. | ||||
| Qmin = −24 | 
 | – в двух точках, следовательно, отрезок AB, соеди- | ||||
няющий эти точки, является решением задачи.
21
2.4. Симплекс-метод решения задач линейного программирования
Симплекс-метод является универсальным методом решения ЗЛП [2]. Рассмотрим основные понятия симплекс-метода.
2.4.1. Канонический вид ЗЛП
Рассмотрим пример:
Q = 10 − x1 − x2 → min,
| 3x1 + 2x2 + x3 = 10, | ||
| 4x1 + 5x2 + x4 = 20, | ||
| x1 | 
 | (2.4) | 
| + 7x2 | + x5 = 45, | |
| 1 | 5 | ≥ 0. | 
| x ,..., x | ||
Канонический вид задачи должен удовлетворять следующим условиям:
1.Количество переменных (n) не меньше количества ограниче-
ний (m): n ≥ m;
2.Ограничения имеют вид равенств.
3.Среди n переменных имеются m переменных, которые удовлетворяют условию: коэффициент при этой переменной в одном ограничении равен единице, в остальных – нулю. Эти переменные на-
зывают базисными (x3, x4, x5 – базисные переменные), остальные (n – m) переменных называют свободными.
4.Правые части ограничений неотрицательны.
5. Целевая функция выражена через свободные переменные и минимизируется.
Каждому каноническому виду соответствует вершина допустимого многогранника.
2.4.2. Симплекс-таблица, соответствующая каноническому виду
Каждому каноническому виду поставлена в соответствие сим- плекс-таблица. Левый столбец таблицы – номера базисных переменных; верхняя строка таблицы – номера свободных переменных; пра-
22
 
вый столбец – правые части ограничений; нижняя строка (кроме крайнего правого элемента) – коэффициенты целевой функции; элемент, стоящий справа в нижней строке, – значение (–Q0), где Q0 – свободный член целевой функции; внутреннее пространство таблицы – коэффициенты при свободных переменных (рис. 2.3):
Рис. 2.3. Симплекс-таблица для примера (2.4)
2.4.3. Нахождение координат вершины допустимого многогранника по каноническому виду (симплекс-таблице)
Задача линейного программирования может иметь столько канонических видов, сколько вершин у допустимого многогранника.
Для определения координат вершины допустимого многогранника свободные переменные приравниваются нулю, базисные переменные – правым частям ограничений. Целевая функция в данной вершине равна (–Q0).
Для вышеприведенной симплекс-таблицы
| x1 = x2 = 0 , x3 = 10 , x4 = 20 , x5 | = 45 , Q = 10. | |
| Пример | 
 | 
 | 
| Q = x1 + x2 → max, | 
 | |
| x1 | ≤ 10, | 
 | 
| x1 | + 2x2 ≤ 20, | (2.5) | 
| x1, x2 ≥ 0. | 
 | |
Для приведения задачи к каноническому виду добавим в первое ограничение переменную x3, во второе ограничение – переменную x4, целевую функцию помножим на –1:
23
| x1 | + x3 = 10, | 
 | 
 | 
| x1 | + 2x2 + x4 | = 20, | (2.6) | 
| G = − x1 − x2 | → min, | 
 | |
где х3, x4 – базисные переменные, х1, x2 – свободные переменные. Этому каноническому виду соответствует вершина:
x1 = 0 , x2 = 0 , x3 = 10 , x4 = 20 , G = Q = 0 .
Составим таблицу коэффициентов при переменных в ограничениях:
| x1 | x2 | x3 | x4 | b | 
| 1 | 0 | 1 | 0 | 10 | 
| 1 | 2 | 0 | 1 | 20 | 
| 
 | 
 | 
 | 
 | 
 | 
Поделим коэффициенты второй строки таблицы на 2:
| x1 | x2 | x3 | x4 | b | 
| 1 | 0 | 1 | 0 | 10 | 
| 
 | 
 | 
 | 
 | 
 | 
| 0,5 | 1 | 0 | 0,5 | 10 | 
| 
 | 
 | 
 | 
 | 
 | 
Как видим, для второй таблицы базисными являются переменные x2 , x3, а ограничения примут вид:
x1 + {x}3 = 10,
0,5x1 + x2 + 0,5x4 = 10.
Поскольку переменная x2 стала базисной, ее необходимо исключить из целевой функции:
G = − x1 − x2 = − x1 − (10 − 0,5x1 − 0,5x4 ) = −10 − 0,5x1 + 0,5{x}4 .
Соответствующая вершина имеет координаты:
x1 = 0 , х2 = 10 , x3 = 10 , x4 = 0 , G = −10 (Q = 10) .
2.4.4. Алгоритм решения ЗЛП с помощью симплекс-метода
Сущность симплекс-метода – это направленный перебор вершин допустимого многогранника и нахождение той вершины, где целевая функция минимальна.
24
Рассмотрим три алгоритма решения ЗЛП симплекс-методом. 1. ЗЛП приводится к каноническому виду.
Пусть требуется решить следующую задачу линейного программирования:
Q = Q0 + p3 x3 + p4 x4 → min ,
x1 + a13 x3 + a14 x4 = b1,
+ + =
x2 a23 x3 a24 x4 b2 ,
≥x1, x2 ,..., xn 0.
Данная задача уже приведена к каноническому виду (приведение ЗЛП к каноническому виду рассмотрено ниже). Составляется сим- плекс-таблица, соответствующая каноническому виду:
| 
 | 3 | 4 | 
 | 
| 1 | a13 | a14 | b1 | 
| 2 | a23 | a24 | b2 | 
| 
 | р3 | р4 | –Q0 | 
2.Находятся координаты вершины, соответствующей каноническому виду.
3.Анализируется целевая функция в вершине, т.е. выясняется, оптимальна ЦФ в данной вершине или нет:
Q = Q0 + p3 x3 + p4 x4 (например, Q = 10 − 4x3 + 5x4 ).
Если среди коэффициентов целевой функции имеется хотя бы один отрицательный, то целевая функция в этой вершине неоптимальна. Если все коэффициенты ЦФ неотрицательны, но имеется хотя бы один нулевой, то решение оптимально, но не единственно. Если все коэффициенты ЦФ положительны, то решение оптимально
иединственно.
4.Переход к другой вершине в случае неоптимальности. Для этого одна переменная из подмножества свободных меняется с одной переменной из подмножества базисных.
25
В качестве свободной переменной, переводимой в базисную, выбирается та, которая в наибольшей степени уменьшает целевую функцию (которая имеет максимальный по модулю отрицательный коэффициент целевой функции).
Столбец симплекс-таблицы, в котором находится свободная переменная, переводимая в базисную, называется разрешающим.
Пусть в рассматриваемой задаче р3 – максимальный по модулю отрицательный коэффициент целевой функции, тогда столбец а13, а23 – разрешающий, т.е. в новой симплекс-таблице x3 будет базисной переменной.
Для выбора базисной переменной, переводимой в свободную, находят отношения правых частей ограничений к положительным коэффициентам разрешающего столбца и выбирают минимальное отношение.
Строка симплекс-таблицы, в которой находится минимальное отношение, называется разрешающей. В этой строке расположена базисная переменная, переводимая в свободную.
Пусть
| b1 | > | b2 | , причем a13 > 0 , a23 > 0 , | 
| a13 | 
 | ||
| 
 | a23 | ||
тогда строка (2, а23, а24, b2) – разрешающая.
Элемент, стоящий в разрешающей строке и разрешающем столбце, называется разрешающим (а23 – разрешающий элемент).
5.Выбранные свободные и базисные переменные (находящиеся
вразрешающих строке и столбце) меняются местами в симплекстаблице.
6.Пересчет коэффициентов в симплекс-таблице.
Поделим коэффициенты второго ограничения (разрешающая строка симплекс-таблицы) на разрешающий элемент:
| x1 | 
 | x2 | 
 | x3 | 
 | x4 | 
 | b | 
 | 
 | ||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||
| 1 | 
 | 0 | 
 | 
 | a13 | 
 | a14 | 
 | b1 | 
 | (I) | |||
| 
 | 
 | 1 | 
 | 
 | a23 | = 1 | 
 | a24 | 
 | 
 | b2 | 
 | ||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | (II) | ||||||
| 0 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||||||
| a23 | ||||||||||||||
| 
 | 
 | 
 | 
 | 
 | 
 | |||||||||
| 
 | 
 | 
 | a | 
 | a | 
 | a | 
 | 
 | |||||
| 
 | 
 | 
 | 
 | 23 | 
 | 
 | 23 | 
 | 23 | 
 | 
 | |||
26
Пересчитаем элементы первой строки симплекс-таблицы следующим образом: из коэффициентов первого ограничения вычтем соответствующие вновь полученные коэффициенты второго ограничения, домноженные на а13:
| x1 | 
 | 
 | x2 | 
 | x3 | 
 | 
 | 
 | x4 | 
 | 
 | 
 | 
 | b | 
 | 
 | ||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||
| 1 | − | a13 | 
 | 0 | a14 | − | 
 | a13a24 | 
 | b1 | − | a13b2 | 
 | (I– a13 II) | ||||||
| a23 | 
 | 
 | a23 | 
 | a23 | 
 | ||||||||||||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||||||||
| 0 | 
 | 
 | 1 | 
 | 
 | 1 | 
 | 
 | a24 | 
 | 
 | 
 | 
 | b2 | 
 | 
 | (II) | |||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | a23 | 
 | 
 | 
 | a23 | 
 | ||||||||
| 
 | a | 
 | 
 | 
 | 
 | 
 | ||||||||||||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||||||||||
| 
 | 
 | 
 | 23 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
Пересчитаем целевую функцию (исключим из нее x3):
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | b | 
 | 
 | 
 | 
 | x | 
 | x a | 24 | 
 | 
 | |||||
| 
 | Q = Q0 + p3 x3 + p4 x4 = Q0 + p4 x4 | + p3 | 
 | 2 | 
 | 
 | − | 2 | − | 4 | 
 | 
 | = | |||||||||||||||||||||
| 
 | 
 | 
 | 
 | 
 | 
 | a23 | 
 | |||||||||||||||||||||||||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | a23 | 
 | 
 | 
 | a23 | 
 | 
 | 
 | 
 | ||||||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | b | 
 | p | 
 | 
 | 
 | 
 | 
 | 
 | a | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||||||
| 
 | 
 | 
 | 
 | 
 | = Q0 + p3 | 2 | − | 3 | x2 + | p4 | − p3 | 24 | 
 | x4 . | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||||||||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||||||||||||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | a23 | a23 | 
 | 
 | 
 | 
 | 
 | 
 | a23 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||||||||||
| Составим новую симплекс-таблицу: | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||||||||||||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 4 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||
| 
 | 
 | 2 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||
| 1 | 
 | − | a13 | 
 | 
 | a14 − a13 | a24 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | b1 − a13 | b2 | 
 | |||||||||||||||||
| 
 | 
 | a | 23 | 
 | 
 | 
 | a | 
 | 
 | 
 | 
 | 
 | 
 | 
 | a | 23 | 
 | |||||||||||||||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 23 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||||
| 3 | 
 | 
 | 1 | 
 | 
 | 
 | 
 | 
 | a24 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | b2 | 
 | 
 | 
 | 
 | 
 | 
 | |||
| 
 | 
 | a23 | 
 | 
 | 
 | 
 | 
 | a23 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | a23 | 
 | 
 | 
 | 
 | 
 | 
 | |||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||||||
| 
 | 
 | − | p3 | 
 | 
 | 
 | p4 − p3 | a24 | 
 | 
 | 
 | 
 | 
 | −Q0 − p3 | 
 | b2 | 
 | |||||||||||||||||
| 
 | 
 | a | 23 | 
 | 
 | 
 | 
 | a | 23 | 
 | 
 | 
 | 
 | 
 | 
 | a | 23 | 
 | 
 | |||||||||||||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
Введем следующие обозначения:
аi j – разрешающий элемент, стоящий в старой симплекстаблице;
âi j – элемент, стоящий на том же месте в новой симплекстаблице (пересчитанный разрешающий элемент);
27
аi j – разрешающая строка, j = 1…n; аij – разрешающий столбец, i = 1…m.
Тогда формулы для пересчета будут иметь следующий вид. Пересчитанный разрешающий элемент равен единице, деленной
на разрешающий элемент старой таблицы:
âi j = 1/ аi j .
Элементы новой разрешающей строки находят как произведение пересчитанного разрешающего элемента и соответствующих элементов старой разрешающей строки:
âi j = âi j аi j , j = 1…n.
Новый разрешающий столбец получают путем умножения элементов старого разрешающего столбца на пересчитанный разрешающий элемент, взятый с обратным знаком:
| âij = – âi j аij , i = 1…m. | (2.7) | 
Остальные столбцы рассчитываются по формуле
âij = аij – âi j аij , i = 1…m , j = 1…n.
Для нахождения элементов нового столбца из старого столбца вычитают произведение элемента, уже стоящего в новом столбце, и старого разрешающего столбца.
7. Записывается решение ЗЛП в случае неотрицательности коэффициентов нижней строки симплекс-таблицы.
Пример 1
| Q = 8x1 | + 12x2 → max , | 
| x1 + 2x2 ≤ 220, | |
| 2x1 | + x2 ≤ 260, | 
| 
 | (2.8) | 
| 4x1 | + 5x2 ≤ 640, | 
| x , x ≥ 0. | |
| 1 | 2 | 
1. Приведем задачу к каноническому виду путем введения искусственных переменных:
28
 
| 
 | 
 | 
 | x1 + 2x2 + x3 = 220, | 
 | ||||
| 
 | 
 | 
 | 2x1 + x2 + x4 = 260, | (2.9) | ||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| 
 | 
 | 
 | 4x1 + 5x2 + x5 = 640, | |||||
| 
 | 
 | 
 | G = −8x1 − 12x2 → min. | |||||
| 2. Составляем симплекс-таблицу: | 
 | |||||||
| 
 | 
 | 1 | 2 | 
 | 
 | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | разрешающая строка | 
| 3 | 1 | 2 | 
 | 220 | 
 | 
 | ||
| 
 | 
 | 
 | ||||||
| 4 | 2 | 1 | 
 | 260 | 
 | 
 | 
 | |
| 5 | 4 | 5 | 
 | 640 | 
 | 
 | 
 | |
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| 
 | 
 | – 8 | –12 | 
 | 0 | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
 | 
 | разрешающий столбец | |||
Поскольку имеются отрицательные коэффициенты целевой функции, то вершина, которой соответствует симплекс-таблица, неоптимальна. Максимальный по модулю отрицательный коэффициент ЦФ – (–12), следовательно, второй столбец является разрешающим.
Для определения разрешающей стройки находим отношения правых частей ограничений к положительным коэффициентам разрешающего столбца и выбираем минимальное отношение:
220/2 = 110, 260/1 = 260,
640/5 = 128.
3. Составляем новую симплекс-таблицу: разрешающий элемент = 2; новый разрешающий элемент: 1:2 = 0,5;
новая разрешающая строка: 1 0,5 = 0,5; 220 0,5 = 110;
новый разрешающий столбец: 1 (–0,5) = –0,5; 5 (–0,5)= –2,5;
–12 (–0,5) = 6.
Элементы других столбцов:
| 2 | 
 | 1 | 
 | 1,5 | 
 | 260 | 
 | 1 | 
 | 150 | 
| 4 | –0,5 | 5 | = | 1,5 | 
 | 640 | –110 | 5 | = | 90 | 
| –8 | 
 | –12 | 
 | –2 | 
 | 0 | 
 | –12 | 
 | 1320 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
29
 
Новая симплекс-таблица:
| 
 | 1 | 3 | 
 | 
 | 
| 2 | 0,5 | 0,5 | 110 | 
 | 
| 4 | 1,5 | –0,5 | 150 | 
 | 
| 
 | 
 | 
 | 
 | ––– разрешающая строка | 
| 5 | 1,5 | –2,5 | 90 | |
| 
 | –2 | 6 | 1320 | 
 | 
разрешающий столбец
Как видим, полученная вершина неоптимальна, и требуется перейти к следующей вершине.
4. Составляем следующую симплекс-таблицу:
| 
 | 5 | 3 | 
 | 
| 2 | –1/3 | 4/3 | 80 | 
| 4 | –1 | 2 | 60 | 
| 1 | 2/3 | –5/3 | 60 | 
| 
 | 4/3 | 8/3 | 1440 | 
| 
 | 
 | 
 | 
 | 
Все коэффициенты целевой функции положительны, следовательно, найдено оптимальное и единственное решение задачи.
Ответ. координаты вершины: x1 = 60, x2 = 80, x3 = 0, x4 = 60, x5 = 0,
Gmin = –1440, Qmax = 1440.
Пример 2
Q = − x1 + x2 → min ,
| 2x1 − 2x2 ≤ 4, | ||
| − x1 + 2{x}2 ≥ −2, | ||
| x | + {x} | ≤ 5, | 
| 1 | 
 | 2 | 
| 
 | , x2 ≥ 0. | |
| x1 | ||
Решение 1. Задача приводится к каноническому виду путем введения ис-
кусственных переменных:
30
