Симплекс-метод решения задачи линейного программирования

advertisement
Зенкевич Н.А.
Материалы к установочной лекции. Вопрос № 33.
Симплекс-метод решения задачи линейного программирования
1. Эквивалентные формулировки задачи линейного программирования
1.1 Формулировка задачи линейного программирования. Напомним, что математически
задача ЛП — это задача нахождения наибольшего (наименьшего) значения линейной
функции многих переменных при линейных ограничениях типа равенств (неравенств), когда
на переменные задачи есть (нет) ограничений на знак. В общем случае формально это
означает задачу (для задачи максимизации):
(1) : max z = max(c1 x1 + " + c n x n )
(2) : a i1 x1 + " + ain x n ≤ bi , i = 1, m1
(3) : ai1 x1 + " + ain x n = bi , i = m1 , m
(4) : x j ≥ 0, j = 1, n1 ,
(5) : x j ≥≤ 0, j = n1 , n.
Аналогично можно написать общую постановку для задачи минимизации
Однако решаются такие задачи, когда они записаны в одном из специальных видов. Для
задачи максимизации имеется 4 специальных вида задачи ЛП: стандартная и каноническая
формы.
1.2. Стандартная форма задачи ЛП максимизации:
(1) : max z = max(c1 x1 + " + c n x n )
(2) : a i1 x1 + " + a in x n ≤ bi , i = 1, m
(3) : x j ≥ 0, j = 1, n
В матричном и векторном виде эта задача может быть записана так
max z = max CX
AX ≤ B
X ≥0
max z = max CX
⇔
Ai X ≤ bi , i = 1, m
X ≥0
1.3. Каноническая форма задачи ЛП максимизации:
(1) : max z = max(c1 x1 + " + c n x n )
(2) : ai1 x1 + " + ain x n = bi , i = 1, m
(3) : x j ≥ 0, j = 1, n
В матричном и векторном виде эта задача может быть записана так
1
Зенкевич Н.А.
Материалы к установочной лекции. Вопрос № 33.
max z = max CX
AX = B
max z = max CX
⇔
X ≥0
Ai X = bi , i = 1, m
X ≥0
2. Алгебраические основы симплекс-метода
2.1. Множество допустимых решений для канонической задачи
Рассмотрим каноническую задачу ЛП максимизации
max z = max CX
AX = B
X ≥0
Множество допустимых решений задачи имеет вид
M = {X AX = B, X ≥ 0}
называется многогранным и является выпуклым и замкнутым.
2.2. Понятие решения для системы линейных уравнений (СЛУ), зависящего от
множества индексов
Пусть S ⊂ {1,2,", n} - множество индексов (подмножество множества номеров столбцов
матрицы) и пусть дана система линейных уравнений
n
AX = B ⇔ ∑ A j x j = B
j =1
Говорят, что решение X = ( x1 ,", x n ) СЛУ зависит от множества индексов S, если
x j = 0, j ∉ S .
2.3. Понятие базисного решения СЛУ.
Говорят, что решение X = ( x1 ,", x n ) СЛУ базисное, если оно зависит от такого множества
{ }
индексов S, что векторы A j
j∈S
- образуют столбцовый базис матрицы A.
2.4. Понятие допустимого базисного решения
Говорят, что решение X = ( x1 ,", x n ) СЛУ является базисным допустимым, если оно
базисное для СЛУ и X ≥ 0 , т.е. оно базисное и допустимое для задачи ЛП в канонической
форме.
2.5. Совместность и неизбыточность СЛУ
Напомним, что СЛУ
2
Зенкевич Н.А.
Материалы к установочной лекции. Вопрос № 33.
n
AX = B ⇔ ∑ A j x j = B
j =1
совместна и неизбыточна, если
rank ( A) = rank ([ A, B ]) = m, m ≤ n
Если СЛУ удовлетворяет данному условию, то допустимое базисное решение существует и
совпадает с экстремальной (угловой, крайней) точкой множества допустимых решений
задачи ЛП в канонической форме.
2.6. Нахождение базисного решения
Предположим, что СЛУ находится в условиях п. 2.5.
ƒ
Рассматриваем систему линейных уравнений
⎧a11 x1 + " + a1 j x j + " + a1n x n = b1 ,
⎪
⎨""
⎪a x + " + a x + " + a x = b
mj j
mn n
m
⎩ m1 1
ƒ
Для нахождения базисного решения, зависящего от множества индексов S = {1,", m}
надо привести данную систему к диагональной форме по базисным переменным
x1 ," , x m (используя метод Гаусса). Получим:
⎧ x1 + " + a 1m +1 x m +1 + " + a1n x n = b1 ,
⎪
⎨""
⎪
⎩ x m + a mm+1 x m+1 + " + a mn x n = b m .
ƒ
Полагая переменные, не вошедшие в диагональную форму (небазисные переменные)
равными нулю: x j = 0, j = m + 1, n, получаем x j = b j , j = 1, m - значения для базисных
переменных.
3. Процедура симплекс-метода
3.1. Понятие базисного решения – основа симплекс-метода
Оказывается, что для нахождения оптимального решения достаточно ограничиться
рассмотрением только базисных (допустимых базисных) решений в силу справедливости
следующих утверждений (теорем).
1. Если у системы линейных уравнений (СЛУ) существует решение (СЛУ - совместна), то
существует и базисное решение этой СЛУ.
2. Если задача ЛП в канонической форме имеет допустимое решение, то она имеет и
допустимое базисное решение
3. Если задача ЛП имеет оптимальное решение, то она имеет и оптимальное базисное
решение.
3
Зенкевич Н.А.
Материалы к установочной лекции. Вопрос № 33.
В силу справедливости последнего утверждения, вычислительный алгоритм линейного
программирования (симплекс-метод) основан на нахождении именно оптимального
базисного решения и оперирует только с допустимыми базисными решениями.
3.2. Прямой симплекс-метод решения ЛП задачи (вспомогательные построения)
ƒ
Рассмотрим задачу линейного программирования в канонической форме
(1) : max z = max(c1 x1 + " + c n x n )
(2) : a i1 x1 + " + a in x n = b i , i = 1, m
(3) : x j ≥ 0, j = 1, n
ƒ
По этой задаче ЛП запишем систему линейных уравнений, соответствующую этой
задаче:
(4) : z − c1 x1 − " − c n x n = 0,
(5) : a i1 x1 + " + a in x n = b i , i = 1, m
ƒ
Приведем данную систему к диагональной форме по переменным z , x1 , ", x m :
⎧ z + " + c m +1 x m+1 + " + c n x n = z 0 ,
⎪
⎪ x1 + " + a1m +1 x m+1 + " + a1n x n = b1 ,
⎨
⎪""
⎪x + a
mm +1 x m +1 + " + a mn x n = bm .
⎩ m
ƒ
Составим таблицу коэффициентов данной диагональной формы (симплексная
таблица, сокращенно С-Т):
z
x1
…
xr
…
xm
z
z0
b1
…
br
…
bm
x1
0
1
…
0
…
0
…
…
…
…
…
…
xr
0
0
…
1
…
0
…
…
…
…
…
…
xm
0
0
…
0
…
1
xm+1
cm+1
a1m+1
…
arm+1
…
amm+1
…
…
…
…
…
…
xs
cs
a1s
…
ars
…
ams
…
…
…
…
…
…
xn
cn
a1n
…
arn
…
amn
Симплексная таблица – основной элемент вычислительной процедуры симплекс-метода.
3.5. Классификация симплексных таблиц.
ƒ
ƒ
Симплексная таблица называется прямо допустимой, если bi ≥ 0, i = 1, m . Прямодопустимая С-Т соответствует допустимому базисному решению.
Симплексная таблица называется двойственно допустимой, если c j ≥ 0, j = 1, n .
4
Зенкевич Н.А.
ƒ
Материалы к установочной лекции. Вопрос № 33.
Симплексная таблица называется оптимальной, если она одновременно и прямо
допустимая, и двойственно допустимая. Оптимальная С-Т соответствует
оптимальному базисному решению.
3.6. Алгоритм прямого симплекс-метода (максимизации).
0. Начать вычисления с прямо-допустимой симплексной таблицы.
Вычисления по алгоритму состоят в выполнении следующих однотипных итераций. Каждая
такая итерация состоит из трех последовательно выполняемых шагов.
ИТЕРАЦИЯ
1. Проверка оптимальности или нахождение ведущего столбца С-Т.
ƒ
ƒ
Если все коэффициенты в выделенной строке при небазисных переменных
неотрицательны (коэффициенты в z-уравнении), то текущее базисное решение
является оптимальным.
В противном случае на следующей итерации в число базисных переменных
вводим небазисную переменную xs, номер которой находится по правилу:
c s = min c j .
c j <0
Столбец под номером s называется ведущим столбцом симплексной таблицы.
2. Проверка условия неограниченности решения задачи ЛП и нахождение ведущей
строки (ведущего элемента) С-Т.
ƒ
ƒ
Если в ведущем столбце симплексной таблицы s нет положительных
коэффициентов, то значение задачи ЛП неограниченно (нет оптимального
решения)
В противном случае (в ведущем столбце имеются положительные элементы) в
качестве базисной переменной, которая исключается из числа базисных,
выбирается та переменная xr, для которой
b
br
= min i .
a
>
0
is
a rs
ais
Строка под номером r называется ведущей строкой С-Т, а элемент ars>0 –
ведущим элементом С-Т.
3. Преобразование симплексной таблицы.
ƒ
Используя эквивалентные преобразования таблицы (процедуру Гаусса)
пересчитываем таблицу так, чтобы ведущий элемент новой С-Т стал равным 1,
а все остальные элементы ведущего столбца – равными 0.
Обозначим верхним индексом 1 элементы новой симплексной таблицы. Тогда
формулы пересчета коэффициентов примут вид:
5
Зенкевич Н.А.
Материалы к установочной лекции. Вопрос № 33.
a rj
a 1rj =
br1 =
a rs
, j = 1, n,
br
,
a rs
a ij1 = a ij −
bi1 = bi −
c1j = c j −
z1 = z 0 −
ƒ
a rj
a rs
ais , i ≠ r , j = 1, n,
br
a is , i ≠ r ,
a rs
a rj
a rs
c s , j = 1, n,
br
cs .
a rs
Перейти к исследованию новой симплексной таблицы (новая итерация).
3.7. Пример расчетов по алгоритму прямого симплекс-метода.
max z = max(5 x1 + 3 x 2 )
⎧ z − 5 x1 − 3x 2 = 0,
⎪
⇒ ⎨ x1 + x 2 + s1 = 4,
⎪5 x + 2 x + s = 10.
2
2
⎩ 1
x1 + x 2 ≤ 4,
5 x1 + 2 x 2 ≤ 10,
x1 ≥ 0, x 2 ≥ 0.
z
s1
s2
z
0
4
10
x1
-5
1
5
x2
-3
1
2
s1
0
1
0
s2
0
0
1
z
s1
x1
z
10
2
2
x1
0
0
1
x2
-1
3/5
2/5
s1
0
1
0
s2
1
-1/5
1/5
z
x2
x1
z
40/3
10/3
2/3
x1
0
0
1
x2
0
1
0
s1
5/3
5/3
-2/3
s2
2/3
-1/3
1/3
Ответ задачи будет:
z ∗ = 40 / 3, x1∗ = 2 / 3, x 2∗ = 10 / 3, s1∗ = 0, s 2∗ = 0.
6
Download