【管理运筹学】第 8 章 | 动态规划(1,多阶段决策过程与动态规划基本概念)

news2024/11/21 0:12:46

文章目录

  • 引言
  • 一、多阶段决策过程及实例
  • 二、动态规划的基本概念和方法
    • 2.1 动态规划的基本概念
  • 写在最后


引言

倒回来学动态规划,网络计划和排队论先放到后面吧。

动态规划是解决多阶段决策过程最优化问题的一种方法。该方法由美国数学家贝尔曼等人在 20 世纪 50 年代初提出。

动态规划可用于解决最优路径问题、资源分配问题、生产计划与库存问题、投资问题等。由于它独特的求解思路,常比线性规划或非线性规划方法更有效。

动态规划模型的分类,根据决策过程的时间参数是离散的还是连续的,过程的演变是确定的还是随机的,可以组合成离散确定型、连续随机型等 4 中类型。其中,离散确定型是最基本的,也是本系列文章主要介绍的问题。


一、多阶段决策过程及实例

在生产和科学实验中,有一类活动的过程,由于其特殊性,可将过程分为若干个相互联系的阶段,在它的每一个阶段都需要作出决策,从而使整个过程达到最好的活动效果。

因此,各个阶段决策的选取不是任意确定的,它依赖于当前面临的状态,又影响以后的发展。当各个阶段决策确定后,就组成了一个决策序列,因而也就决定了整个过程的一条活动路线。

这种把一个问题看作是一个前后关联具有链状结构的多阶段过程就称为多阶段决策过程,也称为序贯决策过程(如下图所示)。这种问题就称为多阶段决策问题

在这里插入图片描述
在多阶段决策问题中,各个阶段采取的决策,一般来说是与时间有关的,决策依赖于当前的状态,又随即引起状态的转移,一个决策序列就是在变化的状态中产生出来的,故有“动态”的含义。因此,把处理它的方法称为动态规划方法。

但是,一些与时间没有关系的静态规划(如线性规划、非线性规划等)问题,只要人为地引进“时间”因素,也可以把它视为多阶段决策问题,用动态规划方法去处理。

我们上一章在图论中,学习的最短路问题,就可以看成是多阶段决策问题,每个阶段都去寻找最短路。如下图,可以看成是一个 4 阶段决策问题。

在这里插入图片描述


二、动态规划的基本概念和方法

2.1 动态规划的基本概念

1.阶段(Stage)

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

上面提到的 4 阶段求最短路问题中,第一阶段包括(A, B1), (A, B2)。第四阶段包括(D1, E), (D2, E), (D3, E)。其余阶段以此类推。

在这里插入图片描述
北交大的书规定, k = 1 k=1 k=1 表示实际问题中的第 1 决策阶段。在一个 n n n 阶段决策问题中, k = n k=n k=n 表示最后一个决策阶段。

2.状态(State)

各阶段开始时的客观条件叫作状态。描述各阶段状态的变量称为状态变量,常用 s k s_k sk 表示第 k k k 阶段的状态变量,状态变量 s k s_k sk 的取值集合称为状态集合 S k S_k Sk

如上面最短路的例子中,第一阶段为状态 A ,第二阶段有两个状态:B1, B2 。状态变量集合 S 1 = { A } S_1=\{A\} S1={A} ,后面各阶段的状态集合分别为: S 2 = { B 1 , B 2 } , S 3 = { C 1 , C 2 , C 3 , C 4 } , S 4 = { D 1 , D 2 , D 3 } S_2=\{B1,B2\},S_3=\{C1,C2,C3,C4\},S_4=\{D1,D2,D3\} S2={B1,B2},S3={C1,C2,C3,C4},S4={D1,D2,D3}

在这里插入图片描述

动态规划的状态应具有如下性质:当某阶段状态给定以后,在这阶段以后的过程的发展不受这段以前状态的影响。也就是说,过程的过去历史只能通过当前状态去影响它未来的发展,这称为无后效性

如果所选定的变量不具备无后效性,就不能作为这个状态变量来构成动态规划模型。

3.决策和策略(Decision and Policy)

当各阶段的状态确定以后,就可以作出不同的决定(或选择),从而确定下一阶段的状态,这种决定称为决策。表示决策的变量称为决策变量,常用 u k ( s k ) u_k(s_k) uk(sk) 表示第 k k k 阶段当状态为 s k s_k sk 时的决策变量。

