idol
A C++ Framework for Optimization
Loading...
Searching...
No Matches
Diver.h
1//
2// Created by henri on 17.10.23.
3//
4
5#ifndef IDOL_DIVER_H
6#define IDOL_DIVER_H
7
8#include "VariableBranching.h"
9#include "idol/mixed-integer/optimizers/branch-and-bound/branching-rules/impls/Diver.h"
10
11namespace idol {
12 template<class BranchingRuleT> class Diver;
13}
14
15template<class BranchingRuleT>
17public:
18 Diver() = default;
19
20 template<class IteratorT>
21 Diver(IteratorT t_begin, IteratorT t_end) : idol::VariableBranching(t_begin, t_end) {}
22
23 template<class NodeInfoT>
24 class Strategy : public VariableBranching::Strategy<NodeInfoT> {
25 public:
26 Strategy() = default;
27
28 explicit Strategy(const Diver& t_parent) : VariableBranching::Strategy<NodeInfoT>(t_parent) {}
29
31 operator()(const Optimizers::BranchAndBound<NodeInfoT> &t_parent) const override {
33 }
34
35 VariableBranching::Strategy<NodeInfoT> *clone() const override {
36 return new Strategy(*this);
37 }
38 };
39
40};
41
42#endif //IDOL_DIVER_H