Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
45
Добавлен:
12.02.2015
Размер:
267.26 Кб
Скачать

Метод ветвей границ (вг)

Этот метод представляет, в сущности, схему методов и содержит одну процедуру, которая меняется от задачи к задаче. Найти ее для новой задачи – это ПРОБЛЕМА. При решении некоторой задачи в методе ветвей границ мы должны располагать помимо основной задачи некоторой «ослабленной» задачей, которая отличается от основной снятием некоторого условия, усложняющей решение основной. При этом мы должны располагать эффективным методом решения ослабленных задач, оформленным в виде некоторой процедуры. Назовем ее вспомогательной процедурой.

Для задачи о коммивояжере (ЗК) такой ослабленной задачей является задача о назначении (ЗН). Здесь мы снимаем условие о том, что решение должно быть циклом. Сказанное означает, что для реализации метода ветвей и границ для задачи о коммивояжере необходимо иметь эффективный метод решения задачи о назначении. Будем считать, что вспомогательной процедурой для задачи о коммивояжере является венгерский метод решения задачи о назначении.

Для обычной целочисленной задачи ослабленной задачей является соответствующая непрерывной ЗЛП, получающаяся снятием условия целочисленности, а вспомогательной процедурой – симплекс-метод.

Второй важной процедурой метода ветвей и границ является процедура ветвления.

Установим предварительно следующий факт.

Пусть в некоторой задаче оптимизации (для определенности задаче минимизации) мы добавляем некоторые дополнительное условие на варианты выбора. Что произойдет с оптимальным значением целевой функции? Ясно, что поскольку старая оптимальная альтернатива (ОА) может не удовлетворять новому условию, то у новой ОА значение целевой функции может оказаться хуже. Таким образом, оптимальное значение целевой функции при добавлении дополнительного условия либо останется неизменным, либо ухудшиться, то есть не улучшится.

Наоборот, при снятии некоторого условия оптимальное значение целевой функции не ухудшается, но может улучшится.

Процедура ветвления производит разбиение некоторой задачи на ряд подзадач. Это разбиение достигается введением дополнительных условий.

Условия правильного разбиения при ветвлении

Пусть P – некоторая задача линейного программирования, S- множество допустимых решений этой задачи. Не изменяя целевой функции и исходных ограничительных условий, наложим на решения исходной задачи последовательно по одному дополнительному ограничительному условию из совокупности условия . Получим соответствующие им вспомогательные задачи, множества допустимых решений которых суть. Такой переход от задачиP к задачам будем называть ветвлением, если множество допустимых решений исходной задачи S есть объединение множеств допустимых решений «разветвлений», то есть

.

Из сказанного выше следует, что если есть оптимальное значение целевой функции для задачи P , а - оптимальное значение целевой функции для задачи , то , причем хотя бы для одной задачи имеем .

Ветвление наглядно можно представить себе так:

В методе ВГ ветвлению подвергается «ослабленная» задача и его результате получаются также «ослабленные» задачи.

Смысл ветвления состоит в том, что для некоторых разветвлений оптимальные решения могут удовлетворять отброшенному условию и, следовательно, среди них можно найти оптимальное решение исходной задачи

Нужно иметь в виду, что ветвлению могут подвергаться не только задача P, но и разветвления , затем их разветвления и т. д. до тех пор, пока не будет найдено решение исходной задачи. В результате строится целое дерево задач, в основании которого лежит первая ослабленная задача. На одной из ветвей этого дерева и «лежит» искомое решение.

Перейдем к изложению алгоритма метода ВГ.

Основными объектами алгоритма являются:

  1. Основной список задач . Р– это ослабленные задачи, которые мы будем решать. Во всех этих задачах снято главное условие, что необходимо для перехода от исходной к ослабленной.

  2. Рекордное решение

  3. Рекордное значение целевой функции .

  4. Решение текущей задачи Р.

  5. Значение целевой функции текущей задачи Р.

  6. С – главное условие, которое мы убрали при переходе от исходной задачи к ослабленной

Основные процедуры

    1. Процедура метода решения ослабленных задач (вспомогательная процедура).

    2. Процедура ветвления.

АЛГОРИТМ МЕТОДА ВГ

  1. Инициализация.

Находим какое-нибудь допустимое решение исходной задачи. Ее решение объявляем текущим рекордным и присваиваем значение целевой функции этого решения рекордному .

Из исходной задачи убираем условие С и полученную ослабленную задачу вносим в раннее пустой список .

  1. Выбираем и удаляем из списка любую ослабленную задачу Р.

  2. Решаем ослабленной задачи Р. Если у этой задачи решений нет, переходим к пункту 8, иначе переходим к пункту 4 .

  3. Проверяем условие . Если это условие выполняется, то переходим к пункту 5, иначе переходим к пункту 8 .

  4. Проверяем выполняется ли для полученного решения условие С. Если это условие выполняется, то переходим к пункту 7, иначе переходим к пункту 6) .

6. Здесь оказываемся, когда , но решение не удовлетворяет условию С. В этом случае применяем процедуру ветвления к только что решенной задаче, полученными разветвлениями пополняем список и возвращаемся к пункту 2.

7. Меняем рекордное решение , то есть заменяем на, а на Переходим к пункту 8.

8. Проверяется, пуст ли список . Если он пуст, то мы переходим к Концу алгоритма (пункт 9), иначе переходим к пункту 1.

9. Конец алгоритма. Объявляем рекордное решение решением основной задачи.

Соседние файлы в папке Лекции