Динамическая модель управления запасами

Назначение. Онлайн калькулятор предназначен для решения задачи управления запасами методами динамического программирования.
Инструкция. Выберите период планирования, нажмите Далее.
Период планирования (в месяцах или годах)

Рассмотрим предприятие, которое изготовляет партиями некоторые изделия. Оно состоит из производственных цехов и склада для хранения готовой продукции. Предположим, что предприятие получило заказы на продукцию на n месяцев (этапов) вперед. Эти заказы необходимо полностью и своевременно выполнять (дефицит не допускается). Для разных этапов спрос не одинаков, кроме того, на экономические показатели производства влияют размеры изготовляемых партий продукции. Поэтому предприятию иногда бывает выгодно производить в течение месяца продукцию в объеме, превышающем спрос в пределах этого этапа, и хранить запасы «лишней» продукции, используя их для удовлетворения последующего спроса. Продолжительность изготовления партии изделий будем считать пренебрежимо малой (однако это требование может быть изменено в соответствии с особенностями технологического процесса). Цель предприятия – выработать такую программу производства, которая обеспечила бы минимальные затраты на изготовление и хранения продукции.
Введем обозначения:
xt – число изделий, изготовленных в t-м месяце (этапе);
yt – уровень запасов на конец t-го месяца;
dt – спрос на изделие в t-м месяце;
ft(xt, yt) – затраты на производство и хранение изделий в t-м месяце.
Соотношение материального базиса примет вид
yt-1+xt-dt=yt, t=1,..,n (1)
т.е уровень запасов на конец t-го этапа равен сумме уровня запасов на начало t-го и объема производства на t-м этапе за вычетом спроса на t-м этапе.
Данное балансовое соотношение можно записать и в другом виде:
yt-1= yt -xt+dt, t=1,..,n (2)
Наша задача состоит в том, чтобы составить такой план производства
X=(x1, …,xn), или, что тоже самое, найти такой план хранения запасов Y=(y1,…,yn), который обеспечил бы минимальные суммарные затраты предприятия
(3)
за весь плановый период.
Введем ограничения на переменные xt, yt. Будем считать объемы производства и уровни хранения на каждом этапе неотрицательными и целочисленными величинами. Кроме того, предположим, что уровни запасов к началу первого этапа y0 и к концу последнего yn заранее известны.
Решим сформулированную задачу методом динамического программирования. В качестве параметра состояния ζ примем уровень запасов на конец k-го этапа
ζ=yk (4)
Функцию составления Fk(ζ) определим как минимальные затраты за первые k месяцев, т.е.
. (5)
Здесь абсолютный минимум берется по всем значениям x1,…,xk, удовлетворяющим балансовым уравнениям:
yt-1+xt-dt=yt, t=1,..,k (6)
yk-1+xk-dk= ζ , t=k (7)
При k=1 соотношение (7) примет вид
ζ =y0+x1-d1 (8)
или
x1= ζ –y0+d1. (9)
Тогда с учетом (4) и (9) функция состояния
, (10)
причем если не видно никаких ограничений на объем складских помещений и производственную мощность предприятия, то (ζ=y1).
y1≤d2+d3+..+dn+yn
x1≤d1+d2+..+dn+yn-y0, (11)
Это связано с тем обстоятельством, что если иметь на конец 1-го этапа запас изделий в качестве d2+..+dn+yn, то, ничего не изготовляя в течение всего планового периода, а только удовлетворяя спрос, можно выйти на уровень запасов yn в конце n-го месяца. В то же время если уровень запасов на начало 1-го этапа равен y0, то, изготовив в 1-м месяце изделий в количестве d1+d2+..+dn+yn-y0, и не производя ничего на последних этапах, получим тот же запас yn в конце планового периода. Если же на 1-м этапе предприятие может вместить готовойпродукции не более М1 изделий, а мощности предприятия не позволяют произвести более N1 изделий, то (ζ=y1)
,
. (12)
Получим рекуррентное соотношение динамического программирования в модели управления запасами при любом k = 2, …,n.
Запишем функцию состояния (5) в виде
. (13)
Здесь, как уже было сказано выше, все переменные связаны балансовыми уравнениями
yt=yt-1+xt-dt, t=1,..,k (14)
В связи с тем что величина запаса yk-1 к концу (k – 1)-го планового этапа с учетом (7) равна ζ–xk+dk, имеем следующее рекуррентное соотношение динамической модели управления запасами:
. (15)
Если внешних ограничений на уровни хранения и объемы производства не существует, то по аналогии с (11) получаем внутренние ограничения модели
,
. (16)
Если складские емкости и производственные мощности предприятия ограничены количеством изделий Mk и Nk соответственно, то аналогично соотношениям (12) имеем
,
. (17)
На самом деле ограничения (16) и (17) имеют более сложную структуру. Однако для решения практических задач этого вполне достаточно. Напомним лишь о том, что переменные xk и yk целочисленны и не отрицательны.
Рассмотрим теперь функцию затрат ft(xt,yt). Введем следующие обозначения:
gt – затраты на производство и доставку заказа на t-м этапе;
ct(xt) – затраты на производство xt единиц продукции на t-м этапе;
ht(yt) – затраты на хранение yt единиц продукции в течение t-го планового этапа.
Для определенности будем считать, что производственные затраты линейны, т.е. ct(xt) = ctxt, и что затраты на хранение пропорциональны объему хранимой продукции в течении месяца. Далее, уровень (объем) хранения в течение этого месяца определяется уровнем хранения на конец этапа. Иными словами, поскольку время изготовления партий изделий пренебрежимо мало, а производить и отправлять заказчикам продукцию предприятию выгодно вначале каждого месяца, то уровень хранимого имущества в течение t-го этапа определяется соотношением баланса yt=yt-1+xt-dt. В итоге получаем ht(yt)=htyt.
Функция затрат с учетом выведенных обозначений примет вид
(18)
Применим теперь метод динамического программирования к решению задачи управления запасами.

