Метод ветвей и границ.
Метод ВИГ (или метод направленного перебора) относится к группе комбинаторных методов решения как линейных, так и нелинейных ЗДП. Этот метод дает общий подход к решению ЗДП, содержащих конечное число допустимых планов, и за конечное число шагов позволяет найти точное решение задач конечной размерности. Разные реализации метода объединяются общей идеей перехода от полного перебора планов к целенаправленному, сокращенному перебору. Сокращение перебора осуществляется за счет массового отсечения неперспективных планов.
Пусть имеет место задача ДП в общем виде:
(1)
Здесь f(X)- скалярная функция своих аргументов, G- конечное множество.
Несмотря на большое разнообразие алгоритмов, разрабатываемых для решения прикладных задач вида (1), им всем свойственны общие основные этапы:
1. Вычисление нижней границы целевой функции f(X) на множестве G и его подмножествах (в случае решения задачи на максимум – вычисление верхней границы),
2. Разбиение множества G на дерево подмножеств,
3. Пересчет нижней границы f(X) на подмножествах,
4. Вычисление допустимых планов,
5. Проверка планов на оптимальность,
6. В случае получения приближенного решения – оценка его точности.
Рассмотрим все эти этапы.
1. Вычисление нижней границы (оценки) целевой функции f(X) на множестве планов G или его подмножествах GiÎ G сводится к определению числа , для которого справедливо неравенство
, или
.
2. Разбиение (ветвление) множества G на дерево подмножеств.
Определение. Множества и
называются разбиением множества G на подмножества Gi.
Суть метода ветвей и границ состоит в последовательном разбиении множества G на дерево подмножеств и в дальнейшем массовом отсеивании неперспективных в том или ином смысле подмножеств. При разработке конкретного алгоритма должен быть указан способ такого разбиения, также как указан метод вычисления нижней границы целевой функции на множестве G и его подмножествах.
Ветвление происходит по следующей схеме:
0-й шаг. Имеется исходное множество G=G0. Некоторым способом его разбивают на конечное число подмножеств .
к-тый (k>0) шаг. Имеются множества
, еще не подвергшиеся ветвлению. По определенному правилу, указанному ниже, среди них выбирают подмножества
и разбивают их на конечное число подмножеств
. Затем еще не подвергавшиеся на этом шаге разбиению множества
и новые подмножества
,
обозначают (перенумеровывают) как
. (Рис.1.)
![]() | ![]() |
Рис.1
3. Пересчет нижних границ целевой функции f(X) на подмножествах.
Очевидно, что если , то
. Поэтому, разбивая в процессе решения множество G0 на подмножества
,
,
значения нижних границ на этих подмножествах будут не меньше оценок для исходного множества G0, т.е.
. В конкретных ситуациях это неравенство для некоторых i превращается из нестрогого в строгое неравенство. Чем быстрее рост оценок на подмножествах, тем эффективнее разработанный алгоритм.
4. Вычисление допустимых планов.
Для конкретных задач могут быть указаны различные способы нахождения планов в последовательно разбиваемых подмножествах. Любой такой способ опирается на специфику задачи. При разработке конкретного алгоритма необходимо указать способ определения допустимых планов.
5. Проверка планов на оптимальность.
Пусть имеется разбиение и найден некоторый план
. Если при этом
, то
- оптимальный план исходной задачи (1).
Действительно, из последнего неравенства следует, что для
, а так как
, то окончательно можно записать
для
.
6. Оценка точности приближенного решения.
Пусть и найден некоторый план
. Обозначим
. Очевидно
. Если разность
невелика, то план
можно принять за приближенное решение, а D будет оценкой его точности.
Формальная схема метода ветвей и границ.
0 шаг. Обозначается . Вычисляется нижняя граница целевой функции
. Если при этом удается найти такой план
, что
, то
- оптимальный план задачи (1).
Если оптимальный план не найден, то некоторым способом разбивают множество на конечное число непересекающихся подмножеств
и переходят к следующему (первому) шагу.
1 шаг. Вычисляют нижние границы на полученных подмножествах:
. Если удается найти такой план
, что
и
, то
- оптимальный план задачи (1).
В противном случае продолжается процесс ветвления. Для разбиения выбирают наиболее перспективное множество по правилу:
. Разбивают множество
. Далее переобозначают множества, не подвергшиеся разбиению на этом шаге,
и новые подмножества
,
как
, и переходят к следующему шагу.
к-й шаг. Исходные множества для рассмотрения на этом этапе . Вычисляются оценки
. Если удается найти такой план
, что
и справедливо условие
, то
- оптимальный план задачи (1).
В противном случае снова выбирают для разбиения наиболее перспективное множество по правилу:
. Далее не подвергшиеся разбиению
и
,
на данном шаге переобозначают как
.
Этот процесс ветвления продолжается до тех пор, пока не будет найдено решение задачи (1).
Замечание. При реализации описанной выше общей схемы метода ветвей и границ для конкретных задач дискретного программирования необходимо разрабатывать правила ветвления, способы вычисления нижних границ целевой функции на рассматриваемых множествах и нахождения допустимых планов, исходя из специфики этих задач.