Лабораторная работа.
Тема Задачи линейного программирования
Цель:
преобретение практических навыков применения методов линейного программирования
Задача линейного программирования (ЛП) состоит в определении максимального (минимального) значения целевой функции:
(1.1)
При условиях :
(1.2)
(1.3)
где aij
, bi
, cj
– заданные постоянные числа. Функция F(1) называется целевой функцией, выражения (2), (3) – ограничениями. Значения xj
, удовлетворяющие ограничениям (2), (3) образуют область допустимых решений (ОДР) и называются допустимыми. Допустимое решение xj
*
, при которых целевая функция (1) принимает экстремальное значение, называется оптимальным. В зависимости от структуры выражений (1), (2), (3) для решения задачи ЛП могут применяться различные методы, которые рассмотрены ниже.
1.1.
Графический метод решения задач ЛП.
Постановка задачи.
Метод применяется в том случае, если количество переменных задачи ЛП (1), (2), (3) равно двум, т.е.:
(1.4)
(1.5)
(1.6)
Методика решения
.
Процесс решения задачи ЛП графическим методом включает следующие этапы:
1) На плоскости Х1
ОХ2
строятся граничные прямые, уравнения которых получают путем замены неравенств (5), (6) на строгие равенства
2) Находятся полуплоскости, определяемые каждым из ограничений (5), (6).
3) Определяется область допустимых решений ОДР задачи на плоскости Х1
ОХ2
. Если система ограничений (5), (6) несовместна, то задача ЛП не имеет решения.
4) Строится вектор
5) Строится прямая с1
х1
+с2
х2
= 0, перпендикулярная вектору и передвигается в направлении вектора (при поиске максимума целевой функции); в результате определяется точка А, принадлежащая ОДР, в которой целевая функция F принимает максимальное значение. Если ОДР не ограничена сверху, то задача ЛП не имеет решений.
6) Определяют координаты точки А – (х1
*
,х2
*
) и максимальное значение функции F*
=с1
х1
*
+ с2
х2
*
.
Пример.
Решить задачу ЛП:
1. На плоскости Х1
ОХ2
строим уравнения прямых: х1
–х2
= 3; х1
+ 2х2
= 4; х2
= 4; х1
=0; х2
=0
2. Для каждого из ограничений определяем допустимую полуплоскость и отмечаем ее стрелками. Например, условие при х1
=0; х2
=0 выполняется. Значит точка (0,0) лежит в допустимой полуплоскости.
3. Определяем допустимую область для всех ограничений задачи (ОДР). Это многоугольник ABCD.
4. Строим вектор .
5. Строим прямую F=2x1
+x2
= 0. Передвигая ее в направлении вектора , определяем крайнюю точку А, принадлежащую ОДР – это т. А. В т. А функция имеет максимальное значение. Минимальное значение целевая функция принимает в т.С.
6. Координаты т. А находятся путем решения системы
Аналогично определяются координаты точки минимума С:
Индивидуальные задания. Решить графическим методом.
Вариант 1.
F = x1
+ x2
max
-3x1
+ 2x2
≤ 1
x1
+ 2x2
≤ 14
2x1
+ x2
≤ 13
3x1
– x2
≤ 12
x1
, x2
≥ 0
Вариант 2.
F = 3x1
+ x2
min
3x1
+ 5x2
≥ 15
5x1
+ 3x2
≥ 15
x1
≥ 1
x2
≥ 1
x1
, x2
≥ 0
Вариант 3.
F = 3x1
+ 3x2
min
x1
+ 4x2
≥ 4
4x1
+ x2
≥ 4
x1
, x2
≥ 0
Вариант 4.
F = 6x1
– 5x2
max
2x1
+ 5x2
≤ 10
5x1
+ 2x2
≤ 10
x1
, x2
≥ 0
Вариант 5.
F = 8x1
+ 2x2
max
x1
– 4x2
≤ 4
–4x1
+ x2
≤ 4
x1
+ x2
≤ 6
x
1
,
x
2
≥ 0
Вариант 6.
F = 2x1
+ 3x2
min
x1
+ 5x2
≥ 10
3x1
+ 2x2
≥ 12
2x1
+ 4x2
≥ 10
x1
≥ 1
x1
, x2
≥ 0
Вариант 7.
F = 5x1
+ 4x2
+ 6x3
max
x1
+ x2
+ x3
≤ 6
2x1
+ x2
+ x3
≥ 9
3x1
+ x2
+2x3
≥ 11
x1
, x2
, x3
≥ 0
Вариант 8.
F = –7x1
+ 2x2
min
x1
+ x2
≥ 1
5x1
+ x2
≥ 3
–3x1
+ x2
≤ 3
2x1
+ x2
≤ 4
x1
, x2
≥ 0
Вариант 9.
F = 6x1
+ 4x2
min
2x1
+ x2
≥ 3
x1
– 2x2
≤ 2
x1
, x2
≥ 0
Вариант 10.
F = – x1
– 2x2
min
5x1
– 2x2
≤ 4
– x1
+ 2x2
≤ 4
x1
+ x2
≥ 4
x1
, x2
≥ 0
Вариант 11.
F = 3x1
+ 3x2
max
x1
+ x2
≤ 4
3x1
+ x2
≥ 4
x1
+ 5x2
≥ 4
0 ≤ x1
≤ 3
0 ≤ x2
≤ 3
Вариант 12.
F = 7x1
– 2x2
max
x1
+ x2
≤ 5
2x1
– 3x2
≤ 6
3x1
+ x2
≥ 3
x1
+ x2
≥ 2
x1
– x2
≥ –3
x1
, x2
≥ 0
Вариант 13.
F = 6x1
– x2
min
x1
+ x2
≥ 3
4x1
– x2
≥ –4
3x1
– 2x2
≤ 24
x2
≤ 6
x1
, x2
≥ 0
Вариант 14.
F = –3x1
– 2x2
max
x1
– 2x2
≤ –3
2x1
+ x2
≤ 10
3x1
– x2
≥ –5
–x1
+ x2
≥ 3
x1
, x2
≥ 0
Вариант 15.
F = x1
+ 2x2
max
2x1
+ 3x2
≤ 8
2x1
+ x2
≤ 6
x1
+ x2
≥ 1
x1
, x2
≥ 0
Вариант 16.
F = –2x1
+ x2
min
2x1
+ x2
≤ 8
x1
+ 3x2
≥ 6
3x1
+ x2
≥ 3
x1
, x2
≥ 0
Вариант 17.
F = 6x1
+ 4x2
min
2x1
+ x2
≥ 3
x1
– 2x2
≤ 1
–x1
+ 2x2
≥ 1
x1
, x2
≥ 0
Вариант 18.
F = 4x1
+ 3x2
max
5x1
+ 2x2
≥ 20
x1
+ 3x2
≤ 15
x1
, x2
≥ 0
Вариант 19.
F = x1
+ 3x2
max
x1
+ x2
≥ 3
6x1
+ x2
≤ 42
2x1
– 3x2
≥ 6
x1
, x2
≥ 0
Вариант 20.
F = x1
– 2x2
max
5x1
– 2x2
≤ 3
x1
+ x2
≥ 1
–3x1
+ x2
≤ 3
x1
, x2
≥ 0
Вариант 21.
F = 8x1
+ 2x2
max
x1
– 4x2
≤ 4
–4x1
+ x2
≤ 4
x1
+ x2
≤ 6
x1
, x2
≥ 0
Вариант 22.
F = 2x1
+ 3x2
min
x1
+ 5x2
≥ 16
3x1
+ 2x2
≥ 12
2x1
+ 4x2
≥ 16
x1
≥ 1
x1
, x2
≥ 0
Вариант 23.
F = 3x1
+ 3x2
max
x1
+ x2
≤ 4
3x1
+ x2
≥ 4
x1
+ 5x2
≥ 4
0 ≤ x1
≤ 3
0 ≤ x2
≤ 3
Вариант 24.
F = 7x1
– 2x2
max
x1
+ x2
≤ 5
2x1
– 3x2
≤ 6
3x1
+ x2
≥ –3
x1
, x2
≥ 0
Вариант 25.
F = –7x1
+ 2x2
min
x1
+ x2
≥ 1
5x1
+ x2
≥ 3
–3x1
+ x2
≤ 3
2x1
+ x2
≤ 4
x1
, x2
≥ 0
Вариант 26.
F = 2x1
– x2
max
3x1
+ x2
≥ 16
x1
+ 2x2
≤ 12
x1
, x2
≥ 0
Вариант 27.
F = 6x1
+ 4x2
min
2x1
+ x2
≥ 3
x1
– 2x2
≤ 2
3x1
+ 2x2
≥ 1
x1
, x2
≥ 0
Вариант 28.
F = –x1
– 2x2
min
5x1
– 2x2
≤ 4
–x1
+ 2x2
≤ 4
x1
+ x2
≥ 4
x1
, x2
≥ 0
Вариант 29.
F = x1
+ 2x2
min
5x1
– 2x2
≤ 20
x1
– 2x2
≥ –20
x1
+ x2
≥ 16
x1
, x2
≥ 0
Вариант 30.
F = x1
+ x2
max
2x1
+ x2
≤ 18
x1
+ 2x2
≤ 16
x1
, x2
≥ 0
1.2.
Симплексный метод решения задач ЛП.
Прежде чем решать задачу ЛП симплекс-методом ее необходимо привести к каноническому виду
:
(1.7)
(1.8)
(1.9)
Для этого в случае необходимости задача (1.1) поиска минимума сводится к задаче на поиск максимума (1.7) путем изменения знаков коэффициентов Сj
;
Неравенства (1.2) преобразуются в строгие равенства путем введения дополнительных неотрицательных переменных; условия неотрицательности (1.3) распространяются на все переменные путем введения подстановок.
Пример
. Дана задача ЛП в общем виде:
Приведем ее к каноническому виду. Условие неотрицательности не распространяется на переменную х2
. Поэтому введем подстановку: х2
= х5
– х4
, где .
Тогда
Изменим вид экстремума на максимум:
Изменим неравенства на строгие равенства путем введения дополнительных неотрицательных переменных. Тогда
Основные понятия и определения
.
Исходная задача (1.7), (1.8), (1.9) может быть представлена в векторной форме:
x1
Р1
+x2
Р2
+…+xn
Pn
=P0
С=(c1
, c2
… cn
); X=(x1
,x2
… xn
); P1
,P2
…Pn
, P0
– m-мерные вектор-столбцы.
Вектор X=(x1
,x2
… xn
) называется опорным планом задачи ЛП, если он удовлетворяет ограничениям (1.8); (1.9) и содержит m отличных от нуля положительных компонент. Остальные (n-m) элементов опорного плана равны нулю. Алгоритм симплекс-метода предполагает переход от одного опорного плана к другому с увеличением при этом значения целевой функции.
В некоторых случаях исходный опорный план можно легко определить. Это происходит тогда, когда среди векторов Pj имеется m единичных. В этом случае соответствующие единичным векторам переменные в опорном плане будут отличны от нуля. Они называются базисными. Остальные переменные равны нулю; они называются свободными.
Симплекс-преобразования продолжаются до тех пор, пока среди чисел не будет отрицательных.
Исходная симплекс-таблица в общем случае имеет вид
i
|
Базис
|
Сб
|
P0
|
C1
|
C2
|
…
|
Cm
|
Cm+1
|
…
|
Cn
|
P1
|
P2
|
…
|
Pm
|
Pm+1
|
…
|
Pn
|
1
|
P1
|
C1
|
b1
|
1
|
0
|
…
|
0
|
a1m+1
|
…
|
a1n
|
2
|
P1
|
C2
|
b2
|
0
|
1
|
…
|
0
|
a2m+1
|
…
|
a2n
|
…
|
…
|
…
|
…
|
…
|
…
|
…
|
…
|
…
|
…
|
…
|
m
|
Pm
|
Cm
|
bm
|
0
|
0
|
…
|
1
|
amm+1
|
…
|
amn
|
M+1
|
|
|
F0
|
0
|
0
|
…
|
0
|
Δm+1
|
…
|
Δn
|
В столбце Сб
записываются коэффициенты целевой функции с теми же индексами, что и векторы базиса.
В столбце Р0
записываются положительные компоненты исходного опорного плана, в нем же в результате вычислений получают положительные компоненты оптимального плана. В столбцах Р1
…Рn
записаны коэффициенты ограничений при неизвестных.
В (m+1)-й строке: F0
– текущее значение целевой функции; в столбцах Pj
записаны числа .
Алгоритм решения
.
1. Задачу ЛП приводят к каноническому виду и находят исходный опорный план.
2. Составляют исходную симплекс-таблицу.
3. Определяют, имеется ли хотя бы одно отрицательное число Δj в (m+1)-й строке. Если нет, то найденный опорный план оптимален.
4. Находят наименьшее отрицательное Δj и соответствующий столбец обозначают как разрешающий. Если в разрешающем столбце среди чисел aij
нет положительных, то целевая функция не ограничена сверху, а задача ЛП не имеет решения.
5. Находят отношения bi
к положительным aij
разрешающего столбца. Минимальное из этих отношений определяет разрешающую строку.
6. На пересечении разрешающих строки и столбца определяют разрешающий элемент.
7. Все элементы разрешающей строки делят на разрешающий элемент.
8. Все элементы разрешающего столбца (кроме разрешающего элемента) заменяют нулями.
9. Остальные элементы таблицы рассчитываются по правилу прямоугольника и фиксируется введение в базис новой переменной. При этом разрешающая строка определяет переменную, которая исключается из базиса, а разрешающий столбец – переменную, которая вводится в базис.
10. Переходят к пункту 3.
Правило прямоугольника
|
|
|
|
|
|
|
a1
|
…
|
A2
|
|
p. строка
|
|
…
|
|
…
|
|
|
|
a3
|
…
|
А4
|
|
|
|
|
|
|
|
|
|
p. столбец
|
|
|
|
|
Пример.
Решить задачу ЛП:
1. Представим задачу в каноническом виде:
Найдем опорный план X=(0,0,0,360,192,180). Т.о. базисные переменные x4
, x5
, x6
; свободные – x1
, x2
, x3
.
2. Составим исходную симплекс-таблицу:
I
|
Базис
|
Сб
|
P0
|
9
|
10
|
16
|
0
|
0
|
0
|
bi
/aij
|
|
P1
|
P2
|
P3
|
P4
|
P5
|
P6
|
|
1
|
P4
|
0
|
360
|
18
|
15
|
12
|
1
|
0
|
0
|
360/12=30
|
|
2
|
P5
|
0
|
192
|
6
|
4
|
8
|
0
|
1
|
0
|
192/8=24
|
p.стр
|
3
|
P6
|
0
|
180
|
5
|
3
|
3
|
0
|
0
|
1
|
180/3=60
|
|
4
|
|
|
0
|
-9
|
–10
|
–16
|
0
|
0
|
0
|
|
|
|
|
|
|
|
|
p.ст.
|
|
|
|
|
|
Δ1
= 0·18 + 0·6 + 0·5 – 9 = – 9
Δ2
= 0·15 + 0·4 + 0·3 – 10 = – 10
Δ3
= 0·12 + 0·8 + 0·3 – 16 = – 16
Δ4
= 0·1 + 0·0 + 0·0 – 0 = 0
Δ5
= 0·0 + 0·1 + 0·0 – 0 = 0
Δ6
= 0·0 + 0·0 + 0·1 – 0 = 0
3. Найденный опорный план X=(0,0,0,360,192,180) не оптимален, т.к. Δ1
, Δ2
, Δ3
– отрицательны.
4. – разрешающий столбец
5. – разрешающая строка
6. а23
= 8 – разрешающий элемент.
7, 8, 9, 10 Строим новую симплекс-таблицу по приведенному выше алгоритму, вводя в базис P3
вместо P5
.
I
|
Базис
|
Сб
|
P0
|
9
|
10
|
16
|
0
|
0
|
0
|
bi
/aij
|
|
P1
|
P2
|
P3
|
P4
|
P5
|
P6
|
|
1
|
P4
|
0
|
72
|
9
|
9
|
0
|
1
|
–3/2
|
0
|
72/9=8
|
p.стр
|
2
|
P3
|
16
|
24
|
6/8
|
1/2
|
1
|
0
|
1/8
|
0
|
24 :1/2 = 48
|
|
3
|
P6
|
0
|
108
|
11/4
|
3/2
|
0
|
0
|
–3/8
|
1
|
108 : 3/2=72
|
|
4
|
|
|
384
|
3
|
–2
|
0
|
0
|
2
|
0
|
|
|
|
|
|
|
|
p.ст.
|
|
|
|
|
|
|
Полученный опорный план X=(0,0,24,72,0,108) так же не оптимален, т.к. Δ2
= – 2 < 0. Поэтому по алгоритму симплекс-метода переходим к новому опорному плану, вводя в базис P2
вместо P4
.
i
|
Базис
|
Сб
|
P0
|
9
|
10
|
16
|
0
|
0
|
0
|
bi
/aij
|
P1
|
P2
|
P3
|
P4
|
P5
|
P6
|
1
|
P2
|
10
|
8
|
1
|
1
|
0
|
1/9
|
–1/6
|
0
|
|
2
|
P3
|
16
|
20
|
1/4
|
0
|
1
|
–1/8
|
5/24
|
0
|
|
3
|
P6
|
0
|
96
|
5/4
|
0
|
0
|
–1/6
|
–1/8
|
1
|
|
4
|
|
|
400
|
5
|
0
|
0
|
2/9
|
5/3
|
0
|
|
Этот опорный план X*
=(0; 8; 20; 0; 0; 96) оптимален, т.к. все Δj
неотрицательны.
Максимальное значение функции на оптимальном решении равно:
Fmax
= 0·9 + 8·10 + 20·16 + 0·0 + 0·0 + 0·96 = 400
Решение общей задачи ЛП: x1
*
= 0; x2
*
= 8; x3
*
= 20; Fmax
= 400.
Индивидуальные задания.
Решить задачу ЛП симплексным методом. Варианты заданий взять из индивидуальных заданий пункта 1.1.
1.3. Метод искусственного базиса.
В общем случае после приведения задачи ЛП к каноническому виду непосредственно записать опорный план не удается, т.к. среди векторов Pj
. нет m единичных. В этом случае задача ЛП решается методом искусственного базиса.
Постановка задачи
. Требуется найти максимум функции
(1.10)
При условиях
(1.11)
m<n,
но среди векторов Pj
нет m единичных.
Определение
.
Задача, состоящая в определении максимума функции
(1.12)
при условиях
(1.13)
называется расширенной по отношению к исходной задаче (1.10), (1.11).
Здесь M некоторые большие положительные числа, значения которых не задаются.
Расширенная задача (1.12), (1.13) имеет опорный план:
Переменные xn+1
, xn+2
… xn+m
называются искусственными, а система единичных векторов Pn+1
, Pn+2
… Pn+m
образует искусственный базис.
Если в оптимальном плане расширенной задачи (1.12), (1.13) значения искусственных переменных равны нулю, то – есть оптимальный план исходной задачи (1.10), (1.11).
Поэтому процесс решения задачи ЛП (1.10), (1.11) включает следующие этапы:
1. Для исходной задачи составляют расширенную задачу вида (1.12), (1.13).
2. Находят опорный план расширенной задачи.
3. С помощью вычислений симплекс-метода исключают искусственные вектора из базиса. В результате находят опорный план исходной задачи. Если искусственные переменные исключить из базиса не удается, то задача ЛП неразрешима.
4. Используя найденный опорный план исходной задачи (1.10), (1.11), либо находят симплекс-методом ее оптимальный план, либо устанавливают ее неразрешимость
Пример.
Найти минимум функции
при условиях:
Представим эту задачу в каноническом виде:
Для образования базиса необходимо три единичных вектора, т.к. m = 3. Но среди векторов Pj
:
есть только два единичных – P4
и P5
. Поэтому составим расширенную задачу, введя искусственную переменную x7
в целевую функцию и в третье ограничение:
Расширенная задача имеет опорный план X=(0;0;0;24;22;0;10), определяемый базисом P4
, P5
, P7
.
Составим исходную таблицу:
i
|
Базис
|
Сб
|
P0
|
2
|
–3
|
6
|
1
|
0
|
0
|
-M
|
bi
/aij
|
|
P1
|
P2
|
P3
|
P4
|
P5
|
P6
|
P7
|
1
|
P4
|
1
|
24
|
2
|
1
|
–2
|
1
|
0
|
0
|
0
|
|
|
2
|
P5
|
0
|
22
|
1
|
2
|
4
|
0
|
1
|
0
|
0
|
22/4
|
|
3
|
P7
|
–M
|
10
|
1
|
–1
|
2
|
0
|
0
|
–1
|
1
|
10/2
|
p.стр.
|
4
|
|
|
24
|
0
|
4
|
–8
|
0
|
0
|
0
|
0
|
|
|
5
|
|
|
–10
|
–1
|
1
|
–2
|
0
|
0
|
1
|
0
|
|
|
|
|
|
|
|
|
р.ст.
|
|
|
|
|
|
|
F=1·24+0·22+(–M) ·10 = 24 – 10M
Δ1
= 2·1 + 1·0 + 1·(–M) – 2 = 0 – M
Δ2
= 1·1 + 2·0 + 2(–M)–(–3) =4 + M
Δ3
= (–2)·1 + 4·0 + 2(–M)–6=–8–2M
Δ4
= 1·1 + 0·0 + 0·(–M) – 1 = 0
Δ5
= 0·1 + 0·0 + 0·(–M) – 0 = 0
Δ6
= 0·1 + 0·0 + (–1)·(–M) – 0=M
Δ7
= 0·1 + 0·0 + 1·(–M) – (–M)=0
При этом в (m+2)-й строке записываем коэффициенты при М. В начале проверяем условие для последней (пятой) строки. Здесь есть отрицательные числа: и .
Переходим к новому опорному плану по алгоритму симплекс-метода. Для этого исключим вектор P7
из базиса, а вектор P3
введем вместо него. В дальнейшем искусственный вектор P7
не имеет смысла вводить в базис, поэтому столбец P7
исключаем из таблицы.
Так как все искусственные векторы исключены из базиса то нет смысла включать в таблицу и (m+2)-ю (пятую для нашей задачи) строку.
Поэтому новая таблица имеет четыре строки и шесть столбцов:
I
|
Базис
|
Сб
|
P0
|
2
|
–3
|
6
|
1
|
0
|
0
|
bi
/aij
|
|
P1
|
P2
|
P3
|
P4
|
P5
|
P6
|
1
|
P4
|
1
|
34
|
3
|
0
|
0
|
1
|
0
|
–1
|
|
|
2
|
P5
|
0
|
2
|
–1
|
4
|
0
|
0
|
1
|
2
|
2/2
|
p.стр.
|
3
|
P3
|
6
|
5
|
1/2
|
–1/2
|
1
|
0
|
0
|
–1/2
|
|
|
4
|
|
|
64
|
4
|
0
|
0
|
0
|
0
|
-4
|
|
|
|
|
|
|
|
|
|
|
|
р.ст.
|
|
|
Полученное опорное решение Х=(0;0;5;34;2;0) не является оптимальным; т.к. Δ6
<0.
Дальше итерационный процесс ведется по (m+1)-й строке до получения оптимального решения или установления неразрешимости задачи.
Вводим в базис P6
вместо P5
и переходим к новой таблице:
I
|
Базис
|
Сб
|
P0
|
2
|
–3
|
6
|
1
|
0
|
0
|
bi
/aij
|
P1
|
P2
|
P3
|
P4
|
P5
|
P6
|
1
|
P4
|
1
|
35
|
5/2
|
2
|
0
|
1
|
1/2
|
0
|
|
2
|
P6
|
0
|
1
|
–1/2
|
2
|
0
|
0
|
1/2
|
1
|
|
3
|
P3
|
6
|
11/2
|
¼
|
1/2
|
1
|
0
|
1/4
|
0
|
|
4
|
|
|
68
|
2
|
8
|
0
|
0
|
2
|
0
|
|
Т.к. все , то полученный опорный план – оптимальный. .
Индивидуальные задания.
Решить задачу ЛП методом искусственного базиса. Варианты заданий взять из индивидуальных заданий пункта 1.1.
|