Open katbusch opened 6 years ago
So it seems this is likely just a better solution. In the old version:
dist(s, K) = 4.5449e-07, dist(y, K*) = 0.0000e+00, s'y/|s||y| = 1.6867e-09
|Ax + s - b|_2 / (1 + |b|_2) = 5.7120e-03
|A'y + c|_2 / (1 + |c|_2) = 1.2275e-02
|c'x + b'y| / (1 + |c'x| + |b'y|) = 1.2320e-05
In the new version
dist(s, K) = 9.2188e-21, dist(y, K*) = 0.0000e+00, s'y/|s||y| = 5.2658e-10
primal res: |Ax + s - b|_2 / (1 + |b|_2) = 5.4125e-06
dual res: |A'y + c|_2 / (1 + |c|_2) = 2.6497e-07
rel gap: |c'x + b'y| / (1 + |c'x| + |b'y|) = 9.7344e-09
Error has gone down
@kaelgreco I've fixed this test by adding two alternate solutions, so this isn't as high priority, but I'm guessing the test is still unstable so please take a look at some point. @bnaul suggested we could check the objective value instead of the weights. There might also be more stable inputs.
FYI those aren't technically the objective function, they show how much the estimated solution changed in the last iteration (that's how it decides when to stop). The objective looks like
c'x = -282.1634, -b'y = -282.1634
EDIT: checking rel_gap < 1e-6
or so would also be fine
I've tried downgrading cvxpy, numpy, and pandas to working versions but ran into issues where those older versions are no longer working, so there's not currently a way to get this into a working state