Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Matematicheskoe_programmirovanie_Otvety_s_8-12.doc
Скачиваний:
11
Добавлен:
24.09.2019
Размер:
381.95 Кб
Скачать

Вопрос 11:Симплексные таблицы. Последовательное улучшение плана. Связь оценок свободных неизвестных с приращением целевой функции.

симплекс-таблица представляет собой расширенную матрицу системы ограничений с некоторыми дополнительными столбцами и строками. Рассмотрим пример симплекс таблицы для следующей задачи: Найти значения переменных x1...x5, при которых функция:

Q =

5

x1

+

7

x2

+

2

принимает максимальное значение, при условии следующих ограничений :

2

x1

+

4

x2

+

x3

=

64

   (1)

x1

+

2

x2

+

x4

=

70

   (2)

-

x2

+

x5

=

18

   (3)

x1, x2, x3, x4, x5 ≥ 0 Симплекс таблица имеет следующий вид:

БП

x1

x2

x3

x4

x5

Решение

Отношение

x3

2

4

1

0

0

64

64

/

4

=

16

x4

1

2

0

1

0

70

70

/

2

=

36

x5

0

-1

0

0

1

18

--

Q

5

7

0

0

0

-2

--

Самая верхняя строка - чисто информационная, в ней указывается назначение столбцов. Столбец "БП" также информационный, каждая клетка этого столбца содержит имя переменной, являющейся базисной в соответствующем уравнении системы ограничений. В нашем примере, в первом уравнении, базисной переменной является переменная X3, во втором X4, в третьем X5. Столбцы X1...X5 содержат коэффициенты при соответствующих переменных в уравнениях системы ограничений (каждому уравнению соответствует отдельная строка). В столбец "Решение" изначально записываются свободные члены соответствующих уравнений. Они же показывают значения базисных переменных для текущегого решения, отображаемого симплекс-таблицей, на некотором шаге (итерации) решения задачи. Коэффициенты целевой функции отражаются в симплекс-таблице в строке "Q", свободный член, как и в случае с уравнениями системы ограничений, изначально записывается в столбец "Решение". Он же одновременно является значением целевой функции, но записанный с противоположным знаком (это удобно для симплекс-метода). В нашем примере показанная симплекс-таблица соответствует некоторому решению при котором переменные X3, X4, X5 равны соответственно 64, 70, 18 (см. столбец "Решение"), а остальные перемнные равны нулю. Значение целевой функции "Q" при этом равно двум (что несложно проверить подставив значения переменных в выражение для целевой функции). В нашем примере свободный член равен -2 (минус два) т.к. в записи целевой функции он записан вместе с переменными по одну сторону от знака равенства, а свободные члены в уравнениях системы ограничений по другую. Поэтому перед записью в таблицу его необходимо перенести вправо от знака равенства. Строка "Q" в данном примере выделена желтым цветом, это значит, что по ней будет приниматься решение относительно выбора разрешающего столбца (иногда его называют направляющим). Разрешающий столбец соответствует переменной, которая будет введена в базис (в список базисных переменных) на следующей итерации решения задачи. Цель подобной замены базиса - улучшение значения целевой функции. Критерием выбора разрешающего столбца является максимальный положительный коэффициент в строке "Q", при решении задачи на максимум, или минимальный отрицательный, при решении задачи на минимум. Если после очередной итерации в строке не окажется положительных (при максимизации), или отрицательных (при минимизации) коэффициентов, то оптимальное решение достигнуто. В нашем примере разрешающий столбец выбран по коэффициенту 7 (максимальный положительный т.к. задача на максимум), он соответствует переменной X2, именно она будет введена в базис на следующей итерации. Числа стоящие в направляющем столбце окрашиваются красным цветом. Красным цветом также окрашивается и разрешающая (направляющая) строка, она соответствует переменной которая будет выведена из базиса (списка базисных переменных) на следующей итерации. Для ее определения рассчитывается и заполняется столбец "Отношение". Его элементы представляют собой отношения элементов столбца "Решение" к соответсвующим элементам направляющего столбца (кроме строки "Q"). Выбор разрешающей строки производится по минимальному значению из всех отношений. Важно то, что данные отношения рассчитываются только для положительных элементов направляющего столбца. Если на некоторой итерации в направляющем столбце положительных коэффициентов не окажется, то целевая функция исходной задачи неограничена, задача не имеет решения. В нашем примере направляющая строка выбрана по минимальному отношению 16, она соответствует базисной переменной X3, именно она будет выведена из базиса на следующей итерации (ее место займет X2)

