Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
алгоритмы / Гамильтоновы графы.doc
Скачиваний:
157
Добавлен:
18.03.2015
Размер:
83.46 Кб
Скачать

Алгоритм метода ветвей и границ

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.

Следует подчеркнуть, что метод ветвей и границ – это не один специальный алгоритм, а широкий класс алгоритмов. Эффективность использования этого метода зависит от разработки способов разбиения пространства решений для данной задачи (стратегии ветвления) и тех алгоритмов, которые используются для вычисления оценок. Гибкость метода ветвей и границ, позволяющая учитывать специфику конкретной решаемой задачи комбинаторной оптимизации, и возможность использования внутри метода ветвей и границ других методов решения (для вычисления оценок), сделали этот метод наиболее популярным при решении задач комбинаторной оптимизации.

Основными особенностями метода ветвей и границ является: возможность сокращения перебора за счет обрезания ветвей, возможность получать хорошие нижние оценки эффективным алгоритмом, монотонное возрастание нижних оценок по мере ветвления множества.