Книги по разным темам Pages:     | 1 |   ...   | 3 | 4 | 5 | 6 |

Положим шаг ti равным 1. Введем понятие горизонта планирования как количества шагов, оставшихся до завершения управления. Обозначим Vk(x) = JN -k*(x), т.е. максимальный выигрыш, который можно получить за k шагов, если начать из состояния x. В этом случае рекуррентное соотношение для Vk(x) принимает вид:

max Vk(x)= {F(x, u) + Vk-1(f(x, u)), (4.12) uU с краевым условием: V0(x) = Ф0(x).

Примеры 1. Задача распределения ресурса. Имеется некоторый ресурс в объеме а > 0, который необходимо распределить между N агентами, так, чтобы максимизировать их суммарную полезность, если функция полезности i-го агента Fi(ui) = ln ui, где ui - объем ресурса, получаемый i-м агентом. (Считаем, что агенты как-то перенумерованы.) Решение. В формальной постановке задача имеет вид:

N J(u) = max; (4.13) ln ui i=N a; a > 0.

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

Пусть номером шага в задаче является номер агента i, для которого принимается решение о распределении ресурса. Тогда величина ui будет являться управлением на i-м шаге. Введем параметр состояния системы xi как объем ресурса, имеющийся к i-му шагу (i = 1, N). Тогда, из условия задачи получаем xi+1 = xi - ui; x1 = a. (4.14) Так как может быть распределено ресурса не более, чем имеется в наличии, то имеет место ограничение на управление 0 ui xi. (4.15) Таким образом, (4.13) - (4.15) представляет собой задачу оптимального управления в дискретном времени. Решим ее с использованием принципа Беллмана. Обозначим через Vk(x) значение функции выигрыша, когда горизонт планирования равен k, т.е. ресурс х распределяется между k агентами (не важно, что последними, так как все агенты имеют одинаковые функции полезности).

Рассмотрим последний шаг в нашей задаче, который имеет место после того, как ресурс полностью распределен между всеми агентами. Согласно краевому условию функция Беллмана V0 на этом шаге равна V0(x) = Ф0(x) 0.

Рассмотрим теперь ситуацию, когда ресурс должен быть распределен одному агенту. В этом случае горизонт планирования k = 1 и рекуррентное соотношение (4.12) принимает вид max max V1(x) = { ln u + V0(x - u)} = { ln u } = ln x, 0ux 0ux откуда uN*( x) = x.

Аналогично, при горизонте планирования k = 2 имеем:

max max V2(x) = { ln u + V1(x - u)} = { ln u + ln(x - u)}.

0ux 0ux Максимум выражения в фигурных скобках по u[0, x] достигается при x x u*(x) =, при этом V2(x) = 2 ln. Значит, оптимальное управление в этой 2 x ситуации uN - 1*( x) =.

Покажем далее, что для горизонта k = 0,Е, N оптимальное управление на шаге (N + 1 - k) и функция Беллмана горизонта k имеют вид:

x x uN + 1 - k*( x) =, Vk(x) = k ln. (4.16) k k Предположим, что это верно на некотором шаге (N + 1 - k). Определим оптимальное управление и функцию Беллмана горизонта k:

x - u Vk+1(x) = max { ln u + Vk(x - u)} = max { ln u + k ln }.

0ux 0ux k Обозначим x - u А(u) = ln u + k ln.

k Условия первого порядка максимума функции А(uN - k) имеют вид:

k dA = - = 0, du u x - u откуда x x uN - k*( x) =, Vk+1(x) = (k +1) ln.

k +1 k +Таким образом, определен общий вид оптимального управления для произвольного шага в задаче. Теперь проведем синтез оптимального управления для задачи с N агентами и начальным объемом ресурса, равным а:

x1 a a a(N -1) u1*( x1) = = ; x2 = x1 - u1* = a - = ;

N N N N x a a(N -1) a a(N - 2) u2*( x2) = = ; x3 = x2 - u2* = - = ;

N -1 N N N N Е x a a(N +1- k ) a a(N - k ) k uk*( xk) = = ; xk+1 = xk - uk* = - = ;

N +1- k N N N N Е Таким образом, в данной задаче оптимальным является равномерное распределение ресурса между агентами:

a a a u* = (,, Е, ).

N N N 2. Модель Рамсея в дискретном времени. Найти оптимальное потребление ct, максимизирующее функцию полезности агента за Т периодов времени с учетом дисконтирования:

T -t U (ct ) max ;

0ct st t =st+1 = (st - ct), s0 - задано, > 1; 0 < 1.

если U(ct) = ct1 Ц, 0 < 1.

Определить предельную оптимальную траекторию при T (если она есть).

Решение. Для данной задачи рекуррентное соотношение (4.12) примет вид:

Vl(s) = max {c1 - + Vl - 1((s - c))}.

0cs Вычислим V1(s), V2(s), V3(s) и определим общий вид Vl(s):

V0 = Ф0(sT) 0, max max V1(s) = {c1 - + V0((s - c))} = {c1 - } = s1 Ц, cT - 1(s) = s, 0cs 0cs max max V2(s) = {c1 - + V1((s - c))} = {c1 - + ((s - c)) 1 - }.

0cs 0cs Обозначим А2(с) = c1 - + ((s - c)) 1 Ц, и определим с, доставляющее максимум А2(с):

dA2 s = (1 - )с - - (1 - )1 - (s - c)1 - = 0 c* =, где d = (1 - )1/.

dc 1+ d Таким образом:

s V2(s) = (1 + d) s1 Ц, cT - 2(s) =.

1+ d Далее, V3(s) = max {c1 - + V2((s - c))} = max {c1 - + (1 + d)((s - c)) 1 - }.

0cs 0cs Обозначим А3(с) = c1 - + (1 + d)((s - c)) 1 Ц. Условие максимума А3(с) имеет вид dA3 s = (1 - )с - - (1 - )(1 + d) d (s - c) - = 0 c* =.

dc 1+ d + d Тогда s V3(s) = (1 + d + d2) s1 Ц, cT - 3(s) =.

1+ d + d Проверим, что для произвольного шага n выполнено:

n s k Vn(s) = s1 - ( ), cT - n(s) =. (4.17) d n-k =0 k d k =Допустим, что (4.17) выполнено для некоторого n. Определим вид Vn+1(s) и cTЦnЦ1(s).

n k max max Vn+1(s) = {c1 - + Vn((s - c))} = {c1 - + ((s - c))1 - ( )}.

d 0cs 0cs k =Выписывая аналогично предыдущим рассуждениям условия экстремума первого порядка для функции Аn+1(с), получим s c* =.

n k d k =Тогда n+s k Vn+1(s) = s1 - ( ), cT - n(s) =, d n k =0 k d k =что и требовалось доказать.

Таким образом, оптимальное управление в данной задаче будет иметь вид s ct*(s) =.

T -t -k d k =Тогда оптимальная траектория системы st* (объем сбережений при оптимальном потреблении) определяется рекуррентно из соотношения T -t -k d st * k =st+1* = ( st* - ct*( st*)) = ( st* - ) = d st*, s0* = s0.

T -t -1 T -t -k k d d k =0 k =Определим теперь предельную оптимальную траекторию при T.

Видно, что функция Vn(s) имеет конечный предел при n только если d < 1:

n s1k lim lim V(s) = Vn(s) = s1 - ( ) =.

d n n (1- d ) k =При этом lim c(s) = cn*(s) = (1 - d)s.

n Управление c(s) по определению полагается решением задачи с бесконечным горизонтом планирования t c1- max ;

t 0ct st t =st+1 = (st - ct), s0 - задано.

При этом функция V(s) является решением операторного уравнения Беллмана для данной задачи V = BV, где оператор В определен на классе W непрерывных, вогнутых, монотонных функций Ф: R1 R1, таких, что Ф(0) = 0 и действует по формуле max BФ(s) = {c1 - + Ф((s - c))}.

0cs Действительно, проверим, что s1- ((s - c))1max V(s) = = {c1 - + }.

(1- d ) 0cs (1- d ) Из условий максимума функции в фигурных скобках получаем:

(s 1 - - c)c - - = c - - d (s - c)- = 0 c* = s(1 - d) = c(s).

(1- d ) (1- d ) Но тогда 1 s1BV(s) = s1 - (1 - d)1 - + d s1 - d1 - =.

(1- d ) (1- d ) Таким образом, решение задачи с бесконечным горизонтом планирования c(s) = (1 - d)s.

Оно не зависит от момента времени t, а определяется только текущим состоянием системы s. Такое решение называется стационарным. Для определения соответствующей ему траектории st найдем переходное отображение Y():

st+1 = Y(st) = (st - c(st)) = (st - st(1 - d)) = dst =()1/ st.

Решением этого уравнения является функция t st = s0, где = ()1/.

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

3. Определить решение уравнения Беллмана для задачи с линейной полезностью:

t ;

ct max 0ct xt t =xt+1 = f(xt - ct), x0 - задано, 0 < 1.

lim если f()W такова, что f'(z) =, где < 1 (т.е. f() ограничена сверху z линейной функцией b + z, см. рис. 4.2).

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

Решение. Для конечных горизонтов имеем рекуррентное соотношение max Vk(x) = {c + Vk - 1(f(x - c))}.

0cx Обозначим z = x - c. Тогда max max Vk(x) = {x - z + Vk - 1(f(z))} = x + { - z + Vk - 1(f(z))}.

0zx 0zx 1. Покажем, что k = 1, 2, Е Vk(x) x + K для некоторой константы K > 0:

V0 = Ф0(xT) 0, max max V1(x) = x + { - z + V0(f(z))} = x + { - z } = x, 0zx 0cs max max V2(x) = x + { - z + V1(f(z))} = x + { - z + f(z)} 0zx 0zx max x + b + { - z(1 - )} = x + b.

0zx Рассуждая по индукции, получаем:

max Vk(x) = x + { - z + Vk - 1(f(z))} 0zx b x + b( + 2 + Е + k - 1} x +, k 2.

1- Так как x 0 последовательность Vk(x) - не убывает при k и, кроме того ограничена, то существует конечный предел lim V(x) = Vk(x) x + K.

k Из непрерывности оператора Беллмана В для данной задачи в классе функций W имеем max BФ(x) = x + { - z + Ф(f(z))} 0zx следует, что BV = V.

2. Обозначим А(z) = - z + V(f(z)). Покажем, что функция А(z) достигает максимума на множестве {z 0}. Из свойств V() получаем:

А(0) = 0, A(z) = - z + V(f(z)) - z + (f(z) + K) - z + (b + z + K) =(b + K) - z(1 - ), которая убывает при z.

Тогда в силу вогнутости А(), она имеет вид, изображенный на рис. 4.3.

3. Исходя из вида функции A(z), можно заключить, что x + a, при x z*, т.к. z(x ) = z * V(x) =, (4.18) V ( f (x )), при x < z * т.к. z(x ) = x max где z(x) = arg A(z).

0zx В частности, при x < z* V(x) = V(f(x)) < V(f(x)), откуда, в силу монотонности функции V() следует, что f x < f(x). Но тогда по непрерывности b + z имеем также z* f(z*) (рис. 4.4).

f(z) 4. Найдем величины а и z*.

В силу монотонности f() при z z* выполнено f(z) f(z*) z*. Тогда в силу пункта 3 получаем: z Рис. 4.max а = { - z + V(f(z))} = zmax = { - z + (f(z) + а)}.

zz* A(z) a Видно, что выражение в скобках совпадает с А(z) при z z*. Эта функция вогнута и достигает максимума на {z 0} в точке z*. Предположим также, 0 z* z что А(z) дифференцируема в точке z* (что предполагает дифференцируемость Рис. 4.V f(z) V(x) f(z*) a z* x z* x x z* z Рис. 4.функций V() и f()). Тогда точка максимума может быть найдена из условия экстремума первого порядка A'(z*) = 0, откуда получаем max{-z + f (z)} zf'(z*) =, а = max { - z + (f(z) + а)} =.

z 1- 5. Построим функцию V() для x < z*.

а). Рассмотрим отрезок 1 = [x1, z*], где x1 < z* и f(x1) = z*. Тогда xf(x) z*, поэтому в силу (4.18) V(x) = V(f(x)) = (f(x) + a).

