LSSolution Class¶

class
localsolver.
LSSolution
¶ Solution to the optimization model. A solution carries the values of all expressions in the model. It is used to retrieve the values of all expressions (getting the solution), or to set the values of some decisions (setting the solution).
See: LSSolutionStatus
Summary¶
GetLocalSolver 
Returns the LocalSolver object associated to this solution. 
SetValue 
Sets the value of the given expression in this solution. 
SetIntValue 
Sets the value of the given expression in this solution. 
SetDoubleValue 
Sets the value of the given expression in this solution. 
GetValue 
Returns the value of the given expression in this solution. 
GetDoubleValue 
Returns the value of the given expression in this solution. 
GetIntValue 
Returns the value of the given expression in this solution. 
GetCollectionValue 
Returns the value of the given expression in this solution. 
GetArrayValue 
Returns the value of the given expression in this solution. 
IsViolated 
Returns true if the given expression is violated in this solution. 
IsUndefined 
Returns true if the given expression has an undefined value in this solution. 
GetViolatedExpressions 
Returns the collection of violated expressions in this solution. 
GetStatus 
Returns the status of the solution. 
GetObjectiveBound 
Returns the bound computed by the solver for the given objective. 
GetIntObjectiveBound 
Returns the bound computed by the solver for the given objective. 
GetDoubleObjectiveBound 
Returns the bound computed by the solver for the given objective. 
Clear 
Clear the solution and set all decisions to zero. 
Instance methods¶

LocalSolver
GetLocalSolver
()¶ Returns the LocalSolver object associated to this solution.
Returns: LocalSolver object Return type: LocalSolver

void
SetValue
(LSExpression expr, long value)¶ Sets the value of the given expression in this solution. Only decisions can be set. Only allowed in state
Paused
orStopped
. Only allowed if this expression is an integer or a boolean. If the solver was not launched, this value will be used as an initial value for the decision.This method has the same behavior as
LSSolution.SetIntValue
.Arguments:  expr (LSExpression) – Decision.
 value (long) – Value assigned to the decision in this solution.
See: See: See:

void
SetValue
(LSExpression expr, double value) Sets the value of the given expression in this solution. Only decisions can be set. Only allowed in state
Paused
orStopped
. Only allowed if this expression is a double. If the solver was not launched, this value will be used as an initial value for the decision.This method has the same behavior as
LSSolution.SetDoubleValue
.Arguments:  expr (LSExpression) – Decision.
 value (double) – Value assigned to the decision in this solution.
See: See:

void
SetIntValue
(LSExpression expr, long value)¶ Sets the value of the given expression in this solution. Only decisions can be set. Only allowed in state
Paused
orStopped
. Only allowed if this expression is an integer or a boolean. If the solver was not launched, this value will be used as an initial value for the decision.Since: 3.0
Arguments:  expr (LSExpression) – Decision.
 value (long) – Value assigned to the decision in this solution.
See: See: See:

void
SetDoubleValue
(LSExpression expr, long value)¶ Sets the value of the given expression in this solution. Only decisions can be set. Only allowed in state
Paused
orStopped
. If the solver was not launched, this value will be used as an initial value for the decision. Only allowed if this expression is a double.Since: 3.0
Arguments:  expr (LSExpression) – Decision.
 value (long) – Value assigned to the decision in this solution.
See: See:

long
GetValue
(LSExpression expr)¶ Returns the value of the given expression in this solution. Only allowed in states
Paused
orStopped
. Only allowed if this expression is an integer or a boolean.This method has the same behavior as
LSSolution.GetIntValue
.Arguments: expr (LSExpression) – Expression. Returns: Value of the expression in this solution. Return type: long See: LSExpression.IsInt See: LSExpression.IsBool

double
GetDoubleValue
(LSExpression expr)¶ Returns the value of the given expression in this solution. Only allowed in states
Paused
orStopped
. Only allowed if this expression is a double.Since: 3.0 Arguments: expr (LSExpression) – Expression. Returns: Value of the expression in this solution. Return type: double See: LSExpression.IsDouble

