2
我有一個應答集編程(ASP)的例子問題。當我嘗試在Prolog中創建相應的代碼時,我一直在阻止not
。序言 - ASP'不'序言否定
這是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的工作方式不同,但我無法弄清楚。
如果添加路(雲達,市)。它不會因爲它應該給城市帶來結果。 – coder
您的權利是快速更新。以前的版本仍然有效,但給出了重複的答案。 – Limmen