多智能体强化学习与博弈论-博弈论基础3

多智能体强化学习与博弈论-博弈论基础3

之前主要介绍了如何判断博弈中是否到达了纳什均衡,在这篇文章中将主要介绍如何计算纳什均衡。

本文主要介绍下列几种情况下的纳什均衡

  • 两个智能体,每个智能体有两个动作

  • 两个智能体,每个智能体有多个动作,零和博弈

  • 非零和,每个智能体有多动作

零和博弈

Minimax Theoram:For every two-person, zero-sum game with finitely many pure strategies, there exists a mixed strategy for each player and a value V such that:

  • Given player 2’s strategy, the best possible payoff for player 1 is V
  • Given player 1’s strategy, the best possible payoff for player 2 is –V.

当智能体的动作有多个时,我们可以借助线性规划来帮助我们求解。

以下面这个情况为例(player1为row player, player2为column player,以两个动作为例)

在这里插入图片描述

设player1的策略为<x1,x2>,player2的策略为<y1,y2>。player2的收益可以表示为

  • V(“Morality”)=-3x1+2x2

  • V(“Tax-cuts”)=x1-x2

player2的最优收益为max(-3x1+2x2,x1-x2),player1的最优收益为-max(-3x1+2x2,x1-x2)=min(3x1 − 2x2, −x1 + x2)。

我们可以使用下面的这个线性规划来求解player1的最优策略。

在这里插入图片描述

同理我们也可以使用下面的这个线性规划来求解player2的最优策略。
在这里插入图片描述

线性规划中的对偶性

每一个线性规划问题都有一个对应的线性规划问题被称为对偶问题,对偶问题对于原问题的求解在很多时候都有着重要的作用。原问题和对偶问题的关系如下图所示。

在这里插入图片描述

例子:
在这里插入图片描述

强对偶性:由前面我们可以知道

y A x ≤ y b y A x ≥ c x yAx\leq yb \\ yAx\geq cx yAxybyAxcx

可以推出

c x ≤ y A x ≤ y b cx\leq yAx\leq yb cxyAxyb

当满足

c x = y A x = y b cx=yAx=yb cx=yAx=yb

则称原问题和对偶问题的关系为强对偶。

原问题对偶的对偶为原问题。

非零和博弈

当我们面对的问题不是零和博弈问题时,往往不能使用线性规划来求解,而是将问题建模成线性互补问题(linear complementarity problem (LCP)).对于这里的线性互补问题,它是没有目标函数的,整个问题是一个可行性问题。

在这里插入图片描述

其中 r r r为松弛变量, s i j s_i^j sij为player i选择动作j的概率。最后一行的约束称作complementarity condition。这个约束意味着当 s i j s_i^j sij>0时 r i j = 0 r_i^j=0 rij=0

The Lemke-Howson algorithm

Lemke-Howson algorithm是一个非常知名的用于解决LCP问题的算法,它利用了图论的思想。

假设有下面这个问题

在这里插入图片描述

我们可以使用图来表示player的策略,不同坐标轴代表不同的策略。

在这里插入图片描述

接着我们需要给player的动作打标签L( s i j s^j_i sij ) ⊆ A1 ∪ A2 。

Mixed strategy si for player i is labeled as follows:

  • with each of player i’s actions a i j a^j_i aij that is not in the support of s i s_i si(with zero prob. of choosing it) and

  • with each of player −i’s actions a − i j a^j_{−i} aij that is a best response by player −i to s i s_i si.

当L(s1) ∪ L(s2) = A1 ∪ A2时我们称这两个策略达到了纳什均衡。

在这里插入图片描述

以player2为例,我们可以给player2图像上的边打标签。 a 2 1 a^1_2 a21代表player2选择动作1的概率为0, a 1 2 a^2_1 a12代表player1选择2是针对player2最好的策略。(1/3,2/3)这个点代表如果player2以1/3的概率使用动作1,2/3的概率使用动作2,那么对于player1而言使用动作1和动作2取得的收益都是相同的,以此类推。

我们可以给每个点标号

在这里插入图片描述

在这个例子中总共存在三个纳什均衡

[(0, 0, 1), (1, 0)], [(0, 1/3, 2/3) , (2/3, 1/30)] , and [(2/3, 1/3,0) , (1/3, 2/3)]

参考:

汪军老师UCL多智能体强化学习网课

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
多智能体强化学习代码的实现可以基于不同的算法和框架。以下是一些常见的多智能体强化学习代码的示例: 1. Nash-Q Learning: Nash-Q Learning是一种基于博弈论多智能体强化学习算法。可以使用Python编程语言和强化学习库(如TensorFlow或PyTorch)来实现该算法。你需要创建一个矩阵环境,并使用策略迭代的方法来训练智能体。 2. WoLF-PHC: WoLF-PHC(Policy hill-climbing algorithm)是另一种多智能体强化学习算法,它可以通过提供一种自适应的学习速率来实现策略的收敛。同样,你可以使用Python和强化学习库来实现该算法,并创建一个矩阵环境来进行训练。 3. Minimax-Q Learning: Minimax-Q Learning是一种基于博弈论多智能体强化学习算法,它通过博弈树搜索来进行策略的更新。你可以使用Python和强化学习库来实现该算法,并创建一个矩阵环境来进行训练。 除了以上算法外,还可以基于多智能体的深度强化学习(RL)进行代码实现。在这种情况下,你可以使用深度学习框架(如TensorFlow或PyTorch)来构建神经网络模型,并使用强化学习算法(如Deep Q-Networks或Proximal Policy Optimization)来进行训练。同时,你可能需要进行一些针对多智能体场景的修改和调整。 如果你需要更具体的代码示例和实现细节,我建议你参考相关的研究论文和开源项目,如论文《Markov games as a framework for multi-agent reinforcement learning》。在该论文中,作者提供了多智能体强化学习的理论基础算法框架,并给出了一些代码实例供参考。 请注意,多智能体强化学习是一个复杂而广泛的领域,具体的代码实现取决于你所选择的算法和框架,以及应用场景的特定要求。因此,你可能需要进一步的研究和学习来完成你的具体任务。<span class="em">1</span><span class="em">2</span><span class="em">3</span>

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值