Scippy

UG

Ubiquity Generator framework

ScipParaSolver Class Reference

#include <scipParaSolver.h>

Inheritance diagram for ScipParaSolver:
BbParaSolver ParaSolver

Public Member Functions

 ScipParaSolver (int argc, char **argv, UG::ParaComm *comm, UG::ParaParamSet *paraParamSet, UG::ParaInstance *inParaInstance, UG::ParaDeterministicTimer *detTimer)
 
 ScipParaSolver (int argc, char **argv, UG::ParaComm *comm, UG::ParaParamSet *paraParamSet, UG::ParaInstance *inParaInstance, UG::ParaDeterministicTimer *detTimer, double timeOffset, bool thread)
 
 ScipParaSolver (int argc, char **argv, int nhanders, UG::ParaComm *comm, UG::ParaParamSet *paraParamSet, UG::ParaInstance *paraInstance, UG::ParaDeterministicTimer *detTimer)
 
 ScipParaSolver (int argc, char **argv, int nhanders, UG::ParaComm *comm, UG::ParaParamSet *paraParamSet, UG::ParaInstance *paraInstance, UG::ParaDeterministicTimer *detTimer, double timeOffset, bool thread)
 
virtual ~ScipParaSolver ()
 
const char * getChangeNodeSelName ()
 
int getOriginalPriority ()
 
void saveOriginalPriority ()
 
void setOriginalPriority ()
 
void setOriginalMaxRestart ()
 
int getOriginalMaxRestart ()
 
ScipParaDiffSubproblemgetParentDiffSubproblem ()
 
void writeCurrentTaskProblem (const std::string &filename)
 
void tryNewSolution (UG::ParaSolution *sol)
 
void setLightWeightRootNodeProcess ()
 
void setOriginalRootNodeProcess ()
 
int getOffsetDepth ()
 
SCIP * getScip ()
 
std::list< LocalNodeInfoPtr > * getConflictConsList ()
 
void writeSubproblem ()
 
long long getSimplexIter ()
 
int getNRestarts ()
 
void setUserPlugins (ScipUserPlugins *inUi)
 
void includeUserPlugins (SCIP *inScip)
 
bool wasTerminatedNormally ()
 
void setProblemFileName (const char *fileName)
 
bool isCollectingModeProhibited ()
 
void allowCollectingMode ()
 
void prohibitCollectingMode ()
 
bool isOriginalIndeciesMap ()
 
int getOriginalIndex (int index)
 
bool isProbIndeciesMap ()
 
int getProbIndex (int index)
 
long long getNPreviousNodesLeft ()
 
void setNPreviousNodesLeft (long long n)
 
int getNOrgVars ()
 
double getOrgVarLb (int i)
 
double getOrgVarUb (int i)
 
void setOrgVarLb (int i, double v)
 
void setOrgVarUb (int i, double v)
 
double getTightenedVarLb (int i)
 
double getTightenedVarUb (int i)
 
void setTightenedVarLb (int i, double v)
 
void setTightenedVarUb (int i, double v)
 
void checkVarsAndIndex (const char *string, SCIP *inScip)
 
int getNTightened ()
 
int getNTightenedInt ()
 
bool isCopyIncreasedVariables ()
 
void copyIncrasedVariables ()
 
void issueInterruptSolve ()
 
bool isInterrupting ()
 
int processTagInterruptRequest (int source, int tag)
 
- Public Member Functions inherited from BbParaSolver
 BbParaSolver ()
 constructor More...
 
 BbParaSolver (int argc, char **argv, int nHandlers, ParaComm *comm, ParaParamSet *inParaParamSet, ParaInstance *paraInstance, ParaDeterministicTimer *detTimer)
 constructor More...
 
virtual ~BbParaSolver ()
 destructor More...
 
ParaCommgetParaComm ()
 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...
 
ParaTaskgetCurrentNode ()
 get current ParaNode object More...
 
ParaInstancegetParaInstance ()
 get ParaInstance object More...
 
ParaParamSetgetParaParamSet ()
 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...
 
ParaCommgetParaComm ()
 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...
 
ParaTaskgetCurrentTask ()
 get current ParaTask object More...
 
ParaInstancegetParaInstance ()
 get ParaInstance object More...
 
ParaParamSetgetParaParamSet ()
 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...
 
ParaSolutiongetGlobalBestIncumbentSolution ()
 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...
 
ParaDeterministicTimergetDeterministicTimer ()
 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(ScipParaSolver::* ScipMessageHandlerFunctionPointer) (int, int)
 
- Protected Types inherited from BbParaSolver
typedef int(BbParaSolver::* BbMessageHandlerFunctionPointer) (int, int)
 
- Protected Types inherited from ParaSolver
typedef int(ParaSolver::* MessageHandlerFunctionPointer) (int, int)
 

Protected Member Functions

void setRacingParams (UG::ParaRacingRampUpParamSet *inRacingParams, bool winnerParam)
 
void setWinnerRacingParams (UG::ParaRacingRampUpParamSet *inRacingParams)
 
virtual void createSubproblem ()
 
virtual void freeSubproblem ()
 
virtual void solve ()
 
long long getNNodesSolved ()
 
int getNNodesLeft ()
 
double getDualBoundValue ()
 
void reinitialize ()
 
void setOriginalNodeSelectionStrategy ()
 
void solveToCheckEffectOfRootNodePreprocesses ()
 
void saveOrgProblemBounds ()
 
void setBakSettings ()
 
int lbBoundTightened (int source, int tag)
 
int ubBoundTightened (int source, int tag)
 
void saveOriginalSettings ()
 