Пример №1. Определение оптимальной программы производства.
Рассмотрим плановый период работы предприятия, состоящий из трех месяцев: января, февраля, марта. Исходные данные сведены в таблице 1.
Таблица 1


Этап

k

1

2

3

Месяц


Январь

Февраль

Март

Спрос

dk

2

5

2

Затраты на оформление заказа

gk

10

5

10

Затраты на производство одного изделия

ck

3

5

3

Стоимость хранения одного изделия в течение месяца

hk

1

2

1

Функция затрат определена формулой (18). Кроме того, будем считать, что предприятие не может производить более четырех изделий, а хранить – более трех, т.е. Mk = 3, Nk = 4, а уровень запасов y0 = y3 = 0.
Необходимо составить оптимальную программу выпуска продукции X=(x1,x2,x3), которая минимизирует суммарные издержки предприятия.
Рассмотрим январский этап (k=1). Поскольку плановый период состоит из одного месяца, у нас практически нет возможности влиять на объем производства изделий. Поэтому все допустимые программы выпуска продукции будут оптимальны, поскольку они единственны.
Функция состояния в соответствии с (10) примет вид
F1(ζ)=f1(x1= ζ-y0+d1, y1= ζ)=f1(x1= ζ+2; y1= ζ)
Прежде чем произвести расчеты F1(ζ) по формуле (18), укажем ограничения на изменения переменных x1 и y1. Поскольку уровни запасов на начало и конец планового периода равны нулю, то в январе мы можем произвести такое количество изделий, чтобы удовлетворять не только январский, но и февральский и мартовский спрос, т.е. произвести d1+d2+d3=7 изделий, однако N1=4, поэтому x1≤min{N1,d1+d2+d3}=4. Возникает естественный вопрос: каков должен быть уровень запасов на конец января (или, что одно и то же, на начало февраля), чтобы, не изготавливая ничего ни в феврале, ни в марте, опять выйти на нулевой уровень запасов в конце марта? Ответ очевиден: объем запасов продукции должен быть равен d2+d3=5. Но поскольку возможности склада ограничены (Mk=3), в итоге получаем:
0≤y1≤ min{M1,d2+d3}=3
Результаты вычислений сведем в табл. 2.
k=1, d1=2, g1=10, c1=3, h1=1
Таблица 2

