Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
otvety_na_bilety.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
2.22 Mб
Скачать

1. Метод последовательного улучшения базисного плана. Симплекс метод.

Пусть рассматривается задача минимизации [максимизации] линейной функции (различия, относящиеся к задаче максимизации, далее будем сопровождать квадратными скобками)

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

                           (7.1)

и все неизвестные задачи удовлетворяют условиям неотрицательности.

Разрешим целевую функцию относительно свободных неизвестных   и уединим свободный член в её аналитическом выражении в левой части:

 

Будем предполагать, что в базисе   задача имеет предпочтительный вид. Это означает, что, придавая всем свободным переменным значение, равное нулю, получим, что базисные неизвестные равны соответствующим свободным членам системы ограничений (7.1):     и выполняется условие неотрицательности неизвестных задачи (очевидно, что это условие будет выполнено в том случае, когда все свободные члены в системе (7.1) неотрицательны).  Тогда решение

 

называется начальным опорным решением, а значение целевой функции на этом плане, очевидно, составит

 

 

Рассмотрим алгоритм метода, суть которого заключается в переходе от одного базиса системы ограничений к другому, в результате чего значение целевой функции должно уменьшаться [увеличиваться] или, по крайней мере, не увеличиваться [не уменьшаться] при соблюдении условий неотрицательности переменных. Этот метод получил название метода последовательного улучшения плана или симплексметода. Симплекс–метод был разработан американским математиком Дж. Данцигом. Суть этого метода заключается в том, что вначале получают допустимый вариант, удовлетворяющий всем ограничениям, но необязательно оптимальный (так называемое начальное опорное решение); оптимальность достигается последовательным улучшением исходного варианта за определённое число этапов. Нахождение начального опорного решения и переход к следующему решению проводятся с помощью формул прямоугольника  для задачи линейного программирования, записанной в канонической форме. Направление перехода от одного опорного решения к другому выбирается при этом на основе критерия оптимальности (целевой функции) исходной задачи.

По исходным данным рассматриваемой задачи линейного программирования заполним начальную симплекс–таблица (табл. 7.1).

Шаг 1. Выясним, имеются ли в последней строке табл. 7.1 положительные [отрицательные] числа (число   во внимание не принимать). Если все числа отрицательные [положительные], то процесс закончен: начальное опорное решение   является оптимальным и доставляет целевой функции минимум   [максимум  ]. 

Если в последней строке имеются положительные [отрицательные] числа, перейдём к шагу 2.

Шаг 2. Просмотрим столбец, соответствующий наибольшему положительному [наименьшему отрицательному] числу  из последней строки (если таких несколько, выберем любой), и выясним, имеются ли в нём положительные числа. Если ни в одном из таких столбцов нет положительных чисел, то линейная функция L не ограничена снизу [сверху], и оптимального решения задачи не существует. Если найден столбец, содержащий хотя бы одно положительное число, отметим этот столбец вертикальной стрелкой (например, столбец  ) и перейдём к шагу 3.

 

Шаг 3. Разделим свободные члены на соответствующие положительные числа из выделенного столбца и выберем наименьшее частное. Отметим строку таблицы, соответствующую этому наименьшему частному, горизонтальной стрелкой (например, строку  ). Выделим разрешающий элемент   стоящий на пересечении отмеченных строки и столбца, и перейдём к заполнению новой симплекс–таблицы, используя формулы прямоугольника. При этом переменная   заменит переменную   в базисе. После заполнения этой таблицы следует переход к шагу 1.

Гарантии результативности симплекс–метода обеспечиваются следующей теоремой.

 

Теорема. Если существует оптимальное решение задачи линейного программирования, то существует и базисное оптимальное решение, которое может быть получено через конечное число шагов симплекс–методом, начиная с любого начального опорного решения

 

Пример. Найти оптимальное решение стандартной задачи максимизации для целевой функции

с системой ограничений

и условиями неотрицательности

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

Теперь задача записана в канонической форме. Очевидно, что последняя система – это система с базисом:

В этом базисе задача имеет предпочтительный вид, поскольку начальное опорное решение системы

удовлетворяет всем ограничениям и условиям неотрицательности.

Целевая функция не содержит базисных переменных. Преобразуем её, уединяя свободный член в правой части:

и перейдём к заполнению начальной симплекс-таблицы (табл. 7.2).

 

 

В последней строке табл. 7.2 есть отрицательные числа, поэтому начальное опорное решение   не является оптимальным,  т. е. не доставляет целевой функции максимальное значение.

Выберем и отметим вертикальной стрелкой столбец, соответствующий наименьшему отрицательному числу в последней строке этой таблицы  − это столбец неизвестной  . Разделим свободные члены (первый столбец табл. 7.2) на соответствующие положительные числа взятого столбца и результат деления поместим справа от таблицы в каждой строке: 8/3, 4/2, 1/1. Очевидно, наименьшее частное получено в строке, соответствующей базисной неизвестной  . Отметим эту строку горизонтальной стрелкой.

На пересечении выбранных строки и столбцы располагается разрешающий элемент 1, который обведём кружком.

Теперь можем приступать к составлению следующей симплекс-табли­цы (табл. 7.3), в которой базисную неизвестную   заменит неизвестная  . Заполним эту таблицу по правилам, описанным в пункте 3.

 

 

Табл. 7.3 в последней строке содержит единственное отрицательное число, т.е. оптимальное решение задачи линейного программирования пока не найдено, а потому алгоритм симплекс-метода следует продолжить. Отметим вертикальной стрелкой столбец, соответствующий отрицательному числу в последней строке, − это столбец неизвестной  . В первой и во второй строках этого столбца есть положительные числа, на которые разделим соответствующие свободные члены, а результат деления припишем к таблице справа в нужных строках: 5/5 и 2/1. Наименьшему частному соответствует строка базисной неизвестной  ; отметим её горизонтальной стрелкой. Тем самым определён разрешающий элемент − число 5. Составим следующую симплекс-таблицу (табл. 7.4), в которой место неизвестной   в базисе займёт неизвестная   . Как и табл. 7.3, табл. 7.4 заполним по правилам, описанным в пункте 3.

 

                                                             Таблица 7.4

Базис

Свободные

члены

1

1

0

−3/5

1/5

0

−3/5

1

0

0

13/5

−1/5

1

−7/5

1

0

1

1

0

0

1

Форма L

4

0

0

7/5

1/5

0

17/5

 

Все числа последней строки этой симплекс-таблицы неотрицательны, следовательно, найдено оптимальное решение задачи линейного программирования, записанной в канонической форме:

                                                         

Соответствующее значение целевой функции равно

 

    

Исключая из решения балансовые переменные, получим ответ:

 

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