2
名單在PyDatalog我已經定義了以下斷言:PyDatalog:值的答案
#stations
assert_fact('station', 'A' ,'yellow')
assert_fact('station', 'B' ,'yellow')
assert_fact('station', 'C' ,'yellow')
assert_fact('station', 'D' ,'yellow')
#sections
assert_fact('stretch', 'A' ,'B')
assert_fact('stretch', 'B' ,'C')
assert_fact('stretch', 'C', 'D')
,我想問一下數據庫,如果有一種方法可以從A 下面的代碼得到d應該有效,因爲如果有方法它會回答set([()]),如果沒有則回答None。但它並沒有給我Z.的不同評價的結果我想也知道路線,例如:ABCD
load("""
route(X,Y) <= stretch(X,Y)
route(X,Y) <= stretch(X,Z) & route(Z,Y)
""")
我與綁定值試過,但它只是給我的結果第一次迭代:
load("""
route(X,Y,P) <= stretch(X,Y) & (P==Y)
route(X,Y,P) <= stretch(X,P) & route(P,Y,Z)
""")
我認爲問題是它只在第一次迭代中需要P.或者我應該使用聚合函數?我不明白我怎麼可以使用concat ...
在此先感謝。
非常感謝,它的工作!現在我應該處理循環,因爲在某些路由中它循環。 – Ignasi
爲了照顧循環,我現在在路由的定義中增加了以下子句:&〜(P1中的Z) – user474491
再次感謝您!它現在適用於較長的路線 – Ignasi