2012-02-01 85 views
0

所以我是一個cs的學生,我們被要求在c(沒有循環遞歸)中構建一個回溯程序,它得到一個無向(無升降)圖的鄰接矩陣,並返回該圖中完美匹配的數量,否則爲零。 我想過使用fkt算法,它使用pfaffian方向,但到目前爲止我還沒有想出如何這樣做。 如果你可以如此友善,也許指導我到正確的書或正確的方式來看看這個問題,我將非常感激。 這是我第一次嘗試回溯,我想我錯過了一些如何實現這樣的事情的基本概念。算法回溯。在圖中計算完美匹配

+0

您有什麼特別的問題?現在我不知道如何提供幫助,因爲我不確定你的問題是什麼。 – templatetypedef 2012-02-01 06:11:06

+0

所以fkt算法,你可以在這裏看到[鏈接](http://en.wikipedia.org/wiki/FKT_algorithm)使用了一個非常好的方法,但是當我開始構建t2並完成定向G時,我得到失去了,並且無法讓我的自我成爲我需要做的適當的僞代碼。在紙上,我可以處理它,但這仍然不能讓我在我想要得到的地方。生成斜對稱矩陣和我可以處理的問題的其餘部分,但中間那點(算法中的第5行和第6行)對我來說有一些問題。 – user1179438 2012-02-01 06:33:12

回答

0

FKT僅適用於平面圖表。如果你想實現它(和幾乎肯定不會,因爲這將是一個糟糕的功課;這是其他人誰發現這個問題),你需要planarity test圖表以這種方式,你獲取嵌入,然後實現these slides中描述的方向算法。 (示意圖:在原始圖中找到一棵生成樹,並任意定位這些邊,生成樹中不包含的邊包含對偶樹中的一棵生成樹,訪問後一棵樹的節點;每個節點的父邊( =原始面)訪問是方向未定的最後一個事件邊緣,因此如果面部當前具有偶數個順時針邊緣,則順時針方向,否則逆時針方向)。