AMPL:当您无法在命令文件中包含数据和模型命令时,如何使用NEOS Server打印变量输出?

时间:2014-09-26 11:39:28

标签: ampl neos-server

我使用的模型进行了一些优化,其约束和变量的数量超过了AMPL学生版的上限,所以我找到了一个网页[http://www.neos-server.org/neos/solvers/milp:Gurobi/AMPL.html],它可以解决我的模型类型。

但我发现当使用求解器时你可以提供一个命令文件(我假设它与.run文件相同),NEOS服务器的文档告诉你应该看到输入文件的文档。我使用AMPL输入,根据[http://www.neos-guide.org/content/FAQ#ampl_variables]应该能够使用带有外观的命令文件打印决策变量:

 solve;
 display _varname, _var;

问题是NEOS声称你不能添加:

 data datafile;
 model modelfile;

命令进入.run文件,导致编译器无法找到变量。

有谁知道解决这个问题的方法? 提前谢谢!

编辑:如果其他人有这个问题(我相信很多人都基于我的互联网搜索)。尝试删除任何最终重置;来自.run文件的命令!

1 个答案:

答案 0 :(得分:1)

您无需在提交给NEOS的脚本文件中指定modeldata命令。它会自动加载模型和数据文件,解决问题,然后执行您提供的脚本(命令文件)。例如,提交diet1.mod模型diet1.dat数据和这个简单的命令文件

display _varname, _var;

生成包含

的输出
:                _varname              _var    :=
1   "Buy['Quarter Pounder w/ Cheese']"   0
2   "Buy['McLean Deluxe w/ Cheese']"     0
3   "Buy['Big Mac']"                     0
4   "Buy['Filet-O-Fish']"                0
5   "Buy['McGrilled Chicken']"           0
6   "Buy['Fries, small']"                0
7   "Buy['Sausage McMuffin']"            0
8   "Buy['1% Lowfat Milk']"              0
9   "Buy['Orange Juice']"                0
;

如您所见,这是display命令的输出。