热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

《ACM算法详解》—动态规划知识点(二)

1多阶段决策问题1.1多阶段决策问题在研究社会经济、经营管理和工程技术领域内的有关问题中,有一类特殊形式的动态决策问题—多阶段决策问题。在多阶段决策过程中࿰

 

§ 1 多阶段决策问题    

1.1 多阶段决策问题

     在研究社会经济、经营管理和工程技术领域内的有关问题中,有一类特殊形式的动态决策问题—多阶段决策问题。在多阶段决策过程中,系统的动态过程可以按照时间进程分为相互联系而又相互区别的各个阶段,在每个阶段都要进行决策。系统在每个阶段存在许多不同的状态,在某个时点的状态往往要依某种形式受到过去某些决策的影响,而系统的当前状态和决策又会影响系统过程今后的发展。因而在寻求多阶段决策问题的最优解时,重要的是不能仅仅从眼前的局部利益出发进行决策,而需要从系统所经过的整个期间的总效应出发,有预见性地进行动态决策,找到不同时点的最优决策及整个过程的最优策略。

下面举例说明什么是多阶段决策问题。
 
例1(最短路线问题)在线路网络图5—1中,从A至E有一批货物需要调运。图上所标数字为各节点之间的运输距离,为使总运费最少,必须找出一条由A至E总里程最短的路线。  
 

图5—1                   

    为了找到由A至E的最短线路,可以将该问题分成A—B—C—D—E 4个阶段,在每个阶段都需要作出决策,即在A点需决策下一步到B1还是到B2或B3;同样,若到达第二阶段某个状态,比如B1 ,需决定走向C1还是C2 ;依次类推,可以看出:各个阶段的决策不同,由A至E的路线就不同,当从某个阶段的某个状态出发作出一个决策,则这个决策不仅影响到下一个阶段的距离,而且直接影响后面各阶段的行进线路。所以这类问题要求在各个阶段选择一个恰当的决策,使这些决策序列所决定的一条路线对应的总路程最短。
例2(带回收的资源分配问题)某厂新购某种机床125台。据估计,这种设备5年后将被其它设备所代替。此机车如在高负荷状态下工作,年损坏率为1/2,年利润为10万元;如在低负荷状态下工作,年损坏率为1/5,年利润为6万元。问应如何安排这些机床的生产负荷,才能使5年内获得的利润最大?
    本问题具有时间上的次序性,在五年计划的每一年都要作出关于这些机床生产负荷的决策,并且一旦作出决策,不仅影响到本年利润的多少,而且影响到下一年初完好机床数,从而影响以后各年的利润。所以在每年初作决策时,必须将当年的利润和以后各年利润结合起来,统筹考虑。 与上面例1、例2类似的多阶段决策问题还有资源分配、生产存贮、可靠性、背包、设备更新问题等等。 
1.2 动态规划的基本概念


1.阶段
    动态规划问题通常都具有时间或空间上的次序性,因此求解这类问题时,首先要将问题按一定的次序划分成若干相互联系的阶段,以便能按一定次序去求解。如例1,可以按空间次序划分为A—B—C—D—E 4个阶段,而例2,按照时间次序可分成5个阶段。

2.状态
    在多阶段决策过程中,每阶段都需要作出决策,而决策是根据系统所处情况决定的。状态是描述系统情况所必需的信息。如例1中每阶段的出发点位置就是状态,例2中每年初拥有的完好机床数是作出机床负荷安排的根据,所以年初完好机床数是状态。一般地,状态可以用一个变量来描述,称为状态变量。记第k 阶段的状态变量为,k=1,2, …,n.

3.决策
    多阶段决策过程的发展是用各阶段的状态演变来描述的,阶段决策就是决策者从本阶段某状态出发对下一阶段状态所作出的选择。描述决策的变量称为决策变量,当第k 阶段的状态确定之后,可能作出的决策要受到这一状态的影响。这就是说决策变量还是状态变量 的函数,因此,又可将第k阶段状态下的决策变量记为()。
    在实际问题中,决策变量的取值往往限制在某一范围之内,此范围称为允许决策变量集合,记作Dk()。如例2中取高负荷运行的机床数为决策变量,则0≤(是k阶段初完好机床数)为允许决策变量集合。

