36#ifndef __SCIP_PARA_COMM_POINT_HDLR_H__
37#define __SCIP_PARA_COMM_POINT_HDLR_H__
45#include "objscip/objeventhdlr.h"
46#include "scip/scipdefplugins.h"
76 void sendNode( SCIP *scip, SCIP_NODE* node,
int depth,
int nBranchVars, SCIP_VAR **branchVars, SCIP_Real *branchBounds, SCIP_BOUNDTYPE *boundTypes );
85 : scip::ObjEventhdlr::ObjEventhdlr(solver->getScip(),
"ScipParaObjCommPointHdlr",
"Event handler to communicate with LC"),
120 SCIP *inOriginalScip,
122 ) : scip::ObjEventhdlr::ObjEventhdlr(subScip,
"ScipParaObjCommPointHdlr",
"Event handler to communicate with LC"),
180 SCIP_EVENTHDLR* eventhdlr
189 SCIP_EVENTHDLR* eventhdlr
192#ifdef SCIP_EVENTTYPE_COMM
193 SCIP_CALL( SCIPcatchEvent( scip,
194 ( SCIP_EVENTTYPE_GBDCHANGED |
195 SCIP_EVENTTYPE_BOUNDTIGHTENED |
196 SCIP_EVENTTYPE_LPEVENT |
197 SCIP_EVENTTYPE_ROWEVENT |
199 SCIP_EVENTTYPE_NODEEVENT |
200 SCIP_EVENTTYPE_BESTSOLFOUND |
203 , eventhdlr, NULL, NULL) );
205 SCIP_CALL( SCIPcatchEvent( scip,
206 ( SCIP_EVENTTYPE_GBDCHANGED |
207 SCIP_EVENTTYPE_BOUNDTIGHTENED |
208 SCIP_EVENTTYPE_LPEVENT |
209 SCIP_EVENTTYPE_ROWEVENT |
211 SCIP_EVENTTYPE_NODEEVENT |
212 SCIP_EVENTTYPE_BESTSOLFOUND
214 , eventhdlr, NULL, NULL) );
223 nvars = SCIPgetNVars(scip);
224 vars = SCIPgetVars(scip);
226 for( i = 0; i < nvars ; ++i )
228 SCIP_CALL( SCIPcatchVarEvent(scip, vars[i], SCIP_EVENTTYPE_GBDCHANGED, eventhdlr, NULL, NULL) );
249 SCIP_EVENTHDLR* eventhdlr
264 SCIP_EVENTHDLR* eventhdlr
277 SCIP_EVENTHDLR* eventhdlr
286 SCIP_EVENTHDLR* eventhdlr,
287 SCIP_EVENTDATA** eventdata
302 SCIP_EVENTHDLR* eventhdlr,
304 SCIP_EVENTDATA* eventdata
void createProblem(SCIP *scip, int method, bool noPreprocessingInLC, bool usetRootNodeCuts, ScipDiffParamSet *scipDiffParamSetRoot, ScipDiffParamSet *scipDiffParamSet, char *settingsNameLC, char *isolname)
ObjCloneable * clone(SCIP *scip) const
ScipParaObjLimitUpdator * scipParaObjLimitUpdator
SCIP_Longint previousNNodesSolved
ScipParaSolver * scipParaSolver
virtual SCIP_RETCODE scip_free(SCIP *scip, SCIP_EVENTHDLR *eventhdlr)
bool originalSelectionStrategy
ScipParaObjCommPointHdlr(UG::ParaComm *comm, ScipParaSolver *solver, SCIP *subScip, SCIP *inOriginalScip, bool inCloned)
const char * changeNodeSelName
~ScipParaObjCommPointHdlr()
virtual SCIP_RETCODE scip_initsol(SCIP *scip, SCIP_EVENTHDLR *eventhdlr)
void processNewSolution(SCIP *scip, SCIP_EVENT *event)
SCIP * scipToCheckRootSolvability
void setOriginalNodeSelectionStrategy()
SCIP_Longint previousLpIter
ScipParaObjCommPointHdlr(UG::ParaComm *comm, ScipParaSolver *solver, ScipParaObjLimitUpdator *updator)
virtual SCIP_RETCODE scip_delete(SCIP *scip, SCIP_EVENTHDLR *eventhdlr, SCIP_EVENTDATA **eventdata)
bool checkRootNodeSolvabilityAndSendParaNode(SCIP *scip)
SCIP_Bool iscloneable(void) const
virtual SCIP_RETCODE scip_exitsol(SCIP *scip, SCIP_EVENTHDLR *eventhdlr)
virtual SCIP_RETCODE scip_exit(SCIP *scip, SCIP_EVENTHDLR *eventhdlr)
void sendNode(SCIP *scip, SCIP_NODE *node, int depth, int nBranchVars, SCIP_VAR **branchVars, SCIP_Real *branchBounds, SCIP_BOUNDTYPE *boundTypes)
void resetCommPointHdlr()
void changeSearchStrategy(SCIP *scip)
bool ifFeasibleInOriginalProblem(SCIP *scip, int nNewBranchVars, SCIP_VAR **newBranchVars, SCIP_Real *newBranchBounds)
virtual SCIP_RETCODE scip_exec(SCIP *scip, SCIP_EVENTHDLR *eventhdlr, SCIP_EVENT *event, SCIP_EVENTDATA *eventdata)
bool startedCollectingNodesForInitialRampUp
virtual SCIP_RETCODE scip_init(SCIP *scip, SCIP_EVENTHDLR *eventhdlr)
void setOriginalPriority()
const char * getChangeNodeSelName()
ParaParamSet * getParaParamSet()
get ParaParamSet object
ParaInstance * getParaInstance()
get ParaInstance object
Base class of communicator object.
bool getBoolParamValue(int param)
get bool parameter value
int getIntParamValue(int param)
get int parameter value
static ScipParaCommTh * comm
static const int RootNodeSolvabilityCheck
static const int UseRootNodeCuts
static const int InstanceTransferMethod
static const int CollectOnce
static const int NoPreprocessingInLC
static const int RampUpPhaseProcess
ParaComm extension for SCIP solver.
ParaInstance extenstion for SCIP solver.
heuristic to update objlimit
ParaSolver extension for SCIP: Parallelized solver implementation for SCIP.