Пред.
След.
Макеты страниц
Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO
ГЛАВА 10. МЕТОД ВЕТВЕЙ И ГРАНИЦВпервые метод ветвей и границ был предложен в 1960 г. в работе Лэнд и Дойг [109] применительно к задаче целочисленного линейного программирования. Однако эта работа не оказала заметного непосредственного влияния на развитие дискретного программирования. Фактически «второе рождение» метода ветвей и границ связано с работой Литтла, Мурти, Суини и Кэрел [113], посвященной задаче коммивояжера; в этой же работе было впервые предложено и общепринятое теперь название метода «метод ветвей и границ». Начиная с этого момента появляется весьма большое число работ, посвященных методу ветвей и границ и различным его модификациям. Столь большой успех (да еще применительно к «классически трудной» задаче о коммивояжере) объясняется тем, что Литтл, Мурти, Суини и Кэрел первыми обратили внимание на широту возможностей метода ветвей и границ, отметили важность использования специфики задачи и сами весьма удачно этой спецификой воспользовались. В § 1 настоящей главы излагается общая идея метода ветвей и границ; в § 2 — алгоритм Лэнд и Дойг для задачи целочисленного линейного программирования, в § 3 — метод Литтла и др. авторов для задачи коммивояжера. § 1. Идея метода ветвей и границ1.1. Рассмотрим задачу дискретного программирования в следующей общей форме. Минимизировать
при условии
Здесь G - некоторое конечное множество. 1.2. В основе метода ветвей и границ лежат следующие построения, позволяющие в ряде случаев существенно уменьшить объем перебора. I. Вычисление нижней границы (оценки).
Рис. 10.1.1. Часто удается найти нижнюю границу (оценку) целевой функции
(соответственно для 0-й шаг. Имеется множество
Еще не подвергавшиеся разбиению множества
заново обозначаются через Несколько шагов такого процесса последовательного разбиения схематически изображены на рис. 10.1.1. III. Пересчет оценок. Если множество
Поэтому, разбивая в процессе решения некоторое множество
всегда будем считать, что оценка (граница) для любого подмножества
В конкретных ситуациях часто оказывается возможным добиться улучшения оценки, т. е. получить хотя бы для некоторых
IV. Вычисление планов. Для конкретных задач могут быть указаны различные способы нахождения планов в последовательно разветвляемых подмножествах. Любой такой способ существенно опирается на специфику задачи. V. Признак оптимальности. Пусть
и план X принадлежит некоторому подмножеству
то X — оптимальный план задачи (1.1) — (1.2). Доказательство непосредственно следует из определения оценки. Обычно этот признак применяется на некотором этапе ветвления (т. е., говоря формально, при VI. Оценка точности приближенного решения. Пусть
Если X — некоторый план исходной задачи (т. е.
Доказательство и здесь сразу следует из определения оценки. Очевидно, что если разность 1.3. Изложим формальную схему метода ветвей и границ. 0-й шаг. Вычисляем оценку
то X — оптимальный план. Если оптимальный план не найден, то по некоторому способу разбиваем множество
и переходим к 1-й шаг. Вычисляем оценки
то X — оптимальный план. Если же оптимальный план не найден, то выбираем «наиболее перспективное» для дальнейшего разбиения множество
Разбиваем множество
Еще не подвергавшиеся разбиению множества
заново обозначим через
и переходим ко k-й шаг
то Если же оптимальный план не найден, то снова выбираем наиболее перспективное множество
Разбиваем
Еще не подвергавшиеся разбиению множества
заново обозначаем через
и переходим к 1.4. Для реализации описанной выше схемы метода ветвей и границ применительно к отдельным задачам дискретного программирования необходимо лишь, исходя из особенностей этих задач, конкретизировать правила ветвления, вычисления оценок (границ) и нахождения планов. В следующих двух параграфах это будет проделано для частично целочисленной задачи линейного программирования (метод Лэнд и Дойг) и для задачи о коммивояжере (метод Литтла и др.). Общая же схема метода ветвей и границ при этом воспроизводиться не будет.
|
1 |
Оглавление
|