Вторая часть вопроса:

Описываемый здесь метод основан на симплексном переходе от одного базиса к другому. Метод разработан для решения задач линейного программирования, записанной в форме (1.1) -(1.3). Для записи ограничений (1.2) используем формулу (1.4).

Считается, что найден базис P1,P2,…,Pm, обозначаемый

(P1,P2,…,Pm ) = В (3.1) такой, что в разложении

P0 = ξ10P1 + ξ20P2 +…+ ξm0Pm (3.2)

Коэффициенты ξi0 ≥ 0 ,i=1,…,m.

Соглашение о том, что исходный базис В составляет первые m столбцов матрицы А, не ограничивает общности рассуждений, так как этого можно добиться перенумерацией неизвестных.

Согласно определению 2 n-мерный вектор

х0 = (ξ10, ξ20,…,ξm0,0,…,0)t

является опорным планом, соответствующим базису (3.1).

Конечной целью решения задачи линейного программирования является нахождение минимума линейной формы. Поэтому симплексный переход от базиса В к новому базису В’ целесообразно осуществлять так, чтобы для опорного плана x' , соответствующего базису B’ , выполнялось неравенство Сtx0 ≥ Сtx’. В этом случае говорят, что план x' лучше плана x0. Улучшать план можно с помощью различных алгоритмов. Один из них и описывается в настоящем параграфе.

Пусть

Pk1kPk2kP2+...+ξmkPm , k=0,1,...,m (3.3)

При k=0 равенство (3.3) совпадает с (3.2). Обозначим

Zk1kC12kC2+...+ξmkCm , k=0,1,...,n (3.4)

Заметим, что z0=Ctx0 , т.е. z0, является значением линейной формы Ctx на опорном плане x0.

Все исходные данные сведем в таблицу, называемую симплексной (см.табл.3.1). В симплексной таблице первые два столбца

Таблица 3.1

Базис В

Сбаз

С0=0

С1

C2...

Cs...

Cm...

Cj...

Ck...

Cn

B-1P0

B-1P1

B-1P2...

B-1Ps...

B-1Pm...

B-1Pj...

B-1Pk...

B-1Pn

P1

C1

ξ10

1

0...

0...

0...

ξ1j...

ξ1k...

ξ1n

P2

C2

ξ20

0

1...

0...

0...

ξ2j...

ξ2k...

ξ2n

...

...

...

...

...

...

...

...

...

...

Ps

Cs

ξs0

0

0...

1...

0...

ξsj...

ξsk...

ξsn

...

...

...

...

...

...

...

...

...

...

Pm

Cm

ξm0

0

0...

0...

1...

ξmj...

ξmk...

ξmn

k = zk-ck

z0

0

0...

0...

0...

zj-cj...

zk-ck...

zn-cn

и первые две строки назовем окаймляющими. Остальные элементы составляют основную таблицу. Строкам таблицы приписываются номера от 1 до m+1, столбцам от 1 до n. В столбец окаймления “базис” записываются векторы базиса или их номеры. В столбец Сбаз записываются коэффициенты Ci линейной формы Ctx с номерами, соответствующими номерам базисных векторов. В первой окаймляющей строке выписываются все коэффициенты линейной формы, для единообразия дальнейших вычислений в нулевом столбце можно записать C0=0. В к-ом (к=0,...,n) столбце стоят коэффициенты разложения вектора Рк по базису В, точнее ξsk – коэффициент при векторе Рк по базису В. Числа ∆k = zk-ck , стоящие в m+1-ой строке, называются оценками, при этом ∆0=z0=Cбаз B-1P0= Ctx0. Заметим, что zk по определению (3.4) является скалярным произведением столбца Сбаз на столбец B-1Pк. В связи с этим

ktбаз B-1Pкк , k=0,1,...,n. (3.5)

Заметим, что если уравнение (1.4) умножить слева на B-1, то получим уравнение

B-1P0 = ξ1 B-1P1 + ξ2 B-1P2 + ξn B-1Pn , равносильное уравнению (1.4). Таким образом, в симплексной таблице 3.1 записана в преображенном виде расширенная матрица системы (1.2).

Теорема 1. Пусть для базиса (3.1) выполняются неравенства ξi0 ≥ 0, i=1,...,m и zk - ck ≤ 0,k=1,...,n. Тогда опорный план х0 , соответствующий базису (3.1) оптимален.

