【发布时间】:2016-11-21 14:57:13
【问题描述】:
我正在使用 prolog,我有这个代码:
:- use_module(library(clpb)).
fun(A, B, C, D, E) :-
sat(A + B + C + D),
sat(E),
labeling([A, B, C, D, E]).
如果我想计算所有解决方案,我该怎么做?我已经阅读了关于 clpb 中使用的 sat_count(+Expr, -Count) 但我无法在没有错误的情况下实现它
【问题讨论】:
-
据我所知,CLPB 中的
sat/2不存在。此外,您的规则应以句点而不是分号结尾。 -
我编辑了代码。无论如何 sat_count(+Expr, -Count) 在 SWI-Prolog 手册中。 eu.swi-prolog.org/man/clpb.html
-
当然,但
sat(A + B + C, D),或更一般的sat(X, D)不是。 -
哦,对不起,这是一个+。我忘记放了