如何在AMPL CPLEX中进行蒙特卡罗模拟?

时间:2018-03-27 12:33:09

标签: cplex montecarlo ampl

我正在尽量减少我的目标函数。

我有一个参数> param Preq {i in 1..n:= Uniform(0.002,Pmax / n) 其中Pmax是.0095,n是12。

如何使用此Uniform参数在我的模型文件中引入蒙特卡罗模拟?

1 个答案:

答案 0 :(得分:0)

AMPL语言有循环。下一个示例适用于任何解算器:

param n := 3;
set I := 1..n;

# 
# random numbers
#
param p{i in I} := Uniform(0,1);
display p;

#
# minimal model
# uses a scalar q
#
param q;
var x;
minimize z:x;
e: x = 2*q;

#
# solve in loop
# assign q before solving
#
param results{I};
for {i in I} {
   let q := p[i];
   solve;
   let results[i] := z;
} 
display results;

end;

AMPL网站提供了更多信息:例如https://ampl.com/NEW/loop1.html