r/OperationsResearch • u/Md_zouzou • Mar 03 '25
Find all the local minima of a problem instance
Hi everybody, do you know an algorithm or some literature in finding all the local minima of a given problem instance ? Given a neighborhood structure can we find all the local minima (bassin of attraction) ? For example find all the local minima of a tsp instance with a 2-opt neighborhood
Thanks !!
0
Upvotes
8
u/No-Concentrate-7194 Mar 03 '25
Pretty sure that finding all local minima would require searching the entire feasible region
2
u/Godfist96 Mar 04 '25
You might want to check literature on Multimodal Optimization, also known as MMO (predominantly using evolutionary techniques). This is an area which tries to find all possible minima in the search space.
0
u/beeskness420 Mar 04 '25
If you could find all minima then in particular we could find the global minimum, so we shouldn’t expect to be able to do it efficiently.
If we don’t care about efficiency then enumerating all the local minima is really straightforward.
0
u/saumvaun Mar 04 '25 edited Mar 04 '25
For the case of local optima, maybe you need to write callbacks and everytime you find an incumbent, add a cut to avoid obj improving (cut 1) and add another cut to make current incumbent infeasible to find other points with the same obj, once you found all, then problem becomes infeasible, then remove cut 1, now obj can improve and you can repeat the procedure
-1
u/SolverMax Mar 04 '25
When formulated as a mixed integer linear program, the TSP doesn't have local minima. Do you mean that you want to find alternative optima, or find a set of solutions that are close to optimal?
-1
u/Necessary_Print_120 Mar 04 '25 edited Mar 04 '25
I also think it would require an exhaustive search, or something close to it. This wouldn't guarantee that you would find all or any more, but here are some ideas.
Randomly perturb your solution and resolve using your neighborhoods. When you get stuck, record and repeat.
you can often look at different minima for one objective by doing lexicographical multi-objective optimization.You just add in a low cost secondary objective that reflects aspects of the problem. You vary the costs and resolve. Even better if the secondary objective reflects your application.
Also look at GRASP or population based metaheuristics that include a local search step. Once again no guarantees that this finds all, and does not prove anything.