void dropSettingsForVariableBoundsExchnage ()
 
void recoverOriginalSettings ()
 
void saveImprovedSolution ()
 
- Protected Member Functions inherited from BbParaSolver
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...
 
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...
 

Static Protected Member Functions

static void runInterruptMsgMonitorThread (void *threadData)
 

Protected Attributes

SCIP * scip
 
SCIP * scipToCheckEffectOfRootNodeProcesses
 
ScipDiffParamSetscipDiffParamSetRoot
 
ScipDiffParamSetscipDiffParamSet
 
SCIP_MESSAGEHDLR * messagehdlr
 
FILE * logfile
 
ScipDiffParamSetoriginalParamSet
 
std::list< LocalNodeInfoPtr > * conflictConsList
 
ScipUserPluginsuserPlugins
 
ScipParaObjCommPointHdlrcommPointHdlr
 
ScipParaObjNodeselnodesel
 
ScipParaObjPropscipPropagator
 
ScipParaInterruptMsgMonitorinterruptMsgMonitor
 interrupt message monitor More...
 
long long nPreviousNodesLeft
 
int originalPriority
 
int orgMaxRestart
 
int nOrgVars
 
int nOrgVarsInSolvers
 
SCIP_Real * orgVarLbs
 
SCIP_Real * orgVarUbs
 
SCIP_Real * tightenedVarLbs
 
SCIP_Real * tightenedVarUbs
 
int * mapToOriginalIndecies
 
int * mapToSolverLocalIndecies
 
int * mapToProbIndecies
 
unsigned int miscAllowdualreds
 
int nAddedConss
 
SCIP_CONS ** addedConss
 
SCIP_CONS * addedDualCons
 
char * settingsNameLC
 
bool fiberSCIP
 
bool quiet
 
bool collectingModeIsProhibited
 
const char * problemFileName
 
SCIP_Real orgFeastol
 
SCIP_Real orgLpfeastol
 
bool copyIncreasedVariables
 
- Protected Attributes inherited from BbParaSolver
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...
 
BbParaNodePoolselfSplitNodePool
 Pool in Solver. More...
 
- Protected Attributes inherited from ParaSolver
int nHandlers
 number of valid message handlers More...
 
MessageHandlerFunctionPointermessageHandler
 table for message handlers More...
 
unsigned int notificationIdGenerator
 
ParaCommparaComm
 ParaCommunicator object. More...
 
ParaParamSetparaParams
 ParaParamSet object. More...
 
ParaRacingRampUpParamSetracingParams
 ParaRacingRampUpParamSet object. This is also a flag to indicate running with racing ramp-up. More...
 
ParaRacingRampUpParamSetwinnerRacingParams
 Winner ParaRacingRampUpParamSet object. More...
 
ParaTimerparaTimer
 timer for this ParaSolver More...
 
ParaDeterministicTimerparaDetTimer
 deterministic timer for this ParaSolver More...
 
double globalBestIncumbentValue
 global best incumbent value More...
 
ParaSolutionglobalBestIncumbentSolution
 global best solution. However, this is not always feasible for the current sub-MIP More...
 
ParaSolutionlocalIncumbentSolution
 incumbent solution generated in local solver More...
 
ParaSolutionpendingSolution
 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...
 
ParaInstanceparaInstance
 root problem instance More...
 
ParaTaskcurrentTask
 solving task More...
 
ParaTasknewTask
 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...
 

Detailed Description

Definition at line 72 of file scipParaSolver.h.

Member Typedef Documentation

◆ ScipMessageHandlerFunctionPointer

typedef int(ScipParaSolver::* ScipMessageHandlerFunctionPointer) (int, int)
protected

Definition at line 77 of file scipParaSolver.h.

Constructor & Destructor Documentation

◆ ScipParaSolver() [1/4]

ScipParaSolver ( int  argc,
char **  argv,
UG::ParaComm comm,
UG::ParaParamSet paraParamSet,
UG::ParaInstance inParaInstance,
UG::ParaDeterministicTimer detTimer 
)

Definition at line 180 of file scipParaSolver.h.

◆ ScipParaSolver() [2/4]

ScipParaSolver ( int  argc,
char **  argv,
UG::ParaComm comm,
UG::ParaParamSet paraParamSet,
UG::ParaInstance inParaInstance,
UG::ParaDeterministicTimer detTimer,
double  timeOffset,
bool  thread 
)

Definition at line 185 of file scipParaSolver.h.

◆ ScipParaSolver() [3/4]

ScipParaSolver ( int  argc,
char **  argv,
int  nhanders,
UG::ParaComm comm,
UG::ParaParamSet paraParamSet,
UG::ParaInstance paraInstance,
UG::ParaDeterministicTimer detTimer 
)

set user plugins

include user plugins

the first argument is runtime parameter file for ParaSCIP

this bcast is sent as SolverInitializationMessage

this bcast is sent as SolverInitializationMessage

set parameters for SCIP: this values are reseted before solving

the first argument is runtime parameter file for ParaSCIP

the second argument is problem file name

create problem

set parameters for SCIP: this values are reseted before solving

save original priority of changing node selector

Definition at line 1677 of file scipParaSolver.cpp.

