手算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 = 1,2,3,4 ;
Ø 每个阶段开始时库存量: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
- 手算Dynamic Programming
- dynamic programming
- Dynamic Programming
- Dynamic Programming
- dynamic programming
- Dynamic Programming
- dynamic programming
- Dynamic Programming
- Dynamic Programming
- Dynamic Programming
- Dynamic Programming
- Dynamic programming
- Dynamic Programming
- Dynamic Programming
- Dynamic Programming
- dynamic programming
- Dynamic Programming?
- Dynamic Programming
- 四摇功能的简介
- 堆与栈的区别
- 【软件测试自动化-QTP系列讲座 6】== 利用DotNetFactory调用.NET类库 ==
- java命令编译时
- 常见SQL
- 手算Dynamic Programming
- Exception starting filter struts2 java.lang.NullPointerException个人感慨
- 你的软件被锁了吗?
- 十分钟让你读懂中国经济
- public,private,protected 区别
- 在WTL中实现Spin control控件(使用SetBuddy)
- oracle 数据库模式对象,索引,序列,同义词,查看用户拥有的表,聚簇,数据库链接
- IT项目风险管控,稳扎稳打
- Excel writing and reading with pure c API