实际问题中,决策变量的取值往往限制在一定范围内,我们称此范围为允许决策集合,常用 D k ( s k ) D_k(s_k) Dk(sk) 表示第 k k k 阶段从状态 s k s_k sk 出发的允许决策集合,显然,有 u k ( s k ) ∈ D k ( s k ) u_k(s_k) \in D_k(s_k) uk(sk)Dk(sk)

例如,前面最短路问题图中,状态集合 S 2 = { B 1 , B 2 } S_2=\{B1,B2\} S2={B1,B2} ,从状态 B 1 B1 B1 出发,有 3 条路可走,即其决策集合为 D 2 ( B 1 ) = { C 1 , C 2 , C 3 } D_2(B_1)=\{C1,C_2,C_3\} D2(B1)={C1,C2,C3} ,如果走去 C 3 C3 C3 ,则此时决策变量可表示为 u 2 ( B 1 ) = C 3 u_2(B1)=C3 u2(B1)=C3

在这里插入图片描述

各段决策确定后,整个问题的决策序列就构成一个策略,用 p 1 , n ( u 1 , u 2 , ⋯   , u n ) p_{1,n}(u_1,u_2,\cdots,u_n) p1,n(u1,u2,,un) 表示。对每个实际问题,可供选择的策略有一定范围,称为允许策略集合,用 P P P 表示。使得整个问题达到最优效果的策略就是最优策略。

4.状态转移方程

动态规划中本阶段的状态往往是上一阶段决策的结果。如果给定了第 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 也就完全确定,它们的关系可用公式 s k + 1 = T k ( s k , u k ) s_{k+1}=T_k(s_k,u_k) sk+1=Tk(sk,uk) 表示,由于其表示了由 k k k 阶段到 k + 1 k+1 k+1 阶段的状态转移规律,所以称为状态转移方程。

前面的最短路问题中, s k + 1 = u k s_{k+1}=u_k sk+1=uk

在这里插入图片描述

5.指标函数

用于衡量所选定策略优劣的数量指标称为指标函数。一个 n n n 段决策过程中,从 1 到 n 叫作问题的原过程,对于任意一个给定的 k ( 1 ≤ k ≤ n ) k(1 \leq k \leq n) k(1kn) ,从第 k k k 阶段到第 n n n 阶段的过程叫作原过程的一个后部子过程。 V 1 , n ( s 1 , p 1 , n ) V_{1,n}(s_1,p_{1,n}) V1,n(s1,p1,n) 表示从初始状态 s 1 s_1 s1 采用策略 p 1 , n p_{1,n} p1,n 时原过程的效益值,而 V k , n ( s k , p k , n ) V_{k,n}(s_k,p_{k,n}) Vk,n(sk,pk,n) 表示在第 k k k 阶段状态为 s k s_k sk 采用策略 p k , n p_{k,n} pk,n 时,后部子过程的效益值。

最优指标记为 f k ( s k ) f_k(s_k) fk(sk) ,它表示从 k k k 阶段状态 s k s_k sk 采用最优策略 p k , n ∗ p^*_{k,n} pk,n 时,后部子过程的最优效益值。 f k ( s k ) f_k(s_k) fk(sk) V k , n ( s k , p k , n ) V_{k,n}(s_k,p_{k,n}) Vk,n(sk,pk,n) 间有关系: f k ( s k ) = V k , n ( s k , p k , n ∗ ) = o p t p k , n ∈ P k , n V k , n ( s k , p k , n ) f_k(s_k)=V_{k,n}(s_k,p^*_{k,n})=opt_{{p_{k,n}}\in P_{k,n}} V_{k,n}(s_k,p_{k,n}) fk(sk)=Vk,n(sk,pk,n)=optpk,nPk,nVk,n(sk,pk,n) 注: o p t opt opt 全称为 optimization ,表示最优。

k = 1 k=1 k=1 时, f 1 ( s 1 ) f_1(s_1) f1(s1) 就是从初始状态 s 1 s_1 s1 到全过程结束的整体最优函数。

