0

我正在尝试使用 GAMS 对问题进行建模。我有两个问题:

1)如何初始化decesion值P?它假定为以下形式

P(一)/

i1 25

i2 33 /

2)我正在尝试计算 SINR,如

SINR(I) =e= hh(I)*P(I) / sqr(sigma)+sum(I,H(J,I)*P(I));

但是,我总是出错,要么该集合已经是控制器或域问题。我怎么解决这个问题?

代码的一部分

I 用户数 /i1,i2/

J 用户干扰 /j1,j2/

迭代次数 /1/ ;

参数

CP(I) circuit power per user  /

i1  10

i2  10 /
hh(I)  channel quality  /    i1  48    i2  106 /
Sigma    Noise              /0.0057/
tol      tolerence value    /0.01/
minRate  minimum rate /0.1/

maxiter max number of iterations /3/   ;
Table H(J,I) interference value

>        i1          i2
>
>  j1    0         18.8030
> 
>  j2    8.9555         0 

; >

变量

P(I)

F

lambda

SINR(I)

b(I)

a(I)

方程 Objectivefun、SINRFUN、lambdaFUN、RateFUN、afun、bfun、nonlconfun;

SINRFUN(I).. SINR(I) =e= hh(I)*P(I) / sqr(sigma)+sum(I,H(J,I)*P(I));

先感谢您。

4

1 回答 1

0

该声明

SINRFUN(I).. SINR(I) =e= hh(I)*P(I) / sqr(sigma)+sum(I,H(J,I)*P(I));

有一个问题,我们有一个隐式循环i,然后在同一个 sum 内i。这在数学上不是很好定义的。因此,您可以执行以下操作:

alias(i,ii);
SINRFUN(I).. SINR(I) =e= hh(I)*P(I) / sqr(sigma)+sum(ii,H(J,ii)*P(ii));

P(i)您可以使用赋值语句进行初始化:

parameter initp(i) /i1 25, i2 33/;
p.L(i) = initp(i);

我们分配给变量级别值的.L方法(其他可能性是诸如.lo, .up, .m: 请参阅文档以获取更多信息——阅读一些文档在任何情况下都可能是有益的)。

于 2016-05-24T04:55:37.283 回答