14 #define OsiSolverInterface ClpSimplex
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,
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,
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,
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);
void solve()
Get an approximate solution with the idiot code.
void setStrategy(int value)
int getMinorIterations() const
Minor iterations.
Idiot & operator=(const Idiot &rhs)
Assignment operator. This copies the data.
int getMinorIterations0() const
double getDropEnoughWeighted() const
Fine tuning - okay if weighted obj drop this factor.
double getExitInfeasibility() const
Exit infeasibility - exit if sum of infeasibilities less than this.
double getDropEnoughFeasibility() const
Fine tuning - okay if feasibility drop this factor.
void setDropEnoughFeasibility(double value)
void setReduceIterations(int value)
void setMinorIterations0(int value)
int getMajorIterations() const
Major iterations.
double getFeasibilityTolerance() const
Feasibility tolerance - problem essentially feasible if individual infeasibilities less than this...
IdiotResult IdiSolve(int nrows, int ncols, double *rowsol, double *colsol, double *pi, double *djs, const double *origcost, double *rowlower, double *rowupper, const double *lower, const double *upper, const double *element, const int *row, const CoinBigIndex *colcc, const int *length, double *lambda, int maxIts, double mu, double drop, double maxmin, double offset, int strategy, double djTol, double djExit, double djFlag, CoinThreadRandom *randomNumberGenerator)
void solve2(CoinMessageHandler *handler, const CoinMessages *messages)
Stuff for internal use.
Base class for message handling.
void setDropEnoughWeighted(double value)
void setMinorIterations(int value)
double dropEnoughFeasibility_
Abstract Base Class for describing an interface to a solver.
void setWeightFactor(double value)
IdiotResult objval(int nrows, int ncols, double *rowsol, double *colsol, double *pi, double *djs, const double *cost, const double *rowlower, const double *rowupper, const double *lower, const double *upper, const double *elemnt, const int *row, const CoinBigIndex *columnStart, const int *length, int extraBlock, int *rowExtra, double *solExtra, double *elemExtra, double *upperExtra, double *costExtra, double weight)
void setReasonablyFeasible(double value)
int getLogLevel() const
Amount of information - default of 1 should be okay.
OsiSolverInterface * model_
Underlying model.
int getStrategy() const
strategy
void setMajorIterations(int value)
void crash(int numberPass, CoinMessageHandler *handler, const CoinMessages *messages, bool doCrossover=true)
Lightweight "crash".
void setModel(OsiSolverInterface *model)
Set model.
int dropping(IdiotResult result, double tolerance, double small, int *nbad)
Idiot()
Default constructor.
This class implements a very silly algorithm.
double getReasonablyFeasible() const
Reasonably feasible.
double dropEnoughWeighted_
void setExitInfeasibility(double value)
int getLightweight() const
How lightweight - 0 not, 1 yes, 2 very lightweight.
void crossOver(int mode)
Use simplex to get an optimal solution mode is how many steps the simplex crossover should take to ar...
void setStartingWeight(double value)
int getReduceIterations() const
Reduce weight after this many major iterations.
void setLogLevel(int value)
int cleanIteration(int iteration, int ordinaryStart, int ordinaryEnd, double *colsol, const double *lower, const double *upper, const double *rowLower, const double *rowUpper, const double *cost, const double *element, double fixTolerance, double &objChange, double &infChange, double &maxInfeasibility)
double getWeightFactor() const
Weight factor - weight multiplied by this when changes, default 0.333.
double getStartingWeight() const
Starting weight - small emphasizes feasibility, default 1.0e-4.
void setLightweight(int value)
void setFeasibilityTolerance(double value)
Class to hold and manipulate an array of massaged messages.
Class for thread specific random numbers.