idol
A C++ Framework for Optimization
Loading...
Searching...
No Matches
BilevelBasedBranchAndBound.h
1
//
2
// Created by Henri on 03/02/2026.
3
//
4
5
#ifndef IDOL_NESTEDBRANCHANDCUT_H
6
#define IDOL_NESTEDBRANCHANDCUT_H
7
8
#include "idol/general/optimizers/OptimizerFactory.h"
9
#include "idol/robust/modeling/Description.h"
10
#include "idol/bilevel/modeling/Description.h"
11
12
namespace
idol::Robust {
13
class
BilevelBasedBranchAndBound;
14
}
15
16
class
idol::Robust::BilevelBasedBranchAndBound
:
public
OptimizerFactoryWithDefaultParameters
<BilevelBasedBranchAndBound> {
17
const
Bilevel::Description
& m_bilevel_description;
18
const
Robust::Description
& m_robust_description;
19
20
std::unique_ptr<OptimizerFactory> m_optimality_bilevel_optimizer;
21
std::unique_ptr<OptimizerFactory> m_feasibility_bilevel_optimizer;
22
std::optional<bool> m_with_first_stage_relaxation;
23
public
:
24
BilevelBasedBranchAndBound
(
const
Robust::Description
& t_robust_description,
25
const
Bilevel::Description
& t_bilevel_description);
26
27
BilevelBasedBranchAndBound
(
const
BilevelBasedBranchAndBound
& t_src);
28
29
Optimizer
*
operator()
(
const
Model
&t_model)
const override
;
30
31
[[nodiscard]]
OptimizerFactory
*
clone
()
const override
{
return
new
BilevelBasedBranchAndBound
(*
this
); }
32
33
BilevelBasedBranchAndBound
& with_optimality_bilevel_optimizer(
const
OptimizerFactory
& t_factory);
34
35
BilevelBasedBranchAndBound
& with_feasibility_bilevel_optimizer(
const
OptimizerFactory
& t_factory);
36
37
BilevelBasedBranchAndBound
& with_first_stage_relaxation(
bool
t_value);
38
39
};
40
41
#endif
//IDOL_NESTEDBRANCHANDCUT_H
idol::Bilevel::Description
Definition
Description.h:19
idol::Model
Definition
Model.h:43
idol::OptimizerFactoryWithDefaultParameters
Definition
OptimizerFactory.h:67
idol::OptimizerFactory
Definition
OptimizerFactory.h:27
idol::Optimizer
Definition
Optimizer.h:219
idol::Robust::BilevelBasedBranchAndBound
Definition
BilevelBasedBranchAndBound.h:16
idol::Robust::BilevelBasedBranchAndBound::operator()
Optimizer * operator()(const Model &t_model) const override
idol::Robust::BilevelBasedBranchAndBound::clone
OptimizerFactory * clone() const override
Definition
BilevelBasedBranchAndBound.h:31
idol::Robust::Description
Definition
Description.h:18
lib
include
idol
robust
optimizers
nested-branch-and-cut
BilevelBasedBranchAndBound.h
Generated by
1.9.8