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: Solution.h:30
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