Целочисленное программирование.
Метод Гомори
Во многих экономических задачах переменные
выражают физически неделимые объекты и потому
могут принимать только натуральные значения. Соответственно, в таких задачах
на переменные накладывается дополнительное требование их целочисленности.
Постановка полностью целочисленной задачи линейного программирования
следующая: найти максимальное значение функции
при ограничениях:
,
.
Если условие целочисленности относится лишь к части переменных, то
задачу называют частично целочисленной.
Наиболее распространенным методом решения задач
целочисленного программирования является метод Гомори, основанный на
симплексном методе.
Напомним, что целой частью числа а называется наибольшее целое число, не
превышающее а. Дробной частью числа а называется
разность между числом а и его целой
частью. Целую часть числа обозначают [а], а дробную часть – {а}, т.е. а = [а]+{а}.
Алгоритм метода Гомори
1.
Отбросив условие целочисленности, решить
исходную задачу симплексным методом. Если
получится целочисленное оптимальное решение,
то задача решена.
2.
Если в оптимальном решении не все переменные целочисленные, составить
дополнительное ограничение (сечение Гомори). Сечение строится по базисной
переменной, имеющей наибольшую дробную часть. Пусть в оптимальном решении
базисная переменная, имеющая наибольшую дробную часть xt,
(1)
,
где J - множество индексов свободных переменных.
Разбить все коэффициенты и свободный член (1) на два слагаемых - целую
и дробную часть.
Неравенство
(2)
называется сечением Гомори. Дополнительное ограничение имеет вид
(3)
,
3.
Присоединяя равенство (3) к ранее решенной задаче, получить новую
задачу линейного программирования, которую вновь решить симплексным методом.
Если ее оптимальное решение окажется целочисленным, то оно и будет оптимальным
решением исходной задачи. Если снова получится нецелочисленное решение, то
построить новое сечение, и т.д.