【发布时间】:2014-05-08 14:59:17
【问题描述】:
如果可以定义的话,我无法在 cligo 中创建一个“函数”。 在我想要完成的一个简化版本中,我编写了这个非常短的程序:
a(1..3).
adj(X,Y) :- a(X), a(Y), abs(X-Y)==1.
#hide a/1.
基本上,我想定义一个邻接函数,给定任意两个数字,如果它们的差值的绝对值等于 1,则该函数将保持 true。我对上述程序的期望是输出结果:adj(1,2) adj(2,1) adj(2,3) adj(3,2),但我看到的是这个输出:
Answer: 1
SATISFIABLE
Models : 1
Time : 0.000
Prepare : 0.000
Prepro. : 0.000
Solving : 0.000
(如果我省略#hide a/1.,它将输出答案:a(1) a(2) a(3))。
我觉得这是 clgo 101,所以我可能误解了这里的基础知识。我试图通过学习我在网上偶然发现的例子来学习 clgo,但我有点匆忙完成它,因为我明天有作业。如果有人能提供一些启示,那就太好了。 谢谢。
【问题讨论】:
标签: answer-set-programming clingo