2016-04-22 137 views
1

enter image description hereProlog的樹節點路徑

您好,我有序言和我對着在寫序言代碼以下問題的問題基本知識:編寫有關上圖中的事實,並寫入下面的序言規則:pos_path 。規則的

採樣運行:

?- pos_path(n1, nx, L). 
L = [n1,n3,n7,nx] ? ; 
L = [n1,n3,n4,n5,nx] ? ; 
L = [n1,n3,n4,n6,nx] ? ; 
no 
+1

請顯示您到目前爲止所嘗試的內容,並詢問關於您卡在哪裏的更具體的問題。 – lurker

回答

2
edge(ne,n1). 
edge(n1,n2). 
edge(n1,n3). 
edge(n3,n7). 
edge(n7,nx). 
edge(n3,n4). 
edge(n4,n5). 
edge(n5,nx). 
edge(n4,n6). 
edge(n6,nx). 

pos_path(A, B, Path) :- 
    path(edge, Path, A, B). 

使用另外一個問題定義path/4

+0

如何添加將n6連接到n3的額外邊緣。這個事實的表現應該如何?以及如何修改pos_path? – KikoPayet

+1

只需添加'邊緣(n6,n3)'。以上定義不需要修改! – false