ECE 556 Project Algorithm Presentation Saga - The Unified Placement Algorithm Matt Kumerow, Phillip Heyrman, and Todd Tisch
Genotype vs Phenotype
Evaluate() BestOf() Crossover() Mutation Optimize
Evaluate() Computes the fitness of each individual in the population Fitness is defined as the estimation of the total interconnect length, which is computed using the bounding box approach
BestOf() Finds the individual in the population with the highest fitness The individual is determined by comparing the fitness of each individual in the population as determined by a previous call to evaluate()
Reduce(Population, k) Returns the k fittest individuals from the given population Determined by calling evaluate() and selecting the k most fit individuals in the result set
Crossover() Given two individuals the crossover operator generates an offspring Uses a subtree of the first parent Uses priority ordering of the second parent
Mutation Used to generate a random change of the phenotype Two nodes exchanged Leaf node can be moved to another position Two priorities can be exchanged
SAMutate() All phenotypes of a population are subjected to pointwise mutation The mutation is performed with a temperature-dependent probability Once a fixed amount of cost increase mutations are accepted, the temperature for that individual is reduced
Invert() Selects a random subtree from genotype and alters it so that the genotype is different, yet it results in the same phenotype
Optimize Exhaustive strategy used to get local hill climbing Performs a sequence of mutations, each which improves the fitness Stops when we obtain a set number of accepted mutations
References Genetic Algorithms for VLSI Design, Layout & Test Automation by Pinaki Mazumder, Elizabeth M. Rudnick “SAGA: Unification of genetic algorithm with simulated annealing and its application to macro-cell placement” by H. Esbensen, P. Mazumder