
- •1.3.2. Математическая структура модели и ее содержательная интерпретация [21/12]
- •1.4. Основные типы математических моделей
- •1.6. Разделы математического программирования.
- •Области применения методов математического программирования.
- •2.7. Многокритериальные задачи исследования операций. О проблеме формирования единого критерия эффективности.
- •3.7. Применение основной задачи линейного программирования к решению некоторых экономических задач
- •1. Задача использования ресурсов.
- •2. Задача оптимального использования удобрений.
- •3. Задача составления диеты.
- •4. Задача об использовании мощностей ( задача о загрузке
- •5. Задача о раскрое материалов.
- •6. Транспортная задача.
- •4. Целочисленное программирование.
- •3.8.1. Постановка задачи.
- •3.8.2. Методы отсечения. Метод Гомори
- •3.8.3. Понятие о методе ветвей и границ
3.8.2. Методы отсечения. Метод Гомори
Сущность методов отсечения состоит в том, что сначала задача решается без условия целочисленности. Если полученный план целочисленный, то задача решена. В противном случае к ограничениям задачи добавляется новое ограничение, обладающее следующими свойствами:
-
оно должно быть линейным;
-
должно отсекать найденный оптимальный нецелочисленный план;
-
не должно отсекать ни одного целочисленного плана.
Дополнительное ограничение, обладающее указанными свойствами, называется правильным отсечением.
Далее задача решается с учетом нового ограничения. После этого в случае необходимости добавляется еще одно ограничение и так далее.
Рис. 3.5.
Геометрически
добавления каждого линейного ограничения
соответствует проведению прямой
(гиперплоскости), которая отсекает от
многоугольника (многогранника) решений
некоторую его часть вместе с оптимальной
точкой с нецелыми координатами, но не
затрагивает ни одной из целых точек
этого многогранника.
В результате новый многогранник решений содержит все целые точки, заключавшиеся в первоначальном многограннике решений и, соответственно, полученное при этом многограннике оптимальное решение будет целочисленное (рис. 3.5).
Один из алгоритмов решения задачи линейного целочисленного программирования (3.41) – (3.44), предложенный Гомори, основан на симплексном методе и использует достаточно простой способ построения правильного отсечения.
Пусть задача линейного программирования (3.41) – (3.43) имеет конечный оптимум и на последнем шаге ее решения симплексным методом получены следующие уравнения, выражающие базисные переменные x1, x2, . . ., xj, . . . , xm через свободные переменные xm+1, xm+2, . . . , xm+i, . . . , xn оптимального решения
x1 = b1 – a1,m+1ּ xm+1 - . . . – a1,m+iּ xm+i - . . . – a1,nּ xn
x2 = b2 – a2,m+1ּ xm+1 - . . . – a2,m+iּ xm+i - . . . – a2,nּ xn
. . . . . . .
xi = bi – ai,m+1ּ xm+1 - . . . – ai,m+iּ xm+i - . . . – ai,nּ xn (3.45)
. . . . . . .
xm = bm – am,m+1ּ xm+1 - . . . – am,m+iּ xm+i - . . . – am,nּ xn
так, что оптимальным решением задачи (3.41) – (3.43) является
X* = (b1, b2, . . . , bi, . . . , bm, 0, 0, . . . , 0), в котором, например, bi – нецелая компонента. В этом случае можно доказать, что неравенство1)
{bi} – {ai,m+1}ּ xm+1 - . . . – {ai,m+i}ּ xm+i - . . . – {ai,n}ּ xn ≤ 0 (3.46)
сформированное по i-му уравнению системы (3.45), обладает всеми свойствами правильного отсечения.
----------------------------------------------------------------------------------------------------– в неравенстве (3.46) символ { } означает дробную часть числа. Целой частью числа а называется наибольшее число [a], не превосходящее а, а дробной частью числа – число {а}, равное разности между этим числом и его целой частью, то есть, {а} = а - [a].
Например,
для а = 2
имеем [a]
= 2, {а} = 2
- 2 =
;
для
а = - 2
имеем [a]
= -3 {а} = - 2
- (-3) =
;
-----------------------------------------------------------------------------------------------------
Для решения задачи целочисленного линейного программирования
-
(3.41) – (3.44) методом Гомори используется следующий алгоритм:
-
1. Симплексным методом решить задачу (3.41) – (3.43) без учета условия целочисленности. Если все компоненты оптимального плана целые, то он является оптимальным и для решения задачи целочисленного программирования (3.41) – (3.44). Если первая задача (3.41) – (3.43) неразрешима (то есть, не имеет конечного экстремума или условия ее противоречивы), то и вторая задача
(3.41) – (3.44) также неразрешима.
2. Если среди компонент оптимального решения есть нецелые, то выбрать компоненту с наибольшей частью по соответствующему уравнению системы (3.45) сформировать правильное отсечение (3.46).
3. Неравенство (3.46) введением дополнительной неотрицательной переменной преобразовать в равносильное уравнение
{bi} – {ai,m+1}ּ xm+1 - . . . – {ai,m+i}ּ xm+i - . . . – {ai,n}ּ xn = 0 (3.47)
и включить его в систему ограничений (3.42).
4. Полученную расширенную задачу решить симплексным методом. Если найденный оптимальный план будет целочисленным, то задача целочисленного программирования (3.41) – (3.43) решена. В противном случае вернуться к п. 2 алгоритма.
Если задача разрешима в целых числах, то после конечного числа шагов (итераций) оптимальный целочисленный план будет найден.
Если в процессе решения появится уравнение (выражающее базисную переменную через свободные) с нецелым свободным членом и целыми остальными коэффициентами, то соответствующее уравнение не имеет решения в целых числах. В этом случае и данная задача не имеет целочисленного оптимального решения.
Недостатком метода Гомори является требование целочисленности всех переменных: как основных, выражающих единицы продукции, так и для дополнительных, выражающих величину неиспользованных ресурсов, которые могут быть и дробными.