详解矩阵博弈

基本概念

  • 通俗来说,矩阵博弈即为可以描述为矩阵的博弈
  • 当在一场博弈中,有两个玩家,每个玩家有两种可能的动作。在两个玩家同时做出动作后,可以获得相应的收益。将所获得的收益记录在回报矩阵中,就得到了矩阵博弈的表格形式。并且将只有两个玩家的矩阵博弈称为双人矩阵博弈
  • 矩阵博弈可用一个元组(n,A1,...,An,R1,...,Rn)描述,n是智能体个数Ai是智能体i有效行为的离散空间(即Ai是智能体i有效行为的集合),Ri是智能体i所获得的回报函数(通常表现为一个表格)。Ri取决于所有玩家在联合行为空间A1*...*An中的联合行为,联合行为获得联合回报。
  • 智能体重复选择动作,获得最优策略,以期获得最大收益。
  • 矩阵博弈中的玩家策略实际上是玩家行为集的概率分布
  • 矩阵博弈能够获得两种策略:
    • 纯策略确定性选择行为的策略。智能体在每次选择动作时,都会选择一个特定的动作,选择该特定动作的概率为1;选择其他行为的概率为0;
    • 混合策略基于智能体所有可能行为的概率分布选择行为的策略。智能体以特定概率选择动作,选择每个动作的概率可能一致,可能不一致,但都在[0,1]范围内,且策略空间中所有策略概率之和为1。

矩阵博弈实例

一、囚徒困境

在囚徒困境博弈中,有两名囚徒被分别关在不同的房间里,同时被警察盘问。两名囚徒之间的博弈有以下几种情况:

  1. 若两名囚徒同时坦白,则双方都被判八年;
  2. 若一名囚徒坦白,另一名囚徒抵赖,坦白方无罪释放,抵赖方被判十年;
  3. 若两名囚徒同时抵赖,则双方都被判一年。

将这两名囚徒之间的博弈用回报矩阵表示出来:

囚徒困境博弈
囚徒A/囚徒B坦白抵赖
坦白-8,-80,-10
抵赖-10,0-1,-1

正常来说,两个囚徒如果都选择抵赖,那么双方都可以获得较轻的惩罚,被判一年。但在现实情况中,每个囚徒都不知道对方是选择抵赖还是坦白。若囚徒A选择坦白,要么被判8年,要么可以无罪释放;若囚徒A选择抵赖,要么被判10年,要么被判1年。在这样一种情况下,囚徒A为了防止出现被判十年的结果,就会选择相对稳妥的坦白,毕竟选择坦白,最差也就只会被判8年,甚至运气好还有无罪释放的机会。因此在重复选择动作的情况下,囚徒A就会选择能够让自己相对安全的坦白动作。而对于囚徒B也是一样的。因此在囚徒困境博弈中,能让双方都能获得相对较轻惩罚的策略即为(坦白,坦白)。

若一个具有机器学习能力的智能体不断重复玩这个游戏,那么就会学习到在任何情况下,都以1的概率选择坦白,以0的概率选择抵赖,这就是纯策略博弈。纯策略意味着在任何情况下都选择同样的行为。

二、猜硬币博弈

在该游戏中,两名玩家各持一枚硬币,各自选择显示正面还是反面。两名玩家之间的博弈有以下几种情况:

  1. 若两名玩家的硬币同时显示为正,或为反,则玩家1获胜并得到回报1,玩家2输并得到回报-1
  2. 若两名玩家的硬币一正一反,则玩家2获胜并得到回报1,玩家1输并获得回报-1

将这两名玩家之间的博弈用回报矩阵表示出来:

猜硬币回报表
玩家1/玩家2正面反面
正面1,-1-1,1
反面-1,11,-1

游戏中,每玩一局都有一个玩家会赢,一个玩家会输,这称为零和矩阵博弈。对于零和博弈游戏,意味着赢家的收益与输家的损失相同

若玩家1选择显示正面,有0.5的概率会赢,0.5的概率会输。若玩家1一直选择显示正面,即选择正面的概率为1,很快就会被玩家2发现,那么玩家2就会开始显示反面,玩家1继而也意识到一直在输,从而也会开始显示反面。若用玩家选择显示正面反面的频率来代表概率,则玩家1选择显示正面反面的概率为:(0.5,0.5)。事实上,每个玩家都应该每次以0.5的概率选择显示正面,以0.5的概率选择显示反面,从而使获得的回报最大化。这称为混合策略博弈

