Jeux à somme nulle et conditions de Karush-Kun-Takker

Dans cet article, je traite du problème de trouver des stratégies mixtes équilibrées en utilisant des jeux antagonistes comme exemple.


Soit deux joueurs, A et B, qui jouent à plusieurs reprises un certain jeu. Chaque joueur dans chaque tirage adhère à l'une de plusieurs stratégies - pour simplifier, nous supposons que le nombre de stratégies pour les deux joueurs coïncide et est égaln. Lors du choixistratégie premier joueur et jstratégie du deuxième joueur, le premier joueur recevra une victoire aijet le deuxième joueur subira la même perte - c'est ainsi que les jeux antagonistes sont organisés. Ces gains peuvent être écrits sous forme de matrice carréeA:


A=aij,1i,jn


Les joueurs jouent le jeu à plusieurs reprises et peuvent utiliser différentes stratégies dans différents tirages au sort. Une stratégie mixte est un vecteur de probabilités associé à chacune des stratégies pures du joueur. Chaque joueur choisit l'une des stratégies du prochain tirage en fonction de la probabilité définie pour elle par sa stratégie mixte. Si indiqué parp et qstratégies mixtes des joueurs, alors l'attente mathématique de gagner le premier joueur sera


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


Une paire de stratégies mixtes est appelée équilibre si aucun joueur ne peut augmenter ses gains en modifiant sa stratégie. En d'autres termes, pour toute autre paire de stratégiesp, qeffectué:


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


Ici, nous recherchons maintenant de tels équilibres.


1. Équilibre


Ainsi, une paire de stratégies mixtes forme un équilibre si changer une stratégie mixte pour le premier joueur ne peut pas augmenter ses gains, et changer une stratégie mixte pour le deuxième joueur ne peut pas réduire sa perte.


Par exemple, considérons une telle matrice de gains:


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'.


Il peut y avoir plus d'un équilibre dans un jeu; de plus, il peut y en avoir une infinité. Dans tous les cas, vous devez être préparé au fait que l'algorithme produira plus d'une solution (et l'ensemble des solutions sera un shell linéaire sur les solutions dérivées). Par conséquent, la signature de la fonction suppose que le résultat est un vecteur de stratégies et non une stratégie. Et en général, en conséquence, tous ces vecteurs sont affichés .


Des exemples de matrices d'entrée pour le programme se trouvent dans input.txt et les résultats de l'exécution du programme sur ces exemples se trouvent dans le fichier output.txt .


All Articles