- •2) Переход от общей (стандартной) формы злп к канонической.
- •Переход от канонической формы к стандартной.
- •1.1.3. Контрольные вопросы:
- •1.1.4. Варианты индивидуальных заданий:
- •1.2 Графический метод решения задач
- •1.2.2. Теоретическая часть:
- •1.2.3. Контрольные вопросы:
- •1.2.4. Варианты индивидуальных заданий:
- •1.3 Симплекс-метод решения задач линейного программиро-вания
- •1.3.2. Теоретическая часть
- •1.3.2.1. Симплекс-метод
- •1.3.2.2. Cимплекс-метод для неполного базиса (м-метод).
- •1.3.3. Контрольные вопросы:
- •1.3.4. Варианты индивидуальных занятий
- •1.4 Двойственность в линейном программировании
- •1.4.2. Теоретическая часть:
- •1.4.2.1. Общая модель задачи
- •1.4.2.2. Решение злп с помощью графического анализа двойственной задачи
- •1.4.3. Контрольные вопросы:
- •1.4.4. Варианты индивидуальных заданий.
- •1.5 Транспортная задача (т-задача)
- •1.5.2. Теоретическая часть:
- •1.5.2.1. Алгоритм решения т-задачи.
- •1.5.2. Примеры решения т-задачи.
- •1.5.3. Контрольные вопросы.
- •1.5.4. Варианты индивидуальных заданий:
- •1.6 Целочисленное программирование
- •1.6.2. Теоретическая часть: Описание метода отсечений (метода Гомори).
- •1.6.3. Контрольные вопросы:
- •1.6.4. Варианты индивидуальных заданий.
- •2.1.2.2. Метод Франка-Вулфа решения задач квадратичного программирова-
- •2.2 Контрольные вопросы.
- •2.3. Индивидуальные задания.
1.3 Симплекс-метод решения задач линейного программиро-вания
1.3.1. Цель: закрепить навыки нахождения исходного опорного плана ЗЛП и оп-ределения возможности его улучшения и нахождения оптимального плана с помощью симплекс-метода.
1.3.2. Теоретическая часть
1.3.2.1. Симплекс-метод
Для нахождения оптимального решения задачи ЗЛП применяется симплекс-метод, известный в отечественной литературе как «метод последовательного улучшения пла-на». Идея метода состоит в последовательном продвижении по базисам опорных пла-нов вплоть до получения оптимального решения или доказательства неразрешимости задачи. Симплекс-метод использует каноническую форму записи ЗЛП. Для реализации метода необходимо знать:
-
базисные компоненты исследуемого опорного плана;
-
элементы матрицы ||Xij||mn ;
m
оценки векторов условий j Z j C j , j 1, n, Z j ci xij ;
i1
-
значение линейной формы Z0, соответствующее исследуемому опорному плану
m
X 1 , Z0 ci xi .
-
1
результате исследования должно быть установлено:
- либо оптимальность плана X 1 ;
-
либо неразрешимость задачи;
-
либо возможность перехода к новому плану X 2 (новому базису); связанному с
большим значением линейной формы (для задачи максимизации).
При ручном счете вычисления удобно оформлять в виде специального вида сим-плекс-таблиц (табл.2).
Рассмотрим каноническую ЗЛП, записанную в векторной форме:
n
-
c j x j max,
-
1 n
aij x j bi ,(i 1, m),
-
1
x j 0, j 1,n.
Запишем ее в виде симплекс-таблицы (см. табл.2). Для этого введем в исходную таблицу те параметры, что соответствуют начальному опорному плану:
-
коэффициенты при неизвестных переменных в исходной ЦФ Cj – верхняя строка симплекс-таблицы,
-
коэффициенты при базисных переменных Сi, записанные в соответствующем столбце,
-
базисные переменные – столбец “базис”,
-
соответствующие значения базисных переменных, составляющие данное опорное решение – столбец “Х(аi0)”,
-
матрицу коэффициентов задачи – столбцы “х1” – “хn”,
-
коэффициенты, необходимые для определения ведущей строки – столбец “Qi”,
-
оценки j , соответсвующие коэффициентам ЦФ для данного опорного плана
18
m
j Z j C j , Z j ci xij , j 1, n
-
1
значение ЦФ для данного опорного плана Z.
Таблица 2
i |
базис |
Сi |
|
|
|
C1 |
C2 |
… |
Cm |
Cm+1 |
… |
Ck |
… |
Cn |
Q(i) |
|
||||||||||||||||||||
|
|
|
х1 |
х2 |
… |
хm |
xm+1 |
… |
xk |
… |
xn |
|
||||||||||||||||||||||||
|
X 1 |
|
||||||||||||||||||||||||||||||||||
|
|
|
(ai0) |
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||
1 |
x1 |
c1 |
|
a10 |
1 |
0 |
… |
0 |
a1,m+1 |
… |
a1k |
… |
a1n |
Q1 |
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||
2 |
x2 |
c2 |
|
a20 |
0 |
1 |
… |
0 |
a2,m+1 |
… |
a2k |
… |
a2n |
Q2 |
|
|||||||||||||||||||||
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
|
||||||||||||||||||||||
l |
xl |
cl |
|
al0 |
0 |
0 |
… |
0 |
al,m+1 |
… |
alk |
… |
aln |
Ql |
|
|||||||||||||||||||||
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
|
||||||||||||||||||||||
m |
xm |
cm |
am0 |
0 |
0 |
… |
1 |
am,m+1 |
… |
amk |
… |
amn |
Qm |
|
||||||||||||||||||||||
|
|
|
m |
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||
m+1 |
Z j j |
Z ci ai0 |
1 |
2 |
… |
m |
m1 |
… |
k |
… |
n |
|
|
|||||||||||||||||||||||
|
|
|
i1 |
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Таблица обрабатывается по следующему алгоритму.
Первая итерация. Заполняется таблица 2, соответствующая исходному опорному плану X1 с базисом х1,х2,…,хm.
r(l+1) -я итерация (переход от таблицы с номером “r” к таблице с номером “(r+1)”).
Пусть заполнена таблица с номером “r” за исключением столбца Q (r).Рассмотрим элементы (m+1)-й строки. Здесь возможны три случая:
а) все j0, тогда опорный план, X r полученный после l-й итерации, - решение задачи;
б) k0, а все элементы столбца " xk " aik<0 в этом случае задача неразрешима;
в) в каждом столбце xk , для которого k<0, имеется хотя бы один положительный элемент. В этом случае в базис вводится один из векторов хk (для определенности бу-дем считать c наименьшей оценкой k). Для определения вектора xl , который нужно вывести из базиса, заполняется столбец Q (r), r-й таблицы, точнее те его позиции, кото-рые соответствуют aik(r ) 0;
Q(r ) ai0 .
aik
Вектор хl, на котором достигается min Q (r), выводится из базиса. Новый базис со-держит (m-1) векторов старого базиса и вектор xk. В этом базисе вычисляется новый план xr 1 (x1 , x2 ,..., xk ,..., xm ,0,...,0)
Векторы, не входящие в базис, разлагают по векторам базиса, причем единствен-ным образом.
Составляющие ai(0r 1) нового плана определяются из соотношений:
xi(r 1) |
ai(0r 1) ai(0r ) |
|
|
|
a(r ) a(r ) |
|
|
|
|
|
|
|||||||||||||||||||||||||||
|
|
l0 |
ik |
,i l,i 1, m; |
|
|||||||||||||||||||||||||||||||||
alk(r ) |
|
|||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||
xk(r 1) |
ak(r01) |
a |
|
( r) |
|
,i l. |
|
|
|
|
|
|
|
|||||||||||||||||||||||||
|
l 0 |
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||
alk(r) |
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||
Элементы аij(r+1) |
- из соотношений: |
|
||||||||||||||||||||||||||||||||||||
aij(r 1) |
aij(r ) |
|
a( r) a |
(r ) |
|
|
|
|
|
|
|
|||||||||||||||||||||||||||
|
li |
|
ik |
,i l,i 1,m; |
|
|||||||||||||||||||||||||||||||||
|
|
|
|
|||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
alk(r ) |
|
|
|
|
|
|
|
|||||||||||||||||||||||||
|
|
a |
(r ) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
akj(r 1) |
|
|
lj |
,i l. |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||
alk(r ) |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Элементы (m+1)-й строки вычисляются по формулам:
Z0(r 1) Z0(r ) |
al(0r ) (kr ) |
; |
|
|
|
|
|
|||
alk(l) |
|
|
|
|
||||||
|
|
|
|
|
|
|
||||
(jr 1) Z (jr 1) C j (jr ) |
alj(r ) (kr ) |
, j 1, |
n |
. |
|
|||||
alk(r) |
|
|||||||||
|
|
|
|
|
|
|
Этим завершается (r+1)-я итерация.
Если в ( m+1)-й строке все j(r+1)0, то получено оптимальное решение, в против-ном случае переходим к (r+2)-й итерации.
Замечание. Если первоначальная задача связана с минимизацией, то критерием оптимальности плана является выполнение условия j0 в (m+1) строке на r-й итера-ции.
Пример: решить ЗЛП
2x1 x2 x3 x4 max,
x1 x2 x3 1,
2x1 x2 x4 3,
x j 0, j 1,4.
Система содержит полный единичный базис (x3; x4), которому соответствует опорное решение (0; 0; 1; 3). Избавимся в ЦФ от базисных переменных:
-
2x1 x2 1 x1 x2 3 2x1 x2 2 3x1 3x2 max .
И перенеся все переменные в левую часть полученного уравнения, получим
-
3x1 3x2 2.
Заполним исходную симплекс-таблицу (см. табл.4).
Таблица 4.
i |
базис |
Сi |
|
|
|
2 |
|
1 |
1 |
-1 |
|
|
|||||
|
|
|
х1 |
х2 |
х3 |
x4 |
Q(1) |
|
|||||||||
|
X 1 |
|
|||||||||||||||
|
|
|
(ai0) |
|
|
|
|
|
|
|
|
||||||
1 |
x3 |
1 |
1 |
|
|
1 |
|
-1 |
1 |
0 |
1 |
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||
2 |
х4 |
-1 |
3 |
|
2 |
|
1 |
0 |
1 |
3 2 |
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
m+1 |
Z |
|
-2 |
-3 |
-3 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
Среди оценок ((m+1)-я строка) имеются отрицательные 1<0 и 2<0, причем, в со-ответствующих им столбцам есть положительные элементы. Поэтому можно перейти к новому, более лучшему, базису. Так как 1=2= -3, то выберем в качестве разрешаю-щего тот столбец, который дает наименьшее отношение. Это 1-й столбец (х1). Разре-шающий элемент определяется как минимальное отношение элементов столбца сво-бодных членов (аi0) к соответствующим элементам разрешающего столбца. Им оказал-ся элемент а11=1 (выделен жирным шрифтом). Проводим первую итерацию по изло-женному выше алгоритму, после которой получаем следующую таблицу (см. табл. 5).
Таблица 5.
i |
базис |
Сi |
|
|
|
2 |
1 |
|
1 |
-1 |
|
|
|||||||
|
|
|
х1 |
х2 |
х3 |
x4 |
Q(2) |
|
|||||||||||
|
X 2 |
|
|||||||||||||||||
|
|
|
(ai0) |
|
|
|
|
|
|
|
|
||||||||
1 |
x1 |
2 |
1 |
|
1 |
-1 |
1 |
0 |
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
2 |
х4 |
-1 |
1 |
|
0 |
3 |
|
-2 |
1 |
1 3 |
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
m+1 |
Z |
|
1 |
|
0 |
-6 |
3 |
0 |
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Из таблицы 5 видно, что улучшение плана можно продолжить. Разрешающим столбцом выбираем единственный столбец, имеющий отрицательную оценку 2= -6, а разрешающим элементом – единственный положительный элемент ведущего столбца. Переходим к следующему базису X 3 (см. табл.6).
Таблица 6.
i |
базис |
Сi |
|
|
|
2 |
1 |
1 |
|
-1 |
|
|
||||||||||||||
|
|
|
х1 |
х2 |
|
х3 |
|
x4 |
Q(3) |
|
||||||||||||||||
|
X 3 |
|
||||||||||||||||||||||||
|
|
|
(ai0) |
|
|
|
|
|
|
|
|
|||||||||||||||
1 |
x1 |
2 |
4 3 |
1 |
0 |
|
1 3 |
|
1 3 |
4 |
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||
2 |
х2 |
1 |
1 3 |
0 |
1 |
2 3 |
1 3 |
|
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
m+1 |
Z |
|
3 |
|
0 |
0 |
-1 |
|
2 |
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Так как таблица 6 содержит отрицательную оценку, то переходим к плану X 4 (см.
табл.7).
Таблица 7.
i |
базис |
Сi |
|
|
|
2 |
1 |
1 |
-1 |
|
|
|
|
|
х1 |
х2 |
х3 |
x4 |
Q(4) |
|
|||
|
X 4 |
|
|||||||||
|
|
|
(ai0) |
|
|
|
|
|
|
||
1 |
x3 |
1 |
4 |
|
3 |
0 |
1 |
1 |
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
х2 |
1 |
3 |
|
2 |
1 |
0 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
m+1 |
Z |
|
7 |
|
3 |
0 |
0 |
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Все оценки неотрицательны, следовательно, найденное решение оптимально.
То есть хопт=(0; 3; 4; 0), Zmax=7.