METSlib 0.6

- Main Page
- Modules
- Classes

- Class List
- Class Hierarchy
- Class Members

Public Member Functions | Protected Attributes | List of all members
mets::local_search< move_manager_type > Class Template Reference
Local Search

Local search algorithm. More...

`#include <local-search.hh>`

Inheritance diagram for mets::local_search< move_manager_type >:
Collaboration diagram for mets::local_search< move_manager_type >:

## Public Member Functions
| local_search (evaluable_solution &starting_point, solution_recorder &recorder, move_manager_type &moveman, gol_type epsilon=1e-7, bool short_circuit=false)
| Creates a local search instance. More...
| local_search (const local_search &)
| purposely not implemented (see Effective C++)
local_search & | operator= (const local_search &)
virtual void | throw (no_moves_error)
| This method starts the local search process. More...
Public Member Functions inherited from mets::abstract_search< move_manager_type >
| abstract_search (feasible_solution &working, solution_recorder &recorder, move_manager_type &moveman)
| Set some common values needed for neighborhood based metaheuristics. More...
| abstract_search (const abstract_search< move_manager_type > &)
| purposely not implemented (see Effective C++)
abstract_search & | operator== (const abstract_search< move_manager_type > &)
| purposely not implemented (see Effective C++)
virtual | ~abstract_search ()
| Virtual destructor.
const solution_recorder & | recorder () const
| The solution recorder instance.
const feasible_solution & | working () const
| The current working solution.
feasible_solution & | working ()
const move & | current_move () const
| The last move made.
move & | current_move ()
| The last move made.
const move_manager_type & | move_manager () const
| The move manager used by this search.
move_manager_type & | move_manager ()
| The move manager used by this search.
int | step () const
| The current step of the algorithm (to be used by the observers). More...
Public Member Functions inherited from mets::subject< abstract_search< move_manager_type > >
virtual void | attach (observer< abstract_search< move_manager_type > > &o)
| Attach a new observer to this subject. More...
virtual void | detach (observer< abstract_search< move_manager_type > > &o)
| Detach a new observer to this subject. More...
virtual void | notify ()
| Notify all attached observers. More...

## Protected Attributes
bool | short_circuit_m
gol_type | epsilon_m
Protected Attributes inherited from mets::abstract_search< move_manager_type >
solution_recorder & | solution_recorder_m
feasible_solution & | working_solution_m
move_manager_type & | moves_m
move_manager_type::iterator | current_move_m
int | step_m
Protected Attributes inherited from mets::subject< abstract_search< move_manager_type > >
std::set< observer < abstract_search < move_manager_type > > * > | observers_m

## Additional Inherited Members
Public Types inherited from mets::abstract_search< move_manager_type >
enum | { MOVE_MADE = 0, IMPROVEMENT_MADE, ITERATION_BEGIN, ITERATION_END, LAST }

## Detailed Description

### template<typename move_manager_type>
class mets::local_search< move_manager_type >

Local search algorithm.

With customary phase alternation and move managers generated neighborhood this can be used to do also a Random Restart Local Search, a Greedy Search, an Iterated Local Search and a Variable Neighborhood Search.

## Constructor & Destructor Documentation

template<typename move_manager_type >

mets::local_search< move_manager_type >::local_search | ( | evaluable_solution & | starting_point,
|  | solution_recorder & | recorder,
|  | move_manager_type & | moveman,
|  | gol_type | epsilon = `1e-7`,
|  | bool | short_circuit = `false`
| ) |  |

Creates a local search instance.

Parameters

  working | The working solution (this will be modified during search)
  best_so_far | A different solution instance used to store the best solution found
  moveman | A problem specific implementation of the move_manager_type concept used to generate the neighborhood.
  short_circuit | Wether the search should stop on the first improving move or not.

## Member Function Documentation

template<typename move_manager_type >

virtual void mets::local_search< move_manager_type >::throw | ( | no_moves_error |  | ) |
| virtual

This method starts the local search process.

To have a real local search you should provide an move_manager_type than enumerates all feasible moves.

Implements mets::abstract_search< move_manager_type >.

The documentation for this class was generated from the following file:

- metslib/local-search.hh

Return to METSlib home page