Skip to main content

Column generation: how to add new variables

Awaiting user input

Comments

3 comments

  • David Torres Sanchez
    Gurobi Staff Gurobi Staff

    Hi Jisoon,

    How are you generating the variables beforehand, and how are you choosing which ones are set to 0?

    You need to solve the intermediate RMP to get the duals that are used in the pricing problems. I don't think you can skip this. Unless you enumerate all columns in which case you are not performing column generation as you are just solving the full master problem.

    There are efficient ways of adding columns, e.g. by using the Column object, which is passed when generating a variable via addVar (\(\texttt{column}\) argument). There are some sample codes online.

    Cheers, 
    David

    0
  • Jisoon Lim
    First Comment
    Gurobi-versary
    First Question

    Hi David,

    I am providing an initial feasible solution, which is a path found through a heuristic. For the path found with the heuristic, I set the variable lb/ub to 0/1, and the rest to 0/0. So, even if the variables "exist" in the RMP, they are effectively restricted from selection, as I have a constraint staying a sum of path_variables equals to 1

    Essentially, my MIP is a path-finding problem that minimizes a cost, and my Pricing problem is a flow-based shortest path problem with dual variables as coefficients in the objective function. 

    0
  • David Torres Sanchez
    Gurobi Staff Gurobi Staff

    Hi Jisoon,

    You can start with a subset of columns (e.g., the solution from a heuristic), but I'm confused because it sounds like you're starting with all of them.
    Won't fixing variables affect the duals? 

    To answer your original question:

    My understanding is that all variables fixed to zero in RMP would be removed at presolve (and all corresponding columns too), so it would not impact the efficiency of simplex (or any other method the solver decides to take to solve the LP), but I want to double-check.

    Yes, presolve will remove those variables that are fixed to 0.

    Cheers, 
    David

    0

Please sign in to leave a comment.