Результаты оптимизации:
z1*(a1)=3,875a1; x1* = 0;
z2*(a2)=3,75a2; x2* = 0;
z3*(a3)=3,5a3; x3* = 0;
z4*(a4)=3a4; x4* = a4.
Определим количественное распределение средств по годам.
Т.к. а1=а=1000, х1*=0, получаем а2=0,5а1-0,4х1=500.
х2*= 0, а3= 0,5а2 - 0,4х2 = 250
х3*= 0, а4 = 0,5а3-0,4х3=125
х4*= 0, а4 = 125
Представим распределение средств в виде табл. 4
Таблица 4
-
1 год
2 год
3 год
4 год
Предприятие 1
0
0
0
125
Предприятие 2
1000
500
250
0
При таком распределении средств за 4 года будет получен доход, равный
zmax* = z1*(a1) = 3,875*1000 = 3875
Задача 2.
Пусть имеется склад вместимости В с начальным запасом V некоторого продукта, цены на который подвержены сезонным изменениям.
В начале i-го сезона часть продукта Yi можно продать по цене Pi и в конце сезона закупить Xi этого продукта по цене Ci . Образовавшийся на складе запас хранится до следующего сезона. Найти политику продажи-покупки, максимизирующую суммарный доход за N сезонов.
Если пренебречь затратами на хранение, то задачу можно свести к максимизации линейной функции
при условиях
0<=Y1<=V, X1>=0, V1=V-Y1+X1<=B;
0<=Y2<=V1, X2>=0, V2=V1-Y2+X2<=B;
0<=Y3<=V2, X3>=0, V3=V2-Y3+X3<=B.
Таким образом, получена задача линейного программирования с 2N неизвестными и 4N ограничениями, которую можно решить при фиксированном значении V.
Рассмотрим задачу с других позиций, для чего введем обозначения:
- k - номер сезона, отстоящего на k шагов до конца N-шагового процесса (k=1 соответствует последнему сезону, k=2 - предпоследнему, k=N - первому);
- Y, X - объемы продажи-покупки в соответствующем сезоне (в первом из k оставшихся сезонов);
- Pk , Ck - цены продажи-покупки в соответствующем сезоне;
- Fk(V) - максимальный доход в k-шаговом процессе при начальном запасе V;
-Yk(V), Xk(V) - оптимальные объемы продажи-покупки на первом шаге k-шагового процесса с начальным запасом V.
В случае одношагового процесса (с таковым мы столкнемся, когда доберемся до последнего шага, и к тому же будем знать уровень запаса V перед этим шагом)
F1(V) = max{ P1*Y - C1*X } ,
где область максимизации определяется условиями 0<=Y<=V ; X>=0 .
Очевидно, что максимум достигается при Y = V и X=0 (естественно при завершении деятельности по купле-продаже продать весь запас и ничего не покупать), т.е. F1(V) = P1V ; Y1(V) =V ; X1(V) = 0 .
Обратимся к случаю k-шагового процесса при k > 1, повторив традиционные рассуждения с позиций известного принципа оптимальности Р.Беллмана. Очевидно, что доход в k - шаговом процессе складывается из дохода на первом шаге {Pk*Y - Ck*X} и дохода на оставшихся k-1 шагах. Если мы желаем действовать оптимально, то обязаны руководствоваться принципом оптимальности: независимо от начального состояния (запаса V) и начального поведения (объемов Y, X продажи-покупки на первом шаге) дальнейшая политика должна быть оптимальной, исходя из возникающего состояния (запаса V-Y+X). Тогда доход на оставшихся k-1 шагах будет равен
Fk-1(V-Y+X}
и
Fk(V) = max{ Pk*Y - Ck*X + Fk-1(V-Y+X) } , k<=2,…,N ,
где область максимизации определяется условиями:
0<=Y<=V ; X>=0 ; V -Y + X<=B .
Очевидно, что множество планов - выборов для начального поведения (область максимизации) при любом k – это многоугольник с координатами вершин, линейно з ависящими от V.
Учитывая линейность по V функции F1(V) = P1V, при поиске F2(V) сталкиваемся с максимизацией функции, линейной по X и Y , над указанным множеством планов, т.е. с задачей линейного программирования c экстремумами в вершинах множества.
Аналогичное явление наблюдается при любом k>1. Cоответственно, рекуррентные соотношения упрощается к виду:
Так исходная задача линейного программирования с 2N неизвестными сведена к N элементарным линейным программам с двумя неизвестными. Более того, здесь мы имеем решение при произвольных V и B.
Решение задачи
Пусть N = 5 и цены определены согласно табл. 5.
Таблица 5
-
Сезон
1
2
3
4
5
Продажная цена (Р)
7
6
4
4
8
Закупочная цена (С)
6
7
5
3
5
Решение задачи дает:
отсюда искомый максимум дохода в 5-шаговом процессе при начальном запасе V равен F5(V)=7V+5B и оптимальная политика по шагам определяется следующей последовательностью действий .
1-й этап.
Объем продажи = Y5(V)=V - весь запас.
Объем закупок = X5(V) = 0 или B - ничего или полный склад.
2-й этап.
Объем продажи = Y4(0 или B)=0 или B - весь запас, если он есть.
Объем закупок = X4(V)=0 - ничего не покупать .
3-й этап..
Объем продажи = Y3(0)=0 - можно все продать, но нечего.
Объем закупок = X3(0)=0 - ничего не покупать.
4-й этап..
Объем продажи = Y2(0)=0 - продать запас, но его нет.
Объем закупок = X2(0)=B - закупить полный склад.
5-й этап..
Объем продажи = Y1(B) =B - продать весь запас.
Объем закупок = X1(V)=0 - ничего не покупать.
Оптимальные решения сведены в табл. 6.
Таблица 6
-
Сезон
1
2
3
4
5
Объем продажи
Y5(V)=V
продать весь запас
Y4(0 или B)=0 ничего или B
весь запас, если он есть
Y3(0)=0
можно все продать, но нечего
Y2(0)=0
продать запас, но его нет
Y1(B) =B
продать весь запас
Объем закупок
X5(V) = 0 или B
ничего или полный склад
X4(V)=0
ничего не покупать
X3(0)=0
ничего не покупать
X2(0)=B
закупить полный склад
X1(V)=0
ничего не покупать
Таким образом, для построения оптимальной политики использован подход, типичный для решения всех подобных задач.