Issuu on Google+

Зенкевич Н.А.

Материалы к установочной лекции. Вопрос № 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


заголовок