References ParaSolution::bcast(), ScipDiffParamSet::bcast(), ParaCommCPP11::bcast(), UG::CheckEffectOfRootNodePreprocesses, comm, ScipParaSolver::commPointHdlr, UG::CommunicateTighterBoundsInRacing, ScipParaSolver::conflictConsList, CONFLICTHDLR_DESC, CONFLICTHDLR_NAME, CONFLICTHDLR_PRIORITY, ParaComm::createParaSolution(), ScipParaInstance::createProblem(), DEF_SCIP_PARA_COMM, UG::Deterministic, UG::DistributeBestPrimalSolution, ScipParaSolver::dropSettingsForVariableBoundsExchnage(), ParaSolver::eps, ParaParamSet::getBoolParamValue(), ParaTimer::getElapsedTime(), ParaParamSet::getIntParamValue(), ParaCommCPP11::getRank(), ParaComm::getRank(), ParaParamSet::getRealParamValue(), ParaComm::getSize(), ParaSolver::globalBestIncumbentSolution, ParaSolver::globalBestIncumbentValue, ScipParaSolver::includeUserPlugins(), UG::InstanceTransferMethod, ScipParaSolver::interruptMsgMonitor, ScipParaSolver::logfile, ParaSCIP::MemoryLimit, ScipParaSolver::messagehdlr, ScipParaSolver::nodesel, UG::NoPreprocessingInLC, ScipParaSolver::orgFeastol, ScipParaSolver::orgLpfeastol, ParaSolver::paraComm, UG::ParaDOUBLE, ParaSolver::paraInstance, UG::ParaINT, ParaSolver::paraParams, ParaSolver::paraTimer, UG::Quiet, ScipParaSolver::quiet, UG::RampUpPhaseProcess, ScipParaSolver::runInterruptMsgMonitorThread(), ScipParaSolver::saveOrgProblemBounds(), ScipParaSolver::saveOriginalPriority(), ScipParaSolver::saveOriginalSettings(), ScipParaSolver::scip, ScipParaSolver::scipDiffParamSet, ScipParaSolver::scipDiffParamSetRoot, ScipParaSolver::scipPropagator, ScipParaSolver::scipToCheckEffectOfRootNodeProcesses, UG::SelfSplitTreeDepth, ScipParaSolver::setOriginalMaxRestart(), ScipDiffParamSet::setParametersInScip(), ScipParaSolver::settingsNameLC, ScipParaSolver::setUserPlugins(), THROW_LOGICAL_ERROR1, THROW_LOGICAL_ERROR3, UG::TimeLimit, UG::TransferConflictCuts, UG::UseRootNodeCuts, and ParaSolver::warmStarted.

◆ ScipParaSolver() [4/4]

ScipParaSolver ( int  argc,
char **  argv,
int  nhanders,
UG::ParaComm comm,
UG::ParaParamSet paraParamSet,
UG::ParaInstance paraInstance,
UG::ParaDeterministicTimer detTimer,
double  timeOffset,
bool  thread 
)

user include plugins

the first argument is runtime parameter file for ParaSCIP

this bcast is sent as SolverInitializationMessage

this bcast is sent as SolverInitializationMessage

set parameters for SCIP: this values are reseted before solving

the first argument is runtime parameter file for ParaSCIP

the second argument is problem file name

create problem

set parameters for SCIP: this values are reseted before solving

save original priority of changing node selector

Definition at line 2021 of file scipParaSolver.cpp.

References ParaSolution::bcast(), ScipDiffParamSet::bcast(), ParaCommCPP11::bcast(), ParaComm::bcast(), UG::CheckEffectOfRootNodePreprocesses, comm, ScipParaSolver::commPointHdlr, UG::CommunicateTighterBoundsInRacing, ScipParaSolver::conflictConsList, CONFLICTHDLR_DESC, CONFLICTHDLR_NAME, CONFLICTHDLR_PRIORITY, ParaComm::createParaSolution(), ScipParaInstance::createProblem(), DEF_SCIP_PARA_COMM, UG::Deterministic, UG::DistributeBestPrimalSolution, ScipParaSolver::dropSettingsForVariableBoundsExchnage(), ParaSolver::eps, ParaParamSet::getBoolParamValue(), ParaTimer::getElapsedTime(), ParaParamSet::getIntParamValue(), ParaCommCPP11::getRank(), ParaComm::getRank(), ParaParamSet::getRealParamValue(), ScipParaInstance::getScip(), ParaComm::getSize(), ParaSolver::globalBestIncumbentSolution, ParaSolver::globalBestIncumbentValue, ScipParaSolver::includeUserPlugins(), UG::InstanceTransferMethod, ScipParaSolver::interruptMsgMonitor, ParaComm::lockApp(), ScipParaSolver::logfile, ParaSCIP::MemoryLimit, memoryLimitOfSolverSCIP, ScipParaSolver::messagehdlr, ScipParaSolver::nodesel, UG::NoPreprocessingInLC, UG::NoUpperBoundTransferInRacing, ScipParaSolver::orgFeastol, ScipParaSolver::orgLpfeastol, ParaSolver::paraComm, UG::ParaDOUBLE, ParaSolver::paraInstance, UG::ParaINT, ParaSolver::paraParams, ParaSolver::paraTimer, UG::Quiet, ScipParaSolver::quiet, UG::RampUpPhaseProcess, ScipParaSolver::runInterruptMsgMonitorThread(), ScipParaSolver::saveOrgProblemBounds(), ScipParaSolver::saveOriginalPriority(), ScipParaSolver::saveOriginalSettings(), ScipParaSolver::scip, SCIP_MEMORY_COPY_FACTOR, ScipParaSolver::scipDiffParamSet, ScipParaSolver::scipDiffParamSetRoot, ScipParaSolver::scipPropagator, ScipParaSolver::scipToCheckEffectOfRootNodeProcesses, UG::SelfSplitTreeDepth, ParaTimer::setOffset(), ScipDiffParamSet::setParametersInScip(), ScipParaSolver::settingsNameLC, THROW_LOGICAL_ERROR1, THROW_LOGICAL_ERROR3, UG::TimeLimit, UG::TransferConflictCuts, ParaComm::unlockApp(), UG::UseRootNodeCuts, and ParaSolver::warmStarted.

