Пример 5.3:
F(
) = 3*x1 + 2*x2 ® max
при ограничениях
x1 + x2 £ 3,5;
x1 £ 2;
x2 £ 2;
x1, х2 ³ 0, целые.
Начальный шаг решения этой задачи состоит в нахождении решения задачи ЛП, получаемой при отбрасывании условия целочисленности х1 и х2. Обозначим эту задачу через ЛП-1. На рис.5.1.1 представлено графическое решение задачи ЛП-1.

Рис.5.1.1. Решение задачи ЛП-1.
Оптимальное решение задачи ЛП-1
имеет вид: х1 = 2, х2 = 1,5, оптимальное значение целевой
функции F(
) = 9. Поскольку х2 принимает дробное значение,
найденное решение не может быть оптимальным решением исходной задачи ЦЛП. Но
найденное значение F(
) представляет собой верхнюю границу истинного оптимального
целочисленного значения, поскольку при выполнении требования целочисленности х2 значение F(
) может лишь уменьшиться.
Следующий шаг метода ветвей и границ состоит в просмотре целочисленных значений х2, больших или меньших 1,5. Это делается путем добавления к задаче ЛП-1 либо ограничения x2 £ 1, либо х2 ³ 2. Таким образом, из задачи ЛП-1 получаются две задачи следующего вида (ЛП-2 и ЛП-3):
ЛП-2 ЛП-3
F(
) = 3*x1 + 2*x2 ® max F(
) = 3*x1 + 2*x2 ® max
при ограничениях при ограничениях
x1 + x2 £ 3,5 x1 + x2 £ 3,5
x1 £ 2 x1 £ 2
x2 £ 2 x2 £ 2
x2 £ 1 х2 ³ 2
x1, х2 ³ 0, x1, х2 ³ 0.
На рис.5.1.2 и 5.1.3 изображены допустимые области задач ЛП-2 и ЛП-3 соответственно. (Заметим, что допустимая область задачи ЛП-3 представляет собой просто отрезок АВ).

Рис. 5.1.2. Решение задачи ЛП-2.

Рис. 5.1.3. Решение задачи ЛП-3.
Оптимальное решение задачи ЛП-2
(рис. 2) – точка х1 = 2, х2 = 1, где F(
) = 8. Таким образом, получено допустимое (целочисленное)
решение исходной задачи ЦЛП. Зафиксируем это целочисленное решение. Пусть Z0 = 8. Даже если ЛП-2 имеет
другие целочисленные решения, значение целевой функции в них не может быть
больше 8. Таким образом значение Z0
= 8 представляет собой текущую нижнюю границу максимального значения F
. Поскольку ранее была получена верхняя граница, равная 9,
нельзя утверждать, что решение ЛП-2 оптимально для исходной задачи.
Следовательно, необходимо также рассмотреть задачу ЛП-3.
Оптимальное значение задачи ЛП-3
(рис.3) – х1 = 1,5; х2 = 2; F(
) = 8,5. Для исходной задачи ЦЛП это решение недопустимо,
поскольку х1 принимает дробное значение. Оптимальное значение F(
) = 8,5 задачи ЛП-3 больше ранее полученной нижней границы
= 8, поэтому необходимо
проверить существование в допустимой области задачи ЛП-3 целочисленного
решения, дающего значение целевой функции F
³ 8. Для этого рассматриваются
задачи ЛП-4 и ЛП-5, получающиеся при добавлении к ЛП-3 ограничений х1
£ 1 и х1 ³ 2 соответственно.
ЛП-4 ЛП-5
F(
) = 3*x1 + 2*x2 ® max F(
) = 3*x1 + 2*x2 ® max
при ограничениях при ограничениях
x1 + x2 £ 3,5 x1 + x2 £ 3,5
x1 £ 2 x1 £ 2
x2 £ 2 x2 £ 2
х2 ³ 2 х2 ³ 2
x1 £ 1 х1 ³ 2
x1, х2 ³ 0, x1, х2 ³ 0.
Допустимая область задачи ЛП-4 состоит из отрезка ДЕ, показанного на рис. 5.1.4; задача ЛП-5 не имеет допустимых решений.

Рис. 5.1.4. Решение задачи ЛП-4.
Оптимальное решение задачи ЛП-4
имеет вид: х1 = 1, х2 = 2;
F(
) = 7, следовательно, для любого целочисленного решения в
допустимой области ЛП-3 значение целевой функции не превосходит 7. Так как F(
) меньше ранее полученной нижней границы, то
= 8 не изменяется.
Таким образом, точка х1 = 2, х2 = 1 (решение задачи ЛП-2)
представляет собой оптимальное целочисленное решение исходной задачи;
оптимальное значение целевой функции в этой точке равно
= 8.
Удобно представить последовательность задач ЛП, возникающих при использовании процедуры метода ветвей и границ в виде сети или дерева, изображенного на рис.5.1.5. —еть или дерево состоит из множества вершин и соединяющих их дуг или ветвей.
![]() |
|||||



