グラフを入力として受け取り、そのグラフが非循環かどうかを判断する述語 acyclic/1 を定義する必要があります。だから私の理解から
graph1(a,b).
graph1(b,c).
graph1(c,a).
いいえとを返します
graph2(a,b).
graph2(b,c).
はいを返します
グラフ内の 2 つのノードが接続されているかどうかを判断する述語を作成しました。接続されている場合は、yes が返されます。
isConnected(X,Y) :- a(X,Z), isConnected(Z,Y).
これを使用して、グラフが非循環かどうかを判断する方法はありますか?
定義済みの述語を使用したくありません。