Genie: A Genetic Placement Algorithm James P. Cohoon William D. Paris © 1987 IEEE
Genetic Algorithms State Space Search –similar to SA Based on principles of natural selection and evolution Population of solutions, of varying fitness levels Solutions ‘mate’ or crossover, to form offspring Solutions randomly mutate to introduce new genes into the current population Best solutions have a better chance of surviving to the next generation
Pseudo Code overview Create an initial population P While (best score hasn’t improved in 10,000 generations) { Offspring = Crossover(s1, s2 in P)* P = Selection(P U O)* For( i=1 to k*) Mutate(s in P) } *Solutions are selected for crossover proportional to the fitness level of individual. If (fitness < average) solution is rejected for crossover. *k = random normal function of mean K*Pop_Size*Num_Nets
Population Constructor A B E G I J Net 3: A, B, E, G, I, J Net 2: A, D, E, F, H Net 1: A, B, C, D Step 1: Randomly select a net (Z) Step 2: Place free modules in net Z on grid from L to R
Population Constructor A B E G I J Step 1: Randomly select a net (Z) Step 2: Place free modules in net Z on grid from L to R Net 1: A, B, C, D Net 2: A, D, E, F, H Step 3: Update free modules and nets Net 3: A, B, E, G, I, J
Population Constructor A B E G I J Step 1: Randomly select a net (Z) Step 2: Place free modules in net Z on grid from L to R Step 3: Update free modules and nets Step 4: Select next net Do { module m = previous module placed } Until ( m is in a free net || no mods left on net) if (success) go to Step 2 else go to Step 1 Net 1: A, B, C, D Net 2: A, D, E, F, H Net 3: A, B, E, G, I, J
Population Constructor A B E G I J Step 1: Randomly select a net (Z) Step 2: Place free modules in net Z on grid from L to R Step 3: Update free modules and nets Step 4: Select next net Do { module m = previous module placed } Until ( m is in a free net ) if (success) go to Step 2 else go to Step 1 Net 1: A, B, C, D Net 2: A, D, E, F, H Net 3: A, B, E, G, I, J D F H
Population Constructor A B E G I J Step 1: Randomly select a net (Z) Step 2: Place free modules in net Z on grid from L to R Step 3: Update free modules and nets Step 4: Select next net Do { module m = previous module placed } Until ( m is in a free net ) if (success) go to Step 2 else go to Step 1 Net 1: A, B, C, D Net 2: A, D, E, F, H Net 3: A, B, E, G, I, J D F HC
Fitness Calculation Semi-perimeter bounding rectangle for each net Measure of excess channel usage Penalized if channel has above average # nets ie non-uniform channel usage
Crossover Operator A B C D E F G H I G I B F J L K D C Passing ParentTarget Parent
Crossover Operator A B C D E F G H I Passing ParentCopy of Target Parent A E H J L K
Crossover Operator A B C D E F G H I Passing ParentCopy of Target Parent A B C D E F G H I K L J
Mutation Operator Selects a random net (Z) in Solution (s). Selects a random Module on Z Locates farthest module on net Z, and moves it as close as possible. A D 1 is preferred (dY < dX) if B or 1, 2 is preferred If B, 1,2, 3 is required 1 23 Net 1: A, B, C, D
Mutation Operator Net 1: A, B, C, D Step 1: Select a random net Step 2: Select a random module Initial Solution A B C D Step 3: Locate farthest module on net E
Mutation Operator Net 1: A, B, C, D Step 1: Select a random net Step 2: Select a random module Initial Solution A B C D Step 3: Locate farthest module on net Step 4: Slide module to closest possible location E
Results Authors ResultsMy Results Vs TW* *simplified algorithm, Implemented by me TW cost function used for both algorithms chipGenie Score Genie Time TW Score TW Time 10_ us59.26us 10_2422.2us60.31us 50_ us us 50_ us us
Merits of GA’s Pros: Large Population provides information about past solution space - provides a more guided search Can keep inferior solutions without destroying the good ones crossover allows for the best parts of multiple solutions to form into one Cons: High memory requirement Difficult parameterization (population size, rate of mutation, weighted fitness for selection, etc)
My Thoughts Potential Areas of improvement Crossover -Poor for small circuits (Converge to local optima too quickly) Mutation -too deterministic (almost always improves solution)
References Genetic Placement James P. Cohoon, member, IEEE, and William D. Paris IEEE Transactions on Computer Aided Design, Vol. Cad-6, No. 6, November 1987 VLSI Cell Placement Techniques K. SHAHOOKAR AND P. MAZUMDER Department of Electrical Engineering and Computer Sc~ence, University of Michigan, Ann Arbor, Michigan ACM Computing Surveys, Vol. 23, No. 2, June 1991