X-Git-Url: https://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=doc%2Fsource%2Foverview.rst;h=95eb384f6069233747fa795fd18c4b0431c087d1;hb=f478abb8a0425a95af3ab585945cee649b6282bc;hp=f4b4220585bc176d9a976f26b8a6b8a74e783b56;hpb=843d46c5be5605d071f17481c48ed0cb7f5acbaf;p=dunshire.git diff --git a/doc/source/overview.rst b/doc/source/overview.rst index f4b4220..95eb384 100644 --- a/doc/source/overview.rst +++ b/doc/source/overview.rst @@ -1,15 +1,15 @@ Overview -------- -Dunshire is a `CVXOPT `_-based library for solving -linear (cone) games. The notion of a symmetric linear (cone) game was -introduced by Gowda and Ravindran [GowdaRav]_, and extended by -Orlitzky to asymmetric cones with two interior points. +Dunshire is a library for solving linear games over symmetric +cones. The notion of a symmetric linear (cone) game was introduced by +Gowda and Ravindran [GowdaRav]_, and extended by Orlitzky to +asymmetric cones with two interior points. The state-of-the-art is that only symmetric games can be solved efficiently, and thus the linear games supported by Dunshire are a -bastard of the two: the cones are symmetric, but the players get to -choose two interior points. +compromise between the two: the cones are symmetric, but the players +get to choose two interior points. In this game, we have two players who are competing for a "payoff." There is a symmetric cone :math:`K`, a linear transformation :math:`L` @@ -27,17 +27,17 @@ an :math:`\bar{x}` from and player two chooses a :math:`\bar{y}` from .. math:: - \Delta_{2} &= + \Delta_{2} = \left\lbrace y \in K\ \middle|\ \left\langle y,e_{1} \right\rangle = 1 \right\rbrace. That ends the turn, and player one is paid :math:`\left\langle L\left(\bar{x}\right),\bar{y}\right\rangle` out of player two's -pocket. As is usual to assume in game theory, we suppose that player -one wants to maximize his worst-case payoff, and that player two wants -to minimize his worst-case *payout*. In other words, player one wants -to solve the optimization problem, +pocket. As is usual in game theory, we suppose that player one wants +to maximize his worst-case payoff, and that player two wants to +minimize his worst-case *payout*. In other words, player one wants to +solve the optimization problem, .. math:: \text{find } @@ -72,13 +72,13 @@ First, we use the nonnegative orthant in :math:`\mathbb{R}^{2}`: >>> e2 = e1 >>> G = SymmetricLinearGame(L,K,e1,e2) >>> print(G.solution()) - Game value: 0.5000000 + Game value: 0.500... Player 1 optimal: - [0.5000000] - [0.5000000] + [0.500...] + [0.500...] Player 2 optimal: - [0.5000000] - [0.5000000] + [0.500...] + [0.500...] Next we try the Lorentz ice-cream cone in :math:`\mathbb{R}^{2}`: @@ -87,16 +87,16 @@ Next we try the Lorentz ice-cream cone in :math:`\mathbb{R}^{2}`: >>> from dunshire import * >>> K = IceCream(2) >>> L = [[1,0],[0,1]] - >>> e1 = [1,1] + >>> e1 = [1,0] >>> e2 = e1 >>> G = SymmetricLinearGame(L,K,e1,e2) >>> print(G.solution()) - Game value: 0.5000000 + Game value: 1.000... Player 1 optimal: - [0.8347039] - [0.1652961] + [1.000...] + [0.000...] Player 2 optimal: - [0.5000000] - [0.5000000] + [1.000...] + [0.000...] Note that these solutions are not unique, although the game values are.