Доказательство. Пусть y=(η12,...,ηn)t произвольный план задачи (1.1)-(1.3). Тогда ηк ≥ 0, к=1,...,n и ∑ηкРк = Р0 (сумма от к=1 до n). Отсюда Р0 = ∑∑ηкξjkPk (сумма от j=1 до m, сумма от к=1 до n)в силу (3.3). Сравнивая это равенство с (3.2), в силу единственности разложения вектора Р0 по базису В находим

ξj0 = ∑ ηkξjk (сумма от к=1 до n) используя это равенство, а также неравенства zk ≤ ck , k=1,...,n и равенство (3.4), находим Сty = ∑ ckηk ≥ ∑zkηk (сумма от к=1 до n)= = ∑∑ξjkηkcj (сумма от j=1 до m, сумма от к=1 до n) = ∑cjξj0 (сумма от j=1 до m) =Сtx0.

Но это неравенство, в силу произвольности плана y, и означает, что опорный план х0 оптимален. Теорема доказана.

Итак, если все оценки неположительные, то задача (1.1)-(1.3) решена. Пусть далее базис В таков, что ему соответствует опорный план х0 и среди оценок ∆k, k=1,...,n есть положительные. В этом случае могут возникнуть две существенно различные ситуации. Первая из них характеризуется следующей теоремой.

Теорема 2. Пусть для базиса (3.1) выполняется неравенства ξi0 ≥ 0 , i=1,…,m. Если для какого-либо j выполняется неравенство Δj > 0, но ξij ≤ 0 для всех i=1,…,m, то линейная форма Сtх неограничена снизу.

Доказательство. Вычитая из равенства (3.2) равенство (3.3) при k = j, умноженное на произвольное положительное число θ, получим P0 = ∑(ξi0 - θξij)Pi + θPj (сумма от i=1 до m). Это равенство показывает, что n – мерный вектор х’ = (ξ10 – θξ1j,…, ξm0- θξmj, 0,…, 0, θ,…,0)t, где θ является j- ой координатой, удовлетворяет условию (1.4). Так как ξi0 ≥ 0, ξij ≤ 0, для любого i, то х’ ≥ 0 и, следовательно, х’ является планом задачи (1.1)-(1.3). Тогда из равенства Сtx’= ∑Cii0 - θξij) + θCj = Сtx0 - θΔj (сумма от i=1 до m), справедливого для любого θ > 0, следует неограниченность линейной формы Сtx снизу. Теорема доказана.

Итак, в ситуации, описанной в теореме 2, решение задачи линейного программирования заканчивается, так как минимум линейной формы Сtx становится известным, он равен -∞.

Пусть таблица 3 такова, что для тех j, для которых Δj > 0, выполняется неравенство ξij > 0, хотя бы для одного i. В этом случае делается симплексный переход к новому базису. При этом ставится цель – для опорного плана, соответствующего новому базису, значение линейной формы не должно быть больше, чем при старом плане. Будет показано, что через конечное число таких переходов возникнет одна из ситуаций, описанных теоремами 1или 2.

Итак, опишем процедуру симплексного перехода к новому базису с уменьшением линейной формы Сtx. Пусть исходным является базис (3.1) и пусть новый базис образуют векторы

(P1,…,Ps-1,Pj,Ps+1,…,Pm) = B’ , j > m. (3.6). Согласно лемме 2 ξij (см. формулу (3.3) при k = j) отличен от нуля. В силу леммы 3 разложение любого вектора Pk по базису (3.6) имеет вид

