next up previous
Next: Makefile Up: Example: Implementing Circular Permutation Previous: Example: Implementing Circular Permutation

Relationships with Neighborhood and Objective Function

Neighborhood Operator: the user must provide parameter-overriding declarations and definitions of two methods for the basic class NeighborOp, as well as all of its derived operators such as Swap. They are:

Technically, we could commit the mutation in gen_neighbor_element() and eliminate commit(). However, commit allows several neighbors of a solution s to exist at the same time, specified only by a mutation and a pointer to the physical solution structure of s without actually possessing it. This implementation boots efficiency if we later discard most neighbors and choose only one of them.

These two methods define the essence of a neighborhood structure in a local search search setting. Paired with objective functions and a search method, they traverse the search space from one solution to another.

Objective Function: the user must provide parameter-overriding declarations of cost, delta_cost, correctness, delta_correctness member functions of ObjectiveFunction class. These will be used when a new problem is added to the system.



Subsections
next up previous
Next: Makefile Up: Example: Implementing Circular Permutation Previous: Example: Implementing Circular Permutation
Vinhthuy Phan 2003-05-15