Автор работы: Пользователь скрыл имя, 01 Июля 2013 в 23:07, курсовая работа
Под задачей целочисленного программирования (ЦП) понимается задача, в которой все или некоторые переменные должны принимать целые значения. В том случае, когда ограничения и целевая функция задачи представляют собой линейные зависимости, задачу называют целочисленной задачей линейного программирования. В противном случае, когда хотя бы одна зависимость будет нелинейной, это будет целочисленной задачей нелинейного программирования. Особый интерес к задачам ЦП вызван тем, что во многих практических задачах необходимо находить целочисленное решение ввиду дискретности ряда значений искомых переменных.
Министерство образования и науки Калужской области
Государственное бюджетное образовательное учреждение
среднего профессионального образования Калужской области
«Сосенский радиотехнический техникум»
(ГБОУ СПО «СРТ»)
КУРСОВОЙ ПРОЕКТ
На тему: метод ветвей и границ решение задач целочисленного программирования
Разработал:
Группа:
Специальность: 230105 «Программное обеспечение вычислительной техники и автоматизированных систем»
Руководитель:
2013
Содержание
При рассмотрении целого ряда задач финансового менеджмента и бизнеса необходимо учитывать требование целочисленности используемых переменных. Такие задачи называются задачами целочисленного программирования.
Под задачей целочисленного программирования (ЦП) понимается задача, в которой все или некоторые переменные должны принимать целые значения. В том случае, когда ограничения и целевая функция задачи представляют собой линейные зависимости, задачу называют целочисленной задачей линейного программирования. В противном случае, когда хотя бы одна зависимость будет нелинейной, это будет целочисленной задачей нелинейного программирования. Особый интерес к задачам ЦП вызван тем, что во многих практических задачах необходимо находить целочисленное решение ввиду дискретности ряда значений искомых переменных.
Целочисленным
(иногда его называют также дискретным)
программированием называется раздел
математического
Рекомендации по формулировке и решению ЦП
Метод ветвей и границ
можно применять для решения
задач нелинейного
Задачи такого типа весьма актуальны, так как к их решению сводится анализ разнообразных ситуаций , возникающих в экономике, технике, военном деле и других областях. С появлением ЭВМ, ростом их производительности повысился интерес к задачам такого типа и к математике в целом.
Результатом выполнения курсовой работы будет программа для ЭВМ, реализующая метод ветвей и границ для решения задач.
Под задачей целочисленного программирования (ЦП) понимается задача, в которой все или некоторые переменные должны принимать целые значения. В том случае, когда ограничения и целевая функция задачи представляют собой линейные зависимости, задачу называют целочисленной задачей линейного программирования. В противном случае, когда хотя бы одна зависимость будет нелинейной, это будет целочисленной задачей нелинейного программирования. Особый интерес к задачам ЦП вызван тем, что во многих практических задачах необходимо находить целочисленное решение ввиду дискретности ряда значений искомых переменных.
В некоторых задачах линейного программирования результат вычислений должен выражаться целым числом. Например, количество изготовленных автомобилей, изданных книг, собранных холодильников и т.д. Целевая функция и условия ограничений в таких задачах также выражаются целыми числами. Попытки решить задачу целочисленного программирования симплексным методом (или другими методами) приводят к тому, что решение получается в виде дробных чисел. Попытка округлить полученный результат до ближайшего целого числа приводит к тому, что найденное решение либо выходит за область допустимых решений, либо находится внутри этой области, и, как следствие, является или недопустимым или неоптимальным.
На рисунке 1 найдено решение задачи линейного программирования в точке Х(5,6;4,8). При округлении до ближайшего целого числа получим решение
Х(6;5),которое будет
Учитывая то, что все целочисленные значения вектора решений лежат внутри области допустимых решений (ОДР) и, соответственно, имеют большие значения, нежели значения в вершинах ОДР, то и значение целевой функции будет несколько большим.
(0.1)
Математическая модель задач целочисленного программирования, наложенных ограничениях: при - целое, , .(0.2)
Задачу целочисленного программирования решают одним из методов
линейного программирования, например симплексным методом. Если найдено оптимальное решение , которое не является целочисленным (хотя бы одно из значений дробное), то дополнительно вводят одно или несколько условий ограничений и продолжают поиск оптимального целочисленного решения специальными методами. - пересчитанные значения в свободных членов . Пусть хотя бы одно и один , не входящий в правильный столбец, будут дробными, тогда целой частью называется наибольшее целое число, не превышающее числа
где символом ^ обозначена дробная часть числа, а символом ~ целая часть числа.
Если - дробное число, а все - целые числа, то задача не имеет целочисленного решения.
Одним из широко распространенных методов решения целочисленных задач является метод ветвей и границ. Данный метод относится к комбинаторным методам решения целочисленных задач и применим как к полностью, так и к частично целочисленным задачам.
Использование этого метода предполагает
нахождение опорного решения одним
из методов линейного
Математическая модель задачи метода «ветвей и границ» представлена выражениями:
целевая функция:
при ограничениях: при - целое, , .
Далее организуется полный перебор по всем нецелочисленным переменным, вошедшим в оптимальное решение. Для каждой переменной поочередно формулируется два дополнительных ограничения и, соответственно, две задачи.
В первой задаче дополнительное ограничение содержит округление до ближайшего меньшего целого значения:
(0.3)
Во второй задаче дополнительное ограничение содержит округление до ближайшего большего целого значения:
(0.4)
Где символом обозначена дробная часть числа, а символом ~ целая часть числа.
Суть метода ветвей и границ – в направленном частичном переборе допустимых решений. Будем рассматривать задачу линейного программирования.
Рекомендации по формулировке и решению ЦП
Количество целочисленных переменных уменьшать насколько возможно. Например, целочисленные переменные, значения которых должно быть не менее 20, можно рассматривать как непрерывные.
В отличие от общих задач ЛП, добавление новых ограничений особенно включающих целочисленные переменные, обычно уменьшают время решения задач ЦП.
Если нет острой необходимости в нахождении точного оптимального целочисленного решения, отличающегося от непрерывного решения, например, 3%. Тогда реализацию метода ветвей и границ для задачи максимизации можно заканчивать, если отношение разницы между верхней и нижней границ к верхней границы меньше 0,03.
Вначале она решается без ограничений на целочисленность. При этом находится верхняя граница F(x), так как целочисленное решение не может улучшить значение функции цели.
Далее в методе ветвей и границ область допустимых значений переменных (ОДЗП) разбивается на ряд непересекающихся областей (ветвление), в каждой из которых оценивается экстремальное значение функции. Если целое решение не найдено, ветвление продолжается.
Ветвление производится последовательным введением дополнительных ограничений. Пусть xk – целочисленная переменная, значение которой в оптимальном решении получилось дробным. Интервал [βk] ≤ xk ≤ [βk ]+1 не содержит целочисленных компонентов решения. Поэтому допустимое целое значение xk должно удовлетворять одному из неравенств xk≥[βk]+1 или xk≤[βk]. Это и есть дополнительные ограничения. Введение их в методе ветвей и границ на каждом шаге порождает две не связанные между собой подзадачи. Каждая подзадача решается как задача линейного программирования с исходной целевой функцией. После конечного числа шагов будет найдено целочисленное оптимальное решение.
Алгоритм метода ветвей и границ
1.Получить опорное решение.
2.Проверить, является ли
3.Из вектора решения выбрать переменную, имеющую наибольшее нецелочисленное значение.
4.Определить дополнительное
5.Выбрать очередную из двух задач. Проверить, просмотрен ли весь список задач? Если «да», то перейти к шагу 11. Если «нет», то перейти к шагу 6.
6.Найти оптимальное решение очередной задачи.
7.Проверить полученное
8.Отказаться от дальнейшего ветвления и перейти к шагу 5.
9.Проверить, является ли
10.Запомнить вектор решения и значение целевой функции и перейти к шагу 5.
11.Проверить, равно ли
12.Вывести вектор решения и значение целевой функции.[1]
Применение метода ветвей и границ рассмотрим на конкретном примере.
Экономико-математическую модель данной задачи мы не строим, так как она нам дана в условии данной задачи.
Найти целочисленное решение методом Ветвей и границ, если целевая функция и ограничения
Целевая функция:
При ограничениях:
Задача целочисленного программирования метода «Ветвей и границ», предполагает, что входными данными в данной задачи являются: количество уравнений, количество переменных, стремление целевой функции(max или min).
На выходе данной задачи мы должны иметь значения переменных X(x1;x2;x3;x4); F(x).
и ограничения
Решение: 1.Приведем задачу к каноническому виду
2.Найдем опорное решение с помощью симплексного метода.
1 столбец {9}- 9*2=18
2 столбец {4,6; 6}- 4,5*3=13,5
3 столбец {4,5; 12}- 4,5*4=18
Информация о работе Метод ветвей и границ решение задач целочисленного программирования