Ignoring feasible solutions without increasing memory usage
Feature request:
Make it possible to reject a solution as infeasible in the callback without increasing memory.
Background:
My problem consists of mostly linear constraints and some very complicated non-linear ones which I cannot model using Gurobi and which almost all solutions found by Gurobi violate. I have an algorithm inside the callback that checks these non-linear constraints and only saves valid solutions to disk. I need to find all optimal solutions that satisfy my constraints, so I need to go for PoolSearchMode 2 which systematically finds the n best solutions. Unfortunately, there are so many of them, that the solution pool size cannot be large enough and even if it was, it would run out of memory. Adding a lazy cut after finding a solution to cut it off would also run out of memory since that's going to be at least a KB, times many many billion cuts, which is way more than a TB. Also, I am worried that the tree will consume too much memory by not exploring in a depth-first manner and then forgetting (later recomputing) the node. Does Gurobi consider this when searching the tree exhaustively?
Is there some trick to solve my problem?
0
-
Not a direct answer to your question, but are you aware that Gurobi 12 can handle nonlinear models and solve them to global optimality. This webinar presents how to do so in Python, and the documentation for these constraints is here.
I hope this helps.
0
サインインしてコメントを残してください。
コメント
1件のコメント