б). Рассмотрим отрезок 2 = [x2, x1], где x2 < x1 и f(x2) = x1. x2 f(x) 1, тогда в силу (4.18) и предыдущего пункта V(x) = V(f(x)) = (f(f(x)) + a).

Продолжая эти рассуждения далее, на отрезке n = [xn, xnЦ1], где xn < xnЦ1 и f(xn) = xnЦ1. имеем:

n V(x) = (f(Еf (f(x))Е) + a).

n раз На стыках функция устанавливается, исходя из непрерывности. Например, в точке z* выполнены условия:

f (z*) - z * f (z*) - z * V(z* +) = z* + a = z* + = ( f(z*) + ) = V(z* Ц).

1- 1- Таким образом, решение уравнения Беллмана V(x) полностью восстановлено для x 0.

Е Е ~ 0 x0 x1 xkЦ2 xkЦ1 z* xk x x = = xk+kЦk x0 2 Рис. 4.5.

6. Определим переходное отображение Y(x) = f(z(x)) (где z(x) = arg max A(z), 0zx см. п. 3).

~ При x z* z(x) = z*, откуда Y(x) = f(z*) = x. При x < z* z(x) = x, тогда Y(x) = f(x) > x. Процесс изменения фазовой координаты x при таком переходном отображении для некоторого начального условия x0 показан на рис. 4.5.

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

