我已经仔细研究了问题,看看是否有人已经提出过这个问题,据我所知,没有其他人遇到过这个问题。
我正在尝试从命令行禁止oplrun的详细输出。我知道有些人使用cplex.setOut(env.getNullStream())很幸运,其中cplex是IloCplex类型的对象。函数setOut()继承自IloAlgorithm类。
当我尝试在模型(.mod)文件的主代码块中使用此代码时,出现错误:
脚本运行时错误:未知属性“ setOut”。
我将函数调用放在对solve()的调用之前。
任何想法可能有什么问题吗?
谢谢。
这是一个代码段:
main{
var opl = thisOplModel;
var mod = opl.modelDefinition;
var dat = opl.dataElements;
var set = opl.settings;
var cplex1 = new IloCplex();
cplex1.setOut(env.getNullStream()); //Giving me problems
opl = new IloOplModel(mod,cplex1);
opl.addDataSource(dat);
opl.generate();
cplex1.tilim = opl.tiLim;
cplex1.mipemphasis = 0;
cplex1.solve();
// more stuff ...
}
答案 0 :(得分:0)
啊,您使用的是IBM ILOG Script for OPL(又名oplscript)。 setOut
方法仅在C ++,Java和.NET OPL API中可用(例如,参见here)。
根据文档中的this页,CPX_PARAM_SCRIND
是“没有等效OPL选项的CPLEX参数”之一。除非您切换为使用C ++,Java或.NET OPL API之一,否则我认为不可能实现您所要求的功能。在IBM developerWorks官方论坛here上也提出了类似的问题。