1 / 17

Основная задача линейного программирования

Основная задача линейного программирования. Симплекс-метод. Симплекс-таблица. Теперь мы в состоянии сформулировать алгоритм симплекс-метода для решения задач линейного программирования, заданных в канонической форме. Обычно он реализуется в виде так называемой симплекс-таблицы.

hisoki
Télécharger la présentation

Основная задача линейного программирования

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Симплекс-таблица • Теперь мы в состоянии сформулировать алгоритм симплекс-метода для решения задач линейного программирования, заданных в канонической форме. Обычно он реализуется в виде так называемой симплекс-таблицы. • В первом столбце этой таблицы располагаются обозначения переменных, входящих в базис. • Второй столбец - коэффициенты целевой функции, соответствующие переменным, входящим в базис. • Третий столбец - компоненты опорного плана. • В дополнительной строке в этом столбце пишется величина Её легко вычислить перемножая числа из второго столбца и третьего столбца и складывая их.

  3. Симплекс-таблица • Далее идут столбцы, соответствующие всем переменным, и в этих столбцах записываются координаты этих переменных в рассматриваемом базисе. Заметим, что для базисных переменных эти координаты имеют вид (0,0, ... ,0,1,0, ..., 0), где единица стоит в той строке, где находится этота базисная переменная. • В дополнительной строке сверху обычно выписывают коэффициенты , соответствующие этим переменным в целевой функции. • В дополнительной строке снизу пишутся величины , вычисляемые по формулам:

  4. Симплекс-таблица • Заметим, что для векторов, входящих в базис, эти разности всегда равны нулю. • Далее идут следующие этапы, связанные с преобразованием этой таблицы. При ручном счете каждый раз эту таблицу лучше переписывать заново, при счете на ЭВМ (который, естественно, всегда используется при решении практических, а не учебных задач), эта таблица просто преобразуется в памяти ЭВМ.

  5. Этап 1 • Просматривается дополнительная строка снизу, где записаны разности. Если все эти разности меньше, либо равны нулю, то план является оптимальным

  6. Этап 2 • Если есть столбцы, где в нижней строке есть величина больше нуля, то выбирается столбец с максимальным значением этой величины. Индекс j определит вектор, вводимый в базис. • Пусть max(zj-cj)=zl-cl, то есть в базис надо вводить переменную xl. Назовем столбец, соответствующий этой переменной, направляющим столбцом. В дальнейшем мы будем направляющий столбец помечать символом ⇒.

  7. Этап 3 • Просматривается направляющий столбец. Если все ail<0, то значения целевой функции неограничены снизу. Если есть ail>0, то находится min(i)(xi/ail),где просматриваются лишь те дроби, для которых ail>0. • Пусть этот минимум достигается для akl. Тогда именно переменная xk подлежит выводу из базиса. Строка, соответствующая этой переменной, называется направляющей строкой. В дальнейшем в примерах мы будем помечать ее символом ⇑.

  8. Этап 4 • После того, как определены направляющие столбец и строка, начинает заполняться новая симплекс-таблица, в которой на месте направляющей строки будет стоять переменная xl. Обычно заполнение этой новой таблицы начинается именно с направляющей строки. В качестве компоненты опорного плана туда пишется величина xk/akl. • Остальные элементы этой строки заполняются величинами a’lj=akj/akl.

  9. akl Этап 4 • Обратите внимание на особую роль элемента akl, стоящего на пересечении направляющей строки и направляющего столбца. Именно на него делятся все бывшие элементы направляющей строки. На месте бывшего элемента автоматически появляется единица. • Написанные выше формулы для пересчета элементов направляющей строки можно записать следующим правилом:

  10. Этап 5 • Далее начинается пересчет всех остальных строк таблицы, включая и дополнительную нижнюю строку для компонент плана; для координат разложения по базису; для дополнительной строкипо следующему правилу • Далее итерации продолжаются.

  11. Пример • Решить задачу линейного программирования

  12. Исходная симплекс-таблица

  13. Пример • Обратите внимание на то, что из-за специфического вида системы ограничений в столбец "план" просто переписался вектор свободных членов системы ограничений. • Ну, а величины z0и zj-cj приходится считать:

  14. Первая итерация • Просматривая дополнительную строку мы видим, что в ней всего один положительный элемент - в столбце, соответствующем переменной x3. Следовательно, эту переменную надо вводить в базис и этот столбец и будет направляющим столбцом. • В этом направляющем столбце есть два положительных числа - 4 и 3. Поэтому нужно рассмотреть два частных 12/4 и 10/3 и выбрать из них наименьшее. Так как min ((12/4), (10/3))=3 и он достигается на a43=4 , то этот вектор подлежит выводу из базиса и соответствующая ему строка и будет направляющей строкой. • Заполним теперь новую симплекс-таблицу, следуя сформулированным выше правилам. • Начинается заполнение, естественно, со второй строки (так как она была направляющей), а затем пересчитываются все остальные строки.

  15. Полученная симплекс-таблица

  16. Вторая итерация • Просматривая дополнительную строку мы вновь видим в ней всего один положительный элемент это 1/2, стоящая в столбце x2. Следовательно, этот вектор надо ввести в базис и этот столбец будет направляющим. • В столбце, соответствующем x2, всего один положительный элемент это 5/2в первой строке. Поэтому первая строка будет направляющей и переменная x1 должна быть выведена из базиса.

  17. Новая симплекс-таблица

More Related