4.状态转移方程
    在多阶段决策过程中,如果给定了k 阶段的状态变量和决策变量,则第k+1阶段的状态变量也会随之而确定。也就是说是xk和函数,这种关系可记为 =T(xk, ) 称之为状态转移方程。
5.策略
    在一个多阶段决策过程中,如果各个阶段的决策变量() (k=1,2,…,n)都已确定,则整个过程也就完全确定。称决策序列为该过程的一个策略,从阶段k到阶段n的决策序列称为子策略,表示成。如例1中,选取一路线 就是一个策略:


由于每一阶段都有若干个可能的状态和多种不同的决策,因而一个多阶段决策的实际问题存在许多策略可供选择,称其中能够满足预期目标的策略为最优策略。例1中存在12条不同路线,其中是最短线路。

6.指标函数
    用来衡量过程优劣的数量指标,称为指标函数。在阶段k的状态下执行决策,不仅带来系统状态的转移,而且也必然对目标函数给予影响,阶段效应就是执行阶段决策时给目标函数的影响。


多阶段决策过程关于目标函数的总效应是各阶段的阶段效应累积形成的。常见的全过程目标函数有以下两种形式:

    (1)全过程的目标函数等于各阶段目标函数的和,即:  

 
    (2)全过程的目标函数等于各阶段目标函数的积,即:

指标函数的最优值,称为最优函数值。一般,(x1)表示从第1阶段状态出发至第n阶段(最后阶段)的最优指标函数, ()表示从第k阶段状态出发至第n阶段的最优指标函数(k=1,2,…,n)。

 

§ 2 动态规划的基本概念和最优化原理    

    多阶段决策过程的特点是每个阶段都要进行决策,具有n个阶段的决策过程的策略是由n个相继进行的阶段决策构成的决策序列。由于前阶段的终止状态又是后一阶段的初始状态,因此确定阶段最优决策不能只从本阶段的效应出发,必须通盘考虑,整体规划。就是说,阶段k的最优决策不应只是本阶段的最优,而必须是本阶段及其所有后续阶段的总体最优,即关于整个后部子过程的最优决策。

    对此,贝尔曼在深入研究的基础上,针对具有无后效性的多阶段决策过程的特点,提出了著名的多阶段决策的最优性原理:

    “整个过程的最优策略具有这样的性质:即无论过程过去的状态和决策如何,对前面的决策所形成的状态而言,余下的诸决策必须构成最优策略。”

     简而言之,最优性原理的含意就是:最优策略的任何一部分子策略也必须是最优的。
    如例1,是由A到E的最短路线,我们在该路线上任取一点 ,按照最优性原理应该是到E的最短路。很容易用反证法证明这一结论的正确性,从而说明最优性原理的正确性。

    按最优性原理,可以将例1分成A—B—C—D—E 4个阶段,由后向前逐步求出各点到E的最短线路,直至求出A至E的最短线路。

    例1的路线图
K=4时,出发点有D1,D2,D3,记
 f4(Di)(i=1,2,3)为Di到E的最短距离;u4(Di)表示从状态Di出发采取的决策。显然:
 f4(D1)=7,u4(D1)=E
f4(D2)=8,u4(D2)=E 
f4(D3)=6,u4(D3)=E





K=3时,出发点有C1,C2,C3
 
 
 
为了找出最短线路,再按计算顺序反推回去,可求出最优决策序列,即由
 

