Имя материала: Оптимальное управление в экономике: теория и приложения

Автор: Лагоша Борис Александрович

8.2. календарное планирование поставки продукции. дискретный вариант. численное решение

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

Итак, рассмотрим процесс производства и поставки в дискретные моменты времени f=0, 1, Г, где Т— плановый период. Спрос на продукцию в эти моменты определяется по предположению заданной функцией r(f).

Будем считать, что при несовпадении поставки x(t) и потребности r(i) имеют место потери народного хозяйства. При дефиците, когда ^(t) = x(t) — r(t) < 0, потери обусловливаются неудовлетворенностью спроса и недополучением прибыли производителем. В случае превышения поставки над спросом, когда £(0 > 0, потери вызваны необходимостью поиска новых потребителей или других условий реализации продукции.

Если предположить, что потери от превышения объема поставки продукции над спросом > 0) меньше, чем потери от дефицита < 0) при одинаковом абсолютном значении в обоих случаях разности |£|, то график функции потерь/j(^) будет иметь вид, показанный на рис. 8.1.

о

 

Щ)

Функциональную зависимость (см. рис. 8.1) аппроксимируем следующим образом:

Подпись:

 

(8.22)

Для производителей продукции наиболее предпочтительным является уровень постоянной интенсивности производства, т.е. когда x(t) = const, или, другими словами, u(t) = 0, где u(i) = x(t + + 1) — x(t). И в случае увеличения выпуска продукции (u(f) > 0), и в случае его уменьшения (u(t) < 0) производители несут потери, вызванные необходимостью перестройки производства. Функция потерь производителя f2(u), по аналогии с рис. 8.1, качественно предполагается такой, как показана на рис. 8,2, или в аналитической форме:

Подпись:

 

(8.23)

о

—►

и

 

Рис. 8.2. График потерь в зависимости от расширения (и > 0)

В отличие от формулы (8.22) здесь заранее нельзя сказать, какая из ветвей (8.23) круче. Соответственно нельзя сказать, какой из коэффициентов, а2 или bv больший. Все зависит от конкретных условий производства или спроса на продукцию, ясно только, что а2 > 0, Ь2 > 0.

Задача планирования поставки продукции формулируется в данном случае следующим образом: найти функцию объема поставки продукции х(0, 7=1,2, Г, и динамику необходимого изменения этого объема, выражаемую функцией u(t), t= 1,2, Г— 1, чтобы свести к минимуму суммарные потери потребителей от возможного несовпадения спроса и поставки, а также производителей — от возможных перестроек производства в течение планового периода Т.

Это условие записывается в виде функционала

 

Т-

J= 2 [f(x(t)-r(0) + f2W))] + f(x(T)-r(T))-> min. <8-24)

/=0

Терминальный член в функционале (8.24), казалось бы, по аналогии с выражением под знаком суммы должен включать слагаемое /2(w(7)), чтобы отражать совокупные затраты в момент Г, так же как под знаком суммы это делается в предшествующие периоды вплоть до Т— 1. Однако и(Т) не определено, поскольку согласно приведенному выше определению и(Т) = = х(Т+ 1) - х(Т). Величинах(Т + I) выходит за пределы планового периода. Кроме того, как будет показано далее, х(Т + 1) в расчетах участвовать не будет, посему и нет необходимости включать f2(u(T)) в терминальный член.

Исходное количество продукции задает начальное условие

х(0) = х0. (8.25)

Уравнение процесса запишем в канонической форме:

x(t + 1) = x(t) + u(t). (8.26)

В соответствии с общей постановкой задачи ТОУ для многошаговых процессов (см. главу 7) соотношение (8.26) определяет в качестве состояния системы x(f), в качестве управления — u{t). Кроме того, очевидным является условие x(i) > 0 — поставка продукции не может быть отрицательной. Однако для того чтобы иметь возможность решать задачу (8.24) — (8.26) методом Лагранжа, необходимо освободиться от ограничения на состояние x(t) >0, t= 1, 2, Т. Это можно сделать с использованием так называемого «метода штрафных функций» путем прибавления к функционалу (8.24) «штрафа» за нарушение условий x(t) > О, т.е.  дополнительно   включить  в  функционал   (8.24) сумму

