I was trying to solve a MILP by a column generation algorithm, and I noticed that the algorithm was stuck at the same solution, I tried to diversify the pool of initial columns, but the problem I faced was that even if the MP solved by CPLEX gave the optimal solution, the algorithm cannot prove it and keep returning it.
-
1$\begingroup$ It's not clear what "the algorithm cannot prove it and keep returning it" means. Do you mean that you find a column with negative reduced cost that is already in the column pool? If yes, what is the value of the reduced cost? $\endgroup$– fontanfAug 24 at 11:55
-
$\begingroup$ Does the subproblem keep returning new columns with negative reduced cost? $\endgroup$– RobPrattAug 24 at 11:56
-
$\begingroup$ Yeah, the subproblem keeps returning new columns. I solved the problem instance exactly using CPLEX in 1 second, but when calling column generation even if the Master Problem returns this solution from the first iteration, the subproblem keeps returning columns with negative reduced cost for many hours (I set 5 hours as limit time). $\endgroup$– Nada.SAug 24 at 12:47
-
$\begingroup$ Does your subproblem objective maybe include a constant offset that you are not accounting for? It might be best to show us your original, master, and subproblem formulations (in math, not in code). $\endgroup$– RobPrattAug 24 at 13:11
-
1$\begingroup$ If at least one of the columns that you add at each iteration was not in the pool and ends up in the master problem solution of the next iteration, then it''s just that the algorithm hasn't converge yet. For large problems, the column generation procedure might require a lot of iterations $\endgroup$– fontanfAug 24 at 13:26