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().