т

М> О — произвольное сколько угодно большое

t=

число. Действительно, при x{f) >0 выражение в квадратных скобках под знаком суммы обращается в нуль, и «штраф» не накладывается. Если же x(t) < 0, то выражение в квадратных скобках оказывается равным 2x(t) > 0, и в функционале (8.24) появляется произвольно большой положительный прирост, что противоречит его стремлению к минимизации.

Имея в виду такую возможность ликвидации отдельных ограничений с включением в функционал «штрафа» за их нарушение, мы тем не менее оставим функционал (8.24) без изменений. Вместо явного учета ограничений x(t) > О, t = 1, 2, Г, воспользуемся численным методом прямой прогонки при решении краевой задачи (см. разд. 1.6). При этом на каждой итерации, если окажется, что x(t) < О при первом же t, будем прекращать вычисления и переходить к новой итерации. Таким образом, мы ограничиваемся более простой постановкой задачи в отличие от использования метода «штрафных функций», а неучтенные ограничения на состояние x(t) >0 будем учитывать непосредственно в процессе вычислений.

Задача (8.24) — (8.26) относится к классу многошаговых управляемых процессов. Необходимые условия оптимальности имеют следующий вид (см. формулу (7.13)):

ЭЯ(Лх*(Г),у(Г + 1),ц)[          (8 27)

Я (Л х, у, и) = Mff(t, х, и) - /°(Л х, и);

ЭЯ(Лх*,у(Г + 1),и*(0). (8.28)

W)       ^          x*(t)>  v '

x*(t + l) = f(t,x*(t),u*(t)); (8-29) x*(0) = x0MT) = -d-^fx4T). (8-3°) Применительно к рассматриваемой задаче (8.24) — (8.26)

