]> gitweb.michael.orlitzky.com - dunshire.git/blobdiff - dunshire/games.py
A bunch more doc fixes.
[dunshire.git] / dunshire / games.py
index e9ae21dd9fca7803ce0f67d5ba60f3d3555419c7..ea7a64f6b8e6451a808b464494c11e9be9f0de78 100644 (file)
@@ -493,7 +493,6 @@ class SymmetricLinearGame:
         strategies::
 
             >>> from dunshire import *
-            >>> from dunshire.options import ABS_TOL
             >>> K = NonnegativeOrthant(3)
             >>> L = [[1,-5,-15],[-1,2,-3],[-12,-15,1]]
             >>> e1 = [1,1,1]
@@ -502,7 +501,7 @@ class SymmetricLinearGame:
             >>> soln = SLG.solution()
             >>> x_bar = soln.player1_optimal()
             >>> y_bar = soln.player2_optimal()
-            >>> abs(SLG.payoff(x_bar, y_bar) - soln.game_value()) < ABS_TOL
+            >>> SLG.payoff(x_bar, y_bar) == soln.game_value()
             True
 
         """
@@ -584,8 +583,9 @@ class SymmetricLinearGame:
         r"""
         Return the matrix ``A`` used in our CVXOPT construction.
 
-        This matrix :math:`A` appears on the right-hand side of :math:`Ax
-        = b` in the statement of the CVXOPT conelp program.
+        This matrix :math:`A` appears on the right-hand side of
+        :math:`Ax = b` in the `statement of the CVXOPT conelp program
+        <http://cvxopt.org/userguide/coneprog.html#linear-cone-programs>`_.
 
         .. warning::
 
@@ -622,7 +622,8 @@ class SymmetricLinearGame:
         Return the matrix ``G`` used in our CVXOPT construction.
 
         Thus matrix :math:`G` appears on the left-hand side of :math:`Gx
-        + s = h` in the statement of the CVXOPT conelp program.
+        + s = h` in the `statement of the CVXOPT conelp program
+        <http://cvxopt.org/userguide/coneprog.html#linear-cone-programs>`_.
 
         .. warning::
 
@@ -664,8 +665,9 @@ class SymmetricLinearGame:
         Return the vector ``c`` used in our CVXOPT construction.
 
         The column vector :math:`c` appears in the objective function
-        value :math:`\left\langle c,x \right\rangle` in the statement of
-        the CVXOPT conelp program.
+        value :math:`\left\langle c,x \right\rangle` in the `statement
+        of the CVXOPT conelp program
+        <http://cvxopt.org/userguide/coneprog.html#linear-cone-programs>`_.
 
         .. warning::
 
@@ -702,7 +704,9 @@ class SymmetricLinearGame:
         """
         Return the cone ``C`` used in our CVXOPT construction.
 
-        This is the cone over which the conelp program takes place.
+        This is the cone over which the `CVXOPT conelp program
+        <http://cvxopt.org/userguide/coneprog.html#linear-cone-programs>`_
+        takes place.
 
         Returns
         -------
@@ -731,8 +735,9 @@ class SymmetricLinearGame:
         r"""
         Return the ``h`` vector used in our CVXOPT construction.
 
-        The :math:`h` vector appears on the right-hand side of :math:`Gx + s
-        = h` in the statement of the CVXOPT conelp program.
+        The :math:`h` vector appears on the right-hand side of :math:`Gx
+        + s = h` in the `statement of the CVXOPT conelp program
+        <http://cvxopt.org/userguide/coneprog.html#linear-cone-programs>`_.
 
         .. warning::
 
@@ -773,8 +778,9 @@ class SymmetricLinearGame:
         r"""
         Return the ``b`` vector used in our CVXOPT construction.
 
-        The vector ``b`` appears on the right-hand side of :math:`Ax =
-        b` in the statement of the CVXOPT conelp program.
+        The vector :math:`b` appears on the right-hand side of :math:`Ax
+        = b` in the `statement of the CVXOPT conelp program
+        <http://cvxopt.org/userguide/coneprog.html#linear-cone-programs>`_.
 
         This method is static because the dimensions and entries of
         ``b`` are known beforehand, and don't depend on any other
@@ -918,16 +924,18 @@ class SymmetricLinearGame:
 
     def tolerance_scale(self, solution):
         r"""
-        Return a scaling factor that should be applied to :const:`ABS_TOL`
-        for this game.
+
+        Return a scaling factor that should be applied to
+        :const:`dunshire.options.ABS_TOL` for this game.
 
         When performing certain comparisons, the default tolerance
-        :const:`ABS_TOL` may not be appropriate. For example, if we expect
-        ``x`` and ``y`` to be within :const:`ABS_TOL` of each other,
-        than the inner product of ``L*x`` and ``y`` can be as far apart
-        as the spectral norm of ``L`` times the sum of the norms of
-        ``x`` and ``y``. Such a comparison is made in :meth:`solution`,
-        and in many of our unit tests.
+        :const:`dunshire.options.ABS_TOL` may not be appropriate. For
+        example, if we expect ``x`` and ``y`` to be within
+        :const:`dunshire.options.ABS_TOL` of each other, than the inner
+        product of ``L*x`` and ``y`` can be as far apart as the spectral
+        norm of ``L`` times the sum of the norms of ``x`` and
+        ``y``. Such a comparison is made in :meth:`solution`, and in
+        many of our unit tests.
 
         The returned scaling factor found from the inner product
         mentioned above is
@@ -961,7 +969,8 @@ class SymmetricLinearGame:
         -------
 
         float
-            A scaling factor to be multiplied by :const:`ABS_TOL` when
+            A scaling factor to be multiplied by
+            :const:`dunshire.options.ABS_TOL` when
             making comparisons involving solutions of this game.
 
         Examples
@@ -998,7 +1007,7 @@ class SymmetricLinearGame:
         Returns
         -------
 
-        :class:`Solution`
+        Solution
             A :class:`Solution` object describing the game's value and
             the optimal strategies of both players.
 
@@ -1237,8 +1246,12 @@ class SymmetricLinearGame:
         can show up. We define the condition number of this game to be
         the average of the condition numbers of ``G`` and ``A`` in the
         CVXOPT construction. If the condition number of this game is
-        high, then you can expect numerical difficulty (such as
-        :class:`PoorScalingException`).
+        high, you can problems like :class:`PoorScalingException`.
+
+        Random testing shows that a condition number of around ``125``
+        is about the best that we can solve reliably. However, the
+        failures are intermittent, and you may get lucky with an
+        ill-conditioned game.
 
         Returns
         -------