
- •Кафедра информационных систем
- •Моделирование как метод научного познания
- •Моделирования
- •Тема 2 Системный подход к изучению экономических явлений
- •Тема 3 Математические методы и основные классы задач оптимизации
- •Тема 4 Линейное программирование
- •Пример решения станковой задачи
- •Тема 5 Целочисленное программирование
- •Постановка задачи и метод решения
- •Тема 6 Транспортная задача
- •Тема 7 Нелинейное программирование
- •Тема 8 Регрессионный анализ
Тема 5 Целочисленное программирование
Значительная часть экономических задач, относящихся к задачам линейного программирования, требует целочисленного решения. К ним относятся задачи, у которых переменные величины означают количество единиц неделимой продукции, например, распределение производственных заданий между предприятиями, раскрой материалов, разгрузка оборудования, распределение судов по линиям, самолетов по рейсам, а также задачи по производству неделимой продукции. Если единица составляет малую часть всего объёма производства, то оптимальное решение находят обычным симплексным методом, округляя его до целых единиц, исходя из смысла задачи. В противном случае округление может привести к решению, далекому от оптимального целочисленного решения.
Постановка задачи и метод решения
Задача целочисленного программирования формулируется так же, как и задача линейного программирования, но включается дополнительное требование, состоящее в том, что значения переменных, составляющих оптимальное решение, должны быть целыми неотрицательными числами:
Найти
минимальное значение линейной функции
(5.1) при ограничениях
|
(5.2) |
|
(5.3) |
|
(5.4) |
Предположим, что задача линейного программирования имеет многогранник решений, приведённый на рис. 13.
Рис. 13
Если наложить требование целочисленности, то допустимое множество решений такой задачи представляет собой совокупность изолированных целочисленных точек и не является выпуклым. Если добавить новое ограничение, связывающие внешние целочисленные точки, а затем в качестве многогранника решений использовать всё выпуклое множество, ограниченное осями координат и новым контуром (рис. 13), то получим новую задачу линейного программирования со следующими свойствами:
1) новый многогранник решений содержит все целые точки, заключавшиеся в первоначальном многограннике решений; любая его угловая точка является целочисленной;
2) так как линейная функция достигает оптимума в угловой точке многогранника решений, то построением такого многогранника и обеспечивается целочисленность оптимального решения.
Это
и есть графический способ решения задачи
целочисленного программирования. Но
ясно, что он пригоден для решения таких
задач, где n-m=2,
или, более верно,
где n
-
число
неизвестных, m
-
число
ограничений, r
- ранг системы
ограничений.
В общем же случае для определения оптимального плана задачи (5.1)-(5.4) требуются специальные методы. В настоящее время существует несколько таких методов, из которых наиболее известным является метод Гомори, в основе которого лежит описанный выше симплексный метод.
Метод Гомори
Процесс определения оптимального плана задачи целочисленного программирования методом Гомори включает следующие основные этапы:
1. Используя симплекс-метод, находят решение задачи (5.1)-(5.3) без учета требования целочисленности переменных.
2.
Составляют, если оптимальный план
нецелочисленный, дополнительное
ограничение для переменной
которая в оптимальном плане задачи
(5.1)-(5.3) имеет максимальное дробное
значение (как это определяется, объясняется
в примере). Как составлять, об этом так
же отдельно.
3. Используя симплекс-метод (чаще всего, двойственный), находят решение задачи, получающейся из задачи (5.1)-(5.3) в результате присоединения дополнительного ограничения.
4.
В случае необходимости составляют еще
одно дополнительное ограничение и
продолжают итерационный процесс до
получения оптимального плана задачи
(5.1)-(5.4) или установления ее неразрешимости
(последнее имеет место в случае, если
для дробного
все
в этой строке окажутся целыми).
Недостатком метода Гомори является требование целочисленности для всех переменных: как основных, выражающих, предположим, единицы продукции, так и для дополнительных, выражающих величину неиспользованных ресурсов, которые могут быть и дробными. Этот недостаток обходится в модификации метода, рассмотренной И. Л. Акулич в книге "Математическое программирование в примерах и задачах".
Составление дополнительного ограничения (сечения Гомори)
Пусть
оптимальный план, полученный
симплекс-методом для задачи (5.1)-(5.3),
следующий:
и получен на базисе
Тогда последняя симплексная таблица
имеет следующий вид:
Таблица 5.1
Предположим,
что
дробное;
тогда некоторое
также дробное (в противном случае задача
не имеет целочисленного решения).
Обозначим через
и
целые части чисел
и
,
т.е. наибольшие целые числа, не
превосходящие чисел
и
.
Тогда величины дробных частей
и
чисел
и
определяются как разности:
где
и
Например,
.
Так
как по условию
- неотрицательные целые числа, то и
разность
также целое неотрицательное число.
Преобразуя
это неравенство в уравнение, вычитая
из его левой части целую неотрицательную
дополнительную переменную
умножим уравнение на–1,
добавим к последней симплексной таблице
и, применяя симплексный метод (желательно
двойственный, который позволяет работать
с отрицательными правыми частями
уравнений), находим новый план. Если он
не является целочисленным, то по последней
симплексной таблице составляем новое
дополнительное ограничение.
Если
в оптимальном плане задачи (5.1)-(5.3)
несколько дробных
то дополнительное ограничение составляют
дляmax
.
Это ускоряет процесс получения
оптимального целочисленного решения.
Рассмотрим
геометрический смысл введения
дополнительного ограничения (см. рис.
14). Пусть в точке A
многогранника
решений Q
функция Z
достигает максимального значения
Z(A)=max,
но координаты точки A
– дробные. Тогда введенные ограничения
по целочисленности I
и II
от области
Q
отсекают область
с угловой точкой
,
координаты которой целочисленные и в
которой линейная функция достигает
максимального значения.
Рис. 14
Метод Гомори рассмотрим на примере следующей задачи: найти максимальное значение функции
|
(5.5.) |
при условиях
|
(5.6) |
|
(5.7) |
|
(5.8) |
Дать геометрическую интерпретацию решения задачи.
Решение. Для определения оптимального плана задачи (5.5)-(5.8) сначала находим оптимальный план задачи (5.5)-(5.7):
Таблица 5.2
-
x1
x2
x3
x4
x5
1
1
1
0
0
13
1
-1
0
1
0
6
-3
1
0
0
0
9
3
2
0
0
1
0
базис
план
-
неоптимальный,
.
Таблица 5.3
-
x1
x2
x3
x4
x5
0
2
1
-1
0
7
1
-1
0
1
0
6
0
-2
0
3
1
27
0
5
0
-3
0
-18
,
-
неоптимальный, базис
,
.
Таблица 5.4
-
x1
x2
x3
x4
x5
0
1
1/2
-1/2
0
7/2
1
0
1/2
1/2
0
19/2
0
0
1
2
1
34
0
0
-5/2
-1/2
0
-71/2
Оптимальный
план
,
базис
.
Этот оптимальный план не является
оптимальным планом задачи (5.5)-(5.8),
поскольку две компоненты
и
имеют нецелочисленное значение. При
этом дробные части этих чисел
равны между собой. Поэтому для одной
из этих переменных составляется
дополнительное ограничение. Составим,
например, такое ограничение для переменной
(чаще берут первую строку). Из последней
симплекс-таблицы имеем:
.
Таким образом, к системе ограничений задачи (5.5)-(5.7) добавляем неравенство
т. е.
|
(5.9) |
Теперь
находим максимальное значение функции
(5.5) при выполнении условий (5.6), (5.7) и
(5.9). В условие (5.9) вводим дополнительную
переменную
:
Таблица 5.5
-
x1
x2
x3
x4
x5
x6
0
1
0
0
1
0
0
0
1/2
1/2
1
1
-1/2
1/2
2
1
0
0
1
0
0
0
0
-1
7/2
19/2
34
1
0
0
-5/2
-1/2
0
0
-71/2
Выберем
.
базис.
Таблица 5.6
-
x1
x2
x3
x4
x5
x6
0
1
0
0
1
0
0
0
1
0
-1
1
0
0
0
1
0
0
1
0
-1/2
1/2
2
-1
4
9
32
1
0
0
-2
0
0
-1/2
-35
Базис
.
.
Запишем
оптимальный план для исходной задачи:
При этом плане значение целевой функции
равно
.
Геометрическая интерпретация решения задачи.
Рис. 15
Областью
допустимых решений задачи (5.5)-(5.7) является
многоугольник ОАВСD
(рис. 15). Из рисунка видно, что максимальное
значение целевая функция принимает в
точке
т.е. что
является оптимальным планом. Так как
этот план не является оптимальным планом
задачи (5.5)-(5.8) (числа
и
- дробные), то вводится дополнительное
ограничение
Исключая
из этого неравенства
и
подстановкой вместо них соответствующих
значений из уравнений системы ограничений
(5.6), получим
.
.
Этому
неравенству соответствует полуплоскость,
ограниченная прямой
отсекающей от многоугольникаОАВСD
треугольник
EFC.
Как
видно из рисунка, областью допустимых
решений полученной задачи является
многоугольник OABEFD.
В точке E(9;4)
этого многоугольника целевой функции
данной задачи принимает максимальное
значение. Так как координаты точки Е
– целые числа и неизвестные
и
принимают целочисленные значения при
подстановке в уравнения (5.6) значений
и
то
является оптимальным планом задачи
(5.5)-(5.8). Это следует и из таблицы
симплекс-метода.
Замечание к использованию метода Гомори: если в первоначальных базис задачи входили искусственные векторы, то при составлении дополнительного ограничения искусственные переменные необходимо опустить.