-1. Add unit testing for crazier things like random invertible matrices.
+1. Make it work on a cartesian product of cones in the correct order.
-2. Copy the intro from my thesis into README.rst, and add a section
- explaining the CVXOPT formulation.
-
-3. Try to eliminate the code in matrices.py.
-
-4. Make it work on a cartesian product of cones in the correct order.
-
-5. Make it work on a cartesian product of cones in the wrong order
+2. Make it work on a cartesian product of cones in the wrong order
(apply a perm utation before/after).
-6. Rename all of my variables so that they don't conflict with CVXOPT.
- Maybe x -> xi and y -> gamma in my paper, if that works out.
+3. Make sure we have the dimensions of the PSD cone correct.
-7. Make sure we have the dimensions of the PSD cone correct.
+4. Come up with a fast heuristic (like making nu huge and taking e1 as
+ our point) that finds a primal feasible point.
-8. Use a positive tolerance when comparing floating point numbers.
+12. Investigate this test failure too. It looks like it was really
+ close to being solved, but we would have needed a fudge factor
+ of three instead of two.
-9. Come up with a fast heuristic (like making nu huge and taking e1 as
- our point) that finds a primal feasible point.
+ ERROR: test_positive_operator_value (test.symmetric_linear_game_test
+ .SymmetricLinearGameTest)
+ ----------------------------------------------------------------------
+ Traceback (most recent call last):
+ File "/home/mjo/src/dunshire/test/symmetric_linear_game_test.py",
+ line 550, in test_positive_operator_value
+ self.assertTrue(G.solution().game_value() >= -options.ABS_TOL)
+ File "/home/mjo/src/dunshire/dunshire/games.py", line 515, in solution
+ raise GameUnsolvableException(self, soln_dict)
+ dunshire.errors.GameUnsolvableException: Solution failed with result
+ "unknown."
+ The linear game (L, K, e1, e2) where
+ L = [8.0814704 3.5584693]
+ [3.9986814 9.3381562],
+ K = Nonnegative orthant in the real 2-space,
+ e1 = [1.3288182]
+ [0.7458942],
+ e2 = [0.6814326]
+ [3.3799082],
+ Condition((L, K, e1, e2)) = 41.093597.
+ CVXOPT returned:
+ dual infeasibility: 2.368640021750079e-06
+ dual objective: -7.867137172157051
+ dual slack: 1.1314089173606103e-07
+ gap: 1.1404410161224882e-06
+ iterations: 6
+ primal infeasibility: 1.379959981010593e-07
+ primal objective: -7.867137449574777
+ primal slack: 1.0550559882036034e-08
+ relative gap: 1.4496264027827932e-07
+ residual as dual infeasibility certificate: 0.12711103707156543
+ residual as primal infeasibility certificate: None
+ s:
+ [1.4674968]
+ [0.0000000]
+ [1.4055364]
+ [0.0000000]
+ status: unknown
+ x:
+ [ 7.8671374]
+ [ 1.4674968]
+ [-0.0000000]
+ y:
+ [7.8671372]
+ z:
+ [ 0.0000001]
+ [14.0707905]
+ [ 0.0000002]
+ [ 1.3406728]
-10. We only need to include the API docs for dunshire.games in the
- "user manual;" everything else can go in an appendix.
+13. Add a test to ensure that if we solve the same game twice, we get the
+ same answer back.