◆ ~ScipParaSolver()

~ScipParaSolver ( )
virtual

delete scip diff param sets

reset message handler

close log file

The following code was in Solver base class before

Definition at line 2383 of file scipParaSolver.cpp.

References ScipParaSolver::addedConss, UG::CheckEffectOfRootNodePreprocesses, UG::CompTerminatedByInterruptRequest, UG::CompTerminatedNormally, ScipParaSolver::conflictConsList, DEF_BB_PARA_COMM, UG::Deterministic, ParaParamSet::getBoolParamValue(), ParaDeterministicTimer::getElapsedTime(), ParaTimer::getElapsedTime(), ParaComm::getRank(), ParaSolver::idleTimeAfterLastParaTask, ParaSolver::idleTimeBetweenParaTasks, ParaSolver::idleTimeToFirstParaTask, ParaSolver::idleTimeToWaitAckCompletion, ParaSolver::idleTimeToWaitNotificationId, ParaSolver::idleTimeToWaitToken, LocalNodeInfo_t::idxLinearCoefsVars, interrupted, UG::InterruptedTerminationMode, ScipParaSolver::interruptMsgMonitor, BbParaSolver::iReceiveMessages(), LocalNodeInfo_t::linearCoefs, ScipParaSolver::logfile, ScipParaSolver::mapToOriginalIndecies, ScipParaSolver::mapToProbIndecies, ScipParaSolver::mapToSolverLocalIndecies, BbParaSolver::maxNSolved, BbParaSolver::maxRestarts, BbParaSolver::maxRootNodeTime, BbParaSolver::maxTransferredBendersCutsFromSolver, BbParaSolver::maxTransferredLocalCutsFromSolver, ScipParaSolver::messagehdlr, 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, ScipParaSolver::orgVarLbs, ScipParaSolver::orgVarUbs, ParaSolver::paraComm, ParaSolver::paraDetTimer, ParaSolver::paraParams, ParaSolver::paraTimer, ParaComm::passTermToken(), ParaSolver::previousIdleTimeToWaitToken, ParaSolver::previousStopTime, ScipParaSolver::scip, ScipParaSolver::scipDiffParamSet, ScipParaSolver::scipDiffParamSetRoot, ScipParaSolver::scipToCheckEffectOfRootNodeProcesses, ParaSolverTerminationState::send(), UG::TagTerminated, ScipParaInterruptMsgMonitor::terminate(), ParaSolver::terminationMode, ScipParaSolver::tightenedVarLbs, ScipParaSolver::tightenedVarUbs, UG::TimeLimitTerminationMode, BbParaSolver::totalNImprovedIncumbent, BbParaSolver::totalNSent, BbParaSolver::totalNSolved, BbParaSolver::totalRootNodeTime, ScipParaSolver::userPlugins, and BbParaSolver::waitToken().

Member Function Documentation

◆ allowCollectingMode()

void allowCollectingMode ( )

◆ checkVarsAndIndex()

void checkVarsAndIndex ( const char *  string,
SCIP *  inScip 
)

Definition at line 374 of file scipParaSolver.h.

References ParaComm::getRank(), and ParaSolver::paraComm.

◆ copyIncrasedVariables()

void copyIncrasedVariables ( )

Definition at line 398 of file scipParaSolver.h.

References ScipParaSolver::copyIncreasedVariables.

◆ createSubproblem()

void createSubproblem ( )
protectedvirtual

set instance specific parameters

set original node selection strategy

only a constraint whose "enforce is TRUE can be written in transformed problem only a constraint whose "enforce is TRUE can be written in transformed problem

only a constraint whose "enforce is TRUE can be written in transformed problem

try to automatically convert a linear constraint into a more specific and more specialized constraint

do not save solutions to original problem space

Implements BbParaSolver.

Definition at line 440 of file scipParaSolver.cpp.

