Введение

Оптимизация путем исключения неоптимальных решений подзадач.

Метод ветвей и границ (BB, B&B или BnB) – это метод решения задач оптимизации путем разбиения их на более мелкие подзадачи и использования оценочной функции для исключения подзадач, которые не могут содержать оптимальное решение. Это парадигма разработки алгоритмов для задач дискретной и комбинаторной оптимизации, а также математической оптимизации. Алгоритм ветвей и границ состоит из систематического перебора возможных решений посредством поиска в пространстве состояний: множество возможных решений представляется в виде корневого дерева, где корень содержит полное множество решений. Алгоритм исследует ветви этого дерева, представляющие подмножества множества решений. Прежде чем перебирать возможные решения ветви, она проверяется на соответствие верхним и нижним оценочным границам оптимального решения и отбрасывается, если не может привести к лучшему решению, чем наилучшее, найденное алгоритмом на данный момент. Эффективность алгоритма зависит от точной оценки верхних и нижних границ регионов/ветвей пространства поиска. Если границы недоступны, алгоритм вырождается в полный перебор. Метод был впервые предложен Айлсой Лэнд и Элисон Доиг в ходе исследований, проводившихся в Лондонской школе экономики при спонсорской поддержке British Petroleum в 1960 году для задач дискретного программирования, и стал наиболее распространенным инструментом для решения NP-трудных задач оптимизации.

Обзор

Целью алгоритма ветвей и границ является поиск значения x, которое максимизирует или минимизирует значение вещественной функции f(x), называемой целевой функцией, среди некоторого множества S допустимых или кандидатных решений. Множество S называется пространством поиска или областью допустимых решений. В остальной части раздела предполагается, что требуется минимизация f(x); это предположение не ограничивает общность, поскольку максимальное значение f(x) можно найти, найдя минимум. Алгоритм ветвей и границ работает на основе двух принципов: он рекурсивно разбивает пространство поиска на меньшие пространства, а затем минимизирует f(x) на этих меньших пространствах; это разбиение называется ветвлением. Само по себе ветвление привело бы к полному перебору кандидатных решений и их проверке. Чтобы повысить эффективность по сравнению с полным перебором, алгоритм ветвей и границ отслеживает границы для искомого минимума и использует эти границы для "отсечения" пространства поиска, исключая кандидатные решения, для которых он может доказать, что они не содержат оптимального решения. Преобразование этих принципов в конкретный алгоритм для конкретной задачи оптимизации требует некоторой структуры данных, представляющей наборы кандидатных решений. Такое представление называется экземпляром задачи. Обозначим множество кандидатных решений экземпляра I как SI. Представление экземпляра должно включать три операции:

branch(I) создает два или более экземпляров, каждый из которых представляет подмножество SI. (Обычно подмножества не пересекаются, чтобы алгоритм не посещал одно и то же кандидатное решение дважды, но это не обязательно. Однако оптимальное решение среди SI должно содержаться хотя бы в одном из подмножеств.) bound(I) вычисляет нижнюю границу значения любого кандидатного решения в пространстве, представленном I, то есть bound(I) ≤ f(x) для всех x в SI. solution(I) определяет, представляет ли I единственное кандидатное решение. (Необязательно, если это не так, операция может выбрать для возврата некоторое допустимое решение из SI.) Если solution(I) возвращает решение, то f(solution(I)) предоставляет верхнюю границу для оптимального целевого значения по всему пространству допустимых решений. Используя эти операции, алгоритм ветвей и границ выполняет рекурсивный поиск сверху вниз по дереву экземпляров, сформированному операцией ветвления. При посещении экземпляра I он проверяет, равна ли bound(I) текущей верхней границе или превышает ее; если да, то I можно безопасно исключить из поиска, и рекурсия останавливается. Этот шаг отсечения обычно реализуется путем поддержания глобальной переменной, которая хранит минимальную верхнюю границу, обнаруженную среди всех рассмотренных экземпляров.

Улучшения

Когда **x** является вектором, алгоритмы ветвей и границ можно комбинировать с интервальным анализом и методами контракторов для получения гарантированных оценок глобального минимума.

Связь с другими алгоритмами

Нау и др. представляют обобщение метода ветвей и границ, которое также охватывает алгоритмы поиска A*, B* и альфа-бета отсечения.