- Метод ветвей и границ
-
Метод ветвей и границ (англ. branch and bound) — общий алгоритмический метод для нахождения оптимальных решений различных задач оптимизации, особенно дискретной и комбинаторной оптимизации. По существу, метод является вариацией полного перебора с отсевом подмножеств допустимых решений, заведомо не содержащих оптимальных решений.
Метод ветвей и границ был впервые предложен в 1960 году Ленд и Дойг[1] для решения задач целочисленного программирования.
Содержание
Общее описание
Общая идея метода может быть описана на примере поиска минимума функции
на множестве допустимых значений переменной
. Функция
и переменная
могут быть произвольной природы. Для метода ветвей и границ необходимы две процедуры: ветвление и нахождение оценок (границ).
Процедура ветвления состоит в разбиении множества допустимых значений переменной
на подобласти (подмножества) меньших размеров. Процедуру можно рекурсивно применять к подобластям. Полученные подобласти образуют дерево, называемое деревом поиска или деревом ветвей и границ. Узлами этого дерева являются построенные подобласти (подмножества множества значений переменной
).
Процедура нахождения оценок заключается в поиске верхних и нижних границ для решения задачи на подобласти допустимых значений переменной
.
В основе метода ветвей и границ лежит следующая идея: если нижняя граница значений функции на подобласти
дерева поиска больше, чем верхняя граница на какой-либо ранее просмотренной подобласти
, то
может быть исключена из дальнейшего рассмотрения (правило отсева). Обычно, минимальную из полученных верхних оценок записывают в глобальную переменную
; любой узел дерева поиска, нижняя граница которого больше значения
, может быть исключен из дальнейшего рассмотрения.
Если нижняя граница для узла дерева совпадает с верхней границей, то это значение является минимумом функции и достигается на соответствующей подобласти.
Применение
Метод используется для решения некоторых NP-полных задач, таких как:
См. также
Примечания
- ↑ A. H. Land and A. G. Doig. An automatic method of solving discrete programming problems, стр. 497-520.
Категории:- Алгоритмы оптимизации
- Эвристические алгоритмы
Wikimedia Foundation. 2010.