References ParaSCIP::AddDualBoundCons, ScipParaSolver::addedConss, ScipParaSolver::addedDualCons, ScipParaSolver::commPointHdlr, ParaSolver::currentTask, ScipParaDiffSubproblem::getBendersLinearCoefs(), ScipParaDiffSubproblem::getBendersLinearLhs(), ScipParaDiffSubproblem::getBendersLinearRhs(), ParaParamSet::getBoolParamValue(), ScipParaDiffSubproblem::getBoundsBoundDisjunction(), ScipParaDiffSubproblem::getBoundType(), ScipParaDiffSubproblem::getBoundTypesBoundDisjunction(), ScipParaDiffSubproblem::getBranchBound(), ScipParaDiffSubproblem::getBranchConsLinearCoefs(), ScipParaDiffSubproblem::getBranchConsLinearConsNames(), ScipParaDiffSubproblem::getBranchConsLinearIdxCoefsVars(), ScipParaDiffSubproblem::getBranchConsLinearLhs(), ScipParaDiffSubproblem::getBranchConsLinearRhs(), ScipParaDiffSubproblem::getBranchConsNLinearCoefs(), ScipParaDiffSubproblem::getBranchConsSetppcConsNames(), ScipParaDiffSubproblem::getBranchConsSetppcNVars(), ScipParaDiffSubproblem::getBranchConsSetppcType(), ScipParaDiffSubproblem::getBranchConsSetppcVars(), ScipParaDiffSubproblem::getBranchLinearConss(), ScipParaDiffSubproblem::getBranchSetppcConss(), ParaTask::getDiffSubproblem(), ScipParaDiffSubproblem::getDownconflen(), ScipParaDiffSubproblem::getDowncutoff(), ScipParaDiffSubproblem::getDowninfer(), ScipParaDiffSubproblem::getDownpscost(), ScipParaDiffSubproblem::getDownvsids(), BbParaNode::getDualBoundValue(), ScipParaDiffSubproblem::getFlagBoundDisjunctionCheck(), ScipParaDiffSubproblem::getFlagBoundDisjunctionDynamic(), ScipParaDiffSubproblem::getFlagBoundDisjunctionEnforce(), ScipParaDiffSubproblem::getFlagBoundDisjunctionInitial(), ScipParaDiffSubproblem::getFlagBoundDisjunctionLocal(), ScipParaDiffSubproblem::getFlagBoundDisjunctionModifiable(), ScipParaDiffSubproblem::getFlagBoundDisjunctionPropagate(), ScipParaDiffSubproblem::getFlagBoundDisjunctionRemovable(), ScipParaDiffSubproblem::getFlagBoundDisjunctionSeparate(), ScipParaDiffSubproblem::getFlagBoundDisjunctionStickingatnode(), ScipParaDiffSubproblem::getIdxBendersLinearCoefsVars(), ScipParaDiffSubproblem::getIdxBoundDisjunctionVars(), ScipParaDiffSubproblem::getIdxLBranchStatsVars(), ScipParaDiffSubproblem::getIdxLinearCoefsVars(), ScipParaDiffSubproblem::getIndex(), BbParaNode::getInitialDualBoundValue(), ParaParamSet::getIntParamValue(), ScipParaDiffSubproblem::getLinearCoefs(), ScipParaDiffSubproblem::getLinearLhs(), ScipParaDiffSubproblem::getLinearRhs(), ScipParaDiffSubproblem::getNBendersLinearCoefs(), ScipParaDiffSubproblem::getNBendersLinearConss(), ScipParaDiffSubproblem::getNBoundChanges(), ScipParaDiffSubproblem::getNBoundDisjunctions(), ScipParaDiffSubproblem::getNBranchConsLinearConss(), ScipParaDiffSubproblem::getNBranchConsSetppcConss(), ScipParaDiffSubproblem::getNLinearCoefs(), ScipParaDiffSubproblem::getNLinearConss(), ScipParaDiffSubproblem::getNVarBranchStats(), ScipParaDiffSubproblem::getNVarsBoundDisjunction(), ScipParaDiffSubproblem::getNVarValueValues(), ScipParaDiffSubproblem::getNVarValueVars(), ScipParaSolver::getOriginalMaxRestart(), BbParaSolver::getParaParamSet(), ParaComm::getRank(), ParaParamSet::getStringParamValue(), ScipParaDiffSubproblem::getUpconflen(), ScipParaDiffSubproblem::getUpcutoff(), ScipParaDiffSubproblem::getUpinfer(), ScipParaDiffSubproblem::getUppscost(), ScipParaDiffSubproblem::getUpvsids(), ScipParaDiffSubproblem::getVarValue(), ScipParaDiffSubproblem::getVarValueDownconflen(), ScipParaDiffSubproblem::getVarValueDowncutoff(), ScipParaDiffSubproblem::getVarValueDowninfer(), ScipParaDiffSubproblem::getVarValueDownvsids(), ScipParaDiffSubproblem::getVarValueUpconflen(), ScipParaDiffSubproblem::getVarValueUpcutoff(), ScipParaDiffSubproblem::getVarValueUpinfer(), ScipParaDiffSubproblem::getVarVlaueUpvsids(), BbParaSolver::isRacingStage(), ParaTask::isRootTask(), ScipParaSolver::mapToProbIndecies, ScipParaSolver::mapToSolverLocalIndecies, ScipParaSolver::nAddedConss, ScipUserPlugins::newSubproblem(), ScipParaSolver::nodesel, ScipParaSolver::nOrgVars, UG::NoSolverPresolvingAtRoot, UG::NoSolverPresolvingAtRootDefaultSet, ParaSolver::paraComm, ParaSolver::paraParams, UG::RacingParamsDirPath, ScipParaObjNodesel::reset(), ScipParaObjCommPointHdlr::resetCommPointHdlr(), ScipParaSolver::scip, ScipParaSolver::scipDiffParamSet, ScipParaSolver::scipDiffParamSetRoot, UG::SetAllDefaultsAfterRacing, ScipParaSolver::setBakSettings(), ScipDiffParamSet::setParametersInScip(), ScipParaSolver::setWinnerRacingParams(), THROW_LOGICAL_ERROR2, ScipParaSolver::userPlugins, and ParaSolver::winnerRacingParams.

Referenced by ScipParaSolver::solveToCheckEffectOfRootNodePreprocesses().

◆ dropSettingsForVariableBoundsExchnage()

◆ freeSubproblem()

◆ getChangeNodeSelName()

◆ getConflictConsList()

std::list< LocalNodeInfoPtr > * getConflictConsList ( )

◆ getDualBoundValue()

double getDualBoundValue ( )
protectedvirtual

◆ getNNodesLeft()

int getNNodesLeft ( )
protectedvirtual

Implements BbParaSolver.

Definition at line 1643 of file scipParaSolver.cpp.

References ScipParaSolver::scip.

◆ getNNodesSolved()

long long getNNodesSolved ( )
protectedvirtual

Implements BbParaSolver.

Definition at line 1629 of file scipParaSolver.cpp.

