LSPhase Class¶

class
localsolver.
LSPhase
¶ Optimization phase. Since LocalSolver allows lexicographic multiobjective optimization, we allow you to parameterize the time or the number of iterations to spend in optimizing each objective. When multiple objectives are declared, these objectives are optimized in lexicographic order (in the order of their declaration in the model). Thus, if
k
objectives0, ..., k1
are declared, each objectivei
can be optimized while maintaining the values of objectives0, ..., i1
previously obtained and ignoring the values of objectivesi+1, ..., k1
. During such an optimization phase, objectivei
is called the optimized objective.At least one phase must be created to launch the solver. If you have only one objective to optimize, then create a phase, set the time or the number of iterations, and run the solver. By default, the optimized objective of a phase corresponds to the last objective declared in the model (in this case, all objectives of the model are optimized together).
Summary¶
SetTimeLimit 
Sets the time limit of this phase in seconds. 
GetTimeLimit 
Gets the time limit of this phase in seconds. 
SetIterationLimit 
Sets the number of iterations of this phase. 
GetIterationLimit 
Gets the number of iterations of this phase. 
SetOptimizedObjective 
Sets the optimized objective of this phase. 
GetOptimizedObjective 
Gets the index of the optimized objective. 
SetEnabled 
Sets the enabled status of this phase. 
IsEnabled 
Returns true if the phase is enabled, False otherwise. 
GetStatistics 
Gets the statistics of this phase. 
ToString 
Returns a string representation of this phase. 
Instance methods¶

void
SetTimeLimit
(int timeLimit)¶ Sets the time limit of this phase in seconds. Note that the “real” time (that is, total time) spent to resolve the model is considered here and not only the CPU time). The default time limit is set to the largest positive integer on 32 bits, that is
2^311 = 2,147,483,647 > 10^9
. Only allowed in stateStopped
.Note that if the optimal value of an objective is found before the end of the corresponding phase, the remaining time will be transferred to the next phase.
Arguments: timeLimit (int) – Time limit in seconds.

int
GetTimeLimit
()¶ Gets the time limit of this phase in seconds. Only allowed in states
Paused
orStopped
.Returns: Time limit in seconds. See: LSPhase.SetTimeLimit

void
SetIterationLimit
(long iterationLimit)¶ Sets the number of iterations of this phase. Fixing the seed and the number of iterations of all phases ensures the reproducibility of results over several runs. The default number of iterations is set to the largest positive integer on 64 bits, that is
2^631 = 9,223,372,036,854,775,807 > 10^18
. Only allowed in stateStopped
.Note that if the optimal value of an objective is found before the end of the corresponding phase, the remaining iterations will be transferred to the next phase.
Arguments: iterationLimit (long) – Iteration limit.

long
GetIterationLimit
()¶ Gets the number of iterations of this phase. Only allowed in states
Paused
orStopped
.Returns: Iteration limit. See: LSPhase.SetIterationLimit

void
SetOptimizedObjective
(int objectiveIndex)¶ Sets the optimized objective of this phase. When multiple objectives are declared, these objectives are optimized in lexicographic order (in the order of their declaration in the model). Thus, if
k
objectives0, ..., k1
are declared, each objectivei
can be optimized while maintaining the values of objectives0, ..., i1
previously obtained and ignoring the values of objectivesi+1, ..., k1
. By default, the optimized objective corresponds to the last objective declared in the model. Only allowed in stateStopped
.Arguments: objectiveIndex (int) – Index of the optimized objective.

int
GetOptimizedObjective
()¶ Gets the index of the optimized objective. Only allowed in states
Paused
orStopped
.Returns: Index of the optimized objective. See: LSPhase.SetOptimizedObjective

void
SetEnabled
(bool enabled)¶ Sets the enabled status of this phase. The solver only optimize enabled phases. Disabling a phase can be useful when an objective has been removed from the model by
LSModel.RemoveObjective(int)
. By default, a phase is enabled. Only allowed in stateStopped
.Since: 5.0 Arguments: enabled (bool) – True to enable the phase, False to disable it.

bool
IsEnabled
()¶ Returns true if the phase is enabled, False otherwise. Only allowed in states
Paused
orStopped
.Since: 5.0 Returns: True if phase is enabled

LSStatistics
GetStatistics
()¶ Gets the statistics of this phase. Statistics are reset to zero before each resolution. Only allowed in states
Paused
orStopped
. Note that for performance reasons, this function always returns the same object.Returns: Statistics. See: LSStatistics

string
ToString
()¶ Returns a string representation of this phase. Useful for debugging or logging purposes.
Returns: String representation.