🧩 Constraint Solving POTD:Problem of the Day: Large Neighborhood Search (LNS) for Optimization #42947
Closed
Replies: 1 comment
-
|
This discussion has been marked as outdated by Constraint Solving — Problem of the Day. A newer discussion is available at Discussion #43183. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Problem Statement
Large Neighborhood Search (LNS) is a meta-heuristic technique for solving hard combinatorial optimization problems by systematically exploring large regions of the solution space. Instead of making incremental moves like local search (changing one or two variables), LNS fixes most variables and re-optimizes a subset—the "neighborhood"—using an exact or heuristic method.
Concrete Instance
Consider a Vehicle Routing Problem (VRP) instance with 20 customers and 3 vehicles. In traditional local search, you might swap two customers between routes (a 1-exchange or 2-exchange move). With LNS, you might:
This explores a much larger neighborhood than swapping individual customers.
Input/Output
Why It Matters
Modeling Approaches
Approach 1: Large Neighborhood Search with MIP (Hybrid)
Treat LNS as a framework, not a model. At each iteration:
Decision Variables:
x[i]∈ domain for each problem variable iN_size∈ {5..50} for neighborhood size (tunable)Constraints:
x[i] = solution[i]for all i not in neighborhoodObjective: Minimize/maximize original objective over free variables
Trade-offs:
Example Pseudo-code (VRP with LNS)
Approach 2: Decomposition with Constraint Programming
Use CP to model the subproblem, iteratively decomposing the problem:
Decision Variables:
relax[i]∈ {0,1} indicating if variable i is freed (0 = fixed)Global Constraints:
cumulative(task[], duration[], capacity)for resource-constrained schedulingdisjunctive(task[])for non-overlapping intervalselement(index, array, value)for routing connectionsTrade-offs:
Key Techniques
1. Neighborhood Selection Strategy
Choose which variables to free intelligently:
2. Subproblem Solution Strategy
Solving the subproblem efficiently is crucial:
3. Acceptance Criteria & Diversification
Challenge Corner
Open Question for Readers:
Symmetry & Rotations: In a VRP with vehicles {A, B, C}, solutions where A and B are swapped represent the same objective value. How would you design a neighborhood selection strategy that accounts for this symmetry and avoids redundant reoptimizations?
Warm-starting Subproblems: Suppose your subproblem is a 0/1 knapsack and you've already solved it once with items {1..10}. In the next LNS iteration, you release item 11 and fix items {1..5}. What warm-start techniques from the first solve could accelerate the second?
Neighborhood Size Tuning: Empirically, larger neighborhoods yield better solutions but require more time per iteration. Design an adaptive algorithm that learns the Pareto frontier between solution quality and iteration time, and automatically adjusts neighborhood size.
References
Pisinger, D., & Ropke, S. (2010). "Large Neighborhood Search." Handbook of Metaheuristics (2nd ed.), Springer. A comprehensive survey of LNS variants with extensive bibliography.
Shaw, P. (1998). "Using Constraint Programming and Local Search Methods to Solve Vehicle Routing Problems." CP-98 Principles and Practice of Constraint Programming, Springer. Seminal paper introducing LNS for VRP.
Balas, E., & Simonetti, N. (2001). "Linear Time Dynamic-Programming Algorithms for New Classes of Restricted TSPs." INFORMS Journal on Computing, 13(3). Shows structured LNS on restricted Traveling Salesman instances.
Google OR-Tools Documentation on [Local Search & LNS]((developers.google.com/redacted) Practical implementation guide with Python and C++ examples.
Warning
Firewall blocked 1 domain
The following domain was blocked by the firewall during workflow execution:
awmgmcpgSee Network Configuration for more information.
Beta Was this translation helpful? Give feedback.
All reactions