关于最优子结构的理解

经过在网上的搜索,我发现一般情况下最优子结构的说法是:“如果一个问题的最优解包含其子问题的最优解,我们就称此问题具有最优子结构

此前,我将之理解为一个问题的最优解可以划分成几个子问题的解的组合,且这几个子问题的解都是子问题的最优解,如n到m的最短路径由nl和lm组成,nl是n到l的最短路径,lm是l到m的最短路径;又或者说把一个问题的最优解缩小规模(即取子集),就能得到一个子问题的最优解。

而今我重新复习动态规划,发现以前的理解不适用于有的问题,比如斐波那契数列,状态转移方程为

f(n)=f(n-1)+f(n-2)

那么f(n)很难理解成“包含子问题的最优解”的解,还有只交易一次的股票问题,状态转移方程为

f(n)=max(f(n-1), g(n)-min\_list(n))

其中f(n)为前n天的最大利润,g(n)为第n天股票的价格,min_list(n)为前n天股票价格的最小值,这里的f(n)也难以理解成“包含子问题的最优解”的解。以上的解都是最优解,也是由子问题的最优解推导而来,但是单看解f(n)难以划分出子问题的最优解

所以我现在把最优子结构理解成“对于可转化为经过多步决策可确定其解的问题,若其最优解对应的决策序列的子序列所确定的状态,是该问题的子问题的最优解,那么问题具有最优子结构”

或“如果我们可以通过逐步扩大子问题规模,并求解子问题最优解的方式,最终求得问题的最优解,那么问题具有最优子结构”

PS:我认为子问题是形式与问题相似但规模缩小的问题

希望大家觉得有问题轻点🐎

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值