文章目录

  • 引子
  • 基本描述
  • 微分博弈的解
  • 微分博弈的值
  • 微分博弈和最优控制的对比
  • 总结

引子

关于微分博弈问题,先拿一个简单例子来说明。

比如说猫猫捉老鼠。当猫猫要抓老鼠时,一般都朝着老鼠逃跑的方向追赶,老鼠为了躲避猫猫的追击,会不断地改变自己的行动策略。比如速度时快时慢,逃避的方向也时而变化,避免让猫猫抓到自己。那么对于此时的猫猫来说,就要采取相应的追赶策略,才能成功抓住老鼠。

在这个过程中,猫猫和老鼠采取的不同追赶/逃避策略,即微分博弈中的博弈策略。

“微分”,体现于猫猫和老鼠的运动过程都是通过微分方程描述的。

“博弈”,或称“对策”,体现于自身具备的对策论基本特点,即拥有“局中人”、“策略”、“收益”三种要素。

基本描述

本文使用双方微分博弈来说明微分博弈的定义。

红蓝双方非零和微分博弈可表述为下列形式:

{ x ˙ = f ( x ( t ) , u ( t ) , v ( t ) , t ) , x ( t 0 ) = x 0 , \left \{\begin{matrix} \begin{aligned} &\dot{\boldsymbol{x}} = \boldsymbol{f} (\boldsymbol{x}(t),\boldsymbol{u}(t),\boldsymbol{v}(t),t), \\ &\boldsymbol{x}(t_0) = \boldsymbol{x}_0, \end{aligned} \end{matrix} \right. {​x˙=f(x(t),u(t),v(t),t),x(t0​)=x0​,​​

式中, t t t 为博弈时间, x ( t ) x(t) x(t) 为红蓝双方的状态变量, u ( t ) \boldsymbol{u}(t) u(t) 和 v ( t ) \boldsymbol{v}(t) v(t) 分别是甲乙双方的控制量, f \boldsymbol{f} f 为红蓝双方的非线性模型, t 0 t_0 t0​ 为博弈初始时刻, x 0 \boldsymbol{x}_0 x0​ 为博弈初值。

红蓝双方的目标函数可表示为如下形式:

J i ( u , v ) = Φ i ( x ( t f ) , t f ) + ∫ t 0 t f L i ( x ( t ) , u ( t ) , v ( t ) , t ) d t , \boldsymbol{J}_i (\boldsymbol{u},\boldsymbol{v}) = \Phi_i(\boldsymbol{x}(t_f),t_f) + \int^{t_f}_{t_0} L_i(\boldsymbol{x}(t),\boldsymbol{u}(t),\boldsymbol{v}(t),t) \text{d}t, Ji​(u,v)=Φi​(x(tf​),tf​)+∫t0​tf​​Li​(x(t),u(t),v(t),t)dt,

式中, i = R , B i=R,B i=R,B 分别表示红蓝双方, t f t_f tf​ 表示博弈终止时间, Φ i ( x ( t f ) , t f ) \Phi_i(\boldsymbol{x}(t_f),t_f) Φi​(x(tf​),tf​) 表示 Mayer 型目标函数,又称常值型目标函数; ∫ t 0 t f L i ( x ( t ) , u ( t ) , v ( t ) , t ) d t \int^{t_f}_{t_0} L_i(\boldsymbol{x}(t),\boldsymbol{u}(t),\boldsymbol{v}(t),t) \text{d}t ∫t0​tf​​Li​(x(t),u(t),v(t),t)dt 表示 Lagrange 型目标函数,又称积分型目标函数; Φ i ( x ( t f ) , t f ) + ∫ t 0 t f L i ( x ( t ) , u ( t ) , v ( t ) , t ) d t \Phi_i(\boldsymbol{x}(t_f),t_f) + \int^{t_f}_{t_0} L_i(\boldsymbol{x}(t),\boldsymbol{u}(t),\boldsymbol{v}(t),t) \text{d}t Φi​(x(tf​),tf​)+∫t0​tf​​Li​(x(t),u(t),v(t),t)dt 表示 Bolza 型目标函数,又称混合型目标函数。

在求解目标函数的过程中,红蓝双方都期望分别控制 u \boldsymbol{u} u 和 v \boldsymbol{v} v 使得己方目标函数最小。

这也是微分博弈中博弈双方的终极目标。

微分博弈的解

微分博弈的解是指,存在控制变量 u ∗ ( t ) ∈ U \boldsymbol{u}^*(t) \in \boldsymbol{U} u∗(t)∈U 和 v ∗ ( t ) ∈ V \boldsymbol{v}^*(t) \in \boldsymbol{V} v∗(t)∈V,使得对于控制变量 u ( t ) ∈ U \boldsymbol{u}(t) \in \boldsymbol{U} u(t)∈U 和 v ( t ) ∈ V \boldsymbol{v}(t) \in \boldsymbol{V} v(t)∈V 满足下列关系:

{ J 1 ( u ∗ , v ∗ ) ≤ J 1 ( u , v ∗ ) , J 2 ( u ∗ , v ∗ ) ≤ J 2 ( u ∗ , v ) , \left \{\begin{aligned} \boldsymbol{J}_1(\boldsymbol{u}^*,\boldsymbol{v}^*) \le \boldsymbol{J}_1(\boldsymbol{u},\boldsymbol{v}^*), \\ \boldsymbol{J}_2(\boldsymbol{u}^*,\boldsymbol{v}^*) \le \boldsymbol{J}_2(\boldsymbol{u}^*,\boldsymbol{v}), \end{aligned} \right. {J1​(u∗,v∗)≤J1​(u,v∗),J2​(u∗,v∗)≤J2​(u∗,v),​

上述式子的意思是,对于 J 1 \boldsymbol{J}_1 J1​ 来说,红方取控制量 u ∗ ( t ) \boldsymbol{u}^*(t) u∗(t),使得一切取除了 u ∗ ( t ) u^*(t) u∗(t) 之外的控制量得到的目标函数 J 1 \boldsymbol{J}_1 J1​ 都不会是最小的,所以控制量必须取 u ∗ ( t ) u^*(t) u∗(t) 方可。同理,对于 J 2 \boldsymbol{J}_2 J2​ 来说,蓝方取控制量 v ∗ ( t ) \boldsymbol{v}^*(t) v∗(t) ,使得一切除了 v ∗ ( t ) v^*(t) v∗(t) 之外的控制量得到的目标函数 J 2 \boldsymbol{J}_2 J2​ 都不会是最小的,所以控制量必须取 v ∗ ( t ) v^*(t) v∗(t) 才可以。

更进一步地,对于零和博弈来说,目标函数需要满足如下关系:

J 1 = J 2 = J ( u , v ) = Φ ( x ( t f ) , t f ) + ∫ t 0 t f L i ( x ( t ) , u ( t ) , v ( t ) , t ) d t , \boldsymbol{J}_1 = \boldsymbol{J}_2 = \boldsymbol{J}(\boldsymbol{u},\boldsymbol{v}) = \Phi(\boldsymbol{x}(t_f),t_f) + \int^{t_f}_{t_0} L_i(\boldsymbol{x}(t),\boldsymbol{u}(t),\boldsymbol{v}(t),t) \text{d}t, J1​=J2​=J(u,v)=Φ(x(tf​),tf​)+∫t0​tf​​Li​(x(t),u(t),v(t),t)dt,

而零和微分博弈的解则需要满足下述关系:

J ( u ∗ , v ) ≤ J ( u ∗ , v ∗ ) ≤ J ( u , v ∗ ) , \boldsymbol{J}(\boldsymbol{u}^*,\boldsymbol{v}) \le \boldsymbol{J}(\boldsymbol{u}^*,\boldsymbol{v}^*) \le \boldsymbol{J}(\boldsymbol{u},\boldsymbol{v}^*), J(u∗,v)≤J(u∗,v∗)≤J(u,v∗),

( u ∗ , v ∗ ) (\boldsymbol{u}^*,\boldsymbol{v}^*) (u∗,v∗) 称为微分博弈的鞍点解。

微分博弈的值

定义 V = J ( u ∗ , v ∗ ) V = \boldsymbol{J}(\boldsymbol{u}^*,\boldsymbol{v}^*) V=J(u∗,v∗) 为微分博弈值,并引入上、下 δ \delta δ 对策构成的序列对 G = ( G δ , G δ ) G=({G^{\delta}},{G_{\delta}}) G=(Gδ,Gδ​)。此处 δ = ( t f − t 0 ) / n \delta=(t_f-t_0)/n δ=(tf​−t0​)/n, n n n 是较大整数。

如果 V + = lim ⁡ δ → 0 V δ \boldsymbol{V}^{+}=\lim_{\delta \to 0}\boldsymbol{V}^\delta V+=limδ→0​Vδ 和 V − = lim ⁡ δ → 0 V δ \boldsymbol{V}^{-}=\lim_{\delta \to 0}V_\delta V−=limδ→0​Vδ​ 都存在且相等,则有微分博弈的值:

V = V + = V − , \boldsymbol{V} = \boldsymbol{V}^+ = \boldsymbol{V}^-, V=V+=V−,

那么,微分博弈的值又可以表示为:

V = min ⁡ u ∗ max ⁡ v ∗ J = max ⁡ v ∗ min ⁡ v ∗ J = J ( u ∗ , v ∗ ) . \boldsymbol{V} = \min_{\boldsymbol{u}^*} \max_{\boldsymbol{v}^*} \boldsymbol{J} = \max_{\boldsymbol{v}^*} \min_{\boldsymbol{v}^*} \boldsymbol{J} = \boldsymbol{J}(\boldsymbol{u}^*,\boldsymbol{v}^*). V=u∗min​v∗max​J=v∗max​v∗min​J=J(u∗,v∗).

微分博弈和最优控制的对比

微分对策可以被看作是由利益相反的双方进行控制的最优控制过程,即双边最优控制问题。文献1总结道:微分博弈和最优控制在1)运动方程、2)初始条件、3)终端条件、4)控制约束条件、5)状态向量、6)控制向量、7)最优控制性能指标泛函和微分博弈的收益、8)Hamilton函数定义、9)最优性必要条件九个方面是十分相似的。

