2012-02-01 10 views
0

私はcsの学生です。cでバックトラックプログラムを構築するように求められました。ループしない無重力(リフトなし)グラフの隣接行列を取得して返しますそのグラフ内の完全一致の数。 私はpfaffian方位を使ったfktアルゴリズムを使うことを考えましたが、これまでどのようにしているのか分かりませんでした。 あなたがとても親切で、正しい本に向かうか、この質問を見る正しい方法を教えてくれるなら、私はとても感謝しています。 私が逆戻りしようとしたのは初めてで、このようなことを実現するための基本的な考え方が不足していると思います。アルゴリズムによるバックトラッキング。グラフ内で完璧なマッチングをカウントする

+0

具体的に何か問題がありますか?今私はあなたの質問が何であるかわからないので、助けを知らない。 – templatetypedef

+0

ここに見られるようにfktアルゴリズム(リンク:http://en.wikipedia.org/wiki/FKT_algorithm)は非常に良いアプローチを使用しますが、私がt2を構築し、指示Gを終了すると失われ、自分の必要なものの正しい擬似コードを自己生成することはできません。紙で私はそれを処理することができますが、それはまだ私が取得しようとしている私を取得しません。 skew-symmetric行列とそれ以外の残りの部分を生成することはできますが、その中点(アルゴリズムの5行目と6行目)には問題があります。 – user1179438

答えて

0

FKTは平面のグラフのみです。あなたがそれを実装したいのであれば(、これは厄介な宿題であるので、これは他の人にも当てはまります)、planarity testにグラフが必要です埋め込みを取得し、these slidesに記載されている方向付けアルゴリズムを実装します。 (スケッチ:プライマリグラフでスパニングツリーを見つけて、それらのエッジを任意に方向付ける。スパニングツリーにないエッジは、デュアルグラフのスパニングツリーを構成する。後続のツリーのノードをポストオーダーで参照する;各ノードの親エッジ= primal face)は、向きが未定の最後の入射エッジです。そうでない場合は時計回りになります。

関連する問題