I want to model a Problem with column generation algorithm. I have two types of variables in the master problem, namely, x_{i,j}^{a,k} and y_{i,j}^{a,k}, where k belongs to the set of columns that we want to generate. In addition, x_{i,j}^{a,k} equals to 1 if y_{i,j}^{a,k} is greater than 0, and sum of x_{i,j}^{a,k} over all possible a equals to 1. The reason why I want to put both x and y in the master problem rather than just use variable x and keep the value of y as a parameter related to columns is that I may have a more complex pricing problem and more columns.
I’m thinking of using two pricing problems for the variable x and y, respectively, when solving the pricing problem. Is it correct? Or are there any other approaches to address this problem?
Thank you so much!
Dear Robert,
Thank you so much for your answer! x_{i,j}^{a,k} a binary (zero-one) variable before linear relaxation. We can relax the integer constraint of x.
Another concern is that we need another constraint as follows to make sure x and y are consistent.
y_{i,j}^{a,k} <= upperbound * x_{i,j}^{a,k} , \forall (i,j), a, k, where upperbound is a upper bound for y.
But in this way, the original master problem will have an exponential number of variables and constraints (as adding one column will add another constraint) if we put all the columns. It makes me think of one statement about column generation (the number of rows is much smaller than the number of columns). What do you think about the characteristic of such a formulation?
Thank you so much for your time and for the explanations!
Best regards,
Qiaolun
On Mon, May 8, 2023 at 5:24 PM UTC, AMPL Google Group <am...@googlegroups.com> wrote:
Is x_{i,j}^{a,k} a binary (zero-one) variable? Then your master problem is a mixed-integer optimization problem, which does not normally give the dual values that you would need for the pricing problem of a column generation algorithm.
If you have found some way to do a pricing problem for your particular application, however, then you could experiment with solving only the pricing problem for the x-variables, or only the pricing problem for the y-variables, or both pricing problems. (There is no way to know which works best except to try them all.) Whenever you choose a new k, however, you will need to add both x_{i,j}^{a,k} and y_{i,j}^{a,k} to the master problem.
--
Robert Fourer
We're switching to a new, enhanced user forum.
Join it now at discuss.ampl.com.