A Versatile Genetic Algorithm System in Ada: Implementation and Applications

Max Edwards




Abstract
Table of contents
<<< previous  Page 39 of 52  next >>>

A.6 Design in more detail

A.6.1 Package dependencies

The following table shows the dependencies present within a complete program built using VAGAS, where packages at each level are only "visible" to units at subsequent levels:

Level

Package/program unit name

Description

0

a.

b.

c.

Maths_Constants

Maths_Library

Text_IO

Auxiliary packages

System packages assumed to be available, providing fundamental IO and mathematical facilities not specific to this project

1

d.

e.

f.

g.

Genetic c

Graphics c

Maths ab

Random_Numbers bc

General VAGAS packages

Non-generic GA types and routines

Simple graphical interface

Useful mathematical functions

Basic random-number facilities

2

h.

i.

j.

k.

l.

Permutation_Chromosome cdg*

Report cde

Scaling cd

Selection cdg

Standard_Chromosome cdg*

Building block packages

Chromosome package for permutation strings

Simple user interface

Useful fitness-scaling routines

Useful selection routines

Chromosome package for standard n-ary strings

3

m.

n.

Genetic_Algorithm cdgi*hjkl

Fixed_Point_Coding cl*

Generic package providing complete GA facility

Binary chromosome + parameter coding/decoding

4

o.

p.

q.

r.

DeJong_Pack cdn*

Meta_Pack cdilm*hjkl

TSP_Pack cdghl*

TTBL_Pack cdgl*

Problem packages

DeJong's optimisation test functions

A meta-level "GA-parameter optimising GA"

Travelling Salesperson Problem implementation

A simple time tabling problem

5

Main

The user-defined main program

Notes

the "levels" in this table bear no direct relation to the package categories described in section 3.4., and represent levels of dependency

unit names in bold are those which the programmer using VAGAS will always need, even if s/he supplies all other components; those underlined are consequently always present in any working program, even when not explicitly included

letters in italic after a package name indicate the other packages which are directly used by it, in its Ada "with" clause

a * after a package name indicates that the package is generic, requiring the user to provide constants, types and/or sub-programs in order to instantiate it into a working package

letters after a * indicate packages which will often be used as sources of instantiation sub-programs, to implement common GA variations, as they are designed for just this purpose.


Abstract
Table of contents
<<< previous  Page 39 of 52  next >>>

Download source code     Download PDF of full report

© Copyright 1995 Max Edwards M.Eng.




  Google