Clp
1.17.11
Toggle main menu visibility
Loading...
Searching...
No Matches
Clp
src
ClpEventHandler.hpp
Go to the documentation of this file.
1
/* $Id$ */
2
// Copyright (C) 2004, International Business Machines
3
// Corporation and others. All Rights Reserved.
4
// This code is licensed under the terms of the Eclipse Public License (EPL).
5
6
#ifndef ClpEventHandler_H
7
#define ClpEventHandler_H
8
9
#include "
ClpSimplex.hpp
"
26
27
class
ClpEventHandler
{
28
29
public
:
34
enum
Event
{
35
endOfIteration
= 100,
// used to set secondary status
36
endOfFactorization
,
// after gutsOfSolution etc
37
endOfValuesPass
,
38
node
,
// for Cbc
39
treeStatus
,
// for Cbc
40
solution
,
// for Cbc
41
theta
,
// hit in parametrics
42
pivotRow
,
// used to choose pivot row
43
presolveStart
,
// ClpSolve presolve start
44
presolveSize
,
// sees if ClpSolve presolve too big or too small
45
presolveInfeasible
,
// ClpSolve presolve infeasible
46
presolveBeforeSolve
,
// ClpSolve presolve before solve
47
presolveAfterFirstSolve
,
// ClpSolve presolve after solve
48
presolveAfterSolve
,
// ClpSolve presolve after solve
49
presolveEnd
,
// ClpSolve presolve end
50
goodFactorization
,
// before gutsOfSolution
51
complicatedPivotIn
,
// in modifyCoefficients
52
noCandidateInPrimal
,
// tentative end
53
looksEndInPrimal
,
// About to declare victory (or defeat)
54
endInPrimal
,
// Victory (or defeat)
55
beforeStatusOfProblemInPrimal
,
56
startOfStatusOfProblemInPrimal
,
57
complicatedPivotOut
,
// in modifyCoefficients
58
noCandidateInDual
,
// tentative end
59
looksEndInDual
,
// About to declare victory (or defeat)
60
endInDual
,
// Victory (or defeat)
61
beforeStatusOfProblemInDual
,
62
startOfStatusOfProblemInDual
,
63
startOfIterationInDual
,
64
updateDualsInDual
,
65
beforeDeleteRim
,
66
endOfCreateRim
,
67
slightlyInfeasible
,
68
modifyMatrixInMiniPresolve
,
69
moreMiniPresolve
,
70
modifyMatrixInMiniPostsolve
,
71
beforeChooseIncoming
,
72
afterChooseIncoming
,
73
beforeCreateNonLinear
,
74
afterCreateNonLinear
,
75
startOfCrossover
,
// in Idiot
76
noTheta
// At end (because no pivot)
77
};
78
83
88
virtual
int
event
(
Event
whichEvent);
92
virtual
int
eventWithInfo
(
Event
whichEvent,
void
*info);
94
96
98
99
ClpEventHandler
(
ClpSimplex
*model = NULL);
101
virtual
~ClpEventHandler
();
102
// Copy
103
ClpEventHandler
(
const
ClpEventHandler
&);
104
// Assignment
105
ClpEventHandler
&
operator=
(
const
ClpEventHandler
&);
107
virtual
ClpEventHandler
*
clone
()
const
;
108
110
112
114
115
void
setSimplex
(
ClpSimplex
*model);
117
inline
ClpSimplex
*
simplex
()
const
118
{
119
return
model_
;
120
}
121
122
123
protected
:
127
128
ClpSimplex
*
model_
;
130
};
131
137
138
class
ClpDisasterHandler
{
139
140
public
:
144
145
virtual
void
intoSimplex
() = 0;
147
virtual
bool
check
()
const
= 0;
149
virtual
void
saveInfo
() = 0;
151
virtual
int
typeOfDisaster
();
153
155
157
158
ClpDisasterHandler
(
ClpSimplex
*model = NULL);
160
virtual
~ClpDisasterHandler
();
161
// Copy
162
ClpDisasterHandler
(
const
ClpDisasterHandler
&);
163
// Assignment
164
ClpDisasterHandler
&
operator=
(
const
ClpDisasterHandler
&);
166
virtual
ClpDisasterHandler
*
clone
()
const
= 0;
167
169
171
173
174
void
setSimplex
(
ClpSimplex
*model);
176
inline
ClpSimplex
*
simplex
()
const
177
{
178
return
model_
;
179
}
180
181
182
protected
:
186
187
ClpSimplex
*
model_
;
189
};
190
#endif
191
192
/* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
193
*/
ClpSimplex.hpp
ClpDisasterHandler::clone
virtual ClpDisasterHandler * clone() const =0
Clone.
ClpDisasterHandler::~ClpDisasterHandler
virtual ~ClpDisasterHandler()
Destructor.
ClpDisasterHandler::intoSimplex
virtual void intoSimplex()=0
Into simplex.
ClpDisasterHandler::ClpDisasterHandler
ClpDisasterHandler(const ClpDisasterHandler &)
ClpDisasterHandler::ClpDisasterHandler
ClpDisasterHandler(ClpSimplex *model=NULL)
Default constructor.
ClpDisasterHandler::operator=
ClpDisasterHandler & operator=(const ClpDisasterHandler &)
ClpDisasterHandler::check
virtual bool check() const =0
Checks if disaster.
ClpDisasterHandler::model_
ClpSimplex * model_
Pointer to simplex.
Definition
ClpEventHandler.hpp:187
ClpDisasterHandler::setSimplex
void setSimplex(ClpSimplex *model)
set model.
ClpDisasterHandler::saveInfo
virtual void saveInfo()=0
saves information for next attempt
ClpDisasterHandler::simplex
ClpSimplex * simplex() const
Get model.
Definition
ClpEventHandler.hpp:176
ClpDisasterHandler::typeOfDisaster
virtual int typeOfDisaster()
Type of disaster 0 can fix, 1 abort.
ClpEventHandler::event
virtual int event(Event whichEvent)
This can do whatever it likes.
ClpEventHandler::clone
virtual ClpEventHandler * clone() const
Clone.
ClpEventHandler::model_
ClpSimplex * model_
Pointer to simplex.
Definition
ClpEventHandler.hpp:128
ClpEventHandler::eventWithInfo
virtual int eventWithInfo(Event whichEvent, void *info)
This can do whatever it likes.
ClpEventHandler::setSimplex
void setSimplex(ClpSimplex *model)
set model.
ClpEventHandler::simplex
ClpSimplex * simplex() const
Get model.
Definition
ClpEventHandler.hpp:117
ClpEventHandler::operator=
ClpEventHandler & operator=(const ClpEventHandler &)
ClpEventHandler::~ClpEventHandler
virtual ~ClpEventHandler()
Destructor.
ClpEventHandler::ClpEventHandler
ClpEventHandler(ClpSimplex *model=NULL)
Default constructor.
ClpEventHandler::Event
Event
enums for what sort of event.
Definition
ClpEventHandler.hpp:34
ClpEventHandler::beforeStatusOfProblemInDual
@ beforeStatusOfProblemInDual
Definition
ClpEventHandler.hpp:61
ClpEventHandler::noTheta
@ noTheta
Definition
ClpEventHandler.hpp:76
ClpEventHandler::moreMiniPresolve
@ moreMiniPresolve
Definition
ClpEventHandler.hpp:69
ClpEventHandler::presolveEnd
@ presolveEnd
Definition
ClpEventHandler.hpp:49
ClpEventHandler::endOfCreateRim
@ endOfCreateRim
Definition
ClpEventHandler.hpp:66
ClpEventHandler::presolveBeforeSolve
@ presolveBeforeSolve
Definition
ClpEventHandler.hpp:46
ClpEventHandler::afterCreateNonLinear
@ afterCreateNonLinear
Definition
ClpEventHandler.hpp:74
ClpEventHandler::goodFactorization
@ goodFactorization
Definition
ClpEventHandler.hpp:50
ClpEventHandler::startOfStatusOfProblemInDual
@ startOfStatusOfProblemInDual
Definition
ClpEventHandler.hpp:62
ClpEventHandler::beforeCreateNonLinear
@ beforeCreateNonLinear
Definition
ClpEventHandler.hpp:73
ClpEventHandler::presolveInfeasible
@ presolveInfeasible
Definition
ClpEventHandler.hpp:45
ClpEventHandler::beforeStatusOfProblemInPrimal
@ beforeStatusOfProblemInPrimal
Definition
ClpEventHandler.hpp:55
ClpEventHandler::solution
@ solution
Definition
ClpEventHandler.hpp:40
ClpEventHandler::beforeDeleteRim
@ beforeDeleteRim
Definition
ClpEventHandler.hpp:65
ClpEventHandler::endInDual
@ endInDual
Definition
ClpEventHandler.hpp:60
ClpEventHandler::modifyMatrixInMiniPostsolve
@ modifyMatrixInMiniPostsolve
Definition
ClpEventHandler.hpp:70
ClpEventHandler::pivotRow
@ pivotRow
Definition
ClpEventHandler.hpp:42
ClpEventHandler::complicatedPivotOut
@ complicatedPivotOut
Definition
ClpEventHandler.hpp:57
ClpEventHandler::theta
@ theta
Definition
ClpEventHandler.hpp:41
ClpEventHandler::endOfFactorization
@ endOfFactorization
Definition
ClpEventHandler.hpp:36
ClpEventHandler::presolveSize
@ presolveSize
Definition
ClpEventHandler.hpp:44
ClpEventHandler::startOfCrossover
@ startOfCrossover
Definition
ClpEventHandler.hpp:75
ClpEventHandler::looksEndInDual
@ looksEndInDual
Definition
ClpEventHandler.hpp:59
ClpEventHandler::noCandidateInPrimal
@ noCandidateInPrimal
Definition
ClpEventHandler.hpp:52
ClpEventHandler::updateDualsInDual
@ updateDualsInDual
Definition
ClpEventHandler.hpp:64
ClpEventHandler::node
@ node
Definition
ClpEventHandler.hpp:38
ClpEventHandler::noCandidateInDual
@ noCandidateInDual
Definition
ClpEventHandler.hpp:58
ClpEventHandler::looksEndInPrimal
@ looksEndInPrimal
Definition
ClpEventHandler.hpp:53
ClpEventHandler::presolveAfterSolve
@ presolveAfterSolve
Definition
ClpEventHandler.hpp:48
ClpEventHandler::treeStatus
@ treeStatus
Definition
ClpEventHandler.hpp:39
ClpEventHandler::afterChooseIncoming
@ afterChooseIncoming
Definition
ClpEventHandler.hpp:72
ClpEventHandler::startOfStatusOfProblemInPrimal
@ startOfStatusOfProblemInPrimal
Definition
ClpEventHandler.hpp:56
ClpEventHandler::slightlyInfeasible
@ slightlyInfeasible
Definition
ClpEventHandler.hpp:67
ClpEventHandler::presolveStart
@ presolveStart
Definition
ClpEventHandler.hpp:43
ClpEventHandler::modifyMatrixInMiniPresolve
@ modifyMatrixInMiniPresolve
Definition
ClpEventHandler.hpp:68
ClpEventHandler::presolveAfterFirstSolve
@ presolveAfterFirstSolve
Definition
ClpEventHandler.hpp:47
ClpEventHandler::endInPrimal
@ endInPrimal
Definition
ClpEventHandler.hpp:54
ClpEventHandler::endOfValuesPass
@ endOfValuesPass
Definition
ClpEventHandler.hpp:37
ClpEventHandler::beforeChooseIncoming
@ beforeChooseIncoming
Definition
ClpEventHandler.hpp:71
ClpEventHandler::complicatedPivotIn
@ complicatedPivotIn
Definition
ClpEventHandler.hpp:51
ClpEventHandler::startOfIterationInDual
@ startOfIterationInDual
Definition
ClpEventHandler.hpp:63
ClpEventHandler::endOfIteration
@ endOfIteration
Definition
ClpEventHandler.hpp:35
ClpEventHandler::ClpEventHandler
ClpEventHandler(const ClpEventHandler &)
ClpSimplex
This solves LPs using the simplex method.
Definition
ClpSimplex.hpp:106
Generated by
1.17.0