|
Целочисленные задачи линейного
программирования. Метод Гомори
Экономическая и геометрическая
интерпретация задачи целочисленного программирования. Экстремальная задача, переменные которой
принимают лишь целочисленные значения, называется задачей целочисленного
программирования. В математической модели задачи
целочисленного программирования как целевая
функция, так и функции в системе ограничений могут быть линейными,
нелинейными и смешанными. Ограничимся случаем, когда целевая функция и
система ограничений задачи являются линейными. Пример 20. В цехе предприятия решено установить
дополнительное оборудование, для размещения которого выделено Решение. Составим математическую модель задачи.
Предположим, что предприятие приобретет x1 комплектов
оборудования I вида и
Если предприятие приобретет указанное
количество оборудования, то общее увеличение
выпуска продукции составит
По своему экономическому содержанию
переменные x1 и
x1, Таким образом, приходим к следующей
математической задаче: найти максимальное значение линейной функции (71)
при вы полнении условий
(70), (72) и (73). Так как неизвестные могут принимать только целые
значения, то задача (70) – (73) является задачей целочисленного
программирования. Поскольку число неизвестных задачи равно двум, решение
данной задачи можно найти, используя ее геометрическую интерпретацию. Для
этого прежде всего построим многоугольник решений
задачи, состоящей в определении максимального значения линейной функции
(71) при выполнении условий (70) и (72) (рис. 11). Координаты всех точек
построенного многоугольника решений ОАЕВС удовлетворяют системе
линейных неравенств (70) и условию неотрицательности переменных (72). Вместе с тем
условию (73), т. е. условию целочисленности
переменных, удовлетворяют координаты лишь 12 точек, отмеченных на рис. 11.
Чтобы найти точку, координаты которой определяют решение исходной задачи,
заменим многоугольник ОАВС многоугольником OKEMNF,
содержащим все допустимые точки с целочисленными координатами и таким,
что координаты каждой из вершин являются целыми числами. Значит, если
найти точку максимума функции (71) на многоугольнике OKEMNF, то
координаты этой точки и определят оптимальный план
задачи.
Для этого построим вектор В данном случае искомой является точка
E(1; 3), в которой целевая функция принимает максимальное
значение Пример 21. Для выполнения работ могут быть
использованы п
механизмов. Производительность i–го механизма Решение. Введем переменную xij, значение которой равно 1, если при
выполнении i–й работы используется j–й механизм,
и равно 0 в противном случае. Тогда условия использования каждого
механизма только на одной работе выражаются равенствами
а условия выполнения работы только одним
механизмом – равенствами
Таким образом, задача состоит в
определении таких значений неизвестных
Сформулированная задача является задачей
целочисленного программирования. Определение оптимального плана задачи
целочисленного программирования.
Рассмотрим задачи целочисленного программирования, в которых как целевая
функция, так и функции в системе ограничений являются линейными. В связи с
этим сформулируем основную задачу линейного программирования, в которой
переменные могут принимать только целые значения. В общем виде эту задачу можно записать так: найти
максимум функции
при условиях
Если найти решение задачи (78) – (81)
симплексным методом, то оно может оказаться как целочисленным, так и нет
(примером задачи линейного программирования, решение которой всегда
является целочисленным, служит транспортная задача). В общем же случае для
определения оптимального плана задачи (78) – (81) требуются специальные
методы. В настоящее время существует несколько таких методов, из которых
наиболее известным является метод Гомори, в основе которого лежит
описанный выше симплексный метод. Метод Гомори. Нахождение решения задачи целочисленного
программирования методом Гомори начинают с определения симплексным методом
оптимального плана задачи (78) – (80) без учета целочисленности переменных. После того как этот план
найден, просматривают его компоненты. Если среди компонент нет дробных
чисел, то найденный план является оптимальным планом задачи целочисленного
программирования (78) – (81). Если же в оптимальном плане задачи (78) –
(80) переменная
и находят решение задачи (78) – (80),
(82). В неравенстве (82) Если в найденном плане задачи (78) –
(80), (82) переменные принимают дробные значения, то снова добавляют одно
дополнительное ограничение и процесс вычислений повторяют. Проводя
конечное число итераций, либо получают оптимальный план задачи
целочисленного программирования (78) – (81), либо устанавливают ее
неразрешимость. Если требование целочисленности (81) относится лишь к некоторым
переменным, то такие задачи называются частично целочисленными.
Их решение также находят последовательным решением
задач, каждая из которых получается из предыдущей с помощью введения
дополнительного ограничения. В этом случае такое ограничение имеет
вид
где 1) для
2) для
Из изложенного выше следует, что процесс
определения оптимального плана задачи целочисленного программирования
методом Гомори включает следующие основные
этапы: 1. Используя симплексный метод, находят
решение задачи (78) – (80) без учета требования целочисленности переменных. 2. Составляют дополнительное ограничение
для переменной, которая в оптимальном плане задачи (78) – (80) имеет максимальное дробное значение, а в оптимальном плане
задачи (78) – (81) должна быть целочисленной. 3. Используя двойственный симплекс–метод, находят решение задачи, получающейся из
задачи (78) – (80) в результате присоединения дополнительного
ограничения. 4. В случае необходимости составляют еще
одно дополнительное ограничение и продолжают итерационный процесс до
получения оптимального плана задачи (78) – (81) или установления ее
неразрешимости. Пример 22. Методом Гомори найти максимальное
значение функции
при условии
Дать геометрическую интерпретацию решения
задачи. Решение. Для определения оптимального плана задачи (86) –
(89) сначала находим оптимальный план задачи (86) – (88) (табл.
22). Таблица 22
Как видно из
табл. 22, найденный оптимальный план
Таким образом, к системе ограничений
задачи (86) – (89) добавляем неравенство
т.е.
Таблица 23
Находим теперь максимальное значение
функции (86) при выполнении условий (87), (88) и (90) (табл.
23). Из таблицы 23 видно, что исходная задача
целочисленного программирования имеет оптимальный план
Как видно из
рис. 12, областью допустимых решений полученной
задачи является многоугольник OABEFD. В точке Е(9; 4) этого
многоугольника целевая функция данной задачи принимает максимальное
значение. Так как координаты точки Е – целые числа и неизвестные
Пример 23. Методом Гомори найти решение задачи,
состоящей в определении максимального значения
функции
при условиях
Дать геометрическую интерпретацию решения
задачи. Решение. Сформулированную задачу перепишем так: найти
максимальное значение функции
при условиях
Задача (95) – (98) является частично
целочисленной, так как переменные
Находим симплексным методом решение задаяи (95) – (97) (таблица 24). Таблица 24
После II итерации получаем оптимальный
план данной задачи
Находим теперь решение задачи, состоящей
в определении максимального значения функции (95) при условиях (96), (97)
и (99). Данную задачу решаем двойственным
симплекс–методом (таблица 25). Таблица 25
Из таблицы 25 видно, что
Дадим геометрическую интерпретацию
решения задачи. На рис. 13 показана область допустимых решений задачи (95)
– (97). Из рисунка видно, что максимальное значение целевая функция
принимает в точке |