优化方法理论合集(10)——贝尔曼动态管理方法
目录
- 1. 问题描述
- 2. 贝尔曼最优原理
- 3. 贝尔曼方程
- 4. 求解步骤
- 5. 例题
1. 问题描述
给出如下条件
- 数学模型
x˙i=fi(t,x⃗,u⃗)\dot x_i = f_i \left( t, \vec x, \vec u \right) x˙i=fi(t,x,u)其中dim(x⃗)=n,dim(u⃗)=m\dim \left( \vec x \right) = n, \dim \left( \vec u \right) = mdim(x)=n,dim(u)=m,且
x⃗=[x1,x2,⋯,xn],u⃗=[u1,u2,⋯,um]\vec x = \left[x_1, x_2, \cdots, x_n \right], \vec u = \left[ u_1, u_2, \cdots, u_m \right] x=[x1,x2,⋯,xn],u=[u1,u2,⋯,um] - 性能指标
J=∫t0tkF(x⃗,u⃗)dt→minJ = \int _{t_0} ^{t_k} F \left( \vec x, \vec u \right) dt \rightarrow \min J=∫t0tkF(x,u)dt→min其中t0t_0t0已知,tkt_ktk未知。须注意:这里JJJ中只含有x⃗,u⃗\vec x, \vec ux,u,不含有时间ttt。 - 边界条件
Start={x1(t0)=x10x2(t0)=x20⋮xn(t0)=xn0End={x1(tk)=x1kx2(tk)=x2k⋮xn(tk)=xnkStart = \begin{cases} x_1 (t_0) = x_{10} \\ x_2 (t_0) = x_{20} \\ \vdots \\ x_n (t_0) = x_{n0} \end{cases} \\ End = \begin{cases} x_1 (t_k) = x_{1k} \\ x_2 (t_k) = x_{2k} \\ \vdots \\ x_n (t_k) = x_{nk} \end{cases} Start=⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧x1(t0)=x10x2(t0)=x20⋮xn(t0)=xn0End=⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧x1(tk)=x1kx2(tk)=x2k⋮xn(tk)=xnk - 控制量uuu可以为任意状态,可以有限制,可以没有限制。
但需要注意:u⃗=u⃗(x⃗)\vec u = \vec u \left( \vec x \right)u=u(x)是状态量x⃗\vec xx的函数,不再是时间ttt的函数。
2. 贝尔曼最优原理
如上图所示,整条轨迹分成了左右两端,t∈[t0,t0+Δt]t \in \left[ t_0, t_0 + \Delta t \right]t∈[t0,t0+Δt]和t∈[t0+Δt,tk]t \in \left[ t_0 + \Delta t, t_k \right]t∈[t0+Δt,tk]。无论在第一段中使用何种控制、沿着何种轨迹运动,在第二段中,在最优控制作用下,轨迹应当沿着最优轨迹线运动,并到达期望状态。
若Δt→0\Delta t \rightarrow 0Δt→0,那么在整个时间区间上,轨迹就变成了最优轨迹。
从性能指标表达式上可以看出,JJJ是和x,ux, ux,u均相关的量。如果先只找出关于xxx的最优指标,而假定uuu不变,那么性能指标表达式可以写成
S(x⃗)=minu∫t0tkF(x⃗,u⃗)dt(1)S \left( \vec x \right) = \min_u \int _{t_0} ^{t_k} F \left( \vec x, \vec u \right) dt \tag{1} S(x)=umin∫t0tkF(x,u)dt(1)即:SSS是x⃗\vec xx的函数。
根据上图,可以把积分(1)写成2段:
∫t0tkF(x⃗,u⃗)dt=∫t0t0+ΔtF(x⃗,u⃗)dt+∫t0+ΔttkF(x⃗,u⃗∘)dt\int _{t_0} ^{t_k} F \left( \vec x, \vec u \right) dt = \int _{t_0} ^{t_0 + \Delta t} F \left( \vec x, \vec u \right) dt + \int _{t_0 + \Delta t} ^{t_k} F \left( \vec x, \vec u^{\circ} \right) dt ∫t0tkF(x,u)dt=∫t0t0+ΔtF(x,u)dt+∫t0+ΔttkF(x,u∘)dt须注意:根据贝尔曼最优原理的表述,第二段中的uuu应当是最优控制u∘u^{\circ}u∘,而第一段中的uuu不是最优控制。
既然第二段中的uuu是最优控制u∘u^{\circ}u∘,那么第二段可以写成
∫t0+ΔttkF(x⃗,u⃗∘)dt=S(x⃗(t0+Δt))\int _{t_0 + \Delta t} ^{t_k} F \left( \vec x, \vec u^{\circ} \right) dt = S \left( \vec x \left( t_0 + \Delta t \right) \right) ∫t0+ΔttkF(x,u∘)dt=S(x(t0+Δt))对于SSS有如下性质:
- SSS是连续平滑的微分方程;
- SSS的表达式未知。
- 梯度性质:
∂S∂x⃗=[∂S∂x1,∂S∂x2,⋯,∂S∂xn](2)\frac{\partial S}{\partial \vec x} = \left[ \frac{\partial S}{\partial x_1}, \frac{\partial S}{\partial x_2}, \cdots, \frac{\partial S}{\partial x_n} \right] \tag{2} ∂x∂S=[∂x1∂S,∂x2∂S,⋯,∂xn∂S](2)
3. 贝尔曼方程
如果∂S∂xi\frac{\partial S}{\partial x_i}∂xi∂S存在,那么具有贝尔曼方程
minu[F(x⃗,u⃗)+∂S∂x⃗⋅f⃗(x⃗,u⃗)]=0(3)\min_u \left[ F \left( \vec x, \vec u \right) + \frac{\partial S}{\partial \vec x} \cdot \vec f \left( \vec x, \vec u \right) \right] = 0 \tag{3} umin[F(x,u)+∂x∂S⋅f(x,u)]=0(3)即
minu[F(x⃗,u⃗)+∑i=1n∂S∂xi⋅fi(x⃗,u⃗)]=0(4)\min_u \left[ F \left( \vec x, \vec u \right) + \sum _{i=1} ^n \frac{\partial S}{\partial x_i} \cdot f_i \left( \vec x, \vec u \right) \right] = 0 \tag{4} umin[F(x,u)+i=1∑n∂xi∂S⋅fi(x,u)]=0(4)式(4)是性能指标极值存在的必要条件。
须注意,对于SSS有
S(x⃗(tk))=0(5)S \left( \vec x (t_k ) \right) = 0 \tag{5} S(x(tk))=0(5)
4. 求解步骤
利用贝尔曼方程来求出最优控制u∘u^{\circ}u∘:
∂[F(x⃗,u⃗)+∑i=1n∂S∂xi⋅fi(x⃗,u⃗)]∂u⃗=0(6)\frac{\partial \left[ F \left( \vec x, \vec u \right) + \sum _{i=1} ^n \frac{\partial S}{\partial x_i} \cdot f_i \left( \vec x, \vec u \right) \right]}{\partial \vec u} = 0 \tag{6} ∂u∂[F(x,u)+∑i=1n∂xi∂S⋅fi(x,u)]=0(6)仍然需要强调,这里得出的是u⃗=u⃗∘(x⃗)\vec u = \vec u ^{\circ} (\vec x )u=u∘(x),是xxx的函数,不是ttt的函数。
再将得出的u∘(x⃗)u^{\circ}(\vec x)u∘(x)代入(4)式即可得出最优轨迹x∘x^{\circ}x∘。
5. 例题
给出如下例题
{x˙1=x2x˙2=ux⃗(tk)=[0,0]J=∫t0tk(x12+x22+u2)dt→mint0=0\begin{cases} \dot x_1 = x_2 \\ \dot x_2 = u \end{cases} \\ \vec x (t_k) = [0, 0] \\ J = \int _{t_0} ^{t_k} \left( x_1^2 + x_2^2 + u^2 \right) dt \rightarrow \min \\ t_0 = 0 {x˙1=x2x˙2=ux(tk)=[0,0]J=∫t0tk(x12+x22+u2)dt→mint0=0
解:□\square \qquad□写出贝尔曼方程
minu[F(x⃗,u⃗)+∑i=1n∂S∂xi⋅fi(x⃗,u⃗)]=F+∂S∂x1f1+∂S∂x2f2=(x12+x22+u2)+∂S∂x1x2+∂S∂x2u=0\begin{aligned} \min_u \left[ F \left( \vec x, \vec u \right) + \sum _{i=1} ^n \frac{\partial S}{\partial x_i} \cdot f_i \left( \vec x, \vec u \right) \right] &= F + \frac{\partial S}{\partial x_1} f_1 + \frac{\partial S}{\partial x_2} f_2 \\ &= \left( x_1^2 + x_2^2 + u^2 \right) + \frac{\partial S}{\partial x_1} x_2 + \frac{\partial S}{\partial x_2} u \\ &= 0 \end{aligned} umin[F(x,u)+i=1∑n∂xi∂S⋅fi(x,u)]=F+∂x1∂Sf1+∂x2∂Sf2=(x12+x22+u2)+∂x1∂Sx2+∂x2∂Su=0代入(6)式
∂[(x12+x22+u2)+∂S∂x1x2+∂S∂x2u]∂u=0\frac{\partial \left[ \left( x_1^2 + x_2^2 + u^2 \right) + \frac{\partial S}{\partial x_1} x_2 + \frac{\partial S}{\partial x_2} u \right]}{\partial u} = 0 ∂u∂[(x12+x22+u2)+∂x1∂Sx2+∂x2∂Su]=0即
2u+∂S∂x2=0⟹u∘=−12∂S∂x22u + \frac{\partial S}{\partial x_2} = 0 \\ \Longrightarrow u ^{\circ} = - \frac{1}{2} \frac{\partial S}{\partial x_2} 2u+∂x2∂S=0⟹u∘=−21∂x2∂S可见u∘u^{\circ}u∘与SSS对x2x_2x2的导数有关。
将u∘u^{\circ}u∘代入到贝尔曼方程中
(x12+x22+u2)+∂S∂x1x2+∂S∂x2u=[x12+x22+(−12∂S∂x2)2]+∂S∂x1x2+∂S∂x2(−12∂S∂x2)=0\begin{aligned} \left( x_1^2 + x_2^2 + u^2 \right) + \frac{\partial S}{\partial x_1} x_2 + \frac{\partial S}{\partial x_2} u &= \left[ x_1^2 + x_2^2 + \left( - \frac{1}{2} \frac{\partial S}{\partial x_2} \right)^2 \right] + \frac{\partial S}{\partial x_1} x_2 + \frac{\partial S}{\partial x_2} \left( - \frac{1}{2} \frac{\partial S}{\partial x_2} \right) = 0 \end{aligned} (x12+x22+u2)+∂x1∂Sx2+∂x2∂Su=[x12+x22+(−21∂x2∂S)2]+∂x1∂Sx2+∂x2∂S(−21∂x2∂S)=0化简得
x12+x22−14(∂S∂x2)2+∂S∂x1x2=0(7)x_1^2 + x_2^2 - \frac{1}{4} \left( \frac{\partial S}{\partial x_2} \right) ^2 + \frac{\partial S}{\partial x_1 }x_2 = 0 \tag{7} x12+x22−41(∂x2∂S)2+∂x1∂Sx2=0(7)具有平方形式。令SSS亦具有平方形式:
S(x⃗)=C1x12+C2x1x2+C3x22S \left( \vec x \right) = C_1 x_1^2 + C_2 x_1 x_2 + C_3 x_2^2 S(x)=C1x12+C2x1x2+C3x22则
{∂S∂x1=2C1x1+C2x2∂S∂x2=2C3x2+C2x1\begin{cases} \frac{\partial S}{\partial x_1} = 2C_1 x_1 + C_2 x_2 \\ \frac{\partial S}{\partial x_2} = 2C_3 x_2 + C_2 x_1 \end{cases} {∂x1∂S=2C1x1+C2x2∂x2∂S=2C3x2+C2x1代入(7)式解得
{C2=2,−2C3=3,−3C1=3,−3\begin{cases} C_2 = 2, -2 \\ C_3 = \sqrt 3, - \sqrt 3 \\ C_1 = \sqrt 3, - \sqrt 3 \end{cases} ⎩⎪⎨⎪⎧C2=2,−2C3=3,−3C1=3,−3即
S(x⃗)=3x12+2x1x2+3x22或−3x12+2x1x2−3x22S \left( \vec x \right) = \sqrt 3 x_1^2 + 2 x_1 x_2 + \sqrt 3 x_2^2 \quad 或 \quad- \sqrt 3 x_1^2 + 2 x_1 x_2 - \sqrt 3 x_2^2 S(x)=3x12+2x1x2+3x22或−3x12+2x1x2−3x22则
u∘=−12∂S∂x2=−3x2−x1或3x2−x1u^{\circ} = - \frac{1}{2} \frac{\partial S}{\partial x_2} = - \sqrt 3 x_2 - x_1 \quad 或 \quad \sqrt 3 x_2 - x_1 u∘=−21∂x2∂S=−3x2−x1或3x2−x1
优化方法理论合集(10)——贝尔曼动态管理方法相关推荐
- 优化方法理论合集(13)——可行域
目录 1. 可行域定义 2. 问题描述 3. 解题 4. 凯里指标 1. 可行域定义 设具有初始状态x⃗(t0)\vec x(t_0)x(t0),时间区间t∈[t0,tk=T]t \in [t_0, ...
- 文本分析合集,文本向量处理的方法jieba,对文本的特征工程之TfidfVectorizer以及结合TruncatedSVD,WordCloud词云图展示
文本分析合集,文本向量处理的方法jieba,对文本的特征工程之TfidfVectorizer以及结合TruncatedSVD,WordCloud词云图展示 对于一列文本我们需要对其进行操作的话首先要进 ...
- Ubuntu+Xen+Virt-manager创建全虚拟机化虚拟机(HVM)方法大合集 | CSDN 创作打卡
Ubuntu+Xen+Virt-manager创建全虚拟机化虚拟机(HVM)方法大合集 环境 安装Xen 使用virt-manager安装Xen虚拟机 检查libvirtd服务状态 安装其他工具 安装 ...
- 值得收藏!基于激光雷达数据的深度学习目标检测方法大合集(下)
作者 | 黄浴 来源 | 转载自知乎专栏自动驾驶的挑战和发展 [导读]在近日发布的<值得收藏!基于激光雷达数据的深度学习目标检测方法大合集(上)>一文中,作者介绍了一部分各大公司和机构基于 ...
- 研究百度下拉360下拉搜狗下拉神马下拉头条下拉抖音下拉的优化算法(合集帖)
研究百度下拉360下拉搜狗下拉神马下拉头条下拉抖音下拉的优化算法(合集) 这个标题有点长哈,哈哈哈哈,看的是不是有点懵呢?缩减一点,就是研究百度.360.搜狗.神马.头条.抖音下拉词框的优化算法. 开 ...
- 惜时间_珍惜时间作文合集10篇
珍惜时间作文合集10篇 在学习.工作或生活中,大家都经常看到作文的身影吧,作文一定要做到主题集中,围绕同一主题作深入阐述,切忌东拉西扯,主题涣散甚至无主题.那要怎么写好作文呢?下面是小编为大家收集的珍 ...
- 思维导图模板合集及绘制思维导图方法介绍
思维导图的绘制除了手绘思维导图对框架进行搭建使用之外,还可以选择套用模板进行编辑使用,这两种方法使用起来都很方便并且操作简单,下面是分享的思维导图模板合集以及利用迅捷画图在线网站编辑思维导图操作方法介 ...
- 小学阅读方法六种_小学语文重难点|阅读理解的解答技巧+方法(合集)
阅读理解,一直是小学阶段孩子们除写作以外最头疼的部分,很多孩子每次考虑的时候阅读理解都会被扣掉大量的分数.那么孩子们应该如何更好的进行阅读和理解呢?今天我们就来为孩子们分享一些关于小学语文阅读理解的解 ...
- 史上最全因果推断合集-10(滴滴的国际化外卖团队智能补贴实战)
桔妹导读:随着因果推断理论体系(Casual Inference)的建立和补充,智能营销/智能补贴近年来在业界有了越来越多的落地成果.滴滴的国际化外卖团队DiDi Food自2020年上半年起开始推进 ...
最新文章
- with语句和上下文管理器
- Class.forName( )你搞懂了吗?——转
- matlab--矩阵运算
- Redis专题-缓存穿透、缓存雪崩、缓存击穿
- fedora17的gnome3桌面美化
- mysql多数据源切换_CI 多数据库操作 切换数据库
- virtual.lab motion用表达式控制载荷
- java循环输出_Java实现excel导出(内容循环多个)
- 虚拟服务器新建桌面池,VMware vSphere 服务器虚拟化之二十三 桌面虚拟化之建立手动虚拟桌面池...
- PyTorch: 各种图像格式相互转化
- 官网消息【iPlayer外挂字幕】功能开发中!有图
- php 实用 函数,PHP实用函数9
- 谁能告诉我,这个所谓的CSDN下载码下载码有什么用?没用?!
- 计算机软件uml,[计算机软件及应用]UML.ppt
- 利用OD去软件弹窗广告教程-[WinRAR_3.9]为例
- Swing Copters摇摇欲坠游戏再次风靡全球,再次虐心,摔手机
- 小孩上楼梯的方式的种类
- 基于微信小程序的宿舍管理平台
- ios 自定义键盘的按键音效和震动效果
- UsageStatsService之坑:一个XML解析异常导致的开机动画死循环
热门文章
- C#实现调取钉钉考勤接口的功能
- 利用adobe acrobat裁剪PDF
- 跟我学Spring3-开涛-笔记
- 助教日志_【沈阳航空航天大学软件工程 1,2 班】前六周排行榜
- js/javaScript通过setTimeout做动画和需要注意的点
- 直播电商平台开发,点击让窗口抖动动画效果
- Asp.NET Core+ABP框架+IdentityServer4+MySQL+Ext JS之部署到Linux
- phpstorm 配置 Xdebug 调试
- dPCA 二面角主成分分析
- rimraf : 无法加载文件,‘set-executionpolicy‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。