37#ifndef __BB_PARA_INITIATOR_H__
38#define __BB_PARA_INITIATOR_H__
50#include "ugs/ugsDef.h"
51#include "ugs/ugsParaCommMpi.h"
122 bool onlyBoundChanges
287 double dualBoundValue
295 double dualBoundValue
Base class of communicator for UG Framework.
Base class for a container which has difference between instance and subproblem.
Base class for BbParaNode.
Class for the difference between instance and subproblem.
double getTightenedVarLbs(int i)
get tightened variable lower bound TODO: this function should be in inherited class
virtual void setFinalSolverStatus(FinalSolverState status)=0
set final solver status
void setTightenedVarLbs(int i, double v)
set tightened variable lower bound TODO: this function should be in inherited class
bool areTightenedVarBounds()
check if there are tightened lower or upper bound TODO: this function should be in inherited class
virtual int getNSolutions()=0
get the number of incumbent solutions
BbParaInitiator(ParaComm *inComm, ParaTimer *inTimer)
constructor
virtual double getGap(double dualBoundValue)=0
get relative gap of dual bound value
double getTightenedVarUbs(int i)
get tightened variable upper bound TODO: this function should be in inherited class
bool solvedAtReInit
solved at reInit
virtual bool tryToSetIncumbentSolution(BbParaSolution *sol, bool checksol)=0
try to set incumbent solution
virtual ~BbParaInitiator()
destructor
double * tightenedVarUbs
array of tightened upper bound of variable
virtual double getAbsgap(double dualBoundValue)=0
get absolute gap of dual bound value
double * tightenedVarLbs
array of tightened lower bound of variable
virtual double getAbsgapValue()=0
get absgap value specified
void setTightenedVarUbs(int i, double v)
set tightened variable upper bound TODO: this function should be in inherited class
virtual void setNumberOfNodesSolved(long long n)=0
set number of nodes solved
virtual void setDualBound(double bound)=0
set final dual bound
virtual bool isFeasibleSolution()=0
check if feasible solution exists or not
virtual void accumulateInitialStat(ParaInitialStat *initialStat)
accumulate initial status
virtual bool isObjIntegral()
check if objective function value is always integral or not
virtual double getGapValue()=0
get gap value specified
virtual BbParaDiffSubproblem * makeRootNodeDiffSubproblem()=0
make DiffSubproblem object for root node
bool solvedAtInit
solved at init
bool isSolvedAtReInit()
check if problem is solved at reInit or not
bool isSolvedAtInit()
check if problem is solved at init or not
BbParaNode * readParaNodeFromCheckpointFile(bool onlyBoundChanges)
read a ParaNode from checkpoint file
virtual double convertToExternalValue(double internalValue)=0
convert objective function value to external value TODO: this function may be in inherited class
virtual bool canGenerateSpecialCutOffValue()
check if solver can generate special cut off value or not
virtual void setInitialStatOnDiffSubproblem(int minDepth, int maxDepth, BbParaDiffSubproblem *diffSubproblem)
set initial status on DiffSubproblem
virtual BbParaSolution * getGlobalBestIncumbentSolution()=0
get global best incumbent solution
gzstream::igzstream checkpointTasksStream
gzstream for checkpoint tasks file
bool read(ParaComm *comm, gzstream::igzstream &in, bool onlyBoundChanges)
read from checkpoint file
Base class of communicator object.
virtual ParaTask * createParaTask()=0
create ParaTask object by default constructor
class for initial statistics collecting after racing
ParaComm * paraComm
communicator used
FinalSolverState
Final status of computation.
@ MemoryLimitIsReached
memory limit is reached in a solver
@ ComputingWasInterrupted
computing was interrupted
@ GivenGapIsReached
given gap is reached for the computation
@ ProblemWasSolved
problem was solved
@ HardTimeLimitIsReached
hard time limit is reached
@ RequestedSubProblemsWereSolved
requested subproblem was solved
@ InitialNodesGenerated
initial nodes were generated
ParaInitiator * ParaInitiatorPtr
Base class of initiator that maintains original problem and incumbent solution.
returns the current git hash of UG