IBM的CPLEX cplex.setOut(env.getNullStream())无法正常工作

时间:2018-07-31 12:35:01

标签: optimization cplex opl

我已经仔细研究了问题,看看是否有人已经提出过这个问题,据我所知,没有其他人遇到过这个问题。

我正在尝试从命令行禁止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 ... 
}

1 个答案:

答案 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上也提出了类似的问题。