2015-07-21 30 views
1

用隨機數據模型我是新的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; 
+0

您可以提供更完整的模型(工作示例)嗎?我不知道如何完成缺失的行。 –

回答

1

我也問過這個問題在「https://lists.gnu.org/mailman/listinfo/help-glpk」, 和我從海因裏希Schuchardt這個答案和它的作品。 「親愛的Shaghayegh,

glpsol之類本身不能遍歷多個模型或數據集。

https://en.wikibooks.org/wiki/GLPK/Scripting_plus_MathProg 展示瞭如何使用腳本語言來多次調用glpsol之類。

可以傳遞的種子值隨機數發生器這樣

glpsol之--seed SEEDVALUE

在awk中你可以使用函數rand()創建RAN dom號碼「。

爲了完成模型,我們唯一需要的就是添加如下意見:

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

這是一個最大流問題。