Transcript Document
Traveling Salesman Problem: Improvement of Heuristic Algorithms 12 2 8 12 10 4 11 11 10 3 3 1 6 5 9 7 12 9 7 6 Heuristic Algorithms • The TSP is an NP-hard problem – In many cases, we rely on heuristic algorithms to find a near optimal solution – A heuristic algorithm refers to some simple rules that are based on some “common sense” • Types of heuristic algorithms – Construction heuristic algorithm • To obtain a single solution • Nearest neighbor, cheapest insertion – Improvement heuristic algorithm • To iteratively improve a known solution • Local search algorithm • Improved local search – Simulated annealing, tabu search Local Search • Local search is to improve a known solution by searching the neighborhood of the current solution – Such as solving a nonlinear programming program – A local optimal solution is usually obtained • Example: min F(x)=4x4+3x3+2x2+x – Try x1=1, F(x1)=10, F’(x1)=30>0 – Next step: try x2<x1 or x2>x1? Local Search Algorithm • General steps – Initialization: find any feasible solution, denoted by S, as the initial solution – Iterations • For the current solution, find all neighborhood solutions under a specific definition of neighborhood • Choose the best neighborhood solution, denoted by S1 • If S1 is better than S, update S by S=S1. Repeat the iterations • If S1 is not better than S. Stop • Simplex method to solve LP is local search – It finds an optimal solution • Definitions of neighborhood for TSP – Sub-tour reversal – Insertion – Swap Sub-tour Reversal • A neighborhood solution can be obtained by reversing a sub-tour – Choose a sub-tour, and reverse the sequence of nodes – For example, for solution (1,2,3,4,5,6,7) with cost=69, if we choose to reverse (3,4), we have a new solution (1,2,4,3,5,6,7) with cost=65. – In general, a sub-tour i1i2i3i4i5 will be reversed to i5i4i3i2i1 12 2 8 12 10 4 11 11 10 6 5 9 7 12 9 7 8 12 3 3 1 12 2 10 4 11 10 6 5 6 9 7 12 9 7 8 12 11 3 3 1 12 2 10 4 11 11 10 3 3 1 6 5 6 9 7 12 9 7 6 Example for Sub-tour Reversal • Initialization S=(1,2,3,4,5,6,7) with cost=69 • Neighborhood solutions – – – – – – – – – – – – – (2,1,3,4,5,6,7): infeasible (or very large cost) (3,2,1,4,5,6,7): infeasible (or very large cost) (4,3,2,1,5,6,7): infeasible (5,4,3,2,1,6,7): infeasible (6,5,4,3,2,1,7): cost=69 (same as T on undirected network) (7,6,5,4,3,2,1): cost=69 (same as T on undirected network) (1,3,2,4,5,6,7): cost=68 (1,4,3,2,5,6,7): infeasible Question: how many neighborhood (1,5,4,3,2,6,7): infeasible solutions to consider? (1,6,5,4,3,2,7): infeasible (1,7,6,5,4,3,2): cost=69 (same as T on undirected network) (1,2,4,3,5,6,7): cost=65 …… • It can be verified that (1,2,4,3,5,6,7) is the best neighborhood solution – Tie with (1,2,3,5,4,6,7) Example for Sub-tour Reversal • Now S=(1,2,4,3,5,6,7) with cost=65 • New neighborhood solutions – There is only one neighborhood solution that improves S: (1,2,4,6,5,3,7) with cost = 64 • Now S=(1,2,4,6,5,3,7) with cost=64 • New neighborhood solutions – No neighborhood solutions that can improve S – Stop (with a local optimum) • Optimal tour is (1,2,4,6,7,5,3) with cost = 63, which cannot be reached by such a local search Insertion Neighborhood • For a solution S, a neighborhood solution can be obtained by removing one node from the sequence and insert it to another position – S=(i1, i2, …, ik-1, ik, ik+1, …, il-1, il, il+1, …, in) – A neighborhood solution by inserting the k-th node before the l-th node (i1, i2, …, ik-1, ik+1, …, il-1, ik, il, il+1, …, in) – For example, from (1,2,4,6,5,3,7) we can get the optimal tour (1,2,4,6,7,5,3) by insert the 7th node before the 5th node Swap Neighborhood • For a solution S, a neighborhood solution can be obtained by swapping the positions of two nodes – S=(i1, i2, …, ik-1, ik, ik+1, …, il-1, il, il+1, …, in) – A neighborhood solution by swapping the k-th node and l-th node (i1, i2, …, ik-1, il, ik+1, …, il-1, ik, il+1, …, in) – For example, from (1,2,4,6,5,3,7) we can get one neighborhood solution (1,2,7,6,5,3,4) by swapping the 3rd and 7th nodes Local Optimality • For a TSP problem, local optimality is unavoidable by any local search algorithm, unless the neighborhood is defined as the entire feasible region – The larger a neighborhood is, the higher quality solution we may obtain, but the more computation time is also needed • Size of neighborhood – Sub-tour reversal O(n2) – Swap O(n2) – Insertion O(n2) • In order not to be trapped by local optimum, better heuristic algorithms are desired – Able to jump out of a local optimum Simulated Annealing Algorithm • A worse neighborhood solution will be accepted with a probability • General steps – Find an initial current solution • Let the objective function value be Zc – Repeat the following steps • Randomly select a neighborhood solution with Zn as the objective function value • If Zn≤Zc, let the neighborhood solution as the current solution • If Zn>Zc, let the neighborhood solution as the current solution with the probability of ex where x = (Zc – Zn)/T. T, a positive parameter, referred to as the temperature, controls the probability of accepting a worse neighborhood solution Simulated Annealing Algorithm • The probability of accepting a worse neighborhood solution depends on (Zc – Zn)/T – How worse it is: a smaller Zn – Zc (not too bad) will have a higher probability – The temperature T: a larger T will have a higher probability • The annealing schedule – T is set to be a large value at the beginning, then it will be gradually reduced – In early iterations, a worse neighborhood solution will be very likely accepted so that the algorithm can explore different areas of the feasible region – In later iterations, the probability of accepting a worse neighborhood solution becomes smaller so that the focus of the algorithm becomes on improving the solution locally • When the algorithm stops – When the temperature T becomes a very small value, or – When there is no solution improvement for a number of continuous iterations Simulated Annealing Algorithm • The algorithm is based on the analogy to a physical annealing process • The annealing process – Melting a metal at a high temperature • With high energy • Correspondence in the SA algorithm: An initial solution with a high cost – Gradually cooling down the metal until it reaches a stable state with desired property • Low energy state • Correspondence in the SA algorithm: An improved solution with a low cost – At any temperature, the energy level of the atoms fluctuates, but tending to decrease • Correspondence in the SA algorithm: A higher-cost solution may be accepted during the process Example of Simulated Annealing • Initial solution – Assumed to be (1,2,3,4,5,6,7) with Zc=69 • Neighborhood definition – Assumed to be the sub-tour reversal – Select a neighborhood solution • Randomly select a starting node and an ending node as the sub-tour • Temperature schedule – – – – – T1=10 T2=0.5T1 T3=0.5T2 T4=0.5T3 T5=0.5T4 In large-size problems, the temperature T may be reduced at a slower pace. For example, Tk+1=0.99Tk. Usually it is a parameter that can be tuned by experiments. Example of Simulated Annealing • The first iteration – Randomly choose a neighborhood solution. Suppose it is (1,2,4,3,5,6,7) with cost Zn=65 – Because Zn<Zc, accept the neighborhood solution for sure • (1,2,4,3,5,6,7) becomes the current solution and Zc=65 • The second iteration – Randomly choose a neighborhood solution. Suppose it is (1,2,4,6,5,3,7) with cost Zn=64 – Because Zn<Zc, accept the neighborhood solution for sure • (1,2,4,6,5,3,7) becomes the current solution and Zc=64 • The third iteration – Randomly choose a neighborhood solution. Suppose it is (1,2,4,6,5,7,3) with cost Zn=66 – Because Zn>Zc, accept the neighborhood solution with probability e(64-66)/10 = e -0.2 = 0.819 – How to implement: Generate a random number x in (0,1). If x<0.819, accept the neighborhood solution. Example of Simulated Annealing • The third iteration (Cont’d) – If (1,2,4,6,5,7,3) is accepted in the above step, then the next neighborhood solution will be the one selected from the neighborhood of (1,2,4,6,5,7,3) – If (1,2,4,6,5,7,3) is NOT accepted, then the next neighborhood solution will be the one selected from the neighborhood of (1,2,4,6,5,3,7) • The fourth iteration – Find a new neighborhood solution – …… Summary of Quiz 1 • Mean = 80.8 • Standard deviation = 12.3 • Distribution – – – – – [90-99]: 13 [80-89]: 26 [70-79]: 15 [60-69]: 4 Below 60: 5