简介

在棒球比赛中,投球手和击球手进行一种混合策略的博弈。考虑下面的表,击球手如果预测投球手会投出快球,按照投球手实际投出的快球或是弧线球,他击球将分别的得到0.4分或0.2分。同样,如果击球手预测投球手将投出弧线球,而按照投球手实际投出的球是快球或是弧线球,击球手分别可以得到0.1分或0.3分。
显然,在一场比赛中,投球手希望击球手的平均得分最小,而击球手希望自己的评分得分最高。

击球手 投球手
快球 弧线球
快球 0.4 0.2
弧线球 0.1 0.3

对击球手的决策进行建模

首先考虑对击球手进行建模,击球手希望采取一种策略,可以是某种弧线球和快球的组合,使得他的击球平均分达到最高。
我们先定义以下变量:

A →\to 击球平均分
x →\to 猜测快球的比例
1-x →\to 猜测弧线球的比例

目标函数
击球手的目标是

maxA

\max A
约束
击球手面临着投球手的各种策略约束。例如投球手可以选择纯快球策略或纯弧线球策略。当然,这两种策略给击球手最大化平均分的能力施加了一个上限,即约束。
考虑投球手采取纯快球策略时,击球手这时的击球平均分不能超过此时对应的期望值,因此我们有约束:

A≤0.4x+0.1(1−x)

A \le 0.4x + 0.1(1-x)
同样,当投球手采取纯弧线球策略的时候,击球手的击球平均分同样不会超过此时对应的期望值,这时也有约束

A≤0.2x+0.3(1−x)

A \le 0.2x + 0.3(1-x)
因为击球手的猜测是一个概率,所以我们有

0≤x≤1

0 \le x \le 1
完整线性规划组合
组合起来,我们便有了击球手的下列优化方程

maxAs.t.A≤0.4x+0.1(1−x)A≤0.2x+0.3(1−x)0≤x≤1

\max A \\ s.t. \hspace{12em}\\ A \le 0.4x + 0.1(1-x) \\ A \le 0.2x + 0.3(1-x) \\ 0 \le x \le 1

求解击球手的决策模型

利用几何方法可以简单的得到我们想要的答案。

  • 当x=0x = 0,意味着击球手认为投球手会采取纯弧线球策略,因而他也会采用纯弧线球策略
  • 当x=1x = 1,意味着击球手认为投球手会采取纯快球策略,因而也是采取纯快球策略

将该线性规划所代表的图画出,如下:

我们可以看出,该线性规划的唯一最优解在交点 (0.5,0.25)(0.5, 0.25) 处取得,我们可以对此做出下列解释

A=0.25→A = 0.25 \to 击球平均分
x=0.5→x = 0.5 \to 击球手预测的快球比例
1−x=0.5→1 - x = 0.5 \to 击球手预测的弧线球比例

因此,击球手应当以50%50\%的概率猜测投球手会投出快球。如果击球手按照该方案进行击球,那么无论投球手采用纯弧线球策略还是纯快球策略,都可以得到0.25的分数,如果投球手采用混合策略进行投球。我们可以假设投球手以概率yy投出快球,那么将以1−y1-y的概率投出弧线球,由于投球手无论是投出何种球,击球手的分数都是0.25。
所以无论投球手采取何种策略进行投球,当击球手按照该方案进行击球,都能保证得到0.25的均分。

敏感性分析

击球手的线性规划图不仅对于击球手有重要信息,对于投球手也同样头重要的信息。

假设投球手观察到击球手猜测快球的概率低于 50%50\%,例如图中的A点所示的 25%25\%,那么投球手就该意识到,他应该采用图中B点的策略对击球手进行惩罚,使其平均分降至0.25以下。类似的,当击球手预测弧线球的概率大于 50%50\%时,投球手就可以改用图中D点所示的弧线球策略或在混合策略中增大弧线球的比例,对击球手进行惩罚。
这是显而易见的,当击球手预测快球概率比较低时,会更多的采用弧线球的击法,这时投球手就可以增大快球的比例,降低其分数。

对投球手的决策进行建模

同样的,我们需要考虑投球手的决策。我们要探求投球手的投球策略,以降低击球平均分。我们依旧定义以下变量:

A →\to 击球平均分
y →\to 投出快球的比例
1-y →\to 投出弧线球的比例

目标函数
投球手的目标函数是

minA

\min A
约束
对于击球手,他有可能猜中全部的快球或弧线球。因此投球手同样有两个约束函数,该约束函数限定了投球手最小化击球平均分的下限。
首先,当投球手采取纯快球策略的时候,这时的击球平均分不会低于击球手采取纯快球策略时所对应的期望值,即:

A≥0.4y+0.2(1−y)

A \ge 0.4y + 0.2(1-y)
同样的,当投球手采取纯弧线球策略的时候,这时的击球均分不会低于击球手采取纯弧线球策略时所对应的期望值,即:

A≥0.1y+0.3(1−y)

A \ge 0.1y + 0.3(1-y)
因为投球手投出的球的比例是一个概率,所以我们有下列约束:

0≤y≤1

0 \le y \le 1
完整的线性规划

minAs.t.A≥0.4y+0.2(1−y)A≥0.1y+0.3(1−y)0≤y≤1

\min A \\ s.t. \hspace{12em}\\ A \ge 0.4y + 0.2(1-y) \\ A \ge 0.1y + 0.3(1-y) \\ 0 \le y \le 1

求解投球手的决策模型

同样利用几何方法可以简单的得到我们想要的答案。

  • y=0y = 0 代表了投球手采取纯弧线球策略
  • y=1y = 1 代表了投球手采取蠢快球册率

我们将该线性规划作图,如下:

