Minotaur 0.4.1
Docs for developers
NodeProcessor.h
Go to the documentation of this file.
1//
2// Minotaur -- It's only 1/2 bull
3//
4// (C)opyright 2009 - 2025 The Minotaur Team.
5//
6
15#ifndef MINOTAURNODEPROCESSOR_H
16#define MINOTAURNODEPROCESSOR_H
17
18#include "Types.h"
19
20namespace Minotaur {
21
22 class Brancher;
23 class Relaxation;
24 class SolutionPool;
25 class WarmStart;
26 class CutManager;
27 typedef Brancher* BrancherPtr;
28 typedef Relaxation* RelaxationPtr;
29 typedef SolutionPool* SolutionPoolPtr;
30 typedef WarmStart* WarmStartPtr;
31 typedef CutManager* CutManagerPtr;
50 public:
53
55 virtual ~NodeProcessor() { }
56
58 virtual void setBrancher(BrancherPtr brancher);
59
61 virtual void processRootNode(NodePtr node, RelaxationPtr rel,
62 SolutionPoolPtr s_pool);
63
68 virtual void process(NodePtr node, RelaxationPtr rel,
69 SolutionPoolPtr s_pool) = 0;
70
72 virtual Branches getBranches() = 0;
73
78 virtual bool foundNewSolution() = 0;
79
85
87 virtual BrancherPtr getBrancher() { return brancher_;};
88
90 virtual void writeStats(std::ostream &) const {};
91
93 virtual void writeStats() const {};
94
95 virtual void setCutManager(CutManager *) {};
96 protected:
99 };
100
102
103}
104#endif
105
Declare important 'types' used in Minotaur.
A brancher is used to find suitable branches for a given node. e.g. LexicoBrancher....
Definition: Brancher.h:33
Abstract base class to manage cuts in the relaxation.
Definition: CutManager.h:42
Definition: NodeProcessor.h:49
NodeProcessor()
Default constructor.
Definition: NodeProcessor.h:52
virtual void processRootNode(NodePtr node, RelaxationPtr rel, SolutionPoolPtr s_pool)
Process the root node.
Definition: NodeProcessor.cpp:25
BrancherPtr brancher_
What brancher is used for this processor.
Definition: NodeProcessor.h:98
virtual bool foundNewSolution()=0
virtual Branches getBranches()=0
Find branches that will be used to branch at this node.
virtual ~NodeProcessor()
Destroy.
Definition: NodeProcessor.h:55
virtual void setBrancher(BrancherPtr brancher)
Set the brancher that will be used with this node processor.
Definition: NodeProcessor.cpp:19
virtual void process(NodePtr node, RelaxationPtr rel, SolutionPoolPtr s_pool)=0
virtual BrancherPtr getBrancher()
Return brancher.
Definition: NodeProcessor.h:87
virtual WarmStartPtr getWarmStart()=0
virtual void writeStats() const
Write statistics to our own logger.
Definition: NodeProcessor.h:93
virtual void writeStats(std::ostream &) const
Write statistics to a given output stream.
Definition: NodeProcessor.h:90
Definition: Node.h:54
Definition: Relaxation.h:53
Definition: SolutionPool.h:28
Definition: WarmStart.h:45
Definition: ActiveNodeStore.h:20

Minotaur source code documented by Doxygen 1.9.4 on Thu Apr 24 2025