110 likes | 300 Views
Implementation of Parallel Simulated Annealing. Simulated Annealing. A popular heuristic search algorithm to solve NP complete problems Applications: VLSI Routing, placement Named after glass making procedure
E N D
Simulated Annealing • A popular heuristic search algorithm to solve NP complete problems • Applications: VLSI Routing, placement • Named after glass making procedure • The fundamental idea is to allow moves resulting in solutions of worse quality than the current solution (uphill moves) in order to escape from local minima.
Simulated annealing algorithm • The algorithm starts by generating an initial solution and by initializing the temperature parameter T. • A solution s1 from the neighborhood N(s) is accepted as new solution depending on f(s), f(s1) and T. • s1 replaces s if f(s1) < f(s) or, in case f(s1) >= f(s), with a probability which is a function of T and f(s1) – f(s). • The probability is generally computed following the Boltzmann distribution e-(f(s1) - f(s))/T.
TSP • Problem: Given a list of cities and their pair wise distances, the task is to find a shortest possible tour that visits each city exactly once. • N! possible paths for N city trip • Complexity: NP Complete
Solving TSP with simulated annealing • Lemma1: any tour can be obtained from any other tour by a sequence of 2-neighbourhood changes • Lemma2: Any neighborhood can be generated at random by generating 2 uniform numbers for i and j ALGORITHM: • s_0 = generate random initial solution • t_0 = initial temperature • Repeat • select s in N(s_0) (i.e., select i and j) • cost = d(v_i, v_j) + d(v_i+1, v_j+1) - d(v_i, v_i+1) - d(v_j+1, v_j) • if cost > 0 then s_0 = s • else generate random x in (0, 1); if x < exp(-cost/t) then s_0 = s • t = t / (1 + b t) • until stopping condition
Parallel Simulated annealing • Run SA algorithm on N nodes with different initial solution • Exchange the partial results among the nodes after a fixed no of iterations • Select the best partial results and continue SA on each node. • Repeat this process
Parallel algorithm • Control node: • Worker node:
Work in progress • Written working code for simulated annealing • Few parts of the control node and worker node are done. • Still have to debug and get parallel simulated annealing working • Do a comparative runtime comparison
Expected results • Runtime should be roughly same for serial and parallel algorithm • Parallel algorithm is expected to yield a robust solution.
References • Parallel Simulated Annealing Algorithms by D. JANAKI RAM,1 T. H. SREENIVAS, AND K. GANAPATHY SUBRAMANIAM JOURNAL OF PARALLEL AND DISTRIBUTED COMPUTING 37, 207–212 (1996) • Parallel Simulated Annealing by Mixing of States King-Wai Chu,¤ Yuefan Deng,¤ and John Reinitzy Journal of Computational Physics 148, 646–662 (1999) • http://www.cs.duke.edu/brd/Teaching/Previous/AI/Lectures/l4.html • Greening, Daniel R., Parallel simulated annealing techniques, PhysicaD 42 (1990), 293–306. • VLSI CAD Algorithms ECE 6095