I am currently using Column Generation accompanied with Dantzig-Wolfe decomposition to solve MILP. I have several questions to ask.
- At the beginning, the objective value of RMP does not improve even if columns with negative RC (my problem is a minimisation problem) have been found and added into the basis. It starts to improve only after numerous rounds of iteration. I know this is the so-called degeneracy of CG. According to the suggestions in some related literature, I tried to add some noise to the RHS of RMP constraints. For example, a "= 1" constraint is relaxed to "≥ 0.9999 & ≤ 1.0001". It seems that the objective value improves iteratively after this relaxation; however, when I check the total number of iteration rounds required to optimise the RMP, I found that it did not change much compared to the case without relaxation.
- As iteration goes on, more columns are added into the basis and the solution process of RMP becomes slower. However if I limit the number of columns by adding a mechanism, which removes those columns with smallest coefficients in the RMP solution from the basis, the algorithm often gets stuck with cycling. What can I do on this?
- Most of times the optimisation of RMP ends up with a non-integer solution. The best integer solution did not change throughout the CG process (that is, the initial integer solution generated by heuristic is never improved with new columns found). Is there anything I can do other than branch-and-price and doing a binary-tree search? I would like to quickly obtain an improved integer solution.