#include <master.h>
Inheritance diagram for ABA_MASTER:
Public Types | |
enum | STATUS { Optimal, Error, OutOfMemory, Unprocessed, Processing, Guaranteed, MaxLevel, MaxCpuTime, MaxCowTime, ExceptionFathom } |
enum | OUTLEVEL { Silent, Statistics, Subproblem, LinearProgram, Full } |
enum | ENUMSTRAT { BestFirst, BreadthFirst, DepthFirst, DiveAndBest } |
enum | BRANCHINGSTRAT { CloseHalf, CloseHalfExpensive } |
This enumeration defines the two currently implemented branching variable selection strategies. More... | |
enum | PRIMALBOUNDMODE { NoPrimalBound, Optimum, OptimumOne } |
This enumeration provides various methods for the initialization of the primal bound. More... | |
enum | SKIPPINGMODE { SkipByNode, SkipByLevel } |
enum | CONELIMMODE { NoConElim, NonBinding, Basic } |
This enumeration defines the ways for automatic constraint elimination during the cutting plane phase. More... | |
enum | VARELIMMODE { NoVarElim, ReducedCost } |
This enumeration defines the ways for automatic variable elimination during the column generation algorithm. More... | |
enum | VBCMODE { NoVbc, File, Pipe } |
This enumeration defines what kind of output can be generated for the VBCTOOL. More... | |
enum | OSISOLVER { Cbc, Clp, CPLEX, DyLP, FortMP, GLPK, MOSEK, OSL, SoPlex, SYMPHONY, Vol, XPRESS_MP } |
This enumeration defines which solvers can be used to solve theLP-relaxations. More... | |
Public Member Functions | |
ABA_MASTER (const char *problemName, bool cutting, bool pricing, ABA_OPTSENSE::SENSE optSense=ABA_OPTSENSE::Unknown, double eps=1.0e-4, double machineEps=1.0e-7, double infinity=1.0e30, bool readParamFromFile=true) | |
virtual | ~ABA_MASTER () |
The destructor. | |
STATUS | optimize () |
ENUMSTRAT | enumerationStrategy () const |
void | enumerationStrategy (ENUMSTRAT strat) |
This version of the function enumerationStrategy() changes the enumeration strategy. | |
virtual int | enumerationStrategy (const ABA_SUB *s1, const ABA_SUB *s2) |
Analyzes the enumeration strategy set in the parameter file { .abacus} and calls the corresponding comparison function for the subproblems s1 and s2. This function should be redefined for application specific enumeration strategies. | |
bool | guaranteed () |
Can be used to check if the guarantee requirements are fulfilled, i.e., the difference between upper bound and the lower bound in respect to the lowerBound is less than this guarantee value in percent. | |
double | guarantee () |
void | printGuarantee () |
bool | check () |
Can be used to control the correctness of the optimization if the value of the optimum solution has been loaded. | |
bool | knownOptimum (double &optVal) |
Opens the file specified with the parameter { OptimumFileName} in the configuration file { .abacus} and tries to find a line with the name of the problem instance (as specified in the constructor of ABA_MASTER) as first string. | |
virtual void | output () |
bool | cutting () const |
bool | pricing () const |
const ABA_OPTSENSE * | optSense () const |
ABA_HISTORY * | history () const |
ABA_OPENSUB * | openSub () const |
ABA_STANDARDPOOL< ABA_CONSTRAINT, ABA_VARIABLE > * | conPool () const |
ABA_STANDARDPOOL< ABA_CONSTRAINT, ABA_VARIABLE > * | cutPool () const |
ABA_STANDARDPOOL< ABA_VARIABLE, ABA_CONSTRAINT > * | varPool () const |
ABA_SUB * | root () const |
ABA_SUB * | rRoot () const |
STATUS | status () const |
const ABA_STRING * | problemName () const |
const ABA_COWTIMER * | totalCowTime () const |
bool | solveApprox () const |
const ABA_CPUTIMER * | totalTime () const |
const ABA_CPUTIMER * | lpTime () const |
const ABA_CPUTIMER * | lpSolverTime () const |
const ABA_CPUTIMER * | separationTime () const |
const ABA_CPUTIMER * | improveTime () const |
const ABA_CPUTIMER * | pricingTime () const |
const ABA_CPUTIMER * | branchingTime () const |
int | nSub () const |
int | nLp () const |
int | highestLevel () const |
int | nNewRoot () const |
int | nSubSelected () const |
void | printParameters () |
Writes all parameters of the class ABA_MASTER together with their values to the global output stream. | |
BRANCHINGSTRAT | branchingStrategy () const |
void | branchingStrategy (BRANCHINGSTRAT strat) |
OSISOLVER | defaultLpSolver () const |
void | defaultLpSolver (OSISOLVER osiSolver) |
ABA_LPMASTEROSI * | lpMasterOsi () const |
int | nBranchingVariableCandidates () const |
void | nBranchingVariableCandidates (int n) |
This version of the function nbranchingVariableCandidates() sets the number of tested branching variable candidates. | |
double | requiredGuarantee () const |
void | requiredGuarantee (double g) |
This version of the function requiredGuarantee() changes the guarantee specification. | |
int | maxLevel () const |
void | maxLevel (int ml) |
This version of the function maxLevel() changes the maximal enumeration depth. | |
const ABA_STRING & | maxCpuTime () const |
void | maxCpuTime (const ABA_STRING &t) |
const ABA_STRING & | maxCowTime () const |
The function maxCowTime(). | |
void | maxCowTime (const ABA_STRING &t) |
This version of the function maxCowTime() set the maximal wall-clock time for the optimization. | |
bool | objInteger () const |
void | objInteger (bool b) |
This version of function objInteger() sets the assumption that the objective function values of all feasible solutions are integer. | |
int | tailOffNLp () const |
The function tailOffNLp(). | |
void | tailOffNLp (int n) |
double | tailOffPercent () const |
The function tailOffPercent(). | |
void | tailOffPercent (double p) |
This version of the function tailOffPercent() sets the minimal change of the dual bound for the tailing off analysis. | |
OUTLEVEL | outLevel () const |
void | outLevel (OUTLEVEL mode) |
The version of the function outLevel() sets the output mode. | |
OUTLEVEL | logLevel () const |
void | logLevel (OUTLEVEL mode) |
This version of the function logLevel() sets the output mode for the log-file. | |
bool | delayedBranching (int nOpt_) const |
void | dbThreshold (int threshold) |
Sets the number of optimizations of a subproblem until sons are created in ABA_SUB::branching(). | |
int | dbThreshold () const |
int | minDormantRounds () const |
void | minDormantRounds (int nRounds) |
PRIMALBOUNDMODE | pbMode () const |
void | pbMode (PRIMALBOUNDMODE mode) |
int | pricingFreq () const |
void | pricingFreq (int f) |
This version of the function pricingFreq() sets the number of linear programs being solved between two additional pricing steps. | |
int | skipFactor () const |
void | skipFactor (int f) |
This version of the function skipFactor() sets the frequency for constraint and variable generation. | |
void | skippingMode (SKIPPINGMODE mode) |
This version of the function skippingMode() sets the skipping strategy. | |
SKIPPINGMODE | skippingMode () const |
CONELIMMODE | conElimMode () const |
void | conElimMode (CONELIMMODE mode) |
VARELIMMODE | varElimMode () const |
void | varElimMode (VARELIMMODE mode) |
double | conElimEps () const |
void | conElimEps (double eps) |
double | varElimEps () const |
void | varElimEps (double eps) |
int | varElimAge () const |
void | varElimAge (int eps) |
int | conElimAge () const |
void | conElimAge (int eps) |
bool | fixSetByRedCost () const |
void | fixSetByRedCost (bool on) |
bool | printLP () const |
void | printLP (bool on) |
int | maxConAdd () const |
void | maxConAdd (int max) |
Sets the maximal number of constraints that are added in an iteration of the cutting plane algorithm. | |
int | maxConBuffered () const |
void | maxConBuffered (int max) |
Changes the maximal number of constraints that are buffered in an iteration of the cutting plane algorithm. | |
int | maxVarAdd () const |
void | maxVarAdd (int max) |
Changes the maximal number of variables that are added in an iteration of the subproblem optimization. | |
int | maxVarBuffered () const |
void | maxVarBuffered (int max) |
Changes the maximal number of variables that are buffered in an iteration of the subproblem optimization. | |
int | maxIterations () const |
void | maxIterations (int max) |
Changes the default value for the maximal number of iterations of the optimization of a subproblem. | |
bool | eliminateFixedSet () const |
void | eliminateFixedSet (bool turnOn) |
This version of the function eliminateFixedSet() can be used to turn the elimination of fixed and set variables on or off. | |
bool | newRootReOptimize () const |
void | newRootReOptimize (bool on) |
const ABA_STRING & | optimumFileName () const |
void | optimumFileName (const char *name) |
bool | showAverageCutDistance () const |
void | showAverageCutDistance (bool on) |
Turns the output of the average distance of the added cuts from the fractional solution on or off. | |
VBCMODE | vbcLog () const |
void | vbcLog (VBCMODE mode) |
virtual bool | setSolverParameters (OsiSolverInterface *interface, bool solverIsApprox) |
bounds | |
In order to embed both minimization and maximization problems in this system we work internally with primal bounds, i.e., a value which is worse than the best known solution (often a value of a feasible solution), and dual bounds, i.e., a bound which is better than the best known solution. Primal and dual bounds are then interpreted as lower or upper bounds according to the sense of the optimization. | |
double | lowerBound () const |
double | upperBound () const |
double | primalBound () const |
void | primalBound (double x) |
This version of the function primalBound() sets the primal bound to x and makes a new entry in the solution history. It is an error if the primal bound gets worse. | |
double | dualBound () const |
void | dualBound (double x) |
This version of the function dualBound() sets the dual bound to x and makes a new entry in the solution history. | |
bool | betterDual (double x) const |
bool | primalViolated (double x) const |
bool | betterPrimal (double x) const |
bool | feasibleFound () const |
We use this function ,e.g., to adapt the enumeration strategy in the DiveAndBest-Strategy. | |
Static Public Attributes | |
static const char * | STATUS_ [] |
Literal values for the enumerators of the corresponding enumeration type. The order of the enumerators is preserved. (e.g., { STATUS[0]=="Optimal"}). | |
static const char * | OUTLEVEL_ [] |
Literal values for the enumerators of the corresponding enumeration type. The order of the enumerators is preserved. (e.g., { OUTLEVEL[0]=="Silent"}). | |
static const char * | ENUMSTRAT_ [] |
Literal values for the enumerators of the corresponding enumeration type. The order of the enumerators is preserved. (e.g., { ENUMSTRAT[0]=="BestFirst"}). | |
static const char * | BRANCHINGSTRAT_ [] |
Literal values for the enumerators of the corresponding enumeration type. The order of the enumerators is preserved. (e.g., { BRANCHINGSTRAT[0]=="CloseHalf"}). | |
static const char * | PRIMALBOUNDMODE_ [] |
Literal values for the enumerators of the corresponding enumeration type. The order of the enumerators is preserved. (e.g., { PRIMALBOUNDMODE[0]=="None"}). | |
static const char * | SKIPPINGMODE_ [] |
Literal values for the enumerators of the corresponding enumeration type. The order of the enumerators is preserved. (e.g., { SKIPPINGMODE[0]=="None"}). | |
static const char * | CONELIMMODE_ [] |
Literal values for the enumerators of the corresponding enumeration type. The order of the enumerators is preserved. (e.g., { CONELIMMODE[0]=="None"}). | |
static const char * | VARELIMMODE_ [] |
Literal values for the enumerators of the corresponding enumeration type. The order of the enumerators is preserved. (e.g., { VARELIMMODE[0]=="None"}). | |
static const char * | VBCMODE_ [] |
Literal values for the enumerators of the corresponding enumeration type. The order of the enumerators is preserved. (e.g., { VBCMODE[0]=="None"}). | |
static const char * | OSISOLVER_ [] |
Array for the literal values for possible Osi solvers. | |
Protected Member Functions | |
virtual void | initializePools (ABA_BUFFER< ABA_CONSTRAINT * > &constraints, ABA_BUFFER< ABA_VARIABLE * > &Variables, int varPoolSize, int cutPoolSize, bool dynamicCutPool=false) |
virtual void | initializePools (ABA_BUFFER< ABA_CONSTRAINT * > &constraints, ABA_BUFFER< ABA_CONSTRAINT * > &cuts, ABA_BUFFER< ABA_VARIABLE * > &Variables, int varPoolSize, int cutPoolSize, bool dynamicCutPool=false) |
Is overloaded such that also a first set of cutting planes can be inserted into the cutting plane pool. | |
void | initializeOptSense (ABA_OPTSENSE::SENSE sense) |
Can be used to initialize the sense of the optimization in derived classes, if this has not been already performed when the constructor of ABA_MASTER has been called. | |
int | bestFirstSearch (const ABA_SUB *s1, const ABA_SUB *s2) const |
virtual int | equalSubCompare (const ABA_SUB *s1, const ABA_SUB *s2) const |
Is called from the function bestFirstSearch() and from the function depthFirstSearch() if the subproblems s1 and s2 have the same priority. | |
int | depthFirstSearch (const ABA_SUB *s1, const ABA_SUB *s2) const |
Implements the depth first search enumeration strategy, i.e., the subproblem with maximum level is selected. | |
int | breadthFirstSearch (const ABA_SUB *s1, const ABA_SUB *s2) const |
Implements the breadth first search enumeration strategy, i.e., the subproblem with minimum level is selected. | |
int | diveAndBestFirstSearch (const ABA_SUB *s1, const ABA_SUB *s2) const |
Performs depth-first search until a feasible solution is found, then the search process is continued with best-first search. | |
virtual void | initializeParameters () |
Is only a dummy. This function can be used to initialize parameters of derived classes and to overwrite parameters read from the file { .abacus} by the function (). | |
virtual ABA_SUB * | firstSub ()=0 |
virtual void | initializeOptimization () |
The default implementation of initializeOptimization() does nothing. | |
virtual void | terminateOptimization () |
The default implementation of terminateOptimization() does nothing. | |
Private Member Functions | |
void | _initializeParameters () |
Reads the parameter-file { .abacus}, which is searched in the directory given by the environment variable ABACUS_DIR, and calls the virtual function initializeParameters() which can initialize parameters of derived classes and overwrite parameters of this class. | |
void | _createLpMasters () |
void | _deleteLpMasters () |
void | _initializeLpParameters () |
void | _setDefaultLpParameters () |
Initializes the LP solver specific default Parameters if they are not read from the parameter-file { .abacus}. | |
void | _printLpParameters () |
void | _outputLpStatistics () |
ABA_SUB * | select () |
int | initLP () |
void | writeTreeInterface (const char *info, bool time=true) const |
void | treeInterfaceNewNode (ABA_SUB *sub) const |
Adds the subproblem sub to the stream storing information for graphical output of the enumeration tree if this logging is turned on. | |
void | treeInterfacePaintNode (int id, int color) const |
void | treeInterfaceLowerBound (double lb) const |
void | treeInterfaceUpperBound (double ub) const |
void | treeInterfaceNodeBounds (int id, double lb, double ub) |
Updates the node information in the node with number id by writing the lower bound lb and the upper bound ub to the node. | |
void | newSub (int level) |
void | countLp () |
Increments the counter for linear programs and should be called in each optimization call of the LP-relaxation. | |
void | newFixed (int n) |
Increments the counter of the number of fixed variables by n. | |
void | addCons (int n) |
Increments the counter for the total number of added constraints by n. | |
void | removeCons (int n) |
Increments the counter for the total number of removed constraints by n. | |
void | addVars (int n) |
Increments the counter for the total number of added variables by n. | |
void | removeVars (int n) |
Increments the counter for the total number of removed variables by n. | |
ABA_FIXCAND * | fixCand () const |
void | rRoot (ABA_SUB *newRoot, bool reoptimize) |
void | status (STATUS stat) |
void | rootDualBound (double x) |
void | theFuture () |
ABA_MASTER (const ABA_MASTER &rhs) | |
const ABA_MASTER & | operator= (const ABA_MASTER &rhs) |
Private Attributes | |
ABA_STRING | problemName_ |
bool | readParamFromFile_ |
ABA_OPTSENSE | optSense_ |
ABA_SUB * | root_ |
ABA_SUB * | rRoot_ |
ABA_OPENSUB * | openSub_ |
ABA_HISTORY * | history_ |
ENUMSTRAT | enumerationStrategy_ |
BRANCHINGSTRAT | branchingStrategy_ |
int | nBranchingVariableCandidates_ |
The number of candidates that are evaluated for branching on variables. | |
OSISOLVER | defaultLpSolver_ |
ABA_LPMASTEROSI * | lpMasterOsi_ |
ABA_STANDARDPOOL< ABA_CONSTRAINT, ABA_VARIABLE > * | conPool_ |
ABA_STANDARDPOOL< ABA_CONSTRAINT, ABA_VARIABLE > * | cutPool_ |
ABA_STANDARDPOOL< ABA_VARIABLE, ABA_CONSTRAINT > * | varPool_ |
double | primalBound_ |
double | dualBound_ |
double | rootDualBound_ |
ABA_FIXCAND * | fixCand_ |
bool | cutting_ |
bool | pricing_ |
bool | solveApprox_ |
int | nSubSelected_ |
The number of subproblems already selected from the list of open subproblems. | |
VBCMODE | VbcLog_ |
Ouput for the Tree Interface is generated depending on the value of this variable. | |
ostream * | treeStream_ |
double | requiredGuarantee_ |
The guarantee in percent which should be reached when the optimization stops. | |
int | maxLevel_ |
ABA_STRING | maxCpuTime_ |
ABA_STRING | maxCowTime_ |
bool | objInteger_ |
true, if all objective function values of feasible solutions are assumed to be integer. | |
int | tailOffNLp_ |
double | tailOffPercent_ |
int | dbThreshold_ |
int | minDormantRounds_ |
The minimal number of rounds, i.e., number of subproblem optimizations, a subproblem is dormant, i.e., it is not selected from the set of open subproblem if its status is Dormant, if possible. | |
OUTLEVEL | outLevel_ |
OUTLEVEL | logLevel_ |
PRIMALBOUNDMODE | pbMode_ |
int | pricingFreq_ |
int | skipFactor_ |
The frequency constraints or variables are generated depending on the skipping mode. | |
SKIPPINGMODE | skippingMode_ |
Either constraints are generated only every skipFactor_ subproblem (SkipByNode) only every skipFactor_ level (SkipByLevel). | |
bool | fixSetByRedCost_ |
bool | printLP_ |
int | maxConAdd_ |
The maximal number of added constraints per iteration of the cutting plane algorithm. | |
int | maxConBuffered_ |
int | maxVarAdd_ |
The maximal number of added variables per iteration of the column generation algorithm. | |
int | maxVarBuffered_ |
int | maxIterations_ |
The maximal number of iterations of the cutting plane/column generation algorithm in the subproblem. | |
bool | eliminateFixedSet_ |
bool | newRootReOptimize_ |
If true, then an already earlier processed node is reoptimized if it becomes the new root of the remaining \ tree. | |
ABA_STRING | optimumFileName_ |
The name of a file storing a list of optimum solutions of problem instances. | |
bool | showAverageCutDistance_ |
If true then the average distance of the added cutting planes is output every iteration of the cutting plane algorithm. | |
CONELIMMODE | conElimMode_ |
The way constraints are automatically eliminated in the cutting plane algorithm. | |
VARELIMMODE | varElimMode_ |
The way variables are automatically eliminated in the column generation algorithm. | |
double | conElimEps_ |
The tolerance for the elimination of constraints by the mode NonBinding/. | |
double | varElimEps_ |
The tolerance for the elimination of variables by the mode ReducedCost. | |
int | conElimAge_ |
The number of iterations an elimination criterion must be satisfied until a constraint can be removed. | |
int | varElimAge_ |
The number of iterations an elimination criterion must be satisfied until a variable can be removed. | |
STATUS | status_ |
ABA_COWTIMER | totalCowTime_ |
ABA_CPUTIMER | totalTime_ |
ABA_CPUTIMER | lpTime_ |
ABA_CPUTIMER | lpSolverTime_ |
ABA_CPUTIMER | separationTime_ |
ABA_CPUTIMER | improveTime_ |
The timer for the cpu time spent in the heuristics for the computation of feasible solutions. | |
ABA_CPUTIMER | pricingTime_ |
ABA_CPUTIMER | branchingTime_ |
int | nSub_ |
int | nLp_ |
int | highestLevel_ |
int | nFixed_ |
int | nAddCons_ |
int | nRemCons_ |
int | nAddVars_ |
int | nRemVars_ |
int | nNewRoot_ |
Friends | |
class | ABA_SUB |
class | ABA_FIXCAND |
Definition at line 76 of file master.h.
enum ABA_MASTER::STATUS |
The various statuses of the optimization process.
Optimal | The optimization terminated with an error and without reaching one of the resource limits. If there is a feasible solution then the optimal solution has been computed. | |
Error | An error occurred during the optimization process. | |
Unprocessed | The initial status, before the optimization starts. | |
Processing | The status while the optimization is performed. | |
Guaranteed | If not the optimal solution is determined, but the required guarantee is reached, then the status is Guaranteed. | |
MaxLevel | The status, if subproblems are ignored since the maximum enumeration level is exceeded. | |
MaxCpuTime | The status, if the optimization terminates since the maximum cpu time is exceeded. | |
MaxCowTime | The status, if the optimization terminates since the maximum wall-clock time is exceeded. | |
ExceptionFathom | The status, if at least one subproblem has been fathomed according to a problem specific criteria determined in the function ABA_SUB::exceptionFathom(). |
enum ABA_MASTER::OUTLEVEL |
This enumeration defines the different output levels:
Silent | No output at all. | |
Statistics | No output during the optimization, but output of final statistics. | |
Subproblem | In addition to the previous level also a single line of output after every subproblem optimization. | |
LinearProgram | In addition to the previous level also a single line of output after every solved linear program. | |
Full | Tons of output. |
This enumeration defines the two currently implemented branching variable selection strategies.
CloseHalf | Selects the variable with fractional part closest to ![]() | |
CloseHalfExpensive | Selects the variable with fractional part close to ![]() ![]() |
This enumeration provides various methods for the initialization of the primal bound.
The modes OptimalPrimalBound and OptimalOnePrimalBound can be useful in the testing phase. For these modes the value of an optimum solution must stored in the file given by the parameter { OptimumFileName} in the parameter file.
NoPrimalBound | The primal bound is initialized with ![]() ![]() | |
OptimalPrimalBound | The primal bound is initialized with the value of the optimum solution. | |
OptimalOnePrimalBound | The primal bound is initialized with the value of optimum solution minus 1 for maximization problems and with the value of the optimum solution plus one for minimization problems, respectively. |
The way nodes are skipped for the generation of cuts.
SkipByNode | Cuts are only generated in every { SkipFactor} subproblem, where { SkipFactor} can be controlled with the parameter file { .abacus}. | |
SkipByLevel | Cuts are only generated in every { SkipFactor} level of the enumeration tree. |
This enumeration defines the ways for automatic constraint elimination during the cutting plane phase.
NoConElim | No constraints are eliminated. | |
NonBinding | Nonbinding constraints are eliminated. | |
Basic | Constraints with basic slack variable are eliminated. |
This enumeration defines the ways for automatic variable elimination during the column generation algorithm.
NoVarElim | No variables are eliminated. | |
ReducedCost | Variables with high absolute reduced costs are eliminated. |
enum ABA_MASTER::VBCMODE |
This enumeration defines what kind of output can be generated for the VBCTOOL.
None | No output for the tree interface. | |
File | Output for the tree interface is written to a file. | |
Pipe | Output for the tree interface is pipe to the standard output. |
ABA_MASTER::ABA_MASTER | ( | const char * | problemName, | |
bool | cutting, | |||
bool | pricing, | |||
ABA_OPTSENSE::SENSE | optSense = ABA_OPTSENSE::Unknown , |
|||
double | eps = 1.0e-4 , |
|||
double | machineEps = 1.0e-7 , |
|||
double | infinity = 1.0e30 , |
|||
bool | readParamFromFile = true | |||
) |
The constructor.
problemName | The name of the problem being solved. Must not be a 0-pointer. | |
cutting | If true, then cutting planes can be generated if the function ABA_SUB::separate() is redefined. | |
pricing | If true, then inactive variables are priced in, if the function ABA_SUB::pricing() is redefined. | |
optSense | The sense of the optimization. The default value is ABA_OPTSENSE::Unknown. If the sense is unknown when this constructor is called, e.g., if it is read from a file in the constructor of the derived class, then it must be initialized in the constructor of the derived class. | |
eps | The zero-tolerance used within all member functions of objects which have a pointer to this master (default value 1.0e-4). | |
machineEps | The machine dependent zero tolerance (default value 1.0e-7). | |
infinity | All values greater than infinity are regarded as ``infinite big'', all values less than -infinity are regarded as ``infinite small'' (default value 1.0e30). | |
readParamFromFile | If true, then the parameter file .abacus is read, otherwise the parameters are initialized with default values (default true). |
virtual ABA_MASTER::~ABA_MASTER | ( | ) | [virtual] |
The destructor.
ABA_MASTER::ABA_MASTER | ( | const ABA_MASTER & | rhs | ) | [private] |
STATUS ABA_MASTER::optimize | ( | ) |
Performs the optimization by .
The status of the optimization.
double ABA_MASTER::lowerBound | ( | ) | const [inline] |
double ABA_MASTER::upperBound | ( | ) | const [inline] |
double ABA_MASTER::primalBound | ( | ) | const [inline] |
void ABA_MASTER::primalBound | ( | double | x | ) |
This version of the function primalBound() sets the primal bound to x and makes a new entry in the solution history. It is an error if the primal bound gets worse.
x | The new value of the primal bound. |
double ABA_MASTER::dualBound | ( | ) | const [inline] |
void ABA_MASTER::dualBound | ( | double | x | ) |
This version of the function dualBound() sets the dual bound to x and makes a new entry in the solution history.
It is an error if the dual bound gets worse.
x | The new value of the dual bound. |
bool ABA_MASTER::betterDual | ( | double | x | ) | const |
false otherwise.
x | The value being compared with the best know dual bound. |
bool ABA_MASTER::primalViolated | ( | double | x | ) | const |
Can be used to compare a value with the one of the best known primal bound.
If the objective function values of all feasible solutions are integer, then we do not have to be so carefully.
false otherwise.
x | The value being compared with the primal bound. |
bool ABA_MASTER::betterPrimal | ( | double | x | ) | const |
Can be used to check if a value is better than the best know primal bound.
false otherwise.
x | The value compared with the primal bound. |
bool ABA_MASTER::feasibleFound | ( | ) | const |
We use this function ,e.g., to adapt the enumeration strategy in the DiveAndBest-Strategy.
This function is only correct if any primal bound better than plus/minus infinity corresponds to a feasible solution.
false otherwise.
ABA_MASTER::ENUMSTRAT ABA_MASTER::enumerationStrategy | ( | ) | const [inline] |
void ABA_MASTER::enumerationStrategy | ( | ENUMSTRAT | strat | ) | [inline] |
This version of the function enumerationStrategy() changes the enumeration strategy.
strat | The new enumeration strategy. |
Analyzes the enumeration strategy set in the parameter file { .abacus} and calls the corresponding comparison function for the subproblems s1 and s2. This function should be redefined for application specific enumeration strategies.
0 if s2 has higher priority it returns , and if both subproblems have equal priority
s1 | A pointer to subproblem. | |
s2 | A pointer to subproblem. |
bool ABA_MASTER::guaranteed | ( | ) |
Can be used to check if the guarantee requirements are fulfilled, i.e., the difference between upper bound and the lower bound in respect to the lowerBound is less than this guarantee value in percent.
If the lower bound is zero, but the upper bound is nonzero, we cannot give any guarantee.
false otherwise.
double ABA_MASTER::guarantee | ( | ) |
Can be used to access the guarantee which can be given for the best known feasible solution.
It is an error to call this function if the lower bound is zero, but the upper bound is nonzero.
void ABA_MASTER::printGuarantee | ( | ) |
Writes the guarantee nicely formated on the output stream associated with this object.
If no bounds are available, or the lower bound is zero, but the upper bound is nonzero, then we cannot give any guarantee.
bool ABA_MASTER::check | ( | ) |
Can be used to control the correctness of the optimization if the value of the optimum solution has been loaded.
This is done, if a file storing the optimum value is specified with the parameter { OptimumFileName} in the configuration file { .abacus}.
false otherwise.
bool ABA_MASTER::knownOptimum | ( | double & | optVal | ) |
Opens the file specified with the parameter { OptimumFileName} in the configuration file { .abacus} and tries to find a line with the name of the problem instance (as specified in the constructor of ABA_MASTER) as first string.
false otherwise.
optVal | If the return value is true, then optVal holds the optimum value found in the line with the name of the problem instance as first string. Otherwise, optVal is undefined. |
virtual void ABA_MASTER::output | ( | ) | [virtual] |
Does nothing but can be redefined in derived classes for output before the timing statistics.
bool ABA_MASTER::cutting | ( | ) | const [inline] |
false otherwise.
bool ABA_MASTER::pricing | ( | ) | const [inline] |
false otherwise.
const ABA_OPTSENSE * ABA_MASTER::optSense | ( | ) | const [inline] |
ABA_HISTORY * ABA_MASTER::history | ( | ) | const [inline] |
ABA_OPENSUB * ABA_MASTER::openSub | ( | ) | const [inline] |
ABA_STANDARDPOOL< ABA_CONSTRAINT, ABA_VARIABLE > * ABA_MASTER::conPool | ( | ) | const [inline] |
ABA_STANDARDPOOL< ABA_CONSTRAINT, ABA_VARIABLE > * ABA_MASTER::cutPool | ( | ) | const [inline] |
ABA_STANDARDPOOL< ABA_VARIABLE, ABA_CONSTRAINT > * ABA_MASTER::varPool | ( | ) | const [inline] |
ABA_SUB * ABA_MASTER::root | ( | ) | const [inline] |
ABA_SUB * ABA_MASTER::rRoot | ( | ) | const [inline] |
ABA_MASTER::STATUS ABA_MASTER::status | ( | ) | const [inline] |
const ABA_STRING* ABA_MASTER::problemName | ( | ) | const |
const ABA_COWTIMER * ABA_MASTER::totalCowTime | ( | ) | const [inline] |
bool ABA_MASTER::solveApprox | ( | ) | const [inline] |
const ABA_CPUTIMER * ABA_MASTER::totalTime | ( | ) | const [inline] |
const ABA_CPUTIMER * ABA_MASTER::lpTime | ( | ) | const [inline] |
const ABA_CPUTIMER * ABA_MASTER::lpSolverTime | ( | ) | const [inline] |
const ABA_CPUTIMER * ABA_MASTER::separationTime | ( | ) | const [inline] |
const ABA_CPUTIMER * ABA_MASTER::improveTime | ( | ) | const [inline] |
const ABA_CPUTIMER * ABA_MASTER::pricingTime | ( | ) | const [inline] |
const ABA_CPUTIMER * ABA_MASTER::branchingTime | ( | ) | const [inline] |
int ABA_MASTER::nSub | ( | ) | const [inline] |
int ABA_MASTER::nLp | ( | ) | const [inline] |
int ABA_MASTER::highestLevel | ( | ) | const [inline] |
int ABA_MASTER::nNewRoot | ( | ) | const [inline] |
int ABA_MASTER::nSubSelected | ( | ) | const [inline] |
void ABA_MASTER::printParameters | ( | ) |
Writes all parameters of the class ABA_MASTER together with their values to the global output stream.
ABA_MASTER::BRANCHINGSTRAT ABA_MASTER::branchingStrategy | ( | ) | const [inline] |
void ABA_MASTER::branchingStrategy | ( | BRANCHINGSTRAT | strat | ) | [inline] |
ABA_MASTER::OSISOLVER ABA_MASTER::defaultLpSolver | ( | ) | const [inline] |
void ABA_MASTER::defaultLpSolver | ( | OSISOLVER | osiSolver | ) | [inline] |
ABA_LPMASTEROSI* ABA_MASTER::lpMasterOsi | ( | ) | const [inline] |
int ABA_MASTER::nBranchingVariableCandidates | ( | ) | const [inline] |
void ABA_MASTER::nBranchingVariableCandidates | ( | int | n | ) |
This version of the function nbranchingVariableCandidates() sets the number of tested branching variable candidates.
n | The new value of the number of tested variables for becoming branching variable. |
double ABA_MASTER::requiredGuarantee | ( | ) | const [inline] |
void ABA_MASTER::requiredGuarantee | ( | double | g | ) |
This version of the function requiredGuarantee() changes the guarantee specification.
g | The new guarantee specification (in percent). This must be a nonnative value. Note, if the guarantee specification is changed after a single node of the enumeration tree has been fathomed, then the overall guarantee might differ from the new value. |
int ABA_MASTER::maxLevel | ( | ) | const [inline] |
void ABA_MASTER::maxLevel | ( | int | ml | ) |
This version of the function maxLevel() changes the maximal enumeration depth.
If it is set to 1 the \ algorithm becomes a pure cutting plane algorithm.
max | The new value of the maximal enumeration level. |
const ABA_STRING & ABA_MASTER::maxCpuTime | ( | ) | const [inline] |
void ABA_MASTER::maxCpuTime | ( | const ABA_STRING & | t | ) | [inline] |
const ABA_STRING & ABA_MASTER::maxCowTime | ( | ) | const [inline] |
void ABA_MASTER::maxCowTime | ( | const ABA_STRING & | t | ) | [inline] |
This version of the function maxCowTime() set the maximal wall-clock time for the optimization.
t | The new value of the maximal wall-clock time in the form { hh:mm:ss}. |
bool ABA_MASTER::objInteger | ( | ) | const [inline] |
void ABA_MASTER::objInteger | ( | bool | b | ) | [inline] |
This version of function objInteger() sets the assumption that the objective function values of all feasible solutions are integer.
b | The new value of the assumption. |
int ABA_MASTER::tailOffNLp | ( | ) | const [inline] |
The function tailOffNLp().
void ABA_MASTER::tailOffNLp | ( | int | n | ) | [inline] |
double ABA_MASTER::tailOffPercent | ( | ) | const [inline] |
The function tailOffPercent().
void ABA_MASTER::tailOffPercent | ( | double | p | ) |
This version of the function tailOffPercent() sets the minimal change of the dual bound for the tailing off analysis.
This change is only relevant for subproblems activated { after} calling this function.
p | The new value for the tailing off analysis. |
ABA_MASTER::OUTLEVEL ABA_MASTER::outLevel | ( | ) | const [inline] |
void ABA_MASTER::outLevel | ( | OUTLEVEL | mode | ) | [inline] |
The version of the function outLevel() sets the output mode.
mode | The new value of the output mode. |
ABA_MASTER::OUTLEVEL ABA_MASTER::logLevel | ( | ) | const [inline] |
void ABA_MASTER::logLevel | ( | OUTLEVEL | mode | ) | [inline] |
This version of the function logLevel() sets the output mode for the log-file.
mode | The new value of the output mode. |
bool ABA_MASTER::delayedBranching | ( | int | nOpt_ | ) | const |
false otherwise.
nOpt | The number of optimizations of a subproblem. |
void ABA_MASTER::dbThreshold | ( | int | threshold | ) | [inline] |
Sets the number of optimizations of a subproblem until sons are created in ABA_SUB::branching().
If this value is 0, then a branching step is performed at the end of the subproblem optimization as usually if the subproblem can be fathomed. Otherwise, if this value is strictly positive, the subproblem is put back for a later optimization. This can be advantageous if in the meantime good cutting planes or primal bounds can be generated. The number of times the subproblem is put back without branching is indicated by this value.
threshold | The new value of the delayed branching threshold. |
int ABA_MASTER::dbThreshold | ( | ) | const [inline] |
int ABA_MASTER::minDormantRounds | ( | ) | const [inline] |
void ABA_MASTER::minDormantRounds | ( | int | nRounds | ) | [inline] |
ABA_MASTER::PRIMALBOUNDMODE ABA_MASTER::pbMode | ( | ) | const [inline] |
void ABA_MASTER::pbMode | ( | PRIMALBOUNDMODE | mode | ) | [inline] |
int ABA_MASTER::pricingFreq | ( | ) | const [inline] |
void ABA_MASTER::pricingFreq | ( | int | f | ) |
This version of the function pricingFreq() sets the number of linear programs being solved between two additional pricing steps.
f | The pricing frequency. |
int ABA_MASTER::skipFactor | ( | ) | const [inline] |
void ABA_MASTER::skipFactor | ( | int | f | ) |
This version of the function skipFactor() sets the frequency for constraint and variable generation.
f | The new value of the frequency. |
void ABA_MASTER::skippingMode | ( | SKIPPINGMODE | mode | ) | [inline] |
This version of the function skippingMode() sets the skipping strategy.
mode | The new skipping strategy. |
ABA_MASTER::SKIPPINGMODE ABA_MASTER::skippingMode | ( | ) | const [inline] |
ABA_MASTER::CONELIMMODE ABA_MASTER::conElimMode | ( | ) | const [inline] |
void ABA_MASTER::conElimMode | ( | CONELIMMODE | mode | ) | [inline] |
ABA_MASTER::VARELIMMODE ABA_MASTER::varElimMode | ( | ) | const [inline] |
void ABA_MASTER::varElimMode | ( | VARELIMMODE | mode | ) | [inline] |
double ABA_MASTER::conElimEps | ( | ) | const [inline] |
void ABA_MASTER::conElimEps | ( | double | eps | ) | [inline] |
double ABA_MASTER::varElimEps | ( | ) | const [inline] |
void ABA_MASTER::varElimEps | ( | double | eps | ) | [inline] |
int ABA_MASTER::varElimAge | ( | ) | const [inline] |
void ABA_MASTER::varElimAge | ( | int | eps | ) | [inline] |
int ABA_MASTER::conElimAge | ( | ) | const [inline] |
void ABA_MASTER::conElimAge | ( | int | eps | ) | [inline] |
bool ABA_MASTER::fixSetByRedCost | ( | ) | const [inline] |
void ABA_MASTER::fixSetByRedCost | ( | bool | on | ) | [inline] |
bool ABA_MASTER::printLP | ( | ) | const [inline] |
void ABA_MASTER::printLP | ( | bool | on | ) | [inline] |
int ABA_MASTER::maxConAdd | ( | ) | const [inline] |
void ABA_MASTER::maxConAdd | ( | int | max | ) | [inline] |
int ABA_MASTER::maxConBuffered | ( | ) | const [inline] |
void ABA_MASTER::maxConBuffered | ( | int | max | ) | [inline] |
Changes the maximal number of constraints that are buffered in an iteration of the cutting plane algorithm.
max | The new maximal number of buffered constraints. |
int ABA_MASTER::maxVarAdd | ( | ) | const [inline] |
void ABA_MASTER::maxVarAdd | ( | int | max | ) | [inline] |
int ABA_MASTER::maxVarBuffered | ( | ) | const [inline] |
void ABA_MASTER::maxVarBuffered | ( | int | max | ) | [inline] |
Changes the maximal number of variables that are buffered in an iteration of the subproblem optimization.
max | The new maximal number of buffered variables. |
int ABA_MASTER::maxIterations | ( | ) | const [inline] |
void ABA_MASTER::maxIterations | ( | int | max | ) | [inline] |
Changes the default value for the maximal number of iterations of the optimization of a subproblem.
max | The new maximal number of iterations of the subproblem optimization (-1 means no limit). |
bool ABA_MASTER::eliminateFixedSet | ( | ) | const [inline] |
void ABA_MASTER::eliminateFixedSet | ( | bool | turnOn | ) | [inline] |
This version of the function eliminateFixedSet() can be used to turn the elimination of fixed and set variables on or off.
turnOn | The elimination is turned on if turnOn is true, otherwise it is turned off. |
bool ABA_MASTER::newRootReOptimize | ( | ) | const [inline] |
void ABA_MASTER::newRootReOptimize | ( | bool | on | ) | [inline] |
const ABA_STRING & ABA_MASTER::optimumFileName | ( | ) | const [inline] |
void ABA_MASTER::optimumFileName | ( | const char * | name | ) | [inline] |
bool ABA_MASTER::showAverageCutDistance | ( | ) | const [inline] |
void ABA_MASTER::showAverageCutDistance | ( | bool | on | ) | [inline] |
ABA_MASTER::VBCMODE ABA_MASTER::vbcLog | ( | ) | const [inline] |
void ABA_MASTER::vbcLog | ( | VBCMODE | mode | ) | [inline] |
Changes the mode of output for the Vbc-Tool.
This function should only be called before the optimization is started with the function ABA_MASTER::optimize().
mode | The new mode. |
virtual bool ABA_MASTER::setSolverParameters | ( | OsiSolverInterface * | interface, | |
bool | solverIsApprox | |||
) | [virtual] |
Set solver specific parameters. The default does nothing.
virtual void ABA_MASTER::initializePools | ( | ABA_BUFFER< ABA_CONSTRAINT * > & | constraints, | |
ABA_BUFFER< ABA_VARIABLE * > & | Variables, | |||
int | varPoolSize, | |||
int | cutPoolSize, | |||
bool | dynamicCutPool = false | |||
) | [protected, virtual] |
Sets up the default pools for variables, constraints, and cutting planes.
constraints | The constraints of the problem formulation are inserted in the constraint pool. The size of the constraint pool equals the number of constraints. | |
variables | The variables of the problem formulation are inserted in the variable pool. | |
varPoolSize | The size of the pool for the variables. If more variables are added the variable pool is automatically reallocated. | |
cutPoolSize | The size of the pool for cutting planes. | |
dynamicCutPool | If this argument is true, then the cut is automatically reallocated if more constraints are inserted than cutPoolSize. Otherwise, non-active constraints are removed if the pool becomes full. The default value is false. |
virtual void ABA_MASTER::initializePools | ( | ABA_BUFFER< ABA_CONSTRAINT * > & | constraints, | |
ABA_BUFFER< ABA_CONSTRAINT * > & | cuts, | |||
ABA_BUFFER< ABA_VARIABLE * > & | Variables, | |||
int | varPoolSize, | |||
int | cutPoolSize, | |||
bool | dynamicCutPool = false | |||
) | [protected, virtual] |
Is overloaded such that also a first set of cutting planes can be inserted into the cutting plane pool.
constraints | The constraints of the problem formulation are inserted in the constraint pool. The size of the constraint pool equals the number of constraints. | |
cuts | The constraints that are inserted in the cutting plane pool. The number of constraints in the buffer must be less or equal than the size of the cutting plane pool cutPoolSize. | |
variables | The variables of the problem formulation are inserted in the variable pool. | |
varPoolSize | The size of the pool for the variables. If more variables are added the variable pool is automatically reallocated. | |
cutPoolSize | The size of the pool for cutting planes. | |
dynamicCutPool | If this argument is true, then the cut is automatically reallocated if more constraints are inserted than cutPoolSize. Otherwise, non-active constraints are removed if the pool becomes full. The default value is false. |
void ABA_MASTER::initializeOptSense | ( | ABA_OPTSENSE::SENSE | sense | ) | [protected] |
Can be used to initialize the sense of the optimization in derived classes, if this has not been already performed when the constructor of ABA_MASTER has been called.
sense | The sense of the optimization (ABA_OPTSENSE::Min or ABA_OPTSENSE::Max). |
Implements the best first search enumeration.
If the bounds of both subproblems are equal, then the subproblems are compared with the function equalSubCompare().
1 If subproblem s2 has a worse dual bound than s1.
0 If both subproblems have the same priority in the enumeration strategy.
s1 | A subproblem. | |
s2 | A subproblem. |
virtual int ABA_MASTER::equalSubCompare | ( | const ABA_SUB * | s1, | |
const ABA_SUB * | s2 | |||
) | const [protected, virtual] |
Is called from the function bestFirstSearch() and from the function depthFirstSearch() if the subproblems s1 and s2 have the same priority.
If both subproblems were generated by setting a binary variable, then that subproblem has higher priority of which the branching variable is set to upper bound.
This function can be redefined to resolve equal subproblems according to problem specific criteria. As the root node is compared with itself and has no branching rule, we have to insert the first line of this function.
s1 | A subproblem. | |
s2 | A subproblem. |
1 If the branching variable of the first subproblem ist set to the upper bound.
-1 If the branching variable of the second subproblem ist set to the upper bound.
Implements the depth first search enumeration strategy, i.e., the subproblem with maximum level is selected.
If the level of both subproblems are equal, then the subproblems are compared with the function equalSubCompare().
0 if both subproblems have equal priority,
1 otherwise.
s1 | The first subproblem. | |
s2 | The second subproblem. |
Implements the breadth first search enumeration strategy, i.e., the subproblem with minimum level is selected.
If both subproblems have the same level, the smaller one is the one which has been generated earlier, i.e., the one with the smaller id.
0 if both subproblems have equal priority,
1 otherwise.
s1 | The first subproblem. | |
s2 | The second subproblem. |
Performs depth-first search until a feasible solution is found, then the search process is continued with best-first search.
0 if both subproblems have equal priority,
1 otherwise.
s1 | The first subproblem. | |
s2 | The second subproblem. |
virtual void ABA_MASTER::initializeParameters | ( | ) | [protected, virtual] |
Is only a dummy. This function can be used to initialize parameters of derived classes and to overwrite parameters read from the file { .abacus} by the function ().
virtual ABA_SUB* ABA_MASTER::firstSub | ( | ) | [protected, pure virtual] |
virtual void ABA_MASTER::initializeOptimization | ( | ) | [protected, virtual] |
The default implementation of initializeOptimization() does nothing.
This virtual function can be used as an entrance point to perform some initializations after optimize() is called.
virtual void ABA_MASTER::terminateOptimization | ( | ) | [protected, virtual] |
The default implementation of terminateOptimization() does nothing.
This virtual function can be used as an entrance point after the optimization process is finished.
void ABA_MASTER::_initializeParameters | ( | ) | [private] |
Reads the parameter-file { .abacus}, which is searched in the directory given by the environment variable ABACUS_DIR, and calls the virtual function initializeParameters() which can initialize parameters of derived classes and overwrite parameters of this class.
All parameters are first inserted together with their values in a parameter table in the function readParameters(). If the virtual dummy function initializeParameters() is redefined in a derived class and also reads a parameter file with the function readParameters(), then already inserted parameters can be overwritten.
void ABA_MASTER::_createLpMasters | ( | ) | [private] |
void ABA_MASTER::_deleteLpMasters | ( | ) | [private] |
void ABA_MASTER::_initializeLpParameters | ( | ) | [private] |
void ABA_MASTER::_setDefaultLpParameters | ( | ) | [private] |
Initializes the LP solver specific default Parameters if they are not read from the parameter-file { .abacus}.
This function is implemented in the file lpif.cc.
void ABA_MASTER::_printLpParameters | ( | ) | [private] |
Prints the LP solver specific parameters.
This function is implemented in the file lpif.cc.
void ABA_MASTER::_outputLpStatistics | ( | ) | [private] |
Prints the LP solver specific statistics.
This function is implemented in the file lpif.cc.
ABA_SUB* ABA_MASTER::select | ( | ) | [private] |
Returns a pointer to an open subproblem for further processing.
If the set of open subproblems is empty or one of the criteria for early termination of the optimization (maximal cpu time, maximal elapsed time, guarantee) is fulfilled 0 is returned.
int ABA_MASTER::initLP | ( | ) | [private] |
void ABA_MASTER::writeTreeInterface | ( | const char * | info, | |
bool | time = true | |||
) | const [private] |
Writes the string info to the stream associated with the Tree Interface.
A $ is preceded if the output is written to standard out for further pipelining. If time is true a time string is written in front of the information. The default value of time is true.
void ABA_MASTER::treeInterfaceNewNode | ( | ABA_SUB * | sub | ) | const [private] |
Adds the subproblem sub to the stream storing information for graphical output of the enumeration tree if this logging is turned on.
void ABA_MASTER::treeInterfacePaintNode | ( | int | id, | |
int | color | |||
) | const [private] |
Assigns the color to the subproblem sub in the Tree Interface.
void ABA_MASTER::treeInterfaceLowerBound | ( | double | lb | ) | const [private] |
Passes the new lower bound lb to the Tree Interface.
void ABA_MASTER::treeInterfaceUpperBound | ( | double | ub | ) | const [private] |
Passes the new upper bound ub to the Tree Interface.
void ABA_MASTER::treeInterfaceNodeBounds | ( | int | id, | |
double | lb, | |||
double | ub | |||
) | [private] |
Updates the node information in the node with number id by writing the lower bound lb and the upper bound ub to the node.
void ABA_MASTER::newSub | ( | int | level | ) | [private] |
Registers a new subproblem which is on level level in enumeration tree.
It is called each time a new subproblem is generated.
void ABA_MASTER::countLp | ( | ) | [inline, private] |
void ABA_MASTER::newFixed | ( | int | n | ) | [inline, private] |
void ABA_MASTER::addCons | ( | int | n | ) | [inline, private] |
void ABA_MASTER::removeCons | ( | int | n | ) | [inline, private] |
void ABA_MASTER::addVars | ( | int | n | ) | [inline, private] |
void ABA_MASTER::removeVars | ( | int | n | ) | [inline, private] |
ABA_FIXCAND * ABA_MASTER::fixCand | ( | ) | const [inline, private] |
void ABA_MASTER::rRoot | ( | ABA_SUB * | newRoot, | |
bool | reoptimize | |||
) | [private] |
Sets the root of the remaining \ tree to newRoot.
If reoptimize is true a reoptimization of the subproblem *newRoot is performed. This is controlled via a function argument since it might not be desirable when we find a new rRoot_ during the fathoming of a complete subtree ABA_SUB::FathomTheSubtree().
void ABA_MASTER::status | ( | STATUS | stat | ) | [inline, private] |
This version of the function status() sets the status of the ABA_MASTER.
void ABA_MASTER::rootDualBound | ( | double | x | ) | [private] |
Updates the final dual bound of the root node.
This function should be only called at the end of the root node optimization.
void ABA_MASTER::theFuture | ( | ) | [private] |
const ABA_MASTER& ABA_MASTER::operator= | ( | const ABA_MASTER & | rhs | ) | [private] |
friend class ABA_FIXCAND [friend] |
const char* ABA_MASTER::STATUS_[] [static] |
const char* ABA_MASTER::OUTLEVEL_[] [static] |
const char* ABA_MASTER::ENUMSTRAT_[] [static] |
const char* ABA_MASTER::BRANCHINGSTRAT_[] [static] |
const char* ABA_MASTER::PRIMALBOUNDMODE_[] [static] |
const char* ABA_MASTER::SKIPPINGMODE_[] [static] |
const char* ABA_MASTER::CONELIMMODE_[] [static] |
const char* ABA_MASTER::VARELIMMODE_[] [static] |
const char* ABA_MASTER::VBCMODE_[] [static] |
const char* ABA_MASTER::OSISOLVER_[] [static] |
ABA_STRING ABA_MASTER::problemName_ [private] |
bool ABA_MASTER::readParamFromFile_ [private] |
ABA_OPTSENSE ABA_MASTER::optSense_ [private] |
ABA_SUB* ABA_MASTER::root_ [private] |
ABA_SUB* ABA_MASTER::rRoot_ [private] |
ABA_OPENSUB* ABA_MASTER::openSub_ [private] |
ABA_HISTORY* ABA_MASTER::history_ [private] |
ENUMSTRAT ABA_MASTER::enumerationStrategy_ [private] |
BRANCHINGSTRAT ABA_MASTER::branchingStrategy_ [private] |
int ABA_MASTER::nBranchingVariableCandidates_ [private] |
OSISOLVER ABA_MASTER::defaultLpSolver_ [private] |
ABA_LPMASTEROSI* ABA_MASTER::lpMasterOsi_ [private] |
ABA_STANDARDPOOL<ABA_CONSTRAINT, ABA_VARIABLE>* ABA_MASTER::conPool_ [private] |
ABA_STANDARDPOOL<ABA_CONSTRAINT, ABA_VARIABLE>* ABA_MASTER::cutPool_ [private] |
ABA_STANDARDPOOL<ABA_VARIABLE, ABA_CONSTRAINT>* ABA_MASTER::varPool_ [private] |
double ABA_MASTER::primalBound_ [private] |
double ABA_MASTER::dualBound_ [private] |
double ABA_MASTER::rootDualBound_ [private] |
ABA_FIXCAND* ABA_MASTER::fixCand_ [private] |
bool ABA_MASTER::cutting_ [private] |
bool ABA_MASTER::pricing_ [private] |
bool ABA_MASTER::solveApprox_ [private] |
int ABA_MASTER::nSubSelected_ [private] |
VBCMODE ABA_MASTER::VbcLog_ [private] |
ostream* ABA_MASTER::treeStream_ [private] |
double ABA_MASTER::requiredGuarantee_ [private] |
int ABA_MASTER::maxLevel_ [private] |
ABA_STRING ABA_MASTER::maxCpuTime_ [private] |
ABA_STRING ABA_MASTER::maxCowTime_ [private] |
bool ABA_MASTER::objInteger_ [private] |
int ABA_MASTER::tailOffNLp_ [private] |
double ABA_MASTER::tailOffPercent_ [private] |
int ABA_MASTER::dbThreshold_ [private] |
int ABA_MASTER::minDormantRounds_ [private] |
OUTLEVEL ABA_MASTER::outLevel_ [private] |
OUTLEVEL ABA_MASTER::logLevel_ [private] |
PRIMALBOUNDMODE ABA_MASTER::pbMode_ [private] |
int ABA_MASTER::pricingFreq_ [private] |
int ABA_MASTER::skipFactor_ [private] |
SKIPPINGMODE ABA_MASTER::skippingMode_ [private] |
bool ABA_MASTER::fixSetByRedCost_ [private] |
bool ABA_MASTER::printLP_ [private] |
int ABA_MASTER::maxConAdd_ [private] |
int ABA_MASTER::maxConBuffered_ [private] |
int ABA_MASTER::maxVarAdd_ [private] |
int ABA_MASTER::maxVarBuffered_ [private] |
int ABA_MASTER::maxIterations_ [private] |
bool ABA_MASTER::eliminateFixedSet_ [private] |
bool ABA_MASTER::newRootReOptimize_ [private] |
ABA_STRING ABA_MASTER::optimumFileName_ [private] |
bool ABA_MASTER::showAverageCutDistance_ [private] |
CONELIMMODE ABA_MASTER::conElimMode_ [private] |
VARELIMMODE ABA_MASTER::varElimMode_ [private] |
double ABA_MASTER::conElimEps_ [private] |
double ABA_MASTER::varElimEps_ [private] |
int ABA_MASTER::conElimAge_ [private] |
int ABA_MASTER::varElimAge_ [private] |
STATUS ABA_MASTER::status_ [private] |
ABA_COWTIMER ABA_MASTER::totalCowTime_ [private] |
ABA_CPUTIMER ABA_MASTER::totalTime_ [private] |
ABA_CPUTIMER ABA_MASTER::lpTime_ [private] |
ABA_CPUTIMER ABA_MASTER::lpSolverTime_ [private] |
ABA_CPUTIMER ABA_MASTER::separationTime_ [private] |
ABA_CPUTIMER ABA_MASTER::improveTime_ [private] |
ABA_CPUTIMER ABA_MASTER::pricingTime_ [private] |
ABA_CPUTIMER ABA_MASTER::branchingTime_ [private] |
int ABA_MASTER::nSub_ [private] |
int ABA_MASTER::nLp_ [private] |
int ABA_MASTER::highestLevel_ [private] |
int ABA_MASTER::nFixed_ [private] |
int ABA_MASTER::nAddCons_ [private] |
int ABA_MASTER::nRemCons_ [private] |
int ABA_MASTER::nAddVars_ [private] |
int ABA_MASTER::nRemVars_ [private] |
int ABA_MASTER::nNewRoot_ [private] |