笔记——线性模型类动态规划

引例:

给出一个字符串

给出一个包含n个单词的字典

要求把单词划分成尽量少的子段,使得每 个小段都是字典中的一个单词

字符串 = ABABACABA

字典 = {A,AB,BA,CA,BBC}

字符串划分: AB|A|BA|CA|BA

对于该例,可以得出状态转移方程:

    inf          (无符合字典中的串)

dp[i]=                                    (0<k<l)  (l表示字典中最长单词的长度)

    min{dp[i-k]}+1   (K的值符合:dp[i-k]到dp[i]组成字典中的一个单词)

总结模型特点:

将一个线性实例划分成若干份,每份满足 若干条件,要求目标函数最优

状态:F[i]为前i个元素划分完毕后最优函数

转移决策:关注前i个元素划分的最后一个 小段[ j .. i],那么问题归为子问题F[j – 1]


复杂度分析: 状态数 * 决策数 * 转移时间

练习:

1. 安排车厢:

热身,转移时运用部分和

2. Longest Prefix:

决策+转移:枚举j,查找[j..i]在单词内 ---> 直接枚举单词

3. 书架:

max (h[j].. h[i]),倒序扫描决策j达到O(1)转移

4. Formatting Text:

转移式,感性认识:平均分配
理性思考,证明长度仅有两种,进一步推导,得出转移式

锻炼思维的分析能力

打印答案


posted on 2011-07-15 00:45  Eucalyptus  阅读(551)  评论(0编辑  收藏  举报