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