基于matlab的动态规划程序实现,基于MATLAB的动态规划常用算法的实现

第7 卷 第4 期 2008 年12 月   太 原 师 范 学 院 学 报 (自然科学版) JOU RNAL O F TA IYUAN NORMAL UN IV ERSITY (N atural Science Edition)   Vol. 7 No. 4   Dec. 2008 基于MA TLAB 的动态规划常用算法的实现Ξ孙 宝 王希云 (太原科技大学 数学系, 山西 太原 030024)   〔摘要〕 运用MA TLAB 编程实现了动态规划的逆序、顺序、双向混合算法, 并分别应用于求解几类典型问题, 验证了该方法的有效性, 同时表明该程序对求解动态规划多类典型问题是通用的, 丰富了MA TLAB 优化工具箱, 具有一定的应用价值 . 〔关键词〕 动态规划; 逆序算法; 顺序算法; 混合双向算法;MA TLAB 〔文章编号〕 167222027 (2008) 040026205 〔中图分类号〕 O 221. 3 〔文献标识码〕 A0  引言 动态规划(Dynam ic Programm ing) 是求解决策过程最优化的有效数学方法[1]. 它是根据“最优决策的任何截断仍是最优的”这一原理, 通过将多阶段决策过程转化为一系列单阶段问题, 逐个求解的优化求解方法 . 目前常用的方法有逆序、顺序以及双向混合算法 . MA TLAB 是决策系统的优化计算和设计的有力工具, 但 该工具箱中尚无动态规划计算的程序文档 . 本文通过求解几类动态规划典型问题将三种常用算法用M atlab 实现, 体现了程序的通用性, 拓展了MA TLAB 语言的相关程序, 克服了该程序使用的局限性, 提供了求解相关动态规划问题的有效工具, 丰富了MA TLAB 优化工具箱 . 1 动态规划的基本模型 实际中, 要构造一个标准的动态规划模型, 通常需要采用以下几个步骤[2]: 1) 划分阶段: 按照问题的时间或空间特征, 把问题分为若干个阶段 . 这些阶段必须是有序的或者是可排 序的(即无后向性) , 否则, 应用无效 . 2) 选择状态: 将问题发展到各个阶段时所处的各种客观情况用不同的状态表示, 称为状态 . 状态的选择要满足无后效性和可知性, 即状态不仅依赖于状态的转移规律, 还依赖于允许决策集合和指标函数结构 . 3) 确定决策变量与状态转移方程: 当过程处于某一阶段的某个状态时, 可以做出不同的决策, 描述决策 的变量称为决策变量 . 在决策过程中, 由一个状态到另一个状态的演变过程称为状态转移 . 4)写出动态规划的基本方程: 动态规划的基本方程一般根据实际问题可分为两种形式, 逆序形式和顺序 形式 . 动态规划基本方程的逆序形式为: f k (x k) = op t u k ∈D k (x k ) {vk (x k, uk) + f k+ 1 (x k+ 1) }, k = n, n - 1, ⋯, 2, 1 边界条件: f n+ 1 (x n+ 1) = 0 或 f n (x n) = vn (x n, un) 其中第k 阶段的状态为x k, 其决策变量uk 表示状态处于x k+ 1的决策, 状态转移方程为x k+ 1= T k (x k, uk) , k 阶段的允许决策集合记为D k (x k) , vk (x k, uk)为指标函数 . 当求解时, 由边界条件从k= n 开始, 由后向前逆推, 逐阶段求出最优决策和过程的最优值, 直到最后求出f 1 (x 1)即得到问题的最优解 . 类似地, 动态规划基本方程的顺序形式为: Ξ收稿日期: 2008081

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值