Обзор задач дискретного программирования

Автор работы: Пользователь скрыл имя, 22 Мая 2013 в 23:27, курсовая работа

Краткое описание

Дискретное программирование является интересным и перспективным разделом математического программирования. Именно поэтому объектом настоящего исследования являются задачи дискретного программирования. Встают закономерные вопросы, в чем особенность данных задач, в чем прикладное значение их и какие существуют методы решения в дискретном программировании. Чтобы ответить на поставленные вопросы, в данной работе решены следующие задачи: во-первых, предлагаются формулировка, особенности дискретных задач. Во-вторых, приводится их классификация. В- третьих, рассматриваются методы решения дискретных задач.

Содержание

Введение 2
Глава 1. Обзор и методы решений
задач дискретного программирования 3
1.1.Предмет, постановка и особенности задач
дискретного программирования. 3
1.2. Модели дискретного программирования. 6
1.2. 1. Задачи с неделимостями. 6
1.2.2. Экстремальные комбинаторные задачи. 9
1.2.3. Задачи с разрывными целевыми функциями. 13
1.3.Методы решения задач дискретного программирования. 15
Глава 2.Примеры решений
задач дискретного программирования 26
2.1.Пример решения задачи методом Гомори. 26
2.2.Пример решения задачи методом ветвей и границ. 30
Заключение. 33
Список литературы. 34

Прикрепленные файлы: 1 файл

курсовая методы опт.doc

— 356.50 Кб (Скачать документ)

1.) Для того, чтобы при вводе правильных  отсечений ограничить размеры

симплекс-таблицы, Гомори предложил после решения  очередной задачи

ЛП вычеркивать  из таблицы переменную, по которой  построено

правильное  ограничение.

2.) Известно, что с увеличением размерности задачи эффективность

методов отсечения  значительно снижается. Решение  может быть не

получено, в  частности, из-за недостаточной точности вычисления

коэффициентов.

 

1.3.2.Комбинаторные  методы.

 

Основная идея методов  этого  класса заключается в использовании конечности множества допустимых решений и замене полного их перебора сокращенным (направленным перебором). Если каким-либо образом удается показать, что подмножество G' С G не может содержать оптимальных решений, то в дальнейшем задача решается на множестве х G\G'. Таким образом, главную роль в сокращении перебора играют оценка и отбрасывание подмножеств, заведомо не содержащих оптимальных решений. Эта идея реализуется путем последовательного разбиения множества всех допустимых решений на подмножества. При этом среди подмножеств, последовательно порождаемых на каждом шаге процесса, могут обнаружиться как подмножества, не содержащие допустимых решений, так и подмножества, не содержащие оптимальных решений. Отбрасывание таких подмножеств позволяет заменить полный перебор частичным и тем самым делает реализуемым вычислительный процесс.

Таким образом, комбинаторные  методы основаны на двух элементах:

— последовательное разбиение на подмножества;

— оценивание получаемых подмножеств.

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

Среди комбинаторных  методов выделяют:

— метод последовательного анализа  вариантов;

— метод ветвей и границ;

— методы, основанные на последовательностных схемах;

— метод динамического программирования;

— аппроксимационно-комбинаторный  метод;

        —метод последовательных расчетов.

Остановимся подробнее на самом распространённом из них, на методе ветвей  и границ.

 

МЕТОД ВЕТВЕЙ И ГРАНИЦ

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

Метод ветвей и  границ состоит в следующем: множество допустимых решений (планов) некоторым способом разбивается на подмножества, каждое из которых этим же способом снова разбивается на подмножества. Процесс продолжается до тех пор, пока не получено оптимальное целочисленное решение исходной задачи.

 Алгоритм действия метода ветвей и границ

Первоначально находим, к примеру, симплекс-методом  оптимальный план задачи без учета  целочисленности переменных. Пусть  им является план X0. Если среди компонент этого плана нет дробных чисел, то тем самым найдено искомое решение данной задачи и Fmax = F(X0).

Если же среди  компонент плана X0 имеются дробные числа, то X0 не удовлетворяет условию целочисленности и необходимо осуществить упорядоченный переход к новым планам, пока не будет найдено решение задачи.

Предполагая, что найденный оптимальный план X0 не удовлетворяет условию целочисленности переменных, тем самым считаем, что среди его компонент есть дробные числа. Пусть, например, переменная   приняла xi в плане X0 дробное значение. Тогда в оптимальном целочисленном плане ее значение будет по крайней мере либо меньше или равно ближайшему меньшему целому числу Ci0 , либо больше или равно ближайшему большему целому числу Ci0 +1. Определяя эти числа, находим симплекс-методом решение двух задач линейного программирования:

(20) 

    (21)

 
Найдем решение задач линейного  программирования (20) и (21). Очевидно, здесь возможен один из следующих четырех случаев:

1. Одна из  задач неразрешима, а другая  имеет целочисленный оптимальный план. Тогда этот план и значение целевой функции на нем и дают решение исходной задачи.