y1

x1=y1+2

F1(ζ)=f1(x1= ζ+2, y1= ζ)=g1+c1x1+h1y1

0
1
2
3

2
3
4

10 + 3 · 2 + 1 · 0 = 16
10 + 3 · 3 + 1 · 1 = 20
10 + 3 · 4 + 1 · 2 = 24

Рассмотрим k = 2, когда плановый период содержит январь и февраль. У нас появляются дополнительные возможности для изменения объема выпуска изделий на каждом из этапов, с тем чтобы выйти на ненулевой уровень запасов y3=0.
Рекуррентное соотношение (15) примем вид
,
где ξ – оптимальное значение уровня запасов y2 на конец второго этапа, которому соответствует наименьшие суммарные затраты на производство и хранение продукции.
Ограничения на объем производства и уровень хранения очевидны:
0≤x2≤min{N2,d2+d3}=min{4;7}=4
0≤y2≤min{M2,d3}=min{3;2}=2
Отобразим в таблице 3 все необходимые вычисления для февральского этапа (k=2, d2=5, g2=5, c2=5, h2=2).
Таблица 3

x2

y2

0

1

2

3

4

x2(ζ=y2)

F2(ζ)

0

5

4

3

2

20 + 0 + 24 = 44

1

25 + 0 + 20 = 45

3

44

1

6

5

4

3

2

25 + 2 +24 =51

4

51

2

7

6

5

4

3


Поясним содержание этой таблицы. Объем производства и уровень хранения определяются значениями x2 и y2 соответственно. В верхнем правом углу каждой клетки указаны уровни запасов на начало второго этапа, которые с помощью балансового уравнения вычисляются по формуле y1=y2-x2+d2. Сумма внутри каждой клетки содержит три слагаемых. Рассмотрим эти слагаемые для клетки с координатами (x2=3, y2=0). Первое слагаемое – затраты на оформление заказа и производство продукции g2+c2x2=5+5*3=20; второе – затраты на хранение h2y2=2*0=0. Сумма двух первых слагаемых равна f2(x2=3, y2=0). Прежде чем вычислить третье слагаемое, которое в рекуррентном соотношении обозначено как F1(ζ-x2+d2), вспомним, что величина y1= ζ –x2+d2 вычислена, находится в верхнем правом углу клетки и равна 0–3+5=2. Поэтому третье слагаемое F1(y1=2)=24 возьмем из январской таблицы. Аналогично рассчитываются слагаемые в остальных клетках, а в «запрещенных» клетках, для которых не нашлось последнего слагаемого в январской (k = 1) таблице, сделан прочерк. Наименьшие суммарные затраты F2(ζ) для каждого y2 запишем в последнем столбце (они подсчитаны в выделенных рамкой клетках), а значения оптимальных объемов производства изделий в феврале x2(ζ) занесем в предпоследний столбец таблицы.
При k = 3 плановый период уже включает в себя январь, февраль и март. Запишем рекуррентное соотношение
F3(ζ)=min{f3(x3,y3)+F2(ζ-x3+d3)}
где ξ – значения уровня запасов y3 на конец марта, которому соответствуют наименьшие суммарные затраты на хранение и производство продукции.
Новая таблица (табл. 4) содержит лишь одну строку, так как, по условию задачи, y3=0 (k=3, d3=2, g3=10, c3=3, h3=1). Количество столбцов определим в соответствии с неравенством
0≤x2≤min{N3, d3} = min{4;2}=2
Таблица 4

x3

y3