При этом результат оптимизации существенно зависит от упорядочения шагов, поэтому понятие горизонта планирования использовать нельзя.

Следовательно, рекуррентное соотношение Беллмана в данной задаче будет записываться в общем виде (4.11).

4. Задача о ранце. Имеется контейнер емкостью V и грузоподъемностью M и N типов изделий, для каждого из которых известны стоимость ci, вес mi и объем vi. Требуется разместить в контейнере набор изделий максимальной суммарной стоимости.

Решение. Обозначим через xi - количество предметов i-го типа, размещенных в контейнере. Тогда задача будет иметь вид:

N L(x) = max, c x i i i=N N x M, V, mi i v x i i i=1 i=xi N, i = 1,Е, N.

Сведем ее к дискретной задаче оптимального управления. Пусть "шагом" операции является номер класса изделий, которые складываются в контейнер. Определим две переменных состояния: i - оставшаяся грузоподъемность после распределения изделий i-го класса и i - свободный объем после распределения изделий i-го класса. Тогда с каждым шагом состояние системы будет изменяться по следующему закону:

i+1 = i - mi+1 xi+1, 0 = M, i+1 = i - vi+1 xi+1, 0 = V.

Очевидно, управлением в данной задаче является количество изделий xi, помещаемых в ранец на каждом шаге. Функция Беллмана Jl(, ) в данной задаче будет представлять собой максимальную стоимость набора, состоящего из изделий классов i l, помещенных в контейнер:

