
Алгоритм метода ветвей и границ
Cmin:=; /* максимально представимое число */
C:=0;
k:=1;
Вычислить S1; /* например, в качестве S1 можно взять A1 */
while k > 0 do
begin
while (Sk 0) and C < Cmin) do
begin /* продвижение */
В качестве ak взять наименьший элемент из Sk , удалив его из Sk ;
C:=C (a1, a2, ..., ak) = C (a1, a2, ..., ak-1) + C (ak);
if (a1, a2, ..., ak) является решением and (C < Cmin)
then begin Cmin:=C;
Хранить далее (a1, a2, ..., ak) как решение с наименьшей ценой
end
k:=k + 1
end
k:=k-1; /* возврат */
C:=C (a1, a2, ..., ak)
end
Таким образом, метод ветвей и границ представляет собой направленный перебор с отсеиванием «бесперспективны» вариантов. Перебор осуществляется на основе последовательного разбиения пространства решений (ветвления) и вычисления нижних границ стоимости решения с последующим отбрасыванием решений, для которых вычисленная нижняя граница превышает известную верхнюю.
При применении метода ветвей и границ рекомендуется использовать технику перестройки дерева поиска, с тем чтобы решения, близкие к оптимальному, находились на ранних этапах поиска.
Дерево поиска следует перестроить так, чтобы вершины, имеющие относительно мало сыновей, были близки к корню дерева. Это позволит за счет накопления ограничений при движении по дереву поиска отбрасывать "большие поддеревья".
Рис.1
Рис. 2
Дерево поиска на рис. 1 является более предпочтительным, чем на рис.2.
Следует подчеркнуть, что метод ветвей и границ – это не один специальный алгоритм, а широкий класс алгоритмов. Эффективность использования этого метода зависит от разработки способов разбиения пространства решений для данной задачи (стратегии ветвления) и тех алгоритмов, которые используются для вычисления оценок. Гибкость метода ветвей и границ, позволяющая учитывать специфику конкретной решаемой задачи комбинаторной оптимизации, и возможность использования внутри метода ветвей и границ других методов решения (для вычисления оценок), сделали этот метод наиболее популярным при решении задач комбинаторной оптимизации.
Основными особенностями метода ветвей и границ является: возможность сокращения перебора за счет обрезания ветвей, возможность получать хорошие нижние оценки эффективным алгоритмом, монотонное возрастание нижних оценок по мере ветвления множества.