Исследование операций - Теория организации - Скачать бесплатно
1) x[pic]n;
2) x[pic]n+1, где х – нецелочисленное оптимальное решение задачи ЛП,
по которому мы осуществляем ветвление, n – ближайшее целое к х не
превышающее х.
Правила ветвления:
1) Выбирается переменная, у которой дробная часть наиболее близка к 0,5.
2) Выбирается переменная с наибольшим приоритетом по какому — либо
качественному или количественному значению.
3) Переменная выбирается произвольно.
Ограничения введенные при ветвлении добавляются к ограничениям задачи ЛП.
В каждой из вершин находим оптимальные решения полученных путем добавления
новых ограничений задач ЛП – 2 и ЛП – 3. Если не у одной из них мы не
получили целочисленных оптимальных решений, то мы выбираем ту вершину, в
которой получено наибольшее значение целевой функции и производим
дальнейшее ветвление. Так продолжается до получения целочисленного
оптимального решения одной из задач ЛП.
Вершина называется прозондированной, если:
1) Мы нашли в ней оптимальное целочисленное решение – решение задачи ЦЛП.
2) В данной вершине нет оптимальных решений задачи ЛП.
3) Значение Z в оптимальном решении задачи ЛП не больше текущей нижней
границы.
Прочие вершины называются висящими.
Решение задачи методом целочисленного линейного программирования.
Метод ветвей и границ.
Начальные условия берутся из решения задачи ЛП (решение см. выше).
1. Вершина 1 x1 = 6,17 x2 = 0,9 x3 = 4,9 Z1 = 6048,24
Начнем ветвление по x1 = 6,17, тогда получаем дополнительные ограничения а)
x1 [pic] 6 (1 ветвь) б) x2 [pic] 7 (2 ветвь).
Решаем сначала ветвь 1. К ограничениям задачи ЛП добавляем ограничение а.
Получаем седьмым ограничением ограничение x1 [pic] 6;
Решение:
2. Вершина 2 x1 = 6 x2 = 1,2 x3 = 4,8 Z2 = 6033,7212
Мы получили одно целочисленное решение x1 = 6, следовательно дальнейшее
ветвление мы будем проводить по x2 или x3.
Решаем ветвь 2. К ограничениям задачи ЛП добавляем ограничение б.
Седьмым ограничением становится ограничение x1 [pic] 7.
Решение:
Второй строкой является ограничение задачи ЛП по максимально возможному
объему руды с 2 предприятия:
120x1 [pic] 740 или x1[pic]6,16666, что противоречит введенному нами
условию 6 (б) x1 [pic] 7. Дальнейшее ветвление из вершины 3 невозможно.
Продолжим ветвление из вершины 2. Как было уже сказано выше, мы можем
продолжить ветвление по x2 или x3. Продолжим ветвление по x2. x2 = 1,2,
следовательно восьмое ограничение для 1 ветви будет x2 [pic] 1, а для
другой x2[pic]. Движемся сначала по ветви 1 в вершину 4.
Решение:
X1 = 6 x2 = 1 x3 = 5 Z4 = 5993,3501
Мы получили, что все три переменных имеют целочисленное значение,
но, чтобы данное решение являлось решением задачи ЦЛП необходимо и
достаточно показать, что при ветвлении по ветви 2 в вершине 5 мы получим
значение целевой функции Z5 < Z4. Найдем решение в вершине 5.
Решение:
Z5 = 5991,0396, следовательно Z5 < Z4, значит в вершине 4 мы получили
решение задачи ЦЛП.
Интерпретация решения с помощью блок – схемы:
x1=6,1
Z1=6048 x2=0,9
x3=4,9
x1[pic]6
x1[pic]7
x1=6
x2=1,2
Система
x3=4,8
несовместна
x2[pic]1 x2[pic]2
x1=6 x1=5,6
x2=1 x2=2
x3=5 x3=4
Z=5993 Z=5991
| Вершина | Ограничение | № |
| | |ограничения |
| 2 | | |
| |x1[pic]6 |7 |
| 3 | | |
| |x1[pic]7 |7 |
| 4 | | |
| |x1[pic] 6 |7 |
| |x2[pic]1 |8 |
| 5 | x1[pic]6 | |
| |x2[pic]2 |7 |
| | |8 |
Вывод:
В результате решения я получил, что целочисленное оптимальное решение
получается в вершине 4, так как все значения x1=6, x2=1,x3=5 в этой вершине
целочисленные и Z5(5991)< 1,87, то коэффициент при x2 в целевой функции Z2
будет равнятся -79,75.
Так как x3=4,88; 3,96 < 4,88 <5,66, следовательно x3 попадает в интервал
3,96 – 5,66, следовательно коэффициент при x3 в целевой функции Z2 будет
равен 40,28.
Следовательно Z2 = 676,8x1 – 79,75x2 + 40,28x3
Решение 2.
x1 = 6,17 x2 = 0,17 x3 = 5,66 Z2 = 4387,26
3. Так как x1=6,17 – максимально возможный, то коэффициент при x1 в
целевой функции Z3 будет равен 676, 8.
Так как x2=0,17; x2 < 1,87, то коэффициент при x2 в целевой функции Z3
будет равнятся -79,75.
Так как x3=5,66 – максимально возможный, то коэффициент при x3 в
целевой функции Z3 будет равен 294,68.
Следовательно Z3 = 676,8x1 – 79,75x2 + 294,68x3
Решение 3.
x1 = 6,166 x2 = 0,17 x3 = 5,66 Z3 = 5827,16
Вывод:
Так как на третьем шаге мы получили значения переменных равных значениям
переменных на втором шаге, то мы получили искомое решение задачи
нелинейного программирования. Третий шаг, за счет того, что значения
коэффициента при x3 были увеличены с 40,28 до 294,68, улучшил целевую
функцию Z3 на 5827,16 – 4387,26 = 1439,9 у.е.
Плановые задания предприятиям.
[pic], где P – плановое задание тыс. тонн, q – производительность состава,
x – количество составов, i – номер предприятия.
Для предприятия 1:
[pic]тыс. тонн;
Для предприятия 2:
[pic]тыс. тонн;
Для предприятия 3:
[pic]тыс. тонн.
Аппроксимация кривой зависимости затрат от количества составов. Примеры
графиков для предприятий 1 и 2.
Динамическое программирование. (ДП)
Динамическими называются задачи экономики, организации и управления, в
которых необходимо распределять ресурсы на каждом этапе какого – либо
промежутка (времени). Формулировка задачи ДП:
Имеется некая система S, находящаяся в первоначальном состоянии S. Данная
система имеет какие – либо параметры. При переходе системы из одной точки в
другую необходимо в каждый момент времени выбирать направление дальнейшего
движения из нескольких допустимых направлений при условии, что каждому
направлению соответствует своя эффективность (параметры системы изменяются
по разному), и необходимо таким образом спланировать маршрут из начальной
точки в конечную, чтобы критерий эффективности достигал экстремального
значения.
Иными словами из множества допустимых управлений U=(U1, U2, …, Un)
необходимо найти оптимальное, при котором система переходит из своего
начального состояния в конечное таким образом, что критерий оптимальности W
достигает своего максимума.
Динамическое программирование представляет собой метод оптимизации
многошаговых процессов по шагам. Локальный оптимум на каждом шаге должен
рассчитываться не как оптимальный на данном этапе, а как дающий
максимальное значение критерия оптимальности в конце движения. Несоблюдение
этого правила приводит к серьезным ошибкам, поэтому при решении задач ДП
двигаются обычно из конца пути в начало, рассчитывая затраты при движении в
каждом направлении, а затем из начала в конец, находя локальный оптимум из
рассчитанных затрат на каждом шаге. Таким образом получаем максимальное
значение критерия оптимальности.
В основе расчетов методом динамического программирования лежит принцип
Беллмана. Он звучит:
оптимальное управление обладает тем свойством, что какавы бы ни были
достигнутые состояния и решения до данного момента, последующее решение
должно составлять оптимальное поведение относительно состояния,
достигнутого на данный момент.
Решение задачи динамического программирования.
Распределение ресурсов предприятиям.
Данные возьмем из задачи нелинейного программирования: количество составов
и прибыль на 1 состав для каждого предприятия:
Предприятие 1.
|Количество |Прибыль на 1 |
|составов |состав |
| 6,17| 676,8|
| 4,31 – | 388,8|
|6,17 |
|