由图我们可以看出,若投球手希望最小化击球平均分的最优解在交点(0.25,0.25)(0.25, 0.25)处取得
我们对其做出下列解释

A=0.25→A = 0.25 \to 击球平均分
y=0.5→y = 0.5 \to 投球手应该投出快球的比例
1−x=0.5→1 - x = 0.5 \to 投球手应该投出弧线球的比例

因此,为了保证分数最低,投球手可以明确一点,他应该按照 25%25\% 的概率投出快球以及75%75\%的概率投出弧线球。当投球手按照此方案进行时,不论击球手以何种方案击球,都能保证击球平均分为0.25分。

敏感性分析

如同击球手的策略有一定的敏感性,投球手的策略也有一定的敏感性。投球手的策略分析对于击球手同样拥有重要的意义。

如上图所示,当击球手观察到投球手投出的快球的比例低于25%25\%的时候,例如只有上图A点所示的10%10\%,也就是说,投球手比最优解投出了更多的弧线球,这时候,击球手就应该采取图中B点所示的弧线球策略对其进行惩罚,以提高击球平均分。

完全冲突博弈的线性规划模型之混合策略建模相关推荐

  1. 数学建模——线性规划模型详解Python代码

    数学建模--线性规划模型详解Python代码 标准形式为: min z=2X1+3X2+x s.t x1+4x2+2x3>=8 3x1+2x2>=6 x1,x2,x3>=0 上述线性 ...

  2. 【数学建模】线性规划模型MATLAB求解(最优化)

    文章目录 一.算法介绍 二.适用问题 三.算法总结 1.可以转化为线性规划的问题 四.应用场景举例 1. 例1.1: 2. 解: 2. 例1.2: 2. 解: 五.MATLAB操作 六.实际案例(投资 ...

  3. 数学建模 线性规划模型基本原理

    线性规划问题 例1.1 可行解&可行域 matlab标准形式及软件求解 标准形式: C称为价值向量 如果是求max,加一个负号-c^T 如果是求Ax>=b,加一个负号-Ax<=b ...

  4. 线性规划模型详解及实际应用反思

    一.线性规划的定义 线性规划一般用于求解最优化问题.线性规划问题是在一组线性约束条件的限制下,求一线性目标函数最大或最 小的问题.该方法在建立方程时非常简单快速,但不利于人工计算.但随着计算机技术的发 ...

  5. 数学规划模型(二):线性规划模型

    接上:数学规划模型(一) 线性规划模型 线性规划模型的一般形式 线性规划建模示例 线性规划模型的一般形式 线性规划模型所解决的问题具有以下共同特征: (1)每个问题都可用一组决策变量 表示某一方案,决 ...

  6. 【数学建模】12 线性规划模型的求解方法

    目录 1 图解法 2 MATLAB函数求解方法 3 Lingo法 4 课后习题 1 图解法 (1)有线性规划模型 • 目标函数 • 约束条件 在二元的约束条件画出来是直线,三元的约束条件画出来是一个平 ...

  7. 计算机软件求解线性规划模型--Python

    线性规划简介 线性规划(Linear programming,简称LP),是运筹学中研究较早.发展较快.应用广泛.方法较成熟的一个重要分支,它是辅助人们进行科学管理的一种数学方法.研究线性约束条件下线 ...

  8. 旅行商问题(Traveling Salesman Problem,TSP)的+Leapms线性规划模型及c++调用

    知识点 旅行商问题的线性规划模型 旅行商问题的+Leapms模型及CPLEX求解 C++调用+Leapms 旅行商问题 旅行商问题是一个重要的NP-难问题.一个旅行商人目前在城市1,他必须对其余n-1 ...

  9. 线性规划模型--解决投资问题

    线性规划模型一般程序表示 因为是求解最大值问题,而Matlab只提供了最小值求解,因此要求最大值问题,需要两边同时变号,将最大值问题转化为最小值问题求解. 问题引入 此处 ui应为s1 可以看到加上银 ...

最新文章

  1. 【数据分析学习】线性降维方法
  2. SpringCloud Gateway 快速入门_01
  3. Redis都不懂?就别去面试了!聊聊我的Redis新专栏「视频版」
  4. CSS 类选择器详解——CSS 多类选择器
  5. 创建第一个RMI应用
  6. U-最小公倍数 递归
  7. 阿里云商标注册服务及常见问题
  8. log4j日志输出配置
  9. CNN卷积层里的多输入多输出通道channel 动手学深度学习v2 pytorch
  10. Swift 5.1 温故而知新笔记系列之第七天
  11. GYM 101086 B.Brother Louie(dfs)
  12. java栅格化,UI设计要不要用栅格化布局?
  13. 机器学习实战-预测数值型数据:回归
  14. android 静音与振动
  15. 大数相减(解析国密sm2_bn_sub算法与自定义算法)
  16. 在“颜值至上”的互联网时代,我们是否需要美颜SDK?
  17. 板内盘中孔设计狂飙,细密间距线路中招
  18. 异步AsyncTask,怎样停止AsyncTask和Thread
  19. Win8输入法不见了怎么办
  20. 几幅图教你区分数字地、模拟地、电源地、单点接地

热门文章

  1. 关于POSTMAN无法安装的解决方法
  2. 初中数学抽象教学的案例_初中数学情景教学案例
  3. QT 遍历一个文件夹下的所有图片。
  4. Canny 边缘检测
  5. 移动终端基带芯片的基本架构介绍之二(移动终端中的基带芯片)
  6. 浏览器开发者工具控制台重播教程
  7. Python自学——语法基础
  8. Fritzing软件绘制Arduino面包板接线图传感器模块库文件256
  9. Jquery常用的22条命令
  10. ubuntu 安装中文字库_Ubuntu安装中文字体及使其生效