Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Методы оптимизации. Учебное пособие-3
.pdf
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)
:
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
