使用搜索阶段时 DocPlex 给出 CpoSolverException

发布于 2025-01-13 00:35:48 字数 3344 浏览 1 评论 0 原文

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

    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')

我收到以下错误

(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 ,它会起作用 有

    p1 = search_phase(
        vars=shifts.values(),
        varchooser=select_random_var(),
        valuechooser=select_random_value()
    )

什么想法可能会导致此问题吗?

I am running a constraint programming model in docplex. When I add the following search phase I get an error in docplex:

    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')

I get the following error

(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).

Hoiwever, if I use this search_phase instead it works

    p1 = search_phase(
        vars=shifts.values(),
        varchooser=select_random_var(),
        valuechooser=select_random_value()
    )

Any ideas what could be causing this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

生生漫 2025-01-20 00:35:49

不幸的是,使用搜索分支统计数据(如影响、成功率或客观变化度量)的评估者不适用于深度优先搜索中的变量和值。您可以在重新启动和多点中使用它们。然而,在这种情况下 docplex 应该引发错误,而不是以这种方式退出。我们将在下一个版本中修复此问题。

Unfortunately, the evaluators using statistics over the branches of the search like impacts, success rate, or objective variation measures are not available for variable and value in DepthFirst search. You can use them in Restart and MultiPoint. However docplex should raise an error is this case and not exit this way. We will fix this for the next release.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文