/** creates the handler for origbranch constraints and includes it in SCIP */ SCIP_RETCODE SCIPincludeConshdlrOrigbranch( SCIP* scip /**< SCIP data structure */ ) { SCIP_CONSHDLRDATA* conshdlrData; SCIPdebugMessage("Including branch orig constraint handler.\n"); SCIP_CALL( SCIPallocMemory(scip, &conshdlrData) ); conshdlrData->stack = NULL; conshdlrData->nstack = 0; conshdlrData->maxstacksize = 25; conshdlrData->rootcons = NULL; /* include constraint handler */ SCIP_CALL( SCIPincludeConshdlr(scip, CONSHDLR_NAME, CONSHDLR_DESC, CONSHDLR_SEPAPRIORITY, CONSHDLR_ENFOPRIORITY, CONSHDLR_CHECKPRIORITY, CONSHDLR_SEPAFREQ, CONSHDLR_PROPFREQ, CONSHDLR_EAGERFREQ, CONSHDLR_MAXPREROUNDS, CONSHDLR_DELAYSEPA, CONSHDLR_DELAYPROP, CONSHDLR_DELAYPRESOL, CONSHDLR_NEEDSCONS, SCIP_PROPTIMING_ALWAYS, consCopyOrigbranch, consFreeOrigbranch, consInitOrigbranch, consExitOrigbranch, consInitpreOrigbranch, consExitpreOrigbranch, consInitsolOrigbranch, consExitsolOrigbranch, consDeleteOrigbranch, consTransOrigbranch, consInitlpOrigbranch, consSepalpOrigbranch, consSepasolOrigbranch, consEnfolpOrigbranch, consEnfopsOrigbranch, consCheckOrigbranch, consPropOrigbranch, consPresolOrigbranch, consRespropOrigbranch, consLockOrigbranch, consActiveOrigbranch, consDeactiveOrigbranch, consEnableOrigbranch, consDisableOrigbranch, consDelvarsOrigbranch, consPrintOrigbranch, consCopyOrigbranch, consParseOrigbranch, consGetVarsOrigbranch, consGetNVarsOrigbranch, conshdlrData) ); return SCIP_OKAY; }
/** creates the handler for disjunction constraints and includes it in SCIP */ SCIP_RETCODE SCIPincludeConshdlrDisjunction( SCIP* scip /**< SCIP data structure */ ) { SCIP_CONSHDLRDATA* conshdlrdata; /* create disjunction constraint handler data */ conshdlrdata = NULL; /* include constraint handler */ SCIP_CALL( SCIPincludeConshdlr(scip, CONSHDLR_NAME, CONSHDLR_DESC, CONSHDLR_SEPAPRIORITY, CONSHDLR_ENFOPRIORITY, CONSHDLR_CHECKPRIORITY, CONSHDLR_SEPAFREQ, CONSHDLR_PROPFREQ, CONSHDLR_EAGERFREQ, CONSHDLR_MAXPREROUNDS, CONSHDLR_DELAYSEPA, CONSHDLR_DELAYPROP, CONSHDLR_DELAYPRESOL, CONSHDLR_NEEDSCONS, CONSHDLR_PROP_TIMING, conshdlrCopyDisjunction, consFreeDisjunction, consInitDisjunction, consExitDisjunction, consInitpreDisjunction, consExitpreDisjunction, consInitsolDisjunction, consExitsolDisjunction, consDeleteDisjunction, consTransDisjunction, consInitlpDisjunction, consSepalpDisjunction, consSepasolDisjunction, consEnfolpDisjunction, consEnfopsDisjunction, consCheckDisjunction, consPropDisjunction, consPresolDisjunction, consRespropDisjunction, consLockDisjunction, consActiveDisjunction, consDeactiveDisjunction, consEnableDisjunction, consDisableDisjunction, consDelvarsDisjunction, consPrintDisjunction, consCopyConjuction, consParseConjuction, conshdlrdata) ); return SCIP_OKAY; }
/** creates the constraint handler for the given constraint handler object and includes it in SCIP */ SCIP_RETCODE SCIPincludeObjConshdlr( SCIP* scip, /**< SCIP data structure */ scip::ObjConshdlr* objconshdlr, /**< constraint handler object */ SCIP_Bool deleteobject /**< should the constraint handler object be deleted when conshdlr is freed? */ ) { SCIP_CONSHDLRDATA* conshdlrdata; assert(scip != NULL); assert(objconshdlr != NULL); assert(objconshdlr->scip_ == scip); /* create obj constraint handler data */ conshdlrdata = new SCIP_CONSHDLRDATA; conshdlrdata->objconshdlr = objconshdlr; conshdlrdata->deleteobject = deleteobject; /* include constraint handler */ SCIP_CALL( SCIPincludeConshdlr(scip, objconshdlr->scip_name_, objconshdlr->scip_desc_, objconshdlr->scip_sepapriority_, objconshdlr->scip_enfopriority_, objconshdlr->scip_checkpriority_, objconshdlr->scip_sepafreq_, objconshdlr->scip_propfreq_, objconshdlr->scip_eagerfreq_, objconshdlr->scip_maxprerounds_, objconshdlr->scip_delaysepa_, objconshdlr->scip_delayprop_, objconshdlr->scip_delaypresol_, objconshdlr->scip_needscons_, objconshdlr->scip_timingmask_, conshdlrCopyObj, consFreeObj, consInitObj, consExitObj, consInitpreObj, consExitpreObj, consInitsolObj, consExitsolObj, consDeleteObj, consTransObj, consInitlpObj, consSepalpObj, consSepasolObj, consEnfolpObj, consEnfopsObj, consCheckObj, consPropObj, consPresolObj, consRespropObj, consLockObj, consActiveObj, consDeactiveObj, consEnableObj, consDisableObj, consDelVarsObj, consPrintObj, consCopyObj, consParseObj, consGetVarsObj, consGetNVarsObj, conshdlrdata) ); /*lint !e429*/ return SCIP_OKAY; /*lint !e429*/ }
/** creates the handler for xyz constraints and includes it in SCIP */ SCIP_RETCODE SCIPincludeConshdlrXyz( SCIP* scip /**< SCIP data structure */ ) { SCIP_CONSHDLRDATA* conshdlrdata; SCIP_CONSHDLR* conshdlr; /* create xyz constraint handler data */ conshdlrdata = NULL; /* TODO: (optional) create constraint handler specific data here */ conshdlr = NULL; /* include constraint handler */ #if 0 /* use SCIPincludeConshdlr() if you want to set all callbacks explicitly and realize (by getting compiler errors) when * new callbacks are added in future SCIP versions */ SCIP_CALL( SCIPincludeConshdlr(scip, CONSHDLR_NAME, CONSHDLR_DESC, CONSHDLR_SEPAPRIORITY, CONSHDLR_ENFOPRIORITY, CONSHDLR_CHECKPRIORITY, CONSHDLR_SEPAFREQ, CONSHDLR_PROPFREQ, CONSHDLR_EAGERFREQ, CONSHDLR_MAXPREROUNDS, CONSHDLR_DELAYSEPA, CONSHDLR_DELAYPROP, CONSHDLR_NEEDSCONS, CONSHDLR_PROP_TIMING, CONSHDLR_PRESOLTIMING, conshdlrCopyXyz, consFreeXyz, consInitXyz, consExitXyz, consInitpreXyz, consExitpreXyz, consInitsolXyz, consExitsolXyz, consDeleteXyz, consTransXyz, consInitlpXyz, consSepalpXyz, consSepasolXyz, consEnfolpXyz, consEnfopsXyz, consCheckXyz, consPropXyz, consPresolXyz, consRespropXyz, consLockXyz, consActiveXyz, consDeactiveXyz, consEnableXyz, consDisableXyz, consDelvarsXyz, consPrintXyz, consCopyXyz, consParseXyz, consGetVarsXyz, consGetNVarsXyz, consGetDiveBdChgsXyz, conshdlrdata) ); #else /* use SCIPincludeConshdlrBasic() plus setter functions if you want to set callbacks one-by-one and your code should * compile independent of new callbacks being added in future SCIP versions */ SCIP_CALL( SCIPincludeConshdlrBasic(scip, &conshdlr, CONSHDLR_NAME, CONSHDLR_DESC, CONSHDLR_ENFOPRIORITY, CONSHDLR_CHECKPRIORITY, CONSHDLR_EAGERFREQ, CONSHDLR_NEEDSCONS, consEnfolpXyz, consEnfopsXyz, consCheckXyz, consLockXyz, conshdlrdata) ); assert(conshdlr != NULL); /* set non-fundamental callbacks via specific setter functions */ SCIP_CALL( SCIPsetConshdlrActive(scip, conshdlr, consActiveXyz) ); SCIP_CALL( SCIPsetConshdlrCopy(scip, conshdlr, conshdlrCopyXyz, consCopyXyz) ); SCIP_CALL( SCIPsetConshdlrDeactive(scip, conshdlr, consDeactiveXyz) ); SCIP_CALL( SCIPsetConshdlrDelete(scip, conshdlr, consDeleteXyz) ); SCIP_CALL( SCIPsetConshdlrDelvars(scip, conshdlr, consDelvarsXyz) ); SCIP_CALL( SCIPsetConshdlrDisable(scip, conshdlr, consDisableXyz) ); SCIP_CALL( SCIPsetConshdlrEnable(scip, conshdlr, consEnableXyz) ); SCIP_CALL( SCIPsetConshdlrExit(scip, conshdlr, consExitXyz) ); SCIP_CALL( SCIPsetConshdlrExitpre(scip, conshdlr, consExitpreXyz) ); SCIP_CALL( SCIPsetConshdlrExitsol(scip, conshdlr, consExitsolXyz) ); SCIP_CALL( SCIPsetConshdlrFree(scip, conshdlr, consFreeXyz) ); SCIP_CALL( SCIPsetConshdlrGetDiveBdChgs(scip, conshdlr, consGetDiveBdChgsXyz) ); SCIP_CALL( SCIPsetConshdlrGetVars(scip, conshdlr, consGetVarsXyz) ); SCIP_CALL( SCIPsetConshdlrGetNVars(scip, conshdlr, consGetNVarsXyz) ); SCIP_CALL( SCIPsetConshdlrInit(scip, conshdlr, consInitXyz) ); SCIP_CALL( SCIPsetConshdlrInitpre(scip, conshdlr, consInitpreXyz) ); SCIP_CALL( SCIPsetConshdlrInitsol(scip, conshdlr, consInitsolXyz) ); SCIP_CALL( SCIPsetConshdlrInitlp(scip, conshdlr, consInitlpXyz) ); SCIP_CALL( SCIPsetConshdlrParse(scip, conshdlr, consParseXyz) ); SCIP_CALL( SCIPsetConshdlrPresol(scip, conshdlr, consPresolXyz, CONSHDLR_MAXPREROUNDS, CONSHDLR_PRESOLTIMING) ); SCIP_CALL( SCIPsetConshdlrPrint(scip, conshdlr, consPrintXyz) ); SCIP_CALL( SCIPsetConshdlrProp(scip, conshdlr, consPropXyz, CONSHDLR_PROPFREQ, CONSHDLR_DELAYPROP, CONSHDLR_PROP_TIMING) ); SCIP_CALL( SCIPsetConshdlrResprop(scip, conshdlr, consRespropXyz) ); SCIP_CALL( SCIPsetConshdlrSepa(scip, conshdlr, consSepalpXyz, consSepasolXyz, CONSHDLR_SEPAFREQ, CONSHDLR_SEPAPRIORITY, CONSHDLR_DELAYSEPA) ); SCIP_CALL( SCIPsetConshdlrTrans(scip, conshdlr, consTransXyz) ); #endif #ifdef LINCONSUPGD_PRIORITY if( SCIPfindConshdlr(scip,"linear") != NULL ) { /* include the linear constraint upgrade in the linear constraint handler */ SCIP_CALL( SCIPincludeLinconsUpgrade(scip, linconsUpgdXyz, LINCONSUPGD_PRIORITY, CONSHDLR_NAME) ); } #endif /* add xyz constraint handler parameters */ /* TODO: (optional) add constraint handler specific parameters with SCIPaddTypeParam() here */ return SCIP_OKAY; }