90 likes | 179 Views
Department of Electronic Engineering NUIG. Direct Evolution of Patterns using Genetic Algorithms. By: John Brennan Supervisor: John Maher. Overview. Project Specifications Introduction to Genetic Algorithms Flowchart of a Genetic Algorithm Implicit Embryogeny Program Design GUI Design
E N D
Department of Electronic Engineering NUIG Direct Evolution of Patterns using Genetic Algorithms By: John Brennan Supervisor: John Maher
Overview • Project Specifications • Introduction to Genetic Algorithms • Flowchart of a Genetic Algorithm • Implicit Embryogeny • Program Design • GUI Design • GA Parameters
Project Specifications • Review of Implicit Embryogeny proposed by Kumar plus 2 other authors • Write a Java GA to solve 1’s max problem • Demonstrate some Java 2D GUI features • Extend the developed GUI to include GA functionality • Design and verify demonstrator of Implicit Embryogeny • Include Implicit Embryogeny within the developed GUI • Add additional frame to user to define target phenotype • Compare and contrast directly evolved patterns with implicitly derived patterns • Further modify the GUI to integrate in the DEV1 algorithm
Introduction to Genetic Algorithms • A Genetic Algorithm is a programming technique that imitates biological evolution to solve complex problems • A GA performs the following: • It takes a set of potential solutions (a population) • Using a selection mechanism new offspring are created from nominated parents • Genetic Operators are carried out on the offspring • The fitness of the modified offspring is evaluated • New offspring replaces previous population (a generation)
Flowchart of a Genetic Algorithm Evaluated Offspring Generate Parents Population F() Fitness Function Selection Mechanism - Roulette Wheel - Tournament Altered Offspring Generate Offspring Genetic Operators
Implicit Embryogeny • An Embryogeny is a process of growth where genotypes (evolved parameter values) are mapped onto phenotypes (solutions to problems) • Implicit embrogenies uses interacting rules to solve complex problems • The flow of activation is dynamic, parallel and adaptive • This project will use a developmental encoding coding to evolve tessellating tiles similar to work completed by Kumar and Bentely • The scalability problem will also be demonstrated as the problem size increases (by increasing the size of the phenotype grid)
Program Design • GUI – to be visually impressive and user friendly • Execute Genetic Algorithms and display results in real time • Include frames to perform the following: • Allow user to graphically view GA progress in real time • User can input GA parameters • Allow user to define target phenotype • Integrate DEV1 Algorithm • To be programmed/designed in Java using J2SE and Java Swing
GUI Design • The main display of this program illustrates the ideal evolved tessellated tiles vs. the current output of the processing Genetic Algorithm • The progress of the evolving pattern will be displayed in real time as the GA is executed
GA Parameters • As explained, the user will be able to input specific parameters for the Genetic Algorithm • The GA will be executed according to these constraints • Further development will integrate DEV1 Algorithm