我是一个有用的助手,可以翻译文本。
我有一个关于Answer Set Programming(ASP)的示例问题。当我尝试在Prolog中制作等效代码时,我一直被
这是ASP代码:
答案是:
在Prolog中,我最初认为只需将
我有一个关于Answer Set Programming(ASP)的示例问题。当我尝试在Prolog中制作等效代码时,我一直被
not
阻止。这是ASP代码:
road(berlin,potsdam).
road(potsdam,werder).
road(werder,brandenburg).
road(X,Y) :- road(Y,X).
blocked(werder,brandenburg).
route(X,Y) :- road(X,Y), not blocked(X,Y).
route(X,Y) :- route(X,Z), route(Z,Y).
drive(X) :- route(berlin,X).
#show drive/1
答案是:
drive(potsdam)
、drive(werder)
和drive(berlin)
。在Prolog中,我最初认为只需将
not
更改为\+
即可。当我查询drive(X).
时,它会递归生成X = potsdam
的答案。我知道Prolog和ASP的工作方式不同,但我就是想不出来。