Reply-to: gamsworld@googlegroups.com
Dear GAMS users,
I am new to GAMS, so please accept my apology in advance to post crazy
questions.
I need a ‘‘Cumulative Sum’’ in GAMS, but it seems that it is not that
simple!
For example, I have 4 quantities that are properly defined: q1, q2,
q3, q4.
I need to define 4 constraints, like the following ones:
const1 … q1 =l= a1 ;
const2 … q1+q2 =l= a2 ;
const3 … q1+q2+q3 =l= a3 ;
const4 … q1+q2+q3+q4 =l= a4 ;
when I am using such equations, I encounter with the following error:
$150 Symbolic equations redefined.
For more information I have included my program as well:
Thanks in advance!
All the best,
Ebrahim
*-----------------------------------------------------------------------------------------------------------------------------
Scalar L ‘max no. of re-transmissions’ /4/ ;
Scalar N ‘no. of info bits’ /1200/ ;
Scalar P_max ‘Power budget’ /1/ ;
Scalar lambda ‘mean of exponential distribution’ /7.5/ ;
Set ell ‘index of each transmission in HARQ process’
/ 1 * 4 / ;
parameter zeta(ell) ‘CSI at each round based on an exponential
r.v.’ ;
zeta(ell) = -lambda * log(uniform(0.001,1));
Parameter M ‘no. of channel uses per packet’ ;
M = N / L ;
Parameter
epsilon(ell) the probability of successful transmission at
each round
/ 1 0.900
2 0.950
3 0.990
4 0.999 / ;
Parameter c(ell) ‘objective function linear weights’ ;
c(ell) = epsilon(ell) ;
Variables
P(ell) ‘power allocated to current retransmission’
t(ell) ‘slack variables’
f0 ‘weighted power’
q(ell)
uL(ell) ;
Positive Variable P ;
Positive Variable t ;
Equations
objective ‘Define objective function’
rateConstraint(ell) ‘Service guarantee for i’
powerConstraint(ell) ‘Power upper limit’
Eq(ell)
upperLimit ;
Eq(ell) … q(ell) =e= exp(lambda / P(ell)) * Gamma(0) *
Gammareg(lambda/P(ell),0) ;
upperLimit(ell) … uL(ell) =e= t(ell) * (1-epsilon(ell)) ;
objective … f0 =e= sum(ell , (1-epsilon(ell)) * P(ell)) ;
powerConstraint(ell) … P(ell) =l= P_max ;
rateConstraint(‘1’) … L - (1/log(2)) * (q(‘1’)) =l= uL(‘1’) ;
rateConstraint(‘2’) … L - (1/log(2)) * (q(‘1’) + q(‘2’)) =l=
uL(‘2’) ;
rateConstraint(‘3’) … L - (1/log(2)) * (q(‘1’) + q(‘2’) + q(‘3’)) =l=
uL(‘3’) ;
rateConstraint(‘4’) … L - (1/log(2)) * (q(‘1’) + q(‘2’) + q(‘3’) +
q(‘4’)) =l= uL(‘4’) ;
Model powerAllocation /all/ ;
Solve powerAllocation using dnlp minimizing f0 ;
*Display P.l ;
*-----------------------------------------------------------------------------------------------------------------------------
\