排序参数并获取累积分布大于b的参数值

时间:2019-05-16 06:18:25

标签: gams-math

我有一个参数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) )

0 个答案:

没有答案