long
GetIntValue
(LSExpression expr)¶ Returns the value of the given expression in this solution. Only allowed in states
Paused
orStopped
. Only allowed if this expression is an integer or a boolean.Since: 3.0 Arguments: expr (LSExpression) – Expression. Returns: Value of the expression in this solution. Return type: long See: LSExpression.IsInt See: LSExpression.IsBool

LSCollection
GetCollectionValue
(LSExpression expr)¶ Returns the value of the given expression in this solution. Only allowed in states
Paused
orStopped
. Only allowed if this expression is a collection (list or set).Since: 5.5 Arguments: expr (LSExpression) – Expression. Returns: Value of the expression in this solution. Return type: LSCollection See: LSExpression.IsCollection

LSCollection
GetArrayValue
(LSExpression expr)¶ Returns the value of the given expression in this solution. Only allowed in states
Paused
orStopped
. Only allowed if this expression is an array.Since: 7.5 Arguments: expr (LSExpression) – Expression. Returns: Value of the expression in this solution. Return type: LSArray See: LSExpression.IsArray

bool
IsViolated
(LSExpression expr)¶ Returns true if the given expression is violated in this solution. An expression can be violated in 3 cases:
 It is a constraint and its value is 0.
 It is a a double and its value is NaN (Not A Number).
 It is an integer or boolean with no valid value (arithmetic or out of bounds exception).
Only allowed in states
Paused
orStopped
.Since: 5.5 Arguments: expr (LSExpression) – Expression. Returns: True if the expression is violated in this solution. Return type: bool

bool
IsUndefined
(LSExpression expr)¶ Returns true if the given expression has an undefined value in this solution. An expression can be undefined in 2 cases:
 It is a a double and its value is NaN (NotANumber).
 It is an integer or boolean with no valid value (arithmetic or out of bounds exception).
Only allowed in states
Paused
orStopped
.Since: 7.0 Arguments: expr (LSExpression) – Expression. Returns: True if this expression has an undefined value in this solution.

IEnumerable<LSExpression>
GetViolatedExpressions
()¶ Returns the collection of violated expressions in this solution.

LSSolutionStatus
GetStatus
()¶ Returns the status of the solution. Only allowed in states
Paused
orStopped
.Returns: Status of the solution Return type: LSSolutionStatus

long
GetObjectiveBound
(int objectiveIndex)¶ Returns the bound computed by the solver for the given objective. If the solver has never been launched, this method returns Int64.MaxValue or Int64.MinValue depending on the optimization direction of the objective. Only allowed in states
Paused
orStopped
. Only allowed if this expression is a boolean or an integer. This method has the same behavior asLSSolution.GetIntObjectiveBound
.Since: 8.5 Arguments: objectiveIndex (int) – Index of the objective. Returns: Bound of the given objective. Return type: long See: LSExpression.IsInt See: LSExpression.IsBool

long
GetIntObjectiveBound
(int objectiveIndex)¶ Returns the bound computed by the solver for the given objective. If the solver has never been launched, this method returns Int64.MaxValue or Int64.MinValue depending on the optimization direction of the objective. Only allowed in states
Paused
orStopped
. Only allowed if this expression is a boolean or an integer.Since: 8.5 Arguments: objectiveIndex (int) – Index of the objective. Returns: Bound of the given objective. Return type: long See: LSExpression.IsInt See: LSExpression.IsBool

double
GetDoubleObjectiveBound
(int objectiveIndex)¶ Returns the bound computed by the solver for the given objective. If the solver has never been launched, this method returns Double.PositiveInfinity or Double.NegativeInfinity depending on the optimization direction of the objective. Only allowed in states
Paused
orStopped
. Only allowed if this expression is a double.Since: 8.5 Arguments: objectiveIndex (int) – Index of the objective. Returns: Bound of the given objective. Return type: double See: LSExpression.IsDouble