The Search Algorithms Layer PackageThis package contains the specification and base classes of the Search Algorithms Layer of the DGPF.
This package contains the specification and base classes of the Search Algorithms Layer of the DGPF. The Search Algorithms Layer provides easy-to-use tools to build various multi-dimensional search algorithms and to implement simulation cores that can be shared among all of them. You can thus compare search algorithms directly and select the one that suits the best for your problem.
SearchEnginedefines the interface for starting, aborting, waiting for, and configuring a search as well as an event api allowing you to supervice the searches progress.
SearchContextdefines how a
Genotype, the data representation of the solution candidates, can be modified and simulated. The
SearchContextis the hard core that performs the searches work. It might be useful to instantiate more than one
SearchContexton one machine, one for each processor, for example. For one data type/problem domain, you will provide some basic methods in form of a class derived from
SearchContext. Instances of that class then can be used by any search algorithm implementing our search api. Therefore, you only need to define your problem domain once and then can work on it using all algorithms available.
SearchEnginethrows an event after each update, containing the current state of the search including nice statistical data. Each search algorithm may provide additional statistical data.
SearchContextand queues that allow you to manage such tasks help implementing different parallel or distributed search algorithms. There also is a peer-to-peer extension that can be integrated into arbitrary search algorithms. It enables them to exchange individuals dynamically basing on a policy. Therefore, search algorithms of different kinds can now cooperate, creating a powerful heterogeneous search.
This Open-Source research project is licensed under LGPL, a license even more liberate than the GPL.
See the rich example collection also available on the web for feature demonstrations.
One feature, especially important for developers, is the full documentation of the source code provided. Each method, class, package is fully documented down to privated declares. No parameter is undocumented. We are also happy about hints or request for more documentation, because we want that anyone can use our code and hopefully understand it. This project has also educational character.
You can find more information on the project's home page or on the project's page on SourceForge. The source code and examples can be downloaded at the downloads page. Useful information and news will frequently be published in the Genetic Programming Group.