idol
Home
Command-Line Interface
Installation
Tutorials
Troubleshooting
C++ Library
Installation
Tutorials
Examples
API Reference
Troubleshooting
About
GitHub
Loading...
Searching...
No Matches
lib
include
idol
bilevel
optimizers
PADM
PADM.h
1
//
2
// Created by Henri on 22/04/2026.
3
//
4
5
#ifndef IDOL_PADM_H
6
#define IDOL_PADM_H
7
8
#include "idol/general/optimizers/OptimizerFactory.h"
9
#include "idol/bilevel/modeling/Description.h"
10
#include "idol/bilevel/optimizers/BilevelOptimizerInterface.h"
11
12
namespace
idol::Bilevel {
13
class
PADM
;
14
}
15
16
class
idol::Bilevel::PADM
:
public
OptimizerFactoryWithDefaultParameters
<PADM>,
public
Bilevel::OptimizerInterface
{
17
const
Description
* m_description =
nullptr
;
18
std::unique_ptr<OptimizerFactory> m_single_level_optimizer;
19
protected
:
20
Optimizer
*create(
const
Model
&t_model)
const override
;
21
public
:
22
PADM() =
default
;
23
24
explicit
PADM(
const
Bilevel::Description
& t_description);
25
26
PADM(
const
PADM& t_src);
27
28
void
set_bilevel_description(
const
Description
&t_bilevel_description)
override
;
29
30
[[nodiscard]]
OptimizerFactory
*clone()
const override
;
31
32
PADM& with_single_level_optimizer(
const
OptimizerFactory
& t_deterministic_optimizer);
33
34
PADM& operator+=(
const
OptimizerFactory
& t_optimizer) {
return
with_single_level_optimizer(t_optimizer); }
35
};
36
37
#endif
//IDOL_PADM_H
idol::Bilevel::Description
Definition
Description.h:19
idol::Bilevel::OptimizerInterface
Definition
BilevelOptimizerInterface.h:13
idol::Bilevel::PADM
Definition
PADM.h:16
idol::Model
Definition
Model.h:43
idol::OptimizerFactoryWithDefaultParameters
Definition
OptimizerFactory.h:68
idol::OptimizerFactory
Definition
OptimizerFactory.h:21
idol::Optimizer
Definition
Optimizer.h:220
Generated by
1.16.1