*交叉熵平衡SAM表
set ac /sec1,sec2,sec3,sec4,total/;
set i(ac) /sec1*sec4/;
alias(i,j);
table sam(*,*)
sec1 sec2 sec3 sec4 total
sec1 52 45 150 247
sec2 95 48 90 233
sec3 120 89 209
sec4 192 192
total 267 182 192 240;
parameters
q0(i,j) SAM表各个初始流量,
h0 原始sum of all transaction flows;
q0(i,j)=sam(i,j);
h0=sum((i,j),q0(i,j));
display h0,sam;
variables
q(i,j) 要调整的SAM表中的各个数值,
h 调整SAM表的总值,
hratio 调整和原始两个总数的比例,
z 目标函数的数值,即预期熵值;
positive variable q(i,j);
equations
totalsum 被调整的总数,
hratiodef hratio的定义和范围,
directentropy 目标函数预期交叉熵,
balance 各个账户平衡的限制条件;
totalsum..h=e=sum((i,j),q(i,j));
hratiodef..hratio=e=h/h0;
directentropy..z=e=sum((i,j),(1/h)*q(i,j)*log(q(i,j)/sam(i,j))-log(hratio));
balance(i)..sum(j,q(i,j))=e=sum(j,q(j,i));
q.l(i,j)=q0(i,j);
h.l=h0;
hratio.lo=0.5;
hratio.up=2;
model sambal /all/;
solve sambal useing nlp minimizing z;
display q.l,h.l,hratio.l;
图片里的****一直提示错误~~~


雷达卡






京公网安备 11010802022788号







