动态规划结构

应付后天的算法考试,还在复习算法。

这两天看Dynamic Programming,突然发现很多问题都属于相同的结构。那么DP可解的问题集合是不是可以划分成若干个等价集合呢?如果能通过问题结构得到DP问题的递归式,就离机械求解又进了一步 。因此,属于同一等价集合的问题应当存在相同或者至少相似的递归式。

看了一些问题,目前发现了三个等价结构:

1. Catalan结构

input: a sequence

output: pairs of elements from the sequence

例子: Minimum Weight Triangulation(MWT), Optimal Binary Search Tree

递归式:M[1, n] = max1<=i<=n{ M[1, i] + M[i, n] + const}

结论:空间复杂度n2,时间复杂度n3

2. Cut-line结构

input: a sequence

output: a divide of the sequence

例子:中文分词,英文分行, EMP。。。

递归式: M[n] = max1<=i<=n{ M[i] + f(i, n)}

结论:空间复杂度n, 时间复杂度n2

 

3. 0-1结构

input: a set

output: a subset

例子:Subset Sum, 0-1背包, Weighted Interval Scheduling, 天平分重量。。。

递归式: M[n, W] = max {M[n-1, W-wn]+wn, M[n-1, W]}

结论: 空间复杂度n2, 时间复杂度n2

应该还有很多问题,慢慢研究

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值