拿前面的最短路问题举例,指标函数就是距离。比如在第二阶段,状态为 B 2 B2 B2 时, V B 2 , E V_{B_2,E} VB2,E 就是 B 2 B_2 B2 E E E 之间的可能走的某个距离, f 2 ( B 2 ) f_2(B_2) f2(B2) 表示 B 2 B_2 B2 E E E 之间的最短距离。

在这里插入图片描述


写在最后

光是基本概念的介绍,我就感受到强度了,不过没关系,反复理解,多花些时间,相信也是没问题的。

下一篇,我们来学习关于动态规划的基本思想。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网安之python基础作业(2-3)

目录 目录 前言 系列文章列表 网安之python基础学习作业(1) 思维导图 1,网安之python基础学习作业(2) 1.1,作业一: 1.1.1,题目 1.1.2,题解 1.2,作业二: 1.2,1,题目 1.2.2,题解 2,网安之python基础学习作业(3) 2.1,作业1 2.1…

【面向对象的三大基本特征与五大基本原则】

文章目录 面向对象的三大基本特征与五大基本原则一、三大基本特征:封装、继承、多态1、封装2、继承3、多态 二、五大基本原则1、单一职责原则(SRP)2、开放封闭原则(OCP)3、里氏替换原则(LSP)4、…

免费:CAD批量转PDF工具,附下载地址

分享一款CAD 批量转PDF、打印的工具插件。能自动识别图框大小、自动识别比例、自动编号命名。重点!重点!重点!自动将CAD的多张图纸一次性地、批量地转为PDF,或者打印。效果看下图: 适用环境: 32位系统 Auto…

前端JavaScript入门到精通,javascript核心进阶ES6语法、API、js高级等基础知识和实战 —— JS基础(二)

人生是旷野&#xff0c;不是轨道。 思维导图 一、运算符 1.1 赋值运算符 1.2 一元运算符 1.3 比较运算符 1.4 逻辑运算符 逻辑与&#xff0c;一假则假 逻辑或&#xff0c;一真则真 <!DOCTYPE html> <html lang"en"><head><meta charset&quo…

李沐机器学习入门

文章目录 1.数据的获取2.数据的爬取3.数据的标注3.1 半监督学习3.1.1 自学习算法3.1.2 人工标注数据3.1.3 弱监督学习 4.数据的预处理5. 数据的清理6. 数据的变换7.特征工程8.机器学习介绍8.1 决策树模型8.2 线性模型线性模型做回归线性模型做分类Softmax回归 8.3 小批量随机梯…

线性代数基础-行列式

一、行列式之前的概念 1.全排列&#xff1a; 把n个不同的元素排成一列&#xff0c;称为n个元素的全排列&#xff0c;简称排列 &#xff08;实际上就是我们所说的排列组合&#xff0c;符号是A&#xff0c;arrange&#xff09; 2.标准序列&#xff1a; 前一项均小于后一项的序列…

输入学生成绩,函数返回最大元素的数组下标,求最高分学生成绩(输入负数表示输入结束)

scanfscore()函数用于输入学生的成绩 int scanfscore(int score[N])//输入学生的成绩 {int i -1;do {i;printf("输入学生成绩:");scanf("%d", &score[i]);} while (score[i] > 0);return i; } findmax()用于寻找最大值 int findmax(int score[N…

【Spring】BeanName 的自动生成原理

&#x1f388;博客主页&#xff1a;&#x1f308;我的主页&#x1f308; &#x1f388;欢迎点赞 &#x1f44d; 收藏 &#x1f31f;留言 &#x1f4dd; 欢迎讨论&#xff01;&#x1f44f; &#x1f388;本文由 【泠青沼~】 原创&#xff0c;首发于 CSDN&#x1f6a9;&#x1f…

华为云云耀云服务器L实例评测|搭建Domain Admin环境监控公司网站的SSL证书,实现到期提醒

本文基于华为云云耀云服务器L实例下的场景体验开源软件Domain Admin的安装部署&#xff0c;实现SSL证书的到期提醒 目录 1、购买华为云耀云服务器L实例2、登录服务器2.1、重置密码2.2、连接服务器 3、安装Domain Admin3.1、检查Python3.2、检查pip3.3、安装Domain Admin3.4、启…

VUE之proxy配置实现跨域

