X-Git-Url: https://gitweb.michael.orlitzky.com/?p=dunshire.git;a=blobdiff_plain;f=TODO;h=94690840107c6dd0dd8613fb450b9f4b3121f7aa;hp=6ba8caa46d665291faaa07ad4668ee1906c2e1d9;hb=ff9a508f946f02c9c8896ebadccf2a44525a52a9;hpb=d6e715f5c60d6b39156d3fcca7b1b8b9fb68eddd diff --git a/TODO b/TODO index 6ba8caa..9469084 100644 --- a/TODO +++ b/TODO @@ -1,100 +1,10 @@ -1. Make it work on a cartesian product of cones in the correct order. +1. Implement the SPD cone. -2. Make it work on a cartesian product of cones in the wrong order - (apply a perm utation before/after). +2. Make it work on a cartesian product of cones in the correct order. -3. Make sure we have the dimensions of the PSD cone correct. +3. Make it work on a cartesian product of cones in the wrong order + (apply a permutation before/after). -4. Come up with a fast heuristic (like making nu huge and taking e1 as - our point) that finds a primal feasible point. - -7. Figure out why this happens, too: - - FAIL: test_scaling_icecream (test.symmetric_linear_game_test - .SymmetricLinearGameTest) - ---------------------------------------------------------------------- - Traceback (most recent call last): - File "/home/mjo/src/dunshire/test/symmetric_linear_game_test.py", - line 336, in test_scaling_icecream - self.assert_scaling_works(L, K, e1, e2) - File "/home/mjo/src/dunshire/test/symmetric_linear_game_test.py", - line 318, in assert_scaling_works - self.assert_within_tol(alpha*value1, value2) - File "/home/mjo/src/dunshire/test/symmetric_linear_game_test.py", - line 254, in assert_within_tol - self.assertTrue(abs(first - second) < options.ABS_TOL) - AssertionError: False is not true - - - FAIL: test_translation_orthant (test.symmetric_linear_game_test - SymmetricLinearGameTest) - ---------------------------------------------------------------------- - Traceback (most recent call last): - File "/home/mjo/src/dunshire/test/symmetric_linear_game_test.py", - line 374, in test_translation_orthant - self.assert_translation_works(L, K, e1, e2) - File "/home/mjo/src/dunshire/test/symmetric_linear_game_test.py", - line 366, in assert_translation_works - self.assert_within_tol(value2, inner_product(M*x_bar, y_bar)) - File "/home/mjo/src/dunshire/test/symmetric_linear_game_test.py", - line 254, in assert_within_tol - self.assertTrue(abs(first - second) < options.ABS_TOL) - AssertionError: False is not true - - -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. - - 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] - -13. Add a test to ensure that if we solve the same game twice, we get the - same answer back. +4. Add random_game() and use it to replace all of the tests where + the cone is irrelevant. This should be done only after we are + feature complete and sure that everything works.