2010-12-02 54 views
4

我現在已經多次編碼了各種圖搜索(A *,DFS,BFS等)算法。每一次,唯一真正的區別就是我正在搜索的實際搜索狀態,以及如何從現有搜索狀態生成新狀態。C#通用圖搜索框架

我現在正面臨另一個搜索繁重的項目,並希望避免再次編碼和調試一般搜索算法。如果我可以定義一個搜索狀態類,包括用於生成連續狀態的信息,啓發式代價等,並將其插入某種現有的搜索框架中,這對我來說可以完成所有繁重的工作,那將非常好。我知道這些算法並不是特別難編碼,但總是有足夠的技巧讓它煩人。

這樣的事情是否存在?我找不到任何東西。

+0

當然,它止跌要想讓你的現有解決方案之一變得不那麼困難?所有你需要的尋路算法都是一個開始狀態,一個結束狀態和一個函數,它需要一個狀態並返回(帶有權重)所有可能的下一個狀態。 – 2010-12-02 03:22:19

+0

我還沒有在c#中的解決方案。我現在大部分都是來自大學的java或c實現。翻譯有點難以勝任。 – captncraig 2010-12-02 03:50:53

回答

6

也許QuickGraph會感興趣。

QuickGraph提供了通用 定向/無向圖 數據結構和算法的.Net 2.0以上。 QuickGraph帶有算法,如深度第一SEACH, 呼吸第一搜索,A *搜索, 最短路徑,K-最短路徑, 最大流量,最小生成樹, 至少共同祖先等