Bonmin
1.8.9
Toggle main menu visibility
Loading...
Searching...
No Matches
src
CbcBonmin
Heuristics
BonLocalSolverBasedHeuristic.hpp
Go to the documentation of this file.
1
// (C) Copyright CNRS
2
// This code is published under the Eclipse Public License.
3
//
4
// Authors :
5
// Pierre Bonami, LIF Université de la Méditérannée-CNRS
6
//
7
// Date : 06/18/2008
8
9
#ifndef BonLocalSolverBasedHeuristic_H
10
#define BonLocalSolverBasedHeuristic_H
11
#include "
BonBonminSetup.hpp
"
12
#include "CbcHeuristic.hpp"
13
14
namespace
Bonmin
{
15
class
LocalSolverBasedHeuristic
:
public
CbcHeuristic {
16
public
:
18
LocalSolverBasedHeuristic
();
19
21
LocalSolverBasedHeuristic
(
BonminSetup
* setup);
22
24
LocalSolverBasedHeuristic
(
const
LocalSolverBasedHeuristic
& other);
25
27
~LocalSolverBasedHeuristic
();
28
30
virtual
CbcHeuristic *
clone
()
const
= 0;
31
33
LocalSolverBasedHeuristic
&
operator=
(
const
LocalSolverBasedHeuristic
& rhs);
34
35
#if 0
37
virtual
void
setModel(CbcModel * model){
throw
-1;}
38
#endif
40
virtual
void
resetModel
(CbcModel * model){
41
setModel(model);
42
}
43
45
void
setSetup
(
BonminSetup
* setup){
46
setup_
= setup;
47
Initialize
(
setup_
->options());
48
}
49
50
virtual
int
solution
(
double
& objectiveValue,
51
double
* newSolution)=0;
52
54
virtual
int
solution
(
double
& objectiveValue,
55
double
* newSolution,
56
OsiCuts
& cs) {
return
0;}
57
58
60
int
doLocalSearch
(
OsiTMINLPInterface
* solver,
61
double
*
solution
,
62
double
& solValue,
63
double
cutoff, std::string prefix =
"local_solver."
)
const
;
64
66
static
void
registerOptions
(
Ipopt::SmartPtr<Bonmin::RegisteredOptions>
roptions);
67
69
virtual
void
setupDefaults
(
Ipopt::SmartPtr<Ipopt::OptionsList>
options);
70
72
void
Initialize
(
Ipopt::SmartPtr<Ipopt::OptionsList>
options);
73
protected
:
75
BonminSetup
*
setup_
;
76
77
static
void
changeIfNotSet
(
Ipopt::SmartPtr<Ipopt::OptionsList>
options,
78
std::string prefix,
79
const
std::string &option,
80
const
std::string &value);
81
82
static
void
changeIfNotSet
(
Ipopt::SmartPtr<Ipopt::OptionsList>
options,
83
std::string prefix,
84
const
std::string &option,
85
const
double
&value);
86
87
static
void
changeIfNotSet
(
Ipopt::SmartPtr<Ipopt::OptionsList>
options,
88
std::string prefix,
89
const
std::string &option,
90
const
int
&value);
91
private
:
93
double
time_limit_;
95
int
max_number_nodes_;
97
int
max_number_solutions_;
98
};
99
}
100
101
#endif
102
BonBonminSetup.hpp
Bonmin::BonminSetup
Definition
BonBonminSetup.hpp:26
Bonmin::LocalSolverBasedHeuristic::registerOptions
static void registerOptions(Ipopt::SmartPtr< Bonmin::RegisteredOptions > roptions)
Register the options common to all local search based heuristics.
Bonmin::LocalSolverBasedHeuristic::operator=
LocalSolverBasedHeuristic & operator=(const LocalSolverBasedHeuristic &rhs)
Assignment operator.
Bonmin::LocalSolverBasedHeuristic::changeIfNotSet
static void changeIfNotSet(Ipopt::SmartPtr< Ipopt::OptionsList > options, std::string prefix, const std::string &option, const double &value)
Bonmin::LocalSolverBasedHeuristic::changeIfNotSet
static void changeIfNotSet(Ipopt::SmartPtr< Ipopt::OptionsList > options, std::string prefix, const std::string &option, const int &value)
Bonmin::LocalSolverBasedHeuristic::solution
virtual int solution(double &objectiveValue, double *newSolution)=0
Performs heuristic.
Bonmin::LocalSolverBasedHeuristic::Initialize
void Initialize(Ipopt::SmartPtr< Ipopt::OptionsList > options)
Initiaize using passed options.
Bonmin::LocalSolverBasedHeuristic::LocalSolverBasedHeuristic
LocalSolverBasedHeuristic(const LocalSolverBasedHeuristic &other)
Copy constructor.
Bonmin::LocalSolverBasedHeuristic::setupDefaults
virtual void setupDefaults(Ipopt::SmartPtr< Ipopt::OptionsList > options)
Setup the defaults.
Bonmin::LocalSolverBasedHeuristic::setSetup
void setSetup(BonminSetup *setup)
Change setup used for heuristic.
Definition
BonLocalSolverBasedHeuristic.hpp:45
Bonmin::LocalSolverBasedHeuristic::clone
virtual CbcHeuristic * clone() const =0
Virtual copy constructor.
Bonmin::LocalSolverBasedHeuristic::doLocalSearch
int doLocalSearch(OsiTMINLPInterface *solver, double *solution, double &solValue, double cutoff, std::string prefix="local_solver.") const
Do a local search based on setup and passed solver.
Bonmin::LocalSolverBasedHeuristic::~LocalSolverBasedHeuristic
~LocalSolverBasedHeuristic()
Destructor.
Bonmin::LocalSolverBasedHeuristic::setup_
BonminSetup * setup_
Setup to use for local searches (will make copies).
Definition
BonLocalSolverBasedHeuristic.hpp:75
Bonmin::LocalSolverBasedHeuristic::solution
virtual int solution(double &objectiveValue, double *newSolution, OsiCuts &cs)
Performs heuristic which adds cuts.
Definition
BonLocalSolverBasedHeuristic.hpp:54
Bonmin::LocalSolverBasedHeuristic::changeIfNotSet
static void changeIfNotSet(Ipopt::SmartPtr< Ipopt::OptionsList > options, std::string prefix, const std::string &option, const std::string &value)
Bonmin::LocalSolverBasedHeuristic::LocalSolverBasedHeuristic
LocalSolverBasedHeuristic()
Default constructor.
Bonmin::LocalSolverBasedHeuristic::resetModel
virtual void resetModel(CbcModel *model)
Resets stuff if model changes.
Definition
BonLocalSolverBasedHeuristic.hpp:40
Bonmin::LocalSolverBasedHeuristic::LocalSolverBasedHeuristic
LocalSolverBasedHeuristic(BonminSetup *setup)
Constructor with setup.
Bonmin::OsiTMINLPInterface
This is class provides an Osi interface for a Mixed Integer Linear Program expressed as a TMINLP (so ...
Definition
BonOsiTMINLPInterface.hpp:49
Ipopt::SmartPtr
OsiCuts
Bonmin
(C) Copyright International Business Machines Corporation 2007
Definition
BonAmplSetup.hpp:16
Generated by
1.17.0