localsolver
public class LSModel extends java.lang.Object
open())
or instantiate another LocalSolver environment to optimize another model.LSExpression,
LSOperator| Modifier and Type | Method and Description |
|---|---|
LSExpression |
abs(LSExpression a)
Creates an absolute value expression.
|
void |
addConstraint(LSExpression expr)
Adds the given expression to the list of constraints.
|
void |
addObjective(LSExpression expr,
LSObjectiveDirection direction)
Adds the given expression to the list of objectives to optimize.
|
LSExpression |
and()
Creates an AND expression.
|
LSExpression |
and(java.lang.Iterable<LSExpression> operands)
Creates an AND expression.
|
LSExpression |
and(LSExpression... operands)
Creates an AND expression.
|
LSExpression |
and(LSExpression a,
LSExpression b)
Creates an AND expression.
|
LSExpression |
array()
Creates an array expression.
|
LSExpression |
array(double[] operands)
Creates an array expression.
|
LSExpression |
array(java.lang.Iterable<LSExpression> operands)
Creates an array expression.
|
LSExpression |
array(long[] operands)
Creates an array expression.
|
LSExpression |
array(LSExpression... operands)
Creates an array expression.
|
LSExpression |
at(LSExpression arrayExpr,
long index)
Creates an at expression.
|
LSExpression |
at(LSExpression arrayExpr,
LSExpression... indicesExpr)
Creates an at expression.
|
LSExpression |
boolVar()
Creates a boolean decision.
|
LSExpression |
ceil(LSExpression a)
Creates a ceil expression.
|
void |
close()
Closes the model.
|
void |
constraint(LSExpression expr)
Shortcut for addConstraint(expr).
|
LSExpression |
cos(LSExpression a)
Creates a cosine expression.
|
LSExpression |
count(LSExpression a)
Creates a count expression.
|
LSExpression |
createConstant(double value)
Creates a constant expression representing the given value.
|
LSExpression |
createConstant(long value)
Creates a constant expression representing the given value.
|
LSExpression |
createExpression(LSOperator op)
Creates an expression of the given type.
|
LSExpression |
createExpression(LSOperator op,
double expr0)
Creates an expression of the given type, with the given operand.
|
LSExpression |
createExpression(LSOperator op,
double[] operands)
Creates an expression of the given type, with the given operands.
|
LSExpression |
createExpression(LSOperator op,
double expr0,
double expr1)
Creates an expression of the given type, with the given operands.
|
LSExpression |
createExpression(LSOperator op,
double expr0,
double expr1,
double expr2)
Creates an expression of the given type, with the given operands.
|
LSExpression |
createExpression(LSOperator op,
double expr0,
double expr1,
LSExpression expr2)
Creates an expression of the given type, with the given operands.
|
LSExpression |
createExpression(LSOperator op,
double expr0,
LSExpression expr1)
Creates an expression of the given type, with the given operands.
|
LSExpression |
createExpression(LSOperator op,
double expr0,
LSExpression expr1,
double expr2)
Creates an expression of the given type, with the given operands.
|
LSExpression |
createExpression(LSOperator op,
double expr0,
LSExpression expr1,
LSExpression expr2)
Creates an expression of the given type, with the given operands.
|
LSExpression |
createExpression(LSOperator op,
java.lang.Iterable<LSExpression> operands)
Creates an expression of the given type, with the given operands.
|
LSExpression |
createExpression(LSOperator op,
long expr0)
Creates an expression of the given type, with the given operand.
|
LSExpression |
createExpression(LSOperator op,
long[] operands)
Creates an expression of the given type, with the given operands.
|
LSExpression |
createExpression(LSOperator op,
long expr0,
long expr1)
Creates an expression of the given type, with the given operands.
|
LSExpression |
createExpression(LSOperator op,
long expr0,
long expr1,
long expr2)
Creates an expression of the given type, with the given operands.
|
LSExpression |
createExpression(LSOperator op,
long expr0,
long expr1,
LSExpression expr2)
Creates an expression of the given type, with the given operands.
|
LSExpression |
createExpression(LSOperator op,
long expr0,
LSExpression expr1)
Creates an expression of the given type, with the given operands.
|
LSExpression |
createExpression(LSOperator op,
long expr0,
LSExpression expr1,
long expr2)
Creates an expression of the given type, with the given operands.
|
LSExpression |
createExpression(LSOperator op,
long expr0,
LSExpression expr1,
LSExpression expr2)
Creates an expression of the given type, with the given operands.
|
LSExpression |
createExpression(LSOperator op,
LSExpression expr0)
Creates an expression of the given type, with the given operand.
|
LSExpression |
createExpression(LSOperator op,
LSExpression expr0,
double expr1)
Creates an expression of the given type, with the given operands.
|
LSExpression |
createExpression(LSOperator op,
LSExpression expr0,
double expr1,
double expr2)
Creates an expression of the given type, with the given operands.
|
LSExpression |
createExpression(LSOperator op,
LSExpression expr0,
double expr1,
LSExpression expr2)
Creates an expression of the given type, with the given operands.
|
LSExpression |
createExpression(LSOperator op,
LSExpression expr0,
long expr1)
Creates an expression of the given type, with the given operands.
|
LSExpression |
createExpression(LSOperator op,
LSExpression expr0,
long expr1,
long expr2)
Creates an expression of the given type, with the given operands.
|
LSExpression |
createExpression(LSOperator op,
LSExpression expr0,
long expr1,
LSExpression expr2)
Creates an expression of the given type, with the given operands.
|
LSExpression |
createExpression(LSOperator op,
LSExpression expr0,
LSExpression expr1)
Creates an expression of the given type, with the given operands.
|
LSExpression |
createExpression(LSOperator op,
LSExpression expr0,
LSExpression expr1,
double expr2)
Creates an expression of the given type, with the given operands.
|
LSExpression |
createExpression(LSOperator op,
LSExpression expr0,
LSExpression expr1,
long expr2)
Creates an expression of the given type, with the given operands.
|
LSExpression |
createExpression(LSOperator op,
LSExpression expr0,
LSExpression expr1,
LSExpression expr2)
Creates an expression of the given type, with the given operands.
|
LSExpression |
disjoint()
Creates a disjoint expression.
|
LSExpression |
disjoint(LSExpression... operands)
Creates a disjoint expression.
|
LSExpression |
dist(double a,
LSExpression b)
Creates a distance expression.
|
LSExpression |
dist(long a,
LSExpression b)
Creates a distance expression.
|
LSExpression |
dist(LSExpression a,
double b)
Creates a distance expression.
|
LSExpression |
dist(LSExpression a,
long b)
Creates a distance expression.
|
LSExpression |
dist(LSExpression a,
LSExpression b)
Creates a distance expression.
|
LSExpression |
div(double a,
LSExpression b)
Creates a division expression.
|
LSExpression |
div(long a,
LSExpression b)
Creates a division expression.
|
LSExpression |
div(LSExpression a,
double b)
Creates a division expression.
|
LSExpression |
div(LSExpression a,
long b)
Creates a division expression.
|
LSExpression |
div(LSExpression a,
LSExpression b)
Creates a division expression.
|
LSExpression |
eq(double a,
LSExpression b)
Creates an equality expression.
|
LSExpression |
eq(long a,
LSExpression b)
Creates an equality expression.
|
LSExpression |
eq(LSExpression a,
double b)
Creates an equality expression.
|
LSExpression |
eq(LSExpression a,
long b)
Creates an equality expression.
|
LSExpression |
eq(LSExpression a,
LSExpression b)
Creates an equality expression.
|
boolean |
equals(java.lang.Object obj) |
LSExpression |
exp(LSExpression a)
Creates an exponential expression.
|
LSExpression |
floatVar(double min,
double max)
Creates a float decision.
|
LSExpression |
floor(LSExpression a)
Creates a floor expression.
|
LSExpression |
geq(double a,
LSExpression b)
Creates an inequality expression greater than or equal to.
|
LSExpression |
geq(long a,
LSExpression b)
Creates an inequality expression greater than or equal to.
|
LSExpression |
geq(LSExpression a,
double b)
Creates an inequality expression greater than or equal to.
|
LSExpression |
geq(LSExpression a,
long b)
Creates an inequality expression greater than or equal to.
|
LSExpression |
geq(LSExpression a,
LSExpression b)
Creates an inequality expression greater than or equal to.
|
LSExpression |
getConstraint(int constraintIndex)
Gets the constraint with the given index.
|
LSExpression |
getDecision(int decisionIndex)
Gets the decision with the given index.
|
LSExpression |
getExpression(int exprIndex)
Gets the expression with the given index in this model.
|
LSExpression |
getExpression(java.lang.String name)
Gets the expression with the given index in this model.
|
LocalSolver |
getLocalSolver() |
int |
getNbConstraints()
Gets the number of constraints added to this model.
|
int |
getNbDecisions()
Gets the number of decisions in the model.
|
int |
getNbExpressions()
Gets the number of expressions added to this model.
|
int |
getNbObjectives()
Gets the number of objectives added to this model.
|
int |
getNbOperands()
Gets the number of operands in the model.
|
LSExpression |
getObjective(int objectiveIndex)
Gets the objective with the given index.
|
LSObjectiveDirection |
getObjectiveDirection(int objectiveIndex)
Gets the direction of the objective with the given index.
|
LSExpression |
gt(double a,
LSExpression b)
Creates an inequality expression greater than.
|
LSExpression |
gt(long a,
LSExpression b)
Creates an inequality expression greater than.
|
LSExpression |
gt(LSExpression a,
double b)
Creates an inequality expression greater than.
|
LSExpression |
gt(LSExpression a,
long b)
Creates an inequality expression greater than.
|
LSExpression |
gt(LSExpression a,
LSExpression b)
Creates an inequality expression greater than.
|
int |
hashCode() |
LSExpression |
iif(LSExpression a,
double b,
double c)
Creates a ternary conditional expression.
|
LSExpression |
iif(LSExpression a,
double b,
LSExpression c)
Creates a ternary conditional expression.
|
LSExpression |
iif(LSExpression a,
long b,
long c)
Creates a ternary conditional expression.
|
LSExpression |
iif(LSExpression a,
long b,
LSExpression c)
Creates a ternary conditional expression.
|
LSExpression |
iif(LSExpression a,
LSExpression b,
double c)
Creates a ternary conditional expression.
|
LSExpression |
iif(LSExpression a,
LSExpression b,
long c)
Creates a ternary conditional expression.
|
LSExpression |
iif(LSExpression a,
LSExpression b,
LSExpression c)
Creates a ternary conditional expression.
|
LSExpression |
indexOf(LSExpression a,
long b)
Creates an indexOf expression.
|
LSExpression |
indexOf(LSExpression a,
LSExpression b)
Creates an indexOf expression.
|
LSExpression |
intVar(long min,
long max)
Creates an integer decision.
|
boolean |
isClosed()
Returns true if the model is closed, false otherwise.
|
LSExpression |
leq(double a,
LSExpression b)
Creates an inequality expression less than or equal to.
|
LSExpression |
leq(long a,
LSExpression b)
Creates an inequality expression less than or equal to.
|
LSExpression |
leq(LSExpression a,
double b)
Creates an inequality expression less than or equal to.
|
LSExpression |
leq(LSExpression a,
long b)
Creates an inequality expression less than or equal to.
|
LSExpression |
leq(LSExpression a,
LSExpression b)
Creates an inequality expression less than or equal to.
|
LSExpression |
listVar(long a)
Creates a list decision with the given length.
|
LSExpression |
log(LSExpression a)
Creates a logarithm expression.
|
LSExpression |
lt(double a,
LSExpression b)
Creates an inequality expression less than.
|
LSExpression |
lt(long a,
LSExpression b)
Creates an inequality expression less than.
|
LSExpression |
lt(LSExpression a,
double b)
Creates an inequality expression less than.
|
LSExpression |
lt(LSExpression a,
long b)
Creates an inequality expression less than.
|
LSExpression |
lt(LSExpression a,
LSExpression b)
Creates an inequality expression less than.
|
LSExpression |
max()
Creates a maximum expression.
|
LSExpression |
max(double a)
Creates a maximum expression.
|
LSExpression |
max(double a,
LSExpression b)
Creates a maximum expression.
|
LSExpression |
max(java.lang.Iterable<LSExpression> operands)
Creates a maximum expression.
|
LSExpression |
max(long a)
Creates a maximum expression.
|
LSExpression |
max(long a,
LSExpression b)
Creates a maximum expression.
|
LSExpression |
max(LSExpression... operands)
Creates a maximum expression.
|
LSExpression |
max(LSExpression a,
double b)
Creates a maximum expression.
|
LSExpression |
max(LSExpression a,
long b)
Creates a maximum expression.
|
LSExpression |
max(LSExpression a,
LSExpression b)
Creates a maximum expression.
|
void |
maximize(LSExpression expr)
Shortcut for addObjective(expr, OD_Maximize).
|
LSExpression |
min()
Creates a minimum expression.
|
LSExpression |
min(double a)
Creates a minimum expression.
|
LSExpression |
min(double a,
LSExpression b)
Creates a minimum expression.
|
LSExpression |
min(java.lang.Iterable<LSExpression> operands)
Creates a minimum expression.
|
LSExpression |
min(long a)
Creates a minimum expression.
|
LSExpression |
min(long a,
LSExpression b)
Creates a minimum expression.
|
LSExpression |
min(LSExpression... operands)
Creates a minimum expression.
|
LSExpression |
min(LSExpression a,
double b)
Creates a minimum expression.
|
LSExpression |
min(LSExpression a,
long b)
Creates a minimum expression.
|
LSExpression |
min(LSExpression a,
LSExpression b)
Creates a minimum expression.
|
void |
minimize(LSExpression expr)
Shortcut for addObjective(expr, OD_Minimize).
|
LSExpression |
mod(long a,
LSExpression b)
Creates a modulo expression.
|
LSExpression |
mod(LSExpression a,
long b)
Creates a modulo expression.
|
LSExpression |
mod(LSExpression a,
LSExpression b)
Creates a modulo expression.
|
LSExpression |
neq(double a,
LSExpression b)
Creates a disequality expression.
|
LSExpression |
neq(long a,
LSExpression b)
Creates a disequality expression.
|
LSExpression |
neq(LSExpression a,
double b)
Creates a disequality expression.
|
LSExpression |
neq(LSExpression a,
long b)
Creates a disequality expression.
|
LSExpression |
neq(LSExpression a,
LSExpression b)
Creates a disequality expression.
|
LSExpression |
not(LSExpression a)
Creates a NOT expression.
|
void |
open()
Opens or reopens the model.
|
LSExpression |
or()
Creates an OR expression.
|
LSExpression |
or(java.lang.Iterable<LSExpression> operands)
Creates an OR expression.
|
LSExpression |
or(LSExpression... operands)
Creates an OR expression.
|
LSExpression |
or(LSExpression a,
LSExpression b)
Creates an OR expression.
|
LSExpression |
partition()
Creates a partition expression.
|
LSExpression |
partition(LSExpression... operands)
Creates a partition expression.
|
LSExpression |
piecewise(LSExpression abscissae,
LSExpression ordinates,
LSExpression x)
Creates a piecewise linear expression.
|
LSExpression |
pow(double a,
LSExpression b)
Creates a power expression.
|
LSExpression |
pow(long a,
LSExpression b)
Creates a power expression.
|
LSExpression |
pow(LSExpression a,
double b)
Creates a power expression.
|
LSExpression |
pow(LSExpression a,
long b)
Creates a power expression.
|
LSExpression |
pow(LSExpression a,
LSExpression b)
Creates a power expression.
|
LSExpression |
prod()
Creates a product expression.
|
LSExpression |
prod(double a)
Creates a product expression.
|
LSExpression |
prod(double a,
LSExpression b)
Creates a product expression.
|
LSExpression |
prod(java.lang.Iterable<LSExpression> operands)
Creates a product expression.
|
LSExpression |
prod(long a)
Creates a product expression.
|
LSExpression |
prod(long a,
LSExpression b)
Creates a product expression.
|
LSExpression |
prod(LSExpression... operands)
Creates a product expression.
|
LSExpression |
prod(LSExpression a,
double b)
Creates a product expression.
|
LSExpression |
prod(LSExpression a,
long b)
Creates a product expression.
|
LSExpression |
prod(LSExpression a,
LSExpression b)
Creates a product expression.
|
void |
removeConstraint(int constraintIndex)
Removes the constraint at the given position in the list of constraints.
|
void |
removeConstraint(LSExpression expr)
Removes the given expression from the list of constraints.
|
void |
removeObjective(int objectiveIndex)
Removes the objective at the given position in the list of objectives.
|
LSExpression |
round(LSExpression a)
Creates a round expression.
|
LSExpression |
scalar(LSExpression a,
LSExpression b)
Creates an expression for the scalar product between two arrays.
|
LSExpression |
sin(LSExpression a)
Creates a sine expression.
|
LSExpression |
sqrt(LSExpression a)
Creates a square root expression.
|
LSExpression |
sub(double a,
LSExpression b)
Creates a substraction expression.
|
LSExpression |
sub(long a,
LSExpression b)
Creates a substraction expression.
|
LSExpression |
sub(LSExpression a,
double b)
Creates a substraction expression.
|
LSExpression |
sub(LSExpression a,
long b)
Creates a substraction expression.
|
LSExpression |
sub(LSExpression a,
LSExpression b)
Creates a substraction expression.
|
LSExpression |
sum()
Creates a sum expression.
|
LSExpression |
sum(double a)
Creates a sum expression.
|
LSExpression |
sum(double a,
LSExpression b)
Creates a sum expression.
|
LSExpression |
sum(java.lang.Iterable<LSExpression> operands)
Creates a sum expression.
|
LSExpression |
sum(long a)
Creates a sum expression.
|
LSExpression |
sum(long a,
LSExpression b)
Creates a sum expression.
|
LSExpression |
sum(LSExpression... operands)
Creates a sum expression.
|
LSExpression |
sum(LSExpression a,
double b)
Creates a sum expression.
|
LSExpression |
sum(LSExpression a,
long b)
Creates a sum expression.
|
LSExpression |
sum(LSExpression a,
LSExpression b)
Creates a sum expression.
|
LSExpression |
tan(LSExpression a)
Creates a tangent expression.
|
java.lang.String |
toString()
Returns a String representation of this model.
|
LSExpression |
xor()
Creates an XOR expression.
|
LSExpression |
xor(java.lang.Iterable<LSExpression> operands)
Creates an XOR expression.
|
LSExpression |
xor(LSExpression... operands)
Creates an XOR expression.
|
LSExpression |
xor(LSExpression a,
LSExpression b)
Creates an XOR expression.
|
public LocalSolver getLocalSolver()
public LSExpression createConstant(long value)
LSState.Modeling. Note that if a constant has been
already created with the same value, this method can return the same expression,
but it is not guaranteed. The exact behavior is implementation defined.value - Value of the constant.public LSExpression createConstant(double value)
LSState.Modeling. Note that if a constant has been
already created with the same value, this method can return the same expression,
but it is not guaranteed. The exact behavior is implementation defined.value - Value of the constant.public LSExpression createExpression(LSOperator op)
LSState.Modeling. This method cannot be used to create constants:
use createConstant(long) or createConstant(double) instead.op - Type of expression to create.public LSExpression createExpression(LSOperator op, LSExpression expr0)
LSState.Modeling. Useful for creating unary expressions.op - Type of expression to create.expr0 - Operand 0.public LSExpression createExpression(LSOperator op, long expr0)
LSState.Modeling. Useful for creating unary expressions.op - Type of expression to create.expr0 - Operand 0.public LSExpression createExpression(LSOperator op, double expr0)
LSState.Modeling. Useful for creating unary expressions.op - Type of expression to create.expr0 - Operand 0.public LSExpression createExpression(LSOperator op, LSExpression expr0, LSExpression expr1)
LSState.Modeling. Useful for creating binary expressions.op - Type of expression to create.expr0 - Operand 0.expr1 - Operand 1.public LSExpression createExpression(LSOperator op, long expr0, long expr1)
LSState.Modeling. Useful for creating binary expressions.op - Type of expression to create.expr0 - Operand 0.expr1 - Operand 1.public LSExpression createExpression(LSOperator op, long expr0, LSExpression expr1)
LSState.Modeling. Useful for creating binary expressions.op - Type of expression to create.expr0 - Operand 0.expr1 - Operand 1.public LSExpression createExpression(LSOperator op, LSExpression expr0, long expr1)
LSState.Modeling. Useful for creating binary expressions.op - Type of expression to create.expr0 - Operand 0.expr1 - Operand 1.public LSExpression createExpression(LSOperator op, double expr0, double expr1)
LSState.Modeling. Useful for creating binary expressions.op - Type of expression to create.expr0 - Operand 0.expr1 - Operand 1.public LSExpression createExpression(LSOperator op, double expr0, LSExpression expr1)
LSState.Modeling. Useful for creating binary expressions.op - Type of expression to create.expr0 - Operand 0.expr1 - Operand 1.public LSExpression createExpression(LSOperator op, LSExpression expr0, double expr1)
LSState.Modeling. Useful for creating binary expressions.op - Type of expression to create.expr0 - Operand 0.expr1 - Operand 1.public LSExpression createExpression(LSOperator op, LSExpression expr0, LSExpression expr1, LSExpression expr2)
LSState.Modeling. Useful for creating ternary expressions.op - Type of expression to create.expr0 - Operand 0.expr1 - Operand 1.expr2 - Operand 2.public LSExpression createExpression(LSOperator op, long expr0, long expr1, long expr2)
LSState.Modeling. Useful for creating ternary expressions.op - Type of expression to create.expr0 - Operand 0.expr1 - Operand 1.expr2 - Operand 2.public LSExpression createExpression(LSOperator op, long expr0, long expr1, LSExpression expr2)
LSState.Modeling. Useful for creating ternary expressions.op - Type of expression to create.expr0 - Operand 0.expr1 - Operand 1.expr2 - Operand 2.public LSExpression createExpression(LSOperator op, long expr0, LSExpression expr1, long expr2)
LSState.Modeling. Useful for creating ternary expressions.op - Type of expression to create.expr0 - Operand 0.expr1 - Operand 1.expr2 - Operand 2.public LSExpression createExpression(LSOperator op, long expr0, LSExpression expr1, LSExpression expr2)
LSState.Modeling. Useful for creating ternary expressions.op - Type of expression to create.expr0 - Operand 0.expr1 - Operand 1.expr2 - Operand 2.public LSExpression createExpression(LSOperator op, LSExpression expr0, long expr1, long expr2)
LSState.Modeling. Useful for creating ternary expressions.op - Type of expression to create.expr0 - Operand 0.expr1 - Operand 1.expr2 - Operand 2.public LSExpression createExpression(LSOperator op, LSExpression expr0, long expr1, LSExpression expr2)
LSState.Modeling. Useful for creating ternary expressions.op - Type of expression to create.expr0 - Operand 0.expr1 - Operand 1.expr2 - Operand 2.public LSExpression createExpression(LSOperator op, LSExpression expr0, LSExpression expr1, long expr2)
LSState.Modeling. Useful for creating ternary expressions.op - Type of expression to create.expr0 - Operand 0.expr1 - Operand 1.expr2 - Operand 2.public LSExpression createExpression(LSOperator op, double expr0, double expr1, double expr2)
LSState.Modeling. Useful for creating ternary expressions.op - Type of expression to create.expr0 - Operand 0.expr1 - Operand 1.expr2 - Operand 2.public LSExpression createExpression(LSOperator op, double expr0, double expr1, LSExpression expr2)
LSState.Modeling. Useful for creating ternary expressions.op - Type of expression to create.expr0 - Operand 0.expr1 - Operand 1.expr2 - Operand 2.public LSExpression createExpression(LSOperator op, double expr0, LSExpression expr1, double expr2)
LSState.Modeling. Useful for creating ternary expressions.op - Type of expression to create.expr0 - Operand 0.expr1 - Operand 1.expr2 - Operand 2.public LSExpression createExpression(LSOperator op, double expr0, LSExpression expr1, LSExpression expr2)
LSState.Modeling. Useful for creating ternary expressions.op - Type of expression to create.expr0 - Operand 0.expr1 - Operand 1.expr2 - Operand 2.public LSExpression createExpression(LSOperator op, LSExpression expr0, double expr1, double expr2)
LSState.Modeling. Useful for creating ternary expressions.op - Type of expression to create.expr0 - Operand 0.expr1 - Operand 1.expr2 - Operand 2.public LSExpression createExpression(LSOperator op, LSExpression expr0, double expr1, LSExpression expr2)
LSState.Modeling. Useful for creating ternary expressions.op - Type of expression to create.expr0 - Operand 0.expr1 - Operand 1.expr2 - Operand 2.public LSExpression createExpression(LSOperator op, LSExpression expr0, LSExpression expr1, double expr2)
LSState.Modeling. Useful for creating ternary expressions.op - Type of expression to create.expr0 - Operand 0.expr1 - Operand 1.expr2 - Operand 2.public LSExpression createExpression(LSOperator op, java.lang.Iterable<LSExpression> operands)
LSState.Modeling. Useful for creating n-ary expressions.op - Type of expression to create.operands - Operands to add.public LSExpression createExpression(LSOperator op, long[] operands)
LSState.Modeling. Useful for creating n-ary expressions.op - Type of expression to create.operands - Operands to add.public LSExpression createExpression(LSOperator op, double[] operands)
LSState.Modeling. Useful for creating n-ary expressions.op - Type of expression to create.operands - Operands to add.public LSExpression boolVar()
LSOperator.Boolpublic LSExpression floatVar(double min, double max)
LSOperator.Floatpublic LSExpression intVar(long min, long max)
LSOperator.Intpublic LSExpression sum()
LSOperator.Sumpublic LSExpression sum(long a)
LSOperator.Sumpublic LSExpression sum(double a)
LSOperator.Sumpublic LSExpression sum(LSExpression a, LSExpression b)
LSOperator.Sumpublic LSExpression sum(java.lang.Iterable<LSExpression> operands)
LSOperator.Sumpublic LSExpression sum(LSExpression... operands)
LSOperator.Sumpublic LSExpression sum(long a, LSExpression b)
LSOperator.Sumpublic LSExpression sum(LSExpression a, long b)
LSOperator.Sumpublic LSExpression sum(double a, LSExpression b)
LSOperator.Sumpublic LSExpression sum(LSExpression a, double b)
LSOperator.Sumpublic LSExpression sub(LSExpression a, LSExpression b)
LSOperator.Subpublic LSExpression sub(long a, LSExpression b)
LSOperator.Subpublic LSExpression sub(LSExpression a, long b)
LSOperator.Subpublic LSExpression sub(double a, LSExpression b)
LSOperator.Subpublic LSExpression sub(LSExpression a, double b)
LSOperator.Subpublic LSExpression prod()
LSOperator.Prodpublic LSExpression prod(long a)
LSOperator.Prodpublic LSExpression prod(double a)
LSOperator.Prodpublic LSExpression prod(LSExpression a, LSExpression b)
LSOperator.Prodpublic LSExpression prod(LSExpression... operands)
LSOperator.Prodpublic LSExpression prod(java.lang.Iterable<LSExpression> operands)
LSOperator.Prodpublic LSExpression prod(LSExpression a, long b)
LSOperator.Prodpublic LSExpression prod(long a, LSExpression b)
LSOperator.Prodpublic LSExpression prod(LSExpression a, double b)
LSOperator.Prodpublic LSExpression prod(double a, LSExpression b)
LSOperator.Prodpublic LSExpression max()
LSOperator.Maxpublic LSExpression max(long a)
LSOperator.Maxpublic LSExpression max(double a)
LSOperator.Maxpublic LSExpression max(LSExpression a, LSExpression b)
LSOperator.Maxpublic LSExpression max(java.lang.Iterable<LSExpression> operands)
LSOperator.Maxpublic LSExpression max(LSExpression... operands)
LSOperator.Maxpublic LSExpression max(LSExpression a, long b)
LSOperator.Maxpublic LSExpression max(long a, LSExpression b)
LSOperator.Maxpublic LSExpression max(LSExpression a, double b)
LSOperator.Maxpublic LSExpression max(double a, LSExpression b)
LSOperator.Maxpublic LSExpression min()
LSOperator.Minpublic LSExpression min(long a)
LSOperator.Minpublic LSExpression min(double a)
LSOperator.Minpublic LSExpression min(LSExpression a, LSExpression b)
LSOperator.Minpublic LSExpression min(LSExpression... operands)
LSOperator.Minpublic LSExpression min(java.lang.Iterable<LSExpression> operands)
LSOperator.Minpublic LSExpression min(LSExpression a, long b)
LSOperator.Minpublic LSExpression min(long a, LSExpression b)
LSOperator.Minpublic LSExpression min(LSExpression a, double b)
LSOperator.Minpublic LSExpression min(double a, LSExpression b)
LSOperator.Minpublic LSExpression eq(LSExpression a, LSExpression b)
LSOperator.Eqpublic LSExpression eq(LSExpression a, long b)
LSOperator.Eqpublic LSExpression eq(long a, LSExpression b)
LSOperator.Eqpublic LSExpression eq(LSExpression a, double b)
LSOperator.Eqpublic LSExpression eq(double a, LSExpression b)
LSOperator.Eqpublic LSExpression neq(LSExpression a, LSExpression b)
LSOperator.Neqpublic LSExpression neq(LSExpression a, long b)
LSOperator.Neqpublic LSExpression neq(long a, LSExpression b)
LSOperator.Neqpublic LSExpression neq(LSExpression a, double b)
LSOperator.Neqpublic LSExpression neq(double a, LSExpression b)
LSOperator.Neqpublic LSExpression geq(LSExpression a, LSExpression b)
LSOperator.Geqpublic LSExpression geq(LSExpression a, long b)
LSOperator.Geqpublic LSExpression geq(long a, LSExpression b)
LSOperator.Geqpublic LSExpression geq(LSExpression a, double b)
LSOperator.Geqpublic LSExpression geq(double a, LSExpression b)
LSOperator.Geqpublic LSExpression leq(LSExpression a, LSExpression b)
LSOperator.Leqpublic LSExpression leq(LSExpression a, long b)
LSOperator.Leqpublic LSExpression leq(long a, LSExpression b)
LSOperator.Leqpublic LSExpression leq(LSExpression a, double b)
LSOperator.Leqpublic LSExpression leq(double a, LSExpression b)
LSOperator.Leqpublic LSExpression gt(LSExpression a, LSExpression b)
LSOperator.Gtpublic LSExpression gt(LSExpression a, long b)
LSOperator.Gtpublic LSExpression gt(long a, LSExpression b)
LSOperator.Gtpublic LSExpression gt(LSExpression a, double b)
LSOperator.Gtpublic LSExpression gt(double a, LSExpression b)
LSOperator.Gtpublic LSExpression lt(LSExpression a, LSExpression b)
LSOperator.Ltpublic LSExpression lt(LSExpression a, long b)
LSOperator.Ltpublic LSExpression lt(long a, LSExpression b)
LSOperator.Ltpublic LSExpression lt(LSExpression a, double b)
LSOperator.Ltpublic LSExpression lt(double a, LSExpression b)
LSOperator.Ltpublic LSExpression iif(LSExpression a, LSExpression b, LSExpression c)
LSOperator.Ifpublic LSExpression iif(LSExpression a, LSExpression b, long c)
LSOperator.Ifpublic LSExpression iif(LSExpression a, long b, LSExpression c)
LSOperator.Ifpublic LSExpression iif(LSExpression a, long b, long c)
LSOperator.Ifpublic LSExpression iif(LSExpression a, LSExpression b, double c)
LSOperator.Ifpublic LSExpression iif(LSExpression a, double b, LSExpression c)
LSOperator.Ifpublic LSExpression iif(LSExpression a, double b, double c)
LSOperator.Ifpublic LSExpression not(LSExpression a)
LSOperator.Notpublic LSExpression and()
LSOperator.Andpublic LSExpression and(LSExpression a, LSExpression b)
LSOperator.Andpublic LSExpression and(java.lang.Iterable<LSExpression> operands)
LSOperator.Andpublic LSExpression and(LSExpression... operands)
LSOperator.Andpublic LSExpression or()
LSOperator.Orpublic LSExpression or(LSExpression a, LSExpression b)
LSOperator.Orpublic LSExpression or(java.lang.Iterable<LSExpression> operands)
LSOperator.Orpublic LSExpression or(LSExpression... operands)
LSOperator.Orpublic LSExpression xor()
LSOperator.Xorpublic LSExpression xor(LSExpression... operands)
LSOperator.Xorpublic LSExpression xor(LSExpression a, LSExpression b)
LSOperator.Xorpublic LSExpression xor(java.lang.Iterable<LSExpression> operands)
LSOperator.Xorpublic LSExpression abs(LSExpression a)
LSOperator.Abspublic LSExpression dist(LSExpression a, LSExpression b)
LSOperator.Distpublic LSExpression dist(LSExpression a, long b)
LSOperator.Distpublic LSExpression dist(long a, LSExpression b)
LSOperator.Distpublic LSExpression dist(LSExpression a, double b)
LSOperator.Distpublic LSExpression dist(double a, LSExpression b)
LSOperator.Distpublic LSExpression div(LSExpression a, LSExpression b)
LSOperator.Divpublic LSExpression div(LSExpression a, long b)
LSOperator.Divpublic LSExpression div(long a, LSExpression b)
LSOperator.Divpublic LSExpression div(LSExpression a, double b)
LSOperator.Divpublic LSExpression div(double a, LSExpression b)
LSOperator.Divpublic LSExpression mod(LSExpression a, LSExpression b)
LSOperator.Modpublic LSExpression mod(LSExpression a, long b)
LSOperator.Modpublic LSExpression mod(long a, LSExpression b)
LSOperator.Modpublic LSExpression array()
LSOperator.Arraypublic LSExpression array(java.lang.Iterable<LSExpression> operands)
LSOperator.Arraypublic LSExpression array(long[] operands)
LSOperator.Arraypublic LSExpression array(double[] operands)
LSOperator.Arraypublic LSExpression array(LSExpression... operands)
LSOperator.Arraypublic LSExpression at(LSExpression arrayExpr, LSExpression... indicesExpr)
LSOperator.Atpublic LSExpression at(LSExpression arrayExpr, long index)
LSOperator.Atpublic LSExpression scalar(LSExpression a, LSExpression b)
LSOperator.Scalarpublic LSExpression ceil(LSExpression a)
LSOperator.Ceilpublic LSExpression floor(LSExpression a)
LSOperator.Floorpublic LSExpression round(LSExpression a)
LSOperator.Roundpublic LSExpression sqrt(LSExpression a)
LSOperator.Sqrtpublic LSExpression log(LSExpression a)
LSOperator.Logpublic LSExpression exp(LSExpression a)
LSOperator.Exppublic LSExpression pow(LSExpression a, LSExpression b)
LSOperator.Powpublic LSExpression pow(LSExpression a, long b)
LSOperator.Powpublic LSExpression pow(long a, LSExpression b)
LSOperator.Powpublic LSExpression pow(LSExpression a, double b)
LSOperator.Powpublic LSExpression pow(double a, LSExpression b)
LSOperator.Powpublic LSExpression cos(LSExpression a)
LSOperator.Cospublic LSExpression sin(LSExpression a)
LSOperator.Sinpublic LSExpression tan(LSExpression a)
LSOperator.Tanpublic LSExpression piecewise(LSExpression abscissae, LSExpression ordinates, LSExpression x)
LSOperator.Piecewisepublic LSExpression listVar(long a)
LSOperator.Listpublic LSExpression count(LSExpression a)
LSOperator.Countpublic LSExpression indexOf(LSExpression a, long b)
LSOperator.IndexOfpublic LSExpression indexOf(LSExpression a, LSExpression b)
LSOperator.IndexOfpublic LSExpression partition()
LSOperator.Partitionpublic LSExpression partition(LSExpression... operands)
LSOperator.Partitionpublic LSExpression disjoint()
LSOperator.Disjointpublic LSExpression disjoint(LSExpression... operands)
LSOperator.Disjointpublic int getNbExpressions()
public LSExpression getExpression(int exprIndex)
exprIndex - Index of the expression.public LSExpression getExpression(java.lang.String name)
name - Name of the expression.public int getNbDecisions()
public LSExpression getDecision(int decisionIndex)
decisionIndex - Index of the decision.public void addConstraint(LSExpression expr)
LSState.Modeling. If the expression is already a constraint,
this method does nothing and returns immediately.
Try to avoid hard constraints as much as possible, because LocalSolver
(and more generally local search) is not suited for solving hardly
constrained problems. In particular, banish constraints that are not
surely satisfied in practice. Ideally, only combinatorial constraints
(which induce the combinatorial structure of your problem) have to be set.
All the other constraints can be relaxed as primary objectives
in order to be "softly" satisfied (goal programming). For instance,
constraint a <= b can be transformed into minimize max(b-a, 0).expr - Expression.public void constraint(LSExpression expr)
expr - Expression.addConstraint(localsolver.LSExpression)public void removeConstraint(LSExpression expr)
LSState.Modeling.expr - Expression.public void removeConstraint(int constraintIndex)
LSState.Modeling.constraintIndex - position of the constraint to remove.public int getNbConstraints()
public LSExpression getConstraint(int constraintIndex)
constraintIndex - Index of the constraint.public void addObjective(LSExpression expr, LSObjectiveDirection direction)
LSState.Modeling. Note that the objectives will be optimized in
the order in which they have been added to the model. It is useful for
lexicographic multiobjective optimization, and more particularly for goal
programming.expr - Expression.direction - Optimization direction of this objective.public void minimize(LSExpression expr)
expr - Expression.addObjective(localsolver.LSExpression, localsolver.LSObjectiveDirection)public void maximize(LSExpression expr)
expr - Expression.addObjective(localsolver.LSExpression, localsolver.LSObjectiveDirection)public void removeObjective(int objectiveIndex)
LSPhase.setOptimizedObjective(int)), or to
disable it (with LSPhase.setEnabled(boolean)). Only allowed in state
LSState.Modeling.objectiveIndex - position of the objective to remove.public int getNbObjectives()
public LSExpression getObjective(int objectiveIndex)
objectiveIndex - Index of the objective.public LSObjectiveDirection getObjectiveDirection(int objectiveIndex)
objectiveIndex - Index of the objective.public int getNbOperands()
public void close()
LSState.Modeling. Once
the model is closed, no expression, constraints or objectives can be
added. The model must be closed before starting its resolution.public void open()
LSState.Modeling. Only allowed in state
LSState.Stopped.public boolean isClosed()
public java.lang.String toString()
toString in class java.lang.Objectpublic int hashCode()
hashCode in class java.lang.Objectpublic boolean equals(java.lang.Object obj)
equals in class java.lang.Object