Localsolver  5.5
localsolver::LSStatistics Class Reference

Detailed Description

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.

Public Member Functions

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

Constructor & Destructor Documentation

localsolver::LSStatistics::~LSStatistics ( )
inline
localsolver::LSStatistics::LSStatistics ( const LSStatistics other)
inline

Member Function Documentation

int localsolver::LSStatistics::getRunningTime ( ) const
inline

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.

Returns
Running time in seconds.
long long localsolver::LSStatistics::getNbIterations ( ) const
inline

Gets the number of iterations.

Only allowed in states S_Paused or S_Stopped.

Returns
Number of iterations.
long long localsolver::LSStatistics::getNbMoves ( ) const
inline

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.

Returns
Number of (attempted) moves.
long long localsolver::LSStatistics::getNbAcceptedMoves ( ) const
inline

Gets the number of accepted moves.

Only allowed in states S_Paused or S_Stopped.

Returns
Number of accepted moves.
long long localsolver::LSStatistics::getNbImprovingMoves ( ) const
inline

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.

Returns
Number of improving moves.
long long localsolver::LSStatistics::getNbRejectedMoves ( ) const
inline

Gets the number of rejected moves.

Only allowed in states S_Paused or S_Stopped.

Returns
Number of rejected moves.
long long localsolver::LSStatistics::getNbInfeasibleMoves ( ) const
inline

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.

Returns
Number of infeasible moves.
double localsolver::LSStatistics::getPercentAcceptedMoves ( ) const
inline

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

Only allowed in states S_Paused or S_Stopped.

Returns
Percentage of accepted moves.
double localsolver::LSStatistics::getPercentImprovingMoves ( ) const
inline

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

Only allowed in states S_Paused or S_Stopped.

Returns
Percentage of improving moves.
double localsolver::LSStatistics::getPercentRejectedMoves ( ) const
inline

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

Only allowed in states S_Paused or S_Stopped.

Returns
Percentage of rejected moves.
double localsolver::LSStatistics::getPercentInfeasibleMoves ( ) const
inline

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

Only allowed in states S_Paused or S_Stopped.

Returns
Percentage of infeasible moves.
std::string localsolver::LSStatistics::toString ( ) const
inline

Returns a string representation of the statistics.

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

Returns
String representation.
std::string localsolver::LSStatistics::getInfo ( ) const
inline

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.
Returns
Info about the search while running.
LSStatistics& localsolver::LSStatistics::operator= ( const LSStatistics other)
inline