手算Dynamic Programming

来源:互联网 发布:微信授权回调域名1003 编辑:程序博客网 时间:2024/05/01 21:32

手算Dynamic Programming(1)

用动态规划方法手工求解下面的问题:

某工厂调查了解市场情况,估计在今后四个月内,市场对其产品的需求量如下表所示。

时期(月)

需要量(产品单位)

1

2

2

3

3

2

4

4

已知:对每个月来讲,生产一批产品的固定成本费为3 (千元),若不生产,则为零。每生产单位产品的成本费为1 (千元)。同时,在任何一个月内,生产能力所允许的最大生产批量为不超过6 个单位。

又知每单位产品的库存费用为每月0.5 (千元),同时要求在第一个月开始之初,及在第四个月末,均无产品库存。

问:在满足上述条件下,该厂应如何安排各个时期的生产与库存,使所花的总成本费用最低?

要求:写出各种变量、状态转移方程、递推关系式、和详细计算步骤。

【解答】

l  变量定义

Ø  阶段:k = 1234

Ø  每个阶段开始时库存量:sk

Ø  每个阶段产量:uk

Ø  每个阶段需求量:dk

l  状态转移方程

l  递推关系式

l  详细计算步骤

k = 4

根据状态转移方程和边界条件:

因为s5 = 0 = s4 + u4 – d4 = s4 + u4 – 4

所以 s4 = 4 – u4 , s4 0

根据 ,

得出决策表格:

s4

u4

f4(s4)

4

0

2

3

1

5.5

2

2

6

1

3

6.5

0

4

7

 

 

 

 

 

 

 

 

第四月初的库存状态:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

手算Dynamic Programming(2)

k = 3

根据状态转移方程:s4 = s3 + u3 – 2

递推关系式:

u3

s3

0

1

2

3

4

5

6

f3(s3)

0

 

 

s4 = 0

12

s4 = 1

12.5

s4 = 2

13

s4 = 3

13.5

s4 = 4

11

11

1

 

s4 = 0

11.5

s4 = 1

12

s4 = 2

12.5

s4 = 3

13

s4 = 4

10.5

 

10.5

2

s4 = 0

8

s4 = 1

11.5

s4 = 2

12

s4 = 3

12.5

s4 = 4

10

 

 

8

3

s4 = 1

8

s4 = 2

11.5

s4 = 3

12

s4 = 4

9.5

 

 

 

8

4

s4 = 2

8

s4 = 3

11.5

s4 = 4

9

 

 

 

 

8

5

s4 = 3

8

s4 = 4

8.5

 

 

 

 

 

8

6

s4 = 4

5

 

 

 

 

 

 

5

手算Dynamic Programming(3)

 

根据状态转移方程:s3 = s2 + u2 – 3

递推关系式:

u2

s2

0

1

2

3

4

5

6

f2(s2)

0

 

 

 

s3 = 0

17

s3 = 1

17.5

s3 = 2

16

s3 = 3

17

16

1

 

 

s3 = 0

16.5

s3 = 1

17

s3 = 2

15.5

s3 = 3

16.5

s3 = 4

17.5

15.5

2

 

s3 = 0

16

s3 = 1

16.5

s3 = 2

15

s3 = 3

16

s3 = 4

17

s3 = 5

18

15

3

s3 = 0

12.5

s3 = 1

16

s3 = 2

14.5

s3 = 3

15.5

s3 = 4

16.5

s3 = 5

17.5

s3 =6

15.5

12.5

4

s3 = 1

12.5

s3 = 2

14

s3 = 3

15

s3 = 4

16

s3 = 5

17

s3 = 6

15

 

12.5

5

s3 = 2

10.5

s3 = 3

14.5

s3 = 4

15.5

s3 =5

16.5

s3 = 6

14.5

 

 

10.5

6

s3 = 3

11

s3 = 4

15

s3 = 5

16

s3 = 6

14

 

 

 

11

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

手算Dynamic Programming(4)

k = 1

根据状态转移方程:s2 = s1 + u1 – 2

递推关系式:

u1

s1

0

1

2

3

4

5

6

f2(s2)

0

 

 

s2 = 0

21

s2 = 1

21.5

s2 = 2

22

s2 = 3

20.5

s2 = 4

21.5

20.5

回溯!!

生产过程安排如下:

月份k

sk

uk

月总成本

成本累计

1

0

5

8

8

2

3

0

1.5

9.5

3

0

6

9

18.5

4

4

0

2

20.5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k = 2
原创粉丝点击