[Scip] Integrating Lpi updates via a callback mechanism

fergal mohan fergal at mohandigital.com
Sat Aug 15 00:30:12 MEST 2009


Hi all, the combined LP and MIP .NET wrapper for SCIP is progressing well. I have abstracted the functionality to a common SCIPdotNET::SCIPsolver which behind the scenes manages both LP (via Lpi) and MIP problems. If the user doesn't create a specific problem then SCIPsolver creates and manages both (LP and MIP) and calls the appropriate one depending on whether there are any variables fixed as integers. The user can have more explicit control by creating/retrieving the LP or MIP problem and calling their methods directly (so long as they are legit). Anyway I'm now trying to figure out if there is an elegant way that I can provide the various info, warning and error messages that SCIP supports when the Lpi interface is being called. For SCIP I'm subclassing scip::ObjEventhdlr to hook into the scip_exec() event handler to callback with Custom Messages but am relying on the standard  SCIP_DECL_MESSAGEINFO, SCIP_DECL_MESSAGEWARNING and
 SCIP_DECL_MESSAGEERROR. I'd like to funnel updates from the Lpi progress (NumIterations etc.) through the same mechanism so wanted to check if there was any wisdom out there on a low-impact way to do this. My brute-force approach would be to subclass SPxSolver and override the terminate() method to allow a UI feedback call to be inserted on a regular basis. I did this in an initial build using Soplex only but realize it's heavy-handed and it will need "maintenance" after every version release. Are there any other suggestions among those in the know?
Fergal


More information about the Scip mailing list