Download presentation
Presentation is loading. Please wait.
1
Dept. of Electrical and Computer Engineering
ECE Spring 2004 Final Project Implementation of Generic Systolic Array for Genetic Algorithm Liang-Kai Wang 2/21/2019 Dept. of Electrical and Computer Engineering
2
Genetic Algorithm From biological evolution, we would like to find the optimal solution based on a pool of sources. (You always hope the gene in your child is composed of the best gene in your and your spouse.) Genetic algorithm is derived based on this concept. This search mechanism is to develop solutions to a wide range of search and optimization problems such as CAD tool design.
3
Flow Chart SYSTOLIC ARRAY Environment Setup and Set the goal Done
Computation of fitness on each person Evaluation of the Fitness of the whole group Evaluation Check the goal Enter the Roulette Wheel To choose the parents. SYSTOLIC ARRAY Mutation Reproduction by combining elements of the parents
4
Preliminary Pseudo Code
Fitness function of a person: weighted sum of all chromosomes in a person. If bad gene appears, the fitness value decreases. Total fitness function: summation of all persons in this environment. Selection array based on random number (or user-defined number) Crossover exchanges half of the chromosomes from parents based on the random number Mutation complements gene bits in a chromosome of an offspring based on environment factor and lists of problematic genes Again, all of the above can be done in a systolic array fashion to do parallel computing
5
DG for personal fitness and global fitness
6
DG for Select Array
7
Mutation
8
Starting with all bad genes
Experimental Result Selection based on Personal Fitness and Random Value under different number of bad gene pairs Random Selection Random Selection Starting with all bad genes
9
Extension of Genetic Algorithm
In hardware implementation, we can use FPGA to implement this algorithm. Genetic Algorithm can be applied to several fields, such as AI, machine learning, and Computer Aided Design (CAD). Specifically, in the field of CAD, we can apply this algorithm to various sub-areas such as Floor planning (placement and routing) Area Optimization. Please take Professor Hu’s ECE 556 next semester for details. Moreover, systolic array can be implemented by using FPGA.
10
Conclusion Introduce the Genetic Algorithm.
Presented an algorithm, DG, and software implementation of a systolic array genetic algorithm in Java. Simulation is used to prove the correctness
11
Reference ECE 556 lecture note, available at Synthesis of a systolic array genetic algorithm, Megson, G.M.; Bland, I.M.; Parallel Processing Symposium, IPPS/SPDP. Proceedings of the First Merged International...and Symposium on Parallel and Distributed Processing 1998 , 30 March-3 April 1998, Page(s): The systolic array genetic algorithm, an example of systolic arrays as a reconfigurable design methodology Bland, I.M.; Megson, G.M.; FPGAs for Custom Computing Machines, Proceedings. IEEE Symposium on , April Page(s): Efficient operator pipelining in a bit serial genetic algorithm engine Bland, I.M.; Megson, G.M.; Electronics Letters , Volume: 33 Issue: 12 , 5 June Page(s): JAVA API, available at:
12
Supplement
13
How Genetic Algorithm Works?
Evaluate each candidates by fitness function Evaluate the whole pool by another fit function. Pseudo-randomly (or user-defined) select the candidates combine their genes to do generate offspring according to some factors. In some circumstances, gene in the descendents may mutate, which sometimes may create better or worse situation.
14
Generic Systolic Array for Genetic Algorithm
Design should be generic: Independent of fitness function Independent of number of persons in a group Independent of the lengths of the chromosomes being used. Check out those diseases which is due to broken chromosome. Here we maintain two lists (Badlist and Mutationlist) which are randomly generated. Based on our requirement: Personal fitness function Group fitness function Number of chromosomes in a person: 23 pairs. Represented by chrX[23] and chrY[23] Number of genes in a chromosome: 10. Represented by gene[10]
15
CAD Application for Genetic Algorithm
Input: a set of rectangular cells, each with a number of terminals at fixed positions along the edges of the cell a netlist specifying the interconnections of all terminals an approximate horizontal length W of the cell to be constructed. The macro cell placement problem is to find absolute coordinates for the lower left corner of each cell the orientation and reflection in the horizontal and vertical axis of each cell a rectangle R having approximate horizontal length W enclosing all cells Please take Professor Hu’s ECE 556 next semester for details.
16
Preliminary Pseudo Code
Weighted Sum: chromosome[i].fit + = weight[i]*chromosome[i].bit Total fitness: tf += chromosome[i].fit Normalization: chromosome[i].fit= chromosome[i].fit/tf
17
Preliminary Pseudo Code
Select: init = rand() running_sum = 0; while (running_sum + chromosome[i].fit <init) { running_sum += chromosome[i].fit; J++ } selected[i] = j; Crossever If (rand()>0.5) { chromosome[i].gene[j] = chromosome[i+1].gene[j]; chromosome[i+1].gene[j] = chromosome[i].gene[j]; Mutation If (rand()>0.5) chromosome[i].gene[j] = ~chromosome[i+1].gene[j];
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.