
- •Вступление
- •1 Ветвление
- •1.1 Бинарное ветвление
- •1.2 Ветвление по компонентам
- •2 Оценка
- •3 Рекорд
- •5 Схема метода ветвей и границ
- •6 Стратегия
- •7 Метод ветвей и границ для решения задачи целочисленного линейного программирования
- •7.1 Ветвление
- •7.2 Вычисление оценки
- •7.3 Тест
- •7.4 Примеры использования метода ветвей и границ для решения задач целочисленного линейного программирования
- •7.5 Задания для самостоятельной работы
- •8 Метод ветвей и границ решения задачи коммивояжера
- •8.1 Ветвление и оценка
- •8.2 Схема метода ветвей и границ решения задачи коммивояжера
- •8.3 Примеры решения задачи коммивояжера
- •8.4 Задания для самостоятельной работы
- •9 Метод ветвей и границ решения задачи о кратчайшем пути
- •9.1. Отношение доминирования
- •9.2 Задачи для самостоятельной работы
- •Список литературы
6 Стратегия
Под стратегией метода ветвей и границ для конкретной задачи понимают следующую совокупность правил и процедур.
Правило ветвления .
Процедура вычисления оценок (нижних границ). При этом часто существует выбор между оценками, которые являются относительно точными, но трудоемкими (требуют много времени для вычислений), и оценками, которые являются не такими точными, но которые можно вычислить значительно быстрее. Правило выбора множества для ветвления. Обычно используются такие алгоритмы выбора множества:
выбор множества с наименьшей нижней оценкой;
выбор согласно правилу LIFO - "последним пришел - первым вышел";
выбор согласно правилу FIFO - "первым пришел - первым ушел";
ветвление в глубину.
Эффективность использования метода зависит от разработки стратегии для каждой конкретной задачи.
7 Метод ветвей и границ для решения задачи целочисленного линейного программирования
Рассмотрим задачу целочисленного линейного программирования (ЗЦЛП):
|
(6) |
|
(7) |
|
(8) |
|
(9) |
Разработаем стратегию метода ветвей и границ для решения данной задачи, то есть определим:
правило ветвления;
способ оценивания получаемых подмножеств;
правило выбора множества для ветвления;
тест.
Выберем
множества
и
таким образом:
–
множество,
которое задается ограничениями (7)-(9) –
это множество изолированных точек,
которое показано на рисунке 7.1.
Рисунок 7.1 – Множество изолированных точек
–
множество,
которое задается ограничениями (7)-(8) –
это многогранное выпуклое множество,
которое показано на рисунке 7.2.
Рисунок 7.2 – Многогранное выпуклое множество
Согласно общей идее сначала решается задача с ослабленными ограничениями, то есть задача
Пусть
получили некоторое решение
этой задачи. Если оно удовлетворяет
условиям (9), то исходная задача (6)-(9)
решена, если же нет, то значения
являются нижней гранью (оценкой)
оптимальности целевой функции задачи
(6)-(9).
7.1 Ветвление
В данной реализации алгоритма метода ветвей и границ используется правило бинарного ветвления, то есть на каждом шаге задача разбивается на две подзадачи методом добавления двух взаимоисключающих и исчерпывающих все возможности ограничения. Рассмотрим детально этот процесс.
Пусть
– целочисленная переменная (
),
значение которой
в оптимальном решении ослабленной
задачи является дробным числом. Интервал
не содержит допустимых целочисленных
компонент решения (где
целая
часть1
числа
).
Потому допустимое решение должно
удовлетворять одному из условий:
|
(10) |
|
(11) |
Ввод этих условий во входную задачу порождает две несвязанные между собой ЗЦЛП: (6)-(9),(10) и (6)-(9),(11) (рисунок 7.3)
Рисунок 7.3 - Ветвление
Говорят,
что исходная задача разбивается на две
подзадачи. Формально, правило ветвления
множества
записывается так: если
не целочисленная компонента решения
ослабленной задачи
,
то разбитие множества
следующее:
.
Что касается правила выбора множества для ветвления, то будем выбирать ту вершину дерева, которая имеет наименьшую оценку.