Portions of a generic genetic-algorithms library
(→A First Attempt) |
|||
Line 3: | Line 3: | ||
... to be continued ... | ... to be continued ... | ||
+ | |||
+ | |||
+ | What is the motivation here? Off-line training of neural networks via genetic algorithms to model non-linear systems. | ||
==Theoretical Background== | ==Theoretical Background== | ||
Some Basic theory on genetic algorithms (perhaps some background on artificial neural networks, and artificial neural network training?) | Some Basic theory on genetic algorithms (perhaps some background on artificial neural networks, and artificial neural network training?) | ||
+ | |||
+ | ==Requirements== | ||
+ | What should a generic genetic-algorithms library do, and why? How might this change? | ||
==A First Attempt== | ==A First Attempt== | ||
− | My first working attempt at a generic genetic-algorithms library is shown in Fig. 1. This study will dissect, critique, and redesign portions of this initial design. | + | My first working attempt at a generic genetic-algorithms library is shown in Fig. 1. This study will dissect, critique, and redesign portions of this initial library design. |
[[image:gaFirstAttempt.jpg|thumb|800px|centre|'''Figure 1: A [[UML 2.1]] [[Class diagram|class diagram]] representing my first working attempt at a generic genetic-algorithms library''']] | [[image:gaFirstAttempt.jpg|thumb|800px|centre|'''Figure 1: A [[UML 2.1]] [[Class diagram|class diagram]] representing my first working attempt at a generic genetic-algorithms library''']] |
Revision as of 01:18, 5 August 2008
Contents |
Introduction
Over the last few months I have become interested in problems associated with the modeling of non-linear systems. This interest has lead me to look into artificial neural networks, and how they can be trained using genetic algorithms. For those with an interest in this area, development environments like Matlab provide an ideal platform for quick implementation and testing. However, at deployment time, a Matlab script is of little use to clients with a limited budget, or to developers targeting some embedded platforms.
... to be continued ...
What is the motivation here? Off-line training of neural networks via genetic algorithms to model non-linear systems.
Theoretical Background
Some Basic theory on genetic algorithms (perhaps some background on artificial neural networks, and artificial neural network training?)
Requirements
What should a generic genetic-algorithms library do, and why? How might this change?
A First Attempt
My first working attempt at a generic genetic-algorithms library is shown in Fig. 1. This study will dissect, critique, and redesign portions of this initial library design.
Creating New Candidates
A modified Factory pattern is used here, this was taken from a Microsoft Patterns and Practices article by Doug Purdy.
Manipulating Chromosomes
A chromosome is stored in a Candidate object as a List of bytes. The responsibility of manipulating chromosomes is shared by IMutator implementers.
Calculating Fitness
Fitness calculations are known about by
- the GeneticAlgorithms class
- the Generation class
- the Candidate class
Reporting Statistics
Generational statistical information is known about by
- the GeneticAlgorithms class
- the Generation class