0

1

2

x3(ζ=y3)

F3(ζ)

0

2

1

13 + 0 +51 = 64

0

16 + 0 + 44 =60

2

60


В остальном, содержание таблицы ничем не отличается от предыдущей.
Составим оптимальную программу выпуска продукции на каждом этапе, которая обеспечит минимальные суммарные затраты F3(ζ)=60 в течение всего планового периода. Как видно из мартовской таблицы k=3, x3(ζ)=2, что соответствует оптимальному уровню запасов y2=0, который рассчитан и записан в верхнем правом углу выделенной рамкой клетки. Далее из февральской таблицы (k=2) следует, что x2(ζ=y2=0)=3.
В выделенной рамкой клетке с координатами (x2=3, y2=0) (табл. 3) в верхнем правом углу записан оптимальный уровень запасов y1=2 на конец января. Наконец, из январской таблицы (k=1) получаем, что y1=2 соответствует x1(ζ)=4. Таким образом, построена оптимальная программа выпуска продукции
X=(x1(ζ), x2(ζ), x3(ζ)) = (4;3;2)
которая обеспечивает минимальные суммарные издержки F3(ζ)=60 на производство и хранение продукции.

Управление запасами. Складская задача

Складская задача относится к динамическим детерминированным задачам управления запасами. Следовательно, для решения этой задачи можно применить принцип Беллмана.

Пример №2. Рассмотрим задачу.
Планируется деятельность предприятия на три месяца.
ЗАДАНЫ:

  • начальный уровень запасов S0 = 20
  • остаток запасов S3 = 0
  • затраты на пополнение φ(x) = 0.4x
  • затраты на хранение ψ(y) = 0.2y + 1 в данном периоде в зависимости от y - среднего уровня хранимых запасов.
Определить размеры пополнения запасов в каждом месяце для удовлетворения заданного расхода d1 = 30, d2 = 20, d3 = 30 из условий минимизации суммарных затрат.

Решение.
Используются формулы Уилсона:
Средний уровень хранения yk = dk/2 + Sk
Уравнение состояния Sk = Sk-1 + xk - dk
Третий месяц

S2 x3 y3 φ(x3) ψ(y3) φ + ψ Z3
30 0 15 0 4 4 4
20 10 15 4 4 8 8
10 20 15 8 4 12 12
0 30 15 12 4 16 16

Второй месяц
S1 x2 S2 y2 φ(x2) ψ(y2) Z3 φ + ψ + Z3 Z2
50 0 30 40 0 8 4 12 12
40 0 20 30 0 7 8 15 15
10 30 40 4 9 4 18
30 0 10 20 0 5 12 17 17
10 20 30 4 7 8 19
20 30 40 8 9 4 22
20 0 0 10 0 3 16 19 19
10 10 20 4 5 12 21
20 20 30 8 7 8 23
30 30 40 12 9 4 25
10 10 0 10 4 3 16 23 23
20 10 20 8 5 12 25
30 20 30 12 7 8 27
40 30 40 16 9 4 29
0 20 0 10 8 3 16 27 27
30 10 20 12 5 12 29
40 20 30 16 7 8 31
50 30 40 20 9 4 33

Первый месяц
S0 x1 S1 y1 φ(x1) ψ(y1) Z2 φ + ψ + Z2 Z1
20 10 0 15 4 4 27 35 35
20 10 25 8 6 23 37
30 20 35 12 8 19 39
40 30 45 16 10 17 43
50 40 55 20 12 15 47
60 50 65 24 4 12 50

x1 = 10 S1 = 0 y1 = 15 φ(x1) = 4 ψ(y1) = 4
x2 = 20 S2 = 0 y2 = 10 φ(x2) = 8 ψ(y2) = 3
x3 = 30 S3 = 0 y3 = 15 φ(x3) = 12 ψ(y3) = 4

Выгодно каждый год докупать ровно столько, чтобы хватило на текущий год.

загрузка...