当前位置: 首页 > 知识库问答 >
问题:

主块中的CPLEX OPL IP间隙并在模型中执行

龚运乾
2023-03-14

在我的模型中,我想设置一个IP间隙。我在一个主块中这样做了:

main {

    thisOplModel.generate();


    cplex.epgap = 0.005; 

    if (cplex.solve()) {

        var obj = cplex.getObjValue();
        writeln("Objective function value: " + obj);
    }

}

在模型本身中,我有几个用于控制台输出和excel编写的执行块。例如。:

execute{
  writeln("MECHANICAL HARVESTING");
 for(var j in J){

   write("j= "+j + " ");

   for(var t in T){
     var x_out = 0;

     for(var k in K){
       for(var b in B){
         if(k == 1){x_out = x_out + x[j][t][k][b];}
       }
     }


     write(x_out + " ");
   }
   writeln("");


 }
 writeln(""); 
}               

当我运行模型时,我得到了一个解决方案,但是不执行执行块。

有人能帮我吗?

共有1个答案

祖波光
2023-03-14

您需要调用postProcess。

例如,在您的代码中,您应该更改

main {

    thisOplModel.generate();


    cplex.epgap = 0.005; 

    if (cplex.solve()) {

        var obj = cplex.getObjValue();
        writeln("Objective function value: " + obj);
    }

}

进入

main {

    thisOplModel.generate();


    cplex.epgap = 0.005; 

    if (cplex.solve()) {

        var obj = cplex.getObjValue();
        writeln("Objective function value: " + obj);
        thisOplModel.postProcess(); // call postProcess
    }

}
 类似资料:
  • 问题内容: 我有一张桌子,它是: 当我提出错误的要求时,例如要为唯一列输入相同的值。“ id”正在增加…这是错误的id请求; 这是我的表结果; 请帮助我如何解决此问题,我想订购。顺序的.. 问题答案: 这就是序列的工作方式。 重要提示:为避免阻塞从同一序列中获取数字的并发事务,绝不会回退nextval操作。也就是说,一旦获取了值,就将其视为已使用且不会再次返回。即使周围的事务稍后中止,或者调用查询

  • 下面的代码生成九个单独的JPanels,其中有9个按钮。九个JPanel使用GridLayout排列到一个基本JPanel上。然后使用边框布局将这个基本JPanel放置到ContentPane上。我对JButtons和每个JPanel使用边框来明确定义它们的分离。每个JPanel中的JButtons看起来都很好,但是JPanels之间有一个间隙,这导致了双行的出现,这让我非常恼火。我尝试将每个JP

  • 问题内容: 我正在构建一个Bootstrap 3网格,该网格最终将成为投资组合页面。在下面的bootply中,在第一个示例中,您可以看到它在我的 bootply中 完美地从6堆叠到4到3 但是,在第二个示例中,在同一个靴子上,存在一个项目,其中该项目的图块较长,并且在堆叠时会在网格中造成间隙。 最佳的引导友好解决方案是什么?任何帮助,不胜感激。 问题答案: 有两种方法可以解决此问题: 给投资组合中

  • 中间件及辅助模块允许您轻易地对模块的进行接入与解除到您的 Macaron 应用中。 现在已经有许多 中间件和模块 来简化您的工作: gzip - Gzip 压缩所有响应 binding - 请求数据绑定和校验 i18n - 应用的国际化与本地化 cache - Cache 管理器 session - Session 管理器 csrf - 生成和管理 CSRF 令牌 captcha - 验证码服务

  • 在 Macaron 中, 路由是一个 HTTP 方法配对一个 URL 匹配模型. 每一个路由可以对应一个或多个处理器方法: m.Get("/", func() { // show something }) m.Patch("/", func() { // update something }) m.Post("/", func() { // create something

  • 问题内容: 我想将Mongoose模型分离到一个单独的文件中。我试图这样做: 然后,我尝试使用如下模型: 在单独的模块中引用模型是否合理? 问题答案: 基本方法看起来很合理。 作为一种选择,您可以考虑集成模型和控制器功能的“提供商”模块。这样,您可以让app.js实例化提供程序,然后可以执行所有控制器功能。app.js只需指定要实现的具有相应控制器功能的路由即可。 为了进一步整理,您还可以考虑使用