References ScipParaSolver::scip.

◆ getNOrgVars()

◆ getNPreviousNodesLeft()

long long getNPreviousNodesLeft ( )

Definition at line 361 of file scipParaSolver.h.

References ScipParaSolver::nPreviousNodesLeft.

◆ getNRestarts()

int getNRestarts ( )
virtual

Reimplemented from BbParaSolver.

Definition at line 289 of file scipParaSolver.h.

References ScipParaSolver::scip.

◆ getNTightened()

int getNTightened ( )
virtual

get number of tightened variables during racing

Reimplemented from BbParaSolver.

Definition at line 3103 of file scipParaSolver.cpp.

References ScipParaObjProp::getNtightened(), BbParaSolver::nTightened, and ScipParaSolver::scipPropagator.

Referenced by ScipParaSolver::freeSubproblem().

◆ getNTightenedInt()

int getNTightenedInt ( )
virtual

get number of tightened integral variables during racing

Reimplemented from BbParaSolver.

Definition at line 3125 of file scipParaSolver.cpp.

References ScipParaObjProp::getNtightenedInt(), BbParaSolver::nTightened, BbParaSolver::nTightenedInt, and ScipParaSolver::scipPropagator.

Referenced by ScipParaSolver::freeSubproblem().

◆ getOffsetDepth()

◆ getOrgVarLb()

◆ getOrgVarUb()

◆ getOriginalIndex()

◆ getOriginalMaxRestart()

int getOriginalMaxRestart ( )

Definition at line 242 of file scipParaSolver.h.

References ScipParaSolver::orgMaxRestart.

Referenced by ScipParaSolver::createSubproblem().

◆ getOriginalPriority()

int getOriginalPriority ( )

Definition at line 200 of file scipParaSolver.h.

References ScipParaSolver::originalPriority.

Referenced by ScipParaObjCommPointHdlr::scip_exec().

◆ getParentDiffSubproblem()

◆ getProbIndex()

int getProbIndex ( int  index)

Definition at line 355 of file scipParaSolver.h.

References ScipParaSolver::mapToProbIndecies.

Referenced by ScipParaObjCommPointHdlr::scip_exec().

◆ getScip()

◆ getSimplexIter()

long long getSimplexIter ( )
virtual

Implements BbParaSolver.

Definition at line 275 of file scipParaSolver.h.

References ScipParaSolver::scip.

Referenced by ScipParaObjCommPointHdlr::scip_exec().

◆ getTightenedVarLb()

double getTightenedVarLb ( int  i)

Definition at line 369 of file scipParaSolver.h.

References ScipParaSolver::tightenedVarLbs.

Referenced by ScipParaObjCommPointHdlr::scip_exec().

◆ getTightenedVarUb()

double getTightenedVarUb ( int  i)

Definition at line 370 of file scipParaSolver.h.

References ScipParaSolver::tightenedVarUbs.

Referenced by ScipParaObjCommPointHdlr::scip_exec().

◆ includeUserPlugins()

void includeUserPlugins ( SCIP *  inScip)

include user plugins

Definition at line 306 of file scipParaSolver.h.

References ScipParaSolver::userPlugins.

Referenced by ScipParaSolver::reinitialize(), and ScipParaSolver::ScipParaSolver().

◆ isCollectingModeProhibited()

bool isCollectingModeProhibited ( )

◆ isCopyIncreasedVariables()

◆ isInterrupting()

◆ isOriginalIndeciesMap()

◆ isProbIndeciesMap()

bool isProbIndeciesMap ( )

Definition at line 353 of file scipParaSolver.h.

References ScipParaSolver::mapToProbIndecies.

Referenced by ScipParaObjCommPointHdlr::scip_exec().

◆ issueInterruptSolve()

void issueInterruptSolve ( )
virtual

◆ lbBoundTightened()

◆ processTagInterruptRequest()

int processTagInterruptRequest ( int  source,
int  tag 
)
virtual

Reimplemented from BbParaSolver.

Definition at line 407 of file scipParaSolver.h.

References BbParaSolver::processTagInterruptRequest(), and ScipParaSolver::scip.

Referenced by ScipParaInterruptMsgMonitor::run().

◆ prohibitCollectingMode()

void prohibitCollectingMode ( )

Definition at line 339 of file scipParaSolver.h.

References ScipParaSolver::collectingModeIsProhibited.

Referenced by ScipParaSolver::solve().

◆ recoverOriginalSettings()

◆ reinitialize()

void reinitialize ( )
protectedvirtual

user include plugins

Reimplemented from ParaSolver.

Definition at line 2820 of file scipParaSolver.cpp.

References ParaInstance::bcast(), UG::CheckEffectOfRootNodePreprocesses, ScipParaSolver::commPointHdlr, UG::CommunicateTighterBoundsInRacing, ScipParaSolver::conflictConsList, CONFLICTHDLR_DESC, CONFLICTHDLR_NAME, CONFLICTHDLR_PRIORITY, ParaComm::createParaInstance(), ScipParaInstance::createProblem(), ScipParaSolver::dropSettingsForVariableBoundsExchnage(), ScipParaSolver::fiberSCIP, ParaParamSet::getBoolParamValue(), ParaTimer::getElapsedTime(), ParaParamSet::getIntParamValue(), ParaParamSet::getRealParamValue(), ScipParaInstance::getScip(), ScipParaSolver::includeUserPlugins(), UG::InstanceTransferMethod, ScipParaSolver::logfile, ScipParaSolver::messagehdlr, ScipParaSolver::nodesel, UG::NoPreprocessingInLC, ScipParaSolver::orgVarLbs, ScipParaSolver::orgVarUbs, ParaSolver::paraComm, ParaSolver::paraInstance, ParaSolver::paraParams, ParaSolver::paraTimer, ScipParaSolver::problemFileName, UG::Quiet, ScipParaSolver::quiet, UG::RampUpPhaseProcess, ScipParaSolver::saveOrgProblemBounds(), ScipParaSolver::saveOriginalSettings(), ScipParaSolver::scip, ScipParaSolver::scipDiffParamSet, ScipParaSolver::scipDiffParamSetRoot, ScipParaSolver::scipPropagator, ScipParaSolver::scipToCheckEffectOfRootNodeProcesses, ScipParaInstance::setFileName(), ScipDiffParamSet::setParametersInScip(), ScipParaSolver::settingsNameLC, ScipParaSolver::setUserPlugins(), UG::TimeLimit, UG::TransferConflictCuts, and UG::UseRootNodeCuts.

