Topic
  • 1 reply
  • Latest Post - ‏2013-09-09T17:33:00Z by GGR
Charles.Yu.Wang
Charles.Yu.Wang
1 Post

Pinned topic Adding Constraints as Column

‏2013-09-05T02:36:05Z |

Hi Everyone,

 

I am a new user to CPLEX and currently trying to implement a Column Generation Method using C++ as the API.

For example, the formulation is :

min(x1+x2+x3)

s.t.

2.x1+3.x2+4.x3<=y1             (c1)

x1+2.x3<=y2                         (c2) 

y1+y2=4                                (c3)

x,y>=0                                   (c4) 

We can see that y1,y2 are non-decision variable, that is it is not in the objective. Commonly, if we formulate the problem by column, we use like:

constraints.add(IloRange(env,A1,A2));                                                  (1)

x.add(IloNumVar(obj(1)+constraints[0]*2+constraints[1]*1))                   (2) 

Problem1: for c1 and c2, the lower bound is 0 but upper bound is y1 and y2, respectively. The cplex does not allow me to put variables or expressions in A1 and A2 place in (1).

Problem2: if we cannot add the y with (1), we need to add the column for y in (2). However, y is not in the objective, if we use (2) and set obj(0) for y, I feel like we will change the formulation and y is in the objective with coefficient 0. Am I right? It seems that this problem does not matter. However, if we want to get the dual, then it does matter. At first, when only x is the objective variable, dual is only related with c1 and c2. However, when y is add with (2), I feel that the c3 also has to be counted into the dual issue, since y now is in the objective variable although coefficient is 0. This is my worry.

 

Can any one help me figure this point out? Thank you very much.

Best,

Wang Yu

Updated on 2013-09-05T02:42:22Z at 2013-09-05T02:42:22Z by Charles.Yu.Wang
  • GGR
    GGR
    34 Posts

    Re: Adding Constraints as Column

    ‏2013-09-09T17:33:00Z  

    Hi

    This forum is about Constraint Programming. For any questions about Linear Programming please post your message on

     

    IBM ILOG >‎ IBM ILOG Optimization >‎ Mathematical Programming >‎

     

    Hope that helps