纳什均衡

矩阵博弈可以得到纯策略和混合策略,为了评价最终获得的策略,引入了纳什均衡这一概念。

矩阵博弈中的纳什均衡策略是指满足一定条件的所有玩家策略(\pi{_{1}}^{*},...,\pi{_{n}}^{*})的集合,该条件如下:

 式中Vi(·)为玩家i的值函数,即给定玩家策略下玩家i的期望回报;\pi _{i}为玩家i在策略空间Πi中选择的任意策略。

纳什均衡是指给定其他玩家继续采用纳什均衡策略而该玩家无法通过改变其自身策略获得更大回报的所有玩家策略的集合。更通俗一点,当其他玩家固定其策略时,能让当前玩家获得最大回报的策略,即为当前玩家的纳什均衡策略。以囚徒困境博弈为例,当囚徒2一直选择坦白策略,囚徒1选择坦白获得-8回报,选择抵赖获得-10回报,-8>-10,因此,囚徒1选择抵赖能获得更大收益,此时,囚徒1的纳什均衡策略为坦白。

定义给定玩家联合行为 a1,...,an 下玩家 i 所获得的回报为Qi(a1,...,an),玩家 i 选择行为 ai 的概率为\pi _{i}(a_{i})(i=1,...,n),因此纳什均衡也可以如下表示:

 因为 Qi(·) 是联合动作 (a1,...an) 获得的,因此要乘上采取每个动作的概率 \pi _{i}(a_{i}^{}) 才算是获得的回报。

\pi _{i}^{*}(a_{i})为玩家 i 采用纳什均衡策略 \pi _{i}^{*} 下玩家 选择行为 ai 的概率。

 其他有关矩阵博弈的定义:

  1. 若下式中的大于等于号变为大于号,则纳什均衡为严格纳什均衡。

  2. 行为集所有行为的概率均大于0,则玩家策略称为完全混合策略
  3. 若玩家选择某一行为的概率为1,而其他行为选择概率为0,则玩家策略称为纯策略
  4. 给定其他玩家行为下,若每个玩家的均衡行为优于其他行为,则该纳什均衡称为纯策略中的严格纳什均衡。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Matlab中的矩阵是一个二维数组,可以包含任何类型的数据,例如数字、字符、符号和函数句柄等。矩阵的每个元素都可以通过其行和列的索引来访问。以下是一些常见的矩阵操作: 1. 创建矩阵:使用方括号[]括起来的一组数,每一行用分号;隔开。例如,A = [1 2 3; 4 5 6]创建一个2行3列的矩阵A。 2. 访问矩阵元素:使用A(i,j)来访问矩阵中的第i行第j列元素。例如,A(2,3)表示矩阵A中的第2行第3列元素,其值为6。 3. 矩阵运算:Matlab支持矩阵加法、减法、乘法和除法。矩阵乘法使用*运算符,矩阵除法使用/运算符。例如,若B = [1 2; 3 4],则A * B表示矩阵A和B的乘积,其结果为[7 10;15 22]。 4. 矩阵转置:使用'运算符或者transpose函数可以将矩阵的行和列交换。例如,若A = [1 2 3; 4 5 6],则A'表示将A转置后得到的矩阵为[1 4; 2 5; 3 6]。 5. 矩阵求逆:使用inv函数可以求解矩阵的逆。若A是一个可逆矩阵,则inv(A)表示A的逆矩阵。例如,若A = [1 2; 3 4],则inv(A)表示矩阵A的逆矩阵,其结果为[-2 1; 1.5 -0.5]。 6. 矩阵行列式:使用det函数可以求解矩阵的行列式。若A是一个方阵,则det(A)表示A的行列式。例如,若A = [1 2; 3 4],则det(A)表示矩阵A的行列式,其结果为-2。 7. 矩阵特征值和特征向量:使用eig函数可以求解矩阵的特征值和特征向量。若A是一个方阵,则eig(A)返回一个向量和一个矩阵,其中向量包含A的特征值,矩阵包含A的特征向量。例如,若A = [1 2; 3 4],则eig(A)返回特征值向量[-0.3723 5.3723]和特征向量矩阵[-0.8246 -0.4159; 0.5658 -0.9094]。 总之,Matlab中的矩阵是非常强大的数据结构,可以用于各种数学和科学计算。熟练掌握矩阵操作是Matlab编程的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

春有百花巨小蟹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值