LSStatistics Class

class localsolver::LSStatistics

Statistics of the search.

The statistics are useful for evaluating the quality of your model. Indeed, your model is suited for LocalSolver (and more generally for local search) if the percentage of accepted moves is larger than 1 % with an annealing level equal to 0. Larger is the percentage of accepted moves, larger is the diversification of the search, better is the convergence toward high-quality solutions. If the number of accepted moves is too low, we suggests you to relax some constraints of the model (goal programming) or to augment the annealing level. A fine modeling is much preferable to a fine tuning of the search, both for effectiveness and for robustness.

Summary

Functions
getRunningTime Gets the running time in seconds.
getNbIterations Gets the number of iterations.
getNbMoves Gets the number of (attempted) moves.
getNbAcceptedMoves Gets the number of accepted moves.
getNbImprovingMoves Gets the number of accepted moves having improved the cost of the current solution.
getNbRejectedMoves Gets the number of rejected moves.
getNbInfeasibleMoves Gets the number of moves leading to infeasible solutions.
getPercentAcceptedMoves Gives the percentage of accepted moves relative to the number of moves.
getPercentImprovingMoves Gives the percentage of improving moves relative to the number of moves.
getPercentRejectedMoves Gives the percentage of rejected moves relative to the number of moves.
getPercentInfeasibleMoves Gives the percentage of infeasible moves relative to the number of moves.
toString Returns a string representation of the statistics.
getInfo Returns useful info about the search while running.

Functions

int getRunningTime() const

Gets the running time in seconds.

Note that is the “real” time spent (and not only the CPU or system time). Only allowed in states S_Paused or S_Stopped.

Return:Running time in seconds.

long long getNbIterations() const

Gets the number of iterations.

Only allowed in states S_Paused or S_Stopped.

Return:Number of iterations.

long long getNbMoves() const

Gets the number of (attempted) moves.

This corresponds to the number of explored solutions (feasible or infeasible). Only allowed in states S_Paused or S_Stopped.

Return:Number of (attempted) moves.

long long getNbAcceptedMoves() const

Gets the number of accepted moves.

Only allowed in states S_Paused or S_Stopped.

Return:Number of accepted moves.

long long getNbImprovingMoves() const

Gets the number of accepted moves having improved the cost of the current solution.

Improving moves are a part of accepted moves. Only allowed in states S_Paused or S_Stopped.

Return:Number of improving moves.

long long getNbRejectedMoves() const

Gets the number of rejected moves.

Only allowed in states S_Paused or S_Stopped.

Return:Number of rejected moves.

long long getNbInfeasibleMoves() const

Gets the number of moves leading to infeasible solutions.

Infeasible moves are a part of rejected moves. Only allowed in states S_Paused or S_Stopped.

Return:Number of infeasible moves.

double getPercentAcceptedMoves() const

Gives the percentage of accepted moves relative to the number of moves.

Only allowed in states S_Paused or S_Stopped.

Return:Percentage of accepted moves.

double getPercentImprovingMoves() const

Gives the percentage of improving moves relative to the number of moves.

Only allowed in states S_Paused or S_Stopped.

Return:Percentage of improving moves.

double getPercentRejectedMoves() const

Gives the percentage of rejected moves relative to the number of moves.

Only allowed in states S_Paused or S_Stopped.

Return:Percentage of rejected moves.

double getPercentInfeasibleMoves() const

Gives the percentage of infeasible moves relative to the number of moves.

Only allowed in states S_Paused or S_Stopped.

Return:Percentage of infeasible moves.

std::string toString() const

Returns a string representation of the statistics.

Only allowed in states S_Paused or S_Stopped. Useful for debugging or logging purposes.

Return:String representation.

std::string getInfo() const

Returns useful info about the search while running.

Only allowed if the solver has been started at least once. Only allowed in states S_Paused or S_Stopped. Useful for debugging or logging purposes.

Here are some explanations about the output string:

  • “mov” corresponds to the number of moves performed.
  • “inf” corresponds to the percentage of infeasible moves.
  • “acc” corresponds to the percentage of accepted moves.
  • “imp” corresponds to the number of improving moves.

Return:Info about the search while running.