Я(Л х, у, и) = у(х + и) - /і (х - r(0) - h («О-  (8-31)

Из условия (8.27) находим

 

v('+d-|jU)=0>

откуда с учетом формулы (8.23) имеем

 

W + V> = 2°fm-  "*(0"ft «.32, [2/>2w*(0, w*(/)<0.

Из условия (8.28) получаем или с учетом функции (8.22) определяем

¥(„=„((+l)-2f?i**<"-'m "•ю*™ (в.»

vw  v     '    [А|[дс*(0-г(0], x*(0^(0.

Условие (8.29) задается непосредственно уравнением процесса (8.26). Так как а2 > О, Ь2 > О, то знак y(t + 1) в формуле (8.32) будет совпадать со знаком u*(t). Это позволяет, исходя из формулы (8.32), выразить

 

і|/(/ + 1)/2я2,  ш(/ + 1)>0; п„,ч

ы*(/)=  ,     Y (8.34)

[vi/(r + l)/2/?2,   y(f + l)<0.

Полученное по формуле (8.34) значение u*(t) можно подставить в уравнение процесса (8.26), после чего будем иметь

 

у|/(ґ + 1)/2я2,   і|/(/ + 1)>0;   /о „гч

x*(/) = x*(f + l)-rv        , (8.35)

[v|/(m)/2/>2,   vj/(/ + 1)<0.

Если заданы значения х*(Г +1), |/(f + 1), то формулы (8.33) -(8.35) позволяют определить х*(0, w*(0, |/(0- Действительно, в этом случае по формуле (8.35) вычисляется х*(0, а по формуле (8.34) — u*(f). Так как x*(t) уже известно, а функция потребности в продукции r{t) задана по условию задачи, то по формуле (8.33) находим y(f). Продолжая итеративный процесс, перейдем от х*(0, w*(0, |/(0 к x*(t - 1), w*(r - 1), y(t - 1) и т.д. Расчеты будут продолжаться до тех пор, пока не будет определено значение х*(0). По условию должно быть х*(0) = х0. Каким параметром имеется возможность управлять, чтобы этого добиться? Для ответа обратимся к условию трансверсальности — второй формуле (8.30). Согласно выражению (8.22) и с учетом того, что £(7) = = х(Т) - г(7), получаем

 

dx

 

х*(Т)

= -2

ах[х*(Т)-г(Т)], х*(Т)>г(Т) Ьх[х*{Т)-г{Т), х*{Т)<г{Т).

(8.36)

Из формулы (8.36) видно, что если бы в терминальном члене в функционале (8.24) присутствовало слагаемое/2(и*(7)), производная по х от него все равно была бы равна нулю, а больше в алгоритме терминальный член нигде не представлен.

Если, приняв t + 1 = Г, зададим необходимым нам образом х*(7) (как именно, будет показано ниже) и по формуле (8.36) вычислим |/(7), то сможем указанным выше способом вычислить значения функций x*(t) = х*(Т - 1), u*(t) = и*(Т — 1), i|/(0 = у(Т — 1). Продолжая итеративный процесс, дойдем до значения лс*(0), которое будет зависеть от принятого значения х*(7). Последнее должно быть таким, чтобы выполнялось начальное условие (8.25).

Если бы данный вычислительный процесс можно было провести в аналитической форме, мы бы получили явно выраженную функциональную зависимость х*(0, х*(7)) = х0. Рассматривая эту зависимость как уравнение относительно искомой величины х*(Т) и решая его, нашли бы необходимое значение х*(Т). Однако уже условие трансверсальности (8.36) требует числового задания х*(7), так как в зависимости от соотношения х*(7) > г(Т) или jc*(7) < г(Т) применяется первый или второй вариант формулы (8.36). Подобная ситуация возникает и при использовании формул (8.34) и (8.35). Таким образом, с помощью метода прямой прогонки будем подбирать необходимое числовое значение величины х*( 7), чтобы добиться выполнения начального условия (8.25) с заданной е-точностью:

 

|л:*(0)-х0|<є. (8-37)

Если на некотором шаге t (при принятом значении jc*(7)) окажется x*(t) < 0, то с учетом сказанного выше итерация прекращается, изменяется значение х*(7) и осуществляется переход к новой итерации.

Изложенный метод решения проиллюстрируем на конкретном примере.

Пример 8.2. Дано:

Т= 5, х0 = 1, я, = 1, Ь{ = 2, а2 = Ь2 = 3.

Первая итерация. Так как по смыслу задачи искомая функция х*(0 не должна сильно отличаться от заданной функции

Значения функции r{t) приведены в табл. 8.1. Точность расчетов оценивается величиной є = 0,1.

г{ґ), примем это в качестве ориентира и зададим x*(f) = г(5) = = 8. В этом случае по формуле (8.36) получаем |/(5) = 0. По формулам (8.33) - (8.35) определяем х*(4) = 8, м*(4) = 0, |/(4) = = —8, при этом полагаем t + 1 = 5; t = 4.

Приняв t + 1 = 4, t = 3, вычислим х*(3), w*(3), |/(3) и т.д. Выполнив все необходимые действия, получим х*(0) = 30,58.

Вторая итерация. Полученное на первой итерации значение х*(0) = 30,58 чрезмерно большое (необходимое по условию задачи х*(0) = 1). Чтобы его уменьшить, нужно изменить ранее принятое значение х*(5). Сначала уменьшим его, а после проведения расчетов увидим, справедливым ли оказался выбор. Примем х*(5) = 6,125. Выполняя указанным выше способом все необходимые вычисления, получим х*(5) = 3,923. Видим, что уменьшение значения х*(5) оказалось оправданным.

Третья итерация. Продолжим уменьшать х*(5) и примем х*(5) = = 6,02. В результате расчетов находим х*(0) = 2,253. Вновь убеждаемся, что динамика уменьшения значения х*(5) правильная, но пока еще решение с необходимой точностью не получено.

 

XV)

r(t) 8

7

6

5

4

3

Четвертая итерация. Принимая х*(5) = 5,95 и осуществляя расчеты, получаем х*(0) = 1,053, что удовлетворяет заданной точности |1 - 1,053| = 0,053 < 0,1.

Полученные результаты (табл. 8.2) будем считать приближенно оптимальным решением. Функции выпуска продукции x*(t) и спроса на нее r(i) представлены на графике (рис. 8.3).

Примечание. На рис. 8.3 дискретные зависимости условно показаны как непрерывные функции.

 

Страница: | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |