#include <scipParaObjCommPointHdlr.h>
Public Member Functions | |
ScipParaObjCommPointHdlr (UG::ParaComm *comm, ScipParaSolver *solver, ScipParaObjLimitUpdator *updator) | |
ScipParaObjCommPointHdlr (UG::ParaComm *comm, ScipParaSolver *solver, SCIP *subScip, SCIP *inOriginalScip, bool inCloned) | |
~ScipParaObjCommPointHdlr () | |
void | resetCommPointHdlr () |
ObjCloneable * | clone (SCIP *scip) const |
SCIP_Bool | iscloneable (void) const |
bool | isColne () |
void | setOriginalNodeSelectionStrategy () |
virtual SCIP_RETCODE | scip_free (SCIP *scip, SCIP_EVENTHDLR *eventhdlr) |
virtual SCIP_RETCODE | scip_init (SCIP *scip, SCIP_EVENTHDLR *eventhdlr) |
void | issueInterrupt () |
bool | isInterrupting () |
virtual SCIP_RETCODE | scip_exit (SCIP *scip, SCIP_EVENTHDLR *eventhdlr) |
virtual SCIP_RETCODE | scip_initsol (SCIP *scip, SCIP_EVENTHDLR *eventhdlr) |
virtual SCIP_RETCODE | scip_exitsol (SCIP *scip, SCIP_EVENTHDLR *eventhdlr) |
virtual SCIP_RETCODE | scip_delete (SCIP *scip, SCIP_EVENTHDLR *eventhdlr, SCIP_EVENTDATA **eventdata) |
virtual SCIP_RETCODE | scip_exec (SCIP *scip, SCIP_EVENTHDLR *eventhdlr, SCIP_EVENT *event, SCIP_EVENTDATA *eventdata) |
Private Member Functions | |
void | processNewSolution (SCIP *scip, SCIP_EVENT *event) |
bool | checkRootNodeSolvabilityAndSendParaNode (SCIP *scip) |
void | sendNode (SCIP *scip, SCIP_NODE *node, int depth, int nBranchVars, SCIP_VAR **branchVars, SCIP_Real *branchBounds, SCIP_BOUNDTYPE *boundTypes) |
void | changeSearchStrategy (SCIP *scip) |
bool | ifFeasibleInOriginalProblem (SCIP *scip, int nNewBranchVars, SCIP_VAR **newBranchVars, SCIP_Real *newBranchBounds) |
Private Attributes | |
UG::ParaComm * | paraComm |
ScipParaSolver * | scipParaSolver |
ScipParaObjLimitUpdator * | scipParaObjLimitUpdator |
SCIP * | scipToCheckRootSolvability |
SCIP * | originalScip |
bool | needToSendNode |
bool | originalSelectionStrategy |
SCIP_Longint | previousNNodesSolved |
SCIP_Longint | previousLpIter |
const char * | changeNodeSelName |
bool | cloned |
bool | interrupting |
bool | startedCollectingNodesForInitialRampUp |
C++ wrapper object for event handlers
Definition at line 54 of file scipParaObjCommPointHdlr.h.
ScipParaObjCommPointHdlr | ( | UG::ParaComm * | comm, |
ScipParaSolver * | solver, | ||
ScipParaObjLimitUpdator * | updator | ||
) |
Definition at line 80 of file scipParaObjCommPointHdlr.h.
References ScipParaObjCommPointHdlr::changeNodeSelName, ScipParaObjCommPointHdlr::cloned, UG::CollectOnce, ScipParaInstance::createProblem(), ParaParamSet::getBoolParamValue(), ScipParaSolver::getChangeNodeSelName(), ParaParamSet::getIntParamValue(), BbParaSolver::getParaInstance(), BbParaSolver::getParaParamSet(), UG::InstanceTransferMethod, UG::NoPreprocessingInLC, UG::RampUpPhaseProcess, ParaSCIP::RootNodeSolvabilityCheck, ScipParaObjCommPointHdlr::scipParaSolver, ScipParaObjCommPointHdlr::scipToCheckRootSolvability, ScipParaObjCommPointHdlr::startedCollectingNodesForInitialRampUp, and UG::UseRootNodeCuts.
Referenced by ScipParaObjCommPointHdlr::clone().
ScipParaObjCommPointHdlr | ( | UG::ParaComm * | comm, |
ScipParaSolver * | solver, | ||
SCIP * | subScip, | ||
SCIP * | inOriginalScip, | ||
bool | inCloned | ||
) |
Definition at line 116 of file scipParaObjCommPointHdlr.h.
References UG::CollectOnce, ParaParamSet::getBoolParamValue(), ParaParamSet::getIntParamValue(), BbParaSolver::getParaParamSet(), UG::RampUpPhaseProcess, ScipParaObjCommPointHdlr::scipParaSolver, and ScipParaObjCommPointHdlr::startedCollectingNodesForInitialRampUp.
destructor
Definition at line 136 of file scipParaObjCommPointHdlr.h.
References ScipParaObjCommPointHdlr::scipToCheckRootSolvability.
|
private |
Definition at line 1297 of file scipParaObjCommPointHdlr.cpp.
References ScipParaObjCommPointHdlr::changeNodeSelName, ScipParaObjCommPointHdlr::originalSelectionStrategy, ScipParaObjCommPointHdlr::scipParaSolver, and ScipParaSolver::setNPreviousNodesLeft().
Referenced by ScipParaObjCommPointHdlr::scip_exec().
|
private |
check root node solvability
remove the node sent from SCIP environment
remove the node sent from SCIP environment
Definition at line 1006 of file scipParaObjCommPointHdlr.cpp.
References UG::AllBoundChangesTransfer, BbParaSolver::countInPrecheckSolvedParaNodes(), DEF_SCIP_PARA_COMM, DEFAULT_NUM_EPSILON, EPSGT, EPSLT, ParaParamSet::getBoolParamValue(), BbParaSolver::getGlobalBestIncumbentValue(), ScipParaSolver::getNOrgVars(), ScipParaSolver::getOriginalIndex(), BbParaSolver::getParaParamSet(), ScipParaObjCommPointHdlr::ifFeasibleInOriginalProblem(), ScipParaSolver::isCopyIncreasedVariables(), BbParaSolver::isRacingStage(), MINEPSILON, ScipParaObjCommPointHdlr::needToSendNode, UG::NoAllBoundChangesTransferInRacing, ScipParaObjCommPointHdlr::paraComm, ParaSCIP::RootNodeSolvabilityCheck, BbParaSolver::saveIfImprovedSolutionWasFound(), ScipParaObjCommPointHdlr::scipParaSolver, ScipParaObjCommPointHdlr::scipToCheckRootSolvability, ScipParaObjCommPointHdlr::sendNode(), and THROW_LOGICAL_ERROR2.
Referenced by ScipParaObjCommPointHdlr::scip_exec().
ObjCloneable * clone | ( | SCIP * | scip | ) | const |
clone method, used to copy plugins which are not constraint handlers or variable pricer plugins
scip | SCIP data structure |
Definition at line 154 of file scipParaObjCommPointHdlr.h.
References ScipParaSolver::getScip(), ScipParaObjCommPointHdlr::paraComm, ScipParaObjCommPointHdlr::ScipParaObjCommPointHdlr(), and ScipParaObjCommPointHdlr::scipParaSolver.
|
private |
Definition at line 1325 of file scipParaObjCommPointHdlr.cpp.
References ScipParaSolver::getNOrgVars(), ScipParaSolver::getOrgVarLb(), ScipParaSolver::getOrgVarUb(), and ScipParaObjCommPointHdlr::scipParaSolver.
Referenced by ScipParaObjCommPointHdlr::checkRootNodeSolvabilityAndSendParaNode().
SCIP_Bool iscloneable | ( | void | ) | const |
returns whether the objective plugin is copyable
Definition at line 161 of file scipParaObjCommPointHdlr.h.
bool isColne | ( | ) |
Definition at line 169 of file scipParaObjCommPointHdlr.h.
References ScipParaObjCommPointHdlr::cloned.
bool isInterrupting | ( | ) |
Definition at line 241 of file scipParaObjCommPointHdlr.h.
References ScipParaObjCommPointHdlr::interrupting.
Referenced by ScipParaSolver::isInterrupting().
void issueInterrupt | ( | ) |
Definition at line 236 of file scipParaObjCommPointHdlr.h.
References ScipParaObjCommPointHdlr::interrupting.
Referenced by ScipParaSolver::issueInterruptSolve().
|
private |
scip | SCIP data structure |
event | event to process |
Definition at line 58 of file scipParaObjCommPointHdlr.cpp.
References DEF_SCIP_PARA_COMM, ScipParaSolver::getOriginalIndex(), ScipParaSolver::isCopyIncreasedVariables(), ScipParaObjCommPointHdlr::paraComm, BbParaSolver::saveIfImprovedSolutionWasFound(), and ScipParaObjCommPointHdlr::scipParaSolver.
Referenced by ScipParaObjCommPointHdlr::scip_exec().
void resetCommPointHdlr | ( | ) |
Definition at line 145 of file scipParaObjCommPointHdlr.h.
References ScipParaObjCommPointHdlr::interrupting, ScipParaObjCommPointHdlr::needToSendNode, ScipParaObjCommPointHdlr::originalSelectionStrategy, ScipParaObjCommPointHdlr::scipParaSolver, and ScipParaSolver::setOriginalPriority().
Referenced by ScipParaSolver::createSubproblem().
|
virtual |
frees specific constraint data
scip | SCIP data structure |
eventhdlr | the event handler itself |
eventdata | pointer to the event data to free |
Definition at line 284 of file scipParaObjCommPointHdlr.h.
|
virtual |
execution method of event handler
Processes the event. The method is called every time an event occurs, for which the event handler is responsible. Event handlers may declare themselves resposible for events by calling the corresponding SCIPcatch...() method. This method creates an event filter object to point to the given event handler and event data.
set cutoff value
if root node is solved, set root node time
when a problem is solved at root, its root node process time is set on paraSolver main loop
scip | SCIP data structure |
eventhdlr | the event handler itself |
event | event to process |
eventdata | user data for the event |
Definition at line 121 of file scipParaObjCommPointHdlr.cpp.
References UG::AllowableRegressionRatioInMerging, ScipParaSolver::allowCollectingMode(), UG::BreakFirstSubtree, ScipParaObjCommPointHdlr::changeSearchStrategy(), ScipParaObjCommPointHdlr::checkRootNodeSolvabilityAndSendParaNode(), ScipParaObjCommPointHdlr::cloned, UG::CommunicateTighterBoundsInRacing, UG::ControlCollectingModeOnSolverSide, DEF_SCIP_PARA_COMM, UG::Deterministic, UG::DualBoundGainBranchRatio, UG::DualBoundGainTest, UG::EventWeightedDeterministic, UG::FinalCheckpointGeneratingTime, UG::GenerateReducedCheckpointFiles, BbParaSolver::getAggresivePresolvingDepth(), BbParaSolver::getAggresivePresolvingStopDepth(), BbParaSolver::getAverageDualBoundGain(), BbParaSolver::getBigDualGapSubtreeHandlingStrategy(), ParaParamSet::getBoolParamValue(), BbParaSolver::getBoundGapForCollectingMode(), BbParaSolver::getBoundGapForStopSolving(), BbParaSolver::getCurrentNode(), BbParaSolver::getCurrentSolivingNodeMergingStatus(), BbParaSolver::getCurrentSolvingNodeInitialDualBound(), ParaSolver::getDeterministicTimer(), BbParaNode::getDualBoundValue(), ParaDeterministicTimer::getElapsedTime(), BbParaSolver::getElapsedTimeOfNodeSolving(), BbParaSolver::getGlobalBestIncumbentValue(), ParaParamSet::getIntParamValue(), BbParaSolver::getLcBestDualBoundValue(), BbParaSolver::getNSendInCollectingMode(), BbParaSolver::getNStopSolvingMode(), ScipParaSolver::getOffsetDepth(), ScipParaSolver::getOrgVarLb(), ScipParaSolver::getOrgVarUb(), ScipParaSolver::getOriginalIndex(), ScipParaSolver::getOriginalPriority(), BbParaSolver::getParaParamSet(), ParaSolver::getPreviousCommTime(), ScipParaSolver::getProbIndex(), BbParaSolver::getRank(), ParaComm::getRank(), ParaParamSet::getRealParamValue(), ScipParaSolver::getSimplexIter(), BbParaSolver::getSubMipDepth(), BbParaSolver::getTargetBound(), BbParaSolver::getThresholdValue(), ScipParaSolver::getTightenedVarLb(), ScipParaSolver::getTightenedVarUb(), BbParaSolver::getTimeStopSolvingMode(), ScipParaObjCommPointHdlr::interrupting, BbParaSolver::iReceiveMessages(), BbParaSolver::isAggressiveCollecting(), BbParaSolver::isAggressivePresolvingSpecified(), BbParaSolver::isAnotherNodeIsRequested(), BbParaSolver::isBreaking(), BbParaSolver::isCollecingInterrupt(), BbParaSolver::isCollectingAllNodes(), ScipParaSolver::isCollectingModeProhibited(), BbParaSolver::isDualBoundGainTestNeeded(), BbParaSolver::isEnoughGainObtained(), BbParaSolver::isGivenGapReached(), BbParaSolver::isGlobalIncumbentUpdated(), BbParaSolver::isInCollectingMode(), ScipParaSolver::isInterrupting(), BbParaSolver::isManyNodesCollectionRequested(), ScipParaSolver::isOriginalIndeciesMap(), ScipParaSolver::isProbIndeciesMap(), BbParaSolver::isRacingInterruptRequested(), BbParaSolver::isRacingRampUp(), BbParaSolver::isRacingStage(), ParaSolver::isRacingWinner(), ParaSolver::isRampUp(), ParaTask::isRootTask(), ParaSolver::isTerminationRequested(), BbParaSolver::isTransferLimitReached(), UG::KeepNodesDepth, ScipParaObjCommPointHdlr::needToSendNode, BbParaSolver::newParaNodeExists(), UG::NoAlternateSolving, UG::NotificationInterval, BbParaSolver::notificationIsNecessary(), UG::NumberOfNodesKeepingInRootSolver, ScipParaObjCommPointHdlr::originalScip, ScipParaObjCommPointHdlr::originalSelectionStrategy, PARA_COMM_CALL, UG::ParaBYTE, ScipParaObjCommPointHdlr::paraComm, UG::ParaDOUBLE, UG::ParaINT, BbParaSolver::passToken(), ScipParaObjCommPointHdlr::previousLpIter, ScipParaObjCommPointHdlr::previousNNodesSolved, ScipParaObjCommPointHdlr::processNewSolution(), UG::RampUpPhaseProcess, REALABS, BbParaSolver::resetBreakingInfo(), ScipParaObjCommPointHdlr::scipParaObjLimitUpdator, ScipParaObjCommPointHdlr::scipParaSolver, ParaComm::send(), BbParaSolver::sendAnotherNodeRequest(), BbParaSolver::sendLocalSolution(), BbParaSolver::sendSolverState(), BbParaSolver::setNotEnoughGain(), ScipParaSolver::setNPreviousNodesLeft(), ParaSolver::setPreviousCommTime(), BbParaSolver::setRootNodeSimplexIter(), BbParaSolver::setRootNodeTime(), BbParaSolver::setSendBackAllNodes(), ScipParaSolver::setTightenedVarLb(), ScipParaSolver::setTightenedVarUb(), ScipParaObjCommPointHdlr::startedCollectingNodesForInitialRampUp, UG::TagAllowToBeInCollectingMode, UG::TagLbBoundTightenedBound, UG::TagLbBoundTightenedIndex, UG::TagUbBoundTightenedBound, UG::TagUbBoundTightenedIndex, THROW_LOGICAL_ERROR2, ScipParaObjLimitUpdator::update(), ParaDeterministicTimer::update(), ParaSolver::updatePendingSolution(), BbParaSolver::waitMessageIfNecessary(), and BbParaSolver::waitToken().
|
virtual |
deinitialization method of event handler (called before transformed problem is freed)
scip | SCIP data structure |
eventhdlr | the event handler itself |
Definition at line 247 of file scipParaObjCommPointHdlr.h.
|
virtual |
solving process deinitialization method of event handler (called before branch and bound process data is freed)
This method is called before the branch and bound process is freed. The event handler should use this call to clean up its branch and bound data.
scip | SCIP data structure |
eventhdlr | the event handler itself |
Definition at line 275 of file scipParaObjCommPointHdlr.h.
|
virtual |
destructor of event handler to free user data (called when SCIP is exiting)
scip | SCIP data structure |
eventhdlr | the event handler itself |
Definition at line 178 of file scipParaObjCommPointHdlr.h.
|
virtual |
initialization method of event handler (called after problem was transformed)
scip | SCIP data structure |
eventhdlr | the event handler itself |
Definition at line 187 of file scipParaObjCommPointHdlr.h.
References ScipParaObjCommPointHdlr::cloned, and ScipParaObjCommPointHdlr::interrupting.
|
virtual |
solving process initialization method of event handler (called when branch and bound process is about to begin)
This method is called when the presolving was finished and the branch and bound process is about to begin. The event handler may use this call to initialize its branch and bound specific data.
scip | SCIP data structure |
eventhdlr | the event handler itself |
Definition at line 262 of file scipParaObjCommPointHdlr.h.
|
private |
remove the node sent from SCIP environment
Definition at line 1229 of file scipParaObjCommPointHdlr.cpp.
References DEF_SCIP_PARA_COMM, BbParaSolver::getRank(), ParaComm::getRank(), ScipParaObjCommPointHdlr::paraComm, ScipParaObjCommPointHdlr::scipParaSolver, and BbParaSolver::sendParaNode().
Referenced by ScipParaObjCommPointHdlr::checkRootNodeSolvabilityAndSendParaNode().
void setOriginalNodeSelectionStrategy | ( | ) |
Definition at line 171 of file scipParaObjCommPointHdlr.h.
References ScipParaObjCommPointHdlr::originalSelectionStrategy, ScipParaObjCommPointHdlr::scipParaSolver, and ScipParaSolver::setOriginalPriority().
Referenced by ScipParaSolver::setOriginalNodeSelectionStrategy().
|
private |
Definition at line 66 of file scipParaObjCommPointHdlr.h.
Referenced by ScipParaObjCommPointHdlr::changeSearchStrategy(), and ScipParaObjCommPointHdlr::ScipParaObjCommPointHdlr().
|
private |
Definition at line 68 of file scipParaObjCommPointHdlr.h.
Referenced by ScipParaObjCommPointHdlr::isColne(), ScipParaObjCommPointHdlr::scip_exec(), ScipParaObjCommPointHdlr::scip_init(), and ScipParaObjCommPointHdlr::ScipParaObjCommPointHdlr().
|
private |
|
private |
Definition at line 61 of file scipParaObjCommPointHdlr.h.
Referenced by ScipParaObjCommPointHdlr::checkRootNodeSolvabilityAndSendParaNode(), ScipParaObjCommPointHdlr::resetCommPointHdlr(), and ScipParaObjCommPointHdlr::scip_exec().
|
private |
Definition at line 60 of file scipParaObjCommPointHdlr.h.
Referenced by ScipParaObjCommPointHdlr::scip_exec().
|
private |
Definition at line 62 of file scipParaObjCommPointHdlr.h.
Referenced by ScipParaObjCommPointHdlr::changeSearchStrategy(), ScipParaObjCommPointHdlr::resetCommPointHdlr(), ScipParaObjCommPointHdlr::scip_exec(), and ScipParaObjCommPointHdlr::setOriginalNodeSelectionStrategy().
|
private |
Definition at line 56 of file scipParaObjCommPointHdlr.h.
Referenced by ScipParaObjCommPointHdlr::checkRootNodeSolvabilityAndSendParaNode(), ScipParaObjCommPointHdlr::clone(), ScipParaObjCommPointHdlr::processNewSolution(), ScipParaObjCommPointHdlr::scip_exec(), and ScipParaObjCommPointHdlr::sendNode().
|
private |
Definition at line 65 of file scipParaObjCommPointHdlr.h.
Referenced by ScipParaObjCommPointHdlr::scip_exec().
|
private |
Definition at line 64 of file scipParaObjCommPointHdlr.h.
Referenced by ScipParaObjCommPointHdlr::scip_exec().
|
private |
Definition at line 58 of file scipParaObjCommPointHdlr.h.
Referenced by ScipParaObjCommPointHdlr::scip_exec().
|
private |
Definition at line 57 of file scipParaObjCommPointHdlr.h.
Referenced by ScipParaObjCommPointHdlr::changeSearchStrategy(), ScipParaObjCommPointHdlr::checkRootNodeSolvabilityAndSendParaNode(), ScipParaObjCommPointHdlr::clone(), ScipParaObjCommPointHdlr::ifFeasibleInOriginalProblem(), ScipParaObjCommPointHdlr::processNewSolution(), ScipParaObjCommPointHdlr::resetCommPointHdlr(), ScipParaObjCommPointHdlr::scip_exec(), ScipParaObjCommPointHdlr::ScipParaObjCommPointHdlr(), ScipParaObjCommPointHdlr::sendNode(), and ScipParaObjCommPointHdlr::setOriginalNodeSelectionStrategy().
|
private |
Definition at line 59 of file scipParaObjCommPointHdlr.h.
Referenced by ScipParaObjCommPointHdlr::checkRootNodeSolvabilityAndSendParaNode(), ScipParaObjCommPointHdlr::ScipParaObjCommPointHdlr(), and ScipParaObjCommPointHdlr::~ScipParaObjCommPointHdlr().
|
private |
Definition at line 70 of file scipParaObjCommPointHdlr.h.
Referenced by ScipParaObjCommPointHdlr::scip_exec(), and ScipParaObjCommPointHdlr::ScipParaObjCommPointHdlr().