Cимплексный метод решения ЗЛП. Пример

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

Прочие статьи цикла
  1. Исследование операций

  2. Метод ветвей и границ. Задача коммивояжера

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

  4. Симплексный метод решения ЗЛП. Пример

Введение

Задача линейного программирования (ЗЛП) состоит в определении значений упорядоченной совокупности переменных xjj=1(1)n при которых линейная целевая функция достигает экстремального значения и при этом выполняются (удовлетворяются) все ограничения (они также линейные) в форме равенств или неравенств. Требуется найти план  Х <n> = <x1, x2, ..., xn>, который обеспечивает получение целевой функцией с экстремальным значением. Идеи моделей линейного планирования (программирования) впервые были высказаны и опубликованы советским математиком Л. В. Канторовичем в 1939 году в работе "математические методы организации и планирования производства". В 1975 году Л. В. Канторович и Т. Купманс получили Нобелевскую премию по экономическим наукам с формулировкой «за их вклад в теорию оптимального распределения ресурсов». В 1947 г. очень близкие идеи высказаны американским математиком Дж. Данцигом. А еще позднее стали массово появляться работы, посвященные проблемам выбора оптимальных решений в силу их исключительной важности. Признание приоритета за Л. В. Канторовичем не оспаривалось практически никогда, а после присуждения Нобелевской премии тем более. 

Исходные данные примера

Найти минимум линейной формы Q = x1+x2 + x3

Как видим, ЗЛП уже в канонической форме: bj>0, j =1(1)n, Q min, базис выделен. 1.   1. Устанавливаем, совпадают ли ранги матриц системы ограничений и расширенной. Ранги совпадают, следовательно, система ограничений совместна.

Разделяем переменные на базисные: x1, x2, x3  с номерами φ = 1, 2, 3; и свободные: x4, x5, x6 . Выразим базисные переменные и целевую функцию через свободные переменные.

Исходный опорный план x0<6> получаем при x4 = x5 =x6 =0, т. е. x0<6> =<5, 3, 5, 0, 0, 0>. Так как все βф>0, то этот план – допустимый, а значение целевой функции в точке x0<6>, равно Q(x0<6>) 0 = 13.

2. Далее в соответствии со структурной схемой алгоритма установим, является ли план x0<6> оптимальным. Для этого формируем симплекс таблицу.

Оптимален ли опорный план? Так как некоторые из коэффициентов при свободных переменных в целевой функции (см.последнюю строку табл.) положительные (γ4>0, γ6 >0), то в соответствии с алгоритмом план x0<6> , не является оптимальным, т.е. ЦФ можно уменьшить, увеличением соответствующих свободных переменных (множество Г ={4,6}). Среди коэффициентов ЦФ находим наибольший γv

3. Ввод переменной в базис. Индекс ν найденного коэффициента (v = 6) указывает, какую переменную надо ввести в базис для оптимизации плана. В базис вводится переменная х6 (ее будем увеличивать до момента, когда нарушится первый раз некоторое ограничение). Столбец, где находится х6, называется направляющим.

4. Устанавливаем далее существование оптимального плана. В направляющем столбце (отмечен заливкой, тот где х6) симплекс таблицы проверяем знаки у коэффициентов. Если имеются положительные коэффициенты (α26 = 1 > 0, α36 = 6 > 0), то оптимальный план существует. Это означает, что в базисе имеются переменные, которые с ростом х6 будут уменьшаться до нуля.

5.  Вывод переменной из базиса. Очевидно, из базиса выводится та переменная, которая раньше других обратится в нуль с возрастании х6. Находим эту переменную среди тех, для которых αф6>0

Исключается из базиса, таким образом, переменная х3 и она включается в число свободных переменных. Строка, где находится х3, называется направляющей, а элемент α36 - генеральным (разрешающим) элементом.

Таким образом, подготовлен новый шаг итерационного процесса. Формируем вновь подмножества базисных переменных: x1, x2, x6  с номерами φ = 1, 2, 6; и свободные: x4, x5, x3 . 6. Переходим к новой точке (вершине) симплекса. Для этого формируем новую симплексную таблицу путем использования промежуточной (вспомогательной) таблицы.

Формирование новой и вспомогательной симплексной таблицы:

1.          Вычисляют λ =1/αiv = 1/α36 =6 -1 и вписывают в клетку генерального элемента.

2.          Умножение на (+λ) элементов направляющей строки и на (-λ) элементов направляющего столбца и запись результатов в нижние полуклетки (кроме генерального элемента).

3.          Выделение в направляющих строке верхних, а в столбце – нижних полуклеток.

4.          Запись во все остальные клетки произведений, соответствующих выделенных элементов (полуклеток).

 Формирование новой симплексной таблицы:

