@@ -41,13 +41,13 @@ def addcut(self, checkonly, sol):
4141 return cutsadded
4242
4343 def conscheck (self , constraints , solution , checkintegrality , checklprows , printreason , completely ):
44- if not self .addcut (checkonly = True , sol = solution ):
44+ if self .addcut (checkonly = True , sol = solution ):
4545 return {"result" : SCIP_RESULT .INFEASIBLE }
4646 else :
4747 return {"result" : SCIP_RESULT .FEASIBLE }
4848
4949 def consenfolp (self , constraints , nusefulconss , solinfeasible ):
50- if self .addcut (checkonly = False ):
50+ if self .addcut (checkonly = False , sol = None ):
5151 return {"result" : SCIP_RESULT .CONSADDED }
5252 else :
5353 return {"result" : SCIP_RESULT .FEASIBLE }
@@ -151,6 +151,7 @@ def mk_example():
151151 model = sils (T , f , c , d , h )
152152 y , x , I = model .data
153153 model .optimize ()
154+ sils_obj = model .getObjVal ()
154155 print ("\n Optimal value [standard]:" , model .getObjVal ())
155156 print ("%8s%8s%8s%8s%8s%8s%12s%12s" % ("t" , "fix" , "var" , "h" , "dem" , "y" , "x" , "I" ))
156157 for t in range (1 , T + 1 ):
@@ -161,9 +162,12 @@ def mk_example():
161162 model = sils_cut (T , f , c , d , h , conshdlr )
162163 model .setBoolParam ("misc/allowstrongdualreds" , 0 )
163164 model .optimize ()
165+ sils_cut_obj = model .getObjVal ()
164166 y , x , I = model .data
165167 print ("\n Optimal value [cutting planes]:" , model .getObjVal ())
166168 print ("%8s%8s%8s%8s%8s%8s%12s%12s" % ("t" , "fix" , "var" , "h" , "dem" , "y" , "x" , "I" ))
167169 for t in range (1 , T + 1 ):
168170 print ("%8d%8d%8d%8d%8d%8.1f%12.1f%12.1f" % (
169171 t , f [t ], c [t ], h [t ], d [t ], model .getVal (y [t ]), model .getVal (x [t ]), model .getVal (I [t ])))
172+
173+ assert abs (sils_obj - sils_cut_obj ) <= 1e-6
0 commit comments