You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ECLIPSe-CLP中自动域传播行为的识别、禁用及替代方案问询

ECLiPSe-CLP中自动域传播的机制、禁用方法及替代方案

我正在ECLiPSe-CLP中研究、评估并对比多种搜索方法,采用lib(ic_search)中的search/6谓词统计回溯次数作为复杂度与效能的核心评估方式。

测试中发现,系统在进入search前会自动执行类似域传播的过程,该过程不受控制,可直接解决部分问题(如SEND+MORE=MONEY、澳大利亚地图着色问题)且回溯次数为0,导致无法控制传入search的变量域及问题状态,严重阻碍了搜索方法的评估。

现需明确以下两点:

  • 该自动域传播过程的具体机制
  • 是否可以禁用该过程,或有什么替代方案能满足控制问题初始状态的需求

测试代码

:- lib(ic), lib(ic_global), lib(ic_search).
    
go :-
    simpleproblem(Vars).

simpleproblem(Vars) :-
    Vars = [A,B],
    Vars :: [0..1],
    A + B #= 2,
    search(Vars,0,input_order,indomain,complete,[backtrack(Backtracks)]),
    writeln(backtracks:Backtracks),
    writeln(Vars).

追踪日志

(1) 1 CALL  go
(2) 2 CALL  simpleproblem(_598)
(3) 3 CALL  ... = ...
(3) 3 EXIT  ... = ...
(4) 3 CALL  '::_body'([_1028, _1030], [0 .. 1], eclipse)
(4) 3 EXIT  '::_body'([_1476{[0, ...]}, _1490{[...]}], [0 .. 1], eclipse)
(5) 3 CALL  _1490{[0, ...]} + _1476{[0, ...]} #= 2
(9) 4 CALL  wake
(6) 5 RESUME<2>  0 #= 0
(6) 5 EXIT<2>  0 #= 0
(9) 4 EXIT  wake
(5) 3 EXIT  1 + 1 #= 2
(10) 3 CALL  search_body([1, 1], 0, input_order, indomain, complete, [backtrack(_3046)], eclipse)

内容的提问来源于stack exchange,提问作者Hugo Ye

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 23:05:29