13#ifndef MINOTAURPARBNDPROCESSOR_H
14#define MINOTAURPARBNDPROCESSOR_H
23 typedef Engine* EnginePtr;
24 typedef const Solution* ConstSolutionPtr;
112 static const std::string
me_;
Define the NodeProcessor class for processing nodes in the branch-and-bound algorithm.
Declare important 'types' used in Minotaur.
Definition Environment.h:28
Definition NodeProcessor.h:49
Simple node-processor for branch-and-bound.
Definition ParBndProcessor.h:42
UInt numSolutions_
How many new solutions were found by the processor.
Definition ParBndProcessor.h:115
ParBndProcessor()
Default constructor.
Definition ParBndProcessor.cpp:35
WarmStartPtr getWarmStart()
Definition ParBndProcessor.cpp:100
~ParBndProcessor()
Destroy.
Definition ParBndProcessor.cpp:75
ParBPStats stats_
Statistics.
Definition ParBndProcessor.h:121
bool foundNewSolution()
Definition ParBndProcessor.cpp:81
Branches getBranches()
Find branches that will be used to branch at this node.
Definition ParBndProcessor.cpp:87
virtual bool isFeasible_(NodePtr node, ConstSolutionPtr sol, SolutionPoolPtr s_pool, bool &should_prune)
Definition ParBndProcessor.cpp:106
WarmStartPtr ws_
Warm-start information for start processing the children.
Definition ParBndProcessor.h:124
virtual void solveRelaxation_()
Solve the relaxation.
Definition ParBndProcessor.cpp:368
LoggerPtr logger_
Log.
Definition ParBndProcessor.h:109
bool contOnErr_
Definition ParBndProcessor.h:94
EnginePtr engine_
Engine used to process the relaxation.
Definition ParBndProcessor.h:100
void writeStats() const
Write statistics to our own logger.
Definition ParBndProcessor.cpp:393
HandlerVector handlers_
All the handlers that are used for this processor.
Definition ParBndProcessor.h:106
RelaxationPtr relaxation_
Relaxation that is processed by this processor.
Definition ParBndProcessor.h:118
virtual bool shouldPrune_(NodePtr node, double solval, SolutionPoolPtr s_pool)
Definition ParBndProcessor.cpp:251
static const std::string me_
For logging.
Definition ParBndProcessor.h:112
double cutOff_
If lb is greater than cutOff_, we can prune this node.
Definition ParBndProcessor.h:97
void process(NodePtr node, RelaxationPtr rel, SolutionPoolPtr s_pool)
Definition ParBndProcessor.cpp:132
EngineStatus engineStatus_
Status of the engine.
Definition ParBndProcessor.h:103
Branches branches_
Branches found by this processor for this node.
Definition ParBndProcessor.h:88
Implement a generic parallel branch-and-bound algorithm on a multicore cpu.
Definition ParBranchAndBound.h:48
Definition Relaxation.h:53
Definition SolutionPool.h:28
Definition WarmStart.h:45
Definition ActiveNodeStore.h:20
unsigned int UInt
Unsigned integer.
Definition Types.h:30
EngineStatus
Different status that an external engine may report.
Definition Types.h:176
Definition ParBndProcessor.h:26
UInt proc
Number of times problem ocurred in solving.
Definition ParBndProcessor.h:31
UInt ub
Number of nodes processed.
Definition ParBndProcessor.h:32
UInt opt
Number of times relaxation became infeasible.
Definition ParBndProcessor.h:29
UInt prob
Number of times relaxation gave optimal feasible solution.
Definition ParBndProcessor.h:30
UInt inf
Number of times relaxation became infeasible.
Definition ParBndProcessor.h:28