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 SCIP_EVENTTYPE eventtype = SCIP_EVENTTYPE_LPEVENT |
193 SCIP_EVENTTYPE_ROWADDEDSEPA | SCIP_EVENTTYPE_ROWDELETEDSEPA | SCIP_EVENTTYPE_ROWADDEDLP | SCIP_EVENTTYPE_ROWDELETEDLP |
195 SCIP_EVENTTYPE_NODEEVENT |
196 SCIP_EVENTTYPE_BESTSOLFOUND;
197#ifdef SCIP_EVENTTYPE_COMM
198 eventtype |= SCIP_EVENTTYPE_COMM;
200 SCIP_CALL( SCIPcatchEvent( scip, eventtype, eventhdlr, NULL, NULL) );
208 nvars = SCIPgetNVars(scip);
209 vars = SCIPgetVars(scip);
211 for( i = 0; i < nvars ; ++i )
213 SCIP_CALL( SCIPcatchVarEvent(scip, vars[i], SCIP_EVENTTYPE_GBDCHANGED, eventhdlr, NULL, NULL) );
234 SCIP_EVENTHDLR* eventhdlr
249 SCIP_EVENTHDLR* eventhdlr
262 SCIP_EVENTHDLR* eventhdlr
271 SCIP_EVENTHDLR* eventhdlr,
272 SCIP_EVENTDATA** eventdata
287 SCIP_EVENTHDLR* eventhdlr,
289 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.