]> gitweb.michael.orlitzky.com - dunshire.git/blob - TODO
Remove the "unknown" solution TODO, our new heuristic seems to always work.
[dunshire.git] / TODO
1 1. Make it work on a cartesian product of cones in the correct order.
2
3 2. Make it work on a cartesian product of cones in the wrong order
4 (apply a perm utation before/after).
5
6 3. Make sure we have the dimensions of the PSD cone correct.
7
8 4. Come up with a fast heuristic (like making nu huge and taking e1 as
9 our point) that finds a primal feasible point.
10
11 7. Figure out why this happens, too:
12
13 FAIL: test_scaling_icecream (test.symmetric_linear_game_test
14 .SymmetricLinearGameTest)
15 ----------------------------------------------------------------------
16 Traceback (most recent call last):
17 File "/home/mjo/src/dunshire/test/symmetric_linear_game_test.py",
18 line 336, in test_scaling_icecream
19 self.assert_scaling_works(L, K, e1, e2)
20 File "/home/mjo/src/dunshire/test/symmetric_linear_game_test.py",
21 line 318, in assert_scaling_works
22 self.assert_within_tol(alpha*value1, value2)
23 File "/home/mjo/src/dunshire/test/symmetric_linear_game_test.py",
24 line 254, in assert_within_tol
25 self.assertTrue(abs(first - second) < options.ABS_TOL)
26 AssertionError: False is not true
27
28
29 FAIL: test_translation_orthant (test.symmetric_linear_game_test
30 SymmetricLinearGameTest)
31 ----------------------------------------------------------------------
32 Traceback (most recent call last):
33 File "/home/mjo/src/dunshire/test/symmetric_linear_game_test.py",
34 line 374, in test_translation_orthant
35 self.assert_translation_works(L, K, e1, e2)
36 File "/home/mjo/src/dunshire/test/symmetric_linear_game_test.py",
37 line 366, in assert_translation_works
38 self.assert_within_tol(value2, inner_product(M*x_bar, y_bar))
39 File "/home/mjo/src/dunshire/test/symmetric_linear_game_test.py",
40 line 254, in assert_within_tol
41 self.assertTrue(abs(first - second) < options.ABS_TOL)
42 AssertionError: False is not true
43
44
45 12. Investigate this test failure too. It looks like it was really
46 close to being solved, but we would have needed a fudge factor
47 of three instead of two.
48
49 ERROR: test_positive_operator_value (test.symmetric_linear_game_test
50 .SymmetricLinearGameTest)
51 ----------------------------------------------------------------------
52 Traceback (most recent call last):
53 File "/home/mjo/src/dunshire/test/symmetric_linear_game_test.py",
54 line 550, in test_positive_operator_value
55 self.assertTrue(G.solution().game_value() >= -options.ABS_TOL)
56 File "/home/mjo/src/dunshire/dunshire/games.py", line 515, in solution
57 raise GameUnsolvableException(self, soln_dict)
58 dunshire.errors.GameUnsolvableException: Solution failed with result
59 "unknown."
60 The linear game (L, K, e1, e2) where
61 L = [8.0814704 3.5584693]
62 [3.9986814 9.3381562],
63 K = Nonnegative orthant in the real 2-space,
64 e1 = [1.3288182]
65 [0.7458942],
66 e2 = [0.6814326]
67 [3.3799082],
68 Condition((L, K, e1, e2)) = 41.093597.
69 CVXOPT returned:
70 dual infeasibility: 2.368640021750079e-06
71 dual objective: -7.867137172157051
72 dual slack: 1.1314089173606103e-07
73 gap: 1.1404410161224882e-06
74 iterations: 6
75 primal infeasibility: 1.379959981010593e-07
76 primal objective: -7.867137449574777
77 primal slack: 1.0550559882036034e-08
78 relative gap: 1.4496264027827932e-07
79 residual as dual infeasibility certificate: 0.12711103707156543
80 residual as primal infeasibility certificate: None
81 s:
82 [1.4674968]
83 [0.0000000]
84 [1.4055364]
85 [0.0000000]
86 status: unknown
87 x:
88 [ 7.8671374]
89 [ 1.4674968]
90 [-0.0000000]
91 y:
92 [7.8671372]
93 z:
94 [ 0.0000001]
95 [14.0707905]
96 [ 0.0000002]
97 [ 1.3406728]
98
99 13. Add a test to ensure that if we solve the same game twice, we get the
100 same answer back.