X-Git-Url: https://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=dunshire%2Fgames.py;h=4451606c42c27d4e02d4cdfc30c469a1756d99e5;hb=465df68194eff71cadf77281a3a612111d6b0785;hp=c841caae752b9075ee28030d2a15df5d42354308;hpb=97615c546db173a168cedc776205aeba106751e4;p=dunshire.git diff --git a/dunshire/games.py b/dunshire/games.py index c841caa..4451606 100644 --- a/dunshire/games.py +++ b/dunshire/games.py @@ -505,7 +505,13 @@ class SymmetricLinearGame: # objectives match (within a tolerance) and that the # primal/dual optimal solutions are within the cone (to a # tolerance as well). - if abs(p1_value - p2_value) > options.ABS_TOL: + # + # The fudge factor of two is basically unjustified, but + # makes intuitive sense when you imagine that the primal + # value could be under the true optimal by ``ABS_TOL`` + # and the dual value could be over by the same amount. + # + if abs(p1_value - p2_value) > 2*options.ABS_TOL: raise GameUnsolvableException(self, soln_dict) if (p1_optimal not in self._K) or (p2_optimal not in self._K): raise GameUnsolvableException(self, soln_dict)