Public Types | Public Member Functions | Protected Attributes
mets::abstract_search< move_manager_type > Class Template Reference

An abstract search. More...

#include <abstract-search.hh>

Inheritance diagram for mets::abstract_search< move_manager_type >:
Inheritance graph
[legend]

List of all members.

Public Types

enum  {
  MOVE_MADE = 0, IMPROVEMENT_MADE, ITERATION_BEGIN, ITERATION_END,
  LAST
}

Public Member Functions

 abstract_search (feasible_solution &working, solution_recorder &recorder, move_manager_type &moveman)
 Set some common values needed for neighborhood based metaheuristics.
 abstract_search (const abstract_search< move_manager_type > &)
 purposely not implemented (see Effective C++)
const movecurrent_move () const
 The last move made.
movecurrent_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.
abstract_searchoperator== (const abstract_search< move_manager_type > &)
 purposely not implemented (see Effective C++)
const solution_recorderrecorder () const
 The solution recorder instance.
virtual void search ()=0 throw (no_moves_error)
 This method starts the search.
int step () const
 The current step of the algorithm (to be used by the observers).
const feasible_solutionworking () const
 The current working solution.
feasible_solutionworking ()
virtual ~abstract_search ()
 Virtual destructor.

Protected Attributes

move_manager_type::iterator current_move_m
move_manager_type & moves_m
solution_recordersolution_recorder_m
int step_m
feasible_solutionworking_solution_m

Detailed Description

template<typename move_manager_type>
class mets::abstract_search< move_manager_type >

An abstract search.

See also:
mets::tabu_search, mets::simulated_annealing, mets::local_search

Definition at line 80 of file abstract-search.hh.


Member Enumeration Documentation

template<typename move_manager_type>
anonymous enum
Enumerator:
MOVE_MADE 

We just made a move.

IMPROVEMENT_MADE 

Our solution_recorder_chain object reported an improvement.

ITERATION_BEGIN 

We are about to start a new iteration.

ITERATION_END 

We have done the iteration.

LAST 

Placeholer for next values.

Definition at line 116 of file abstract-search.hh.


Constructor & Destructor Documentation

template<typename move_manager_type>
mets::abstract_search< move_manager_type >::abstract_search ( feasible_solution working,
solution_recorder recorder,
move_manager_type &  moveman 
) [inline]

Set some common values needed for neighborhood based metaheuristics.

Parameters:
workingThe starting point solution (this will be modified during search as the working solution)
recorderA solution recorder instance used to record the best solution found
movemanA problem specific implementation of the move_manager_type used to generate the neighborhood.

Definition at line 95 of file abstract-search.hh.

template<typename move_manager_type>
mets::abstract_search< move_manager_type >::abstract_search ( const abstract_search< move_manager_type > &  )

purposely not implemented (see Effective C++)

template<typename move_manager_type>
virtual mets::abstract_search< move_manager_type >::~abstract_search ( ) [inline, virtual]

Virtual destructor.

Definition at line 113 of file abstract-search.hh.


Member Function Documentation

template<typename move_manager_type>
const move& mets::abstract_search< move_manager_type >::current_move ( ) const [inline]

The last move made.

Definition at line 155 of file abstract-search.hh.

template<typename move_manager_type>
move& mets::abstract_search< move_manager_type >::current_move ( ) [inline]

The last move made.

Definition at line 160 of file abstract-search.hh.

template<typename move_manager_type>
const move_manager_type& mets::abstract_search< move_manager_type >::move_manager ( ) const [inline]

The move manager used by this search.

Definition at line 165 of file abstract-search.hh.

template<typename move_manager_type>
move_manager_type& mets::abstract_search< move_manager_type >::move_manager ( ) [inline]

The move manager used by this search.

Definition at line 170 of file abstract-search.hh.

template<typename move_manager_type>
abstract_search& mets::abstract_search< move_manager_type >::operator== ( const abstract_search< move_manager_type > &  )

purposely not implemented (see Effective C++)

template<typename move_manager_type>
const solution_recorder& mets::abstract_search< move_manager_type >::recorder ( ) const [inline]

The solution recorder instance.

Definition at line 141 of file abstract-search.hh.

template<typename move_manager_type>
virtual void mets::abstract_search< move_manager_type >::search ( ) throw (no_moves_error) [pure virtual]

This method starts the search.

Remember that this is a minimization.

An exception mets::no_moves_error can be risen when no move is possible.

Implemented in mets::tabu_search< move_manager_type >, mets::simulated_annealing< move_manager_type >, and mets::local_search< move_manager_type >.

template<typename move_manager_type>
int mets::abstract_search< move_manager_type >::step ( ) const [inline]

The current step of the algorithm (to be used by the observers).

When you implement a new type of search you should set step_m protected variable to the status of the algorithm (0 = "MOVE_MADE", 1 = "IMPROVEMENT_MADE", etc.).

Definition at line 180 of file abstract-search.hh.

template<typename move_manager_type>
const feasible_solution& mets::abstract_search< move_manager_type >::working ( ) const [inline]

The current working solution.

Definition at line 146 of file abstract-search.hh.

template<typename move_manager_type>
feasible_solution& mets::abstract_search< move_manager_type >::working ( ) [inline]

Definition at line 150 of file abstract-search.hh.


Member Data Documentation

template<typename move_manager_type>
move_manager_type::iterator mets::abstract_search< move_manager_type >::current_move_m [protected]

Definition at line 187 of file abstract-search.hh.

template<typename move_manager_type>
move_manager_type& mets::abstract_search< move_manager_type >::moves_m [protected]

Definition at line 186 of file abstract-search.hh.

template<typename move_manager_type>
solution_recorder& mets::abstract_search< move_manager_type >::solution_recorder_m [protected]

Definition at line 184 of file abstract-search.hh.

template<typename move_manager_type>
int mets::abstract_search< move_manager_type >::step_m [protected]

Definition at line 188 of file abstract-search.hh.

template<typename move_manager_type>
feasible_solution& mets::abstract_search< move_manager_type >::working_solution_m [protected]

Definition at line 185 of file abstract-search.hh.


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


pcl
Author(s): Open Perception
autogenerated on Wed Aug 26 2015 15:38:54