我有一个求解器,其求解器的一般形式如下:
solver(Board):-
constraints(Board),
search(Board).
它通过了约束谓词,但是下面的搜索部分出现错误:
search(Board):-
term_variables(Board,Vars),
sd:labeling(Vars).
该错误在标签谓词中发生,并且错误是:
indomain实例化错误(_258 {[9 .. 13,15 .. 20]})
那是什么问题? (我看不到indomain谓词中的任何问题)。
答案 0 :(得分:0)
正如@jschimpf在评论中提到的那样,这里的重点是可能无法混合两个库的功能。因此,安全代码被提升为尽可能使用相同库的相同功能。同样的事情在这里发生。 constraint(Board)
使用#=
库中的ic
(作为整数暂停),但是在labeling
中,代码尝试使用sc
库。这就是问题的根源。
您应该注意,这可能是导致此错误消息的原因之一。