idol
A C++ Framework for Optimization
Loading...
Searching...
No Matches
BranchAndCut.h
1
//
2
// Created by henri on 11.04.25.
3
//
4
5
#ifndef IDOL_BILEVEL_BRANCHANDCUT_H
6
#define IDOL_BILEVEL_BRANCHANDCUT_H
7
8
#include "idol/general/optimizers/OptimizerFactory.h"
9
#include "idol/bilevel/optimizers/BilevelOptimizerInterface.h"
10
11
namespace
idol::Bilevel {
12
class
BranchAndCut;
13
}
14
15
class
idol::Bilevel::BranchAndCut
:
public
OptimizerFactoryWithDefaultParameters
<BranchAndCut>,
public
Bilevel::OptimizerInterface
{
16
const
Bilevel::Description
* m_description =
nullptr
;
17
std::unique_ptr<OptimizerFactory> m_optimizer_for_sub_problems;
18
public
:
19
BranchAndCut
() =
default
;
20
21
explicit
BranchAndCut
(
const
Bilevel::Description
& t_description);
22
23
BranchAndCut
(
const
BranchAndCut
& t_src);
24
BranchAndCut
(
BranchAndCut
&&)
noexcept
=
delete
;
25
26
BranchAndCut
& operator=(
const
BranchAndCut
&) =
delete
;
27
BranchAndCut
& operator=(
BranchAndCut
&&)
noexcept
=
delete
;
28
29
Optimizer
*
operator()
(
const
Model
&t_model)
const override
;
30
31
BranchAndCut
& with_sub_problem_optimizer(
const
OptimizerFactory
& t_optimizer);
32
33
void
set_bilevel_description(
const
Description
&t_bilevel_description)
override
;
34
35
[[nodiscard]]
Bilevel::BranchAndCut
*
clone
()
const override
;
36
};
37
38
#endif
//IDOL_BILEVEL_BRANCHANDCUT_H
idol::Bilevel::BranchAndCut
Definition
BranchAndCut.h:15
idol::Bilevel::BranchAndCut::operator()
Optimizer * operator()(const Model &t_model) const override
idol::Bilevel::BranchAndCut::clone
Bilevel::BranchAndCut * clone() const override
idol::Bilevel::Description
Definition
Description.h:19
idol::Bilevel::OptimizerInterface
Definition
BilevelOptimizerInterface.h:13
idol::Model
Definition
Model.h:43
idol::OptimizerFactoryWithDefaultParameters
Definition
OptimizerFactory.h:66
idol::OptimizerFactory
Definition
OptimizerFactory.h:26
idol::Optimizer
Definition
Optimizer.h:219
lib
include
idol
bilevel
optimizers
BranchAndCut
BranchAndCut.h
Generated by
1.9.8