零和游戏和Karush-Kun-Takker条件

在本文中,我将以对抗游戏为例,探讨寻找平衡的混合策略的问题。


假设有两个玩家A和B重复玩某个游戏。每次抽奖中的每个玩家都遵循几种策略之一-为简单起见,我们假设两个玩家的策略数量是相同且相等的n选择时i策略第一玩家 j第二位玩家的策略,第一位玩家将获得胜利 aij而第二名玩家将获得相同的损失-这就是对抗游戏的安排方式。这些胜利可以写成方阵A


A=aij,1i,jn


玩家反复玩游戏,可以在不同的抽奖中使用不同的策略。混合策略是与每个玩家策略相关的概率向量每个玩家根据其混合策略为其定义的概率,在下一个平局中选择一种策略。如果用pq玩家的混合策略,那么赢得第一个玩家的数学期望将是


f(p,q)=(Ap,q)=i=1nj=1npiqjaij


如果没有玩家可以通过改变策略来增加赢利,则一对混合策略称为平衡换句话说,对于其他任何策略pq执行:


(Ap,q)(Ap,q)(Ap,q)


在这里,我们现在正在寻找这种平衡。


1.平衡


因此,如果更改第一个玩家的混合策略不能增加他的获胜,而改变第二个玩家的混合策略不能减少他的损失,则一对混合策略形成平衡。


例如,考虑这样的回报矩阵:


A=(2341)


. , , . : (2 3). , , : (4 1). , , : (1 4). , . , , .


. , (1/2,1/2), (1/2,1/2). 2.5.


, , , . , .


pq, :


p=argmaxp(Ap,q),q=argminq(Ap,q)


:


pi0,qj0,1i,jn


i=1npi=j=1nqj=1


, . - : , .


, , :


A=(312231223)


, ,


i=1npi=j=1nqj=1



p=(0.74,0,29,0.03)


- , . - --.


2. --


-, , 1951- , , 1939- .


:


minxRf(x)


, :


hi(x)0,1im


lj(x)=0,1jr


, , , --:


x(f(x)i=1mλihi(x)j=1rμjlj(x))=0


λihi(x)=0,1im


λi0,1im


hi(x)0,1im


lj(x)=0,1jr


; .


— . :


  • hi(x)=0,
  • - hi(x)<0, λi=0.

, , , . , :


  • 2 λi;
  • 2, 1 5 ;
  • , 3 4;
  • 2 ;
  • , .

, . .


3.


. , , « ».


p:


  • (Ap,q)min
  • pi0,1in
  • j=1npi1=0

q:


  • (Ap,q)min
  • qj0,1jn
  • j=1nqj1=0

:


L1(p)=(Ap,q)+i=1nαipiβ(i=1npi1)


L2(q)=(Ap,q)+j=1nλjqjμ(j=1nqj1)


:


L1(p)pi=j=1naijqj+αiβ


L2(q)qj=i=1naijpi+λjμ


--, . p:


  • αipi=0,1in
  • αi0,1in
  • i=1npi=1
  • pi0,1in

q:


  • λjqj=0,1jn
  • λj0,1jn
  • j=1nqj=1
  • qj0,1jn

, :


j=1naijqjαi+β=0,1in


i=1naijpi+λjμ=0,1jn


i=1npi=1,j=1nqj=1


4n+22n+2. :


  • αipi=0,1in
  • λjqj=0,1jn

pi, αi, qj, λj. , 22n2n. 22n, 2n+22n+2( ).


, --:


αi,pi,λj,qj0,1i,jn


.


, . i:


j=1naijqjαi+β=0


, αi,


j=1naijqj+β=0


αi, qβ:


αi=j=1naijqj+β


, : A. , αi, λj: , ; . :


j=1naijqj+β=0,1in


i=1naijpiμ=0,1jn


i=1npi=1,j=1nqj=1


:


pi,qj0,1i,jn


, n+1n+1. .


5.


: , . . , p, q, p, q:


(Ap,q)(Ap,q)(Ap,q)


, , . , . , . : p1,q1;p2,q2;...;pk,qk— . p,q,


i1,...,k:(Api,q)(Ap,q)(Ap,qi)


6.


GitHub: https://github.com/ashagraev/zero_sum_game


matrix.h : , , . . , .


kkt.cpp. . , callback'.


一个游戏中可以有多个平衡;此外,其中可以无限多个。无论如何,您都需要为以下事实做好准备:算法将输出多个解决方案(整个解决方案集将是派生的解决方案上的一些线性壳)。因此,函数的签名假定结果是策略的向量,而不是一个策略。相应地,主要显示所有这些向量


该程序的输入矩阵示例在input.txt中,而在这些示例上运行该程序的结果在output.txt文件中


All Articles