Clp 1.16.9
Loading...
Searching...
No Matches
ClpEventHandler.hpp
Go to the documentation of this file.
1/* $Id: ClpEventHandler.hpp 2156 2015-08-07 14:51:42Z forrest $ */
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"
28
29public:
34 enum Event {
35 endOfIteration = 100, // used to set secondary status
36 endOfFactorization, // after gutsOfSolution etc
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)
57 complicatedPivotOut, // in modifyCoefficients
58 noCandidateInDual, // tentative end
59 looksEndInDual, // About to declare victory (or defeat)
60 endInDual, // Victory (or defeat)
70 startOfCrossover, // in Idiot
71 noTheta // At end (because no pivot)
72 };
83 virtual int event(Event whichEvent);
87 virtual int eventWithInfo(Event whichEvent, void * info) ;
89
90
95 ClpEventHandler(ClpSimplex * model = NULL);
98 // Copy
100 // Assignment
103 virtual ClpEventHandler * clone() const;
104
106
111 void setSimplex(ClpSimplex * model);
113 inline ClpSimplex * simplex() const {
114 return model_;
115 }
117
118
119protected:
126};
135
136public:
141 virtual void intoSimplex() = 0;
143 virtual bool check() const = 0;
145 virtual void saveInfo() = 0;
147 virtual int typeOfDisaster();
149
150
158 // Copy
160 // Assignment
163 virtual ClpDisasterHandler * clone() const = 0;
164
166
171 void setSimplex(ClpSimplex * model);
173 inline ClpSimplex * simplex() const {
174 return model_;
175 }
177
178
179protected:
186};
187#endif
Base class for Clp disaster handling.
virtual ClpDisasterHandler * clone() const =0
Clone.
virtual ~ClpDisasterHandler()
Destructor.
virtual void intoSimplex()=0
Into simplex.
ClpDisasterHandler(const ClpDisasterHandler &)
ClpDisasterHandler(ClpSimplex *model=NULL)
Default constructor.
ClpDisasterHandler & operator=(const ClpDisasterHandler &)
virtual bool check() const =0
Checks if disaster.
ClpSimplex * model_
Pointer to simplex.
void setSimplex(ClpSimplex *model)
set model.
virtual void saveInfo()=0
saves information for next attempt
ClpSimplex * simplex() const
Get model.
virtual int typeOfDisaster()
Type of disaster 0 can fix, 1 abort.
Base class for Clp event handling.
virtual int event(Event whichEvent)
This can do whatever it likes.
virtual ClpEventHandler * clone() const
Clone.
ClpSimplex * model_
Pointer to simplex.
virtual int eventWithInfo(Event whichEvent, void *info)
This can do whatever it likes.
void setSimplex(ClpSimplex *model)
set model.
ClpSimplex * simplex() const
Get model.
ClpEventHandler & operator=(const ClpEventHandler &)
virtual ~ClpEventHandler()
Destructor.
ClpEventHandler(ClpSimplex *model=NULL)
Default constructor.
Event
enums for what sort of event.
ClpEventHandler(const ClpEventHandler &)
This solves LPs using the simplex method.
Definition: ClpSimplex.hpp:70