90 likes | 142 Views
Understand Iterated Local Search (ILS) methodology, including generating initial solutions, finding local minima, stopping rules, and perturbing solutions for optimization problems like Knapsack, Jobshop Scheduling, and Traveling Salesman. Explore various options and visualization techniques.
E N D
Iterated Local Search General Idea: • Start with an initial solution s. • Find the local minima, s*, using a heuristic (this heuristic is most often the local improvement algorithm). • Perturb s* to obtain some new solution s’. Then repeat step 2 starting from s’. • Repeat step 2 and 3 until some termination condition is met.
Iterated Local Search Visual Representation of ILS
Iterated Local Search Issue 1: How to generate the initial solution s? Options: a) Heuristic b) Randomly generated Issue 2: How to find the local minima? Options: a) Local Improvement Algorithm b) Newton’s Method c) Other heuristic
Iterated Local Search Issue 3: What to use for a stopping rule? Options: a) Total number of perturbations b) Number of perturbations without obtaining new incumbent c) Time
Iterated Local Search Issue 4: How to perturb a solution? Examples: Knapsack Problem: Let the solution s be represented by a listing of items in the knapsack followed by items not in the knapsack. e.g. [3, 6, 8, 9, 10 | 1, 2, 4, 5, 7] => [3, 4, 5, 8, 9, 10 | 1, 2, 6, 7] ^ ^ ^ Perturbation 1: Randomly remove two or more items from the knapsack and randomly insert items checking to ensure weight constraint is maintained. Perturbation 2: Remove one or more items from the knapsack, and rerun greedy algorithm for all remaining items.
Iterated Local Search Issue 4: How to perturb a solution? cont. Examples: Jobshop Scheduling Problem: Randomly perform n pairwise interchanges of the schedule. Machines s’ 1 [A,B,C,D] [B,A,C,D] 2 [B,A,D,C] => [A,B,D,C] 3 [A,C,B] [A,C,B] 4 [B,D,A] [B,A,D] Note, ensure feasibility during interchange.
Iterated Local Search Issue 4: How to perturb a solution? cont. Examples: Traveling Salesman Problem: Randomly select several jobs and swap their locations. s s’ [1-3-4-6-5-2-8-7-1] => [1-6-4-3-5-7-8-2-1] ^ ^ ^ ^ Others?