From 8831e4cea810a6597770c0b1eabef52dad74928b Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Sun, 13 Nov 2016 16:30:03 -0500 Subject: [PATCH] Add some more docs for the player[12]_start() methods. --- dunshire/games.py | 48 ++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 43 insertions(+), 5 deletions(-) diff --git a/dunshire/games.py b/dunshire/games.py index 75f5329..6ab420d 100644 --- a/dunshire/games.py +++ b/dunshire/games.py @@ -809,11 +809,26 @@ class SymmetricLinearGame: Return a feasible starting point for player one. This starting point is for the CVXOPT formulation and not for - the original game. The basic premise is that if you normalize - :meth:`e2`, then you get a point in :meth:`K` that makes a unit - inner product with :meth:`e2`. We then get to choose the primal - objective function value such that the constraint involving - :meth:`L` is satisfied. + the original game. The basic premise is that if you scale + :meth:`e2` by the reciprocal of its squared norm, then you get a + point in :meth:`K` that makes a unit inner product with + :meth:`e2`. We then get to choose the primal objective function + value such that the constraint involving :meth:`L` is satisfied. + + Returns + ------- + + dict + A dictionary with two keys, 'x' and 's', which contain the + vectors of the same name in the CVXOPT primal problem + formulation. + + The vector ``x`` consists of the primal objective function + value concatenated with the strategy (for player one) that + achieves it. The vector ``s`` is essentially a dummy + variable, and is computed from the equality constraing in + the CVXOPT primal problem. + """ p = self.e2() / (norm(self.e2()) ** 2) dist = self.K().ball_radius(self.e1()) @@ -827,6 +842,29 @@ class SymmetricLinearGame: def player2_start(self): """ Return a feasible starting point for player two. + + This starting point is for the CVXOPT formulation and not for + the original game. The basic premise is that if you scale + :meth:`e1` by the reciprocal of its squared norm, then you get a + point in :meth:`K` that makes a unit inner product with + :meth:`e1`. We then get to choose the dual objective function + value such that the constraint involving :meth:`L` is satisfied. + + Returns + ------- + + dict + A dictionary with two keys, 'y' and 'z', which contain the + vectors of the same name in the CVXOPT dual problem + formulation. + + The ``1``-by-``1`` vector ``y`` consists of the dual + objective function value. The last :meth:`dimension` entries + of the vector ``z`` contain the strategy (for player two) + that achieves it. The remaining entries of ``z`` are + essentially dummy variables, computed from the equality + constraint in the CVXOPT dual problem. + """ q = self.e1() / (norm(self.e1()) ** 2) dist = self.K().ball_radius(self.e2()) -- 2.43.2