class BbParaSolver More...
#include <bbParaSolver.h>
Public Member Functions | |
| BbParaSolver () | |
| constructor More... | |
| BbParaSolver (int argc, char **argv, int nHandlers, ParaComm *comm, ParaParamSet *inParaParamSet, ParaInstance *paraInstance, ParaDeterministicTimer *detTimer) | |
| constructor More... | |
| virtual | ~BbParaSolver () |
| destructor More... | |
| ParaComm * | getParaComm () |
| get paraParaComm More... | |
| virtual void | run () |
| virtual void | run (ParaRacingRampUpParamSet *inRacingRampUpParamSet) |
| run this Solver with ParaNode object More... | |
| double | getElapsedTimeOfNodeSolving () |
| the following functions may be called from callback routines of the target Solver More... | |
| double | getGlobalBestDualBoundValueAtWarmStart () |
| get global best dual bound value at warm start (restart) More... | |
| double | getLcBestDualBoundValue () |
| get LoadCorrdinator best dual bound value More... | |
| int | getNStopSolvingMode () |
| get number of nodes to stop solving. This number is not used to decide stop solving. It is used a part of conditions. More... | |
| double | getTimeStopSolvingMode () |
| get time to stop solving. This value is not used to decide stop solving. It is used a part of conditions. More... | |
| double | getRootNodeTime () |
| get root node computing time More... | |
| double | getBoundGapForStopSolving () |
| get bound gap for stop solving. This value is not used to decide stop solving. It is used a part of conditions. More... | |
| double | getBoundGapForCollectingMode () |
| get bound gap for collecting mode More... | |
| virtual void | iReceiveMessages () |
| non-blocking receive messages More... | |
| bool | isGlobalIncumbentUpdated () |
| check if global incumbent value is updated or not More... | |
| void | globalIncumbnetValueIsReflected () |
| set global incumbent value is reflected More... | |
| bool | isRacingInterruptRequested () |
| check if racing interrupt was requested or not More... | |
| bool | isCollecingInterrupt () |
| check if collecting interrupt (interrupt with collecting all nodes) is requested or not More... | |
| virtual void | setRootNodeTime () |
| set root node computing time More... | |
| virtual void | sendLocalSolution () |
| send solution found in this Solver More... | |
| virtual bool | notificationIsNecessary () |
| check if a notification message needs to send or not More... | |
| virtual void | sendSolverState (long long nNodesSolved, int nNodesLeft, double bestDualBoundValue, double detTime) |
| send Solver state to LoadCoordinator More... | |
| bool | newParaNodeExists () |
| check if a new ParaNode was received or not More... | |
| bool | isInCollectingMode () |
| check if Solver is in collecting mode or not More... | |
| bool | isAggressiveCollecting () |
| check if Solver is in aggressive collecting mode or not More... | |
| bool | isManyNodesCollectionRequested () |
| check if many nodes collection was requested or not More... | |
| virtual int | getThresholdValue (int nNodes) |
| get threshold value to send ParaNodes to LoadCoordinator More... | |
| virtual void | sendParaNode (long long n, int depth, double dualBound, double estimateValue, ParaDiffSubproblem *diffSubproblem) |
| send a branch-and-bound node as ParaNode to LoadCoordinator More... | |
| virtual void | keepParaNode (long long n, int depth, double dualBound, double estimateValue, ParaDiffSubproblem *diffSubproblem) |
| keep a branch-and-bound node as ParaNode to LoadCoordinator More... | |
| virtual void | sendAnotherNodeRequest (double bestDualBoundValue) |
| send another node request More... | |
| bool | getNotificaionProcessed () |
| check if Solver is in notification process or not TODO: function name should be changed More... | |
| double | getGlobalBestIncumbentValue () |
| get global best incumbent value More... | |
| ParaTask * | getCurrentNode () |
| get current ParaNode object More... | |
| ParaInstance * | getParaInstance () |
| get ParaInstance object More... | |
| ParaParamSet * | getParaParamSet () |
| get ParaParamSet object More... | |
| virtual int | getRank () |
| get rank of this Solver More... | |
| void | countInPrecheckSolvedParaNodes () |
| count ParaNode solved at root node in pre-check More... | |
| virtual void | waitMessageIfNecessary () |
| wait a notification id message if it is needed to synchronize with LoadCoordinaor More... | |
| int | getNSendInCollectingMode () |
| get number of ParaNodes already sent in a collecting mode More... | |
| bool | isBreaking () |
| check if Solver is in racing stage or not More... | |
| double | getTargetBound () |
| get target bound for breaking More... | |
| bool | isTransferLimitReached () |
| check if the number of ParaNodes sent is reached to transfer limit specified More... | |
| void | resetBreakingInfo () |
| reset breaking information More... | |
| bool | isOnceBreak () |
| check if once breaking procedure worked or not More... | |
| void | setOnceBreak () |
| set once braking procedure worked More... | |
| bool | isAggressivePresolvingSpecified () |
| check if aggressive presolving is specified More... | |
| int | getAggresivePresolvingDepth () |
| get depth to apply aggressive presolving More... | |
| int | getAggresivePresolvingStopDepth () |
| get depth to stop aggressive presolving More... | |
| int | getSubMipDepth () |
| get depth of sub-MIP root node in global search tree More... | |
| void | setSendBackAllNodes () |
| set counter and flag to indicate that all nodes are sent to LoadCooordinator More... | |
| bool | isCollectingAllNodes () |
| check if Solver is sending all nodes to LoadCoordinaor or not More... | |
| int | getBigDualGapSubtreeHandlingStrategy () |
| get big dual gap subtree handling strategy More... | |
| bool | isGivenGapReached () |
| check if given gap is reached or not More... | |
| bool | isIterativeBreakDownApplied () |
| check if iterative break down is applied or not More... | |
| void | setII (double sum, int count) |
| set sum and number of integer infeasibility More... | |
| void | setRootNodeSimplexIter (int iter) |
| set number of simplex iteration at root node More... | |
| bool | waitToken (int rank) |
| wait token for deterministic mode More... | |
| void | passToken (int rank) |
| pass token to the next process More... | |
| int | getCurrentSolivingNodeMergingStatus () |
| get current solving node merging status More... | |
| double | getCurrentSolvingNodeInitialDualBound () |
| get initial dual bound of current solving node More... | |
| double | getAverageDualBoundGain () |
| get average dual bound gain More... | |
| void | setNotEnoughGain () |
| set dual bound gain is not enough More... | |
| bool | isEnoughGainObtained () |
| check if dual bound gains enough or not More... | |
| bool | isDualBoundGainTestNeeded () |
| check if dual bound gain needs to be tested or not More... | |
| bool | isRacingRampUp () |
| check if this solver is in racing ramp-up or not More... | |
| bool | isRacingStage () |
| check if Solver is in racing stage or not More... | |
| virtual bool | wasTerminatedNormally ()=0 |
| check if Solver was terminated normally or not More... | |
| virtual void | writeCurrentTaskProblem (const std::string &filename)=0 |
| write current node problem (this method is always useful for debugging, so we should implement this method) More... | |
| virtual void | tryNewSolution (ParaSolution *sol)=0 |
| try to enter solution to base solver environment More... | |
| virtual void | setLightWeightRootNodeProcess () |
| set light weight root node process More... | |
| virtual void | setOriginalRootNodeProcess () |
| set original root node process More... | |
| virtual void | writeSubproblem ()=0 |
| write subproblem More... | |
| virtual long long | getSimplexIter ()=0 |
| get number of simplex iterations More... | |
| virtual int | getNRestarts () |
| get number of restarts (Derived class for SCIP should override this function) More... | |
| virtual bool | canGenerateSpecialCutOffValue () |
| check if base solver can generate special cut off value or not More... | |
| double | getCutOffValue () |
| get cut off value More... | |
| void | updateNTransferredLocalCuts (int n) |
| update number of transferred local cuts More... | |
| void | updateNTransferredBendersCuts (int n) |
| update number of transferred benders cuts More... | |
| bool | isAnotherNodeIsRequested () |
| check if another node is requested or not More... | |
| double | getPendingIncumbentValue () |
| get pending incumbent value More... | |
| void | setKeepRacing (bool value) |
| set keep racing value More... | |
| int | getSelfSplitNodesLeft () |
| get the number of nodes in slef-split node pool More... | |
| virtual bool | sendIfImprovedSolutionWasFound (ParaSolution *sol) |
| send improved solution if it was found in this Solver More... | |
| virtual bool | saveIfImprovedSolutionWasFound (ParaSolution *sol) |
| save improved solution if it was found in this Solver More... | |
| virtual void | waitNotificationIdMessage () |
| wait notification id message to synchronized with LoadCoordinator More... | |
| virtual void | waitAckCompletion () |
| wait ack completion to synchronized with LoadCoordinator More... | |
| virtual void | issueInterruptSolve () |
| issue interrupt to solve More... | |
| virtual void | run ()=0 |
| run this Solver More... | |
| virtual void | run (ParaTask *paraTask) |
| run this Solver More... | |
| virtual void | run (ParaRacingRampUpParamSet *inRacingRampUpParamSet) |
| run this Solver More... | |
Public Member Functions inherited from ParaSolver | |
| ParaSolver () | |
| constructor More... | |
| ParaSolver (int argc, char **argv, int nHandlers, ParaComm *comm, ParaParamSet *inParaParamSet, ParaInstance *paraInstance, ParaDeterministicTimer *detTimer) | |
| constructor More... | |
| virtual | ~ParaSolver () |
| destructor More... | |
| ParaComm * | getParaComm () |
| get paraParaComm More... | |
| bool | isWarmStarted () |
| check if current execution is warm start (restart) or not More... | |
| virtual void | run ()=0 |
| run this Solver More... | |
| virtual void | run (ParaTask *paraTask) |
| run this Solver with ParaTask object More... | |
| virtual void | run (ParaRacingRampUpParamSet *inRacingRampUpParamSet) |
| run this solver with racing parameters More... | |
| double | getElapsedTimeOfTaskSolving () |
| the following functions may be called from callback routines of the target Solver More... | |
| virtual void | iReceiveMessages ()=0 |
| non-blocking receive messages More... | |
| bool | isRampUp () |
| check if this solver is ramp-up or not More... | |
| bool | isRacingWinner () |
| check if this solver is in racing ramp-up or not More... | |
| virtual bool | sendIfImprovedSolutionWasFound (ParaSolution *sol) |
| send improved solution if it was found in this Solver More... | |
| virtual bool | saveIfImprovedSolutionWasFound (ParaSolution *sol) |
| save improved solution if it was found in this Solver More... | |
| virtual void | sendLocalSolution () |
| send solution found in this Solver More... | |
| virtual bool | notificationIsNecessary ()=0 |
| check if a notification message needs to send or not TODO: function name should be isNotificationNecessary More... | |
| bool | isInterrupting () |
| check if Solver is in interrupting phase or not More... | |
| bool | isTerminationRequested () |
| check if termination was requested or not More... | |
| bool | newParaTaskExists () |
| check if a new ParaTask was received or not More... | |
| bool | getNotificaionProcessed () |
| check if Solver is in notification process or not TODO: function name should be changed More... | |
| ParaTask * | getCurrentTask () |
| get current ParaTask object More... | |
| ParaInstance * | getParaInstance () |
| get ParaInstance object More... | |
| ParaParamSet * | getParaParamSet () |
| get ParaParamSet object More... | |
| virtual int | getRank () |
| get rank of this Solver More... | |
| virtual void | waitMessageIfNecessary ()=0 |
| wait a notification id message if it is needed to synchronize with LoadCoordinaor More... | |
| void | terminateRacing () |
| terminate racing stage More... | |
| ParaSolution * | getGlobalBestIncumbentSolution () |
| get global best incumbent solution More... | |
| bool | isWaitingForSpecificMessage () |
| check if Solver is waiting for a specific message or not More... | |
| virtual bool | waitToken (int rank) |
| wait token for deterministic mode More... | |
| virtual void | passToken (int rank) |
| pass token to the next process More... | |
| ParaDeterministicTimer * | getDeterministicTimer () |
| get deterministic timer object More... | |
| double | getOffsetTimeToWaitToken () |
| get offset time to wait token More... | |
| virtual void | updatePendingSolution () |
| update pending solution More... | |
| virtual bool | wasTerminatedNormally ()=0 |
| check if Solver was terminated normally or not More... | |
| virtual void | writeCurrentTaskProblem (const std::string &filename)=0 |
| write current task problem (this method is always useful for debugging, so we should implement this method) More... | |
| virtual void | tryNewSolution (ParaSolution *sol)=0 |
| try to enter solution to base solver environment More... | |
| virtual void | writeSubproblem ()=0 |
| write subproblem More... | |
| void | setPreviousCommTime (double detTime) |
| set previous communication time for deterministic execution More... | |
| double | getPreviousCommTime () |
| get previous communication time for deterministic execution More... | |
| void | setTerminationMode (int tm) |
| set termination mode More... | |
| int | getTerminationMode () |
| get termination mode More... | |
Protected Types | |
| typedef int(BbParaSolver::* | BbMessageHandlerFunctionPointer) (int, int) |
Protected Types inherited from ParaSolver | |
| typedef int(ParaSolver::* | MessageHandlerFunctionPointer) (int, int) |
Protected Member Functions | |
| virtual int | processTagTask (int source, int tag) |
| process TagNode More... | |
| virtual int | processTagTaskReceived (int source, int tag) |
| process TagTaskReceived More... | |
| virtual int | processTagRampUp (int source, int tag) |
| process TagRampUp More... | |
| virtual int | processTagSolution (int source, int tag) |
| process TagSolution More... | |
| virtual int | processTagIncumbentValue (int source, int tag) |
| process TagIncumbentValue More... | |
| virtual int | processTagNotificationId (int source, int tag) |
| process TagNotificationId More... | |
| virtual int | processTagTerminateRequest (int source, int tag) |
| process TagTerminateRequest More... | |
| virtual int | processTagInterruptRequest (int source, int tag) |
| process TagInterruptRequest More... | |
| virtual int | processTagWinnerRacingRampUpParamSet (int source, int tag) |
| process TagWinnerRacingRampUpParamSet More... | |
| virtual int | processTagWinner (int source, int tag) |
| process TagWinner More... | |
| virtual int | processTagToken (int source, int tag) |
| process TagToken More... | |
| virtual int | processTagRetryRampUp (int source, int tag) |
| process TagRetryRampUp More... | |
| virtual int | processTagGlobalBestDualBoundValueAtWarmStart (int source, int tag) |
| process TagGlobalBestDualBoundValueAtWarmStart More... | |
| virtual int | processTagNoNodes (int source, int tag) |
| process TagNoNodes More... | |
| virtual int | processTagInCollectingMode (int source, int tag) |
| process TagInCollectingMode More... | |
| virtual int | processTagCollectAllNodes (int source, int tag) |
| process TagCollectAllNodes More... | |
| virtual int | processTagOutCollectingMode (int source, int tag) |
| process TagOutCollectingMode More... | |
| virtual int | processTagLCBestBoundValue (int source, int tag) |
| process TagLCBestBoundValue More... | |
| virtual int | processTagLightWeightRootNodeProcess (int source, int tag) |
| process TagLightWeightRootNodeProcess More... | |
| virtual int | processTagBreaking (int source, int tag) |
| process TagBreaking More... | |
| virtual int | processTagGivenGapIsReached (int source, int tag) |
| process TagGivenGapIsReached More... | |
| virtual int | processTagTestDualBoundGain (int source, int tag) |
| process TagTestDualBoundGain More... | |
| virtual int | processTagNoTestDualBoundGain (int source, int tag) |
| process TagNoTestDualBoundGain More... | |
| virtual int | processTagNoWaitModeSend (int source, int tag) |
| process TagNoWaitModeSend More... | |
| virtual int | processTagRestart (int source, int tag) |
| process TagRestart More... | |
| virtual int | processTagLbBoundTightened (int source, int tag) |
| process TagLbBoundTightened More... | |
| virtual int | processTagUbBoundTightened (int source, int tag) |
| process TagUbBoundTightened More... | |
| virtual int | processTagCutOffValue (int source, int tag) |
| process TagCutOffValue More... | |
| virtual int | processTagKeepRacing (int source, int tag) |
| process TagKeepRacing More... | |
| virtual int | processTagTerminateSolvingToRestart (int source, int tag) |
| process TagTerminateSolvingToRestart More... | |
| virtual bool | receiveNewTaskAndReactivate () |
| wait for receiving a new node and reactivate solver More... | |
| virtual void | sendCompletionOfCalculation (double stopTime) |
| send completion of calculation More... | |
| virtual void | sendCompletionOfCalculation (double stopTime, int tag, int nSelfSplitNodesLeft) |
| send completion of calculation with arguments More... | |
| virtual void | sendCompletionOfCalculationWithoutSolving (double stopTime, int tag, int nSelfSplitNodesLeft) |
| send completion of calculation with arguments More... | |
| virtual bool | updateGlobalBestCutOffValue (double newValue) |
| update global best cutoff value More... | |
| virtual void | setRacingParams (ParaRacingRampUpParamSet *racingParms, bool winnerParam)=0 |
| set racing parameters More... | |
| virtual void | setWinnerRacingParams (ParaRacingRampUpParamSet *racingParms)=0 |
| set winner racing parameters More... | |
| virtual void | createSubproblem ()=0 |
| create subproblem More... | |
| virtual void | freeSubproblem ()=0 |
| free subproblem More... | |
| virtual void | solve ()=0 |
| solve (sub)problem More... | |
| virtual long long | getNNodesSolved ()=0 |
| get number of nodes solved More... | |
| virtual int | getNNodesLeft ()=0 |
| get number of nodes left More... | |
| virtual double | getDualBoundValue ()=0 |
| get dual bound value More... | |
| virtual void | setOriginalNodeSelectionStrategy ()=0 |
| set original node selection strategy More... | |
| virtual void | solveToCheckEffectOfRootNodePreprocesses () |
| solve to check effect of root node preprocesses More... | |
| virtual int | lbBoundTightened (int source, int tag) |
| lower bound of variable tightened More... | |
| virtual int | ubBoundTightened (int source, int tag) |
| upper bound of variable tightened More... | |
| virtual int | getNTightened () |
| get number of tightened variables during racing More... | |
| virtual int | getNTightenedInt () |
| get number of tightened integral variables during racing More... | |
| virtual void | changeSearchStrategy (int searchStrategy) |
| change search strategy More... | |
| virtual void | sendSolverTerminationState () |
| send Solver termination state More... | |
| virtual void | notifySelfSplitFinished () |
| notify Self-Split finished More... | |
| virtual void | restartRacing () |
| restart racing More... | |
| virtual bool | updateGlobalBestIncumbentSolution (ParaSolution *sol) |
| update global best incumbent solution More... | |
| virtual bool | updateGlobalBestIncumbentValue (double newValue) |
| update global best incumbent value More... | |
Protected Member Functions inherited from ParaSolver | |
| virtual int | processTagTask (int source, int tag)=0 |
| process TagTask More... | |
| virtual int | processTagTaskReceived (int source, int tag)=0 |
| process TagTaskReceived More... | |
| virtual int | processTagRampUp (int source, int tag) |
| process TagRampUp More... | |
| virtual int | processTagSolution (int source, int tag)=0 |
| process TagSolution More... | |
| virtual int | processTagIncumbentValue (int source, int tag) |
| process TagIncumbentValue More... | |
| virtual int | processTagNotificationId (int source, int tag)=0 |
| process TagNotificationId More... | |
| virtual int | processTagTerminateRequest (int source, int tag)=0 |
| process TagTerminateRequest More... | |
| virtual int | processTagInterruptRequest (int source, int tag)=0 |
| process TagInterruptRequest More... | |
| virtual int | processTagWinnerRacingRampUpParamSet (int source, int tag) |
| process TagWinnerRacingRampUpParamSet More... | |
| virtual int | processTagWinner (int source, int tag) |
| process TagWinner More... | |
| virtual int | processTagToken (int source, int tag) |
| process TagToken More... | |
| virtual bool | receiveNewTaskAndReactivate ()=0 |
| wait for receiving a new task and reactivate solver More... | |
| virtual void | waitNotificationIdMessage ()=0 |
| wait notification id message to synchronized with LoadCoordinator More... | |
| virtual void | waitAckCompletion ()=0 |
| wait ack completion to synchronized with LoadCoordinator More... | |
| virtual void | sendCompletionOfCalculation (double stopTime)=0 |
| restart racing More... | |
| virtual bool | updateGlobalBestIncumbentSolution (ParaSolution *sol) |
| update global best incumbent solution More... | |
| virtual bool | updateGlobalBestIncumbentValue (double newValue) |
| update global best incumbent value More... | |
| virtual void | setRacingParams (ParaRacingRampUpParamSet *racingParms, bool winnerParam) |
| set racing parameters More... | |
| virtual void | setWinnerRacingParams (ParaRacingRampUpParamSet *racingParms) |
| set winner racing parameters More... | |
| virtual void | createSubproblem () |
| create subproblem More... | |
| virtual void | freeSubproblem () |
| free subproblem More... | |
| virtual void | solve ()=0 |
| solve (sub)problem More... | |
| virtual void | reinitialize () |
| re-initialized instance More... | |
Protected Attributes | |
| double | globalBestDualBoundValueAtWarmStart |
| global best dual bound value which is set when system warm starts More... | |
| double | globalBestCutOffValue |
| global best cut off value More... | |
| double | lcBestDualBoundValue |
| LoadCoordinator best dual bound value. More... | |
| bool | collectingMode |
| indicate whether if this solver is in collecting mode or not More... | |
| bool | aggressiveCollecting |
| indicate that if this solver has two nodes, this solver sends one to LC More... | |
| int | nSendInCollectingMode |
| number of nodes need to send in collecting mode More... | |
| int | nCollectOnce |
| number of nodes need to collect once More... | |
| bool | collectingManyNodes |
| indicate that many nodes collecting is requested by LC More... | |
| bool | collectingInterrupt |
| when the solver is interrupted, all nodes are collected to LC More... | |
| bool | anotherNodeIsRequested |
| indicate that another node is requested or not More... | |
| bool | lightWeightRootNodeComputation |
| indicate that fast root node computation is required More... | |
| bool | onceBreak |
| indicate that the sub-MIP is broken down once More... | |
| double | rootNodeTime |
| Times. More... | |
| double | totalRootNodeTime |
| accumulated root node process time solved by this solver so far More... | |
| double | minRootNodeTime |
| minimum time consumed by root node process More... | |
| double | maxRootNodeTime |
| maximum time consumed by root node process More... | |
| int | nSolved |
| Counters related to the current ParaNode. More... | |
| int | nSent |
| number of ParaNodes sent from this subtree rooted from the current ParaNode More... | |
| int | nSolvedWithNoPreprocesses |
| number of nodes solved when it is solved with no preprocesses More... | |
| int | totalNSolved |
| Counters related to this BbParaSolver. More... | |
| int | minNSolved |
| minimum number of subtree nodes rooted from ParaNode More... | |
| int | maxNSolved |
| maximum number of subtree nodes rooted from ParaNode More... | |
| int | nTransferredLocalCutsFromSolver |
| number of local cuts transferred from this Solver More... | |
| int | minTransferredLocalCutsFromSolver |
| minimum number of local cuts transferred from this Solver More... | |
| int | maxTransferredLocalCutsFromSolver |
| maximum number of local cuts transferred from this Solver More... | |
| int | nTransferredBendersCutsFromSolver |
| number of benders cuts transferred from this Solver More... | |
| int | minTransferredBendersCutsFromSolver |
| minimum number of benders cuts transferred from this Solver More... | |
| int | maxTransferredBendersCutsFromSolver |
| maximum number of benders cuts transferred from this Solver More... | |
| int | nTotalRestarts |
| number of total restarts More... | |
| int | minRestarts |
| minimum number of restarts More... | |
| int | maxRestarts |
| maximum number of restarts More... | |
| int | totalNSent |
| accumulated number of nodes sent from this BbParaSolver More... | |
| int | totalNImprovedIncumbent |
| accumulated number of improvements of incumbent value in this BbParaSolver More... | |
| int | nParaNodesSolvedAtRoot |
| number of ParaNodes solved at root node More... | |
| int | nParaNodesSolvedAtPreCheck |
| number of ParaNodes solved at pre-checking of root node solvability More... | |
| int | nSimplexIterRoot |
| number of simplex iteration at root node More... | |
| int | nTransferredLocalCuts |
| number of local cuts (including conflict cuts) transferred from a ParaNode More... | |
| int | minTransferredLocalCuts |
| minimum number of local cuts (including conflict cuts) transferred from a ParaNode More... | |
| int | maxTransferredLocalCuts |
| maximum number of local cuts (including conflict cuts) transferred from a ParaNode More... | |
| int | nTransferredBendersCuts |
| number of benders cuts transferred from a ParaNode More... | |
| int | minTransferredBendersCuts |
| minimum number of benders cuts transferred from a ParaNode More... | |
| int | maxTransferredBendersCuts |
| maximum number of benders cuts transferred from a ParaNode More... | |
| int | nTightened |
| the number of tightened variable bounds in racing More... | |
| int | nTightenedInt |
| the number of tightened integral variable bounds in racing More... | |
| double | minIisum |
| minimum sum of integer infeasibility More... | |
| double | maxIisum |
| maximum sum of integer infeasibility More... | |
| int | minNii |
| minimum number of integer infeasibility More... | |
| int | maxNii |
| maximum number of integer infeasibility More... | |
| double | targetBound |
| target bound value for breaking More... | |
| int | nTransferLimit |
| limit number of transferring nodes for breaking More... | |
| int | nTransferredNodes |
| keep track number of transferred nodes for breaking More... | |
| double | solverDualBound |
| dual bound value achieved for a subproblem More... | |
| double | averageDualBoundGain |
| average dual bound gain More... | |
| bool | enoughGainObtained |
| indicate that the root node process improved dual bound enough or not More... | |
| bool | givenGapIsReached |
| indicate that the given gap is reached or not More... | |
| bool | testDualBoundGain |
| indicate that the dual bound gain needs to test or not More... | |
| bool | noWaitModeSend |
| indicate that no wait mode sending is applied More... | |
| bool | keepRacing |
| indicate if Solver needs to do racing ramp-up repeatedly in case of warm start More... | |
| bool | restartingRacing |
| indicate that this solver is restarting racing More... | |
| bool | localIncumbentIsChecked |
| indicate if a local incumbent solution is checked or not More... | |
| BbParaNodePool * | selfSplitNodePool |
| Pool in Solver. More... | |
Protected Attributes inherited from ParaSolver | |
| int | nHandlers |
| number of valid message handlers More... | |
| MessageHandlerFunctionPointer * | messageHandler |
| table for message handlers More... | |
| unsigned int | notificationIdGenerator |
| ParaComm * | paraComm |
| ParaCommunicator object. More... | |
| ParaParamSet * | paraParams |
| ParaParamSet object. More... | |
| ParaRacingRampUpParamSet * | racingParams |
| ParaRacingRampUpParamSet object. This is also a flag to indicate running with racing ramp-up. More... | |
| ParaRacingRampUpParamSet * | winnerRacingParams |
| Winner ParaRacingRampUpParamSet object. More... | |
| ParaTimer * | paraTimer |
| timer for this ParaSolver More... | |
| ParaDeterministicTimer * | paraDetTimer |
| deterministic timer for this ParaSolver More... | |
| double | globalBestIncumbentValue |
| global best incumbent value More... | |
| ParaSolution * | globalBestIncumbentSolution |
| global best solution. However, this is not always feasible for the current sub-MIP More... | |
| ParaSolution * | localIncumbentSolution |
| incumbent solution generated in local solver More... | |
| ParaSolution * | pendingSolution |
| solution which is pending to update in case of deterministic runs More... | |
| double | pendingIncumbentValue |
| incumbent value which is pending to update in case of deterministic runs More... | |
| ParaInstance * | paraInstance |
| root problem instance More... | |
| ParaTask * | currentTask |
| solving task More... | |
| ParaTask * | newTask |
| new task to solve More... | |
| int | terminationMode |
| indicate that termination mode 0: no termination mode 1: normal termination mode 2: interrupted termination More... | |
| bool | warmStarted |
| indicate whether if system is warm started or not More... | |
| bool | rampUp |
| indicate whether if ramp-up phase is finished or not: true - finish More... | |
| bool | racingInterruptIsRequested |
| indicate a racing interrupt is requested More... | |
| bool | racingIsInterrupted |
| indicate whether if racing phases is interrupted or not: true - interrupted More... | |
| bool | racingWinner |
| indicate racing ramp-up winner or not: true - winner More... | |
| bool | waitingSpecificMessage |
| indicate that this solver is waiting for a specific message More... | |
| bool | memoryLimitIsReached |
| indicate if memory limit is reached or not, when base solver has memory management feature More... | |
| double | previousNotificationTime |
| previous notification time More... | |
| double | paraTaskStartTime |
| start time of current ParaTask More... | |
| double | previousStopTime |
| Idle Times. More... | |
| double | idleTimeToFirstParaTask |
| idle time to start solving the first ParaTask More... | |
| double | idleTimeBetweenParaTasks |
| idle time between ParaTasks processing More... | |
| double | idleTimeAfterLastParaTask |
| idle time after the last ParaTask was solved More... | |
| double | idleTimeToWaitNotificationId |
| idle time to wait a message within collecting mode More... | |
| double | idleTimeToWaitAckCompletion |
| idle time to wait acknowledgment of completion More... | |
| double | idleTimeToWaitToken |
| idle time to wait token More... | |
| double | previousIdleTimeToWaitToken |
| previous idle time to wait token More... | |
| double | offsetTimeToWaitToken |
| offset time to wait token More... | |
| int | nImprovedIncumbent |
| Counters related to the current ParaTask. More... | |
| int | nParaTasksReceived |
| Counters related to this ParaSolver. More... | |
| int | nParaTasksSolved |
| number of ParaTasks solved ( received ) in this ParaSolver More... | |
| bool | updatePendingSolutionIsProceeding |
| update pending solution process is proceeding More... | |
| bool | globalIncumbnetValueUpdateFlag |
| indicate that global incumbent value is updated in iReceiveMessages() routine More... | |
| bool | notificationProcessed |
| if true, notification is issued but not receive the corresponding LCB More... | |
| double | eps |
| absolute values smaller than this are considered zero esp should be set in the constructor of the derived class of ParaSolver More... | |
| double | previousCommTime |
| previous communication time for deterministic execution More... | |
| bool | subproblemFreed |
| indicate that subproblem is already freed or not More... | |
| bool | stayAliveAfterInterrupt |
| indicate that stay alive this solver after interrupt request More... | |
class BbParaSolver
Definition at line 63 of file bbParaSolver.h.
|
protected |
Definition at line 68 of file bbParaSolver.h.
| BbParaSolver | ( | ) |
| BbParaSolver | ( | int | argc, |
| char ** | argv, | ||
| int | nHandlers, | ||
| ParaComm * | comm, | ||
| ParaParamSet * | inParaParamSet, | ||
| ParaInstance * | paraInstance, | ||
| ParaDeterministicTimer * | detTimer | ||
| ) |
constructor
create timer for this BbParaSolver
| argc | number of arguments |
| argv | array of arguments |
| nHandlers | number of valid message handlers |
| comm | communicator used |
| inParaParamSet | pointer to ParaParamSet object |
| paraInstance | pointer to ParaInstance object |
| detTimer | pointer to deterministic timer object |
Definition at line 55 of file bbParaSolver.cpp.
References UG::BgapCollectingMode, UG::CommunicateTighterBoundsInRacing, UG::FinalCheckpointGeneratingTime, ParaParamSet::getBoolParamValue(), ParaParamSet::getIntParamValue(), ParaParamSet::getRealParamValue(), ParaSolver::isWarmStarted(), ParaSolver::messageHandler, ParaSolver::paraParams, BbParaSolver::processTagBreaking(), BbParaSolver::processTagCollectAllNodes(), BbParaSolver::processTagCutOffValue(), BbParaSolver::processTagGivenGapIsReached(), BbParaSolver::processTagGlobalBestDualBoundValueAtWarmStart(), BbParaSolver::processTagInCollectingMode(), BbParaSolver::processTagInterruptRequest(), BbParaSolver::processTagKeepRacing(), BbParaSolver::processTagLbBoundTightened(), BbParaSolver::processTagLCBestBoundValue(), BbParaSolver::processTagLightWeightRootNodeProcess(), BbParaSolver::processTagNoNodes(), BbParaSolver::processTagNoTestDualBoundGain(), BbParaSolver::processTagNoWaitModeSend(), BbParaSolver::processTagOutCollectingMode(), BbParaSolver::processTagRestart(), BbParaSolver::processTagRetryRampUp(), BbParaSolver::processTagTask(), BbParaSolver::processTagTerminateSolvingToRestart(), BbParaSolver::processTagTestDualBoundGain(), BbParaSolver::processTagUbBoundTightened(), UG::RampUpPhaseProcess, BbParaSolver::selfSplitNodePool, ParaParamSet::setIntParamValue(), ParaParamSet::setRealParamValue(), UG::TagBreaking, UG::TagCollectAllNodes, UG::TagCutOffValue, UG::TagGivenGapIsReached, UG::TagGlobalBestDualBoundValueAtWarmStart, UG::TagInCollectingMode, UG::TagInterruptRequest, UG::TagKeepRacing, UG::TagLbBoundTightenedIndex, UG::TagLCBestBoundValue, UG::TagLightWeightRootNodeProcess, UG::TagNoNodes, UG::TagNoTestDualBoundGain, UG::TagNoWaitModeSend, UG::TagOutCollectingMode, UG::TagRestart, UG::TagRetryRampUp, UG::TagTask, UG::TagTerminateSolvingToRestart, UG::TagTestDualBoundGain, UG::TagUbBoundTightenedIndex, and UG::TimeLimit.
|
virtual |
destructor
Definition at line 653 of file bbParaSolver.h.
|
virtual |
check if base solver can generate special cut off value or not
Definition at line 1438 of file bbParaSolver.h.
|
protectedvirtual |
change search strategy
| searchStrategy | searchStrategy == 0: original search, 1: best bound search |
Definition at line 586 of file bbParaSolver.h.
| void countInPrecheckSolvedParaNodes | ( | ) |
count ParaNode solved at root node in pre-check
Definition at line 1020 of file bbParaSolver.h.
References BbParaSolver::nParaNodesSolvedAtPreCheck.
Referenced by ScipParaObjCommPointHdlr::checkRootNodeSolvabilityAndSendParaNode().
|
protectedpure virtual |
create subproblem
Reimplemented from ParaSolver.
Implemented in ScipParaSolver.
Referenced by BbParaSolver::run().
|
protectedpure virtual |
free subproblem
Reimplemented from ParaSolver.
Implemented in ScipParaSolver.
Referenced by BbParaSolver::restartRacing(), and BbParaSolver::run().
| int getAggresivePresolvingDepth | ( | ) |
get depth to apply aggressive presolving
Definition at line 1164 of file bbParaSolver.h.
References UG::AggressivePresolveDepth, ParaParamSet::getIntParamValue(), and ParaSolver::paraParams.
Referenced by ScipParaObjCommPointHdlr::scip_exec().
| int getAggresivePresolvingStopDepth | ( | ) |
get depth to stop aggressive presolving
Definition at line 1174 of file bbParaSolver.h.
References UG::AggressivePresolveStopDepth, ParaParamSet::getIntParamValue(), and ParaSolver::paraParams.
Referenced by ScipParaObjCommPointHdlr::scip_exec().
| double getAverageDualBoundGain | ( | ) |
get average dual bound gain
Definition at line 1313 of file bbParaSolver.h.
References BbParaSolver::averageDualBoundGain.
Referenced by ScipParaObjCommPointHdlr::scip_exec().
| int getBigDualGapSubtreeHandlingStrategy | ( | ) |
get big dual gap subtree handling strategy
Definition at line 1214 of file bbParaSolver.h.
References UG::BigDualGapSubtreeHandling, ParaParamSet::getIntParamValue(), and ParaSolver::paraParams.
Referenced by ScipParaObjCommPointHdlr::scip_exec().
| double getBoundGapForCollectingMode | ( | ) |
get bound gap for collecting mode
Definition at line 799 of file bbParaSolver.h.
References UG::BgapCollectingMode, ParaParamSet::getRealParamValue(), and ParaSolver::paraParams.
Referenced by ScipParaObjCommPointHdlr::scip_exec().
| double getBoundGapForStopSolving | ( | ) |
get bound gap for stop solving. This value is not used to decide stop solving. It is used a part of conditions.
Definition at line 789 of file bbParaSolver.h.
References UG::BgapStopSolvingMode, ParaParamSet::getRealParamValue(), and ParaSolver::paraParams.
Referenced by ScipParaObjCommPointHdlr::scip_exec().
| ParaTask * getCurrentNode | ( | ) |
get current ParaNode object
Definition at line 981 of file bbParaSolver.h.
References ParaSolver::currentTask.
Referenced by ScipParaObjCommPointHdlr::scip_exec(), ScipParaDiffSubproblem::ScipParaDiffSubproblem(), and ScipParaSolver::solve().
| int getCurrentSolivingNodeMergingStatus | ( | ) |
get current solving node merging status
Definition at line 1293 of file bbParaSolver.h.
References ParaSolver::currentTask.
Referenced by ScipParaObjCommPointHdlr::scip_exec().
| double getCurrentSolvingNodeInitialDualBound | ( | ) |
get initial dual bound of current solving node
Definition at line 1303 of file bbParaSolver.h.
References ParaSolver::currentTask.
Referenced by ScipParaObjCommPointHdlr::scip_exec().
| double getCutOffValue | ( | ) |
get cut off value
Definition at line 1448 of file bbParaSolver.h.
References BbParaSolver::globalBestCutOffValue.
|
protectedpure virtual |
get dual bound value
Implemented in ScipParaSolver.
Referenced by BbParaSolver::notificationIsNecessary(), and BbParaSolver::sendSolverState().
| double getElapsedTimeOfNodeSolving | ( | ) |
the following functions may be called from callback routines of the target Solver
get elapsed time of node solving
Definition at line 726 of file bbParaSolver.h.
References ParaTimer::getElapsedTime(), ParaSolver::paraTaskStartTime, and ParaSolver::paraTimer.
Referenced by ScipParaObjCommPointHdlr::scip_exec().
| double getGlobalBestDualBoundValueAtWarmStart | ( | ) |
get global best dual bound value at warm start (restart)
Definition at line 736 of file bbParaSolver.h.
References BbParaSolver::globalBestDualBoundValueAtWarmStart.
| double getGlobalBestIncumbentValue | ( | ) |
get global best incumbent value
Definition at line 971 of file bbParaSolver.h.
References ParaSolver::globalBestIncumbentValue.
Referenced by ScipParaObjCommPointHdlr::checkRootNodeSolvabilityAndSendParaNode(), ScipParaObjCommPointHdlr::scip_exec(), and ScipParaSolver::solve().
| double getLcBestDualBoundValue | ( | ) |
get LoadCorrdinator best dual bound value
Definition at line 746 of file bbParaSolver.h.
References BbParaSolver::lcBestDualBoundValue.
Referenced by ScipParaObjCommPointHdlr::scip_exec().
|
protectedpure virtual |
get number of nodes left
Implemented in ScipParaSolver.
Referenced by BbParaSolver::processTagInCollectingMode().
|
protectedpure virtual |
get number of nodes solved
Implemented in ScipParaSolver.
Referenced by BbParaSolver::run().
| bool getNotificaionProcessed | ( | ) |
check if Solver is in notification process or not TODO: function name should be changed
Definition at line 961 of file bbParaSolver.h.
References ParaSolver::notificationProcessed.
|
virtual |
get number of restarts (Derived class for SCIP should override this function)
Reimplemented in ScipParaSolver.
Definition at line 1428 of file bbParaSolver.h.
Referenced by BbParaSolver::sendCompletionOfCalculation().
| int getNSendInCollectingMode | ( | ) |
get number of ParaNodes already sent in a collecting mode
Definition at line 1036 of file bbParaSolver.h.
References BbParaSolver::nSendInCollectingMode.
Referenced by ScipParaObjCommPointHdlr::scip_exec().
| int getNStopSolvingMode | ( | ) |
get number of nodes to stop solving. This number is not used to decide stop solving. It is used a part of conditions.
Definition at line 757 of file bbParaSolver.h.
References UG::NStopSolvingMode, and ParaSolver::paraParams.
Referenced by ScipParaObjCommPointHdlr::scip_exec().
|
protectedvirtual |
get number of tightened variables during racing
Reimplemented in ScipParaSolver.
Definition at line 568 of file bbParaSolver.h.
Referenced by BbParaSolver::sendCompletionOfCalculation(), and BbParaSolver::sendCompletionOfCalculationWithoutSolving().
|
protectedvirtual |
get number of tightened integral variables during racing
Reimplemented in ScipParaSolver.
Definition at line 577 of file bbParaSolver.h.
Referenced by BbParaSolver::sendCompletionOfCalculation(), and BbParaSolver::sendCompletionOfCalculationWithoutSolving().
| ParaComm * getParaComm | ( | ) |
get paraParaComm
Definition at line 665 of file bbParaSolver.h.
References ParaSolver::paraComm.
| ParaInstance * getParaInstance | ( | ) |
get ParaInstance object
Definition at line 991 of file bbParaSolver.h.
References ParaSolver::paraInstance.
Referenced by ScipParaObjCommPointHdlr::ScipParaObjCommPointHdlr().
| ParaParamSet * getParaParamSet | ( | ) |
get ParaParamSet object
Definition at line 1001 of file bbParaSolver.h.
References ParaSolver::paraParams.
Referenced by ScipParaDiffSubproblem::addLocalNodeInfo(), ScipParaObjCommPointHdlr::checkRootNodeSolvabilityAndSendParaNode(), ScipParaSolver::createSubproblem(), ScipParaObjNodesel::getNBoundChanges(), ScipParaObjCommPointHdlr::scip_exec(), ScipParaDiffSubproblem::ScipParaDiffSubproblem(), and ScipParaObjCommPointHdlr::ScipParaObjCommPointHdlr().
| double getPendingIncumbentValue | ( | ) |
get pending incumbent value
Definition at line 1504 of file bbParaSolver.h.
References ParaSolver::pendingIncumbentValue.
Referenced by ScipParaObjProp::SCIP_DECL_PROPEXEC(), and ScipParaObjProp::SCIP_DECL_PROPPRESOL().
|
virtual |
get rank of this Solver
Reimplemented from ParaSolver.
Definition at line 1011 of file bbParaSolver.h.
References ParaComm::getRank(), and ParaSolver::paraComm.
Referenced by ScipParaObjCommPointHdlr::scip_exec(), and ScipParaObjCommPointHdlr::sendNode().
| double getRootNodeTime | ( | ) |
get root node computing time
Definition at line 778 of file bbParaSolver.h.
References BbParaSolver::rootNodeTime.
| int getSelfSplitNodesLeft | ( | ) |
get the number of nodes in slef-split node pool
Definition at line 1524 of file bbParaSolver.h.
References BbParaNodePool::getNumOfNodes(), and BbParaSolver::selfSplitNodePool.
|
pure virtual |
get number of simplex iterations
Implemented in ScipParaSolver.
Referenced by BbParaSolver::sendCompletionOfCalculation().
| int getSubMipDepth | ( | ) |
get depth of sub-MIP root node in global search tree
Definition at line 1184 of file bbParaSolver.h.
References ParaSolver::currentTask.
Referenced by ScipParaObjCommPointHdlr::scip_exec().
| double getTargetBound | ( | ) |
get target bound for breaking
Definition at line 1101 of file bbParaSolver.h.
References BbParaSolver::targetBound.
Referenced by ScipParaObjCommPointHdlr::scip_exec().
|
virtual |
get threshold value to send ParaNodes to LoadCoordinator
| nNodes | number of processed nodes, including the focus node |
Definition at line 1916 of file bbParaSolver.cpp.
References UG::Deterministic, ParaParamSet::getBoolParamValue(), ParaTimer::getElapsedTime(), ParaParamSet::getRealParamValue(), ParaSolver::idleTimeBetweenParaTasks, ParaSolver::idleTimeToFirstParaTask, UG::MultiplierToDetermineThresholdValue, UG::NoTransferThresholdReductionRatio, ParaSolver::nParaTasksSolved, ParaSolver::paraParams, ParaSolver::paraTimer, BbParaSolver::rootNodeTime, BbParaSolver::totalNSolved, and BbParaSolver::totalRootNodeTime.
Referenced by ScipParaObjCommPointHdlr::scip_exec().
| double getTimeStopSolvingMode | ( | ) |
get time to stop solving. This value is not used to decide stop solving. It is used a part of conditions.
Definition at line 768 of file bbParaSolver.h.
References ParaParamSet::getRealParamValue(), ParaSolver::paraParams, and UG::TimeStopSolvingMode.
Referenced by ScipParaObjCommPointHdlr::scip_exec().
| void globalIncumbnetValueIsReflected | ( | ) |
set global incumbent value is reflected
Definition at line 824 of file bbParaSolver.h.
References ParaSolver::globalIncumbnetValueUpdateFlag.
|
virtual |
non-blocking receive messages
Implements ParaSolver.
Definition at line 1188 of file bbParaSolver.cpp.
References ParaTimer::getElapsedTime(), ParaComm::getRank(), ParaComm::iProbe(), ParaSolver::messageHandler, UG::NormalTerminationMode, PARA_COMM_CALL, UG::ParaBYTE, ParaSolver::paraComm, ParaSolver::paraTimer, ParaComm::receive(), UG::TagAckCompletion, UG::TagAny, ParaSolver::terminationMode, THROW_LOGICAL_ERROR3, and BbParaSolver::writeSubproblem().
Referenced by BbParaSolver::receiveNewTaskAndReactivate(), BbParaSolver::run(), ScipParaObjCommPointHdlr::scip_exec(), and ScipParaSolver::~ScipParaSolver().
| bool isAggressiveCollecting | ( | ) |
check if Solver is in aggressive collecting mode or not
Definition at line 903 of file bbParaSolver.h.
References BbParaSolver::aggressiveCollecting.
Referenced by ScipParaObjCommPointHdlr::scip_exec().
| bool isAggressivePresolvingSpecified | ( | ) |
check if aggressive presolving is specified
Definition at line 1154 of file bbParaSolver.h.
References UG::AggressivePresolveDepth, ParaParamSet::getIntParamValue(), and ParaSolver::paraParams.
Referenced by ScipParaObjCommPointHdlr::scip_exec().
| bool isAnotherNodeIsRequested | ( | ) |
check if another node is requested or not
Definition at line 1494 of file bbParaSolver.h.
References BbParaSolver::anotherNodeIsRequested.
Referenced by ScipParaObjCommPointHdlr::scip_exec().
| bool isBreaking | ( | ) |
check if Solver is in racing stage or not
Definition at line 1091 of file bbParaSolver.h.
References BbParaSolver::nTransferLimit.
Referenced by ScipParaObjCommPointHdlr::scip_exec(), and BbParaSolver::sendParaNode().
| bool isCollecingInterrupt | ( | ) |
check if collecting interrupt (interrupt with collecting all nodes) is requested or not
Definition at line 844 of file bbParaSolver.h.
References BbParaSolver::collectingInterrupt.
Referenced by ScipParaObjCommPointHdlr::scip_exec().
| bool isCollectingAllNodes | ( | ) |
check if Solver is sending all nodes to LoadCoordinaor or not
Definition at line 1204 of file bbParaSolver.h.
References BbParaSolver::collectingManyNodes, and BbParaSolver::nCollectOnce.
Referenced by ScipParaObjCommPointHdlr::scip_exec(), and ScipParaSolver::solve().
| bool isDualBoundGainTestNeeded | ( | ) |
check if dual bound gain needs to be tested or not
Definition at line 1342 of file bbParaSolver.h.
References BbParaSolver::testDualBoundGain.
Referenced by ScipParaObjCommPointHdlr::scip_exec().
| bool isEnoughGainObtained | ( | ) |
check if dual bound gains enough or not
Definition at line 1332 of file bbParaSolver.h.
References BbParaSolver::enoughGainObtained.
Referenced by ScipParaObjCommPointHdlr::scip_exec().
| bool isGivenGapReached | ( | ) |
check if given gap is reached or not
Definition at line 1224 of file bbParaSolver.h.
References BbParaSolver::givenGapIsReached.
Referenced by ScipParaObjCommPointHdlr::scip_exec().
| bool isGlobalIncumbentUpdated | ( | ) |
check if global incumbent value is updated or not
Definition at line 815 of file bbParaSolver.h.
References ParaSolver::globalIncumbnetValueUpdateFlag.
Referenced by ScipParaObjCommPointHdlr::scip_exec().
| bool isInCollectingMode | ( | ) |
check if Solver is in collecting mode or not
Definition at line 893 of file bbParaSolver.h.
References BbParaSolver::collectingManyNodes, and BbParaSolver::collectingMode.
Referenced by ScipParaObjCommPointHdlr::scip_exec().
| bool isIterativeBreakDownApplied | ( | ) |
check if iterative break down is applied or not
Definition at line 1234 of file bbParaSolver.h.
References ParaParamSet::getBoolParamValue(), UG::IterativeBreakDown, and ParaSolver::paraParams.
| bool isManyNodesCollectionRequested | ( | ) |
check if many nodes collection was requested or not
Definition at line 913 of file bbParaSolver.h.
References BbParaSolver::collectingManyNodes.
Referenced by ScipParaObjCommPointHdlr::scip_exec().
| bool isOnceBreak | ( | ) |
check if once breaking procedure worked or not
Definition at line 1133 of file bbParaSolver.h.
References BbParaSolver::onceBreak.
| bool isRacingInterruptRequested | ( | ) |
check if racing interrupt was requested or not
Definition at line 834 of file bbParaSolver.h.
References ParaSolver::racingInterruptIsRequested, and BbParaSolver::restartingRacing.
Referenced by ScipParaObjCommPointHdlr::scip_exec(), and ScipParaSolver::solve().
| bool isRacingRampUp | ( | ) |
check if this solver is in racing ramp-up or not
Definition at line 1352 of file bbParaSolver.h.
References ParaParamSet::getIntParamValue(), ParaSolver::paraParams, and UG::RampUpPhaseProcess.
Referenced by ScipParaObjCommPointHdlr::scip_exec().
| bool isRacingStage | ( | ) |
check if Solver is in racing stage or not
Definition at line 1363 of file bbParaSolver.h.
References ParaParamSet::getIntParamValue(), ParaSolver::paraParams, ParaSolver::racingParams, and UG::RampUpPhaseProcess.
Referenced by ScipParaObjCommPointHdlr::checkRootNodeSolvabilityAndSendParaNode(), ScipParaSolver::createSubproblem(), ScipParaSolver::dropSettingsForVariableBoundsExchnage(), ScipParaSolver::freeSubproblem(), ScipParaObjNodesel::getNBoundChanges(), BbParaSolver::notificationIsNecessary(), BbParaSolver::processTagTerminateSolvingToRestart(), BbParaSolver::processTagWinnerRacingRampUpParamSet(), ScipParaSolver::saveOriginalSettings(), ScipParaObjCommPointHdlr::scip_exec(), ScipParaDiffSubproblem::ScipParaDiffSubproblem(), BbParaSolver::sendCompletionOfCalculation(), BbParaSolver::sendSolverState(), and ScipParaSolver::solve().
|
virtual |
issue interrupt to solve
Reimplemented in ScipParaSolver.
Definition at line 1559 of file bbParaSolver.h.
Referenced by BbParaSolver::processTagGivenGapIsReached(), and BbParaSolver::processTagInterruptRequest().
| bool isTransferLimitReached | ( | ) |
check if the number of ParaNodes sent is reached to transfer limit specified
Definition at line 1111 of file bbParaSolver.h.
References BbParaSolver::nTransferLimit, and BbParaSolver::nTransferredNodes.
Referenced by ScipParaObjCommPointHdlr::scip_exec().
|
virtual |
keep a branch-and-bound node as ParaNode to LoadCoordinator
| n | branch-and-bound node number in this Solver |
| depth | depth of branch-and-bound node in this Solver |
| dualBound | dual bound value of branch-and-bound node |
| estimateValue | estimate value of branch-and-bound node |
| diffSubproblem | difference between the root branch-and-bound node and transferred one |
Definition at line 2044 of file bbParaSolver.cpp.
References ParaSolver::currentTask, DEF_BB_PARA_COMM, BbParaNode::getDepth(), BbParaNode::getDualBoundValue(), ParaComm::getRank(), SubtaskId::globalSubtaskIdInLc, BbParaNodePool::insert(), SubtaskId::lcId, ParaSolver::paraComm, BbParaSolver::selfSplitNodePool, BbParaNode::sendNewSubtreeRoot(), TaskId::subtaskId, and ParaTask::taskId.
|
protectedvirtual |
lower bound of variable tightened
| source | source rank |
| tag | TagLbBoundTightened |
Reimplemented in ScipParaSolver.
Definition at line 545 of file bbParaSolver.h.
Referenced by BbParaSolver::processTagLbBoundTightened().
| bool newParaNodeExists | ( | ) |
check if a new ParaNode was received or not
Definition at line 883 of file bbParaSolver.h.
References ParaSolver::newTask.
Referenced by ScipParaObjCommPointHdlr::scip_exec().
|
virtual |
check if a notification message needs to send or not
Implements ParaSolver.
Definition at line 1746 of file bbParaSolver.cpp.
References BbParaSolver::collectingManyNodes, BbParaSolver::collectingMode, UG::Deterministic, UG::EnhancedCheckpointStartTime, UG::EnhancedFinalCheckpoint, ParaParamSet::getBoolParamValue(), BbParaSolver::getDualBoundValue(), ParaDeterministicTimer::getElapsedTime(), ParaTimer::getElapsedTime(), ParaParamSet::getRealParamValue(), BbParaSolver::isRacingStage(), BbParaSolver::lcBestDualBoundValue, UG::NotificationInterval, BbParaSolver::noWaitModeSend, ParaSolver::paraDetTimer, ParaSolver::paraParams, ParaSolver::paraTimer, ParaSolver::previousNotificationTime, ParaSolver::rampUp, and ParaParamSet::setRealParamValue().
Referenced by ScipParaObjCommPointHdlr::scip_exec().
|
protectedvirtual |
notify Self-Split finished
Definition at line 228 of file bbParaSolver.cpp.
References PARA_COMM_CALL, UG::ParaBYTE, ParaSolver::paraComm, ParaComm::send(), and UG::TagSelfSplitFinished.
Referenced by BbParaSolver::run().
|
virtual |
pass token to the next process
| rank | rank of this Solver |
Reimplemented from ParaSolver.
Definition at line 1282 of file bbParaSolver.h.
References ParaSolver::paraComm, and ParaComm::passToken().
Referenced by BbParaSolver::receiveNewTaskAndReactivate(), BbParaSolver::run(), and ScipParaObjCommPointHdlr::scip_exec().
|
protectedvirtual |
process TagBreaking
| source | source rank |
| tag | TagBreaking |
Definition at line 677 of file bbParaSolver.cpp.
References BbParaSolver::collectingManyNodes, BbParaSolver::nTransferLimit, BbParaSolver::nTransferredNodes, PARA_COMM_CALL, ParaSolver::paraComm, UG::ParaDOUBLE, UG::ParaINT, ParaComm::receive(), UG::TagBreaking, and BbParaSolver::targetBound.
Referenced by BbParaSolver::BbParaSolver().
|
protectedvirtual |
process TagCollectAllNodes
| source | source rank |
| tag | TagCollectAllNodes |
Definition at line 562 of file bbParaSolver.cpp.
References BbParaSolver::collectingManyNodes, BbParaSolver::nCollectOnce, BbParaSolver::noWaitModeSend, PARA_COMM_CALL, ParaSolver::paraComm, UG::ParaINT, ParaComm::receive(), and UG::TagCollectAllNodes.
Referenced by BbParaSolver::BbParaSolver().
|
protectedvirtual |
process TagCutOffValue
| source | source rank |
| tag | TagCutOffValue |
Definition at line 783 of file bbParaSolver.cpp.
References PARA_COMM_CALL, ParaSolver::paraComm, UG::ParaDOUBLE, ParaComm::receive(), UG::TagCutOffValue, and BbParaSolver::updateGlobalBestCutOffValue().
Referenced by BbParaSolver::BbParaSolver().
|
protectedvirtual |
process TagGivenGapIsReached
| source | source rank |
| tag | TagGivenGapIsReached |
Definition at line 694 of file bbParaSolver.cpp.
References BbParaSolver::givenGapIsReached, BbParaSolver::issueInterruptSolve(), PARA_COMM_CALL, UG::ParaBYTE, ParaSolver::paraComm, ParaComm::receive(), ParaSolver::stayAliveAfterInterrupt, and UG::TagGivenGapIsReached.
Referenced by BbParaSolver::BbParaSolver().
|
protectedvirtual |
process TagGlobalBestDualBoundValueAtWarmStart
| source | source rank |
| tag | TagGlobalBestDualBoundValueAtWarmStart |
Definition at line 500 of file bbParaSolver.cpp.
References BbParaSolver::globalBestDualBoundValueAtWarmStart, PARA_COMM_CALL, ParaSolver::paraComm, UG::ParaDOUBLE, ParaComm::receive(), and UG::TagGlobalBestDualBoundValueAtWarmStart.
Referenced by BbParaSolver::BbParaSolver().
|
protectedvirtual |
process TagInCollectingMode
| source | source rank |
| tag | TagInCollectingMode |
Definition at line 525 of file bbParaSolver.cpp.
References BbParaSolver::aggressiveCollecting, BbParaSolver::collectingMode, BbParaNodePool::extractNode(), BbParaSolver::getNNodesLeft(), BbParaNodePool::getNumOfNodes(), BbParaNodePool::isEmpty(), BbParaSolver::nSendInCollectingMode, PARA_COMM_CALL, ParaSolver::paraComm, UG::ParaINT, ParaComm::receive(), BbParaSolver::selfSplitNodePool, BbParaNode::sendSubtreeRootNodeId(), UG::TagInCollectingMode, and UG::TagReassignSelfSplitSubtreeRootNode.
Referenced by BbParaSolver::BbParaSolver().
|
protectedvirtual |
process TagIncumbentValue
| source | source rank |
| tag | TagIncumbentValue |
Reimplemented from ParaSolver.
Definition at line 360 of file bbParaSolver.cpp.
References UG::Deterministic, ParaParamSet::getBoolParamValue(), ParaSolver::globalBestIncumbentValue, PARA_COMM_CALL, ParaSolver::paraComm, UG::ParaDOUBLE, ParaSolver::paraParams, ParaSolver::pendingIncumbentValue, ParaComm::receive(), UG::TagIncumbentValue, and BbParaSolver::updateGlobalBestIncumbentValue().
|
protectedvirtual |
process TagInterruptRequest
| source | source rank |
| tag | TagInterruptRequest |
Implements ParaSolver.
Reimplemented in ScipParaSolver.
Definition at line 609 of file bbParaSolver.cpp.
References BbParaSolver::collectingInterrupt, BbParaNodePool::extractNode(), UG::InterruptedTerminationMode, BbParaNodePool::isEmpty(), BbParaSolver::issueInterruptSolve(), BbParaSolver::keepRacing, BbParaSolver::noWaitModeSend, PARA_COMM_CALL, ParaSolver::paraComm, UG::ParaINT, ParaComm::receive(), BbParaSolver::selfSplitNodePool, BbParaSolver::setSendBackAllNodes(), ParaSolver::stayAliveAfterInterrupt, UG::TagInterruptRequest, and ParaSolver::terminationMode.
Referenced by BbParaSolver::BbParaSolver(), and ScipParaSolver::processTagInterruptRequest().
|
protectedvirtual |
process TagKeepRacing
| source | source rank |
| tag | TagChangeSearchStrategy |
Definition at line 797 of file bbParaSolver.cpp.
References BbParaSolver::keepRacing, PARA_COMM_CALL, ParaSolver::paraComm, UG::ParaINT, ParaComm::receive(), and UG::TagKeepRacing.
Referenced by BbParaSolver::BbParaSolver().
|
protectedvirtual |
process TagLbBoundTightened
| source | source rank |
| tag | TagLbBoundTightened |
Definition at line 765 of file bbParaSolver.cpp.
References BbParaSolver::lbBoundTightened().
Referenced by BbParaSolver::BbParaSolver().
|
protectedvirtual |
process TagLCBestBoundValue
| source | source rank |
| tag | TagLCBestBoundValue |
Definition at line 597 of file bbParaSolver.cpp.
References BbParaSolver::lcBestDualBoundValue, PARA_COMM_CALL, ParaSolver::paraComm, UG::ParaDOUBLE, ParaComm::receive(), and UG::TagLCBestBoundValue.
Referenced by BbParaSolver::BbParaSolver().
|
protectedvirtual |
process TagLightWeightRootNodeProcess
| source | source rank |
| tag | TagLightWeightRootNodeProcess |
Definition at line 663 of file bbParaSolver.cpp.
References BbParaSolver::lightWeightRootNodeComputation, PARA_COMM_CALL, UG::ParaBYTE, ParaSolver::paraComm, ParaComm::receive(), BbParaSolver::setLightWeightRootNodeProcess(), and UG::TagLightWeightRootNodeProcess.
Referenced by BbParaSolver::BbParaSolver().
|
protectedvirtual |
process TagNoNodes
| source | source rank |
| tag | TagNoNodes |
Definition at line 512 of file bbParaSolver.cpp.
References BbParaSolver::anotherNodeIsRequested, PARA_COMM_CALL, UG::ParaBYTE, ParaSolver::paraComm, ParaComm::receive(), and UG::TagNoNodes.
Referenced by BbParaSolver::BbParaSolver().
|
protectedvirtual |
process TagNoTestDualBoundGain
| source | source rank |
| tag | TagNoTestDualBoundGain |
Definition at line 723 of file bbParaSolver.cpp.
References BbParaSolver::enoughGainObtained, PARA_COMM_CALL, UG::ParaBYTE, ParaSolver::paraComm, ParaComm::receive(), UG::TagNoTestDualBoundGain, and BbParaSolver::testDualBoundGain.
Referenced by BbParaSolver::BbParaSolver().
|
protectedvirtual |
process TagNotificationId
| source | source rank |
| tag | TagNotificationId |
Implements ParaSolver.
Definition at line 392 of file bbParaSolver.cpp.
References ParaSolver::notificationIdGenerator, ParaSolver::notificationProcessed, PARA_COMM_CALL, ParaSolver::paraComm, UG::ParaUNSIGNED, ParaComm::receive(), UG::TagNotificationId, and THROW_LOGICAL_ERROR4.
Referenced by BbParaSolver::waitNotificationIdMessage().
|
protectedvirtual |
process TagNoWaitModeSend
| source | source rank |
| tag | TagNoWaitModeSend |
Definition at line 737 of file bbParaSolver.cpp.
References BbParaSolver::noWaitModeSend, PARA_COMM_CALL, UG::ParaBYTE, ParaSolver::paraComm, ParaComm::receive(), and UG::TagNoWaitModeSend.
Referenced by BbParaSolver::BbParaSolver().
|
protectedvirtual |
process TagOutCollectingMode
| source | source rank |
| tag | TagOutCollectingMode |
Definition at line 576 of file bbParaSolver.cpp.
References BbParaSolver::aggressiveCollecting, BbParaSolver::collectingMode, UG::NoTerminationMode, BbParaSolver::noWaitModeSend, BbParaSolver::nSendInCollectingMode, PARA_COMM_CALL, UG::ParaBYTE, ParaSolver::paraComm, ParaComm::receive(), BbParaSolver::setOriginalNodeSelectionStrategy(), UG::TagOutCollectingMode, and ParaSolver::terminationMode.
Referenced by BbParaSolver::BbParaSolver().
|
protectedvirtual |
process TagRampUp
| source | source rank |
| tag | TagRampUp |
Reimplemented from ParaSolver.
Definition at line 292 of file bbParaSolver.cpp.
References BbParaSolver::aggressiveCollecting, BbParaSolver::collectingManyNodes, BbParaSolver::collectingMode, BbParaSolver::enoughGainObtained, ParaTimer::getElapsedTime(), ParaParamSet::getIntParamValue(), ParaComm::getRank(), BbParaSolver::noWaitModeSend, BbParaSolver::nSendInCollectingMode, PARA_COMM_CALL, UG::ParaBYTE, ParaSolver::paraComm, ParaSolver::paraParams, ParaSolver::paraTimer, ParaSolver::racingWinner, ParaSolver::rampUp, UG::RampUpPhaseProcess, ParaComm::receive(), BbParaSolver::setOriginalNodeSelectionStrategy(), and UG::TagRampUp.
|
protectedvirtual |
process TagRestart
| source | source rank |
| tag | TagRestart |
Definition at line 750 of file bbParaSolver.cpp.
References UG::NoTerminationMode, PARA_COMM_CALL, UG::ParaBYTE, ParaSolver::paraComm, ParaSolver::rampUp, ParaComm::receive(), ParaSolver::stayAliveAfterInterrupt, UG::TagRestart, and ParaSolver::terminationMode.
Referenced by BbParaSolver::BbParaSolver().
|
protectedvirtual |
process TagRetryRampUp
| source | source rank |
| tag | TagRetryRampUp |
Definition at line 480 of file bbParaSolver.cpp.
References BbParaSolver::aggressiveCollecting, BbParaSolver::collectingMode, BbParaSolver::noWaitModeSend, BbParaSolver::nSendInCollectingMode, PARA_COMM_CALL, UG::ParaBYTE, ParaSolver::paraComm, ParaSolver::rampUp, ParaComm::receive(), and UG::TagRetryRampUp.
Referenced by BbParaSolver::BbParaSolver().
|
protectedvirtual |
process TagSolution
| source | source rank |
| tag | TagSolution |
Implements ParaSolver.
Definition at line 333 of file bbParaSolver.cpp.
References ParaComm::createParaSolution(), DEFAULT_NUM_EPSILON, EPSLE, ParaSolution::getObjectiveFunctionValue(), ParaSolver::globalBestIncumbentValue, ParaSolver::paraComm, ParaSolver::pendingIncumbentValue, ParaSolver::pendingSolution, and ParaSolution::receive().
|
protectedvirtual |
process TagNode
| source | source rank |
| tag | TagNode |
Implements ParaSolver.
Definition at line 244 of file bbParaSolver.cpp.
References BbParaSolver::anotherNodeIsRequested, ParaSolver::currentTask, DEF_BB_PARA_COMM, BbParaNode::getMergingStatus(), BbParaSolver::keepRacing, ParaSolver::newTask, ParaSolver::nParaTasksReceived, ParaSolver::paraComm, ParaTask::receive(), and ParaSolver::winnerRacingParams.
Referenced by BbParaSolver::BbParaSolver().
|
protectedvirtual |
process TagTaskReceived
| source | source rank |
| tag | TagTaskReceived |
Implements ParaSolver.
Definition at line 280 of file bbParaSolver.cpp.
References PARA_COMM_CALL, UG::ParaBYTE, ParaSolver::paraComm, ParaComm::receive(), and UG::TagTaskReceived.
|
protectedvirtual |
process TagTerminateRequest
| source | source rank |
| tag | TagTerminateRequest |
Implements ParaSolver.
Definition at line 410 of file bbParaSolver.cpp.
References UG::NormalTerminationMode, PARA_COMM_CALL, UG::ParaBYTE, ParaSolver::paraComm, ParaComm::receive(), ParaSolver::stayAliveAfterInterrupt, UG::TagTerminateRequest, and ParaSolver::terminationMode.
|
protectedvirtual |
process TagTerminateSolvingToRestart
| source | source rank |
| tag | TagTerminateSolvingToRestart |
Definition at line 820 of file bbParaSolver.cpp.
References BbParaSolver::isRacingStage(), PARA_COMM_CALL, UG::ParaBYTE, ParaSolver::paraComm, ParaSolver::racingIsInterrupted, ParaComm::receive(), BbParaSolver::restartingRacing, and UG::TagTerminateSolvingToRestart.
Referenced by BbParaSolver::BbParaSolver().
|
protectedvirtual |
process TagTestDualBoundGain
| source | source rank |
| tag | TagTestDualBoundGain |
Definition at line 709 of file bbParaSolver.cpp.
References BbParaSolver::averageDualBoundGain, BbParaSolver::enoughGainObtained, PARA_COMM_CALL, ParaSolver::paraComm, UG::ParaDOUBLE, ParaComm::receive(), UG::TagTestDualBoundGain, and BbParaSolver::testDualBoundGain.
Referenced by BbParaSolver::BbParaSolver().
|
protectedvirtual |
process TagToken
| source | source rank |
| tag | TagToken |
Reimplemented from ParaSolver.
Definition at line 465 of file bbParaSolver.cpp.
References UG::Deterministic, ParaParamSet::getBoolParamValue(), ParaComm::getRank(), PARA_COMM_CALL, ParaSolver::paraComm, UG::ParaINT, ParaSolver::paraParams, ParaComm::receive(), ParaComm::setToken(), and UG::TagToken.
|
protectedvirtual |
process TagUbBoundTightened
| source | source rank |
| tag | TagUbBoundTightened |
Definition at line 774 of file bbParaSolver.cpp.
References BbParaSolver::ubBoundTightened().
Referenced by BbParaSolver::BbParaSolver().
|
protectedvirtual |
process TagWinner
| source | source rank |
| tag | TagWinner |
Reimplemented from ParaSolver.
Definition at line 449 of file bbParaSolver.cpp.
References PARA_COMM_CALL, UG::ParaBYTE, ParaSolver::paraComm, ParaSolver::racingParams, ParaSolver::racingWinner, ParaComm::receive(), UG::TagWinner, and ParaSolver::winnerRacingParams.
|
protectedvirtual |
process TagWinnerRacingRampUpParamSet
| source | source rank |
| tag | TagWinnerRacingRampUpParamSet |
Reimplemented from ParaSolver.
Definition at line 425 of file bbParaSolver.cpp.
References ParaComm::createParaRacingRampUpParamSet(), ParaTimer::getElapsedTime(), ParaComm::getRank(), BbParaSolver::isRacingStage(), PARA_COMM_CALL, ParaSolver::paraComm, ParaSolver::paraTimer, ParaSolver::racingInterruptIsRequested, ParaSolver::racingIsInterrupted, ParaSolver::racingWinner, ParaRacingRampUpParamSet::receive(), and ParaSolver::winnerRacingParams.
|
protectedvirtual |
wait for receiving a new node and reactivate solver
Implements ParaSolver.
Definition at line 1126 of file bbParaSolver.cpp.
References ParaSolver::currentTask, UG::Deterministic, ParaParamSet::getBoolParamValue(), ParaDeterministicTimer::getElapsedTime(), ParaTimer::getElapsedTime(), ParaComm::getRank(), BbParaSolver::iReceiveMessages(), ParaSolver::messageHandler, ParaSolver::paraComm, ParaSolver::paraDetTimer, ParaSolver::paraParams, ParaSolver::paraTimer, BbParaSolver::passToken(), ParaSolver::previousCommTime, ParaSolver::previousNotificationTime, ParaComm::probe(), ParaSolver::stayAliveAfterInterrupt, ParaSolver::terminationMode, THROW_LOGICAL_ERROR3, ParaDeterministicTimer::update(), and BbParaSolver::waitToken().
Referenced by BbParaSolver::run().
| void resetBreakingInfo | ( | ) |
reset breaking information
Definition at line 1120 of file bbParaSolver.h.
References BbParaSolver::collectingManyNodes, BbParaSolver::nTransferLimit, BbParaSolver::nTransferredNodes, and BbParaSolver::targetBound.
Referenced by BbParaSolver::run(), and ScipParaObjCommPointHdlr::scip_exec().
|
protectedvirtual |
restart racing
Definition at line 2112 of file bbParaSolver.cpp.
References ParaTask::bcast(), ParaComm::createParaTask(), BbParaSolver::freeSubproblem(), BbParaSolver::keepRacing, ParaSolver::newTask, UG::NoTerminationMode, ParaSolver::nParaTasksReceived, PARA_COMM_CALL, ParaSolver::paraComm, ParaSolver::paraInstance, ParaSolver::racingIsInterrupted, ParaSolver::reinitialize(), BbParaSolver::restartingRacing, ParaSolver::subproblemFreed, and ParaSolver::terminationMode.
Referenced by BbParaSolver::sendCompletionOfCalculation().
|
virtual |
set collecting mode
set start time and ilde times
Before sending completion state, receiving message should be checked. When subproblem terminated with no branch, solver lost a timing for receiving new node
Implements ParaSolver.
Definition at line 835 of file bbParaSolver.cpp.
References BbParaSolver::aggressiveCollecting, UG::CheckEffectOfRootNodePreprocesses, BbParaSolver::collectingManyNodes, BbParaSolver::collectingMode, BbParaSolver::createSubproblem(), ParaSolver::currentTask, UG::Deterministic, BbParaNodePool::extractNode(), BbParaSolver::freeSubproblem(), ParaParamSet::getBoolParamValue(), ParaDeterministicTimer::getElapsedTime(), ParaTimer::getElapsedTime(), BbParaSolver::getNNodesSolved(), BbParaNodePool::getNumOfNodes(), ParaComm::getRank(), ParaSolver::globalBestIncumbentSolution, ParaSolver::globalBestIncumbentValue, ParaSolver::globalIncumbnetValueUpdateFlag, ParaSolver::idleTimeBetweenParaTasks, ParaSolver::idleTimeToFirstParaTask, ParaSolver::idleTimeToWaitToken, BbParaSolver::iReceiveMessages(), BbParaNodePool::isEmpty(), BbParaSolver::lightWeightRootNodeComputation, BbParaSolver::nCollectOnce, ParaSolver::newTask, BbParaSolver::notifySelfSplitFinished(), BbParaSolver::noWaitModeSend, ParaSolver::nParaTasksReceived, BbParaSolver::nSendInCollectingMode, BbParaSolver::nSolved, BbParaSolver::onceBreak, ParaSolver::paraComm, ParaSolver::paraDetTimer, ParaSolver::paraParams, ParaSolver::paraTaskStartTime, ParaSolver::paraTimer, BbParaSolver::passToken(), ParaSolver::previousCommTime, ParaSolver::previousIdleTimeToWaitToken, ParaSolver::previousStopTime, ParaSolver::racingInterruptIsRequested, ParaSolver::racingParams, ParaSolver::racingWinner, BbParaSolver::receiveNewTaskAndReactivate(), BbParaSolver::resetBreakingInfo(), BbParaSolver::selfSplitNodePool, BbParaSolver::sendCompletionOfCalculation(), BbParaSolver::sendCompletionOfCalculationWithoutSolving(), BbParaNode::sendSubtreeRootNodeId(), UG::SetAllDefaultsAfterRacing, BbParaSolver::setOriginalRootNodeProcess(), BbParaSolver::setWinnerRacingParams(), BbParaSolver::solve(), BbParaSolver::solveToCheckEffectOfRootNodePreprocesses(), ParaSolver::stayAliveAfterInterrupt, ParaSolver::subproblemFreed, UG::TagCompletionOfCalculation, UG::TagReassignSelfSplitSubtreeRootNode, UG::TagSelfSlpitNodeCalcuationState, UG::TagSubtreeRootNodeStartComputation, ParaSolver::terminationMode, BbParaSolver::tryNewSolution(), ParaDeterministicTimer::update(), ParaSolver::updatePendingSolution(), BbParaSolver::waitAckCompletion(), BbParaSolver::waitToken(), and ParaSolver::winnerRacingParams.
Referenced by runSolverThread().
|
virtual |
run this Solver
Implements ParaSolver.
|
virtual |
run this Solver
| inRacingRampUpParamSet | pointer to ParaRacingRampUpParamSet object |
Reimplemented from ParaSolver.
Definition at line 454 of file paraSolver.h.
|
virtual |
run this Solver with ParaNode object
run this solver with racing parameters
| inRacingRampUpParamSet | pointer to ParaRacingRampUpParamSet object |
Reimplemented from ParaSolver.
Definition at line 692 of file bbParaSolver.h.
References ParaTask::bcast(), ParaComm::createParaTask(), UG::Deterministic, ParaParamSet::getBoolParamValue(), ParaComm::getRank(), BbParaSolver::iReceiveMessages(), ParaSolver::nParaTasksReceived, PARA_COMM_CALL, ParaSolver::paraComm, ParaSolver::paraParams, BbParaSolver::passToken(), ParaSolver::racingParams, ParaSolver::run(), BbParaSolver::setRacingParams(), and BbParaSolver::waitToken().
|
virtual |
run this Solver
| paraTask | pointer to ParaTask object |
Reimplemented from ParaSolver.
Definition at line 443 of file paraSolver.h.
|
virtual |
save improved solution if it was found in this Solver
| sol | solution found in this Solver |
Reimplemented from ParaSolver.
Definition at line 2172 of file bbParaSolver.cpp.
References ParaSolver::eps, EPSLT, ParaSolution::getObjectiveFunctionValue(), ParaSolver::globalBestIncumbentValue, BbParaSolver::localIncumbentIsChecked, ParaSolver::localIncumbentSolution, and ParaSolver::nImprovedIncumbent.
Referenced by ScipParaObjCommPointHdlr::checkRootNodeSolvabilityAndSendParaNode(), ScipParaObjCommPointHdlr::processNewSolution(), and ScipParaSolver::saveImprovedSolution().
|
virtual |
send another node request
| bestDualBoundValue | best dual bound value in this Solver |
Definition at line 2072 of file bbParaSolver.cpp.
References BbParaSolver::anotherNodeIsRequested, BbParaSolver::givenGapIsReached, BbParaNodePool::isEmpty(), PARA_COMM_CALL, ParaSolver::paraComm, UG::ParaDOUBLE, BbParaSolver::selfSplitNodePool, ParaComm::send(), and UG::TagAnotherNodeRequest.
Referenced by ScipParaObjCommPointHdlr::scip_exec().
|
protectedvirtual |
send completion of calculation
| stopTime | stopping time |
Implements ParaSolver.
Definition at line 438 of file bbParaSolver.h.
Referenced by BbParaSolver::run().
|
protectedvirtual |
send completion of calculation with arguments
nSolved > 1 is set within callback routine
Transfer SolverTermination state during racing ramp-up
interupted flag == 3 means the information for racing ramp-up
re-initialize all counters, winner counts on current counters
Transfer SolverTermination state to save statistic information for checkpoint
interupted flag == 2 means the information for checkpoint
| stopTime | stopping time |
| tag | message Tag |
| nSelfSplitNodesLeft | number of self-split nodes left |
Definition at line 1261 of file bbParaSolver.cpp.
References BbParaSolver::anotherNodeIsRequested, BbParaSolver::collectingManyNodes, UG::CompInterruptedInMerging, UG::CompInterruptedInRacingStage, UG::CompTerminatedByAnotherTask, UG::CompTerminatedByInterruptRequest, UG::CompTerminatedByMemoryLimit, UG::CompTerminatedByTimeLimit, UG::CompTerminatedInRacingStage, UG::CompTerminatedNormally, ParaSolver::currentTask, DEF_BB_PARA_COMM, UG::Deterministic, BbParaNodePool::getBestDualBoundValue(), ParaParamSet::getBoolParamValue(), ParaDeterministicTimer::getElapsedTime(), ParaTimer::getElapsedTime(), BbParaSolver::getNRestarts(), BbParaSolver::getNTightened(), BbParaSolver::getNTightenedInt(), ParaComm::getRank(), BbParaSolver::getSimplexIter(), BbParaSolver::givenGapIsReached, ParaSolver::idleTimeBetweenParaTasks, ParaSolver::idleTimeToFirstParaTask, ParaSolver::idleTimeToWaitAckCompletion, ParaSolver::idleTimeToWaitNotificationId, ParaSolver::idleTimeToWaitToken, UG::InterruptedTerminationMode, BbParaNodePool::isEmpty(), BbParaSolver::isRacingStage(), BbParaSolver::keepRacing, BbParaSolver::maxIisum, BbParaSolver::maxNii, BbParaSolver::maxNSolved, BbParaSolver::maxRestarts, BbParaSolver::maxRootNodeTime, BbParaSolver::maxTransferredBendersCuts, BbParaSolver::maxTransferredBendersCutsFromSolver, BbParaSolver::maxTransferredLocalCuts, BbParaSolver::maxTransferredLocalCutsFromSolver, ParaSolver::memoryLimitIsReached, ParaSolver::messageHandler, BbParaSolver::minIisum, BbParaSolver::minNii, BbParaSolver::minNSolved, BbParaSolver::minRestarts, BbParaSolver::minRootNodeTime, BbParaSolver::minTransferredBendersCuts, BbParaSolver::minTransferredBendersCutsFromSolver, BbParaSolver::minTransferredLocalCuts, BbParaSolver::minTransferredLocalCutsFromSolver, BbParaSolver::nCollectOnce, ParaSolver::newTask, ParaSolver::nImprovedIncumbent, BbParaSolver::nParaNodesSolvedAtPreCheck, BbParaSolver::nParaNodesSolvedAtRoot, ParaSolver::nParaTasksReceived, ParaSolver::nParaTasksSolved, BbParaSolver::nSendInCollectingMode, BbParaSolver::nSent, BbParaSolver::nSimplexIterRoot, BbParaSolver::nSolved, BbParaSolver::nSolvedWithNoPreprocesses, BbParaSolver::nTotalRestarts, BbParaSolver::nTransferredBendersCuts, BbParaSolver::nTransferredBendersCutsFromSolver, BbParaSolver::nTransferredLocalCuts, BbParaSolver::nTransferredLocalCutsFromSolver, ParaSolver::paraComm, ParaSolver::paraDetTimer, ParaSolver::paraParams, ParaSolver::paraTimer, ParaComm::probe(), ParaSolver::racingInterruptIsRequested, ParaSolver::racingIsInterrupted, ParaSolver::racingWinner, BbParaSolver::restartingRacing, BbParaSolver::restartRacing(), BbParaSolver::rootNodeTime, BbParaSolver::selfSplitNodePool, ParaCalculationState::send(), ParaSolverTerminationState::send(), BbParaSolver::setRootNodeSimplexIter(), BbParaSolver::setRootNodeTime(), BbParaSolver::solverDualBound, UG::TagCompletionOfCalculation, UG::TagSelfSplitTermStateForInterruption, UG::TagTermStateForInterruption, ParaSolver::terminateRacing(), ParaSolver::terminationMode, THROW_LOGICAL_ERROR3, UG::TimeLimitTerminationMode, BbParaSolver::totalNImprovedIncumbent, BbParaSolver::totalNSent, BbParaSolver::totalNSolved, BbParaSolver::totalRootNodeTime, and BbParaSolver::wasTerminatedNormally().
|
protectedvirtual |
send completion of calculation with arguments
Transfer SolverTermination state to save statistic information for checkpoint
interupted flag == 2 means the information for checkpoint
| stopTime | stopping time |
| tag | message Tag |
| nSelfSplitNodesLeft | number of self-split nodes left |
Definition at line 1632 of file bbParaSolver.cpp.
References UG::CompTerminatedNormally, DEF_BB_PARA_COMM, UG::Deterministic, BbParaNodePool::getBestDualBoundValue(), ParaParamSet::getBoolParamValue(), ParaDeterministicTimer::getElapsedTime(), ParaTimer::getElapsedTime(), BbParaSolver::getNTightened(), BbParaSolver::getNTightenedInt(), ParaComm::getRank(), BbParaSolver::givenGapIsReached, ParaSolver::idleTimeBetweenParaTasks, ParaSolver::idleTimeToFirstParaTask, ParaSolver::idleTimeToWaitAckCompletion, ParaSolver::idleTimeToWaitNotificationId, ParaSolver::idleTimeToWaitToken, BbParaNodePool::isEmpty(), BbParaSolver::maxNSolved, BbParaSolver::maxRestarts, BbParaSolver::maxRootNodeTime, BbParaSolver::maxTransferredBendersCutsFromSolver, BbParaSolver::maxTransferredLocalCutsFromSolver, BbParaSolver::minNSolved, BbParaSolver::minRestarts, BbParaSolver::minRootNodeTime, BbParaSolver::minTransferredBendersCutsFromSolver, BbParaSolver::minTransferredLocalCutsFromSolver, BbParaSolver::nParaNodesSolvedAtPreCheck, BbParaSolver::nParaNodesSolvedAtRoot, ParaSolver::nParaTasksReceived, ParaSolver::nParaTasksSolved, BbParaSolver::nSendInCollectingMode, BbParaSolver::nTotalRestarts, BbParaSolver::nTransferredBendersCutsFromSolver, BbParaSolver::nTransferredLocalCutsFromSolver, ParaSolver::paraComm, ParaSolver::paraDetTimer, ParaSolver::paraParams, ParaSolver::paraTimer, ParaSolver::racingIsInterrupted, BbParaSolver::selfSplitNodePool, ParaCalculationState::send(), ParaSolverTerminationState::send(), BbParaSolver::solverDualBound, UG::TagSelfSplitTermStateForInterruption, BbParaSolver::totalNImprovedIncumbent, BbParaSolver::totalNSent, BbParaSolver::totalNSolved, and BbParaSolver::totalRootNodeTime.
Referenced by BbParaSolver::run().
|
virtual |
send improved solution if it was found in this Solver
| sol | solution found in this Solver |
Reimplemented from ParaSolver.
Definition at line 2141 of file bbParaSolver.cpp.
References ParaSolver::eps, EPSLT, ParaSolution::getObjectiveFunctionValue(), ParaSolver::globalBestIncumbentSolution, ParaSolver::globalBestIncumbentValue, ParaSolver::globalIncumbnetValueUpdateFlag, ParaSolver::localIncumbentSolution, ParaSolver::nImprovedIncumbent, ParaSolver::paraComm, and ParaSolution::send().
|
virtual |
send solution found in this Solver
Reimplemented from ParaSolver.
Definition at line 1716 of file bbParaSolver.cpp.
References ParaSolver::eps, EPSLT, ParaSolution::getObjectiveFunctionValue(), ParaSolver::globalBestIncumbentSolution, ParaSolver::localIncumbentSolution, ParaSolver::notificationProcessed, ParaSolver::paraComm, and ParaSolution::send().
Referenced by ScipParaObjCommPointHdlr::scip_exec(), and ScipParaSolver::solve().
|
virtual |
send a branch-and-bound node as ParaNode to LoadCoordinator
| n | branch-and-bound node number in this Solver |
| depth | depth of branch-and-bound node in this Solver |
| dualBound | dual bound value of branch-and-bound node |
| estimateValue | estimate value of branch-and-bound node |
| diffSubproblem | difference between the root branch-and-bound node and transferred one |
Definition at line 1971 of file bbParaSolver.cpp.
References BbParaSolver::aggressiveCollecting, BbParaSolver::collectingManyNodes, ParaSolver::currentTask, DEF_BB_PARA_COMM, BbParaNode::getDepth(), BbParaNode::getDualBoundValue(), ParaTimer::getElapsedTime(), ParaComm::getRank(), SubtaskId::globalSubtaskIdInLc, ParaSolver::idleTimeToWaitNotificationId, BbParaSolver::isBreaking(), SubtaskId::lcId, ParaSolver::messageHandler, BbParaSolver::nCollectOnce, BbParaSolver::noWaitModeSend, BbParaSolver::nSendInCollectingMode, BbParaSolver::nSent, BbParaSolver::nTransferredNodes, ParaSolver::paraComm, ParaSolver::paraTimer, BbParaNode::send(), TaskId::subtaskId, UG::TagAny, UG::TagTaskReceived, ParaTask::taskId, ParaSolver::waitingSpecificMessage, and ParaComm::waitSpecTagFromSpecSource().
Referenced by ScipParaObjCommPointHdlr::sendNode().
|
virtual |
send Solver state to LoadCoordinator
assume not racing stage
Definition at line 1865 of file bbParaSolver.cpp.
References BbParaSolver::averageDualBoundGain, ParaSolver::currentTask, DEF_BB_PARA_COMM, UG::Deterministic, BbParaNodePool::getBestDualBoundValue(), ParaParamSet::getBoolParamValue(), BbParaSolver::getDualBoundValue(), ParaDeterministicTimer::getElapsedTime(), ParaTimer::getElapsedTime(), ParaTask::getGlobalSubtaskIdInLc(), ParaTask::getLcId(), BbParaNodePool::getNumOfNodes(), ParaSolution::getObjectiveFunctionValue(), ParaSolver::globalBestIncumbentSolution, BbParaNodePool::isEmpty(), BbParaSolver::isRacingStage(), ParaSolver::notificationIdGenerator, ParaSolver::notificationProcessed, ParaSolver::paraComm, ParaSolver::paraDetTimer, ParaSolver::paraParams, ParaSolver::paraTimer, ParaSolver::previousNotificationTime, BbParaSolver::selfSplitNodePool, ParaSolverState::send(), and UG::TagSolverState.
Referenced by ScipParaObjCommPointHdlr::scip_exec().
|
protectedvirtual |
send Solver termination state
Definition at line 175 of file bbParaSolver.cpp.
References UG::CompTerminatedByInterruptRequest, UG::CompTerminatedNormally, DEF_BB_PARA_COMM, ParaTimer::getElapsedTime(), ParaComm::getRank(), ParaSolver::idleTimeAfterLastParaTask, ParaSolver::idleTimeBetweenParaTasks, ParaSolver::idleTimeToFirstParaTask, ParaSolver::idleTimeToWaitAckCompletion, ParaSolver::idleTimeToWaitNotificationId, ParaSolver::idleTimeToWaitToken, interrupted, UG::InterruptedTerminationMode, BbParaSolver::maxNSolved, BbParaSolver::maxRestarts, BbParaSolver::maxRootNodeTime, BbParaSolver::maxTransferredBendersCutsFromSolver, BbParaSolver::maxTransferredLocalCutsFromSolver, BbParaSolver::minNSolved, BbParaSolver::minRestarts, BbParaSolver::minRootNodeTime, BbParaSolver::minTransferredBendersCutsFromSolver, BbParaSolver::minTransferredLocalCutsFromSolver, BbParaSolver::nParaNodesSolvedAtPreCheck, BbParaSolver::nParaNodesSolvedAtRoot, ParaSolver::nParaTasksReceived, ParaSolver::nParaTasksSolved, BbParaSolver::nTightened, BbParaSolver::nTightenedInt, BbParaSolver::nTotalRestarts, BbParaSolver::nTransferredBendersCutsFromSolver, BbParaSolver::nTransferredLocalCutsFromSolver, ParaSolver::paraComm, ParaSolver::paraTimer, ParaSolver::previousIdleTimeToWaitToken, ParaSolver::previousStopTime, ParaSolverTerminationState::send(), UG::TagTerminated, ParaSolver::terminationMode, BbParaSolver::totalNImprovedIncumbent, BbParaSolver::totalNSent, BbParaSolver::totalNSolved, and BbParaSolver::totalRootNodeTime.
| void setII | ( | double | sum, |
| int | count | ||
| ) |
set sum and number of integer infeasibility
| sum | sum of integer infeasibility |
| count | number of integer infeasibility |
Definition at line 1243 of file bbParaSolver.h.
References BbParaSolver::maxIisum, BbParaSolver::maxNii, BbParaSolver::minIisum, and BbParaSolver::minNii.
Referenced by ScipParaObjBranchRule::scip_execlp().
| void setKeepRacing | ( | bool | value | ) |
set keep racing value
Definition at line 1513 of file bbParaSolver.h.
References BbParaSolver::keepRacing.
|
virtual |
set light weight root node process
Reimplemented in ScipParaSolver.
Definition at line 1396 of file bbParaSolver.h.
Referenced by BbParaSolver::processTagLightWeightRootNodeProcess().
| void setNotEnoughGain | ( | ) |
set dual bound gain is not enough
Definition at line 1322 of file bbParaSolver.h.
References BbParaSolver::enoughGainObtained.
Referenced by ScipParaObjCommPointHdlr::scip_exec().
| void setOnceBreak | ( | ) |
set once braking procedure worked
Definition at line 1142 of file bbParaSolver.h.
References BbParaSolver::collectingManyNodes, BbParaSolver::nCollectOnce, and BbParaSolver::onceBreak.
|
protectedpure virtual |
set original node selection strategy
Implemented in ScipParaSolver.
Referenced by BbParaSolver::processTagOutCollectingMode(), and BbParaSolver::processTagRampUp().
|
virtual |
set original root node process
Reimplemented in ScipParaSolver.
Definition at line 1405 of file bbParaSolver.h.
Referenced by BbParaSolver::run().
|
protectedpure virtual |
set racing parameters
| racingParms | pointer to racing parameter set object |
| winnerParam | indicate if the parameter set is winner one |
Reimplemented from ParaSolver.
Implemented in ScipParaSolver.
Referenced by BbParaSolver::run().
| void setRootNodeSimplexIter | ( | int | iter | ) |
set number of simplex iteration at root node
Definition at line 1257 of file bbParaSolver.h.
References BbParaSolver::nSimplexIterRoot.
Referenced by ScipParaObjCommPointHdlr::scip_exec(), and BbParaSolver::sendCompletionOfCalculation().
|
virtual |
set root node computing time
Definition at line 1246 of file bbParaSolver.cpp.
References ParaTimer::getElapsedTime(), BbParaSolver::maxRootNodeTime, BbParaSolver::minRootNodeTime, ParaSolver::paraTaskStartTime, ParaSolver::paraTimer, and BbParaSolver::rootNodeTime.
Referenced by ScipParaObjCommPointHdlr::scip_exec(), and BbParaSolver::sendCompletionOfCalculation().
| void setSendBackAllNodes | ( | ) |
set counter and flag to indicate that all nodes are sent to LoadCooordinator
Definition at line 1193 of file bbParaSolver.h.
References BbParaSolver::collectingManyNodes, and BbParaSolver::nCollectOnce.
Referenced by BbParaSolver::processTagInterruptRequest(), and ScipParaObjCommPointHdlr::scip_exec().
|
protectedpure virtual |
set winner racing parameters
| racingParms | pointer to winner racing parameter set object |
Reimplemented from ParaSolver.
Implemented in ScipParaSolver.
Referenced by BbParaSolver::run().
|
protectedpure virtual |
solve (sub)problem
Implements ParaSolver.
Implemented in ScipParaSolver.
Referenced by BbParaSolver::run().
|
protectedvirtual |
solve to check effect of root node preprocesses
set nSolvedWithNoPreprocesses
Reimplemented in ScipParaSolver.
Definition at line 535 of file bbParaSolver.h.
Referenced by BbParaSolver::run().
|
pure virtual |
try to enter solution to base solver environment
| sol | solution to be enterred |
Implements ParaSolver.
Implemented in ScipParaSolver.
Referenced by BbParaSolver::run().
|
protectedvirtual |
upper bound of variable tightened
| source | source rank |
| tag | TagUbBoundTightened |
Reimplemented in ScipParaSolver.
Definition at line 557 of file bbParaSolver.h.
Referenced by BbParaSolver::processTagUbBoundTightened().
|
protectedvirtual |
update global best cutoff value
| newValue | new cutoff value |
Definition at line 2087 of file bbParaSolver.cpp.
References BbParaSolver::globalBestCutOffValue.
Referenced by BbParaSolver::processTagCutOffValue().
|
protectedvirtual |
update global best incumbent solution
| sol | pointer to new solution object |
Reimplemented from ParaSolver.
Definition at line 2238 of file bbParaSolver.cpp.
References DEFAULT_NUM_EPSILON, EPSLE, ParaSolution::getObjectiveFunctionValue(), ParaSolver::globalBestIncumbentSolution, ParaSolver::globalBestIncumbentValue, and ParaSolver::globalIncumbnetValueUpdateFlag.
|
protectedvirtual |
update global best incumbent value
| newValue | new incumbent value |
Reimplemented from ParaSolver.
Definition at line 2224 of file bbParaSolver.cpp.
References ParaSolver::globalBestIncumbentValue, and ParaSolver::globalIncumbnetValueUpdateFlag.
Referenced by BbParaSolver::processTagIncumbentValue().
| void updateNTransferredBendersCuts | ( | int | n | ) |
update number of transferred benders cuts
| n | number of transferred benders cuts to be added |
Definition at line 1475 of file bbParaSolver.h.
References BbParaSolver::maxTransferredBendersCuts, BbParaSolver::minTransferredBendersCuts, and BbParaSolver::nTransferredBendersCuts.
Referenced by ScipParaDiffSubproblem::addLocalNodeInfo().
| void updateNTransferredLocalCuts | ( | int | n | ) |
update number of transferred local cuts
| n | number of transferred local cuts to be added |
Definition at line 1457 of file bbParaSolver.h.
References BbParaSolver::maxTransferredLocalCuts, BbParaSolver::minTransferredLocalCuts, and BbParaSolver::nTransferredLocalCuts.
Referenced by ScipParaDiffSubproblem::addLocalNodeInfo().
|
virtual |
wait ack completion to synchronized with LoadCoordinator
Implements ParaSolver.
Definition at line 2321 of file bbParaSolver.cpp.
References UG::CheckpointInterval, UG::DynamicAdjustNotificationInterval, ParaParamSet::getBoolParamValue(), ParaTimer::getElapsedTime(), ParaParamSet::getRealParamValue(), ParaSolver::idleTimeToWaitAckCompletion, ParaSolver::messageHandler, UG::NormalTerminationMode, UG::NotificationInterval, PARA_COMM_CALL, UG::ParaBYTE, ParaSolver::paraComm, ParaSolver::paraParams, ParaSolver::paraTimer, ParaComm::receive(), ParaParamSet::setRealParamValue(), UG::TagAckCompletion, UG::TagAny, ParaSolver::terminationMode, ParaSolver::waitingSpecificMessage, and ParaComm::waitSpecTagFromSpecSource().
Referenced by BbParaSolver::run().
|
virtual |
wait a notification id message if it is needed to synchronize with LoadCoordinaor
Implements ParaSolver.
Definition at line 2100 of file bbParaSolver.cpp.
References BbParaSolver::collectingManyNodes, BbParaSolver::collectingMode, ParaParamSet::getIntParamValue(), UG::NotificationSynchronization, ParaSolver::paraParams, ParaSolver::rampUp, and BbParaSolver::waitNotificationIdMessage().
Referenced by ScipParaObjCommPointHdlr::scip_exec().
|
virtual |
wait notification id message to synchronized with LoadCoordinator
Implements ParaSolver.
Definition at line 2277 of file bbParaSolver.cpp.
References ParaTimer::getElapsedTime(), ParaSolver::idleTimeToWaitNotificationId, ParaSolver::messageHandler, ParaSolver::paraComm, ParaSolver::paraTimer, BbParaSolver::processTagNotificationId(), UG::TagAny, UG::TagNotificationId, ParaSolver::waitingSpecificMessage, and ParaComm::waitSpecTagFromSpecSource().
Referenced by ScipParaSolver::solve(), and BbParaSolver::waitMessageIfNecessary().
|
virtual |
wait token for deterministic mode
| rank | rank of this Solver |
Reimplemented from ParaSolver.
Definition at line 1268 of file bbParaSolver.h.
References ParaTimer::getElapsedTime(), ParaSolver::idleTimeToWaitToken, ParaSolver::paraComm, ParaSolver::paraTimer, and ParaComm::waitToken().
Referenced by BbParaSolver::receiveNewTaskAndReactivate(), BbParaSolver::run(), ScipParaObjCommPointHdlr::scip_exec(), and ScipParaSolver::~ScipParaSolver().
|
pure virtual |
check if Solver was terminated normally or not
Implements ParaSolver.
Implemented in ScipParaSolver.
Referenced by BbParaSolver::sendCompletionOfCalculation().
|
pure virtual |
write current node problem (this method is always useful for debugging, so we should implement this method)
| filename | file name to write |
Implements ParaSolver.
Implemented in ScipParaSolver.
|
pure virtual |
write subproblem
Implements ParaSolver.
Implemented in ScipParaSolver.
Referenced by BbParaSolver::iReceiveMessages().
|
protected |
indicate that if this solver has two nodes, this solver sends one to LC
Definition at line 74 of file bbParaSolver.h.
Referenced by BbParaSolver::isAggressiveCollecting(), BbParaSolver::processTagInCollectingMode(), BbParaSolver::processTagOutCollectingMode(), BbParaSolver::processTagRampUp(), BbParaSolver::processTagRetryRampUp(), BbParaSolver::run(), and BbParaSolver::sendParaNode().
|
protected |
indicate that another node is requested or not
Definition at line 79 of file bbParaSolver.h.
Referenced by BbParaSolver::isAnotherNodeIsRequested(), BbParaSolver::processTagNoNodes(), BbParaSolver::processTagTask(), BbParaSolver::sendAnotherNodeRequest(), and BbParaSolver::sendCompletionOfCalculation().
|
protected |
average dual bound gain
Definition at line 139 of file bbParaSolver.h.
Referenced by BbParaSolver::getAverageDualBoundGain(), BbParaSolver::processTagTestDualBoundGain(), and BbParaSolver::sendSolverState().
|
protected |
when the solver is interrupted, all nodes are collected to LC
Definition at line 78 of file bbParaSolver.h.
Referenced by BbParaSolver::isCollecingInterrupt(), and BbParaSolver::processTagInterruptRequest().
|
protected |
indicate that many nodes collecting is requested by LC
Definition at line 77 of file bbParaSolver.h.
Referenced by BbParaSolver::isCollectingAllNodes(), BbParaSolver::isInCollectingMode(), BbParaSolver::isManyNodesCollectionRequested(), BbParaSolver::notificationIsNecessary(), BbParaSolver::processTagBreaking(), BbParaSolver::processTagCollectAllNodes(), BbParaSolver::processTagRampUp(), BbParaSolver::resetBreakingInfo(), BbParaSolver::run(), BbParaSolver::sendCompletionOfCalculation(), BbParaSolver::sendParaNode(), BbParaSolver::setOnceBreak(), BbParaSolver::setSendBackAllNodes(), and BbParaSolver::waitMessageIfNecessary().
|
protected |
indicate whether if this solver is in collecting mode or not
Definition at line 73 of file bbParaSolver.h.
Referenced by BbParaSolver::isInCollectingMode(), BbParaSolver::notificationIsNecessary(), BbParaSolver::processTagInCollectingMode(), BbParaSolver::processTagOutCollectingMode(), BbParaSolver::processTagRampUp(), BbParaSolver::processTagRetryRampUp(), BbParaSolver::run(), and BbParaSolver::waitMessageIfNecessary().
|
protected |
indicate that the root node process improved dual bound enough or not
Definition at line 140 of file bbParaSolver.h.
Referenced by BbParaSolver::isEnoughGainObtained(), BbParaSolver::processTagNoTestDualBoundGain(), BbParaSolver::processTagRampUp(), BbParaSolver::processTagTestDualBoundGain(), and BbParaSolver::setNotEnoughGain().
|
protected |
indicate that the given gap is reached or not
Definition at line 142 of file bbParaSolver.h.
Referenced by BbParaSolver::isGivenGapReached(), BbParaSolver::processTagGivenGapIsReached(), BbParaSolver::sendAnotherNodeRequest(), BbParaSolver::sendCompletionOfCalculation(), and BbParaSolver::sendCompletionOfCalculationWithoutSolving().
|
protected |
global best cut off value
Definition at line 71 of file bbParaSolver.h.
Referenced by BbParaSolver::getCutOffValue(), and BbParaSolver::updateGlobalBestCutOffValue().
|
protected |
global best dual bound value which is set when system warm starts
Definition at line 70 of file bbParaSolver.h.
Referenced by BbParaSolver::getGlobalBestDualBoundValueAtWarmStart(), and BbParaSolver::processTagGlobalBestDualBoundValueAtWarmStart().
|
protected |
indicate if Solver needs to do racing ramp-up repeatedly in case of warm start
Definition at line 145 of file bbParaSolver.h.
Referenced by BbParaSolver::processTagInterruptRequest(), BbParaSolver::processTagKeepRacing(), BbParaSolver::processTagTask(), BbParaSolver::restartRacing(), BbParaSolver::sendCompletionOfCalculation(), and BbParaSolver::setKeepRacing().
|
protected |
LoadCoordinator best dual bound value.
Definition at line 72 of file bbParaSolver.h.
Referenced by BbParaSolver::getLcBestDualBoundValue(), BbParaSolver::notificationIsNecessary(), and BbParaSolver::processTagLCBestBoundValue().
|
protected |
indicate that fast root node computation is required
Definition at line 80 of file bbParaSolver.h.
Referenced by BbParaSolver::processTagLightWeightRootNodeProcess(), BbParaSolver::run(), ScipParaSolver::setLightWeightRootNodeProcess(), and ScipParaSolver::setOriginalRootNodeProcess().
|
protected |
indicate if a local incumbent solution is checked or not
Definition at line 147 of file bbParaSolver.h.
Referenced by BbParaSolver::saveIfImprovedSolutionWasFound().
|
protected |
maximum sum of integer infeasibility
Definition at line 129 of file bbParaSolver.h.
Referenced by BbParaSolver::sendCompletionOfCalculation(), and BbParaSolver::setII().
|
protected |
maximum number of integer infeasibility
Definition at line 131 of file bbParaSolver.h.
Referenced by BbParaSolver::sendCompletionOfCalculation(), and BbParaSolver::setII().
|
protected |
maximum number of subtree nodes rooted from ParaNode
Definition at line 104 of file bbParaSolver.h.
Referenced by BbParaSolver::sendCompletionOfCalculation(), BbParaSolver::sendCompletionOfCalculationWithoutSolving(), BbParaSolver::sendSolverTerminationState(), and ScipParaSolver::~ScipParaSolver().
|
protected |
maximum number of restarts
Definition at line 113 of file bbParaSolver.h.
Referenced by BbParaSolver::sendCompletionOfCalculation(), BbParaSolver::sendCompletionOfCalculationWithoutSolving(), BbParaSolver::sendSolverTerminationState(), and ScipParaSolver::~ScipParaSolver().
|
protected |
maximum time consumed by root node process
Definition at line 90 of file bbParaSolver.h.
Referenced by BbParaSolver::sendCompletionOfCalculation(), BbParaSolver::sendCompletionOfCalculationWithoutSolving(), BbParaSolver::sendSolverTerminationState(), BbParaSolver::setRootNodeTime(), and ScipParaSolver::~ScipParaSolver().
|
protected |
maximum number of benders cuts transferred from a ParaNode
Definition at line 125 of file bbParaSolver.h.
Referenced by BbParaSolver::sendCompletionOfCalculation(), and BbParaSolver::updateNTransferredBendersCuts().
|
protected |
maximum number of benders cuts transferred from this Solver
Definition at line 110 of file bbParaSolver.h.
Referenced by BbParaSolver::sendCompletionOfCalculation(), BbParaSolver::sendCompletionOfCalculationWithoutSolving(), BbParaSolver::sendSolverTerminationState(), and ScipParaSolver::~ScipParaSolver().
|
protected |
maximum number of local cuts (including conflict cuts) transferred from a ParaNode
Definition at line 122 of file bbParaSolver.h.
Referenced by BbParaSolver::sendCompletionOfCalculation(), and BbParaSolver::updateNTransferredLocalCuts().
|
protected |
maximum number of local cuts transferred from this Solver
Definition at line 107 of file bbParaSolver.h.
Referenced by BbParaSolver::sendCompletionOfCalculation(), BbParaSolver::sendCompletionOfCalculationWithoutSolving(), BbParaSolver::sendSolverTerminationState(), and ScipParaSolver::~ScipParaSolver().
|
protected |
minimum sum of integer infeasibility
Definition at line 128 of file bbParaSolver.h.
Referenced by BbParaSolver::sendCompletionOfCalculation(), and BbParaSolver::setII().
|
protected |
minimum number of integer infeasibility
Definition at line 130 of file bbParaSolver.h.
Referenced by BbParaSolver::sendCompletionOfCalculation(), and BbParaSolver::setII().
|
protected |
minimum number of subtree nodes rooted from ParaNode
Definition at line 103 of file bbParaSolver.h.
Referenced by BbParaSolver::sendCompletionOfCalculation(), BbParaSolver::sendCompletionOfCalculationWithoutSolving(), BbParaSolver::sendSolverTerminationState(), and ScipParaSolver::~ScipParaSolver().
|
protected |
minimum number of restarts
Definition at line 112 of file bbParaSolver.h.
Referenced by BbParaSolver::sendCompletionOfCalculation(), BbParaSolver::sendCompletionOfCalculationWithoutSolving(), BbParaSolver::sendSolverTerminationState(), and ScipParaSolver::~ScipParaSolver().
|
protected |
minimum time consumed by root node process
Definition at line 89 of file bbParaSolver.h.
Referenced by BbParaSolver::sendCompletionOfCalculation(), BbParaSolver::sendCompletionOfCalculationWithoutSolving(), BbParaSolver::sendSolverTerminationState(), BbParaSolver::setRootNodeTime(), and ScipParaSolver::~ScipParaSolver().
|
protected |
minimum number of benders cuts transferred from a ParaNode
Definition at line 124 of file bbParaSolver.h.
Referenced by BbParaSolver::sendCompletionOfCalculation(), and BbParaSolver::updateNTransferredBendersCuts().
|
protected |
minimum number of benders cuts transferred from this Solver
Definition at line 109 of file bbParaSolver.h.
Referenced by BbParaSolver::sendCompletionOfCalculation(), BbParaSolver::sendCompletionOfCalculationWithoutSolving(), BbParaSolver::sendSolverTerminationState(), and ScipParaSolver::~ScipParaSolver().
|
protected |
minimum number of local cuts (including conflict cuts) transferred from a ParaNode
Definition at line 121 of file bbParaSolver.h.
Referenced by BbParaSolver::sendCompletionOfCalculation(), and BbParaSolver::updateNTransferredLocalCuts().
|
protected |
minimum number of local cuts transferred from this Solver
Definition at line 106 of file bbParaSolver.h.
Referenced by BbParaSolver::sendCompletionOfCalculation(), BbParaSolver::sendCompletionOfCalculationWithoutSolving(), BbParaSolver::sendSolverTerminationState(), and ScipParaSolver::~ScipParaSolver().
|
protected |
number of nodes need to collect once
Definition at line 76 of file bbParaSolver.h.
Referenced by BbParaSolver::isCollectingAllNodes(), BbParaSolver::processTagCollectAllNodes(), BbParaSolver::run(), BbParaSolver::sendCompletionOfCalculation(), BbParaSolver::sendParaNode(), BbParaSolver::setOnceBreak(), and BbParaSolver::setSendBackAllNodes().
|
protected |
indicate that no wait mode sending is applied
Definition at line 144 of file bbParaSolver.h.
Referenced by BbParaSolver::notificationIsNecessary(), BbParaSolver::processTagCollectAllNodes(), BbParaSolver::processTagInterruptRequest(), BbParaSolver::processTagNoWaitModeSend(), BbParaSolver::processTagOutCollectingMode(), BbParaSolver::processTagRampUp(), BbParaSolver::processTagRetryRampUp(), BbParaSolver::run(), and BbParaSolver::sendParaNode().
|
protected |
number of ParaNodes solved at pre-checking of root node solvability
Definition at line 117 of file bbParaSolver.h.
Referenced by BbParaSolver::countInPrecheckSolvedParaNodes(), BbParaSolver::sendCompletionOfCalculation(), BbParaSolver::sendCompletionOfCalculationWithoutSolving(), BbParaSolver::sendSolverTerminationState(), and ScipParaSolver::~ScipParaSolver().
|
protected |
number of ParaNodes solved at root node
Definition at line 116 of file bbParaSolver.h.
Referenced by BbParaSolver::sendCompletionOfCalculation(), BbParaSolver::sendCompletionOfCalculationWithoutSolving(), BbParaSolver::sendSolverTerminationState(), and ScipParaSolver::~ScipParaSolver().
|
protected |
number of nodes need to send in collecting mode
Definition at line 75 of file bbParaSolver.h.
Referenced by BbParaSolver::getNSendInCollectingMode(), BbParaSolver::processTagInCollectingMode(), BbParaSolver::processTagOutCollectingMode(), BbParaSolver::processTagRampUp(), BbParaSolver::processTagRetryRampUp(), BbParaSolver::run(), BbParaSolver::sendCompletionOfCalculation(), BbParaSolver::sendCompletionOfCalculationWithoutSolving(), and BbParaSolver::sendParaNode().
|
protected |
number of ParaNodes sent from this subtree rooted from the current ParaNode
Definition at line 96 of file bbParaSolver.h.
Referenced by BbParaSolver::sendCompletionOfCalculation(), and BbParaSolver::sendParaNode().
|
protected |
number of simplex iteration at root node
Definition at line 119 of file bbParaSolver.h.
Referenced by BbParaSolver::sendCompletionOfCalculation(), and BbParaSolver::setRootNodeSimplexIter().
|
protected |
Counters related to the current ParaNode.
number of nodes solved, that is, number of subtree nodes rooted from ParaNode
Definition at line 95 of file bbParaSolver.h.
Referenced by BbParaSolver::run(), and BbParaSolver::sendCompletionOfCalculation().
|
protected |
number of nodes solved when it is solved with no preprocesses
Definition at line 97 of file bbParaSolver.h.
Referenced by BbParaSolver::sendCompletionOfCalculation(), and ScipParaSolver::solveToCheckEffectOfRootNodePreprocesses().
|
protected |
the number of tightened variable bounds in racing
Definition at line 126 of file bbParaSolver.h.
Referenced by ScipParaSolver::freeSubproblem(), ScipParaSolver::getNTightened(), ScipParaSolver::getNTightenedInt(), BbParaSolver::sendSolverTerminationState(), and ScipParaSolver::~ScipParaSolver().
|
protected |
the number of tightened integral variable bounds in racing
Definition at line 127 of file bbParaSolver.h.
Referenced by ScipParaSolver::freeSubproblem(), ScipParaSolver::getNTightenedInt(), BbParaSolver::sendSolverTerminationState(), and ScipParaSolver::~ScipParaSolver().
|
protected |
number of total restarts
Definition at line 111 of file bbParaSolver.h.
Referenced by BbParaSolver::sendCompletionOfCalculation(), BbParaSolver::sendCompletionOfCalculationWithoutSolving(), BbParaSolver::sendSolverTerminationState(), and ScipParaSolver::~ScipParaSolver().
|
protected |
limit number of transferring nodes for breaking
Definition at line 134 of file bbParaSolver.h.
Referenced by BbParaSolver::isBreaking(), BbParaSolver::isTransferLimitReached(), BbParaSolver::processTagBreaking(), and BbParaSolver::resetBreakingInfo().
|
protected |
number of benders cuts transferred from a ParaNode
Definition at line 123 of file bbParaSolver.h.
Referenced by BbParaSolver::sendCompletionOfCalculation(), and BbParaSolver::updateNTransferredBendersCuts().
|
protected |
number of benders cuts transferred from this Solver
Definition at line 108 of file bbParaSolver.h.
Referenced by BbParaSolver::sendCompletionOfCalculation(), BbParaSolver::sendCompletionOfCalculationWithoutSolving(), BbParaSolver::sendSolverTerminationState(), and ScipParaSolver::~ScipParaSolver().
|
protected |
number of local cuts (including conflict cuts) transferred from a ParaNode
Definition at line 120 of file bbParaSolver.h.
Referenced by BbParaSolver::sendCompletionOfCalculation(), and BbParaSolver::updateNTransferredLocalCuts().
|
protected |
number of local cuts transferred from this Solver
Definition at line 105 of file bbParaSolver.h.
Referenced by BbParaSolver::sendCompletionOfCalculation(), BbParaSolver::sendCompletionOfCalculationWithoutSolving(), BbParaSolver::sendSolverTerminationState(), and ScipParaSolver::~ScipParaSolver().
|
protected |
keep track number of transferred nodes for breaking
Definition at line 135 of file bbParaSolver.h.
Referenced by BbParaSolver::isTransferLimitReached(), BbParaSolver::processTagBreaking(), BbParaSolver::resetBreakingInfo(), and BbParaSolver::sendParaNode().
|
protected |
indicate that the sub-MIP is broken down once
Definition at line 82 of file bbParaSolver.h.
Referenced by BbParaSolver::isOnceBreak(), BbParaSolver::run(), and BbParaSolver::setOnceBreak().
|
protected |
indicate that this solver is restarting racing
Definition at line 146 of file bbParaSolver.h.
Referenced by ScipParaSolver::freeSubproblem(), BbParaSolver::isRacingInterruptRequested(), BbParaSolver::processTagTerminateSolvingToRestart(), BbParaSolver::restartRacing(), and BbParaSolver::sendCompletionOfCalculation().
|
protected |
Times.
root node process time of current ParaNode
Definition at line 87 of file bbParaSolver.h.
Referenced by BbParaSolver::getRootNodeTime(), BbParaSolver::getThresholdValue(), BbParaSolver::sendCompletionOfCalculation(), and BbParaSolver::setRootNodeTime().
|
protected |
Pool in Solver.
node pool for self-split subtree root nodes
Definition at line 152 of file bbParaSolver.h.
Referenced by BbParaSolver::BbParaSolver(), BbParaSolver::getSelfSplitNodesLeft(), BbParaSolver::keepParaNode(), BbParaSolver::processTagInCollectingMode(), BbParaSolver::processTagInterruptRequest(), BbParaSolver::run(), BbParaSolver::sendAnotherNodeRequest(), BbParaSolver::sendCompletionOfCalculation(), BbParaSolver::sendCompletionOfCalculationWithoutSolving(), and BbParaSolver::sendSolverState().
|
protected |
dual bound value achieved for a subproblem
Definition at line 137 of file bbParaSolver.h.
Referenced by BbParaSolver::sendCompletionOfCalculation(), BbParaSolver::sendCompletionOfCalculationWithoutSolving(), and ScipParaSolver::solve().
|
protected |
target bound value for breaking
Definition at line 133 of file bbParaSolver.h.
Referenced by BbParaSolver::getTargetBound(), BbParaSolver::processTagBreaking(), and BbParaSolver::resetBreakingInfo().
|
protected |
indicate that the dual bound gain needs to test or not
Definition at line 143 of file bbParaSolver.h.
Referenced by BbParaSolver::isDualBoundGainTestNeeded(), BbParaSolver::processTagNoTestDualBoundGain(), and BbParaSolver::processTagTestDualBoundGain().
|
protected |
accumulated number of improvements of incumbent value in this BbParaSolver
Definition at line 115 of file bbParaSolver.h.
Referenced by BbParaSolver::sendCompletionOfCalculation(), BbParaSolver::sendCompletionOfCalculationWithoutSolving(), BbParaSolver::sendSolverTerminationState(), and ScipParaSolver::~ScipParaSolver().
|
protected |
accumulated number of nodes sent from this BbParaSolver
Definition at line 114 of file bbParaSolver.h.
Referenced by BbParaSolver::sendCompletionOfCalculation(), BbParaSolver::sendCompletionOfCalculationWithoutSolving(), BbParaSolver::sendSolverTerminationState(), and ScipParaSolver::~ScipParaSolver().
|
protected |
Counters related to this BbParaSolver.
accumulated number of nodes solved in this BbParaSolver
Definition at line 102 of file bbParaSolver.h.
Referenced by BbParaSolver::getThresholdValue(), BbParaSolver::sendCompletionOfCalculation(), BbParaSolver::sendCompletionOfCalculationWithoutSolving(), BbParaSolver::sendSolverTerminationState(), and ScipParaSolver::~ScipParaSolver().
|
protected |
accumulated root node process time solved by this solver so far
Definition at line 88 of file bbParaSolver.h.
Referenced by BbParaSolver::getThresholdValue(), BbParaSolver::sendCompletionOfCalculation(), BbParaSolver::sendCompletionOfCalculationWithoutSolving(), BbParaSolver::sendSolverTerminationState(), and ScipParaSolver::~ScipParaSolver().