Genie: A Genetic Placement Algorithm James P. Cohoon William D. Paris © 1987 IEEE.
-
Upload
muriel-phillips -
Category
Documents
-
view
219 -
download
0
Transcript of Genie: A Genetic Placement Algorithm James P. Cohoon William D. Paris © 1987 IEEE.
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, HNet 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, DNet 2: A, D, E, F, H
Step 3: Update free modules and netsNet 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, DNet 2: A, D, E, F, HNet 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, DNet 2: A, D, E, F, HNet 3: A, B, E, G, I, J
DF 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, DNet 2: A, D, E, F, HNet 3: A, B, E, G, I, J
DF H C
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 Parent Target Parent
Crossover Operator
A B C
D E F
G H I
Passing Parent Copy of Target Parent
A
E
H
J L
K
Crossover Operator
A B C
D E F
G H I
Passing Parent Copy 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.
AD
1 is preferred (dY < dX) if B or C @ 1, 2 is
preferred If B, C @ 1,2, 3 is
required
12 3
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 possiblelocation
E
Results
Authors Results My Results Vs TW*
*simplified algorithm, Implemented by meTW cost function used for both algorithms
chip Genie
Score
Genie
Time
TW
Score
TW
Time
10_1 40 2.27us 59 .26us
10_2 42 2.2us 60 .31us
50_1 2755 23us 3794 36.5us
50_2 3295 35.6us 4959 29.2us
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. ParisIEEE Transactions on Computer Aided Design, Vol. Cad-6, No. 6, November 1987
VLSI Cell Placement Techniques
K. SHAHOOKAR AND P. MAZUMDERDepartment of Electrical Engineering and Computer Sc~ence,
University of Michigan, Ann Arbor, Michigan 48109
ACM Computing Surveys, Vol. 23, No. 2, June 1991