Download presentation
Presentation is loading. Please wait.
Published byRhoda Tucker Modified over 8 years ago
1
GAIA (Genetic Algorithm Interface Architecture) Requirements Analysis Document (RAD) Version 1.0 Created By: Charles Hall Héctor Aybar William Grim Simone Connors
2
CLIENT AND PURPOSE OF GAIA Client Edmond Abrahamian of Tripos Inc. in St. Louis, Mo. Current system Cannot be used for legal reasons Purpose of GAIA Provide a genetic algorithm with desired functionality of previous system Provide optimal solutions to many problems Applied to area of bioinformatics, and many different applications Provide a system that is adaptable to many situations
3
CONCEPTS OF GENETIC ALGORITHMS Theory of Evolution All organisms have evolved through an unguided natural process, and from common ancestors by passing genetic traits on to their offspring Natural Selection/Survival of the Fittest Those organisms with the most beneficial traits are most likely to survive and reproduce
4
WHAT ARE GENETIC ALGORITHMS? Genetic Algorithms Uses “survival of the fittest “to form search algorithm Based on theory of evolution, natural selection, and genetics Produce optimal solutions to problems
5
GENETIC ALGORITHMS Solutions are represented as Chromosomes Chromosome Gene Genetic Algorithm creates populations of Chromosomes (solutions) through crossover and mutation Population Crossover Mutation
6
GENETIC ALGORITHMS Fitness of each chromosome is determined by fitness function Fitness Fitness Function
8
FUNCTIONAL REQUIREMENTS Read Parameters The system will read the following parameters from an XML file: Population size (50) Chromosome size (20) Mutation rate (0.05) Mutation decay (1) Crossover probability (0.9) Crossover type (1 point) Elitism (off) Number of iterations Convergence criteria (average, 10 generations, ± 0.001) Best fitness value has not changed by ±x for the last y generations Average fitness value has not changed by ±x for the last y generations
9
User-Supplied Functions Crossover Mutation Selection Fitness Finalize Create Chromosome Delete Chromosome Copy Chromosome FUNCTIONAL REQUIREMENTS (cont.)
10
More Functional Requirements Multiple Populations User-defined gene type User-supplied chromosomes Population generation Fitness check Track values Elitism Debugging FUNCTIONAL REQUIREMENTS (cont.)
11
Nonfunctional Requirements No Graphical User Interface Applications Documentation Hardware and Software Considerations Performance Characteristics NONFUNCTIONAL REQUIREMENTS
13
Joe makes some decisions Minimize between 0 and 15 Represent x 2 with a 4 gene chromosome Represent each gene with a single bit No initial set of possible solutions SCENARIO – minimize x 2
14
Joe will keep the default functions for: Create chromosome Delete chromosome Copy chromosome Mutation (flips a single bit) Crossover (1 point) Selection (roulette wheel) Finalize (output to the screen) SCENARIO – minimize x 2
15
Joe will keep most of the default parameters, but will change: Mutation rate to.007 Population size to 8 Number of iterations to 500 Chromosome size to 4 He does this by changing values in the XML file SCENARIO – minimize x 2
16
Joe writes a fitness function Written in C Calculates the fitness value by: Converting the bit-string to decimal Squaring the decimal value SCENARIO – minimize x 2
17
Joe starts GAIA by telling it: Where to find the XML file Where to find his fitness function GAIA randomly generates initial population, calculates fitness values with Joe’s fitness function, and begins minimizing SCENARIO – minimize x 2
18
Initial population
19
SCENARIO – minimize x 2 Initial population
20
SCENARIO – minimize x 2 Choose parent chromosomes Duplicate them Perform crossover Perform mutation Determine fitness value Store new chromosomes
21
SCENARIO – minimize x 2 Choose parent chromosomes Duplicate them Perform crossover Perform mutation Determine fitness value Store new chromosomes
22
SCENARIO – minimize x 2 Choose parent chromosomes Duplicate them Perform crossover Perform mutation Determine fitness value Store new chromosomes
23
SCENARIO – minimize x 2 Choose parent chromosomes Duplicate them Perform crossover Perform mutation Determine fitness value Store new chromosomes
24
SCENARIO – minimize x 2 Choose parent chromosomes Duplicate them Perform crossover Perform mutation Determine fitness value Store new chromosomes
25
SCENARIO – minimize x 2 Choose parent chromosomes Duplicate them Perform crossover Perform mutation Determine fitness value Store new chromosomes
26
SCENARIO – minimize x 2 Choose parent chromosomes Duplicate them Perform crossover Perform mutation Determine fitness value Store new chromosomes
27
GAIA terminate before the 500 th iteration because of the convergence criteria Joe sees the statistics for the final generation Generation number Average fitness value Best fitness value Worst fitness value Joe asks for the stats on the best chromosome He sees a bit-string of all zeroes and now knows that zero is the function’s minimizer SCENARIO – minimize x 2
29
USE CASE DOCUMENT Use Case Name Produce GAIA results Participating Users Initiated by Tripos' primary application (PrimApp). Communicates with TriPos' PrimApp.
30
USE CASE DOCUMENT (cont.) Flow of events Activate GAIA by calling GAIA's gaia_startup() function. Decide here what data type to use: bit string integer string double string user defined type
31
USE CASE DOCUMENT (cont.) Tell gaia_startup() the XML configuration file path, initial size of population, and number of chromosomes. If an XML file path is given, read its contents first. XML file contains: convergence criteria termination method (average) termination count (10 generations) termination threshold (+/- 0.001) population size (50) and so on...
32
USE CASE DOCUMENT (cont.) gaia_startup() (cont.) Override XML file defaults with initial size of population and/or number of chromosomes if these numbers are not zero.
33
USE CASE DOCUMENT (cont.) gaia_startup() (cont.) Create a new gaia_node_t and place it in an internal book- keeping data structure. gaia_node_t will not directly represent the user's data. gaia_node_t will contain function hooks and a data hook for user-defined functions and data, or our default functions and data. gaia_node_t will contain variables for user-supplied parameters or default parameters.
34
USE CASE DOCUMENT (cont.) gaia_startup() (cont.) User may override chromosome creation function. gaia_startup() returns an ID number associated with the newly created gaia_node_t.
35
USE CASE DOCUMENT (cont.) Receive optional parameters from PrimApp through separate function calls. As each of the following are called, set dirty flags for each of them, disallowing further modification of each: any of the parameters defined in the XML configuration file above. data type malloc hook crossover hook mutation hook and so on...
36
USE CASE DOCUMENT (cont.) Begin genetic algorithm execution when gaia_execute() is called. Return data to user by calling gaia_output(). If not overridden, this function will just return. Destroy instance of GAIA by calling gaia_shutdown().
37
USE CASE DOCUMENT (cont.) Entry conditions User calls a function of GAIA. Exit conditions GAIA completes genetic algorithm and returns a value indicating success. Answers are returned to user. GAIA generates an error and returns a value indicating failure. A failure code is returned to user.
38
USE CASE DOCUMENT (cont.) Quality requirements GAIA returns results to user as soon as a failure(s) is detected or GAIA has completed its genetic algorithm successfully. GAIA must accept user-specified functions and parameters as defined in the “Flow of events.”
39
USE CASE DIAGRAM
40
QUESTIONS?
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.