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