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

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


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


A=‖aij‖,1≤i,j≤n


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


f(p,q)=(Ap,q)=∑i=1n∑j=1npiqjaij


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


(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=arg⁡maxp′(Ap′,q),q=arg⁡minq′(Ap,q′)


:


pi≥0,qj≥0,1≤i,j≤n


∑i=1npi=∑j=1nqj=1


, . - : , .


, , :


A=(312−231−2−23)


, ,


∑i=1npi=∑j=1nqj=1



p=(0.74,0,29,−0.03)


- , . - --.


2. --


-, , 1951- , , 1939- .


:


minx∈Rf(x)


, :


hi(x)≤0,1≤i≤m


lj(x)=0,1≤j≤r


, , , --:


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


λi⋅hi(x)=0,1≤i≤m


λi≥0,1≤i≤m


hi(x)≤0,1≤i≤m


lj(x)=0,1≤j≤r


; .


— . :


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

, , , . , :


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

, . .


3.


. , , « ».


p:


  • −(Ap,q)→min
  • −pi≤0,1≤i≤n
  • ∑j=1npi−1=0

q:


  • (Ap,q)→min
  • −qj≤0,1≤j≤n
  • ∑j=1nqj−1=0

:


L1(p)=−(Ap,q)+∑i=1nαipi−β(∑i=1npi−1)


L2(q)=(Ap,q)+∑j=1nλjqj−μ(∑j=1nqj−1)


:


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


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


--, . p:


  • αi⋅pi=0,1≤i≤n
  • αi≥0,1≤i≤n
  • ∑i=1npi=1
  • pi≥0,1≤i≤n

q:


  • λj⋅qj=0,1≤j≤n
  • λj≥0,1≤j≤n
  • ∑j=1nqj=1
  • qj≥0,1≤j≤n

, :


∑j=1naijqj−αi+β=0,1≤i≤n


∑i=1naijpi+λj−μ=0,1≤j≤n


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


4n+22n+2. :


  • αi⋅pi=0,1≤i≤n
  • λj⋅qj=0,1≤j≤n

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


, --:


αi,pi,λj,qj≥0,1≤i,j≤n


.


, . i:


∑j=1naijqj−αi+β=0


, αi,


∑j=1naijqj+β=0


αi, qβ:


αi=∑j=1naijqj+β


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


∑j=1naijqj+β=0,1≤i≤n


∑i=1naijpi−μ=0,1≤j≤n


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


:


pi,qj≥0,1≤i,j≤n


, n+1n+1. .


5.


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


(Ap′,q)≤(Ap,q)≤(Ap,q′)


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


∀i∈1,...,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