Presentation is loading. Please wait.

Presentation is loading. Please wait.

GAIA (Genetic Algorithm Interface Architecture) Requirements Analysis Document (RAD) Version 1.0 Created By: Charles Hall Héctor Aybar William Grim Simone.

Similar presentations


Presentation on theme: "GAIA (Genetic Algorithm Interface Architecture) Requirements Analysis Document (RAD) Version 1.0 Created By: Charles Hall Héctor Aybar William Grim Simone."— Presentation transcript:

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

7

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

12

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

28

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?


Download ppt "GAIA (Genetic Algorithm Interface Architecture) Requirements Analysis Document (RAD) Version 1.0 Created By: Charles Hall Héctor Aybar William Grim Simone."

Similar presentations


Ads by Google