2012-03-07 41 views
9

Tôi đã đọc phần Giới thiệu về thuật toán của Cormen và cộng sự, và đã triển khai một số thuật toán.Đầu vào mẫu cho các thuật toán khác nhau

Để kiểm tra việc triển khai, tôi đã viết một số mã keo để thực hiện tệp io, sau đó thực hiện một số đầu vào mẫu bằng tay và một số đầu vào mẫu khác bằng cách viết chương trình tạo đầu vào mẫu.

Tuy nhiên tôi nghi ngờ về chất lượng của các đầu vào mẫu của riêng tôi - các trường hợp góc; Tôi có thể đã bỏ lỡ những khả năng thú vị hơn; Tôi có thể đã tính sai kết quả đầu ra thích hợp; v.v.

Có một bộ đầu vào và đầu ra thử nghiệm cho các thuật toán khác nhau được thu thập ở đâu đó trên Internet để tôi có thể kiểm tra mã của mình không? Tôi đang tìm kiếm dữ liệu thử nghiệm một cách hợp lý cụ thể cho các thuật toán cụ thể, thay vì các vấn đề về cuộc thi thường liên quan đến một thành phần giải quyết vấn đề.

Tôi hiểu rằng tôi có thể phải điều chỉnh mã tùy theo định dạng mà đầu vào được thu thập (ví dụ: Các ràng buộc khác nhau của các yếu tố đầu vào; đối với thuật toán đồ thị, biểu diễn đồ thị; v.v.) rằng sự thay đổi tôi sẽ phải thực hiện sẽ là tầm thường hợp lý.

Edit:

Một số tập hợp dữ liệu đặc biệt Tôi hiện đang tìm kiếm là:

  • Danh sách các số
    • động xiên để loại nhanh thực hiện nặng.
    • Skewed để Fibonacci Heap thực hiện đặc biệt tốt hoặc kém cho các hoạt động cụ thể.
  • đồ thị (mà High Performance Đánh dấu đã cung cấp một số tài liệu tham khảo thú vị) đồ thị
    • thưa thớt (với giới hạn cụ thể về số cạnh),
    • đồ thị dày đặc,

Vì, tôi vẫn đang làm việc qua cuốn sách, nếu bạn đang ở trong tình huống tương tự như tôi, hoặc bạn chỉ cảm thấy danh sách có thể được cải thiện, vui lòng chỉnh sửa danh sách - một thời gian sớm, tôi có thể cần dữ liệu thiết lập tương tự như những gì bạn đang tìm kiếm. Tôi không hoàn toàn chắc chắn cách các đặc quyền chỉnh sửa hoạt động, nhưng nếu tôi có bất kỳ lời nói nào về nó, tôi sẽ cố gắng chấp thuận nó.

+1

bạn đang sử dụng ngôn ngữ nào? một số ngôn ngữ có thư viện có thể tự động tạo dữ liệu thử nghiệm. ví dụ: kiểm tra nhanh haskell. nhiều hơn được liệt kê tại http://news.ycombinator.com/item?id=3020132 –

+0

@andrewcooke Tôi đang sử dụng Python. QuickCheck và các thư viện như vậy nghe có vẻ thú vị - tôi chắc chắn sẽ xem xét nó. – math4tots

+2

Một công cụ kiểm tra thú vị khác là Korat (chi tiết tại http://www.stanford.edu/class/cs295/papers/issta02.pdf), mà thực sự kiểm tra mã của bạn để xây dựng các trường hợp thử nghiệm đầy đủ cho nó trên đầu vào nhỏ. Một lần nữa, không phải là một bộ sưu tập các bài kiểm tra hoặc bằng Python, nhưng vẫn là một công cụ tuyệt vời để biết. – templatetypedef

Trả lời

6

Tôi không biết về bất kỳ một tài nguyên mà sẽ cung cấp cho bạn với các đầu vào mẫu cho tất cả các loại thuật toán mà Cormen et al bìa nhưng đối với bộ dữ liệu đồ thị dưới đây là một vài tài liệu tham khảo:

Knuth's Stanford Graphbase

các Stanford Large Network Dataset Collection

mà tôi tình cờ trong khi tìm kiếm các liên kết đến các cựu. Bạn có thể quan tâm trong vụ việc này quá:

các Matrix Market

Tại sao không chỉnh sửa câu hỏi của bạn và để cho SO biết những gì các loại đầu vào bạn đang tìm kiếm.

+3

Tôi sẽ thêm bộ sưu tập Ma trận Sparse. Bạn có thể dễ dàng có được một đồ thị từ một ma trận thưa thớt. http://www.cise.ufl.edu/research/sparse/matrices/ – linello

0

Tôi sẽ dán đầu vào dòng và nói rằng tôi không biết bất kỳ nguồn nào như vậy, và tôi rất nghi ngờ rằng nguồn đó tồn tại.

Như bạn đã biết, các thuật toán có thể được áp dụng cho hầu hết mọi loại dữ liệu và do đó sẽ không có kết quả để cố gắng cung cấp dữ liệu mẫu.

Các vấn đề liên quan