Пример: Транспортная логистика
Я ищу:
На главную  |  Добавить в избранное  

Математика /

Целочисленное программирование

←предыдущая  следующая→
1 2 3 



Скачать реферат


Российский Государственный Торгово-Экономический Университет

Ивановский филиал

Курсовая работа

По теме: «Целочисленное программирование»

Выполнила: студентка 2 курса УФФ

Прозорова В.С.

Проверила: Малеж Л.Н.

Груздева Н.Н.

Иваново 2003г.

План:

Введение.

1.Целочисленное программирование. Общие понятия.

2.Метод Гомори.

3.Метод ветвей и границ.

4.Циклический алгоритм целочисленного программирования.

5.Полностью целочисленный алгоритм.

6.Задача о рюкзаке.

7.Задача о назначении.

8.Задача коммивояжера.

Заключение.

Список используемой литературы.

Ведение.

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

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

Целочисленное программирование возникло в 50-60-е годы нашего века из нужд практики - главным образом в работах американских математиков Дж.Данцига и Р.Гомори. Первоначально целочисленное программирование развивалось независимо от геометрии чисел на основе теории и методов математической оптимизации ,прежде всего линейного программирования. Однако, в последние время исследования в этом направлении все чаще проводятся средствами математики целых чисел.

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

Целочисленное программирование. Основные понятия.

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

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

Рекомендации по формулировке и решению ЦП

1. Количество целочисленных переменных уменьшать насколько возможно. Например, целочисленные переменные, значения которых должно быть не менее 20, можно рассматривать как непрерывные.

2. В отличие от общих задач ЛП, добавление новых ограничений особенно включающих целочисленные переменные, обычно уменьшают время решения задач ЦП.

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

Метод ветвей и границ можно применять для решения задач нелинейного программирования.

Метод Гомори

Задача целочисленного программирования может быть сформулирована следующим образом: найти максимум или минимум функции

(7.1)

при условиях

(7.2)

Xj > 0, j = 1, 2, ..., n, а также при дополнительном условии

(7.4)

хj — целые числа.

В некоторых случаях условие (7.4) распространяется только на часть переменных, такие задачи называются частично целочисленными.

Для решения задач целочисленного программирования разработаны специальные методы. К ним относятся метод отсечений (метод Гомори) и метод ветвей и границ.

В основе метода Гомори заложена идея, состоящая в том, что сначала решается задача линейного программирования (7.1)—(7.3) без учета условий целочисленности. Если полученное таким образом решение целочисленное, то оно принимается за оптимальный план задачи (7.I)—(7.4). Если решение нецелочисленное, то система ограничений дополняется условием, которое отсекает от множества планов задачи нецелочисленный оптимальный план, но при этом сохраняет целочисленные вершины множества планов. Затем решается задача линейного программирования с дополнительным условием. Если полученное таким образом решение целочисленное, то оно оптимально и для задачи (7.1)—(7.4). Если же и после этого не для всех переменных выполняется условие целочисленности, то вводится новое условие-отсечение. Условия-отсечения выбираются таким образом, чтобы за конечное число шагов прийти к целочисленному решению, если оно у данной задачи существует. Один из алгоритмов построения таких условий-отсечений был предложен Гомори.

Рассмотрим указанный алгоритм. Пусть получено решение задачи (7.1)-(7.3) без учета целочисленности и пусть в строке r симплексной таблицы с оптимальным решением содержится нецелочисленная компонента опорного плана хr0. В этом случае к условиям (7.1)—(7.3) добавляют условие, порожденное строкой г.

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

(7.5)

Далее введем понятие целой и дробной частей чисел аr0 и аrj, для чего запишем эти числа в виде:

Здесь [аr0] и [arj] - целые части, a qt, qr] - дробные части чисел аrj и arj.

Например, 37/3 =12 +1/3, так как [37/3] = 12, a -s/, = -3 + 1/3„ так как [-8/3] = -3.

Из уравнения (7.5) найдем хr

xr=аr0-

Теперь числа аю и аrj заменим суммами целых и дробных частей:

xr =

Предположим, что все xj - целые числа. Тогда разность

является целым числом.

Чтобы оказалось целым числом и хr, необходима целочисленность разности

Но О

£(/)/) = 42 >£(D12) = 40. Следовательно, план X°1= (3, 1) является решением задачи (7.11)-(7.13),

т.е. надо взять три единицы первого груза и одну единицу второго груза.

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

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

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

3. Находим решение двух задач с ограничениями на компоненту.

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

ЦИКЛИЧЕСКИЙ АЛГОРИТМ ЦЕЛОЧИСЛЕННОГО ПРОГРАММИРОВАНИЯ

Рассмотрим следующую задачу линейного программирования:

Максимизировать

X0=a00-a01x1-a02x2-……..-a0nxn,

при условии

xn+1=an+1,0-an+1,1x1-an+1,2x2-…….-an+1,nxn,

.

.

xn+m=an+m,0- an+m,1x1-an+m,2x2-…….-an+m,nxn,

xj≥0 (j=1,…….,n+1,…….,n+m).

Заметим, что xn+1, . ., хn+m — слабые переменные, a x1 ... ., хn — исходные переменные задачи (1). Если наряду с ограничениями (1) потребовать, чтобы все хj , (j'=1, . . ., т) были целыми, то задача будет называться задачей целочисленного программирования. Существует большое количество задач, особенно комбинаторных, которые

←предыдущая  следующая→
1 2 3 



Copyright © 2005—2007 «Mark5»