数学建模 最优化方法:动态规划 学习笔记

本文深入讲解动态规划这一优化算法,探讨其在解决多阶段决策问题中的应用,通过实例解析递归与递推算法,展示资源分配问题的求解过程。

动态规划简介

动态规划是求解多阶段决策问题的一种最优化方法。多阶段决策过程是指这样一类特殊的决策问题:由问题的特性可将整个决策过程按时间、空间等标志划分为若干相互关联又相互区别的阶段。在它的每一个阶段都需要做出决策,从而使整个过程达到最好的效果。由于各阶段决策间有机地联系,本阶段的决策会影响到下一段的决策。所以在作决策时不仅要考虑本阶段最优,还要考虑对最终目标的影响。

递归算法

算法描述:
首先要明确的是问题可以分为几个阶段,分阶段的依据可以是时间,空间或者逻辑关系,例如将10枚金币分给4个商人这个过程,可以先把金币分给商人Tony,再在剩下的钱里面分一部分给Steven,再依次给Bruce和Jimmy,这样就构造出了简单的逻辑关系。阶段确定之后再看每个阶段所有可能的状态,用k表示阶段的序号,sk表示该阶段的状态,Sk表示阶段k所有可能状态的集合。决策就是对于阶段k所处的状态sk进行的操作,记作uk(sk),对应的Dk(sk)是该阶段所能采取的策略集合。策略则是该过程依次进行的所有决策的集合p1n{u1(s1),u2(s2),…un(sn)},所有可选的策略集合为P1n.
状态转移方程:动态规划中本阶段的状态是上一阶段状态和上一阶段的决策结果。如果给定了第k阶段的状态 ,本阶段决策 ,则第k+1阶段的状态 也完全确定,关系为 sk+1=Tk(sk,uk)称为状态转移方程。
指标函数:
用于衡量所选定策略优劣的数量指标称为指标函数,它分为阶段指标函数和过程指标函数两种。阶段指标是指k阶段 从状态sk 出发,采用决策uk 时的效益,用 d(sk,uk)表示。对于任意一个给定的k,从第k阶段到第n阶段的过程称为一个原过程的后部子过程。V1n(s1,p1n)表示初始状态为 采用策略p1n时原过程的指标函数值。
最优指标函数
记为 fk(sk),它表示从第k阶段状态 采用最优策略pkn 到过程终止时的最佳效益值。当k=1时,是从初始状态到全过程结束时整体最优函数。
核心算法可用以下公式描述:在这里插入图片描述
举例如下:
在这里插入图片描述
这是动态规划的经典例题:求A->E最短路径,而且形式十分简单,阶段也比较明显:5个阶段A->B->C->D->E。接下来用递推算法加以实现:

clear;clc;
%决策集合利用三维矩阵存储
Data=zeros(5,5,4);
Data(1,1:3,1)=[3 2 1];
Data(1:3,1:2,2)=[4 3;1 3;3 5];
Data(1:2,1:3,3)=[2 5 3;1 4 2];
Data(1:3,1,4)=[3;1;5];
Len=zeros(4,4);%路径长度
Route=zeros(5,5,4)
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值