组成最优策略,也就是最短线路为:

    从上面的例子不难看出,对于最短线路问题,有如下的递推关系(函数方程):

    一般情况下,多阶段决策问题存在下面的递推关系:

    这里()是第阶段采用决策产生的阶段效应;是边界条件;“﹡”号大多数情况下是 “+”号,也可能是“×”号。称上述递推关系为动态规划的基本方程,这个方程是最优化原理的具体表达形式。 
    在基本方程中,都是已知函数,最优子策略()与之间是递推关系,要求出()及,需要先求出,这就决定了应用动态规划基本方程求最优策略总是逆着阶段的顺序进行的。

    另一方面,由于k+1阶段的状态=T()是由前面的状态和决策所形成的,在计算时还不能具体确定的,这就要求必须就k+1阶段的各个可能状态计算,因此动态规划不但能求出整个问题的最优策略和最优目标值,而且还能求出决策过程中所有可能状态的最优策略及最优目标值。

 

 

§ 3 建立动态规划数学模型的步骤    

    “最优化原理”是动态规划的核心,所有动态规划问题的递推关系都是根据这个原理建立起来的,并且根据递推关系依次计算,最终可求得动态规划问题的解。

一般来说,利用动态规划求解实际问题需先建立问题的动态模型,具体步骤如下:

⒈将问题按时间或空间次序划分成若干阶段。有些问题不具有时空次序,也可以人为地引进时空次序,划分阶段。

⒉正确选择状态变量。这一步是形成动态模型的关键,状态变量是动态规划模型中最重要的参数。一般来说,状态变量应具有以下三个特性:

    ⑴要能够用来描述决策过程的演变特征。
    ⑵要满足无后效性。即如果某阶段状态已给定后,则以后过程的进展不受以前各状态的影响,也就是说,过去的历史只通过当前的状态去影响未来的发展。
    ⑶递推性。即由k阶段的状态变量及决策变量uk可以计算出k+1阶段的状态变量

⒊确定决策变量及允许决策变量集合Dk()。

⒋根据状态变量之间的递推关系,写出状态转移方程:

=T(())


⒌建立指标函数。一般用()描写阶段效应,()表示k—n阶段的最优子策略函数。 

⒍建立动态规划基本方程:
 

以上是建立动态规划模型的过程,这个过程是正确求解动态规划的基础。

    在动态规划基本方程中, (), =T()都是已知函数,最优子策略()与
()之间是递推关系,要求出()及(),需要先求出(),这就决定了应用动态规划基本方程求最优策略总是逆着阶段的顺序进行的。由后向前逐步计算,最终可以算出全过程的最优策略函数值及最优策略。 
 
    另一方面,由于k+1阶段的状态=T()是由前面的状态和决策所形成的,在计算
()时还不能具体确定的值,所以,这就要求必须就k+1阶段的各个可能状态计算
(),因此动态规划方法不但能求出整个问题的最优策略和最优目标值,而且还能求出决策过程中所有可能状态的最优策略及最优目标值。
    下面就按上述步骤求解例2。
例2(带回收的资源分配问题)某厂新购某种机床125台。据估计,这种设备5年后将被其它设备所代替。此机床如在高负荷状态下工作,年损坏率为1/2,年利润为10万元;如在低负荷状态下工作,年损坏率为1/5,年利润为6万元。问应如何安排这些机床的生产负荷,才能使5年内获得的利润最大?
    解:以年为阶段,k=1,2,3,4,5, 取k年初完好的机床数为状态变量, 以k年初投入高负荷运行的机床数为决策变量,则低负荷运行机床数是-,于是状态转移方程为:


以利润为目标函数,则k年利润为:


()为k年至5年末最大总利润,则动态规划基本方程为:

以上是建立动态模型的过程,下面具体求解。

注意动态规划基本方程为:
    
     
     
     
至此已算得最大总利润2790万元,再按与计算过程相反的顺序推回去,可得最优计划如下表所示:

    

 


