Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методы оптимизации. Учебное пособие-3

.pdf
Скачиваний:
1
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
6.3. Симплекс-метод решения задачи линейного программирования
f xcxcxcx
nn
() ... min=+ ++ ®
11 22
X
ax ax ax b
11
22
+++=
+=
... ,
mm mn n11 22
+=mm,
xx x
n12
00 0іі і,,...,
A aij= ()
x
j m=1, ...,
6.3. Симплекс-метод решения задачи линейного программирования
Рассматривается задача линейного программирования в ка-
ноническом виде
при ограничениях, определяющих допустимое множество
11 1122
ax ax ax b
++
21 1222
...........................................
++
nn
... ,
nn
...ax ax ax b
Пусть ранг
матрицы
системы ограничений ра-
(6.14)
,
(6.15)
. (6.16)
венств (6.15) задачи линейного программирования в канони­ческом виде равен рангу расширенной матрицы
этой си-
стемы. Иначе система (6.15) несовместна и задача линейного программирования (6.14)–(6.16) не имеет решения, так как ее допустимое множество
пусто.
Выберем произвольный базисный минор матрицы A. Без
ограничения общности будем считать, что этот минор порядка
соответствует первым
, то уравнения (6.15) с номерами
столбцам и строкам матрицы
, являющие-
. Если
ся следствиями остальных уравнений системы, отбросим. По­этому считаем в дальнейшем, что
.
Разрешим систему (6.15) относительно базисных перемен-
ных
,
j
. Для этого с помощью эквивалентных преоб-
разований приведем систему (6.15) к виду
131
6. Линейное программирование
+++=
aab aa
.
()
mmmm mn nm
+=
++
aa
101
00
11
=- --
ba a
.....
mm mm mmnn
++
101
xx
mn+1
, ...,
xx
mn+1
, ...,
x
11
0
=b
()
x
22
0
=b
()
x
mm
=b
()0
xx x
mm n++
====
12
0...
x
m
() () () ()
(, , ..., ,,,..., )
0
102
00
00 0=b bb
i
()0
0і
() () ()
xx x
mm nn
11101101
++
()
+++
xx
mm n
221012
++
... ,
(() ()
0
...
.............................................
() ()
xx x
++
...
xn=b
0
0
,
2
(6.17)
..
b
Отсюда общее решение системы (6.15) запишется следую-
щим образом:
() () ()
xxx
11011
() ()
=- -
ba
xx
2202101
.............................................
() () ()
0
xxx
=- --
ba a
где свободные переменные
0
mm nn
++
mm
++
0
... ,
()
-a
.... ,
x
20nn
(6.18)
.
0
... ,
могут принимать произ-
вольные значения.
Положим значения свободных переменных
рав-
ными нулю, тогда получим частное решение системы (6.15):
,
, …,
,
или
, (6.19)
которое будем называть базисным решением системы (6.15). Каж­дому выбору базисных переменных соответствует свое базис­ное решение системы (6.15).
Определение 6.2. Базисное решение (6.19) называется допу-
стимым базисным решением системы (6.15) или угловой точкой
допустимого множества ния (6.14)– (6.16), если все компоненты базисного решения (6.19) неотрицательны, то есть
Определение 6.3. Допустимое базисное решение (6.19) назы­вается вырожденным (вырожденной угловой точкой), а соответ­ствующая задача линейного программирования — вырожден-
132
задачи линейного программирова-
,
.
6.3. Симплекс-метод решения задачи линейного программирования
i
()0
f x()
x
n
()
!
!!
X
X
f x()
f x()
x
j mn=+1, ...,
px
jj
n
00
i
m
00
1
()
=
cc
i
m
()00
1
=
j mn=+1, ...,
ной, если среди неотрицательных чисел
в допустимом
базисном решении (6.19) есть равные нулю.
В основе симплекс-метода лежит факт. Если задача линейного программирования (6.14)–(6.16)
разрешима, то минимум целевой функции
из уравне­ния (6.14) достигается хотя бы в одной из угловых точек допу­стимого множества
этой задачи.
Поскольку различные базисные решения системы (6.15) со­ответствуют различным способам выбора го числа
переменных
, то число допустимых базисных ре-
j
шений (угловых точек) не превышает
базисных из обще-
m
=
n
mnm
-
. Поэтому
задачу линейного программирования можно решать методом перебора конечного числа угловых точек допустимого множе­ства Однако при большой размерности
, сравнивая значения целевой функции в этих точках.
задачи линейного програм­мирования это будет затруднительно. Идея симплекс-метода состоит в направленном переборе угловых точек допустимого множества ции
с последовательным уменьшением целевой функ-
.
Схема симплекс-метода
Предположим, что задача линейного программирования (6.14)–(6.16) является невырожденной, а базисное решение (6.19) — допустимым. Выразим целевую функцию ражения (6.14) через свободные переменные используя соотношение (6.18):
p c
() 0
из вы-
,
j
f xp
()
=
b, p
е
ii
() ()
=+
()
=-
jj iij
е
0
jm
=+
1
a
е
, (6.20)
,
.
,
133
6. Линейное программирование
p
()0
j mn=+1, ...,
f x()
p
0
0()
p
()0
j № 0
p
l
()0
il
()
,00Ј
f x()
X
p
()0
j № 0
p
l
()0
0<
il
()0
x
()1
f xfx() ()
() ()10
<
p
l
()0
0<
il
()0
b
a
b
kl
il
м о
ь э ю
il
()0
0>
xxxx x
mlkl n+- +11 1
, ..., ,, , ...,
x
l
x
k
Случай 6.1. Если в выражении (6.20) все коэффициенты
j
, неотрицательны, то в угловой точке допустимо-
го базисного решения (6.19) достигается минимум функции
из выражения (6.14) на допустимом множестве X задачи
(6.14)–(6.16) и этот минимум равен
.
Случай 6.2. Если в выражении (6.20) среди отрицательных
коэффициентов
ражении (6.17) все коэффициенты вая функция стве
и задача (6.14)–(6.16) не имеет решений.
,
j
, есть такой (например,
), что в вы-
, то целе-
не ограничена снизу на допустимом множе-
Случай 6.3. Если в выражении (6.20) хотя бы один из коэф-
фициентов
среди коэффициентов положительный, то существует угловая точка
такая, что
,
j
, отрицателен (например,
) и при этом
в выражении (6.17) есть хотя бы один
множества X
.
В случаях 6.1 и 6.2 процесс решения задачи линейного про-
граммирования на этом заканчивается.
Рассмотрим случай 6.3. Пусть в выражении (6.20) коэффи-
циент эффициенты
и в выражении (6.17) имеются положительные ко-
,
. Найдем номер
базисной пере-
менной из условия
()
0
k
min
()
0
=
:
a
i
()
il
()
0
i
, (6.21)
н
()
0
0
0
>
a
,
где минимум берется по всем номерам
.
Найдем решение системы (6.15), полагая свободными пере-
менные бодную переменную (6.17) в этом случае запишется следующим образом:
134
с базисной
, для которых
, то есть поменяв местами сво-
. Система уравнений вида
6.3. Симплекс-метод решения задачи линейного программирования
xx
ж
ц
a
()
0
()
()
xx
a
()
()
()
0
0
()
ж
ц
0
a
()
()
kl
x
()1
x
j
j mn=+1, ...,
j l№, x
k
x
()1
f xfx() ()
() ()10
<
x
()0
x
()2
x
()0
x
()1
X
n
m
()
n
() ()
+-
е
iijil
=+
jm
№
jl
00
aa
з з
1
и
kj
ч
()
0
ч
a
kl
ш
0
a
il
-
j
(()
0
a
kl
,
() ()
00
x
=-ba
ki il
, (6.22)
0
b
k
,
0
a
kl
n
++=
l
kj
е
() ()
0
aaba
1
=+
jm
kl
№
jl
1
j
0
kl
k
x
k
,
0
kl
а зависимость целевой функции от новых свободных перемен­ных имеет вид
()
n
() ()
f xppx
()
=-
е
=+
jm
№
jl
00
з
jl
з
1
и
kj
ч
()
0
ч
aa
kl
ш
0
p
l
-
j
(
00
kl
Компоненты нового базисного решения приравняв нулю свободные переменные
00
() ()
xp p
++
0
можно определить,
,
0
b
k
0)
a
kl
. (6.23)
,
и найдя при этом условии значения базисных переменных из вы­ражения (6.22). Базисное решение то есть угловой точкой множества
является допустимым,
, причем
По знакам коэффициентов в системе (6.22) и в выражении для целевой функции (6.23) можно получить один из трех слу­чаев, приведенных выше, как это было сделано для угловой точ­ки
. В случае 3 следует совершить переход к очередной угло-
вой точке
, аналогичный переходу от
к
и т. д.
Поскольку число угловых точек допустимого множества не превышает
, то случай 3 может повторяться конечное чис-
ло раз, то есть в результате конечного числа шагов перехода к новой угловой точке будет либо найдено решение задачи, либо сделано заключение о том, что она не имеет решений.
.
Симплекс-таблицы
Реализация описанного выше симплекс-метода значитель­но упрощается при использовании симплекс-таблиц.
135
6. Линейное программирование
x
m+1xlxn
x
1
110m+()10l()10n()1
0()
x
k
km+1
0()kl()0kn()0k()0
x
m
mm+1
0()ml()0mn()0m()0
p
m+1
0()
p
l
()0
p
n
()0
-p
0
0()
x
()0
x
()0
x
()1
kl
()0
kl
()0
kl
()0
x
m+1xkxn
x
1
111m+()11k()11n()1
1()
x
l
lm+1
1()lk()1ln()1l()1
x
m
mm+1
1()mk()1mn()1m()1
p
m+1
1()
p
k
()1
p
n
()1
-p
0
1()
Записав коэффициенты уравнений (6.17) и целевой функ-
ции (6.20) соответствующим образом
получим симплекс-таблицу задачи (6.14)–(6.16) для угловой точки
из допустимого базисного решения (6.19).
Совершим переход от симплекс-таблицы, соответствующей
угловой точке
Пусть номера
Элемент
, к симплекс-таблице для угловой точки
и
найдены так, как это было сделано выше.
, строка и столбец симплекс-таблицы, на пересе-
.
чении которых он находится, называются разрешающими или опорными, а сам элемент
— опорным элементом симплекс-
таблицы. Из формул (6.22) и (6.23) следует, что преобразование исходной симплекс-таблицы с опорным элементом
приво-
дит к новой симплекс-таблице
136
6.3. Симплекс-метод решения задачи линейного программирования
x
k
x
l
()1
i
()1
p
()1
p
j
=-
() () () ()00 00
ikli il k
=-
() () () ()00 00
p pp
=-aa
() () () ()00 00
kl
()0
x
()0
f xxxx xx() min=- +---®54 35
12345
325
26
3329
12345
xx xx
-+ +=
,
, ,
xjі 0
j =15, ...,
x()(, ,, ,)
0
00121=
для определения элементов которой необходимо выполнить следующие действия:
1. Поменять местами переменные
и
, остальные пере-
менные таблицы оставить на прежних местах.
2. На место опорного элемента записать 1.
3. На остальных местах разрешающей строки поставить со­ответствующие элементы исходной таблицы.
4. На свободные места разрешающего столбца записать соответствующие элементы исходной таблицы, взятые со знаком минус.
5. На оставшихся свободных местах элементов в новой симплекс-таблице написать числа ij, i,
ij
,
,
, най-
j
денные следующим образом:
ij kl ij kj il
6. Все полученные элементы новой таблицы разделить на опорный элемент
Пример 6.7
Решить задачу линейного программирования симплекс-ме-
тодом, используя
Решение Запишем расширенную матрицу
равенств данной задачи:
,
jklj kj l
.
,
.
в качестве начальной угловой точки
,
12 45
23
xxxxx
-+++=
12345
xxxxx
-+++=
,
,
.
системы ограничений-
137
6. Линейное программирование
-
ж
и
ц
ш
ч ч
ч
31021
5
x()(, ,, ,)
0
00121=
A
x
3
x
4
x
5
xx x
21
51
-- =
,
,
f xxx() min=- +-®51812
12
x()(, ,, ,)
0
00121=
p
()0
j № 0
p
1
0
5()=-
x()(, ,, ,)
0
00121=
p
1
0
5()=-
i1
0()
p
1
0()
A b =
з
-
23121
з з
-
31132
6 9
Так как угловая точка ми 3, 4 и 5 матрицы
системы ограничений-равенств задачи
, то столбцы с номера-
образуют базисный минор. С помощью эквивалентных преоб­разований приведем эту систему к виду системы (6.17), где ба­зисными являются переменные
31 2
xxx
23 2
+-=
412
xx x
-+ =
51 2
,
,
:
(6.24)
.
Исключим с помощью системы уравнений (6.24) базисные
переменные в выражении для целевой функции:
. (6.25)
С помощью равенств (6.24) и (6.25) составим симплекс-та-
блицу, соответствующую угловой точке
х
х
1
2
х
–1 –2 1
3
2 –3 2
х
4
–1 5 1
х
5
–5 18 12
:
Среди коэффициентов
отрицательный — это элемент плекс-таблицы. Следовательно, угловая точка не является решением задачи. Для отрицательного элемента
среди коэффициентов
элементов симплекс-таблицы, стоящих в столбце, что и
138
,
j
, из выражений (6.20) есть
последней строки сим-
из выражения (6.17) (то есть
)
6.3. Симплекс-метод решения задачи линейного программирования
x
()1
f x()
x
1
p
1
0()
41
0
2()=
x
4
1 2
-
7 2
1 2
-
3 2
127 2
5221
2
p
()1
j № 0
x
()1
x
4
x
2
f x()
xx
*()
(, ,,,)==110202
f x()
f*=-17
есть положительный, значит, возможен переход к новой угло­вой точке
с меньшим значением целевой функции
.
Найдем опорный элемент. Разрешающим столбцом сим­плекс-таблицы является столбец, соответствующий свободной переменной
. Разрешающая строка находится в соответствии
с выражением (6.21): так как положительный элемент, стоящий в том же столбце, что и элемент
, единственный (это —
), то в качестве разрешающей строки берем строку табли-
цы, соответствующую базисной переменной
.
Итак, опорный элемент найден — в симплекс-таблице он обведен рамкой.
Заполнив новую симплекс-таблицу по правилам, описан­ным выше, получим
х
х
4
2
х
3
х
1
х
5
2
1
2
17
В этой симплекс-таблице оба коэффициента
j
следней строке положительны. Поэтому угловая точка ответствующая свободным переменным
кой минимума целевой функции Минимальное значение
со знаком минус записано в пра-
и
, является точ-
:
вом нижнем углу симплекс-таблицы, поэтому
,
, в по-
, со-
.
.
139
6. Линейное программирование
x
()0
f xxxxxx() min=- ---+ ®
1234 5
4
367
36
1234
xxxx
++-=
,
,
xjі 0
j =15, ...,
x()( ,,,,)
0
1 2200=
-
ж
и
ц
ш
ч ч
ч
3110 6
7
x()( ,,,,)
0
1 2200=
x
1
x
2
x
3
xxx
1
22
+-=
,
,
f xx() min=- -®35
4
x()( ,,,,)
0
1 2200=
Пример 6.8
Решить задачу линейного программирования симплекс-ме-
тодом, используя
в качестве начальной угловой точки,
1235
233710
xx xxx
++ +-=
12 345
xxxx
-++- =
,
,
1
,
,
.
Решение Запишем расширенную матрицу
системы ограничений-
равенств данной задачи:
з
A b =
Так как угловая точка ми 1, 2 и 3 матрицы
2133 7
з з
--
31160
системы ограничений-равенств задачи
-
10
1
, то столбцы с номера-
образуют базисный минор. С помощью эквивалентных преоб­разований приведем эту систему к виду выражения (6.17), где базисными являются переменные
145
xxx
522
--=
245
xxx
+-=
345
,
,
:
(6.26)
.
Исключим с помощью (6.26) базисные переменные в выра-
жении для целевой функции:
С помощью равенств (6.26) и (6.27) составим симплекс-та-
блицу, соответствующую угловой точке
140
. (6.27)
:
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]