1.          В направляющие строку и столбец в верхние полуклетки вносим элементы соответствующих нижних полуклеток.

2.          Во все остальные клетки запишем суммы чисел из верхних и нижних полуклеток вспомогательной таблицы.

После заполнения таблицы находим новый опорный план при x3 = x4 = x5 =0 и значение ЦФ: 

Далее, следуя алгоритму, выясним, является ли полученный план оптимальным, т.е. можно ли уменьшать значения ЦФ далее. Для этого проверяем знак у коэффициента j ) ЦФ. Наличие γj > 0 говорит, что ЦФ можно еще уменьшить, т.е. полученный план – не оптимальный.

Определяем индекс свободной переменной, увеличение которой приведет к уменьшению ЦФ.

Для оптимизации переменную х4 следует ввести в базис. В новой таблице нормированный столбец, содержащий х4. Теперь выясним, существует ли оптимальный план, т.е. стоит ли его определять. Для этого определяем, есть ли в направляющем столбце положительные коэффициенты у некоторых (хотя бы у одной) базисных переменных. Очевидно, что эта базисная переменная будет уменьшаться с ростом свободной переменной х4. Такая переменная в таблице есть (она не единственная) – это 5/3 и 1/3 соответственно у х2 и х6. Из этого следует, что оптимальный план существует. Определяем индекс переменной, которую необходимо вывести из базиса, т.е. ту, которая раньше других обратится в ноль.

Находим эту переменную из условия:

Из базиса, таким образом, должна быть выведена переменная х2. Для следующего итерационного шага имеем: базисные переменные x1, x4, x6  с номерами φ = 1, 4, 6; и свободные: x2, x3, x5.

Формируем вспомогательную таблицу 2: 1.          Вычисляют λ = 1/αiv = 1/α24 = 3/5 и вписывают в клетку генерального элемента.

2.          Умножение на (+λ) элементов направляющей строки и на (-λ) элементов направляющего столбца и запись результатов в нижние полуклетки (кроме генерального элемента).

3.          Выделение в направляющих строке верхних, а в столбце – нижних полуклеток.

4.          Записываем во все остальные клетки произведений, соответствующих выделенных элементов.

Анализ таблицы показывает, что все коэффициенты при свободных переменных в нижней строке таблицы отрицательные, следовательно, план X3<6>= <71/10, 0, 0,13/10, 0, 2/5 > для данной ЗЛП является оптимальным. Он обеспечивает получение наименьшего значения ЦФ Q2(x3<6>) = 77/10 < Q1(x1<6>) = 53/6, где план Q1(x1<6>) = x1, +x2 +x3 получен ранее.

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

Литература
  1. Ваулин А. Е. Методы цифровой обработки данных.– СПб.: ВИККИ им. А. Ф. Можайского, 1993.– 106 с.

  2. Гэри М., Джонсон Д. Вычислительные машины и трудно решаемые задачи. М.: Мир, 1982.

  3. Квейд Э. Методы системного анализа // Новое в теории и практике управления производством в США.–М.: Прогресс, 1971.– с.78-99. .

  4. Корбут А.А., Финкельштейн Ю. Ю. Дискретное программирование М. Наука. Гл. ред. физ.-мат. лит. 1969.

  5. Макаров И. М. и др. Теория выбора и принятия решений.– М.: Наука, 1982.– 328 с.

  6. Пфанцагль  И. Теория измерений. – М.: Наука, 1988.–384 с.

  7. Таха Х. А. Введение в исследование операций. 7-е изд. М.: Изд. дом «Вильямс», 2005.

  8.  Фишберн П. С. Теория полезности для принятия решений. – М.: Наука,1978. –352 с.

Источник: https://habr.com/ru/post/565206/


Интересные статьи

Интересные статьи

Всем привет! За последние пять лет мы достаточно часто сталкивались с запросами на мониторинг Java приложений. Собрав ос...
В данной пошаговой инструкции мы подробно опишем весь процесс получения доступа к WhatsApp Business API через официального партнера Facebook — сервис Gupshup и подключени...
Сбор данных в React — это одно. Хранение и кэширование этих данных — это другая история. Возможности кажутся бесконечными, а различия часто тонкие, что делает выбор прави...
Прим. перев.: В сообществе Kubernetes явную популярность набирает тренд под названием GitOps, в чём мы лично убедились, посетив KubeCon Europe 2019. Этот термин был относительно недавно придуман ...
Доброго времени суток, Хабр! На просторах Интернета мне попалась статья на английском «The inception bar: a new phishing method» автора Jim Fisher. В ней описывается занимательный способ фишинга,...