Pk = ∑(ξik – (ξsksjij)Pi + (ξsksj)Pj (сумма от i≠s до m), k=0,1,…,n. (3.7)

Эту формулу, впрочем, можно получить непосредственно, если записать равенство (3.3) при k = j, найти из него Ps и найденное для Ps выражение подставить в (3.3).

Тогда новое значение z’k, являющееся скалярным произведением столбцов Сбаз и к-го новой симплексной таблицы, определится равенством

z’k = ∑(ξik – (ξsksjij)Ci + (ξsksj)Cj (сумма от i≠s до m), k = 0,1,…,n. (3.8)

Вычитая, наконец, Ск из обеих частей равенства (3.8) и считая С0=0, получим формулы пересчета для оценок ∆’k= ∆k – (ξsksj) ∆j , k=0,1,…,n (3.9)

Формулы (3.9) показывают, что оценки ∆к пересчитываются по тем же правилам исключения (2.10), по каким пересчитываются и координаты векторов Рк.

Проведем теперь анализ, который позволит установить правило выбора вводящегося в базис вектора Pj и выводящегося из базиса (3.1) вектора Ps. Для этого обратимся к равенствам (3.7) и (3.9) при k = 0. Обозначим θj = ξs0sj в силу формулы (3.9) при k = 0, новое значение ∆0 линейной формы Сtх может быть меньше старого значения ∆0, если θjj ≥ 0 (3.10).

В силу формулы (3.7) при k = 0 вектор x’ = (ξ’10, ξ’20,…, ξ’n0), где

ξi0 - θjξij , i=1,…,s-1,s+1,…m,

ξ’io = θj , i = j (3.11)

0 в остальных случаях,

удовлетворяет ограничениям (1.4). Чтобы вектор х’ был планом, необходимо, чтобы выполнялись неравенства ξ’i0 ≥ 0, i=1,…,n.

В частности, чтобы обеспечить неравенство ξ’i0 = θi ≥ 0 в любых задачах, необходимо выбирать ведущий элемент ξsj > 0. По тем же причинам из (3.10) следует, что j надо выбирать так, чтобы было Δj > 0.

Найдем, наконец, условия, при которых будут неотрицательными ξ’i0 при i ≠ s. Так как ξi0 ≥ 0, θj ≥ 0 то неравенства ξi0 – θjξij ≥ 0 выполняются для тех i, для которых ξij ≤ 0. Пусть I ={i| ξij > 0}. Чтобы выполнялись неравенства ξi0 - θjξij ≥ 0 для всех i I, должны выполняться неравенства θj ≤ ξi0ij для любого i I. Так как s I и θj = ξs0sj ,то θj = min ξi0ij. Это равенство и определяет правило выбора выводящегося из базиса вектора. Именно в качестве индекса s нужно выбирать тот, для которого достигается минимум отношений ξi0ij при i I.

В результате такого выбора индексов j и s план x’ с координатами (3.11) будет опорным, так как ненулевым координатам плана x’ соответствует линейно-независимые векторы (3.6).

Полученный результат сформулируем в виде теоремы.

Теорема 3. Пусть для базиса (3.1), которому соответствует опорный план x0, выполняются неравенства Δj > 0 для некоторого j и ξij > 0 хотя бы для одного i. Тогда базису (3.6), где s oопределяется равенством θj = ξs0sj = min ξi0ij, (i| ξij > 0), (3.13) соответствует опорный план x, для которого Ctx’ ≤ Ctx0, при этом Сtx’ < Ctx0, если ξs0 0.

Теоремой 3 завершается формулировка принципов построения нового опорного плана x’ такого, что Сtx’ ≤ Ctx0. Эти принципы можно реализовать с помощью различных алгоритмов. Следующий алгоритм называется симплексным методом или методом последовательного улучшения плана.

Симплексный метод. Пусть выполнены следующие два условия:

А) выбран базис (3.1) такой, что в разложении (3.2) все ξi0 ≥ 0,

Б ) построена соответствующая этому базису симплексная таблица 3.1.

1. Если Δj ≤ 0 для всех j=1,…,n, то задача решена и опорный план х0, соответствующий базису (3.1), является оптимальным. В противном случае переходим к пункту 2.

2. Просматриваются столбцы B-1Pj для тех j, для которых

Δj = zj – cj > 0. Если хотя бы в одном из таких столбцов ξij ≤ 0 для всех i=1,…,m, то решение задачи прекращается - линейная форма не ограничена снизу. В противном случае выбирается любое j, для которого Δj > 0. Вектор Рj будет вводиться в базис.

3. Выбирается минимальное из отношений ξi0ij для тех i, для которых ξij > 0. Пусть этот минимум достигается при i = s. Тогда вектор Ps выводится из базиса. Обозначим ξs0sj = θj.

4. В окаймляющих столбцах "базис" и Сбаз таблицы 3.1 вектор Ps и число Сs заменяются, соответственно, на Pj и Cj.

5. Элемент ξsj выбирается за ведущий и в таблице 3.1 производится процесс исключения элементов j-го столбца, в том числе и элемента Δj, по одному из алгоритмов 1-3 исключений из §2 (см. табл. 2.1 и 2.2). Для вновь полученной симплексной таблицы процесс повторяется с пункта 1.

Замечание. Легко понять, что при решении задачи максимизации Сtх при ограничениях (1.2), (1.3) можно использовать этот же алгоритм с той разницей, что в базис нужно вводить вектор Pj, для которого Δj < 0 и останавливать счет, если Δj ≥ 0 для всех j=1,…,n. При этом линейная форма окажется неограниченной сверху, если хотя бы для одного j выполняются одновременно неравенства Δj < 0, ξij ≤ 0, i=1,…,m.

 

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]