Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Алгоритм симплекс метода



При решении ЗЛП симплекс-метод реализуется в виде так называемой симплекс таблицы. Алгоритм симплекс метода состоит из следующих этапов:

1. Заготавливается исходная симплекс таблица в первом столбце которой располагаются обозначения векторов входящих в базис, во втором столбце коэффициенты Ci ЦФ соответствующие векторам, входящим в базис, а в третьем столбце пишется величина Z0, где Z0=∑mi=1CiXi. Далее идут столбцы соответствующие всем векторам Aj, в этих столбцах записываются координаты этих векторов в рассматриваемом базисе, при этои для векторов входящих в базис эти координаты имеют вид (0,0,0,…,0,1,0,…,0). Здесь: единица стоит в той строке, где находится сам базисный вектор. В дополнительной строке сверху выписывают коэффициенты Ci соответствующие этим векторам. В дополнительной строке снизу пишутся величины Zj-Cj=∑mi=1CiXij-Cj . Далее идут этапы которые связаны с преобразованием заготовленной таблицы.

2. рассматривается дополнительная строка снизу:

· если все разности Zj-Cj<=0, то полученный план является оптимальным (теор. 2)

· если Zj-Cj>0 для некоторого j, то выбирается столбец с максимальным значением этой разницы. Индекс j определяе вектор вводимый в базис. Пусть max(Zj-Cj)= Zi-Ci значитвектор Ai необходимо ввести в базис. Этот вектор называется направляющим, ему соответствует направляющий столбец, который помечают символом «↑»

3. просматриваем направляющий столбец если в нем все xil<0, то значит ЦФ не ограничена снизу, если есть xil>0, то находим величину Ө0=mini xi/xil просматриваются только те дроби для которых xil>0. Пусть этот минимум достигается для вектора Ak, тогда именно этот вектор подлежит выводу из базиса. Строка соответствующая этому вектору называется направляющей и обозначается «à».

4. После определения направляющих столбца и строки заполняют новую симплекс таблицу. В такой таблице на месте направляющей строки будет стоять Ai . Заполнение новой таблицы начинается с направляющей строки. В качестве компоненты опорного плана туда пишется величина Ө0 Xl0=Xk/Xkl, остальные элементы этой строки определяются по формуле Xlj Xlj=Xkj/Xkl где Xkl элемент находящийся на пересечении направляющих строки и столбца, именно на него делятся все бывшие элементы направляющей строки, а на месте бывшего элемента Xkl автоматически появляется единица. Общее правило для пересчета направляющей строки можно записать так: Ak (новый эл-т направляющей строки)=(старый Эл-т направл. строки)/(эл-т стоящий на пересечении направл. столбца и строки)

5. Пересчитываются все элементы остальных строк таблицы, включая дополнительную нижнюю строку. Пересчет производится по формулам

· для компонент опорного плана Xi=Xi0Xil=Xi-(Xk/Xkl)*Xil

· для компонент разложенных по базису Xij=Xij-(Xkj/Xkl)*Xil

· для дополнительной строки Zj-Cj=(Zj-Cj)-(Xkj/Xkl)*(Zl-Cl)

Все эти формулы строятся по одному правилу:

(новый эл-т)=(старый эл-т)-(эл-т новой направл. строки)*(эл-т направл. столбца стоящего в соотв. строке)

После заполнения новой симплекс таблицы осуществляется переход ко второму этапу алгоритма.

Методы природного и искусственного базиса. Основные понятия, алгоритмы методов.

Для большинства задач линейного программирования возникают трудности при их решении связанные с определением исходного опорного плана и исходной симплекс таблицы, с которой начинаются все итерации. Обусловлено это тем, что в реальных задачах среди векторов Ai нет векторов, содержащих только одну не нулевую компоненту, т. е. векторов вида (0,0,0,…,0,1,0,…,0) или их количество не достаточно для формирования базиса. Т. е. не возможно сформировать природный базис.

Метод искусственного базиса основан на искусственном введении в математическую модель задачи таких векторов.

Пусть задана ЗЛП канонической формы

F: C1X1=C2X2+…+CnXnàmin

a11x1+a21x2+…+an1xn=b1

a12x1+a22x2+…+an2xn=b2

…………………………

a1mx1+a2mx2+…+anmxn=bm

xi>=0 Vi=1,n

Тогда ее преобразовывают к виду

F: C1X1+C2X2+…+CnXn+MXn=1+MXn+2+…+MXn+màmin

a11x1+a21x2+…+an1xn+xn+1=b1

a12x1+a22x2+…+an2xn+xn+2=b2

……………………………….

a1mx1+a2mx2+…+anmxn+xn+m=bm

Xi>=0 Vi=1,n+m

Где М – бесконечно большие числа. В полученной задаче сразу виден исходный базис, в качестве него следует взять вектора при искусственно введенных переменных xn+1, xn+2,…, xn+m. Поскольку именно эти вектора будут иметь вид: (1,0,0,…,0),(0,1,0,…,0),(0,0,…,1). Затем преобразованную задачу решают, используя алгоритм симплекс метода. Исходный опорный план преобразованной задачи имеет вид (0,0,…,0,xn+1,xn+2,…,xn+m)=(0,0,…,0,b1,b2,…,bm). Исходная симплекс таблица выглядит следующим образом

Базис Ai коэф. ЦФ Ci План Xi C1 C2 Cn M M M
A1 A2 An An+1 An+2 An+m
An+1 M b1 a11 a21 an1      
An+2 M b2 a12 a22 an2      
An+m M bm a1m a2m anm      
  Z0              

Определяем эл-ты дополнительной строки по формулам Z0=Mb1+Mb2+…+Mbm=∑mi=1Mbi=M∑ni=1bi

Для определения разностей Zj=a11M+Ma12+…+Ma1m=M∑mj=1aij V i=1,n

Zj-Cj=M∑mj=1aij-Cj

После получения исходной симплекс таблицы ее преобразовывают, стараясь выводить из базиса векторы соответствующие введенным дополнительным переменным.

Поскольку М очень большое число, то среди разностей Zj-Cj будет много положительных чисел. Т. е. будет множество претендентов на введение в базис среди векторов A1,A2,…,An

Если какой-то вектор соответствует искусственно введенным переменным xn+1,xn+2,…,xn+m, то соответствующий вектор выводится из базиса, а столбец симплекс таблицы при этом векторе вычеркивается и больше к нему не возвращаются. В конце преобразования симплекс таблицы возможны два варианта:

· все векторы соответствующие искусственным переменным были выведены из базиса, в этом случае все столбцы симплекс таблицы соответствующие дополнительным переменным исчезнут, и будет решаться исходная задача

· полученный оптимальный план все же будет содержать какую-либо дополнительную переменную, это означает, что ОДР исходной задачи пуста, т. е. ее ограничения противоречивы, поэтому исходная задача вообще не имеет решений.

Двойственные задачи линейного программирования. Постановка задач, их свойства.

Симметричные двойственные задачи:





Дата публикования: 2014-12-11; Прочитано: 641 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с)...