120 likes | 263 Views
Memetic Algorithm for ATSP. KC Tsui Based on [1]. S/A-TSP. Let c ij be the cost to travel from city i to city j
E N D
Memetic Algorithm for ATSP KC Tsui Based on [1]
S/A-TSP • Let cij be the cost to travel from city i to city j • Given a directed graph G=(V,A), where V:={1, …, n} and A:={(i, j): i, j V, i j}, a feasible solution for a TSP is a Hamiltonian circuit and the objective is to minimum the total tour length • In STSP, cij = cji for all cities i, j. • In ATSP, cij cji
Memetic Algorithms • “Memetic Algorithms is a population-based approach for heuristic search in optimization problems. They have shown that they are orders of magnitude faster than traditional Genetic Algorithms for some problem domains. Basically, they combine local search heuristics with crossover operators. For this reason, some researchers have viewed them as Hybrid Genetic Algorithms. However, combinations with constructive heuristics or exact methods may also belong to this class of metaheuristics.” excerpt from Memetic Algorithms’ Home Page (http://www.ing.unlp.edu.ar/cetad/mos/memetic_home.html)
Features of the new MA • Local search engine • Topological organization: a complete tenary tree of 13 agents • Selection and reproduction scheme in a hierarchy of overlapping clusters
Program Structure begin initialize (13 agents) repeat for i:=1 to popSize do evaluate(Current[i]); updatePocket(i); endfor PocketPropagation(); If diversity_crisis Restart(); for i:=1 to popSize do select parents a,b Pop[i]:=SAX(a,b); endfor for i:=1 to popSize do if (rand()<=0.3) Pop[i]=Mutate(Pop[i]); endfor until termination end;
The Population • A complete tenery tree of 13 agents clustered in 4 subpopulations • Each subpopulation has 4 individuals – a leader and 3 supporters • The supports are located one level below in the hierarchy
Population Operations • Each agent is handling two feasible solutions, Pocket and Current, created by local search • Recombination is between Pocket and Current solutions • UpdatePocket(): switch Pocket and Current when curCost < pocCost • PocketPropagation(): exchange Pocket solutions of a leader and one of its supporters if the latter has a better Pocket solution
Strategic Arc Crossover Given two parents A and B, construct a graph G consisting of the union of arcs in the two tours • Pick randomly an unused vertex v in G • While head h has at least one out-arc to an unused vertex • Randomly choose one of the unused vertices to which h has an out-arc • Make h to be tail t • While the tail t has at least one in-arc from an unused vertex • Randomly choose one of the unused vertices to which t has an in-arc • Goto 1 if there is no unused vertex
Restart • If the subpopulation has not changed for a certain number of generations, apply mutation to the Pockets a few time (except the root)
Reference • L. Buriol, P. M. Franca and P. Moscato, A New Memetic Algorithm for the Asymmetric Traveling Salesman Problem.