13#ifndef MINOTAURCPLEXLPENGINE_H
14#define MINOTAURCPLEXLPENGINE_H
15#include <ilcplex/cplexx.h>
29 typedef Environment* EnvPtr;
30 typedef Problem* ProblemPtr;
31 typedef Solution* SolutionPtr;
32 typedef WarmStart* WarmStartPtr;
72 void write(std::ostream &)
const {};
149 double lb,
double ub);
200 void printx(
double *,
UInt );
203 void printx(
const int *,
UInt );
206 void removeCons(std::vector<ConstraintPtr> &delcons);
218 void setTimeLimit(
double);
224 void writeLP(
const char *filename)
const;
260 static const std::string me_;
266 double dualObjLimit_;
290 typedef CplexLPEngine* CplexLPEnginePtr;
Declare the class LPEngine for solving LPs and getting solution.
The Constraint class is used to manage a constraint.
Definition: Constraint.h:61
The CplexLPEngine class can be called to solve LP problems.
Definition: CplexLPEngine.h:121
std::string getName() const
Get the name.
Definition: CplexLPEngine.cpp:304
~CplexLPEngine()
Destroy.
Definition: CplexLPEngine.cpp:128
void resetIterationLimit()
Reset the iteration limit to maximum possible.
Definition: CplexLPEngine.cpp:679
double getSolutionValue()
Return the solution value of the objective after solving the LP.
Definition: CplexLPEngine.cpp:310
void negateObj()
Negate the objective function. Min f is changed to Min -f.
Definition: CplexLPEngine.cpp:656
void clear()
Clear the problem.
Definition: CplexLPEngine.cpp:260
EngineStatus solve()
Solve the problem that was loaded previously.
Definition: CplexLPEngine.cpp:704
ConstSolutionPtr getSolution()
Get the solution obtained after solving the problem.
Definition: CplexLPEngine.cpp:316
WarmStartPtr getWarmStartCopy()
Definition: CplexLPEngine.cpp:328
void fillStats(std::vector< double > &)
Accumulate statistics from different threads in a common data.
Definition: CplexLPEngine.cpp:292
void changeBound(ConstraintPtr cons, BoundType lu, double new_val)
Change a bound of a constraint.
Definition: CplexLPEngine.cpp:200
CplexLPEngine(EnvPtr env)
Constructor with an environment.
Definition: CplexLPEngine.cpp:102
void load(ProblemPtr problem)
Definition: CplexLPEngine.cpp:357
int setDualObjLimit(double)
Set the dual objective limit.
Definition: CplexLPEngine.cpp:691
void removeCons(std::vector< ConstraintPtr > &delcons)
Delete constraints from the engine.
Definition: CplexLPEngine.cpp:662
EnginePtr emptyCopy()
Return an empty CplexLPEngine pointer.
Definition: CplexLPEngine.cpp:276
void loadFromWarmStart(const WarmStartPtr)
Definition: CplexLPEngine.h:194
EngineStatus getStatus()
Get the status of the last solve command.
Definition: CplexLPEngine.cpp:322
void enableStrBrSetup()
Make settings for strong branching.
Definition: CplexLPEngine.cpp:282
void addConstraint(ConstraintPtr)
Add a new constraint to the engine.
Definition: CplexLPEngine.cpp:160
void setIterationLimit(int)
Definition: CplexLPEngine.cpp:685
void writeStats(std::ostream &out) const
Write statistics.
Definition: CplexLPEngine.cpp:860
void changeConstraint(ConstraintPtr con, LinearFunctionPtr lf, double lb, double ub)
Change the linear function, and the bounds of a constraint.
Definition: CplexLPEngine.cpp:241
ConstWarmStartPtr getWarmStart()
Definition: CplexLPEngine.h:182
void disableStrBrSetup()
Restore settings after strong branching.
Definition: CplexLPEngine.cpp:266
void changeObj(FunctionPtr f, double cb)
Change objective function.
Definition: CplexLPEngine.cpp:254
void writeLP()
Writes an LP file in the directory of problem file.
Definition: CplexLPEngine.cpp:850
Class for saving and using Warm-start information in Cplex LP engine.
Definition: CplexLPEngine.h:49
~CpxLPWarmStart()
Destroy.
Definition: CplexLPEngine.cpp:51
void write(std::ostream &) const
Write to an output stream.
Definition: CplexLPEngine.h:72
bool hasInfo()
Return the soluton that can be used as starting point.
Definition: CplexLPEngine.cpp:65
CpxLPWarmStart()
Default constructor.
Definition: CplexLPEngine.cpp:42
Definition: Environment.h:28
Definition: Function.h:37
Definition: LPEngine.h:29
The base class linear function is of the form c'x.
Definition: LinearFunction.h:31
Base class for nonlinear functions.
Definition: NonlinearFunction.h:31
Definition: Solution.h:30
Definition: Variable.h:31
Definition: WarmStart.h:45
Definition: ActiveNodeStore.h:20
BoundType
Different types of variable-bounds.
Definition: Types.h:131
unsigned int UInt
Unsigned integer.
Definition: Types.h:30
EngineStatus
Different status that an external engine may report.
Definition: Types.h:176
Statistics.
Definition: CplexLPEngine.h:35
UInt strIters
Sum of number of iterations in all calls.
Definition: CplexLPEngine.h:41
UInt strCalls
Total number of calls to solve.
Definition: CplexLPEngine.h:37
UInt iters
time taken in strong branching alone.
Definition: CplexLPEngine.h:40
double time
Calls to solve while strong branching.
Definition: CplexLPEngine.h:38
double strTime
Sum of time taken in all calls to solve.
Definition: CplexLPEngine.h:39