Statement of Requirements
- Customer Goals
- The aim is to provide a library of components to simplify the construction of genetic algorithms.
- Components should be written in Ada 95.
- As a minimum the toolkit should be able to implement the classic genetic algorithm with:
- Bit string genetic representation,
- Random binary initialisation,
- Binary mutation and single point crossover genetic operator,
- Generation replacement model.
- In addition other techniques may be included, such as:
- Vector, ordered list, number genetic representation,
- Distributed and random search initialisation,
- Other mutation, multi-point crossover, and inversion genetic operators,
- Steady-state, elitist, and without-duplicate models.
- Other facilities which the toolkit should support:
- User provided fitness values for potential solutions,
- Family trees to relate all previous solutions,
- Decision support which helps the user explore the solution space,
- Saving of genetic algorithm state to be recreated later.
- The toolkit should be extensible so that components specific to a particular genetic algorithm can be added by the
- Components should be contained so the use of one does not require the use of another.
- Advanced techniques such as meta-genetic algorithms, adaptive genetics, and interpolative genetics should be
implementable using the toolkit but need not be implemented.
- The toolkit should be proved by creating two dissimilar genetic algorithms using its components.
- Technical Goals
- Functional Requirements
- Toolkit components should be divided into three classes
- core toolkit - components required for classic genetic algorithm with: binary string representation, random binary
initialisation, simple mutation and single point crossover, generation replacement model
- auxiliary toolkit - components to extend functionality of genetic algorithms such as decision support
- extended toolkit - components for other genetic algorithm techniques
- The core toolkit has highest priority, then the auxiliary toolkit and finally the extended toolkit.
- Component organisation must:
- allow for the large number of possible genetic algorithms,
- be extensible with user defined components.
- not restrict the user within components
- be savable
- Two dissimilar genetic algorithms should be created to show the power and functionality of the toolkit.
- A manual to explain the use of the toolkit should be made.
- Non-functional Requirements
- All components should be written in Ada 95.
- Typical population sizes in genetic algorithms do not exceed a few hundred but storing individuals permanently will
increase this by several orders of magnitude.
- The core toolkit and the first demonstration genetic algorithm should be completed by the end of week 10,
- The second demonstration genetic algorithm and the rest of the project should be delivered by the end of week