我有一个参数V,我想对其进行排序,然后要根据排序后的参数计算累积分布。
我在GAMS数据实用程序库中找到了GDXRANKExample18.gms代码进行排序,但是此代码删除了具有相同值的参数,并且也更改了索引。
如果我使用GDXRANKExample18.gms,结果是:
1 3.000, 2 4.000, 3 8.000, 4 9.000, 5 10.000, 6 12.000
7 15.000, 8 15.000, 9 23.000, 10 27.000
但我想拥有
8 3, 5 4, 4 8, 6 9, 9 10, 3 12, 1 15, 10 15, 7 23 , 2 27
示例
set k/1*10/;
parameter V(k)/1 15,2 27,3 12,4 8,5 4,6 9,7 23,8 3,9 10,10 15/;
, sorted_v(k),p(k),cumulative(k);
p(k)=1/card(k);
scalar
b/0.6/
Big_b
;
我想对sorted_V和累积代码进行编码,以获得以下结果:
sorted_v(k)={8 3, 5 4, 4 8, 6 9, 9 10, 3 12, 1 15, 10 15, 7 23 , 2 27}
cumulative(k)={8 0.1, 5 0.2, 4 0.3, 6 0.4, 9 0.5, 3 0.6, 1 0.7, 10 0.8, 7 0.9 , 2 1}
Big_b=12 (Big_b is the smallest value of parameter that cumulative(k) is biger than b (here for example Big_b=12 because of cumulative('3')=0.6>= b=0.6 and V('3')=12 then big_b=12) )