什么是跨域 要了解跨域&#xff0c;首先得知道浏览器的同源策略。 同源策略&#xff1a;是由Netscape提出的一个安全策略&#xff0c;能够阻挡恶意文档&#xff0c;保护本地数据。它能限制一个源的文档或脚本对另一个源的交互&#xff0c;使得其它源的文档或脚本&#xff0c;…

皮克定理和多边形面积及应用

欢迎关注更多精彩 关注我&#xff0c;学习常用算法与数据结构&#xff0c;一题多解&#xff0c;降维打击。 皮克定理 皮克定理&#xff1a;皮克定理是指一个计算所有顶点坐标为整数的多边形面积公。该公式可以表示为Sab2&#xff0d;1&#xff0c;其中a表示多边形内部的坐标为…

Python list列表添加元素的3种方法

实际开发中&#xff0c;经常需要对​ Python 列表 ​进行更新&#xff0c;包括向列表中添加元素、修改表中元素以及删除元素。本节先来学习如何向列表中添加元素。 使用运算符可以将多个序列连接起来&#xff1b;列表是序列的一种&#xff0c;所以也可以使用进行连接&#xff0…

Linux配置成代理服务器

Linux配置成代理服务器 什么是代理服务器 把Linux配置成代理服务器 开放的代理服务器 升级需要账号密码的代理服务器 Linux系统使用代理服务器 临时通过代理访问 永久通过代理访问 Windows系统使用代理服务器 什么是代理服务器 代理服务器&#xff08;Proxy Server&am…

《动手学深度学习 Pytorch版》 4.5 权重衰减

4.5.1 范数与权重衰减 整节理论&#xff0c;详见书本。 4.5.2 高维线性回归 %matplotlib inline import torch from torch import nn from d2l import torch as d2l# 生成一些数据&#xff0c;为了使过拟合效果更明显&#xff0c;将维数增加到 200 并使用一个只包含 20 个样…

vue3中使用el-upload + tui-image-editor进行图片处理

效果如下 看之前请先看上一篇《vue3中使用组件tui-image-editor进行图片处理》中的 1、第一步安装 2、第二部封装组件 本篇只是在这基础上结合el-upload使用组件 3、第三步结合el-upload使用组件 <template><el-dialog:title"dialogTitle":modelValue&qu…

004-Windows下开发环境搭建

Windows下开发环境搭建 文章目录 Windows下开发环境搭建项目介绍版本控制工具Git 与 SVNWindow下安装Git Qt 开发工具静态编译Qt环境安装 串口模拟器比较工具SQLite 数据库查看小工具预告 关键字&#xff1a; Qt、 Qml、 开发环境、 Windows、 C 项目介绍 欢迎来到我们的 …

Elastic Universal Profiling™ 是一种连续分析解决方案,现已正式上市

作者&#xff1a;Israel Ogbole, Stephanie Boomsma 在软件无处不在且影响深远的世界中&#xff0c;效率的重要性不仅仅局限于业务范围。 高效的软件不仅有利于企业&#xff0c;而且有利于企业。 这对全球也有好处。 通过将计算效率作为核心目标&#xff0c;并为专业人员提供正…

WebGL光照介绍——平行光、环境光下的漫反射

目录 光照原理 光源类型 平行光 点光源 环境光 反射类型 漫反射 漫反射光颜色 计算公式 环境反射 环境反射光颜色 表面的反射光颜色&#xff08;漫反射和环境反射同时存在时&#xff09;计算公式 平行光下的漫反射 根据光线和法线方向计算入射角θ&#xff08;以便…

数据结构--哈希表,哈希函数(或者散列表、散列函数)

目录 哈希表的定义 处理冲突的方法--拉链法 散列查找 常见的散列函数&#xff08;构造哈希函数&#xff09; 除留余数法 直接定址法 数字分析法 平方取中法 处理冲突的方法--开放定址法 &#xff08;1&#xff09;线性探测法&#xff1a; &#xff08;2&#xff09…

笔记:Android 应用启动流程

1.点击图标&#xff0c;启动app 点击图标&#xff0c;实际是封装了一个 Intent 然后调用了 startActivity 方法 ComponentName componentName new ComponentName("包名", "activity 名称"); Intent intent new Intent(Intent.ACTION_MAIN); intent.set…