Задачи для самостоятельного решения
Решить графическим методом следующие задачи:
4.2.1. 4x1 |
2x2 |
max |
||
2x1 |
3x2 |
18, |
|
|
x1 |
3x2 |
9, |
|
|
2x1 |
x2 |
|
10, |
|
x1 |
0, x2 |
|
0. |
|
4.2.3. x1 |
2x2 |
|
min |
|
x1 |
x2 |
1, |
|
|
x1 |
x2 |
|
2, |
|
x1 |
2x2 |
|
0, |
|
x1 |
0, x2 |
|
0. |
|
4.2.5. x1 |
3x2 |
|
max |
|
x1 |
x2 |
1, |
|
|
2x1 |
x2 |
|
2, |
|
x1 |
x2 |
|
0, |
|
x1 |
0, x2 |
|
0. |
|
4.2.2. 2x1 |
4x2 |
max |
|||
|
3x1 |
|
2x2 |
11, |
|
|
2x1 |
2x2 |
2, |
||
|
x1 |
3x2 |
0, |
|
|
|
x1 |
0, x2 |
0. |
||
4.2.4. 2x1 |
4x2 |
max |
|||
|
x1 |
x2 |
3, |
|
|
|
x1 |
2x2 |
12, |
||
|
3x1 |
|
x2 |
15, |
|
|
x1 |
0, x2 0. |
|||
4.2.6. x1 |
|
x2 |
max |
||
x1 |
2x2 |
10, |
|
||
x1 |
2x2 |
2, |
|
||
2x1 |
x2 |
10, |
|
||
x1 |
0, x2 |
0. |
|
||
4.2.7. x1 |
x2 |
max(min) |
4.2.8. |
2x1 |
3x2 |
max |
2x1 |
4x2 |
16, |
2x1 |
x2 |
10, |
|
4x1 2x2 8, |
2x1 3x2 6, |
|
||||
x1 |
3x2 |
9, |
2x1 |
4x2 |
8, |
|
x1 |
0, x2 |
0. |
x1 |
0, x2 |
0. |
|
4.2.9. x1 |
x2 |
max |
4.2.10. |
x1 |
2x2 |
max |
93
x1 |
2x2 |
14, |
4x1 |
2x2 |
12, |
5x1 3x2 |
15, |
x1 |
3x2 |
6, |
|
4x1 |
6x2 |
24, |
2x1 |
4x2 |
16, |
x1 |
0, x2 |
0. |
x1 |
0, x2 |
0. |
4.3. Алгоритм симплексного метода
Рассмотрим задачу линейного программирования, записанную в канонической форме:
|
|
|
|
|
z(x) |
cT x |
max |
(4.3.1) |
|
|
|
|
|
Ax |
b, (b |
0) |
(4.3.2) |
|
|
|
|
|
x |
0 , |
|
(4.3.3) |
где cT |
(c1 ,..., cn ) , x T (x1 ,..., x n ) , |
bT (b1 ,..., b m ) , A (aij ) , |
||||||
|
|
|
|
|
|
|
||
i 1, m , |
j 1, n |
|
|
|
||||
|
|
План ЗЛП x |
(x1, x 2 ,..., x n ) |
называется опорным планом |
||||
(базисной точкой), если векторы-столбцы матрицы А: Ai1 ,..., Aik ,
k n , соответствующие его ненулевым координатам, линейно независимы.
Симплекс-метод решения ЗЛП (1)-(3) представляет собой итерационную процедуру последовательного перехода от одного базисного решения к другому с меньшим (большим) значением целевой функции до получения оптимального решения. Следует отметить, однако, что на начальном этапе решения обязательно наличие исходной базисной точки.
Известно, что число положительных координат базисной точки не может быть более, чем ранг матрицы r(А)= m. Если базисная точка содержит ровно т положительных координат, то она называется невырожденной, в противном случае - вырожденной. Задача называется невырожденной, если допустимое множество не имеет вырожденных базисных точек.
Перебор базисных точек осуществляется с помощью преобразований Жордана-Гаусса.
Пусть имеется исходная базисная точка допустимого множества ЗЛП xBT (xi ,i I; xj 0, j J ) . Координаты xi ,i I
94
будем в дальнейшем называть базисными, xj 0, j J -
небазисными. Соответственно множество I - множеством базисных (зависимых) индексов, J -множеством небазисных
(свободных) индексов. В случае невырожденной задачи каждой базисной точке соответствует известный базис, состоящий из
векторов Ai ,i I . Обозначим его через В. Заметим далее, что
каждая итерация метода Жордана-Гаусса соответствует переходу от одной базисной точки к другой при замене одной базисной (зависимой) переменной на одну небазисную (свободную). При этом выбору подлежит номер небазисной переменной k и жестко
определяется номер базисной переменной l ( alk 0 ). Координаты новой базисной точки вычисляются следующим образом:
H |
|
|
|
|
x l |
|
|
|
x l |
|
|
|
|
|
|
|
|
||||||||
x B |
(x i |
|
|
|
|
a ik , i I; x k |
|
|
|
; x j |
0, j J, j k). (4.3.4) |
|
|
a lk |
a lk |
||||||||||
|
|
|
|
|
|
|
||||||
Таким образом, получается алгоритм, позволяющий перебрать все базисные точки ЗЛП. Однако возникает естественное желание исключить из рассмотрения точки, обеспечивающие «худшее» значение целевой функции, нежели уже известные. С целью такой «фильтрации», вычислим значение целевой функции в
точке xBH , представленной в виде (4.3.4).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Обозначим |
|
|
xl |
|
min |
xi |
. Тогда |
|
|
|
|
|
|
|
|
|
|||||||
|
alk |
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
aik 0 |
aik |
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
z(x BH ) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
(xi |
|
|
|
|
aik )ci |
|
ck |
ci xi |
( |
ciaik |
|
ck ). (4.3.5) |
|
||||||||||
|
i I |
|
|
|
|
|
|
|
|
|
|
i I |
|
|
|
i |
I |
|
|
|
|
||
Обозначим |
|
|
|
k |
|
ci aik ck |
(в |
матричной |
|
форме |
|||||||||||||
|
|
|
|
|
|
|
|
|
i |
I |
|
|
|
|
|
|
|
|
|
|
|
|
|
k cBT B 1 Ak |
ck , |
cB |
- вектор коэффициентов целевой функции |
||||||||||||||||||||
при базисных переменных). В таком случае |
z(xH ) z(x ) |
k |
. |
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
B |
|
B |
|
|
Отсюда |
видно, |
|
|
что |
если |
|
|
выбрано |
k такое, |
что |
k |
0 , |
то на |
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
следующей итерации будет получена точка с большим значением
целевой функции (т.к. |
0 ). |
Если |
|
k |
0 , то произойдет |
уменьшение целевой функции, |
при |
k |
0 |
значение целевой |
|
|
|
|
|
|
|
95
функции не изменится. Если |
k |
0 , но все |
aik |
0 , то, выбирая |
любое положительное число |
в |
качестве |
, |
будем получать |
допустимую, но не базисную точку. (см. (4.3.4)). Значение целевой функции в этой точке изменяется в соответствии с формулой (4.3.5), откуда видно, что если
выбирать как угодно большим, то значение функции цели будет как угодно увеличиваться. Следовательно, в таком случае можно сделать вывод о неограниченности целевой функции на допустимом множестве.
|
Теорема. |
Если |
|
некоторой |
|
|
базисной |
|
|
|
точке |
xB |
||||||||||||||
соответствует |
ситуация, |
при |
которой |
|
все |
|
k |
|
0 , |
то |
такая |
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
точка является оптимальной в задаче (4.3.1 – 4.3.3). |
|
|
|
|
|
|
|
|||||||||||||||||||
|
Все вышесказанное позволяет сконструировать алгоритм |
|||||||||||||||||||||||||
базового симплекс метода. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
Алгоритм базового симплекс метода |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
Задана исходная базисная точка x B : xTB |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
1. |
|
|
(xi ,i |
I; x j |
0, j |
J). |
||||||||||||||||||||
|
Вычислить оценки по формуле |
j |
|
|
ci aij |
c j |
, |
j J . |
|
|||||||||||||||||
|
|
|
|
|
|
|
|
i |
I |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
2. |
Проверить, если все |
j |
|
0 , |
то перейти к п.8. |
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3. |
Проверить, если k J : |
k |
0 |
и все aik |
|
|
|
0 , то перейти к п.10. |
||||||||||||||||||
4. |
Выбрать k : k |
0 (>0, если задача на min) и вектор Ak |
имеет |
|||||||||||||||||||||||
|
хотя бы одну строго положительную координату (выбор такого |
|||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
номера k произволен, например, max |
|
j |
|
|
|
|
|
k |
). |
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
k |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
5. |
Вычислить параметр |
|
по формуле |
|
|
|
|
xl |
|
min |
xi |
|
|
|
||||||||||||
|
|
|
|
alk |
aik |
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
aik |
0 |
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
6.Осуществить переход к новой базисной точке с помощью преобразований Жордана-Гаусса с направляющим элементом alk .
7.Изменить исходную информацию:
|
|
xH |
|
|
|
|
xl |
|
a ,i I; x |
|
xl |
|
; x |
|
|
||
x |
B |
(x |
j |
0, j J , j k) . |
|||||||||||||
|
|
|
|
|
|||||||||||||
|
B |
|
i |
|
|
|
|
ik |
k |
alk |
|
||||||
|
|
|
|
|
|
alk |
|
|
|
||||||||
I |
|
I \ ({l} {k}) ; J |
J \ ({l} {k}) |
|
|
||||||||||||
Перейти к п.1.
96
8. |
Если существует номер s |
J : s 0 , то выписать ответ: xB - |
|
оптимальная точка, в задаче имеется бесчисленное множество |
|
|
решений. |
|
9. |
Если для всех j J : j |
0 , то выписать ответ: xB - |
единственное решение задачи.
10.Выписать ответ: задача решений не имеет из-за неограниченности целевой функции на допустимом множестве:
|
sup z(x) |
. |
|
|||
|
Пример 1. Решить задачу |
|||||
|
x2 |
3x3 |
2x5 |
min |
||
x1 |
3x2 |
x3 |
2x5 |
7, |
||
|
2x2 |
4x3 x4 |
|
12, |
||
|
4x2 |
3x3 |
8x5 |
x6 10, |
||
xi |
0, i |
|
|
|
|
|
1,6. |
|
|
||||
Решение задачи удобно оформлять в виде таблицы. В первом столбце помещаются текущие базисные переменные, во втором - их коэффициенты в целевой функции, в третьем - координаты текущей
базисной точки. Далее переписываем элементы матрицы
помещая над каждым столбцом коэффициент соответствующей переменной в целевой функции. Последний столбец предназначается для определения значения . В отдельной строке вычисляются
оценки векторов Aj . В ячейке, находящейся на пересечении
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
оценочной |
строки |
и |
столбца |
x , |
помещаем |
значение |
целевой |
|||||||||||
функции в текущей базисной точке. |
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
B |
CB |
|
|
|
|
0 |
|
1 |
|
-3 |
|
0 |
|
2 |
0 |
|
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
A1 |
|
A2 |
|
|
A3 |
|
A4 |
|
A5 |
A6 |
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
x1 |
0 |
7 |
|
|
1 |
|
3 |
|
-1 |
|
0 |
|
2 |
0 |
|
- |
||
x4 |
0 |
12 |
|
0 |
|
-2 |
|
4 |
|
1 |
|
0 |
0 |
|
3 |
|||
x6 |
0 |
10 |
|
0 |
|
-4 |
|
3 |
|
0 |
|
8 |
1 |
|
10/3 |
|||
j |
|
0 |
|
|
0 |
|
-1 |
|
3 |
|
0 |
|
-2 |
0 |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
97