◆ runInterruptMsgMonitorThread()

static void runInterruptMsgMonitorThread ( void *  threadData)
staticprotected

Definition at line 172 of file scipParaSolver.h.

References ScipParaInterruptMsgMonitor::run().

Referenced by ScipParaSolver::ScipParaSolver().

◆ saveImprovedSolution()

◆ saveOrgProblemBounds()

◆ saveOriginalPriority()

void saveOriginalPriority ( )

◆ saveOriginalSettings()

◆ setBakSettings()

◆ setLightWeightRootNodeProcess()

void setLightWeightRootNodeProcess ( )
virtual

◆ setNPreviousNodesLeft()

void setNPreviousNodesLeft ( long long  n)

◆ setOrgVarLb()

void setOrgVarLb ( int  i,
double  v 
)

Definition at line 366 of file scipParaSolver.h.

References ScipParaSolver::orgVarLbs.

◆ setOrgVarUb()

void setOrgVarUb ( int  i,
double  v 
)

Definition at line 367 of file scipParaSolver.h.

References ScipParaSolver::orgVarUbs.

◆ setOriginalMaxRestart()

void setOriginalMaxRestart ( )

◆ setOriginalNodeSelectionStrategy()

◆ setOriginalPriority()

◆ setOriginalRootNodeProcess()

◆ setProblemFileName()

void setProblemFileName ( const char *  fileName)

Definition at line 320 of file scipParaSolver.h.

References ScipParaSolver::problemFileName.

◆ setRacingParams()

◆ setTightenedVarLb()

void setTightenedVarLb ( int  i,
double  v 
)

Definition at line 371 of file scipParaSolver.h.

References ScipParaSolver::tightenedVarLbs.

Referenced by ScipParaObjCommPointHdlr::scip_exec().

◆ setTightenedVarUb()

void setTightenedVarUb ( int  i,
double  v 
)

Definition at line 372 of file scipParaSolver.h.

References ScipParaSolver::tightenedVarUbs.

Referenced by ScipParaObjCommPointHdlr::scip_exec().

◆ setUserPlugins()

void setUserPlugins ( ScipUserPlugins inUi)

set user plugins

Definition at line 303 of file scipParaSolver.h.

References ScipParaSolver::userPlugins.

Referenced by ScipParaSolver::reinitialize(), ScipParaSolver::ScipParaSolver(), and setUserPlugins().

◆ setWinnerRacingParams()

◆ solve()

void solve ( )
protectedvirtual

solve

set cutoff value

set cutoff value

Implements BbParaSolver.

Definition at line 1248 of file scipParaSolver.cpp.

References UG::AllowTreeSearchRestart, UG::CompTerminatedNormally, ScipParaSolver::conflictConsList, UG::ControlCollectingModeOnSolverSide, ParaSolver::currentTask, ParaSolver::eps, EPSEQ, ParaParamSet::getBoolParamDefaultValue(), ParaParamSet::getBoolParamValue(), BbParaSolver::getCurrentNode(), ParaTask::getDiffSubproblem(), ScipParaSolver::getDualBoundValue(), ParaTimer::getElapsedTime(), BbParaSolver::getGlobalBestIncumbentValue(), ParaParamSet::getIntParamValue(), ParaComm::getRank(), ParaParamSet::getRealParamValue(), ParaSolver::globalBestIncumbentValue, LocalNodeInfo_t::idxLinearCoefsVars, BbParaSolver::isCollectingAllNodes(), BbParaSolver::isRacingInterruptRequested(), BbParaSolver::isRacingStage(), ParaSolver::isRacingWinner(), ParaTask::isRootTask(), LocalNodeInfo_t::linearCoefs, ParaSolver::memoryLimitIsReached, ParaSolver::notificationProcessed, ScipParaSolver::nPreviousNodesLeft, ScipParaSolver::orgFeastol, ScipParaSolver::orgLpfeastol, ParaSolver::paraComm, ParaSolver::paraParams, ParaSolver::paraTimer, ScipParaSolver::prohibitCollectingMode(), ParaSolver::racingIsInterrupted, UG::RampUpPhaseProcess, ScipParaSolver::saveImprovedSolution(), ScipParaSolver::scip, BbParaSolver::sendLocalSolution(), ParaSolver::setTerminationMode(), BbParaSolver::solverDualBound, ParaSolver::terminationMode, THROW_LOGICAL_ERROR1, UG::TimeLimit, UG::TimeLimitTerminationMode, UG::TransferConflictCuts, ScipParaSolver::userPlugins, BbParaSolver::waitNotificationIdMessage(), ScipParaSolver::writeSubproblem(), and ScipUserPlugins::writeSubproblem().