但两者区别在于:

  1. 微分博弈的控制量可能有多个,例如是双方微分博弈的话,那么控制变量就有两个;如果是多方微分博弈的话,那么控制变量就是多个了。
  2. 微分博弈要寻找最大值中的最小值和最小值中的最大值,而最优控制则是求最大值或最小值。

总结

至此,便以给出性能指标、控制系统微分方程约束、边界约束和路径约束的数学描述。上述四部分完整定义了最优控制问题。

求解最优控制问题,也就是求解在满足上述三大类约束条件下使性能指标最小的优化问题。

欢迎通过邮件联系我:lordofdapanji@foxmail.com


  1. 是兆雄. 微分对策与最优控制[J]. 自然杂志, 1983(10): 733-740+800. ↩︎

数值法求解微分博弈问题(〇)——定义相关推荐

  1. 数值法求解最优控制问题(〇)——定义

    同步发布在这里:https://leilie.top/2022-07-01/Study-OPC 基本描述 本篇文章给出最优控制问题的完整描述. 最优控制问题可简述为:对于一个受控系统,在满足约束条件下 ...

  2. 数值法求解最优控制问题(四)——伪谱法

    写在前面 数值法求解最优控制问题(二)--打靶法介绍了两种不同配点思路的直接法,一种是打靶法,一种是配点法,本篇文章介绍配点法. 配点法中又包含 欧拉法: Runge-Kutta 法: Hermit- ...

  3. 数值法求解最优控制问题(二)——打靶法

    同步发布在这里:https://leilie.top/2022-07-02/Study-Shooting-Method-for-OCP 写在前面 上一篇文章里(数值法求解最优控制问题(一)--梯度法) ...

  4. 2021-01-13 Matlab求解微分代数方程 (DAE)

    Matlab求解微分代数方程 (DAE) 什么是微分代数方程? 微分代数方程是一类微分方程,其中一个或多个因变量导数未出现在方程中.方程中出现的未包含其导数的变量称为代数变量,代数变量的存在意味着不能 ...

  5. adams求微分方程c语言,ADAMS在求解微分方程组中的应用

    ADAMS 在求解微分方程组中的应用在求解微分方程组中的应用 众所周知 ADAMS 具有强大的结算功能,在求解动力学问题方面可谓得心应手.在此 我想介绍一下它在求解非线性微分方程组方面的应用. 在工程 ...

  6. 数值法求解最优控制问题(三)——多重打靶法

    同步发布在这里:https://leilie.top/2022-07-06/Study-Multiple-Shooting-Method-for-OCP 写在前面 在数值法求解最优控制问题(二)--打 ...

  7. 龙格库塔法解微分方程组的matlab程序,MATLAB实例源码教程:龙格库塔法求解微分方程组源代码实例.doc...

    MATLAB实例源码教程:龙格库塔法求解微分方程组源代码实例.doc MATLAB实例源码教程龙格库塔法求解微分方程组源代码实例题目用经典 Runge-Kutta方法求下列一阶微分方程组的近似解y1 ...

  8. Matlab求解微分方程组

    我们采用ode方法: (1)求解普通微分方程组:使用ode45方法 1. 创建一个函数文件eq2.m,在函数文件中描述这个解的微分方程组: %eq2.m文件 %描述微分方程组function dy=e ...

  9. matlab解二阶微分方程组,[微分方程组]急急急!用MATLAB按二阶龙格库塔法求解微分方程组,急用于毕业设计!...

    急急急!用MATLAB按二阶龙格库塔法求解微分方程组,急用于毕业设计! 问题补充:今天才发现自己之前做的一点都不对,17号就交论文了,我傻了,急死了!求各位大侠帮帮忙.谢谢!要求解的微分方程如图所示. ...

