Исследовать вектор на оптимальность в задаче ЛП:
Вначале нужно проверить, является ли вектор допустимым. Для этого подставляем координаты вектора в ограничения:
Так как второе ограничение выполняется как строгое неравенство, то в силу УДН для оптимальности вектора необходимо выполнение равенства .
Построим двойственную задачу:
Поскольку , то из третьего и четвертого ограничений получаем . Но по УДН из условия следует, что должно выполняться равенство в первом ограничении двойственной задачи:
Подставляя значения , получим Следовательно, УДН не выполняются и вектор не является оптимальным в исходной задаче.
Метод Гомори
Постановка задачи ЦЛП
Задача целочисленного программирования (ЦЛП) формулируется так же, как и задача ЛП, но включается дополнительное требование, состоящее в том, что значения переменных, составляющих оптимальное решение, должны быть целыми неотрицательными числами:
(22)
Симплекс-метод не гарантирует целочисленности решения задачи (22), поэтому для отыскания оптимального целочисленного решения задачи ЦЛП требуются специальные методы. Один из таких методов, приводящий к целочисленному решению за конечное число шагов, предложен американским математиком Р. Гомори [1,2]. Идея метода следующая.
С помощью симплекс-метода решается задача ЛП без условия целочисленности. Если оптимальное решение получается нецелочисленным, то вводится дополнительное ограничение, которое, уменьшая многогранник допустимых решений (отсекая некоторую его часть), не исключает из него целочисленных точек. Если оптимальное решение задачи ЛП с дополнительным ограничением целочисленное, то вычисления заканчивают; если же оптимальное решение содержит хотя бы одну дробную компоненту, добавляют новое дополнительное ограничение.
Процесс присоединения дополнительных ограничений повторяют до тех пор, пока либо не будет найдено целочисленное оптимальное решение, либо показано, что задача не имеет целочисленных решений.
Алгоритм метода Гомори
Шаг 1. Симплекс-методом находим оптимальное решение задачи (22) без учета условия целочисленности. Если задача не имеет решения, то неразрешима и исходная задача ЦЛП. В этом случае алгоритм завершает работу.
Шаг 2. Пусть оптимальная таблица имеет вид:
b | … | |||
L | … | |||
… | ||||
… | … | ………….. | ||
… |
Если элементы – целочисленные, то оптимальное решение является целочисленным. В этом случае вычисления заканчиваем. Иначе, переходим к следующему шагу.
Шаг 3. Среди дробных компонент таблицы выбираем элемент с максимальной дробной частью и по строке i составляем дополнительное ограничение:
Здесь – целая часть числа (наибольшее целое число, не превышающее число ).
Шаг 4. Добавляем построенное ограничение к последней симплекс-таблице и, применяя двойственный симплекс-метод, находим оптимальное решение. Переходим к шагу 2.
Замечания
Признаком отсутствия целочисленного решения служит появление в таблице хотя бы одной строки с дробным свободным членом и целыми остальными коэффициентами (поскольку соответствующее уравнение неразрешимо в целых числах).
На шаге 4 двойственный симплекс-метод применяется до тех пор, пока не будет получена оптимальная симплексная таблица (возможно, потребуется несколько итераций).
Если на шаге 4 в базис вводится переменная дополнительного ограничения , то эта строка вычеркивается из симплексной таблицы (соответствующее ограничение является избыточным).
Пример решения задачи ЦЛП
Решить задачу ЦЛП:
Решаем задачу без условия целочисленности симплекс-методом. Оптимальная таблица имеет вид
b | |||
L | -14/3 | -4/3 | -2/3 |
5/3 | 1/3 | 2/3 | |
4/3 | 2/3 | -2/3 |
Оптимальное решение не является целочисленным. Выберем среди нецелочисленных переменных переменную с максимальной дробной частью и построим соответствующее отсечение:
Приписывая это ограничение к симплексной таблице, и проводя стандартное преобразование двойственным симплекс-методом, получим:
b | |||
L | -14/3 | -4/3 | -2/3 |
5/3 | 1/3 | 2/3 | |
4/3 | 2/3 | -2/3 | |
-2/3 | -1/3 | -2/3 |
b | |||
L | -4 | -1 | -1 |
1 | 0 | 1 | |
2 | 1 | -1 | |
1 | 1/2 | -3/2 |
Полученная таблица является оптимальной. Соответствующее оптимальное решение является целочисленным. Значение функции на этом решении .
Транспортная задача ЛП
Постановка задачи
Классическая транспортная задача ЛП формулируется следующим образом. Имеется m пунктов производства (поставщиков) и n пунктов потребления (потребителей) однородного продукта. Заданы величины:
- объем производства (запас) i -го поставщика, ;
- объем потребления (спрос) j -го потребителя,
- стоимость перевозки (транспортные затраты) единицы продукции от i-го поставщика к j -му потребителю.
Требуется составить такой план перевозок, при котором спрос всех потребителей был бы выполнен, и при этом общая стоимость всех перевозок была бы минимальна [1,3].
Транспортная задача, в которой суммарные запасы и суммарные потребности совпадают, называется закрытой моделью; в противном случае – открытой. Открытая модель решается приведением к закрытой модели.
Математическая закрытая модель транспортной задачи имеет вид
В случае, когда суммарные запасы превышают суммарные потребности, то есть , вводится фиктивный n+1 потребитель, потребности которого .
В случае, когда суммарные потребности превышают суммарные запасы, то есть , вводится фиктивный m+1 поставщик, запасы которого .
Стоимость перевозки единицы груза как до фиктивного потребителя, так и стоимость перевозки единицы груза от фиктивного поставщика полагают равными нулю, так как груз в обоих случаях не перевозится.
Прежде чем решать транспортную задачу, необходимо проверить, к какой модели она принадлежит, и если необходимо, то привести ее к закрытой модели.
Построение опорного плана транспортной задачи
Методы решения транспортной задачи сводятся к простым операциям с транспортной таблицей, которая имеет вид:
1 | … | n | ||
1 | … | |||
… | … | … | … | … |
m | … | |||
… | = |
Базисными клетками транспортной таблицы являются клетки с отличными от нуля положительными перевозками, остальные клетки – свободные. Базисные клетки образуют опорный план транспортной задачи, еcли выполняются два условия:
сумма перевозок в каждой строке равна запасу в данной строке;
сумма перевозок в каждом столбце равна соответствующему спросу .
Опорный план транспортной задачи содержит не более отличных от нуля перевозок .
Опорный план называется вырожденным, если число ненулевых перевозок меньше , опорный план – невырожденный, если число ненулевых перевозок равно
Рассмотрим способы построения опорного плана в невырожденном и вырожденном случаях [1,3].