首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DocPlex在使用搜索阶段时给出CpoSolverException

DocPlex在使用搜索阶段时给出CpoSolverException
EN

Stack Overflow用户
提问于 2022-03-10 01:39:15
回答 1查看 101关注 0票数 0

我正在docplex中运行一个约束编程模型。当我添加以下搜索阶段时,我会在docplex中得到一个错误:

代码语言:javascript
复制
    model.set_parameters({'SearchType': 'DepthFirst', 'Workers': 2, "LogVerbosity": "Verbose"})

    p1 = search_phase(
        vars=shifts.values(),
        varchooser=select_largest(var_impact()),
        valuechooser=select_largest(value_impact())
    )
    p2 = search_phase(
        vars=work_hours.values(),
        varchooser=select_smallest(domain_size()),
        valuechooser=select_random_value()
    )
    model.add(p1)
    ans = model.solve(TimeLimit=100, execfile='cpoptimizer.exe')

我得到以下错误

代码语言:javascript
复制
(base) dipplestix@DESKTOP-37BA91G:~/classes/csci 2951/hw2$ ./run.sh input/7_14.sched
 ! --------------------------------------------------- CP Optimizer 20.1.0.0 --
 ! Satisfiability problem - 196 variables, 266 constraints, 1 phase
 ! Presolve      : 21 extractables eliminated, 7 constraints generated
 ! TimeLimit            = 100
 ! Workers              = 2
 ! LogVerbosity         = Verbose
 ! SearchType           = DepthFirst
 ! Initial process time : 0.02s (0.02s extraction + 0.00s propagation)
 !  . Log search space  : 449.3 (before), 449.3 (after)
 !  . Memory usage      : 501.9 kB (before), 501.9 kB (after)
 ! Using parallel search with 2 workers.
 ! ----------------------------------------------------------------------------
 !               Branches  Non-fixed    W       Branch decision
Traceback (most recent call last):
  File "src/run.py", line 8, in <module>
    p = solve(sys.argv[1])
  File "/home/dipplestix/classes/csci 2951/hw2/src/solver.py", line 97, in solve
    ans = model.solve(TimeLimit=100, execfile='cpoptimizer.exe')
  File "/home/dipplestix/anaconda3/lib/python3.7/site-packages/docplex/cp/model.py", line 1080, in solve
    msol = solver.solve()
  File "/home/dipplestix/anaconda3/lib/python3.7/site-packages/docplex/cp/solver/solver.py", line 614, in solve
    raise e
  File "/home/dipplestix/anaconda3/lib/python3.7/site-packages/docplex/cp/solver/solver.py", line 607, in solve
    msol = self.agent.solve()
  File "/home/dipplestix/anaconda3/lib/python3.7/site-packages/docplex/cp/solver/solver_local.py", line 191, in solve
    jsol = self._wait_json_result(EVT_SOLVE_RESULT)
  File "/home/dipplestix/anaconda3/lib/python3.7/site-packages/docplex/cp/solver/solver_local.py", line 474, in _wait_json_result
    data = self._wait_event(evt)
  File "/home/dipplestix/anaconda3/lib/python3.7/site-packages/docplex/cp/solver/solver_local.py", line 424, in _wait_event
    evt, data = self._read_message()
  File "/home/dipplestix/anaconda3/lib/python3.7/site-packages/docplex/cp/solver/solver_local.py", line 533, in _read_message
    frame = self._read_frame(6)
  File "/home/dipplestix/anaconda3/lib/python3.7/site-packages/docplex/cp/solver/solver_local.py", line 593, in _read_frame
    raise CpoSolverException("Nothing to read from local solver process. Process seems to have been stopped (rc={}).".format(rc))
docplex.cp.solver.solver.CpoSolverException: Nothing to read from local solver process. Process seems to have been stopped (rc=5).

如果我用这个search_phase来代替它,它就能工作

代码语言:javascript
复制
    p1 = search_phase(
        vars=shifts.values(),
        varchooser=select_random_var(),
        valuechooser=select_random_value()
    )

有什么原因吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-11 15:59:50

不幸的是,对于DepthFirst搜索中的变量和值,使用对搜索分支的统计信息(如影响、成功率或客观变化度量)的评估人员无法使用。您可以在重新启动和MultiPoint中使用它们。但是docplex应该引发错误,是这种情况,而不是以这种方式退出。我们将在下一个版本中修复这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71417889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档