动态规划的证明题

简介: 动态规划的证明题

动态规划一般用来解决最优解问题,且一般要求这样的问题具有最优子结构和重叠子问题。

证明一个动态规划问题的成立往往在于求证其具有最优子结构:该问题的最优解包含子问题的最优解。

最优子结构的证明步骤:

做出选择,划分子问题,假设该问题最优解成立,而子问题的解不是最优解,反证,利用子问题的最优解推出与该问题最优解矛盾,得证。

下面请看几个实例证明:


1.钢条切割问题

1685018745312.jpg

证明:我们不妨选择n英寸长的最优解为i+dp(n-i)其中,i表示n英寸长的有一段分割成i长,另一段长(n-i)可以继续分割,显然子问题是dp(n-i),不妨假设dp(n-i)的分割方案不是最优解,那定有最优解分割t(n-i)>dp(n-i),i+t(n-1)>i+dp(n-i),显然与i+dp(n-i)为最优解矛盾,所以dp(n-i)也是最优解


2.矩阵链相乘

1685018754940.jpg

1685018764076.jpg

目的是使得整个式子所需乘法运算标量最小

这里假设Aij为从i到j的最小乘法运算标量,假设其从k处划分为Aik和Ak+1j,则Aij=Aik+Ak+1j+pipk+1pj(pi表示矩阵Ai的行数)。现在Aik、Ak+1j必须也是对应的最小乘法运算标量,不然Aij就不是最小,反证可证。


3.公共子序列

1685018773173.jpg

这个问题的最优子结构既是要证明最长公共子序列(LCS)具有最优子结构性。

设两个序列的LCS为Z,则证明Z包含了两个序列前缀的LCS。

1685018781142.jpg

即证明如上这个定理即可。

这个问题最优子结构的证明其实同上面两个存在一定的差异,就是没有那么好想,虽然定理6.2的证明也还是利用了反证法,但是将如何证明最长公共子序列(LCS)具有最优子结构性转化成证明定理6.2要花费功夫,希望可以从中受到启发。


4.最优二叉搜索树

1685018789787.jpg

1685018802964.jpg

1685018810312.jpg


最优子结构的证明:假设最优二叉搜索树T为树根的子树为T’,则T’为最优二叉搜索树。

显然,由于T’增加了一个根结点,层次加1,则E(T)=结点概率和+E(T’),结点概率和是定值,显然要E(T’)是最优二叉搜索树,否则反证法可证。

相关文章
|
Ubuntu 机器人 API
ubuntu 16.04+ros kinetic + gazebo+ aws-robotics 室内环境导航仿真
ubuntu 16.04+ros kinetic + gazebo+ aws-robotics 室内环境导航仿真
859 0
|
25天前
|
前端开发 数据挖掘
精准类目+关键词布局,让1688商品快速获得曝光!
本文详解1688商品曝光提升策略,涵盖精准类目选择、关键词优化、流量获取及展现位竞争。通过科学布局关键词、完善商品信息、提升服务质量,助力商家精准触达客户,实现曝光与转化双增长。
|
10月前
|
存储 人工智能 算法
《AI浪潮下,别让数据隐私与算法偏见拖后腿》
在数字化时代,AI技术融入生活各领域,带来便利的同时也引发数据隐私与算法偏见两大难题。数据隐私问题体现在数据收集、存储、传输和使用过程中,存在告知不明确、授权不充分等隐患;算法偏见源于训练数据偏差和设计缺陷,导致不公平结果。为应对这些挑战,需从技术、法律和伦理层面采取措施,确保AI健康发展,造福人类社会。
571 2
|
Ubuntu Linux
linux查看系统版本及内核信息
在Linux中检查系统版本和内核信息,可使用`uname -r`查看内核版本,`uname -a`获取详细信息,或者查看`/proc/version`。要了解发行版版本,尝试`lsb_release -a`(如果安装了)或查阅`/etc/os-release`。Red Hat家族用`/etc/redhat-release`,Debian和Ubuntu系用`/etc/issue`及相关文件。不同发行版可能需不同命令。
753 3
|
机器学习/深度学习 人工智能 自动驾驶
AI的奇思妙想之旅:探索未来的无限可能
人工智能(AI)正迅速变革世界,从自动驾驶到智能助手,乃至艺术创作领域。AI不仅能生成多样风格的艺术品,还能创造新艺术形式。例如,利用Python和深度学习库可将普通照片转化为梵高风格的画作。此外,AI还助力建筑设计,通过生成对抗网络(GAN)快速生成建筑草图。在医疗领域,AI支持个性化医疗决策,如通过随机森林算法预测心脏病风险。AI不仅象征技术飞跃,更预示着未来生活的无限可能。
234 2
|
传感器 机器学习/深度学习 人工智能
超全汇总 | 基于Camera的3D目标检测算法综述!(单目/双目/伪激光雷达)
目前3D目标检测领域方案主要包括基于单目、双目、激光雷达点云、多模态数据融合等方式,本文主要介绍基于单目、双目和伪激光雷达数据的相关算法,下面展开讨论下~
超全汇总 | 基于Camera的3D目标检测算法综述!(单目/双目/伪激光雷达)
|
SQL 关系型数据库 MySQL
OceanBase 的 SQL 兼容性与优化
【8月更文第31天】随着分布式计算的发展,越来越多的企业开始采用分布式数据库来满足其大规模数据存储和处理的需求。OceanBase 作为一款高性能的分布式关系数据库,其设计旨在为用户提供与传统单机数据库类似的 SQL 查询体验,同时保持高可用性和水平扩展能力。本文将深入探讨 OceanBase 的 SQL 引擎特性、兼容性问题,并提供一些针对特定查询进行优化的方法和代码示例。
1007 0
|
存储 算法 编译器
【C++ 泛型编程 进阶篇】C++模板元编程深度解析:探索编译时计算的神奇之旅
【C++ 泛型编程 进阶篇】C++模板元编程深度解析:探索编译时计算的神奇之旅
1934 1
|
Web App开发 移动开发 HTML5
如何在HTML5使用WebRTC(内含可测试地址可用TRUN服务器)
如何在HTML5使用WebRTC(内含可测试地址可用TRUN服务器)
|
Java API 语音技术
NLS(Natural Language Processing Service)
NLS(Natural Language Processing Service)是阿里云提供的一项语音识别、语音合成和语音交互等服务的产品,它可以帮助开发者快速实现语音交互应用,并提供了多种语音服务API、SDK和工具,方便开发者进行开发和调试。
2122 0