推荐阅读
  • 开发笔记:哈希的应用
    开发笔记:哈希的应用 ... [详细]
  • 本文旨在探讨机器学习与数据分析之间的差异,不仅在于它们处理的数据类型,还包括技术背景、业务应用场景以及参与者的不同。通过深入分析,希望能为读者提供清晰的理解。 ... [详细]
  • 深入理解Kafka架构
    本文将详细介绍Kafka的内部工作机制,包括其工作流程、文件存储机制、生产者与消费者的具体实现,以及如何通过高效读写技术和Zookeeper支持来确保系统的高性能和稳定性。 ... [详细]
  • 58同城的Elasticsearch应用与平台构建实践
    本文由58同城高级架构师于伯伟分享,由陈树昌编辑整理,内容源自DataFunTalk。文章探讨了Elasticsearch作为分布式搜索和分析引擎的应用,特别是在58同城的实施案例,包括集群优化、典型应用实例及自动化平台建设等方面。 ... [详细]
  • 在Ubuntu 16.04中使用Anaconda安装TensorFlow
    本文详细介绍了如何在Ubuntu 16.04系统上通过Anaconda环境管理工具安装TensorFlow。首先,需要下载并安装Anaconda,然后配置环境变量以确保系统能够识别Anaconda命令。接着,创建一个特定的Python环境用于安装TensorFlow,并通过指定的镜像源加速安装过程。最后,通过一个简单的线性回归示例验证TensorFlow的安装是否成功。 ... [详细]
  • 探索微信影响力排名的秘密:解读并计算WCI指数
    在日常浏览微信时,我们经常能见到各类新媒体影响力排行榜。其中,最后一列的WCI指标常引起人们的好奇。本文将深入解析WCI的含义及其计算方法,并通过Python代码实例展示如何计算WCI V14.2。 ... [详细]
  • 深入探讨机器学习中的查准率、查全率及F1分数
    本文详细解析了机器学习领域中常用的性能评估指标——查准率、查全率及其综合评价指标F1分数,通过具体案例分析这些指标在实际应用中的重要性和差异。 ... [详细]
  • 对称与非对称加密技术的比较及应用
    本文探讨了对称加密与非对称加密的主要区别,重点分析了非对称加密中的公钥体系及其在解决密钥分发问题上的优势。对称加密依赖单一密钥进行加密解密,而非对称加密则采用一对公私钥来完成安全通信。 ... [详细]
  • 聚焦法是一种采用穷尽搜索策略的Filter型特征选择方法,其核心在于寻找能有效区分不同样本的最小特征集合。此方法的评估标准主要依赖于一致性测量。 ... [详细]
  • Serato 推出全新 Stems 功能,DJ 软件迎来重大升级
    Serato 最近为其 DJ 软件推出了全新的 Stems 功能,使得用户能够轻松地将音乐中的不同部分如人声、旋律、贝斯和节奏进行分离,为音乐创作和现场表演提供了更多可能性。 ... [详细]
  • 本文详细介绍了WebRTC提供的音频处理引擎,包括自动增益控制(AGC)、噪声抑制(ANS)、移动设备声学回声消除(AEC)及静音检测(VAD)等核心算法,并提供了完整的C语言实现代码。 ... [详细]
  • 最近在深入学习《数据结构与算法–JavaScript描述》一书,尝试通过npmjs.org寻找合适的库作为参考,但未能找到完全符合需求的资源。因此,决定自行实现一个字典数据结构,以便日后能够直接应用。 ... [详细]
  • 车载T-BOX智能网联终端的设计与实现
    本文介绍了一款基于瑞萨RH850微控制器、TICC2640R2F蓝牙微控制器和高通MDM9628处理器的T-BOX车载终端的设计。该终端通过集成CAN总线、GPS定位、数据加密、蓝牙通信和LTE无线数据传输技术,实现了车辆信息的高效采集与云端通信,支持远程车辆控制和诊断等功能。 ... [详细]
  • 近期尝试重构 GDI 并自定义图像处理函数时,发现自定义函数的图像复制性能显著低于 Windows 原生 GDI 函数。通过研究了解到,系统可能利用了 GPU 加速来提升这些函数的效率。 ... [详细]
  • 本文介绍了数字音视频编解码技术标准,特别是中国自主研发的AVS标准,及其在短视频软件开发中的应用。文章探讨了AVS标准的发展历程、技术特点以及与国际标准的对比。 ... [详细]
author-avatar
mjadhu
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有