Автор работы: Пользователь скрыл имя, 09 Января 2014 в 13:38, курсовая работа
В курсовой работе рассматривается применения метода ветвей и границ для задач линейного программирования. В контексте данных задач будет дано общее описание метода ветвей и границ, его места в общей задаче линейного программирования.
Введение…………………………………………………………………………2
1.Историческая справка………………………………………………………..3
2.Описание метода………………………………………………………...……4
2.1Правила ветвления………………………………………………………….4
2.2Формирование нижних и верхних оценок целевой функции…………...6
2.3Алгоритм метода ветвей и границ………………………………………...9
2.4Решение задачи методом ветвей и границ………………………………..10
3.Решение задачи коммивояжера методом ветвей и границ……………….15
3.1 Постановка задачи…………………………………………………………15
3.2Условие задачи……………………………………………………………..19
3.3Математическая модель задачи…………………………………………...19
3.4Решение задачи методом ветвей и границ………………………………..21
Заключение………………………………………………………………………26
Список используемых источников……………………………………………27
Содержание
Введение…………………………………………………………
1.Историческая справка………………………………………………………..
2.Описание метода………………………………………………………...
2.1Правила ветвления………………………………………………………
2.2Формирование нижних и верхних оценок целевой функции…………...6
2.3Алгоритм метода ветвей и границ………………………………………...9
2.4Решение задачи методом ветвей и границ………………………………..10
3.1 Постановка задачи…………………………………
3.2Условие задачи…………………………………………………………….
3.3Математическая модель задачи…………………………………………...19
3.4Решение задачи методом ветвей и границ………………………………..21
Заключение……………………………………………………
Список используемых источников……………………………………………27
Введение
В курсовой работе рассматривается применения метода ветвей и границ для задач линейного программирования. В контексте данных задач будет дано общее описание метода ветвей и границ, его места в общей задаче линейного программирования.
Большой класс прикладных задач оптимизации сводится к задачам линейного программирования. Для решения этих задач широко применяются комбинаторные методы, основанные на упорядоченном переборе наиболее перспективных вариантов.
При решении многомерных задач оптимизации предлагается совместное применение методов ветвей и границ и динамического программирования. На первом этапе задача решается методом динамического программирования отдельно по каждому из ограничений. Последовательности, полученные в результате решения функционального уравнения динамического программирования, в дальнейшем используется для оценки верхней (нижней) границы целевой функции. На втором этапе задача решается методом ветвей и границ. При использовании этого метода определяется способ разбиения всего множества допустимых вариантов на подмножества, то есть способ построения дерева возможных вариантов, и способ оценки верхней границы целевой функции.
Комплексное применение
ветвей и границ позволяет повысить
эффективность решения
Впервые метод ветвей и границ был предложен Лендом и Дойгом в 1960 для решения общей задачи целочисленного линейного программирования. Интерес к этому методу и фактически его «второе рождение» связано с работой Литтла, Мурти, Суини и Кэрела, посвященной задаче коммивояжера. Начиная с этого момента, появилось большое число работ, посвященных методу ветвей и границ и различным его модификациям. Столь большой успех объясняется тем, что авторы первыми обратили внимание на широту возможностей метода, отметили важность использования специфики задачи и сами воспользовались спецификой задачи коммивояжера.
Этот метод является наиболее общим среди всех методов дискретного программирования и не имеет принципиальных ограничений по применению. Алгоритм метода ветвей и границ представляет собой эффективную процедуру перебора всех целочисленных допустимых решений.
Метод ветвей и границ – один из комбинаторных методов. Его суть заключается в упорядоченном переборе вариантов и рассмотрении лишь тех из них, которые оказываются по определенным признакам перспективными, и отбрасывании бесперспективных вариантов.
2. Описание метода
В основе метода ветвей и границ лежит идея последовательного разбиения множества допустимых решений на подмножества. На каждом шаге метода элементы разбиения подвергаются проверке для выяснения, содержит данное подмножество оптимальное решение или нет. Проверка осуществляется посредством вычисления оценки снизу для целевой функции на данном подмножестве. Если оценка снизу не меньше рекорда – наилучшего из найденных решений, то подмножество может быть отброшено. Проверяемое подмножество может быть отброшено еще и в том случае, когда в нем удается найти наилучшее решение. Если значение целевой функции на найденном решении меньше рекорда, то происходит смена рекорда. По окончанию работы алгоритма рекорд является результатом его работы.
Если удается отбросить все элементы разбиения, то рекорд – оптимальное решение задачи. В противном случае, из неотброшенных подмножеств выбирается наиболее перспективное (например, с наименьшим значением нижней оценки), и оно подвергается разбиению. Новые подмножества вновь подвергаются проверке и т.д.
При применении метода ветвей и границ к каждой конкретной задаче в первую очередь должны быть определены две важнейшие его процедуры: 1) ветвления множества возможных решений; 2) вычисления нижних и верхних оценок целевой функции.
2.1 Правила ветвления
задача коммивояжер ветвь граница
В зависимости от особенностей задачи для организации ветвления обычно используется один из двух способов:
Первый способ ветвления
обычно применяется для задач
целочисленного программирования и
заключается в выделении
Второй способ ветвления – более универсальный, чем первый. Для осуществления ветвления некоторой области Di' этим способом на Di' решается оптимизационная задача с целевой функцией исходной задачи и действительными переменными.
Ветвление осуществляется, если в оптимальном решении значение хотя бы одной целочисленной по исходной постановке задача переменной не является целочисленным. Среди этих переменных выбирается одна, например j – я. Обозначим ее значение в найденном оптимальном решении x0[j]. Говорят, что ветвление осуществляется по переменной x[j]. Область Di' разделяется на две подобласти Di1' и Di2' следующим образом:
(1)
где [x0[j]] – целая часть значения x0[j]
На рис. 2 условно дана геометрическая интерпретация такого ветвления.
Рис. 2. Геометрическая интерпретация ветвления
Видно, что при этом из области Di' удаляется часть между плоскостями вновь введенных ограничений. Так как переменная x[j] по условиям области допустимых решений исходной задачи – целочисленная, то из подобласти допустимых решений исходной задачи. Di (Di Di') при таком изъятии не исключается ни одного решения.
2.2 Формирование нижних и верхних оценок целевой функции
Прежде чем начать обсуждение данного вопроса, необходимо сказать, что общепринятым является применение метода ветвей и границ для задачи, в которой направление оптимизации приведено к виду минимизации. Для компактности дальнейших обозначений и выкладок запишем задачу дискретного программирования, для которой будем применять метод ветвей и границ, в следующей обобщенной форме:
(2)
где х – вектор оптимизационных переменных, среди которых часть действительных, а часть целочисленных; f(x) – в общем случае нелинейная целевая функция; D – область допустимых решений задачи дискретного программирования общего вида.
Нижние оценки целевой
дикции в зависимости от выбранного способа ветвления могут определяться
либо для подобластей Di
D либо для подобластей Di'
D' (Di' и D' получены из соответствующих
множеств Di и D путем снятия условий
целочисленности на дискретные переменные).
Нижней оценкой целевой функции f(x) на
множестве Di (или Di') будем
называть величину:
(3)
Вычисление нижних оценок в каждом конкретном случае может осуществляться с учетом особенностей решаемой задачи. При этом чтобы оценки наиболее эффективно, выполняли свою функцию, они должны быть как можно большими, т.е. быть как можно ближе к действительным значениям min f(x). Это необходимо в первую очередь для того, чтобы нижние оценки как можно точнее отражали действительное соотношение min f(x) на образовавшихся при ветвлении подмножествах и позволяли более точно определять направление дальнейшего поиска оптимального решения исходной задачи.
На рис. 3 показан такой идеальный случай, когда нижние оценки (соединены ломаной штрихпунктирной линией) правильно отражают соотношения между действительными минимальными значениями f(x) (соединены штриховой линией) для четырех подмножеств допустимых решений D1, D2, D3, D4.
Один из универсальных способов вычисления нижних оценок заключается в решении следующей задачи:
(4)
Определенная таким образом оi является нижней оценкой f(x) на Di (или Di'), так как Di Di'.
Если при решении задачи (4) установлено, что , то для общности будем полагать, что .
Необходимо отметить одно важное свойство нижних оценок, заключающееся в том, что их значения для образовавшихся при ветвлении подмножеств не могут быть меньше нижней оценки целевой функции на множестве, подвергавшемся ветвлению.
Совместно с нижней оценкой в методе ветвей и границ используются верхние оценки f(x). Как правило, вычисляют лишь одно значение верхней оценки , которую определяют как значение целевой функции для лучшего найденного допустимого решения исходной задачи. Такую верхнюю оценку иногда называют рекордом. Если же можно для решаемой задачи достаточно просто и точно получить верхние оценки f(x) для отдельных множеств, образующихся при ветвлении, то их необходимо использовать в методе для уменьшения вычислительной сложности процесса решения. При использовании единой верхней оценки ее первоначальное значение обычно полагают равным бесконечности ( ), если, конечно, из априорных соображений не известно ни одного допустимого решения исходной задачи. При нахождении первого допустимого решения :
(5)
Затем при определении
более лучшего допустимого
(6)
Таким образом, значение верхней оценки может лишь уменьшаться в процессе решения задачи.
2.3 Алгоритм метода ветвей и границ
Основные правила алгоритма могут быть сформулированы следующим образом:
1. Ветвлению в первую
очередь подвергается
2. Если для некоторого i-го подмножества выполняется условие , то ветвление его необходимо прекратить, так как потенциальные возможности нахождения хорошего решения в этом подмножестве (их характеризует ) оказываются хуже, чем значение целевой функции для реального, найденного к данному моменту времени, допустимого решения исходной задачи (оно характеризует ).
3. Ветвление подмножества прекращается, если найденное в задаче (4) оптимальное решение . Обосновывается это тем, что , и, следовательно, лучшего допустимого решения, чем в этом подмножестве не существует. В этом случае рассматривается возможность корректировки .
4. Если , где , то выполняются условия оптимальности для найденного к этому моменту лучшего допустимого решения. Обоснование такое же, как и пункта 2 настоящих правил.
5. После нахождения хотя бы одного допустимого решения исходной задачи может быть рассмотрена возможность остановки работы алгоритма с оценкой близости лучшего из полученных допустимых решений к оптимальному (по значению целевой функции):
(7)
2.4 Решение задачи методом ветвей и границ
Пусть
- целые .
Первоначально находим симплексным методом или методом искусственного базиса оптимальный план задачи без учета целочисленности переменных.
Если среди компонент этого плана нет дробных чисел, то тем самым найдено искомое решение данной задачи.