max Jl(, ) = {cl xl + Jl+1( - ml xl, - vl xl)}, ml xl, vl xl.

xl Так как управление xl является дискретным, то функцию Беллмана удобно представлять в табличном виде, с дискретизацией, соответствующей минимальным изменениям объема и грузоподъемности контейнера при помещении в него изделий.

В качестве примера рассмотрим случай M = 7, V = 7, N = 3, со следующими параметрами изделий:

Класс, i Стоимость, ci Масса, mi Объем, vi 1 4 3 2 5 2 3 1 1 В этом случае исходная задача целочисленного программирования запишется как L(x) = 4x1 + 5x2 + x3 max, 3x1 + 2x2 + x3 7, x1 + 3x2 + 3x3 7, xi N, i = 1,Е, N.

Множество допустимых состояний системы на каждом шаге представляет собой пары (, ), где, {0, 1, Е, 7}.

Функция Беллмана для шага 3 имеет вид:

max J3(, ) = { x3}, x3, 3 x3, x3 N.

xЕе значения для допустимых состояний приведены в таблице.

0 1 2 3 4 5 6 \ 0 0 0 0 0 0 0 0 1 0 0 0 1 1 1 2 2 0 0 0 1 1 1 2 3 0 0 0 1 1 1 2 4 0 0 0 1 1 1 2 5 0 0 0 1 1 1 2 6 0 0 0 1 1 1 2 7 0 0 0 1 1 1 2 На шаге 2 функция Беллмана имеет вид:

max J2(, ) = {5 x2 + J3( - 2 x2, - 3 x2)}, 2x2, 3 x2, x2 N.

xТаблица значений J2(, ) строится с использованием уже полученной таблицы для J3(, ):

0 1 2 3 4 5 6 \ 0 0 0 0 0 0 0 0 1 0 0 0 1 1 1 2 2 0 0 0 5 5 5 5 3 0 0 0 5 5 5 6 4 0 0 0 5 5 5 10 5 0 0 0 5 5 5 10 6 0 0 0 5 5 5 10 7 0 0 0 5 5 5 10 На шаге 1 функция Беллмана имеет вид:

max J1(, ) = {4 x1 + J2( - 3 x1, - x1)}, 3x1, x1, x1 N.

xТаблица значений J1(, ) выглядит следующим образом:

Pages:     | 1 |   ...   | 3 | 4 | 5 | 6 |    Книги по разным темам