[Symphony-tickets] [SYMPHONY Branch-and-Cut Framework] #46: OsiSym resolve() ignores added constraints after initialSolve?

SYMPHONY Branch-and-Cut Framework coin-trac at coin-or.org
Fri Sep 1 13:30:38 EDT 2006


#46: OsiSym resolve() ignores added constraints after initialSolve?
----------------------+-----------------------------------------------------
 Reporter:  kishshen  |       Owner:  tkr
     Type:  defect    |      Status:  new
 Priority:  major     |   Milestone:     
Component:  Master    |     Version:     
 Severity:  normal    |    Keywords:     
----------------------+-----------------------------------------------------
 I have been doing some more tests with my code. As far as I can tell, once
 OsiSym have solved
 my problem once, it will ignore new constraints that are added to the
 problem.

 Here is what I did. First I set up the following problem (this is written
 out by OsiSym's writeLp()):

 Minimize
 obj: x0
 Subject To
 cons0:  x0 + x1 >= 2
 cons1:  x0 - x1 = 0
 Bounds
  x0 Free
  x1 Free
 End

 This problem is correctly solved by calling initialSolve(), giving an
 objective value of 1, and X and Y
 with values of 1.

 I then add a new constraint x0 + x1 >= 4, and resolve the problem with
 resolve(), but I get the
 same result as previously, i.e. the new constraint seem to be ignored,
 even though the constraint
 does seem to have been added to the problem, as shown by writeLp():

 Minimize
 obj: x0
 Subject To
 cons0:  x0 + x1 >= 2
 cons1:  x0 - x1 = 0
 cons2:  x0 + x1 >= 4
 Bounds
  x0 Free
  x1 Free
 End

 I changed the code to call initialSolve() instead of resolve(), and this
 time I get the correct
 answers to both solve, before and after adding the new constraint.

 By the way, I noticed a difference in the Doxygen documentation for
 resolve() for
 OsiSolverInterface and OsiSymSolverInterface.

 Here is what OsiSolverInterface say thatt resolve() is "resolve an LP
 relaxation after problem
 modification", which is exactly how I am using it, but in
 OsiSymSolverInterface, the doc
 for resolve() says "Resolve an IP problem modification". Is this correct?

-- 
Ticket URL: <https://projects.coin-or.org/SYMPHONY/ticket/46>
SYMPHONY Branch-and-Cut Framework <http://example.com/>
My example project


More information about the Symphony-tickets mailing list