Tôi không làm việc trên lý thuyết, nhưng công việc của tôi đòi hỏi phải đọc (và hiểu) các bài lý thuyết mỗi lần. Khi tôi hiểu (một bộ) kết quả, tôi sẽ thảo luận về những kết quả này với những người tôi làm việc cùng, hầu hết những người này cũng không làm việc trên lý thuyết. Trong một trong những cuộc thảo luận như vậy, câu hỏi sau đây đã xuất hiện:
Khi nào người ta nói rằng hai thuật toán đã cho là "tương tự"?
"Tương tự" nghĩa là gì? Hãy để chúng tôi nói rằng hai thuật toán được cho là tương tự nhau nếu bạn có thể đưa ra một trong những tuyên bố sau đây trong một bài báo mà không gây nhầm lẫn / làm phiền bất kỳ nhà phê bình nào (được định nghĩa tốt hơn hoan nghênh):
Yêu cầu 1. "Thuật toán , tương tự như thuật toán B , cũng giải quyết vấn đề X "
Yêu cầu 2. "Thuật toán của chúng tôi tương tự như Thuật toán "
Hãy để tôi làm cho nó một chút cụ thể hơn. Giả sử chúng ta đang làm việc với các thuật toán đồ thị. Đầu tiên một số điều kiện cần thiết để hai thuật toán giống nhau:
- Họ phải giải quyết cùng một vấn đề.
- Họ phải có cùng một ý tưởng trực quan cấp cao.
Ví dụ, nói về truyền tải đồ thị, chiều rộng đầu tiên và chiều ngang đầu tiên thỏa mãn hai điều kiện trên; đối với các tính toán đường đi ngắn nhất, thuật toán đầu tiên và Dijkstra đáp ứng hai điều kiện trên (tất nhiên là trên các biểu đồ không trọng số); Vân vân.
Đây cũng là điều kiện đủ? Cụ thể hơn, giả sử hai thuật toán thỏa mãn các điều kiện cần thiết là tương tự nhau. Bạn thực sự sẽ gọi họ tương tự, nếu
- họ có hiệu suất tiệm cận khác nhau?
- cho một lớp học đặc biệt của đồ thị, một thuật toán đòi hỏi thời gian trong khi người kia đòi hỏi O ( n 1 / 3 ) thời gian?
- họ có điều kiện chấm dứt khác nhau? (nhớ lại, họ đang giải quyết cùng một vấn đề)
- Bước tiền xử lý có khác nhau trong hai thuật toán không?
- độ phức tạp bộ nhớ là khác nhau trong hai thuật toán?
Chỉnh sửa: Câu hỏi rõ ràng rất phụ thuộc vào bối cảnh và chủ quan. Tôi đã hy vọng rằng năm điều kiện trên, tuy nhiên, sẽ cho phép nhận được một số gợi ý. Tôi rất vui khi sửa đổi thêm câu hỏi và cung cấp thêm chi tiết, nếu cần để có câu trả lời. Cảm ơn!