2017-01-25 4 views
0
begrenzen

Gibt es eine bestimmte Möglichkeit, die Anzahl der verfügbaren echten Prädikate mit einer bestimmten Tatsache zu begrenzen?Die Anzahl der zutreffenden Prädikate zählen und

Im Moment habe ich total (2). als Tatsache. Ich dachte, das würde funktionieren:

: - gesamt (N), #count {x: something_to_limit (x)} = K, K = N.

Dies gilt jedoch nicht die Anzahl der something_to_limit Prädikate auf die angegebene Gesamt begrenzen (2) Tatsache wobei N 2.

Jede Hilfe sehr geschätzt :)

Antwort

2

Die x in x:something_to_limit(x) ist würde entsprechen würde ein konstantes Symbol, möchten Sie wahrscheinlich Variablen X verwenden. Die Bedingung

:- total(N), #count{X:something_to_limit(X)} = K, K=N. 

sollte funktionieren.

+1

Dadurch werden alle Antwortsätze eliminiert, in denen das Prädikat something_to_limit für genau 2 Konstanten (mit total (2)) wahr ist. Wenn Sie die Lösungen haben wollen, bei denen genau 2 Atome wahr sind, müssen Sie 'not' vor' # count' hinzufügen. –

Verwandte Themen