Minotaur 0.4.1
Docs for developers
NodeFullRelaxer.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 MINOTAURNODEFULLRELAXER_H
16#define MINOTAURNODEFULLRELAXER_H
17
18#include "Handler.h"
19#include "NodeRelaxer.h"
20
21namespace Minotaur {
22
32 public:
33
36
38 NodeFullRelaxer(EnvPtr env, HandlerVector handlers);
39
41 NodeFullRelaxer(EnvPtr env, EnginePtr e, HandlerVector handlers);
42
45
46 // Implement NodeRelaxer::CreateRootRelaxation()
48 bool &prune);
49
50 // Implement NodeRelaxer::CreateNodeRelaxation()
51 RelaxationPtr createNodeRelaxation(NodePtr node, bool dived, bool &prune);
52
53 // Implement NodeRelaxer::reset()
54 void reset(NodePtr node, bool diving);
55
60 void setEngine(EnginePtr e);
61
62 // get the relaxation pointer, rel_.
64
67
68 private:
70 EnvPtr env_;
71
76 RelaxationPtr rel_;
77
79 EnginePtr engine_;
80
82 HandlerVector handlers_;
83
88 double updateBoundsTol_;
89
92 bool isOriginalVariable_(ConstVariablePtr rv, ConstVariablePtr &ov);
93
103 bool strongBoundsTighten_(NodePtr node);
104
105 };
106
108}
109#endif
110
Define abstract base class for handlers of various kinds.
Define the NodeRelaxer class for creating relaxation for nodes in the branch-and-bound algorithm.
Definition: Engine.h:34
Definition: Environment.h:28
Definition: NodeFullRelaxer.h:31
void reset(NodePtr node, bool diving)
Definition: NodeFullRelaxer.cpp:169
RelaxationPtr createNodeRelaxation(NodePtr node, bool dived, bool &prune)
Definition: NodeFullRelaxer.cpp:118
~NodeFullRelaxer()
Destroy.
Definition: NodeFullRelaxer.cpp:62
void setEngine(EnginePtr e)
Definition: NodeFullRelaxer.cpp:111
RelaxationPtr getRelaxation()
Definition: NodeFullRelaxer.cpp:173
RelaxationPtr createRootRelaxation(NodePtr root, SolutionPool *sp, bool &prune)
Create the root node relaxation.
Definition: NodeFullRelaxer.cpp:72
void setRelaxation(RelaxationPtr rel)
Set your own relaxation pointer.
Definition: NodeFullRelaxer.cpp:179
Definition: NodeRelaxer.h:42
Definition: Node.h:54
Definition: Relaxation.h:53
Definition: SolutionPool.h:28
Definition: Variable.h:31
Definition: ActiveNodeStore.h:20

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