Juegos de suma cero y condiciones de Karush-Kun-Takker

En este artículo, trato el problema de encontrar estrategias mixtas equilibradas usando juegos antagónicos como ejemplo.


Que haya dos jugadores, A y B, que juegan repetidamente un cierto juego. Cada jugador en cada sorteo se adhiere a una de varias estrategias: por simplicidad, asumimos que el número de estrategias para ambos jugadores coincide y es igualn. Al elegiriprimer jugador de estrategia y jestrategia del segundo jugador, el primer jugador recibirá una victoria aijy el segundo jugador tendrá la misma pérdida: así es como se organizan los juegos antagónicos. Estas victorias se pueden escribir como una matriz cuadradaA:


A=aij,1i,jn


Los jugadores juegan el juego repetidamente y pueden usar diferentes estrategias en diferentes sorteos. Una estrategia mixta es un vector de probabilidades asociado con cada una de las estrategias puras del jugador. Cada jugador elige una de las estrategias en el próximo sorteo de acuerdo con la probabilidad definida para ella por su estrategia mixta. Si se denota porp y qestrategias mixtas de jugadores, entonces la expectativa matemática de ganar el primer jugador será


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


Un par de estrategias mixtas se llama equilibrio si ningún jugador puede aumentar sus ganancias cambiando su estrategia. En otras palabras, para cualquier otro par de estrategias.p, qrealizado:


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


Aquí estamos buscando tales equilibrios.


1. Equilibrio


Entonces, un par de estrategias mixtas forma un equilibrio si un cambio en la estrategia mixta para el primer jugador no puede aumentar sus ganancias, y un cambio en la estrategia mixta para el segundo jugador no puede reducir su pérdida.


Por ejemplo, considere una matriz de pagos de este tipo:


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


Puede haber más de un equilibrio en un juego; además, puede haber infinitos de ellos. En cualquier caso, debe estar preparado para el hecho de que el algoritmo generará más de una solución (y todo el conjunto de soluciones será un caparazón lineal sobre las soluciones derivadas). Por lo tanto, la firma de la función supone que el resultado es un vector de estrategias, y no una estrategia. Y en general, en consecuencia, se muestran todos estos vectores .


Los ejemplos de matrices de entrada para el programa están en input.txt , y los resultados de ejecutar el programa en estos ejemplos están en el archivo output.txt .


All Articles