如何在CPLEX流控制中设置capFlour每次调整间隔为100
修改方法
你当前代码中capFlour++语句的作用是每次迭代将面粉容量上调1,要改成每次调整间隔为100,仅需替换这一行代码即可:
- 找到代码中的
capFlour++;语句 - 将其修改为
capFlour += 100;
修改后的完整代码如下:
main { thisOplModel.generate(); var produce = thisOplModel; var capFlour = produce.Capacity["flour"]; var best; var curr = Infinity; var ofile = new IloOplOutputFile("mulprod_main.txt"); while ( 1 ) { best = curr; writeln("Solve with capFlour = ",capFlour); if ( cplex.solve() ) { curr = cplex.getObjValue(); writeln(); writeln("OBJECTIVE: ",curr); ofile.writeln("Objective with capFlour = ", capFlour, " is ", curr); } else { writeln("No solution!"); break; } if ( best==curr ) break; capFlour += 100; for(var t in thisOplModel.Periods) thisOplModel.ctCapacity["flour"][t].UB = capFlour; } if (best != Infinity) { writeln("plan = ",produce.Plan); } ofile.close(); }
修改后每次迭代都会将面粉容量上限上调100,满足调整间隔的需求。
内容的提问来源于stack exchange,提问作者FF-the learner
相关产品推荐
相关产品推荐

