idol
Home
Command-Line Interface
Installation
Basics
Tutorials
Input Format
Troubleshooting
C++ Library
Installation
Examples
API Reference
Troubleshooting
About
GitHub
Loading...
Searching...
No Matches
lib
include
idol
mixed-integer
optimizers
branch-and-bound
branching-rules
factories
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
Definition
PseudoCost.h:15
idol::VariableBranching::Strategy
Definition
VariableBranching.h:33
idol::VariableBranching
Definition
VariableBranching.h:18
Generated by
1.16.1