Mathematical optimization model.
A model is composed of expressions (some of which are decisions), organized as a tree. Then, some expressions of the model can be constrained or optimized. Once your optimization model is created and closed, the solver can be launched to resolve it. Note that you cannot modify a model which has been closed: you must reopen-it (with open()) or instantiate another LocalSolver environment to optimize another model.
- See Also
- LSExpression
-
LSOperator
Public Member Functions |
LSExpression | createConstant (lsint value) |
| Creates a constant expression representing the given value.
|
LSExpression | createConstant (lsdouble value) |
| Creates a constant expression representing the given value.
|
LSExpression | createExpression (LSOperator op) |
| Creates an expression of the given type.
|
template<typename T0 > |
LSExpression | createExpression (LSOperator op, T0 expr0) |
| Creates an expression of the given type, with the given operand.
|
template<typename T0 , typename T1 > |
LSExpression | createExpression (LSOperator op, T0 expr0, T1 expr1) |
| Creates an expression of the given type, with the given ordered operands.
|
template<typename T0 , typename T1 , typename T2 > |
LSExpression | createExpression (LSOperator op, T0 expr0, T1 expr1, T2 expr2) |
| Creates an expression of the given type, with the given ordered operands.
|
LSExpression | boolVar () |
| Creates a boolean decision.
|
LSExpression | floatVar (lsdouble min, lsdouble max) |
| Creates a float decision.
|
LSExpression | intVar (lsint min, lsint max) |
| Creates an integer decision.
|
LSExpression | sum () |
| Creates a sum expression.
|
template<typename T0 > |
LSExpression | sum (T0 expr0) |
| Creates a sum expression.
|
template<typename T0 , typename T1 > |
LSExpression | sum (T0 expr0, T1 expr1) |
| Creates a sum expression.
|
template<typename T0 , typename T1 > |
LSExpression | sub (T0 expr0, T1 expr1) |
| Creates a substraction expression.
|
LSExpression | prod () |
| Creates a product expression.
|
template<typename T0 > |
LSExpression | prod (T0 expr0) |
| Creates a product expression.
|
template<typename T0 , typename T1 > |
LSExpression | prod (T0 expr0, T1 expr1) |
| Creates a product expression.
|
LSExpression | max () |
| Creates a maximum expression.
|
template<typename T0 > |
LSExpression | max (T0 expr0) |
| Creates a maximum expression.
|
template<typename T0 , typename T1 > |
LSExpression | max (T0 expr0, T1 expr1) |
| Creates a maximum expression.
|
LSExpression | min () |
| Creates a minimum expression.
|
template<typename T0 > |
LSExpression | min (T0 expr0) |
| Creates a minimum expression.
|
template<typename T0 , typename T1 > |
LSExpression | min (T0 expr0, T1 expr1) |
| Creates a minimum expression.
|
LSExpression | or_ () |
| Creates an OR expression.
|
template<typename T0 > |
LSExpression | or_ (T0 expr0) |
| Creates an OR expression.
|
template<typename T0 , typename T1 > |
LSExpression | or_ (T0 expr0, T1 expr1) |
| Creates an OR expression.
|
LSExpression | and_ () |
| Creates an AND expression.
|
template<typename T0 > |
LSExpression | and_ (T0 expr0) |
| Creates an AND expression.
|
template<typename T0 , typename T1 > |
LSExpression | and_ (T0 expr0, T1 expr1) |
| Creates an AND expression.
|
LSExpression | xor_ () |
| Creates a XOR expression.
|
template<typename T0 > |
LSExpression | xor_ (T0 expr0) |
| Creates a XOR expression.
|
template<typename T0 , typename T1 > |
LSExpression | xor_ (T0 expr0, T1 expr1) |
| Creates a XOR expression.
|
template<typename T0 > |
LSExpression | not_ (T0 expr0) |
| Creates a NOT expression.
|
template<typename T0 , typename T1 > |
LSExpression | eq (T0 expr0, T1 expr1) |
| Creates an equality expression.
|
template<typename T0 , typename T1 > |
LSExpression | neq (T0 expr0, T1 expr1) |
| Creates a disequality expression.
|
template<typename T0 , typename T1 > |
LSExpression | geq (T0 expr0, T1 expr1) |
| Creates an inequality expression greater than or equal to.
|
template<typename T0 , typename T1 > |
LSExpression | leq (T0 expr0, T1 expr1) |
| Creates an inequality expression less than or equal to.
|
template<typename T0 , typename T1 > |
LSExpression | gt (T0 expr0, T1 expr1) |
| Creates an inequality expression greater than.
|
template<typename T0 , typename T1 > |
LSExpression | lt (T0 expr0, T1 expr1) |
| Creates an inequality expression less than.
|
template<typename T0 , typename T1 , typename T2 > |
LSExpression | iif (T0 expr0, T1 expr1, T2 expr2) |
| Creates a ternary conditional expression.
|
template<typename T0 > |
LSExpression | abs (T0 expr0) |
| Creates an absolute value expression.
|
template<typename T0 , typename T1 > |
LSExpression | dist (T0 expr0, T1 expr1) |
| Creates a distance expression.
|
template<typename T0 , typename T1 > |
LSExpression | div (T0 expr0, T1 expr1) |
| Creates a division expression.
|
template<typename T0 , typename T1 > |
LSExpression | mod (T0 expr0, T1 expr1) |
| Creates a modulo expression.
|
LSExpression | array () |
| Creates an array expression.
|
template<typename T0 , typename T1 > |
LSExpression | array (T0 expr0, T1 expr1) |
| Creates an array expression.
|
template<typename T0 , typename T1 > |
LSExpression | at (T0 arrayExpr, T1 index1) |
| Creates a "at" expression for 1-dimensional array.
|
template<typename T0 , typename T1 , typename T2 > |
LSExpression | at (T0 arrayExpr, T1 index1, T2 index2) |
| Creates a "at" expression for 2-dimensional array.
|
template<typename T0 , typename T1 , typename T2 , typename T3 > |
LSExpression | at (T0 arrayExpr, T1 index1, T2 index2, T3 index3) |
| Creates a "at" expression for 3-dimensional array.
|
template<typename T0 , typename T1 > |
LSExpression | scalar (T0 expr0, T1 expr1) |
| Creates an expression for the scalar product between two arrays.
|
template<typename T0 > |
LSExpression | ceil (T0 expr0) |
| Creates a ceil expression.
|
template<typename T0 > |
LSExpression | floor (T0 expr0) |
| Creates a floor expression.
|
template<typename T0 > |
LSExpression | round (T0 expr0) |
| Creates a rounding expression.
|
template<typename T0 > |
LSExpression | sqrt (T0 expr0) |
| Creates a square root expression.
|
template<typename T0 > |
LSExpression | log (T0 expr0) |
| Creates a log expression.
|
template<typename T0 > |
LSExpression | exp (T0 expr0) |
| Creates an exponential expression.
|
template<typename T0 , typename T1 > |
LSExpression | pow (T0 expr0, T1 expr1) |
| Creates a power expression.
|
template<typename T0 > |
LSExpression | cos (T0 expr0) |
| Creates a cosine expression.
|
template<typename T0 > |
LSExpression | sin (T0 expr0) |
| Creates a sine expression.
|
template<typename T0 > |
LSExpression | tan (T0 expr0) |
| Creates a tangent expression.
|
template<typename T0 , typename T1 , typename T2 > |
LSExpression | piecewise (T0 expr0, T1 expr1, T2 expr2) |
| Creates a piecewise linear expression.
|
LSExpression | listVar (lsint a) |
| Creates a list decision with the given length.
|
template<typename T0 > |
LSExpression | count (T0 expr0) |
| Creates a count expression.
|
template<typename T0 , typename T1 > |
LSExpression | indexOf (T0 expr0, T1 expr1) |
| Creates an indexOf expression.
|
LSExpression | partition () |
| Creates a partition expression.
|
template<typename T0 , typename T1 > |
LSExpression | partition (T0 expr0, T1 expr1) |
| Creates a partition expression.
|
LSExpression | disjoint () |
| Creates a disjoint expression.
|
template<typename T0 , typename T1 > |
LSExpression | disjoint (T0 expr0, T1 expr1) |
| Creates a disjoint expression.
|
int | getNbExpressions () const |
| Gets the number of expressions added to this model.
|
LSExpression | getExpression (int exprIndex) const |
| Gets the expression with the given index in this model.
|
LSExpression | getExpression (const std::string &name) const |
| Gets the expression with the given name.
|
int | getNbDecisions () const |
| Gets the number of decisions in the model.
|
LSExpression | getDecision (int decisionIndex) const |
| Gets the decision with the given index.
|
void | addConstraint (const LSExpression &expr) |
| Adds the given expression to the list of constraints.
|
void | constraint (const LSExpression &expr) |
| Shortcut for addConstraint(expr).
|
void | removeConstraint (const LSExpression &expr) |
| Removes the given expression from the list of constraints.
|
void | removeConstraint (int constraintIndex) |
| Removes the constraint at the given position in the list of constraints.
|
int | getNbConstraints () const |
| Gets the number of constraints added to this model.
|
LSExpression | getConstraint (int constraintIndex) const |
| Gets the constraint with the given index.
|
void | addObjective (const LSExpression &expr, LSObjectiveDirection direction) |
| Adds the given expression to the list of objectives to optimize.
|
void | minimize (const LSExpression &expr) |
| Shortcut for addObjective(expr, OD_Minimize).
|
void | maximize (const LSExpression &expr) |
| Shortcut for addObjective(expr, OD_Maximize).
|
void | removeObjective (int objectiveIndex) const |
| Removes the objective at the given position in the list of objectives.
|
int | getNbObjectives () const |
| Gets the number of objectives added to this model.
|
LSExpression | getObjective (int objectiveIndex) const |
| Gets the objective with the given index.
|
LSObjectiveDirection | getObjectiveDirection (int objectiveIndex) const |
| Gets the direction of the objective with the given index.
|
int | getNbOperands () const |
| Gets the number of operands in the model.
|
void | close () |
| Closes the model.
|
void | open () |
| Opens or reopens the model.
|
bool | isClosed () const |
| Returns true if the model is closed, false otherwise.
|
std::string | toString () const |
| Returns a string representation of this model.
|