Solving Constraint Integer Programs

Interface changes between SCIP 1.0 and SCIP 1.1
  • The callback CONSCHECK in the constraint handlers now has a new parameter printreason that tells a constraint handler to output the reason for a possible infeasibility of the solution to be checked using SCIPinfoMessage(). Have a look at one of the constraint handlers implemented in SCIP to see how it works. This methodology makes it possible to output the reason of a violation in human readable form, for instance, for the check at the end of a SCIP run, where the obtained best solution is checked against the original formulation.
    This change often has little effect on C-implementations, since this parameter can be safely ignored with respect to the correctness of the code. The corresponding C++ method scip::ObjConshdlr::scip_check(), however, has to be extended and will not compile otherwise.
  • SCIPcheckSolOrig() is restructured. The last two parameters have changed. They are now bools indicating whether the reason for the violation should be printed to the standard output and whether all violations should be printed. This reflects the changes in the constraint handlers above, which allow the automation of the feasibility test. The pointers to store the constraint handler or constraint are not needed anymore.
  • New parameters "extension" and "genericnames" in SCIPprintTransProblem(), SCIPprintOrigProblem(), SCIPwriteOrigProblem(), and SCIPwriteTransProblem() defining the requested format or NULL for default CIP format and using generic names for the variables and constraints. Examples are
    • SCIPprintTransProblem(scip, NULL, NULL, TRUE) displays the transformed problem in CIP format with generic variables and constraint names
    • SCIPprintOrigProblem(scip, NULL, "lp", FALSE) displays the original problem in LP format with original variables and constraint names.
  • Added user pointer to callback methods of hash table, see pub_misc.h.
  • New parameter "extension" in SCIPreadProb(), defining a desired file format or NULL if file extension should be used.