14 #define OsiSolverInterface ClpSimplex 16 #include "OsiSolverInterface.hpp" 17 typedef int CoinBigIndex;
19 class CoinMessageHandler;
74 void crash(
int numberPass, CoinMessageHandler *handler,
75 const CoinMessages *messages,
bool doCrossover =
true);
85 void crossOver(
int mode);
120 smallInfeas_ = value;
127 return reasonableInfeas_;
131 reasonableInfeas_ = value;
137 return exitFeasibility_;
141 exitFeasibility_ = value;
147 return majorIterations_;
151 majorIterations_ = value;
203 lightWeight_ = value;
217 return dropEnoughFeasibility_;
221 dropEnoughFeasibility_ = value;
226 return dropEnoughWeighted_;
230 dropEnoughWeighted_ = value;
244 void solve2(CoinMessageHandler *handler,
const CoinMessages *messages);
248 int nrows,
int ncols,
double *rowsol,
double *colsol,
249 double *pi,
double *djs,
const double *origcost,
251 double *rowupper,
const double *lower,
252 const double *upper,
const double *element,
253 const int *row,
const CoinBigIndex *colcc,
254 const int *length,
double *lambda,
255 int maxIts,
double mu,
double drop,
256 double maxmin,
double offset,
257 int strategy,
double djTol,
double djExit,
double djFlag,
258 CoinThreadRandom *randomNumberGenerator);
263 IdiotResult objval(
int nrows,
int ncols,
double *rowsol,
double *colsol,
264 double *pi,
double *djs,
const double *cost,
265 const double *rowlower,
266 const double *rowupper,
const double *lower,
267 const double *upper,
const double *elemnt,
268 const int *row,
const CoinBigIndex *columnStart,
269 const int *length,
int extraBlock,
int *rowExtra,
270 double *solExtra,
double *elemExtra,
double *upperExtra,
271 double *costExtra,
double weight);
273 int cleanIteration(
int iteration,
int ordinaryStart,
int ordinaryEnd,
274 double *colsol,
const double *lower,
const double *upper,
275 const double *rowLower,
const double *rowUpper,
276 const double *cost,
const double *element,
double fixTolerance,
double &objChange,
277 double &infChange,
double &maxInfeasibility);
289 double reasonableInfeas_;
292 double exitFeasibility_;
293 double dropEnoughFeasibility_;
294 double dropEnoughWeighted_;
298 int majorIterations_;
302 int lambdaIterations_;
void setStrategy(int value)
double getStartingWeight() const
Starting weight - small emphasizes feasibility, default 1.0e-4.
double getDropEnoughWeighted() const
Fine tuning - okay if weighted obj drop this factor.
void setDropEnoughFeasibility(double value)
double getFeasibilityTolerance() const
Feasibility tolerance - problem essentially feasible if individual infeasibilities less than this...
void setReduceIterations(int value)
void setMinorIterations0(int value)
double getWeightFactor() const
Weight factor - weight multiplied by this when changes, default 0.333.
void setDropEnoughWeighted(double value)
double getDropEnoughFeasibility() const
Fine tuning - okay if feasibility drop this factor.
void setMinorIterations(int value)
void setWeightFactor(double value)
int getMajorIterations() const
Major iterations.
int getLightweight() const
How lightweight - 0 not, 1 yes, 2 very lightweight.
void setReasonablyFeasible(double value)
void setMajorIterations(int value)
void setModel(OsiSolverInterface *model)
Set model.
double getExitInfeasibility() const
Exit infeasibility - exit if sum of infeasibilities less than this.
This class implements a very silly algorithm.
int getStrategy() const
strategy
int getReduceIterations() const
Reduce weight after this many major iterations.
void setExitInfeasibility(double value)
double getReasonablyFeasible() const
Reasonably feasible.
int getMinorIterations() const
Minor iterations.
#define OsiSolverInterface
void setStartingWeight(double value)
void setLogLevel(int value)
int getMinorIterations0() const
void setLightweight(int value)
void setFeasibilityTolerance(double value)
int getLogLevel() const
Amount of information - default of 1 should be okay.