10.07.2015 Views

Finding all Nash equilibria of a bimatrix game

Finding all Nash equilibria of a bimatrix game

Finding all Nash equilibria of a bimatrix game

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Mixed <strong>equilibria</strong>3 3 1 0A = 2 5 B = 0 20 6 4 30x = 1/3 y T = 1/3 2/32/33Ay = 4 x T B = 8/3 8/34only pure best responses can have probability > 0


Best response polyhedron H 2 for player 2○1○2○3y 4 y 53 32 50 6= AH 2 = { (y 4 , y 5 , u) |4uH25○1 :○2 :○3 :○4 :3y 4 + 3y 5 ≤ u2y 4 + 5y 5 ≤ u6y 5 ≤ uy 4 + y 5 = 1y 4 ≥ 0○5 : y 5 ≥ 0 }65320321y40 1


Best response polytope P for player 1x 11 002= Bx 24P = { x | x > 0, x B < 1}x 34 3≤1≤1x 331x 24x 1525


Equilibrium = completely labeled pair3215324145pure equilibrium


Equilibrium = completely labeled pair3215324145mixed equilibrium


Convex equilibrium components[Winkels 1979 / Jansen 1980](x,y) is an equilibrium <strong>of</strong> (A,B) (x,y) is in the convex hull <strong>of</strong> U x V , where <strong>all</strong> (u, v) U x Vare completely labelled vertex pairs <strong>of</strong> P x Q – (0,0)Convex equilibrium components U x V= maximal cliques <strong>of</strong> bipartite graph


Convex equilibrium componentsGeometry:v v v v 1 2 3 4u 3u 4u 1u 2


Clique enumeration[Bron & Kerbosch 1973]Recursive bottom-up generation <strong>of</strong> maximal cliques byelegant backtracking and branch and bound.Adapted to bipartite graphs, outputs 2000 cliques / secondindependent <strong>of</strong> graph size.


So farProblem:Given: <strong>bimatrix</strong> <strong>game</strong> (A,B). What are its <strong>Nash</strong> <strong>equilibria</strong>?Overview:Any equilibrium is a convex combination <strong>of</strong> extreme<strong>equilibria</strong> = certain vertices <strong>of</strong> polytopes derived from A, B.Enumerate extreme <strong>equilibria</strong> (finitely many).Output convex equilibrium components.


No efficient equilibrium enumeration[Gilboa & Zemel 1989]Uniqueness <strong>of</strong> <strong>Nash</strong> equilibrium is NP -hard. No output efficient enumeration <strong>of</strong> <strong>equilibria</strong> possible(unless P = NP ).


The EEE algorithmAudet, C., P. Hansen, B. Jaumard, and G. Savard (2001),Enumeration <strong>of</strong> <strong>all</strong> Extreme Equilibria <strong>of</strong> <strong>bimatrix</strong> <strong>game</strong>s.SIAM Journal on Scientific Computing 23, 323-338.- depth-first exploration <strong>of</strong> search tree for bothpolyhedra via parameterized LPsOur improvements:- stand-alone instead <strong>of</strong> using CPLEX- exact arithmetic instead <strong>of</strong> floating-point- much faster degeneracy handling


Equilibria via LP dualityx best response to y solves primal LP:max x T (Ay)s.t. 1 T x = 1x 0dual LP: min us.t. 1u Ayoptimal u = x T Aycomplementary slackness: x 0 1u Ayi.e. x T (1u Ay) = 0


Equilibria via LP dualityx best response to yy best response to x solves primal LP:max x T (Ay)max (x T B)ys.t. 1 T x = 1 s.t. 1 T y = 1x 0 y 0dual LP: min umin vs.t. 1u Ays.t. 1v B T xoptimal u = x T Ay v = x T Bycomplementary slackness: x 0 1u Ay y 0 1v B T xi.e. x T (1u Ay) = 0 y T (1v B T x) = 0


Equilibria via Linear Complementarityx best response to yy best response to x solves primal LP:max x T (Ay)max (x T B)ys.t. 1 T x = 1 s.t. 1 T y = 1x 0 y 0dual LP: min umin vs.t. 1u Ays.t. 1v B T xoptimal u = x T Ay v = x T Bycomplementary slackness: x 0 1u Ay y 0 1v B T xi.e. x T (1u Ay) = 0 y T (1v B T x) = 0


Best response polyhedraP = { (x, v) ∈R m+1 | Q = { (y, u) ∈R n+1 |x 0 Ay 1uB T x 1v y 01 T x 1 } 1 T y 1 }with slack variables r, s:x, s 0 x r r + Ay 1uB T x + s 1v s y r, y 01 T x 1 1 T y 1


Faces <strong>of</strong> P, Q via label sets KLet K, L M N = set <strong>of</strong> labels (pure stategies)P(K) = { (x, v) ∈ P | x i= 0, (B T x) j= v for i, j ∈K }[ s j= 0 ]Q(L) = { (y, u) ∈ Q | (Ay) i= u, y j= 0 for i, j ∈L }[ r i= 0 ]


EEE - binary search treeroot: P, Q = P(), Q()nodes: P(K), Q(L) with disjoint K, Lbinary branching:new label k added to K or LP(K), Q(L)P(K k ), Q(L) P(K), Q(L k )


Face representativesface P(K) <strong>of</strong> P represented by x ∈P(K),face Q(L) <strong>of</strong> L represented by y ∈Q(L).x ∈P(K), y ∈Q(L)P(K k), Q(L)new x, same yP(K), Q(L k)same x, new y


