0

GAMS を使用して問題をモデル化しようとしています。2 つの質問があります。

1) 決定値 P を初期化する方法は? 次の形式であると思われます

P(I)/

i1 25

i2 33 /

2) 次のように SINR を計算しようとしています。

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

ただし、セットが既にコントローラーであるか、ドメインの問題であるかのいずれかで、常にエラーが発生しました。どうすればこの問題を解決できますか?

コードの一部

設定

I ユーザー数 /i1,i2/

/j1,j2/ に干渉する J ユーザー

反復回数 /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あり、同じ の合計内にあり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 に答える