2012-03-07 85 views
9

我一直在閱讀Cormen等人的算法導論的部分內容,並且已經實現了一些算法。各種算法的示例輸入

爲了測試我的實現,我編寫了一些膠水代碼來完成文件io,然後通過編寫生成樣本輸入的程序來手動輸入一些樣本輸入和一些更多樣本輸入。然而,我對我自己的樣本投入的質量 - 角落案例,我可能錯過了更有趣的可能性;我可能錯誤地計算了正確的輸出;等

是否有一組測試輸入和輸出的各種算法收集在互聯網上的某個地方,以便我可以測試我的代碼?我正在尋找特定於特定算法的測試數據,而不是通常涉及問題解決組件的競賽問題。

據我所知,我可能不得不調整我的代碼,取決於輸入收集的格式(例如輸入的各種約束;對於圖算法,圖的表示等等),但我希望我必須做的改變將是相當無足輕重的。

編輯:

我目前正在尋找一些特定的數據集:數字

  • 歪斜的

    • 列表,以便快速排序表現不好。
    • 傾斜,使斐波那契堆表現特別好或不好,具體操作。
  • 圖(僅供其高性能馬克提供了一些有趣的引用)
    • 稀疏圖(與邊緣的一些具體範圍),
    • 稠密的圖,

因爲我仍然在閱讀本書,如果您的情況與我的情況類似,或者您只是覺得列表可以改進,請隨時編輯列表 - 我很快就可以來需要數據設置類似於你正在尋找的東西。我不完全確定編輯權限是如何工作的,但如果我對它有任何意見,我會嘗試批准它。

+1

你使用什麼語言?一些語言具有可以自動生成測試數據的庫。例如,haskell的quickcheck。更多列在http://news.ycombinator.com/item?id=3020132 – 2012-03-07 02:53:26

+0

@andrewcooke我正在使用Python。 QuickCheck和這樣的庫聽起來很有趣 - 我一定會看看它。 – math4tots 2012-03-07 03:00:23

+2

另一個有趣的測試工具是Korat(詳見http://www.stanford.edu/class/cs295/papers/issta02.pdf),它實際上檢查你的代碼,爲它在小輸入上構建窮舉測試用例。再次,不是一組測試或Python,但仍然是一個很酷的工具知道。 – templatetypedef 2012-03-07 08:51:16

回答

6

我不知道任何一個資源這將爲您提供樣品輸入,用於所有類型的算法的是Cormen 蓋但對於圖形數據集這裏有幾個引用:

Knuth's Stanford Graphbase

Stanford Large Network Dataset Collection

我跨越,同時尋找鏈接到前絆倒了。您可能會感興趣的這一個了:

Matrix Market

爲什麼不修改你的問題,讓這麼瞭解其他類型的輸入你所期待的。

+3

我會添加稀疏矩陣集合。您可以輕鬆從稀疏矩陣中獲取圖形。 http://www.cise.ufl.edu/research/sparse/matrices/ – linello 2012-03-07 12:07:14

0

我將堅持我的頭腦,說我不知道​​任何這樣的來源,我非常懷疑這樣的來源存在。如您所知,算法可以應用於幾乎任何類型的數據,因此嘗試提供樣本數據將毫無結果。