Using Genetic Algorithms to solve the Minimum Labeling Spanning Tree Problem MLST; problem set-up Genetic Algorithms Oliver Rourke, oliverr@umd.edu MLST: GA Advisor: Dr Bruce L. Golden, bgolden@rhsmith.umd.edu MLST: GA++ R. H. Smith School of Business Implementation/ Validation Timeline/ Results Abstract: Cellular Genetic Algorithms (CGAs) have shown themselves to be very powerful tools for combinatorial optimization. Through this project I hope to investigate CGAs, develop a parallel implementation of a CGA, use these techniques on the Minimum Labeling Spanning Tree Problem, and compare results with other heuristics.
Introduction to MLST MLST; problem First proposed in 1996 [Chang:1996]- variant on minimum set-up weight spanning tree Genetic Algorithms MLST: GA MLST: Connected Graph - set of vertices and edges. GA++ Each edge has a color Implementation/ Validation Find the smallest set of colors which gives a connected Timeline/ Results sub-graph
An example of a labelled spanning tree, and some feasible solutions [Xiong:2005] MLST; problem set-up Genetic Algorithms MLST: GA MLST: GA++ Implementation/ Validation Timeline/ Results
Introduction to MLST MLST; problem set-up First proposed in 1996 [Chang:1996]- variant on minimum Genetic Algorithms weight spanning tree MLST: GA Shown to be NP-complete MLST: GA++ Two heuristics and an exhaustive search proposed in the Implementation/ Validation original paper - heuristics achieved moderate success Timeline/ Results
Introduction to Genetic Algorithms (GAs) MLST; problem set-up Evolutionary-inspired heuristic for optimization problems Genetic Algorithms MLST: GA MLST: GA++ Implementation/ Validation Timeline/ Results
Introduction to Genetic Algorithms (GAs) MLST; problem set-up Evolutionary-inspired heuristic for optimization problems Genetic Population = set of solutions Algorithms MLST: GA Select, Breed, Replace MLST: GA++ Implementation/ Validation Timeline/ Results
Introduction to Genetic Algorithms (GAs) MLST; problem set-up Evolutionary-inspired heuristic for optimization problems Genetic Population = set of solutions Algorithms MLST: GA Select, Breed, Replace MLST: Advantages: GA++ Flexible and adaptable Implementation/ Validation Robust performance at global search Timeline/ Simple to parallelize Results
Key steps in a Genetic Algorithm MLST; problem set-up Genetic Algorithms MLST: GA MLST: GA++ Implementation/ Validation Timeline/ Results
One Parameter GA for MLST - Serial MLST; problem set-up From Xiong, 2005 Genetic Algorithms Designed to be simple - no fine tuning MLST: GA One parameter - p , population size MLST: GA++ Representation: List of labels Implementation/ Validation Gene: Label in the list Timeline/ Results
Step 1: Initialization MLST; problem set-up Create first generation of individuals - viable, varied Genetic Algorithms MLST: GA MLST: GA++ Implementation/ Validation Timeline/ Results
Step 1: Initialization MLST; problem set-up Create first generation of individuals - viable, varied Genetic Algorithms Initialization from Xiong:2005: MLST: GA For each individual in population: MLST: Individual = {} GA++ While Individual Is Not Viable: Implementation/ Validation Individual.AddRandomColor() Timeline/ Results
Step 2: Evaluation MLST; problem set-up Defined by problem Genetic Algorithms For some problems can be extremely time consuming MLST: GA Multiple criteria MLST: → Penalty functions? GA++ Implementation/ Validation Timeline/ Results
Step 2: Evaluation MLST; problem set-up Defined by problem Genetic Algorithms For some problems can be extremely time consuming MLST: GA Multiple criteria MLST: → Penalty functions? GA++ Implementation/ Evaluation in Xiong:2005: Validation Eval(T) = len(T) Timeline/ Results
Step 3: Selection MLST; problem set-up How? Random, Sweep, ... . Genetic Algorithms Favor strongest? MLST: GA MLST: GA++ Implementation/ Validation Timeline/ Results
Step 3: Selection MLST; problem set-up How? Random, Sweep, ... . Genetic Algorithms Favor strongest? MLST: GA Selection in Xiong:2005; MLST: GA++ for j = 1:Size(Population) Implementation/ Offspring( j ) = Breed(Parent( j ), parent(( j + k ) mod p )) Validation (where k is the generation number) Timeline/ Results
Step 4: Crossover Combine genes from parents to produce viable offspring MLST; problem set-up Choose genes randomly? Follow order (pick ’strongest’ Genetic genes first)? Algorithms MLST: GA MLST: GA++ Implementation/ Validation Timeline/ Results
Step 4: Crossover Combine genes from parents to produce viable offspring MLST; problem set-up Choose genes randomly? Follow order (pick ’strongest’ Genetic genes first)? Algorithms Crossover in Xiong:2005: MLST: GA MLST: S = Union of genes (colors) from both parents GA++ Sort( S ) %According to frequency of labels in Graph Implementation/ Validation T = {} Timeline/ while T Is Not Viable: Results T.AddLabel(NextLabel(S)) return T
Crossover operator MLST; problem set-up Genetic Algorithms MLST: GA MLST: GA++ Implementation/ Validation Timeline/ Results Figure: The crossover operator used in Xiong’s GA [Xiong:2005]
Step 5: Mutation Introduce new genetic material MLST; problem set-up Typically done with small probability Genetic Algorithms MLST: GA MLST: GA++ Implementation/ Validation Timeline/ Results
Step 5: Mutation Introduce new genetic material MLST; problem set-up Typically done with small probability Genetic Mutation in Xiong:2005 (100% chance of mutation): Algorithms T.AddRandomColor MLST: GA MLST: Sort( T ) %According to frequency of labels in Graph GA++ For Label in T(-1:-1:): %Reverse iterate Implementation/ Validation T.Remove(Label) Timeline/ if T Is Not Viable: Results if T.Add(Label) return T
Mutation operator MLST; problem set-up Genetic Algorithms MLST: GA MLST: GA++ Implementation/ Validation Timeline/ Results Figure: The mutation operator used in Xiong’s GA [Xiong:2005]
Step 6: Replacement MLST; problem set-up Find new generation from strongest offspring and parents Genetic Algorithms Replace parents where warranted MLST: GA MLST: GA++ Implementation/ Validation Timeline/ Results
Step 6: Replacement MLST; problem set-up Find new generation from strongest offspring and parents Genetic Algorithms Replace parents where warranted MLST: GA Replacement in Xiong:2005: MLST: GA++ If Eval(Offspring) < Eval(Parent): Implementation/ Parent.Replace(Offspring) Validation Timeline/ Results
Step 7: Stopping Conditions MLST; problem set-up Genetic Algorithms Generations count/computational time MLST: GA Population Stagnant MLST: GA++ Implementation/ Validation Timeline/ Results
Step 7: Stopping Conditions MLST; problem set-up Genetic Algorithms Generations count/computational time MLST: GA Population Stagnant MLST: GA++ Stopping Condition in Xiong:2005: Do p generations Implementation/ Validation Timeline/ Results
GA improvements MLST; problem set-up Improve Crossover/Mutation operators? Genetic Algorithms Make crossover/mutation stochastic. Mix up ordering MLST: GA MLST: GA++ Implementation/ Validation Timeline/ Results
GA improvements MLST; problem set-up Improve Crossover/Mutation operators? Genetic Algorithms Make crossover/mutation stochastic. Mix up ordering MLST: GA Favor retention of mutated genes? MLST: GA++ Keep equally good offspring? Implementation/ Validation Timeline/ Results
GA improvements MLST; problem set-up Improve Crossover/Mutation operators? Genetic Algorithms Make crossover/mutation stochastic. Mix up ordering MLST: GA Favor retention of mutated genes? MLST: GA++ Keep equally good offspring? Implementation/ Validation Divide up population space - promote diversity Timeline/ Results
3 Different types of GA MLST; problem set-up Genetic Algorithms MLST: GA MLST: GA++ Implementation/ Validation Timeline/ Figure: Three different types of GAs showing interaction between Results individuals (black dots) in the population. a)Panmictic b) Distributed c) Cellular [Alba:2008]
Genetic Algorithm − > Cellular Genetic Algorithm MLST; problem set-up Modify Selection operator- limit to neighborhood on grid Genetic Algorithms MLST: GA MLST: GA++ Implementation/ Validation Timeline/ Results
Genetic Algorithm − > Cellular Genetic Algorithm MLST; problem set-up Modify Selection operator- limit to neighborhood on grid Genetic Arrangement of entire population space Algorithms MLST: GA Neighborhood size? MLST: GA++ Implementation/ Validation Timeline/ Results
Genetic Algorithm − > Cellular Genetic Algorithm MLST; problem set-up Modify Selection operator- limit to neighborhood on grid Genetic Arrangement of entire population space Algorithms MLST: GA Neighborhood size? MLST: Choosing within neighborhood: GA++ Step through neighborhood Implementation/ Validation Randomly choose one Timeline/ Pick ’strongest’ neighbor? Results
Recommend
More recommend