Putting a variable following "if" in an if-then-else expression will also
create a nonlinear constraint that will be rejected by CPLEX.
Bob Fourer
4...@ampl.com
> -----Original Message-----
> From: renan [mailto:renan...@yahoo.com]
> Sent: Friday, December 10, 2010 1:55 PM
> To: Robert Fourer
> Subject: Re: about discounting
>
> how can i linearize this constraint because CPLEX said that my model
> contains nonquadratic non-linear constraint
> this is the part of the model
>
> var TOTCOST{c in CAMPAIGN}=sum{(i,j,k) in ROUTES}
> cost[i,j,k]*insertion[i,j,k,c];
> var COUNT{c in CAMPAIGN}=sum{(i,j,k) in ROUTES}insertion[i,j,k,c];
>
> var DISQTY1{c in CAMPAIGN}=if COUNT[c]>=limit1 then TOTCOST[c]*disc1;
> var DISQTY2{c in CAMPAIGN}=if COUNT[c]>=limit2 then TOTCOST[c]*disc2
> else DISQTY1[c];
>
> subject to BUDGET{c in CAMPAIGN}:
> TOTCOST[c]-(DISQTY1[c]+DISQTY2[c])
> <=budget[c];
>
> thanks
> renan
>