LocalSolver logo
is now
Hexaly logo

We're excited to share that we are moving forward. We're leaving behind the LocalSolver brand and transitioning to our new identity: Hexaly. This represents a leap forward in our mission to enable every organization to make better decisions faster when faced with operational and strategic challenges.

This page is for an old version of Hexaly Optimizer. We recommend that you update your version and read the documentation for the latest stable release.

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).

Summary

Attributes
status Status of the solution.
Methods
set_value Sets the value of the given expression in this solution.
get_value Returns the value of the given expression in this solution.
is_violated Returns true if the given expression is violated in this solution.
is_undefined Returns true if the given expression has an undefined value in this solution.
get_status Returns the status of the solution.
get_objective_bound Returns the bound computed by the solver for the given objective.
clear Clear the solution and set all decisions to zero.

Instance methods

LSSolution.set_value(expr, value)

Sets the value of the given expression in this solution. Only decisions can be set. Only allowed in state LSState.PAUSED or LSState.STOPPED. Values must be doubles, integers or booleans. If the solver was not launched, this value will be used as an initial value for the decision.

Parameters:
  • expr (LSExpression) – Decision
  • value – Value assigned to the decision in this solution.
LSSolution.get_value(expr)

Returns the value of the given expression in this solution. Only allowed in states LSState.PAUSED or LSState.STOPPED. The type of the returned value depends on the type of the LSExpression. It can be a boolean, an integer, a double, an LSCollection or an LSArray.

Parameters:expr (LSExpression) – Expression
Returns:Value of the expression in this solution.
Return type:bool, int, double or LSCollection
LSSolution.is_violated(expr)

Returns true if the given expression is violated in this solution.

An expression can be violated in 2 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 LSState.PAUSED or LSState.STOPPED.

Returns:True if this expression is violated in this solution.
Return type:bool
LSSolution.is_undefined(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).
Returns:True if this expression has an undefined value in this solution.
Return type:bool
Since:7.0
LSSolution.get_status()

Returns the status of the solution. Only allowed in states LSState.PAUSED or LSState.STOPPED.

You can also use the shortcut member status

Returns:Status of the solution.
Return type:LSSolutionStatus
LSSolution.get_objective_bound(obj_index)

Returns the bound computed by the solver for the given objective. If the solver has never been launched, this method returns a large integer number or math.inf. Only allowed in states LSState.PAUSED or LSState.STOPPED.

Parameters:obj_index (int) – Index of the objective
Returns:The bound of the objective
Return type:int or double
LSSolution.clear()

Clear the solution and set all decisions to zero. Only allowed in state LSState.STOPPED.

Instance attributes

All get/set methods have their attribute counterpart. You can use them as shortcuts to improve the readability or your models and codes.

LSSolution.status

Status of the solution. This attribute is read-only. It is a shortcut for get_status().