Minotaur 0.4.1
Docs for developers
Brancher.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
14#ifndef MINOTAURBRANCHER_H
15#define MINOTAURBRANCHER_H
16
17#include "Types.h"
18
19namespace Minotaur {
20
21 class Node;
22 class Relaxation;
23 class Solution;
24 class SolutionPool;
25 typedef Relaxation* RelaxationPtr;
26 typedef const Solution* ConstSolutionPtr;
27 typedef SolutionPool* SolutionPoolPtr;
28
33 class Brancher {
34
35 public:
37 Brancher();
38
40 virtual ~Brancher();
41
56 virtual Branches findBranches(RelaxationPtr rel, NodePtr node,
58 SolutionPoolPtr s_pool,
59 BrancherStatus & br_status,
60 ModVector &mods) = 0;
61
63 virtual std::string getName() const = 0;
64
73 virtual void updateAfterSolve(NodePtr node, ConstSolutionPtr sol);
74
76 virtual void writeStats(std::ostream &) const {};
77
78 protected:
81
82 };
83 typedef Brancher* BrancherPtr;
84
85}
86#endif
87
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
virtual void updateAfterSolve(NodePtr node, ConstSolutionPtr sol)
Update pseudo-costs after LP is solved.
Definition: Brancher.cpp:30
virtual void writeStats(std::ostream &) const
Write statistics to the given out stream.
Definition: Brancher.h:76
Brancher()
Default constructor.
Definition: Brancher.cpp:19
virtual ~Brancher()
Destroy.
Definition: Brancher.cpp:25
virtual std::string getName() const =0
Return the name of this brancher.
virtual Branches findBranches(RelaxationPtr rel, NodePtr node, ConstSolutionPtr sol, SolutionPoolPtr s_pool, BrancherStatus &br_status, ModVector &mods)=0
Find a branching candidate.
LoggerPtr logger_
Log manager.
Definition: Brancher.h:80
Definition: Logger.h:37
Definition: Node.h:54
Definition: Relaxation.h:53
Definition: SolutionPool.h:28
Definition: Solution.h:30
Definition: ActiveNodeStore.h:20
BrancherStatus
What can a brancher do to a node in branch-and-bound.
Definition: Types.h:193

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