使用GLPK上的随机数据测试模型

时间:2015-07-21 22:58:59

标签: random glpk

我是GLPK的新手,我想测试我的简单模型, 我使用此注释生成不同的随机数据:

param seed:=gmtime();
param u{(i,j) in E}:=(round(seed*Uniform01())) mod 40 ;

我想解决模型100次并获得目标函数最优值的平均值。

我不知道如何编写迭代表达式来重复解决.mod文件中的模型。你能帮我吗?

这是我的模特:

###  VARIABLES  ###
var x{(i,j) in E} >= 0, <= u[i,j];
###  OBJECTIVE  ###
maximize Val: sum {(1,j) in E} x[1,j];
###  CONSTRAINTS  ###
subject to Balance {i in V diff {1,n}}:
  sum {(j,i) in E} x[j,i] = sum {(i,k) in E} x[i,k];
solve;

1 个答案:

答案 0 :(得分:1)

我也在&#34; https://lists.gnu.org/mailman/listinfo/help-glpk&#34;中提出了这个问题, 我从Heinrich Schuchardt那里得到了这个答案并且它有效。 &#34;亲爱的Shaghayegh,

glpsol不能自行迭代多个模型或数据集。

https://en.wikibooks.org/wiki/GLPK/Scripting_plus_MathProg 演示了如何使用脚本语言多次调用glpsol。

您可以像这样传递随机数生成器的种子值

glpsol - 选择SEEDVALUE

在awk中,您可以使用函数rand()创建随机数。&#34;

要完成模型,我们唯一需要的是添加以下注释:

param n >=1  integer; # Number of nodes
set V := 1..n;  # Set of nodes
set E within (V cross V);  # Set of arcs

这是最大流量问题。