
- •Тема 1. Основные методологические вопросы применения математических методов в экономических задачах
- •1.1. Основные понятия
- •1.2. Этапы экономико-математического моделирования
- •1.3. Классификация экономико-математических методов и моделей
- •Тема 2. Математические методы принятия оптимальных решений
- •2.1. Линейное программирование
- •2.1.1. Принцип оптимальности в планировании и управлении, общая задача оптимального программирования
- •2.1.2. Формы записи задачи линейного программирования
- •2.1.3. Геометрическая интерпретация задачи (геометрический (или графический) метод решения задачи)
- •2.1.4. Симплексный метод решения задачи
2.1.4. Симплексный метод решения задачи
Среди универсальных методов решения задач линейного программирования наиболее распространенсимплексный метод(илисимплекс-метод),разработанный американским ученым Дж. Данцигом около 50 лет назад. Суть этого метода заключается в том, что:
вначале исходная ЗЛП записывается в канонической форме;
предварительно получают допустимый вариант, удовлетворяющий всем ограничениям, но необязательно оптимальный (так называемоеначальное опорное решение);
полученный вариант проверяется на оптимальность с помощью критерия оптимальности;
если решение не оптимальное, переходят к следующему опорному решению (плану) на основе применения метода Жордана-Гаусса для системы линейных уравнений; направление перехода от одного опорного решения к другому выбирается на основе критерия оптимальности исходной задачи;
полученный опорный план снова проверяется на оптимальность и т. д. Оптимальность достигается последовательным улучшением исходного варианта за определенное число этапов (итераций), причем на последнем шаге либо выявляется неразрешимость задачи (конечного оптимума нет), либо получаются оптимальный опорный план и соответствующее ему оптимальное значение целевой функции.
Симплекс-метод основан на следующих свойствах ЗЛП:
1. Не существует локального экстремума, отличного от глобального. Другими словами, если экстремум есть, то он единственный.
2. Множество всех планов задачи линейного программирования выпукло.
3. Целевая функция ЗЛП достигает своего максимального (минимального) значения в угловой точке многогранника решений (в его вершине). Если целевая функция принимает свое оптимальное значение более чем в одной угловой точке, то она достигает того же значения в любой точке, являющейся выпуклой линейной комбинацией этих точек.
4. Каждой угловой точке многогранника решений отвечает опорный план ЗЛП.
Рассмотрим две разновидности симплексного метода: симплекс-метод с естественным базисом и симплекс-метод с искусственным базисом (или М-метод).
СИМПЛЕКС-МЕТОД С ЕСТЕСТВЕННЫМ БАЗИСОМ.
Для применения этого метода ЗЛП должна быть сформулирована в канонической форме (2.12) - (2.14). Решение ведется в симплекс-таблицах:
Таблица 1
№ симплекс-таблицы |
Базис |
Сб |
План В |
с1 |
с2 |
… |
сm |
… |
сj |
… |
сk |
… |
сn |
Q |
A1 |
A2 |
… |
Am |
… |
Aj |
… |
Ak |
… |
An | |||||
0 |
A1 |
с1 |
b1 |
a11 |
a12 |
… |
a1m |
… |
a1j |
… |
a1k |
… |
a1n |
|
A2 |
с2 |
b2 |
a21 |
a22 |
… |
a2m |
… |
a2j |
… |
a2k |
… |
a2n |
| |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
| |
Ai |
сi |
bi |
ai1 |
ai2 |
… |
aim |
… |
aij |
… |
aik |
… |
ain |
| |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
| |
Ar |
сr |
br |
ar1 |
ar2 |
… |
arm |
… |
arj |
… |
ark |
… |
arn |
| |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
| |
Am |
сm |
bm |
am1 |
am2 |
… |
amm |
… |
amj |
… |
amk |
… |
amn |
| |
|
L |
|
|
… |
|
… |
Δj |
… |
|
… |
|
|
Матрица системы уравнений должна содержать единичную подматрицу размерностьютхт.В этом случае очевиден начальный опорный план (неотрицательное базисное решение).
Для определенности предположим, что первыетвекторов матрицы системы составляют единичную матрицу. Тогда очевиден первоначальный опорный план: (b1, b2, ..., bm,0, ...,0). Т.е.основные переменные являются свободными и равными нулю, а дополнительные переменные являются базисными и равны правым частям СЛУ.
Признак оптимальности заключается в следующих двух теоремах.
Теорема 1.Если для некоторого вектора, не входящего в базис, выполняется условие
<0,где
,j =
,(т.е.
-
скалярное произведение векторов столбцовСбиAj ),
то можно получить новый опорный план, для которого значение целевой функции будет больше исходного; при этом могут быть два случая:
а) если все координаты вектора, подлежащего вводу в базис, неположительны, то ЗЛП не имеет решения;
б) если имеется хотя бы одна положительная координата у вектора, подлежащего вводу в базис, то можно получить новый опорный план.
мы будем называть оценкой столбцаj.
Теорема 2.Если для всех векторов
выполняется условие
,то полученный план является оптимальным.
На основании признака оптимальности в базис вводится векторAk,давший минимальную отрицательную величину симплекс-разности:
=
zk - ck = min(zj
- cj), j =
,(т.е. имеющий минимальную отрицательную
оценку)
Чтобы выполнялось условие неотрицательности значений опорного плана, выводится из базиса вектор Аr,который дает минимальное положительное отношение
Q=,
aik>0, i=
.
СтрокаAr называетсянаправляющей,столбецАkи элементark — направляющими(последний называют такжеразрешающимили ведущим элементом).
Элементы вводимой строки, соответствующей направляющей строке, в новой симплекс-таблице вычисляются по формулам (они – есть следствие (формализация) метода Жордана-Гаусса).
,
,
а элементы любой другой i-oй строки пересчитываются по формулам:
,
i=
,
Значения базисных переменных нового опорного плана (показатели графы «план») рассчитываются по формулам:
дляi=r;
,
i=
для
.
Число L в симплексной таблице –это текущее значение целевой функции.
,
т.е. скалярное произведение векторов
столбцов Сб
и В.
Если наименьшее значение Qдостигается для нескольких базисных векторов, то чтобы исключить возможность зацикливания (повторения базиса), можно применить следующий способ.
Вычисляются частные, полученные от деления всех элементов строк, давших одинаковое минимальное значение Q, на свои направляющие элементы. Полученные частные сопоставляются по столбцам слева направо, при этом учитываются и нулевые, и отрицательные значения. В процессе просмотра отбрасываются строки, в которых имеются большие отношения, и из базиса выводится вектор, соответствующий строке, в которой раньше обнаружится меньшее частное.
Для использования приведенной выше
процедуры симплекс-метода к минимизации
линейной формыf()
следует искать максимум функцииf1(
)
= - f(
),затем полученный максимум взять с
противоположным знаком. Это и будет
искомый минимум исходной ЗЛП.
Рассмотрим алгоритмы симплекс-метода на конкретной задаче.
▼
Пример.Для производства продукции типаП1иП2предприятие использует два вида сырья:С1иС2. Данные об условиях приведены в таблице.
Таблица 2
Сырье |
Расход сырья на единицу продукции, кг/ед. |
Количество сырья, кг | |
П1 |
П2 | ||
С1 |
1 |
3 |
300 |
С2 |
1 |
1 |
150 |
Прибыль, тыс.руб/ед.прод. |
2 |
3 |
|
Составить план производства по критерию «максимум прибыли».
Решение. Обозначим объем производства продукцииП1черезx1,продукцииП2 - черезx2. С учетом этих обозначений математическая модель задачи имеет вид:
maxf()
= 2 x1 +3 x2
при ограничениях x1+
3x2
300,
x1+ x2
150,
x10;
x2
0.
Приведем эту задачу к каноническому виду, введя дополнительные переменныех3их4.
max f()
= 2 x1 +3 x2+
0 х3+0 х4
A1 A2 A3 A4 B
,
или x1+ 3x2+ х3 =300,
x1+ x2 +х4 =150,
xj0;
j =
.
Задача обладает исходным опорным планом (0,0,300,150), и ее можно решить симплекс-методом; решение ведется в симплекс-таблицах (табл. 3).
Таблица 3
№ симплекс-таблицы |
Базис |
Сб |
План В |
2 |
3 |
0 |
0 |
Q |
A1 |
A2 |
A3 |
A4 | |||||
0 |
A3 |
0 |
300 |
1 |
3 |
1 |
0 |
100 |
A4 |
0 |
150 |
1 |
1 |
0 |
1 |
150 | |
|
0 |
-2 |
-3 |
0 |
0 |
| ||
1 |
A2 |
3 |
100 |
1/3 |
1 |
1/3 |
0 |
300 |
A4 |
0 |
50 |
2/3 |
0 |
-1/3 |
1 |
75 | |
|
300 |
-1 |
0 |
1 |
0 |
| ||
2 |
A2 |
3 |
75 |
0 |
1 |
1/2 |
-1/2 |
|
A1 |
2 |
75 |
1 |
0 |
-1/2 |
3/2 |
| |
|
375 |
0 |
0 |
1/2 |
3/2 |
|
В исходной симплекс-таблице строка оценок Δj определяется по приведенной выше формуле
Δ1= z1-c1
=
Δ2= z2-c2
=
Исходный опорный план (0,0,300,150) не является оптимальным, так как среди оценок Δjимеются отрицательные. Переход к новому опорному плану осуществим, введя в базис векторA2,имеющий минимальную отрицательную оценку. Определяем вектор, выходящий из базиса:
т.е. векторA3 следует вывести из базиса. Направляющим или ведущим элементом являетсяa12 = 3(выделен). Переход к следующей симплекс-таблице осуществляем с помощью преобразований Жордана-Гаусса (первое уравнение делим на себя, затем из второго вычитаем первое).
Определим текущее значение функции и оценки. Среди оценок также имеется отрицательная, следовательно и второй опорный план (0,100,0,50) не оптимальный.
Определим ведущий (направляющий) элемент
,
следовательно, ведущий a21=2/3.
Переходим к следующему опорному плану вводя в базис векторA1 вместо вектораA4.
Рассчитаем оценки. Теперь они все неотрицательные. В результате получаем оптимальный план (75,75,0,0), т.е. предприятие получит максимум прибыли в размере 375,0 тыс. руб., если выпустит 75 единиц продукции первого вида и 75 единиц продукции второго вида.
▲
СИМПЛЕКС-МЕТОД С ИСКУССТВЕННЫМ БАЗИСОМ (М-МЕТОД).Применяется в тех случаях, когда затруднительно найти первоначальный опорный план исходной задачи ЛП, записанной в канонической форме.
М-метод заключается в применении правил симплекс-метода к так называемойМ-задаче.Она получается из исходной добавлением к левой части системы уравнений в канонической форме исходной ЗЛП таких искусственных единичных векторов с соответствующими неотрицательными искусственными переменными, чтобы вновь полученная матрица содержала систему единичных линейно-независимых векторов. В линейную форму исходной задачи добавляется в случае ее максимизации слагаемое, представляющее собой произведение числа(-М)на сумму искусственных переменных, гдеМ —достаточно большое положительное число.
В полученной задаче первоначальный опорный план очевиден. При применении к этой задаче симплекс-метода оценки Δj, теперь будут зависеть от «буквыМ». Для сравнения оценок нужно помнить, чтоМ—достаточно большое положительное число, поэтому из базиса будут выводиться в первую очередь искусственные переменные.
В процессе решенияМ-задачи следует вычеркивать в симплекс-таблице искусственные векторы по мере их выхода из базиса. Если все искусственные векторы вышли из базиса, то получаем исходную задачу. Если оптимальное решениеМ-задачи содержит искусственные векторы илиМ-задача неразрешима, то исходная задача также неразрешима.
Путем преобразований число вводимых переменных, составляющих искусственный базис, может быть уменьшено до одной.
▼
Пример.Найти максимум целевой функции:
max f()
= 3 x1 + x2+
x3
при условиях 2 x1+ x2 =8,
x1+ x2 +x3=6,
x10;
x2
0; x3
0
Решение.Матрица условий содержит только один единичный вектор, добавим еще один искусственный вектор (искусственную неотрицательную переменнуюy1в первое ограничение):
.
Получим следующуюМ-задачу: найти максимум целевой функции
max f()
= 3 x1 + x2+
x3 - My1
при условиях 2 x1+ x2 + y1=8,
x1+ x2 +x3=6,
x10;
x2
0; x3
0; y1
0.
М-задачу решаем симплекс-методом. Начальный опорный план (0,0,6,8), решение проводим в симплекс-таблицах (табл.4).
Таблица 4
№ симплекс-таблицы |
Базис |
Сб |
План В |
3 |
1 |
1 |
-М |
Q |
A1 |
A2 |
A3 |
A4 | |||||
0 |
A4 |
-M |
8 |
2 |
1 |
0 |
1 |
4 |
A3 |
1 |
6 |
1 |
1 |
1 |
0 |
6 | |
|
-8M+6 |
-2M-2 |
-M-1 |
0 |
0 |
| ||
1 |
A1 |
3 |
4 |
1 |
0.5 |
0 |
|
|
A3 |
1 |
2 |
0 |
0.5 |
1 |
| ||
|
14 |
0 |
0 |
0 |
|
|
В начальной таблице наименьшая оценка соответствует векторуA1 — он вводится в базис, а искусственный вектор (строка)A4из базиса выводится, так как ему отвечает наименьшееQ. Ведущий элементa11 . Столбец, соответствующийA4,из дальнейших симплексных таблиц вычеркивается.
Полученный новый опорный план является
опорным планом исходной задачи. Для
него все
> 0, поэтому он является и оптимальным.
Таким образом, получен оптимальный
план исходной задачи (4,0,2), и максимальное
значение целевой функцииf(
)=14.
▲
▼
Пример.Решить ЗЛП: minf()
= 10 x1 - 5x2
при условиях 2 x1 - x2
3,
x1+ x2
2,
x1+2x2
-1,
x10;
x2
0;
Приведем ЗЛП к каноническому виду, перейдя к задаче «на максимум»:
mах f1()
= -10 x1 + 5x2
при условиях 2 x1 - x2 - x3=3,
x1+ x2 – x4=2,
-x1 - 2x2 +x5=1,
xj0;
j =
.
Для нахождения опорного плана переходим кМ-задаче:
mах g(,
)
= -10 x1 + 5x2 –M(y1+
y2)
при условиях 2 x1 - x2 - x3+ y1=3,
x1+ x2 – x4 + y2=2,
-x1 - 2x2 +x5=1,
xj0;
j =
,
y1,2
0
Дальнейшее решение проводим в симплекс-таблицах (табл.5).
В симплекс-таблице2получен опорный план исходной ЗЛП;
поскольку все оценки
> 0, то этот план является и оптимальным,
т.е.x1=5/3,x2=
1/3 (исходные
переменные),x5 =10/3,x3 =
0,x4 =0 (дополнительные переменные), при этом
minf(
)
= -
mахf1(
)
= -(-15)
= 15.
Таблица 5
№ симплекс-таблицы |
Базис |
Сб |
План В |
-10 |
5 |
0 |
0 |
0 |
-M |
-M |
Q |
A1 |
A2 |
A3 |
A4 |
A5 |
A6 |
A7 | |||||
0 |
A6 |
-M |
3 |
2 |
-1 |
-1 |
0 |
0 |
1 |
0 |
3/2 |
A7 |
-M |
2 |
1 |
1 |
0 |
-1 |
0 |
0 |
1 |
2 | |
A5 |
0 |
1 |
-1 |
-2 |
0 |
0 |
1 |
0 |
0 |
- | |
|
-5M |
-3M+10 |
-5 |
M |
M |
0 |
0 |
0 |
| ||
1 |
A1 |
-10 |
3/2 |
1 |
-1/2 |
-1/2 |
0 |
0 |
|
0 |
|
A7 |
-M |
1/2 |
0 |
3/2 |
1/2 |
-1 |
0 |
1 |
1/3 | ||
A5 |
0 |
5/2 |
0 |
-5/2 |
-1/2 |
0 |
1 |
0 |
| ||
|
-M/2-15 |
0 |
-3M/2 |
-M/2+5 |
M |
0 |
|
0 |
| ||
2 |
A1 |
-10 |
5/3 |
1 |
0 |
-1/3 |
-1/3 |
0 |
|
|
|
A2 |
5 |
1/3 |
0 |
1 |
1/3 |
-2/3 |
0 |
| |||
A5 |
0 |
10/3 |
0 |
0 |
0 |
-5/3 |
1 |
| |||
|
-15 |
0 |
0 |
5 |
0 |
0 |
|
|
|
▲