Итерация 1. Полагаемk=4. На данном этапе функция состояния Λ4(ξ) может быть найдена непосредственно, если учесть, что x4*=0 и u(0)=0:
Таблица значений данной функции и условные оптимальные управления имеют вид
Итерация 2. Полагаемk=3. Предварительно заполним таблицу значений функции Ω3(x3, ξ)для достаточно большого множества аргументов согласно формуле:
Выбирая минимальные по х3 значения Ω3(x3, ξ)составим таблицу Λ3(ξ) и соответствующие значения условных оптимальных управлений 3(ξ):
Итерация 3. Полагаемk=2. Так же, как на предыдущей итерации, заполним таблицу значений функции Ω2(x2, ξ)согласно формуле:
Выбирая минимальные по х2 значения Ω2(x2 , ξ), составим таблицу Λ1(ξ) и соответствующие значения условных оптимальных управлений 2(ξ):
Итерация 4. Полагаемk=1. Аналогично предыдущему, заполним таблицу значений функцииΩ1(x1, ξ)согласно формуле:
Выбирая минимальные по х1, значенияΩ1(x1, ξ), составим таблицу Λ1(ξ) и соответствующие значения условных оптимальных управлений 1(ξ):
Итерация 5. На последней итерации, в связи с наличием начального условия ξ*0 = 2, достаточно вычислить
и найти 0(2) как точку минимума Ω0(x0, 2). Простые вычисления показывают, что минимум
достигается при x0(2) = 1.
Следовательно, x*0 = 0(2)=1, после чего обратным ходом последовательно вычисляются оптимальные управления и оптимальные состояния (оптимальная траектория):
Итак, результаты расчета свидетельствуют, что при заданной системе расценок в третьем месяце выгоднее не брать 5-го работника, а компенсировать его отсутствие дополнительными выплатами за сверхурочную работу имеющимся сотрудникам.
5.2.2. Динамические задачи управления запасами. Одной из наиболее известных сфер приложения методов динамического программирования является такая область математической экономики, как теория управления запасами. Ее предметом является разработка и исследование математических моделей систем, занимающих промежуточное положение между источниками (производителями) тех или иных ресурсов и их потребителями. При математической формализации процессов управления запасами очень часто приходится использовать скачкообразные, недифференцируемые и кусочно-непрерывные функции. Как правило, это обусловливается необходимостью учета эффектов концентрации, фиксированных затрат и платы за заказ. В связи с этим получаемые задачи с трудом поддаются аналитическому решению классическими методами, однако могут быть успешно решены с помощью аппарата динамического программирования. Рассмотрим достаточно типичную задачу, возникающую в процессе планирования деятельности системы снабжения, — так называемую динамическую задачу управления запасами.
Пусть имеется некоторая система снабжения (склад, оптовая база и т. п.), планирующая свою работу на п периодов. Ее деятельность сводится к обеспечению спроса конечных потребителей на некоторый продукт, для чего она осуществляет заказы производителю данного продукта. Спрос клиентов (конечных потребителей) в данной модели рассматривается как некоторая интегрированная величина, принимающая заданные значения для каждого из периодов, и он должен всегда удовлетворяться (т. е. не допускаются задолженности и отказы). Также предполагается, что заказ, посылаемый производителю, удовлетворяется им полностью, и временем между заказом и его выполнением можно пренебречь (т. е. рассматривается система с мгновенным выполнением заказа). Введем обозначения:
yk — остаток запаса после (k-1)-го периода;
dk — заранее известный суммарный спрос в k-м периоде;
хk — заказ (поставка от производителя) в k-м периоде;
сk (хk) —затраты на выполнение заказа объема xk в k-м периоде;
sk (ξk) — затраты на хранение запаса объема ξk вk-м периоде.
После получения поставки и удовлетворения спроса объем товара, подлежащего хранению в периодk, составит ξk = yk + хk - dk . Учитывая смысл параметра yk , можно записать соотношение:
Расходы на получение и хранение товара в период k описываются функцией
Планом задачи можно считать вектор х = (х1, х2, ..., хn), компонентами которого являются последовательные заказы в течение рассматриваемого промежутка времени. Соотношение между запасами (5.24) в сочетании с некоторым начальным условием связывает состояния системы с выбранным планом и позволяет выразить суммарные расходы за все п периодов функционирования управляемой системы снабжения в форме аддитивной целевой функции:
Естественной в рамках сформулированной модели представляется задача нахождения последовательности оптимальных управлений (заказов) x*k и связанных с ними оптимальных состояний (запасов) ξ*k , которые обращают в минимум (5.25). В качестве начального условия используем требование о сохранении после завершения управления заданного количества товараyn+1, а именно
При решении поставленной задачи методом динамического программирования в качестве функции состояния управляемой системы Λk(ξ) логично взять минимальный объем затрат, возникающих за первыеk периодов при условии, что вk-й период имеется запас ξ . Тогда можно записать основное рекуррентное соотношение
поскольку
Система рекуррентных соотношений (5.27)-(5.28) позволяет найти последовательность функций состояния Λ1(ξ), Λ2(ξ), …, Λn(ξ) и условных оптимальных управлений 1(ξ), 2(ξ),…, n(ξ). На n-м шаге с помощью начального условия (5.26) можно определить х*n = n (yn+1). Остальные значения оптимальных управлений x*k определяются по формуле:
Особый интерес представляет частный случай задачи (5.24)-(5.25), при котором предполагается, что функции затрат на пополнение запаса сk(хk) являются вогнутыми по хk , а функции затрат на хранениеsk(ξk) являются линейными относительно объема хранимого запаса, т. е.sk(ξk) = skξk . Параллельно заметим, что обе предпосылки являются достаточно реалистичными.
Обозначим функцию затрат в течениеk-ro периода через