Orbital library

orbital.algorithm.template
Interface AlgorithmicProblem

All Known Subinterfaces:
BacktrackingProblem, DivideAndConquerProblem, DynamicProgrammingProblem, GeneralSearchProblem, GeneticAlgorithmProblem, GreedyProblem, MarkovDecisionProblem
All Known Implementing Classes:
DelegateGeneralSearchProblem, DynamicProgrammingOptimizingProblem, OpenClosedGeneralSearchProblem

public interface AlgorithmicProblem

AlgorithmicProblem interface used for tagging hook class interfaces for algorithmic templates.

An algorithmic problem interface is the hook declaring the problem-specific properties for the algorithmic template class that solves the general problem. After implementing such an algorithmic problem interface, it can simply be plugged into the corresponding algorithmic template class to start solving the problem. So algorithmic problem interfaces contain the inherent properties describing the specific problem at hand. Thereby it specifies what the problem really is, but usually not (or not much of) how the problem should be solved.

Apart from the relief from implementing the algorithm itself, using algorithmic templates often has the powerful advantage that several different algorithms can be interchanged freely without the need to change more than just the single constructor call to the concrete implementation. Once a problem has been modeled accordingly by implementing its hook class, concrete solution algorithms can even be interchanged at runtime.

Author:
André Platzer
See Also:
AlgorithmicTemplate, Template Method
Structure:
depends AlgorithmicTemplate


Orbital library
1.3.0: 11 Apr 2009

Copyright © 1996-2009 André Platzer
All Rights Reserved.