2016-09-26 7 views
0

エッジ(X、Y)、赤(X、Y)、青(X、Y)の関係を考えてみましょう。これらの関係は、エッジが赤色または青色(または色なし)に着色できるグラフを表しています。クエリの安全なデータログの規則

は、次のクエリに対して安全なデータログルール(必要に応じて否定を含む)を提供します。

Q1。ノードXとYのペアを見つけます。ここで、XからYまでのパス(リンクされたエッジのシーケンス)がありますか?

私の試み: - (X、Y)到達: - (X、Y)のエッジ(X、Y)

到達: - エッジ(X、Z)、到達可能な(Z、Y)

Q2。赤と青の交互の色で、XからYまでの偶数長のパス(リンクされたエッジのシーケンス)があるノードXとYのペアを見つけますか?

私の試み:私は奇数であっても、データログプログラムと赤/青のプログラムを作っているが、(両方でも長さが交互に赤/青のノード

ODD取得するために結合する方法がわからない

(x、y): - エッジ(x、y): - エッジ(x、y)

エッジ(x、y):エッジ(x、z)、EVEN(z、y)
EVEN 、z)、ODD(z、y)である。

経路(X、Y): - レッド(X、Y)

経路(X、Y): - パス(X、Z)、青(Z、W)、パス(W、Y)

答えて

1

私はあなたの潜在的な解決策をテストせずにこれらの課題に答えることを試みているという印象を受けます。これは非常に難しい作業方法です。あなたのソリューションが正しいかどうかをテストし、Datalogエンジンで実行するための小さな例を作ることを強くお勧めします(最も簡単なものはhttp://www.iris-reasoner.org/demoまたはhttps://developer.logicblox.com/playground/のようなものです)。

エッジ( "a"、b ")、エッジ(" b "、c")、エッジ( "c"、 "d")がある場合、ソリューションが "a"から "d"へのパスを見つけられないことを示します。

このクエリは再帰でのみ解決できます。このパスクエリは、非常に基本的な再帰であり、祖先または推移的クロージャを検索します。

+0

Martin:ガイダンスに感謝します。これらのページを使用してソリューションをテストします。また、私は質問を修正し、私の試みを共有しましたが、Q2で立ち往生しました。 – Khushi

+0

あなたは私の試みを見ていますか? – Khushi

関連する問題