最新文章

  1. java tree json_treePanel json java后台
  2. 云原生落地难的五个痛点与解决方法
  3. Go 之父:聊聊我眼中的 Go 语言和环境
  4. Eclipse 浏览(Navigate)菜单
  5. Iterator(迭代器)--对象行为模式
  6. java的方法调用中分不清_java中不太清晰的知识点
  7. 剑指offer——复习1:二叉树三种遍历方式的迭代与递归实现
  8. 【图像分割】基于matlab粒子群优化指数熵图像分割【含Matlab源码 287期】
  9. 老主板BIOS不识别nvem固态硬盘,修改BIOS添加nvme驱动
  10. 选择Python科学计算发行版
  11. Visual Studio 2019设置透明背景图片
  12. 腾讯御安全之AI反病毒引擎白皮书
  13. 关于ArcGIS新建Person Geodatabase(.mdb)报错的问题
  14. h5调用支付宝 php支付源码,友价源码如何集成支付宝H5接口(即支付宝手机支付接口)...
  15. 微信编辑器实用小功能
  16. java计算机毕业设计南京市某物流公司管理信息系统源代码+数据库+系统+lw文档
  17. Ambient Occlusion 环境光遮蔽 后期处理系列4
  18. 北上深广领军,成都名列第五,武汉跌出前十,中国城市综合发展指标最新排名公布...
  19. 黑马程序员 网络编程2
  20. 查看移动光猫配置文件

热门文章

  1. python爬虫进阶-每日一学(滑块拼图)
  2. 改进YOLOv5系列:首发结合最新efficient Layer Aggregation Networks结构,高效的聚合网络设计,提升性能
  3. 【Joy of Cryptography 读书笔记】Chapter 1 一次性密码本(one-time pad)Kerckhoffs原则
  4. itextpdf截取pdf文件为新文件
  5. Arduino基础学习-声音信号输出
  6. 【渝粤题库】广东开放大学 财务会计(一) 形成性考核 (2)
  7. PHP的imagettftext方法中文乱码
  8. 傲梅一键还原,软件操作。
  9. Java项目:宠物医院管理系统设计和实现(java+Springboot+ssm+mysql+jsp+maven)
  10. python刷OJ入门(指导篇)