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 objectives 0, ..., k-1 are declared, each objective i can be optimized while maintaining the values of objectives 0, ..., i-1 previously obtained and ignoring the values of objectives i+1, ..., k-1. During such an optimization phase, objective i 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).
Public Member Functions |
void | setTimeLimit (int timeLimit) |
| Sets the time limit of this phase in seconds.
|
int | getTimeLimit () const |
| Gets the time limit of this phase in seconds.
|
void | setIterationLimit (long long iterationLimit) |
| Sets the number of iterations of this phase.
|
long long | getIterationLimit () const |
| Gets the number of iterations of this phase.
|
void | setOptimizedObjective (int objectiveIndex) |
| Sets the optimized objective of this phase.
|
int | getOptimizedObjective () const |
| Gets the index of the optimized objective.
|
void | setEnabled (bool enabled) |
| Sets the enabled status of this phase.
|
bool | isEnabled () const |
| Returns true if the phase is enabled, False otherwise.
|
LSStatistics | getStatistics () const |
| Gets the statistics of this phase.
|
std::string | toString () const |
| Returns a string representation of this phase.
|
void localsolver::LSPhase::setIterationLimit |
( |
long long |
iterationLimit | ) |
|
|
inline |
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^63-1 = 9,223,372,036,854,775,807 > 10^18. Only allowed in state S_Stopped.
- Parameters
-
iterationLimit | Iteration limit. |
void localsolver::LSPhase::setOptimizedObjective |
( |
int |
objectiveIndex | ) |
|
|
inline |
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 objectives 0, ..., k-1 are declared, each objective i can be optimized while maintaining the values of objectives 0, ..., i-1 previously obtained and ignoring the values of objectives i+1, ..., k-1. By default, the optimized objective corresponds to the last objective declared in the model. Only allowed in state S_Stopped.
- Parameters
-
objectiveIndex | Index of the optimized objective. |