idol
A C++ Framework for Optimization
Loading...
Searching...
No Matches
PseudoCost.h
1
//
2
// Created by henri on 18.10.23.
3
//
4
5
#ifndef IDOL_PSEUDOCOST_H
6
#define IDOL_PSEUDOCOST_H
7
8
#include "VariableBranching.h"
9
#include "idol/mixed-integer/optimizers/branch-and-bound/branching-rules/impls/PseudoCost.h"
10
11
namespace
idol {
12
class
PseudoCost;
13
}
14
15
class
idol::PseudoCost
:
public
idol::VariableBranching
{
16
public
:
17
PseudoCost
() =
default
;
18
19
template
<
class
IteratorT>
20
PseudoCost
(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
PseudoCost
& 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::PseudoCost<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
#endif
//IDOL_PSEUDOCOST_H
idol::BranchingRules::PseudoCost
Definition
PseudoCost.h:17
idol::BranchingRules::VariableBranching
Definition
VariableBranching.h:19
idol::Optimizers::BranchAndBound
Definition
Optimizers_BranchAndBound.h:30
idol::PseudoCost::Strategy
Definition
PseudoCost.h:23
idol::PseudoCost
Definition
PseudoCost.h:15
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
PseudoCost.h
Generated by
1.9.8