Определим для этапаi, i=1, 2, . . . ,N,следующие величины:
zi– количество заказанной продукции (размер заказа),
xi– потребность в продукции (спрос),
xi– исходный запас (на начало этапаi),
hi– затраты на хранение единицы запаса, переходящей из этапаiв этапi+1,
Ki– затраты на оформление заказа,
ci(zi)– функция предельных затрат, связанных с закупкой (производством) при заданном значенииzi.
Пусть, где.
Функцияci(zi)представляет интерес только тогда, когда затраты на покупку единицы продукции изменяются во времени или существуют разрывы цены.
Так как дефицит не допускается, то требуется найти оптимальное значенияzi, минимизирующие общие затраты на оформление заказов, закупку и хранение по всемNэтапам. Затраты на хранение предполагаются пропорциональными величине
, которая представляет собой объем запаса, переходящего из этапаiв этапi+1. В результате затраты на хранение на этапеiравныhixi+1.Это предположение вводится исключительно с целью упрощения, т.к. модель легко можно обобщить на случай произвольной функции затратHi(xi+1), заменивhixi+1наHi(xi+1).Аналогично для оценивания затрат на хранение можно воспользоваться величинамиxiили(xi+xi+1)/2.
Построение модели динамического программирования упрощается, если представить задачу схематически. Каждый этап соответствует одному шагу. Используя обратное рекуррентное уравнение, определим состояние системы на шагеiкак объем исходного запасаxi. Пустьfi(xi)– минимальные общие затраты на этапахi, i+1, … , N. Рекуррентное уравнение имеет вид
Прямое рекуррентное уравнение можно получить, определив состояние на шагеiкак объем запаса на конец этапаi. Эти состояния заданы величинамиxi+1. На любом шаге на величиныxi+1наложены следующие ограничения:
Таким образом, в предельном случае объем заказанной продукцииziна этапеiможет быть настолько велик, что запас xi+1удовлетворяет спрос на всех последующих этапов.
Пустьfi(xi+1)– минимальные общие затраты на этапах1, 2, … , Nпри заданной величине запасаxi+1на конец этапаi. Тогда рекуррентное уравнение записывается в виде
Прямая и обратная постановка задачи с вычислительной точки зрения эквивалентны. Однако прямой алгоритм наиболее эффективен при анализе важного частного случая рассмотренной выше модели.
3.4.1. Частный случай убывающих или постоянных предельных затрат
Рассмотренную модель динамического программирования можно использовать прилюбыхфункциях затрат. Важным частным случаем этой модели является такой, когда на этапеiкак затраты на приобретение (производства), так и затрат на хранениена единицупродукции являетсяпостояннымиилиубывающимифункциямиxiиxi+1соответственно. В таких условияхпредельныезатраты постоянны или убывают. Типичные примеры таких функций затрат приведены на рисунке 9. С математической точки зрения эти функции являются вогнутыми. Случай (а) соответствует постоянным предельным затратам. Случай (б) характерен для многих функций затрат на производство (или закупку), когда независимо от объёма производства на оформление заказа требуются затратыК. В этом случае предельные затраты постоянны, но если приzi=qпредоставляется скидка или происходит разрыв, то предельные затраты приzi>qуменьшается. Случай (в) отражает общий вид вогнутой функции.
Рисунок 9.
При указанных выше условиях можно доказать следующее:
1. При заданном исходном уровне запасаx1=0 на любом этапеN-этапной модели оптимальным является положительное значение
илиположительный исходный запас
; их произведение должно быть равно 0, т.е.
=0.
2. Размер заказа
на любом этапе i оптимален только тогда, когда он равен 0 илив точностисоответствует спросу одного или более этапов. Эти последующие этапы таковы, что если спрос на этапеi+m ( , то спрос на этапахi,i+1, …, i+m-1также должен удовлетворяться за счет
.
Из первого свойства теоремы следует, что на любом этапеiнерационально пополнять запас и размещать заказ в одно и тоже время. Так, предположим, чтоминимальныепредельные затраты на приобретение и хранениеоднойдополнительной единицы продукции из предыдущего этапаi’на рассматриваемом этапеi”(i’ Еслиb”<=b’, то размер заказа на этапеi”можно увеличить, полностью удовлетворив спрос на этапеi”,не повышая полных затрат относительно условия, когда спрос удовлетворяется за счет запаса, имеющегося на этапеi’. Этот результат объясняется тем, что предельные затраты не возрастают. Следовательно, выполнение условияxi”zi”=0 обеспечивает решение, котороепо меньшей мерене хуже любого другого. С другой стороны, еслиb”>b’, то выгоднее увеличить размер заказа на этапеi’, удовлетворив спрос на этапахi’иi”,вследствие чего размер заказа на этапеi”равен нулю. Этот вывод также следует из условия не возрастания предельных затрат. Отсюда вытекает, что условиеxizi=0 не приводит к какому-либо ухудшению решения при условии, что предельные затраты постоянны или убывают, а исходный запас равен нулю. Второе свойство, в соответствии с которым требуется размещение заказа, покрывающего спрос одного или нескольких этапов, непосредственно вытекает из первого свойства.
Описанные выше свойства (в случае их применимости) позволяют упростить вычислительную схему, в основе которой по-прежнему лежат изложенные ранее общие алгоритмы динамического программирования. Это утверждение поясняется на примере использования алгоритма прямой прогонки.
Так как в соответствии со вторым свойством объем запаса к концу этапа i, т.е.xi+1,должен в точности соответствовать потребностям одного или более последующих этапов, то число оценок состояния системы на любом этапе определяются числом последующихэтапов(а не количествомединицпродукции, требуемой на последующих этапах, как это имеет место в обычной модели). Например, пустьN=5 при спросе 10, 15, 20, 50 и 70 соответственно. Тогдак концутретьего этапа (шага) число оценок состоянияx4в обычной модели будет 50+70+1=121, тогда как в новой модели оно сокращается до трёх (оставшееся число этапов плюс один), т.к.x4может принимать только значения 0, 50 или 120. Аналогичное рассуждение, основанное на первом свойстве, также показывает, что число альтернативziв новой модели намного меньше. В результате объем вычислений для этой модели весьма существенно сокращается.
4. Заключение
В любой задаче управления запасами решается вопросы выбораразмеров и сроковразмещения заказов на запасаемую продукцию. К сожалению, общее решение этой задачи нельзя получить на основе одной модели. Поэтому разработаны самые разнообразные модели, описывающие различные частные случаи. Одним из решающих факторов при разработке модели управления запасами является характер спроса. В наиболее простых моделях предполагается, что спрос является статическим детерминированным.
В большинстве моделей управление запасами осуществляется оптимизацией функции затрат, включающей затраты на оформление заказов, закупку и хранение продукции, а также потери от дефицита. Потери от дефицита обычно наиболее сложно оценить т.к. они могут быть обусловлены такими нематериальными факторами, как, например, ухудшение репутации. С другой стороны, хотя оценку затрат на оформление заказа получить нетрудно, включение в модель этой статьи расходов существенно усложняет математическое описание задачи.
Известные модели управления запасами редко точно описывают реальную систему. Поэтому решение, получаемое на основе моделей этого класса, следует рассматривать скорее как принципиальные выводы, а не конкретные рекомендации. В ряде сложных случаев приходится прибегать к методам имитационного моделирования системы, чтобы получить достаточно надежное решение.
Потери от дефицита
Затраты на хранение заказа
Затраты на оформление заказа
Затраты на приобретение
Суммарные затраты системы управления запасами
Уровень запаса
Затраты на оформление заказа
Затраты на хранение
Потери, связанные со штрафами
Суммарные годовые затраты
Оптимальный уровень
Минимальные затраты
Закупочная цена
Суммарные затраты
Возрастание степени математической сложности
Наиболее
сложные
модели
Простейшие
модели
Нестационарный
Стационарный
Динамический
Статический
Вероятностный
Детерминированный
Спрос
Уровень
запаса
Моменты поставки заказов
Средний уровень
запаса = у/2
t0=y/b
Время
Уровень
запаса
Низкая частота
Размещения заказов
Высокая частота
Размещения заказов
Время
L
L
Точки возобновления заказов
Время
Уровень
запаса
B+bL
B+y*
Резервный запас
L
L
Точки возобновления заказов
Время
Уровень
запаса
B
Затраты
TCU2
TCU1
III
II
I
у
ym
Затраты
Затраты
TCU1
TCU2
TCU1
TCU2
Минимум
Минимум
у
q1
ym
q
у
q1
ym
q
Случай 1
Затраты
Случай 2
TCU2
TCU1
Минимум
у
q1
ym
q
Случай 3
Затраты
Затраты
Затраты
K
q
0
0
0
zi
zi
zi
(б)
(в)
(а)