Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 找到每个可行的解决方案后,如何停止DoCplex.CP解算器?_Python_Cp_Opl_Docplex - Fatal编程技术网

Python 找到每个可行的解决方案后,如何停止DoCplex.CP解算器?

Python 找到每个可行的解决方案后,如何停止DoCplex.CP解算器?,python,cp,opl,docplex,Python,Cp,Opl,Docplex,亲爱的 目前,我正在使用opldocplex来解决一个使用CP的问题。基本模型是在OPL中构建的,然后我通过DoCplex将其调用到python中。我有以下问题: 1-在OPL模型中,有一些决策表达式(dexpr)没有导入python。我如何才能做到这一点,或者在哪里可以找到导入的dexpr(如果有的话)。 2-如何在找到每个可行的解决方案后停止解算器进行一些后处理,然后再次运行解算器。可能吗 提前谢谢 穆罕默德 如果希望在python代码中看到元组集,可以将dexpr转换为元组集 您可以在O

亲爱的

目前,我正在使用opldocplex来解决一个使用CP的问题。基本模型是在OPL中构建的,然后我通过DoCplex将其调用到python中。我有以下问题: 1-在OPL模型中,有一些决策表达式(dexpr)没有导入python。我如何才能做到这一点,或者在哪里可以找到导入的dexpr(如果有的话)。 2-如何在找到每个可行的解决方案后停止解算器进行一些后处理,然后再次运行解算器。可能吗

提前谢谢 穆罕默德

  • 如果希望在python代码中看到元组集,可以将dexpr转换为元组集

  • 您可以在OPL和调用后处理中使用流控制/

  • 举例

    using CP;
    
    
    int nbKids=300;
    float costBus40=500;
    float costBus30=400;
         
    dvar int+ nbBus40;
    dvar int+ nbBus30;
         
    minimize
         costBus40*nbBus40  +nbBus30*costBus30;
         
    subject to
    {
         40*nbBus40+nbBus30*30>=nbKids;
    }
    
    execute
    {
        writeln("nbBus40 = ",nbBus40," and nbBus30 = ",nbBus30," and the cost is ",costBus40*nbBus40  +nbBus30*costBus30);
    }
    
    
    
    main
    {
    cp.param.SearchType=24;
    cp.param.workers=1;
    
    thisOplModel.generate();
    cp.startNewSearch();
    while
    (cp.next()) {  thisOplModel.postProcess(); }
    }