2011-07-19 1 views
5

私は2つのグラフが同型で何とか大きな画像が欠落していた場合に見つけるためのVF2 algorithmを読んでてきました。私はこの分野における関連する背景をしないのですが、私が見るすべては、私はステップが行われている理由のための直感的な説明を見ることなく、各ステップで使用する必要があるルールの束であるということでした。VF2アルゴリズムの動作例はありますか?

基本的なグーグルから、これは2つのグラフが同形であるかどうかを見つけるための事実上のアルゴリズムの1つと考えられているようですが、何らかの理由で高レベルで理解するのに十分簡単な説明を見つけることができません。あるいは、このアルゴリズムは別の名前で知られていますか?いずれの場合においても

は、このアルゴリズムがどのように動作するかのいずれかの実行している例を知って誰ですか?

+0

あなたの最後の(関連)の質問に何が起こったのか?削除されましたか?私も興味がある/今非常に似たようなことに取り組んでいる。あなたができるなら私に電子メールをドロップしてください(私のプロフィールのアドレスを参照してください)。それから、このコメントを削除します。 – Szabolcs

+0

@Szabolcs:実際にはまだ質問を完全に削除していません。申し訳ありません。私はまだ安定性の良い定義について考えていて、安定性をどのように定義するか尋ねたときに困惑したので、数時間後に再ポストすることを考えていました。しかし、私は今私の質問を取り消しました。 – Legend

答えて

8

私はそれはあなたが探しているものだかわからないけど、VF2アルゴリズムは以下のように進みます。あなたはのいずれかでVの次の要素に一致するようにしようと、各ステップにおいて、アルゴリズムは木を下る

VとV「とあなたがVとVを合わせたい」:

letがあなたが2つのグラフを持っていると言いますV 'で、V'のすべてのノードを通過したときに停止します(リーフを見つけると)。

アルゴリズム:

  • まずステップ:空のグラフV」と空Vと一致します。
  • 第二ステップ:V内の1つのノードで数学にV内の1つのノードを試してみてください「
  • ...
  • N番目のステップ:V内の1つの新しいノードとV内の1つのノードを一致させよう」 場合はできません、 ...
  • ...
  • ENDをバック一歩ツリーで行くと... 前のステップで新しい試合をしてみてください、あなたは再びなど戻ってカント場合:あなたは葉、つまりあなたを見つけたときV 'ですべてのノード を通過したとき、またはリーフを見つけずにすべてのツリーを通過したとき。ここ

例は一例であり、このアルゴリズムは、ツリーの左から右に進みます。

"< - > Bは、" VのノードB」

enter image description here

希望私は明確だとそれがあなたの探しているものだとVのマッチノードAを意味しています。

+0

+1はい。これは私が探しているものです!これに感謝します。ちょっとだけ(愚かな)質問。 V(1)をV '(1)にマッピングしたとき、なぜあなたは「NO SOL」に遭遇しましたか? V(1)をV '(2)に戻しマッピングした後、V(3)をV'(2)にマッピングし、最後にV(3)をV '(1)にマッピングしましたか?それは人がこれをどのように読みますか?その場合、あなたのダイアグラムの結論は何ですか? V(1)-V '(2)、V(3)-V'(2)およびV(3)-V '(1)をマッピングした。なぜV(3)を2つのノードに一致させるのでしょうか?あるいは私はそれを間違って解釈する必要があります。あなたがこれまで説明してきたように、あなたが気にしないならば、もっと冗長にすることができますか? – Legend

+0

あなたは正しい。私はただそれを修正した。私はノードの名前で間違いを犯しました。私はもう一度これを検証する必要があります。D ...両方のグラフで1、2、3、1、2、3を使用するのは混乱します。私はそれを1,2,3、A B Cに変更するべきだった。これが正しいと願っています。 :) –

+1

ありがとうございました!私は最も冗長な説明でさえも欠けていると思った!それを修正していただきありがとうございます。私は解答としてあなたの答えを受け入れましたが、時間があれば、5つのルールの背後にある直感(R_pred、R_succ、R_new ...)について説明してください。これらは、あなたのグラフで「ソル・ソル」のケースを締結するために使用されていますか? – Legend