Алгоритмические стратегии
Метод ветвей и границ (branch and bound)
Метод ветвей и границ
Основная идея метода поиска с возвратом – обрезка ветви дерева пространства состояний задачи, как только можно сделать вывод, что она не ведет к решению. Эта идея может быть усилена при работе с оптимизационными задачами, которые должны минимизировать или максимизировать целевую функцию, обычно при наличии некоторых ограничений. Заметим, что в стандартной терминологии задач оптимизации допустимое решение представляет собой точку в пространстве состояний задачи, которая удовлетворяет всем ее ограничениям, в то время оптимальное решение является допустимым решением с наилучшим значением целевой функции.
Метод ветвей и границ
Метод ветвей и границ
Если такая информация доступна, мы можем сравнивать значение границы узла со значением наилучшего решения, полученного к этому моменту: если значения границы не лучше значения уже имеющегося наилучшего решения – т.е. не меньше в случае задачи минимизации или не больше в случае задачи минимизации, - то такой узел является бесперспективным и его обработка может быть завершена (иногда говорят, что эта ветвь обрезается), поскольку ни одно получаемое решение не может оказаться лучше того, что уже имеется. В этом заключается основная идея метода ветвей и границ.
Метод ветвей и границ
Метод ветвей и границ
Метод ветвей и границ
Пример 1. Задача о назначениях. Имеется n работников, которым надо выполнить n заданий, по одному заданию каждый (т.е. каждому работнику назначается только одно задание и каждое задание назначается лишь одному человеку). Стоимость выполнения i-ым работником j-го задания известна и равна C(i, j) для всех пар i, j = 1,…n. Задача заключается в следующем: надо распределить задания между работниками таким образом, чтобы они были выполнены с наименьшей стоимостью. Если решать эту задачу методом исчерпывающего перебора, то количество вариантов будет n!.
Метод ветвей и границ
Задачу можно сформулировать следующим образом: выбрать по одному элементу в каждой строке матрицы так, чтобы никакие два выбранных элемента не располагались в одном столбце, а общая сумма выбранных элементов была минимальной. Зад. 1 Зад. 2 Зад. 3 Зад. 4 9 2 7 8 Работник a 6 4 3 7 Работник b 5 8 1 8 Работник c 7 6 9 4 Работник d
Метод ветвей и границ
Как найти нижнюю границу стоимости оптимального решения без реального решения задачи? Можно сделать это разными путями. Например, ясно, что стоимость любого решения, включая оптимальное, не может быть меньше суммы наименьших элементов в каждой из строк матрицы. Для приведенного примера эта сумма равна 2+3+1+4=10. Важно отметить, что это значение не является суммой ни одного из допустимых выборов (т.к. 3 и 1 находятся в одном столбце матрицы), это просто нижняя граница стоимости любого выбора, соответствующего ограничениям задачи.
Метод ветвей и границ
В методе ветвей и границ, также как и в поиске с возвратом, строится дерево пространства состояний. Однако, вместо генерации одного дочернего узла по отношению к последнему обещающему, как это делалось при поиске с возвратом, мы будем генерировать все дочерние узлы для наиболее обещающего среди незавершенных листьев текущего дерева (незавершенные, т.е. все еще обещающие листья иногда называют живыми).
Метод ветвей и границ
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.