Nullsummenspiele und Karush-Kun-Takker-Bedingungen

In diesem Artikel beschÀftige ich mich mit dem Problem, ausgewogene gemischte Strategien am Beispiel antagonistischer Spiele zu finden.


Es sollen zwei Spieler sein, A und B, die wiederholt ein bestimmtes Spiel spielen. Jeder Spieler in jeder Auslosung hĂ€lt sich an eine von mehreren Strategien - der Einfachheit halber nehmen wir an, dass die Anzahl der Strategien fĂŒr beide Spieler ĂŒbereinstimmt und gleich istn. Bei der WahliStrategie erster Spieler und jStrategie des zweiten Spielers, der erste Spieler erhĂ€lt einen Gewinn aijund der zweite Spieler wird den gleichen Verlust bekommen - so sind die antagonistischen Spiele angeordnet. Diese Gewinne können als quadratische Matrix geschrieben werdenA::


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


Die Spieler spielen das Spiel wiederholt und können bei verschiedenen Gewinnspielen unterschiedliche Strategien anwenden. Eine gemischte Strategie ist ein Vektor von Wahrscheinlichkeiten, die mit jeder der reinen Strategien des Spielers verbunden sind. Jeder Spieler wĂ€hlt eine der Strategien in der nĂ€chsten Ziehung entsprechend der Wahrscheinlichkeit, die fĂŒr ihn durch seine gemischte Strategie definiert ist. Wenn mit bezeichnetp und qgemischte Strategien der Spieler, dann wird die mathematische Erwartung, den ersten Spieler zu gewinnen, sein


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


Ein Paar gemischter Strategien wird als Gleichgewicht bezeichnet, wenn kein Spieler seinen Gewinn durch Ändern seiner Strategie erhöhen kann. Mit anderen Worten, fĂŒr jedes andere Strategiepaarpâ€Č, qâ€ČdurchgefĂŒhrt:


(Apâ€Č,q)≀(Ap,q)≀(Ap,qâ€Č)


Hier suchen wir jetzt nach solchen Gleichgewichten.


1. Gleichgewicht


Ein Paar gemischter Strategien bildet also ein Gleichgewicht, wenn eine Änderung der gemischten Strategie fĂŒr den ersten Spieler seinen Gewinn nicht erhöhen kann und eine Änderung der gemischten Strategie fĂŒr den zweiten Spieler seinen Verlust nicht verringern kann.


Betrachten Sie beispielsweise eine solche Auszahlungsmatrix:


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


Es kann mehr als ein Gleichgewicht in einem Spiel geben, außerdem kann es unendlich viele davon geben. In jedem Fall mĂŒssen Sie darauf vorbereitet sein, dass der Algorithmus mehr als eine Lösung ausgibt (und der gesamte Satz von Lösungen eine lineare HĂŒlle ĂŒber den abgeleiteten Lösungen darstellt). Daher wird bei der Signatur der Funktion davon ausgegangen, dass das Ergebnis ein Vektor von Strategien und nicht eine Strategie ist. Dementsprechend werden im Wesentlichen alle diese Vektoren angezeigt .


Beispiele fĂŒr Eingabematrizen fĂŒr das Programm befinden sich in input.txt , und die Ergebnisse der AusfĂŒhrung des Programms fĂŒr diese Beispiele befinden sich in der Datei output.txt .


All Articles