ЛП-1
= (2; 1,5) F(
) = 9
x 2 £ 1 x 2 ³2
= (2; 1) ЛП-2 ЛП-3
= (1,5; 2)
F(
) = 8=
F(
) = 8,5 >![]()
x 1 £ 1 x 1 ³2
= (1; 2) ЛП-4 ЛП-5 P = Æ
F(
) = 7 <![]()
Рис. 5.1.5.
Каждая вершина представляет
собой либо начальную, либо конечную точку некоторой ветви. Вершина 1 на рис. 5
соответствует задаче ЛП-1, получаемой при отбрасывании требования
целочисленности переменных. Ветвление в вершине 1, определяемое целочисленной
переменной х2 с помощью ограничения х2 £ 1, приводит к вершине 2 (ЛП-2). Поскольку задача
ЛП-2 имеет оптимальное целочисленное решение, нет необходимости производить
ветвление в вершине 2. В этом случае говорят, что рассматриваемая вершина
прозондирована. Ветвление в вершине 1 по ограничению х2 ³ 2 дает ЛП-3 (вершина 3). Поскольку оптимальное решение
ЛП-3 является дробным и F(
) >
происходит дальнейшее
ветвление в вершине 3 по целочисленной переменной х1. Таким образом, появляются вершины 4 и 5. Эти
вершины являются прозондированными, поскольку ЛП-4 обладает целочисленным
решением, а задача ЛП-5 не имеет допустимых решений. Наилучшее решение из
полученных в прозондированных вершинах представляет собой оптимальное решение
исходной задачи.
ПОДРОБНОЕ ОПИСАНИЕ МЕТОДА
Рассмотрим частично целочисленную задачу следующего вида:
F(
)= (
)
;
A
=
, ![]()
;
;
xj – целочисленная переменная при j Î I,
где I – множество индексов целочисленных переменных задачи.
В качестве первого шага
необходимо решить сформулированную задачу как задачу ЛП, рассматривая все ее
переменные как непрерывные. Получаемая таким образом задача ЛП обозначается
через ЛП-1, оптимальное значение ее целевой функции – через F(
). Пусть в оптимальном решении задачи ЛП-1 некоторые
целочисленные переменные принимают дробные значения; тогда оптимальное решение
исходной задачи не совпадает с оптимальным решением ЛП-1. В этом случае
величина F(
) представляет собой верхнюю границу оптимального значения
исходной задачи.
На следующем шаге производится ветвление по одной из целочисленных переменных, имеющих дробное значение в оптимальном решении задачи ЛП-1. Часто выбирают переменную, которая имеет наибольшее дробное значение.
Пусть ветвление происходит по
целочисленной переменной xj,
значение которой в оптимальном решении ЛП-1 равно
. Далее рассматриваются две новые задачи ЛП, обозначаемые
через ЛП-2 и ЛП-3. Они получаются путем введения ограничений
£[
] и
³ [
] + 1 соответственно. Условия задач ЛП-2 и ЛП-3 можно
записать следующим образом:
ЛП-2 ЛП-3
F(
)= (
)
F(
)= (
)![]()
A
=
,
A
=
, ![]()
£ [
]
³ [
] + 1
![]()
Допустим, что оптимальные решения задач ЛП-2 и ЛП-3 также содержат дробные значения целочисленных переменных и поэтому не являются допустимыми для исходной задачи.
На следующем шаге необходимо выбрать задачу ЛП-2 или ЛП-3 и произвести ветвление в соответствующей вершине, вводя новое ограничение. Выбор вершины (задачи ЛП) для дальнейшего ветвления часто осуществляется с использованием оптимального значения целевой функции, т.е. выбирается вершина, соответствующая наибольшему оптимальному значению целевой функции задачи ЛП.
После выбора вершины для
дальнейшего ветвления выбирается целочисленная переменная, которая имеет в
оптимальном решении соответствующей задачи ЛП дробное значение, и производится
ветвление по этой переменной. Процесс ветвления и решения задач ЛП продолжается
до получения целочисленного оптимального решения одной из задач ЛП. «начение Z0
в полученной точке представляет собой текущую нижнюю границу оптимального
значения целевой функции исходной задачи ЦЛП. На этом этапе отбрасываются все
вершины (задачи ЛП), для которых оптимальное значение F(
) не превосходит
полученной нижней границы. Про такие вершины также говорят, что они являются
прозондированными, поскольку в соответствующих им допустимых областях нет
целочисленных решений, лучших, чем уже полученное, следовательно, промежуточная
вершина (задача ЛП) является прозондированной (явным или неявным образом) в том
случае, если она удовлетворяет хотя бы одному из следующих условий.
1.Оптимальное решение, соответствующее данной вершине, целочисленно.
2.«адача ЛП, соответствующая рассматриваемой вершине, не имеет допустимых решений.
3.Оптимальное значение F(
) соответствующей задачи ЛП не превосходит текущей нижней
границы Z0.
Дальнейшее ветвление можно
производить только в вершинах, для которых F(
) ³ Z0. ак только
полученное допустимое целочисленное решение одной из задач ЛП окажется лучше
имеющегося текущего значения Z0, оно фиксируется вместо
зафиксированного ранее (т.е. меняется значение Z0).
При использовании метода ветвей и границ выбор вершин для дальнейшего ветвления происходит до тех пор, пока остается хотя бы одна непрозондированная вершина. Прозондированная вершина с наилучшим значением Z0 дает решение исходной задачи ЦЛП.
ЗАМЕЧАНИЕ: Получение перед реализацией метода ветвей и границ допустимого целочисленного решения может оказаться весьма полезным, так как сразу дает начальную нижнюю границу.
ДОМАШНЕЕ ЗАДАНИЕ №17
Решить задачу целочисленного программирования методом ветвей и границ, учитывая целочисленность переменных.


Назад к разделу "5. СПЕЦИАЛЬНЫЕ ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ"