【管理运筹学】背诵手册(五)| 动态规划

五、动态规划

基本概念

阶段(Stage):将所给问题的过程,按时间或空间特征分解成若干相互联系的阶段,以便按次序去求解每阶段的解,常用字母 k k k 表示。

状态(State):各阶段开始时的客观条件叫做状态。描述各阶段状态的变量称为状态变量,常用 s k s_k sk 表示第 k k k 阶段的状态变量,状态变量 s k s_k sk 的取值集合称为状态集合,用 S k S_k Sk 表示。状态变量应具有无后效性:某阶段状态给定后,这个阶段以后过程的发展不受这段以前各状态的影响。

决策和策略(Decision and Policy):各阶段状态确定后,就可以作不同的决定,从而确定下一阶段的状态,这种决定称为决策。表示决策的变量称为决策变量,常用 u k ( s k ) u_k(s_k) uk(sk) 表示,允许的决策集合常用 D k ( s k ) D_k(s_k) Dk(sk) 表示。各阶段决策确定后,整个问题的决策序列就构成一个策略。

状态转移方程:如果给定了第 k k k 阶段的状态 s k s_k sk ,本阶段决策为 u k ( s k ) u_k(s_k) uk(sk) ,则第 k + 1 k+1 k+1 阶段的状态 s k + 1 s_{k+1} sk+1 也就完全确定,它们的关系就称为状态转移方程。

指标函数:用于衡量所选定策略优劣的数量指标称为指标函数。直接指标函数表示某阶段的决策产生的效益,常用 d k ( u k ) d_k(u_k) dk(uk) 表示。最优指标函数表示从第 k k k 阶段状态为 s k s_k sk 采用最优策略时,后部过程的最优收益值,常用 f k ( s k ) f_k(s_k) fk(sk) 表示。

五要素

动态规划模型五要素:

  1. 将问题按时空特征恰当地划分为若干个阶段。
  2. 正确地规定状态变量 s k s_k sk ,使得它既能描述过程的演变,又具有无后效性。
  3. 正确地规定决策变量 u k u_k uk 以及每阶段的允许决策集合 D k ( s k ) D_k(s_k) Dk(sk) .
  4. 正确写出状态转移方程 s k + 1 = g k ( s k , u k ) s_{k+1}=g_k(s_k,u_k) sk+1=gk(sk,uk)
  5. 正确地定义各阶段的直接指标函数 d k ( s k , u k ) d_k(s_k,u_k) dk(sk,uk) 和后部子过程的最优指标函数 f k ( s k ) f_k(s_k) fk(sk) ,并写出基本方程(以 max ⁡ \max max 和相加求收益为例): { f k ( s k ) = max ⁡ { d k ( s k , u k ) + f k + 1 ( s k + 1 ) } , k = n , n − 1 , ⋯   , 1 f n + 1 ( s n + 1 ) = 0 , 边界条件 \begin{cases} f_k(s_k)=\max\{d_k(s_k,u_k)+f_{k+1}(s_{k+1})\} &,k=n,n-1,\cdots,1 \\ f_{n+1}(s_{n+1})=0&,边界条件\end{cases} {fk(sk)=max{dk(sk,uk)+fk+1(sk+1)}fn+1(sn+1)=0,k=n,n1,,1,边界条件

生产存储问题

做题时,我们可也按照动态规划模型五要素进行建模,以生产与储存问题为例。

在这里插入图片描述

解: 将问题划分为 4 4 4 个阶段( k = 1 , 2 , 3 , 4 k=1,2,3,4 k=1,2,3,4),每个阶段表示一个时期;状态变量 s k s_k sk 表示第 k k k 阶段开始时的库存量;决策变量 x k x_k xk 表示第 k k k 阶段的产品生产量, d k d_k dk 表示第 k k k 阶段的产品需求量,则状态转移方程为: s k + 1 = s k + x k − d k s_{k+1}=s_k+x_k-d_k sk+1=sk+xkdk 直接指标函数 g k ( x k ) g_k(x_k) gk(xk) 表示第 k k k 阶段决策为 x k x_k xk 时的成本,包括生产成本 c k ( x k ) c_k(x_k) ck(xk) 和存储成本 m k ( x k ) m_k(x_k) mk(xk) 。其中, c k ( x k ) = { 0 , x k = 0 3 + x k , x k = 1 , 2 , ⋯   , 6 ∞ , x k > 6 c_k(x_k)=\begin{cases} 0&,x_k=0\\ 3+x_k&,x_k=1,2,\cdots,6\\ \infty&,x_k>6 \end{cases} ck(xk)= 03+xk,xk=0,xk=1,2,,6,xk>6 m k ( x k ) = 0.5 ( s k + x k − d k ) m_k(x_k)=0.5(s_k+x_k-d_k) mk(xk)=0.5(sk+xkdk) 。最优指标函数 f k ( s k ) f_k(s_k) fk(sk) 表示第 k k k 阶段状态为 s k s_k sk 采用最优策略时,后部过程的最小成本,则递推基本方程为: f k ( s k ) = { min ⁡ { c k ( x k ) + m k ( x k ) + f k + 1 ( s k + 1 ) } , k = 4 , 3 , 2 , 1 f 5 ( s 5 ) = 0 f_k(s_k)=\begin{cases} \min\{c_k(x_k)+m_k(x_k)+f_{k+1}(s_{k+1})\},k=4,3,2,1\\ f_5(s_5)=0\end{cases} fk(sk)={min{ck(xk)+mk(xk)+fk+1(sk+1)},k=4,3,2,1f5(s5)=0 随后便是每个阶段的求解了,最关键的就是确定 s k s_k sk x k x_k xk 的取值范围,需要瞻前顾后,考虑每阶段的生产能力以及最后阶段的库存要求。

设备更新问题

对于设备更新问题,教材上用了别的符号,让人难以和之前的联系起来,但其实它也可以用我们常见的符号表达的。用一个实际题目来说明。

在这里插入图片描述
在这里插入图片描述
解: 将问题分为 5 个阶段( k = 1 , 2 , 3 , 4 , 5 k=1,2,3,4,5 k=1,2,3,4,5),每个阶段代表一年。状态变量 s k s_k sk 表示第 k k k 阶段初机器的役龄,决策变量 x k x_k xk 表示第 k k k 阶段时保留(K)还是更新(R)。则状态转移方程为: s k + 1 = { s k + 1 , x k = K 1 , x k = R s_{k+1}=\begin{cases} s_k+1&,x_k=K\\ 1&,x_k=R \end{cases} sk+1={sk+11,xk=K,xk=R 直接指标函数 g k ( x k ) g_k(x_k) gk(xk) 表示第 k k k 阶段做出决策 x k x_k xk 的收入, I k ( s k ) I_k(s_k) Ik(sk) 表示第 k k k 阶段役龄为 s k s_k sk 的机器带来的收入, O k ( s k ) O_k(s_k) Ok(sk) 表示第 k k k 阶段役龄为 s k s_k sk 的机器的运行费用, C k ( s k ) C_k(s_k) Ck(sk) 表示第 k k k 阶段役龄为 s k s_k sk 的机器更新费用,则有 g k ( x k ) = { I k ( s k ) − O k ( s k ) , x k = K I k ( 0 ) − O k ( 0 ) − C k ( s k ) , x k = R g_k(x_k)=\begin{cases} I_k(s_k)-O_k(s_k)&,x_k=K\\ I_k(0)-O_k(0)-C_k(s_k)&,x_k=R \end{cases} gk(xk)={Ik(sk)Ok(sk)Ik(0)Ok(0)Ck(sk),xk=K,xk=R 最优指标函数 f k ( s k ) f_k(s_k) fk(sk) 表示第 k k k 阶段役龄为 s k s_k sk 的机器采用最优策略时,后部过程的最大收入,可写出递推基本方程为: f k ( s k ) = { max ⁡ { g k ( x k ) + f k + 1 ( s k + 1 ) } , k = 5 , 4 , 3 , 2 , 1 f 6 ( s 6 ) = 0 f_k(s_k)=\begin{cases} \max\{g_k(x_k)+f_{k+1}(s_{k+1})\},k=5,4,3,2,1\\ f_6(s_6)=0\end{cases} fk(sk)={max{gk(xk)+fk+1(sk+1)},k=5,4,3,2,1f6(s6)=0 剩下就是根据表中的数据代入递推方程了。

静态规划问题

动态规划方法还可以用来求解一些静态规划问题,如整数规划和非线性规划问题等。一般将约束条件的右端资源量作为状态变量,决策变量为原规划问题的决策变量,直接指标函数为目标函数对应的部分。

有时候最后一个阶段的直接指标函数较为复杂,可以换一换次序,简化计算。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/182781.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu20.04 install pnpm

npm install -g pnpm referrence link: Installation | pnpmPrerequisiteshttps://pnpm.io/installation

【libGDX】使用Mesh绘制立方体

1 前言 本文主要介绍使用 Mesh 绘制立方体,读者如果对 Mesh 不太熟悉,请回顾以下内容: 使用Mesh绘制三角形使用Mesh绘制矩形使用Mesh绘制圆形 在绘制立方体的过程中,主要用到了 MVP (Model View Projection&#xff0…

Javaweb之前后台分离开发介绍的详细解析

2.1 前后台分离开发介绍 在之前的课程中,我们介绍过,前端开发有2种方式:前后台混合开发和前后台分离开发。 前后台混合开发,顾名思义就是前台后台代码混在一起开发,如下图所示: 这种开发模式有如下缺点&a…

C++11『lambda表达式 ‖ 线程库 ‖ 包装器』

✨个人主页: 北 海 🎉所属专栏: C修行之路 🎃操作环境: Visual Studio 2022 版本 17.6.5 文章目录 🌇前言🏙️正文1.lambda表达式1.1.仿函数的使用1.2.lambda表达式的语法1.3.lambda表达式的使用…

C/C++ 开发SCM服务管理组件

SCM(Service Control Manager)服务管理器是 Windows 操作系统中的一个关键组件,负责管理系统服务的启动、停止和配置。服务是一种在后台运行的应用程序,可以在系统启动时自动启动,也可以由用户或其他应用程序手动启动。…

win10戴尔电脑安装操作系统遇到的问题MBR分区表只能安装GPT磁盘

首先按F2启动boot管理界面 调整启动盘的启动顺序,这里启动U盘为第一顺序。 第一步 选择安装程序的磁盘 第二步 转换磁盘为GPT磁盘 一般出现 磁盘0和1,说明存在两个盘 ,这里两个盘不是说的是C盘和D盘的问题,而是在物理上实际存在…

2024年度投资策略:AI大模型和半导体国产化加速

今天分享的是AI系列深度研究报告:《2024年度投资策略:AI大模型和半导体国产化加速》。 (报告出品方:东方证券) 报告共计:48页 前言: 行情回顾与未来展望 电子板块涨幅转正,信心逐渐回归。截至…

Ps:参考线

参考线 Guides用于帮助精确地定位图像或元素,显示为浮动在图像上的非打印线,可以移动或移除,还可以临时锁定。 Ps 中的参考线可分为三大类:画布参考线、画板参考线和智能参考线。 可在“首选项/参考线、网格和切片”中设置参考线的…

【Java线程通信】一窥究竟

今天我们要聊一聊Java线程通信。如果你是一个Java开发者,那么你肯定知道线程是Java中的一个重要概念。线程是程序执行的最小单位,它可以独立运行,也可以与其他线程共享资源。那么,线程之间如何进行通信呢?这就是我们今…

【uniapp】部分图标点击事件无反应

比如:点击这个图标在h5都正常,在小程序上无反应 css:也设置z-index,padding 页面上也试过click.native.stop.prevent"changePassword()" 时而可以时而不行, 最后发现是手机里输入键盘的原因,输…

文心一言 VS 讯飞星火 VS chatgpt (141)-- 算法导论12.1 1题

一、用go语言,对于关键字集合(1,4,5,10,16,17,21),分别画出高度为 2、3、4、5和6的二又搜索树。 文心一言: 以下是用Go语言为给定的关键字集合(1, 4, 5, 10, 16, 17, 2…

马养殖场建设VR模拟实训教学平台具有灵活性和复用性

为保障养殖场生物安全,避免疫病传播,学生出入养殖场受时间和地域的限制, 生产实习多以参观为主,通过畜牧企业技术人员的讲解,学生被动了解生产过程。为了解决畜牧养殖实训难的问题,借助VR技术开展畜牧养殖虚…

CUDA与GPU编程

文章目录 CUDA与GPU编程1. 并行处理与GPU体系架构1.1 并行处理简介1.1.1 串行处理与并行处理的区别1.1.2 并行处理的概念1.1.3 常见的并行处理 1.2 GPU并行处理1.2.1 GPU与CPU并行处理的异同1.2.2 CPU的优化方式1.2.3 GPU的特点 1.3 环境搭建 CUDA与GPU编程 1. 并行处理与GPU体…

关于easy-es的聚合问题

es实体类&#xff1a; public class ChemicalES {IndexId(type IdType.CUSTOMIZE)private Long id;HighLightIndexField(fieldType FieldType.TEXT, analyzer "ik_max_word")private String name;IndexField(fieldType FieldType.KEYWORD)private List<Stri…

某60区块链安全之未初始化的存储指针实战一学习记录

区块链安全 文章目录 区块链安全未初始化的存储指针实战一实验目的实验环境实验工具实验原理实验过程 未初始化的存储指针实战一 实验目的 学会使用python3的web3模块 学会分析以太坊智能合约未初始化的存储指针漏洞 找到合约漏洞进行分析并形成利用 实验环境 Ubuntu18.04操…

Vue3 封装组件库并发布到npm仓库

一、创建 Vue3 TS Vite 项目 输入项目名称&#xff0c;并依次选择需要安装的依赖项 npm create vuelatest 项目目录结构截图如下&#xff1a; 二、编写组件代码、配置项和本地打包测试组件 在项目根目录新建 package 文件夹用于存放组件 &#xff08;以customVideo为例&a…

HTTPS攻击怎么防御?

HTTPS 简介 超文本传输安全协议&#xff08; HTTPS &#xff09;是一种通过计算机网络进行安全通信的传输协议。HTTPS 经由 HTTP 进行通信&#xff0c;但利用 SSL/TLS 来加密数据包。 HTTPS 开发的主要目的&#xff0c;是提供对网站服务器的身份认证&#xff0c;保护交换数据的…

【开源】基于Vue.js的数据可视化的智慧河南大屏

项目编号&#xff1a; S 059 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S059&#xff0c;文末获取源码。} 项目编号&#xff1a;S059&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示四、核心代码4.1 数据模块 …

基于遗传优化的多属性判决5G-Wifi网络切换算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 MATLAB2022a 3.部分核心程序 .......................................................................... %接收功率、网…

浅谈 Guava 中的 ImmutableMap.of 方法的坑

作者&#xff1a;明明如月学长&#xff0c; CSDN 博客专家&#xff0c;大厂高级 Java 工程师&#xff0c;《性能优化方法论》作者、《解锁大厂思维&#xff1a;剖析《阿里巴巴Java开发手册》》、《再学经典&#xff1a;《EffectiveJava》独家解析》专栏作者。 热门文章推荐&…