我在教自己如何編程涉及TSP(Djikstra,Kruskal)的算法,我正在尋找一些啓動建議。我正在使用C#和SQL。理想情況下,我希望能夠在SQL中嚴格執行此操作,但我不確定這是否可行(我假設運行時將會在50個頂點之後變得糟糕)。處理海量圖表 - 旅行銷售人員
所以我想問題是,我可以做到這一點只有SQL,如果是的話,最好的辦法是什麼?如果沒有,我必須讓C#參與其中,那麼最好的方法是什麼?
我在教自己如何編程涉及TSP(Djikstra,Kruskal)的算法,我正在尋找一些啓動建議。我正在使用C#和SQL。理想情況下,我希望能夠在SQL中嚴格執行此操作,但我不確定這是否可行(我假設運行時將會在50個頂點之後變得糟糕)。處理海量圖表 - 旅行銷售人員
所以我想問題是,我可以做到這一點只有SQL,如果是的話,最好的辦法是什麼?如果沒有,我必須讓C#參與其中,那麼最好的方法是什麼?
只建議在SQL中進行簡單的計算,如計算總和。總和在SQL中更快,因爲只返回總和而不是所有記錄。像你想到的複雜算法必須在你的C#代碼中完成!首先,SQL語言不適合這樣的問題,其次它針對數據庫訪問進行了優化,使其對其他類型的使用非常緩慢。
從您的數據庫中使用SQL將數據讀取到您的c#程序的適當數據結構中。在那裏做所有與TSP相關的邏輯,如果你願意的話,結果存儲在數據庫中。
嗯,我不確定SQL是否是最好的選擇來實現這一點,但你可以嘗試使用鄰接矩陣的輸入。許多已發佈的算法都是爲這種輸入而設計的,之後唯一的問題是將僞代碼放入C#中。看看這個: http://en.wikipedia.org/wiki/Adjacency_matrix。
您將使用二維數組來表示矩陣。
我正在爲SQL編程。雖然這不是我的第一個選擇使用TSP的工具 - 但它仍然可以輕鬆完成這種工作 - 當然假定數據模型對您的工作是最佳的。
第一項任務是定義一個數據模型,該模型保存您的算法需要的信息,然後填充一些示例數據,然後計算出可根據需要檢索數組的查詢。
最後,您可以決定該查詢中的某些簡單SQL是否適合您,或者可能是存儲過程形式的擴展。
最後,您可以選擇將其拉出到您選擇的其他語言。