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