Face representativesface P(K) <strong>of</strong> P represented by x ∈P(K),face Q(L) <strong>of</strong> L represented by y ∈Q(L).x ∈P(K), y ∈Q(L)k=i: set x i=0 set r i=0P(K i ), Q(L) P(K), Q(L i )new x, same ysame x, new y


Face representativesface P(K) <strong>of</strong> P represented by x ∈P(K),face Q(L) <strong>of</strong> L represented by y ∈Q(L).x ∈P(K), y ∈Q(L)k=j: set s j=0 set y j=0P(K j ), Q(L) P(K), Q(L j )new x, same ysame x, new y


To sm<strong>all</strong>er-dimensional face via LPx ∈P(K), y ∈Q(L)set x i=0 . . .P(K i ), Q(L)new xas solution to LPmax x T (Ay) vs.t. (x,v) ∈P(K), x i=0


To sm<strong>all</strong>er-dimensional face via LPx ∈P(K), y ∈Q(L)set x i=0 . . .P(K i ), Q(L)new xas solution to LPmax x T (Ay) vs.t. (x,v) ∈P(K), x i=0if infeasible: terminate search,backtrack (depth-first search)


To sm<strong>all</strong>er-dimensional face via LPx ∈P(K), y ∈Q(L)set x i=0 . . .P(K i ), Q(L)new xas solution to LPmax x T (Ay) vs.t. (x,v) ∈P(K), x i=0in LP tableau: drive x iout <strong>of</strong> basis(use tableau row to minimize x i),then delete cobasic column for x i


Choice <strong>of</strong> label to branch ongiven node with x ∈P(K), y ∈Q(L),branch on k that violates complementarity most, i.e.k = arg max { x ir i, s jy j| i , j K L} hope to discover infeasibility quicklyto prune search tree.


Choice <strong>of</strong> label to branch ongiven node with x ∈P(K), y ∈Q(L),branch on k that violates complementarity most, i.e.k = arg max { x ir i, s jy j| i , j K L}possible: max { x ir i, s jy j} = 0 (x,y) equilibrium,but:is ignored unless |K| = m, |L| = n(<strong>Nash</strong> equilibrium at leaf <strong>of</strong> search tree,node at depth m+n ).


Choice <strong>of</strong> objective functiongiven y ∈Q(L),given x ∈P(K),x ∈P(K k) is solution to LPmax x T (Ay) vs.t. (x,v) ∈P(K k)y ∈Q(L k) is solution to LPmax (x T B)y us.t. (y,u) ∈Q(L k)


Choice <strong>of</strong> objective functiongiven y ∈Q(L),given x ∈P(K),x ∈P(K k) is solution to LPmax x T (Ay) vs.t. (x,v) ∈P(K k)y ∈Q(L k) is solution to LPmax (x T B)y us.t. (y,u) ∈Q(L k)Why these objective functions? Their sumx T (Ay) + (x T B)y u v [ 0 ]is negative <strong>of</strong> duality gap, try to make that zero!


Other objective functionsignoring y ∈Q(L),ignoring x ∈P(K),x ∈P(K k) is solution to LPmax vs.t. (x,v) ∈P(K k)y ∈Q(L k) is solution to LPmax us.t. (y,u) ∈Q(L k)find lowest point on upper envelope


Other objective functionsx ∈P(K k) is solution to LPmax 0s.t. (x,v) ∈P(K k)y ∈Q(L k) is solution to LPmax 0s.t. (y,u) ∈Q(L k)find feasible vertexstill on upper envelope


Run time comparisons [sec]Objective functionRandom(average)17 x 1757 NEGuessingGame22 x 223 NEDollarGame10 x 1091 NEP: max x T Ay vQ: max x T By uP: max vQ: max uP: max 0Q: max 0P: max x T (A+B)y vQ: max x T (A+B)y u186 44 126408 185 119397 169 117146 33 122


Extra multiple branching neededIn degenerate <strong>game</strong>s, not <strong>all</strong> extreme <strong>equilibria</strong> appearat level m+n in the binary search tree.Audet et al. add multiple branches at level m+n:each positive variable x i, s j, r i, y jat that level isattempted to be set to zero (typic<strong>all</strong>y infeasible, m+nextra pivots), continuing search.One observes a very high number <strong>of</strong> extra nodes fordegenerate <strong>game</strong>s.


Example <strong>of</strong> original EEE search treeA =( 2 52 5)B =( 3 45 4)015123952663264041536341527384250 545564 655 67111620 212228293337434448 495660 61 628 9 10 12 13 14 17 18 1923 24 2530 31 32 34 35 3645 46 4757 58 59


Improved EEE search treeA =( 2 52 5)B =( 3 45 4)012021521283101617222547*111418*192324*26275*6891213*


Polyhedra for exampleA =( 2 52 5)B =( 3 45 4)vu2 P1Q4 354343512220prob( 2 )0prob( 4 )0 10 1


Extreme <strong>equilibria</strong>A =( 2 52 5)B =( 3 45 4)vu2 P1Q4 354343512220prob( 2 )0prob( 4 )0 10 1


One equilibrium missed by objective functionA =( 2 52 5)B =( 3 45 4)vu2 P1Q4 35432435212notfound0prob( 2 )0prob( 4 )0 10 1


Improved degeneracy treatmentVertices are missed due to redundant equalities(degeneracy in description <strong>of</strong> polyhedron!).These appear as zero rows in tableauxand cannot be made cobasic. delete zero row, keep extra cobasic variable;only these extra cobasic variables are searched(eliminated) beyond search level m+n.


Run time comparisonsDegeneracy checkOriginal EEEtimenodespivotsImproved EEEtimenodespivotsGuessingGame5 NE0.364275300.37337530DollarGame73 NE14806.062790209492032698925.2514153143987

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!