2. Одна из  задач неразрешима, а другая  имеет оптимальный план, среди  компонент которого есть дробные  числа. Тогда рассматриваем вторую  задачу и в ее оптимальном плане выбираем одну из компонент, значение которой равно дробному числу, и строим две задачи, аналогичные задачам (20) и (21).

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

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

3.2. Если же  значение целевой функции больше  на плане, среди компонент которого  есть дробные числа, то следует  взять одно из таких чисел и для задачи, план которой рассматривается, необходимо построить две задачи, аналогичные (20) и (21).

4. Обе задачи  разрешимы, и среди оптимальных  планов обеих задач есть дробные  числа. Тогда вычисляем значение  целевой функции на данных  оптимальных планах и рассматриваем ту из задач, для которой значение целевой функции является наибольшим. В оптимальном плане этой задачи выбираем одну из компонент, значение которой является дробным числом, и строим две задачи, аналогичные (20) и (21).

Таким образом, описанный выше итерационный процесс может быть представлен в виде некоторого дерева, на котором исходная вершина отвечает оптимальному плану Х0 исходной задачи, а каждая соединенная с ней ветвью вершина отвечает оптимальным планам задач (20) и (21). Каждая из этих вершин имеет свои ветвления. При этом на каждом шаге выбирается та вершина, для которой значение функции является наибольшим. Если на некотором шаге будет получен план, имеющий целочисленные компоненты, и значение функции на нем окажется больше или равно, чем значение функции в других возможных для ветвления вершинах, то данный план является оптимальным планом исходной задачи целочисленного программирования и значение целевой функции на нем является максимальным.

Итак, процесс  нахождения решения задачи целочисленного программирования методом ветвей и границ включает следующие основные этапы:

1. Находят решение  задачи линейного программирования .

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

3. Находят решение  задач (20) и (21), которые получаются из задачи  в результате присоединения дополнительных ограничений.

4. В случае  необходимости составляют дополнительные  ограничения для переменной, значение  которой является дробным, формулируют задачи, аналогичные задачам (20) и (21), и находят их решение.

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

Пример решения  задачи данным методом разберем в  главе 2.

 

1.3.3.Приближенные  методы.

Отмечаются  два основных стимула к развитию приближенных

методов.

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

2) Потребности  практики часто обеспечиваются приближенными решениями, если адекватность модели реальному процессу не достаточна, или, когда исходная информация не точна.

Можно отметить два подхода к повышению вычислительной эффективности комбинаторных алгоритмов:

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

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

Возможные классификации приближенных методов

Классификация А.

1) Методы, базирующиеся  на точные.

2) Специфические  (эвристические) методы.

Классификация Б.

1) Детерминированные  методы (например, линейная аппроксимация,  локальная оптимизация).

2) Методы случайного  поиска (неуправляемый поиск, управляемый  поиск).

3) Методы решения  задач специальной структуры (транспортная задача с фиксированными доплатами).

4) Статистические  эффективные методы.

5) ɛ - оптимальные  методы.

 

 

Глава 2. Примеры решений задач дискретного программирования.

2.1.Пример  решения задачи методом Гомори.  

,

.

Решим задачу без учета целочисленности.

Определим минимальное  значение целевой функции F(X) = - 5x1 - 4x2 при следующих условиях.

3x1 + 2x2≤5

x2≤2

Для построения первого опорного плана систему неравенств приведем к системе уравнений путем введения дополнительных переменных (переход к канонической форме).

3x1 + 2x2 + 1x3 + 0x4 = 5

0x1 + 1x2 + 0x3 + 1x4 = 2

Решим систему  уравнений относительно базисных переменных:

x3, x4,

Полагая, что свободные переменные равны 0, получим первый опорный план:

X1 = (0,0,5,2)

Базис

B

x1

x2

x3

x4

x3

5

3

2

1

0

x4

2

0

1

0

1

F(X0)

0

5

4

0

0


 

Переходим к  основному алгоритму симплекс-метода.

Текущий опорный  план неоптимален, так как в индексной  строке находятся положительные коэффициенты.

В качестве ведущего выберем столбец, соответствующий  переменной x1, так как это наибольший коэффициент .

Вычислим значения bi / ai1

и из них выберем  наименьшее:

Следовательно, 1-ая строка является ведущей.

Разрешающий элемент  равен (3) и находится на пересечении ведущего столбца и ведущей строки.

Базис

B

x1

x2

x3

x4

min

x3

5

3

2

1

0

12/3

x4

2

0

1

0

1

-

F(X1)

0

5

4

0

0

0


 

 Получаем  новую симплекс-таблицу:

Базис

B

x1

x2

x3

x4

x1

12/3

1

2/3

1/3

0

x4

2

0

1

0

1

F(X1)

-81/3

0

2/3

-12/3

0


 

Текущий опорный  план неоптимален, так как в индексной  строке находятся положительные  коэффициенты.

В качестве ведущего выберем столбец, соответствующий  переменной x2, так как это наибольший коэффициент .

Вычислим значения bi / ai2

Информация о работе Обзор задач дискретного программирования