◆ solveToCheckEffectOfRootNodePreprocesses()

void solveToCheckEffectOfRootNodePreprocesses ( )
protectedvirtual

◆ tryNewSolution()

◆ ubBoundTightened()

◆ wasTerminatedNormally()

bool wasTerminatedNormally ( )
virtual

Implements BbParaSolver.

Definition at line 314 of file scipParaSolver.h.

◆ writeCurrentTaskProblem()

void writeCurrentTaskProblem ( const std::string &  filename)
virtual

Implements BbParaSolver.

Definition at line 2534 of file scipParaSolver.cpp.

References ScipParaSolver::scip.

◆ writeSubproblem()

void writeSubproblem ( )
virtual

Member Data Documentation

◆ addedConss

SCIP_CONS** addedConss
protected

◆ addedDualCons

SCIP_CONS* addedDualCons
protected

◆ collectingModeIsProhibited

bool collectingModeIsProhibited
protected

indicate that collecting mode is prohibited

Definition at line 138 of file scipParaSolver.h.

Referenced by ScipParaSolver::allowCollectingMode(), ScipParaSolver::isCollectingModeProhibited(), and ScipParaSolver::prohibitCollectingMode().

◆ commPointHdlr

◆ conflictConsList

◆ copyIncreasedVariables

bool copyIncreasedVariables
protected

indicate that SCIP copy increaded variables

Definition at line 145 of file scipParaSolver.h.

Referenced by ScipParaSolver::copyIncrasedVariables(), ScipParaSolver::isCopyIncreasedVariables(), and ScipParaSolver::saveOrgProblemBounds().

◆ fiberSCIP

bool fiberSCIP
protected

Definition at line 136 of file scipParaSolver.h.

Referenced by ScipParaSolver::reinitialize().

◆ interruptMsgMonitor

ScipParaInterruptMsgMonitor* interruptMsgMonitor
protected

interrupt message monitor

Definition at line 97 of file scipParaSolver.h.

Referenced by ScipParaSolver::ScipParaSolver(), and ScipParaSolver::~ScipParaSolver().

◆ logfile

FILE* logfile
protected

◆ mapToOriginalIndecies

int* mapToOriginalIndecies
protected

array of indices to map to original problem's probindices

Definition at line 111 of file scipParaSolver.h.

Referenced by ScipParaSolver::getOriginalIndex(), ScipParaSolver::isOriginalIndeciesMap(), ScipParaSolver::saveOrgProblemBounds(), and ScipParaSolver::~ScipParaSolver().

◆ mapToProbIndecies

◆ mapToSolverLocalIndecies

int* mapToSolverLocalIndecies
protected

◆ messagehdlr

SCIP_MESSAGEHDLR* messagehdlr
protected

◆ miscAllowdualreds

unsigned int miscAllowdualreds
protected

◆ nAddedConss

int nAddedConss
protected

◆ nodesel

◆ nOrgVars

int nOrgVars
protected

◆ nOrgVarsInSolvers

int nOrgVarsInSolvers
protected

number of original variables in Solvers

Definition at line 106 of file scipParaSolver.h.

Referenced by ScipParaSolver::freeSubproblem(), and ScipParaSolver::saveOrgProblemBounds().

◆ nPreviousNodesLeft

long long nPreviousNodesLeft
protected

number of nodes left in the previous notification

Definition at line 100 of file scipParaSolver.h.

Referenced by ScipParaSolver::getNPreviousNodesLeft(), ScipParaSolver::setNPreviousNodesLeft(), and ScipParaSolver::solve().

◆ orgFeastol

SCIP_Real orgFeastol
protected

original feasibility tolerance

Definition at line 142 of file scipParaSolver.h.

Referenced by ScipParaSolver::ScipParaSolver(), and ScipParaSolver::solve().

◆ orgLpfeastol

SCIP_Real orgLpfeastol
protected

original lp feasibility tolerance

Definition at line 143 of file scipParaSolver.h.

Referenced by ScipParaSolver::ScipParaSolver(), and ScipParaSolver::solve().

◆ orgMaxRestart

int orgMaxRestart
protected

original value of presolving/maxrestart parameter

Definition at line 103 of file scipParaSolver.h.

Referenced by ScipParaSolver::getOriginalMaxRestart(), and ScipParaSolver::setOriginalMaxRestart().

◆ orgVarLbs

◆ orgVarUbs

◆ originalParamSet

◆ originalPriority

int originalPriority
protected

original priority of changing node selector

Definition at line 102 of file scipParaSolver.h.

Referenced by ScipParaSolver::getOriginalPriority(), ScipParaSolver::saveOriginalPriority(), and ScipParaSolver::setOriginalPriority().

◆ problemFileName

const char* problemFileName
protected

keep the name for restart, in case of file read

Definition at line 140 of file scipParaSolver.h.

Referenced by ScipParaSolver::reinitialize(), and ScipParaSolver::setProblemFileName().

◆ quiet

bool quiet
protected

◆ scip

◆ scipDiffParamSet

◆ scipDiffParamSetRoot

◆ scipPropagator

◆ scipToCheckEffectOfRootNodeProcesses

◆ settingsNameLC

char* settingsNameLC
protected

parameter settings file name for LC

Definition at line 135 of file scipParaSolver.h.

Referenced by ScipParaSolver::reinitialize(), and ScipParaSolver::ScipParaSolver().

◆ tightenedVarLbs

SCIP_Real* tightenedVarLbs
protected

◆ tightenedVarUbs

SCIP_Real* tightenedVarUbs
protected

◆ userPlugins