2012-05-04 76 views
21

Sau một số nghiên cứu về thuật toán, tôi tìm thấy hai thuật ngữ gây nhầm lẫn cho tôi. Tôi đã đọc ít nhất 20 bài báo và chưa có định nghĩa rõ ràng nào về cả hai. Tôi hy vọng một người nào đó có thể giúp tôi biết sự khác biệt giữa các thuật toán chẩn đoán và thuật toán metaheuristics. Và nếu có thể, hãy thêm nguồn của nó.Sự khác biệt giữa chẩn đoán và metaheuristics là gì?

ps: Tôi đã biết ý nghĩa của từ là gì, nhưng tôi không biết sự khác biệt chính xác giữa chúng trong khoa học máy tính là gì.

cảm ơn trước

+0

Nó thực sự phụ thuộc vào ngữ cảnh. Heuristics là các quy tắc hữu ích gần đúng với câu trả lời/hành vi hoàn hảo. Nếu không có ngữ cảnh, việc thêm meta vào nó không mang lại ý nghĩa đặc biệt nào, nó chỉ có nghĩa là meta, nghĩa là các chẩn đoán về heuristics. –

+0

Điều này nằm trong ngữ cảnh của các thuật toán –

+1

Nó vẫn phụ thuộc vào ngữ cảnh, theo cách có nghĩa là bạn sẽ không bao giờ nhận được câu trả lời thẳng, bởi vì chúng không được xác định thẳng. Trong vòng tròn AI, một heuristic là một "đoán tốt" chức năng được sử dụng như là một khối xây dựng của một lớn hơn (thường tìm kiếm) thuật toán. Một siêu-heuristic là loại của một "đoán tốt" hệ thống trong chính nó mà giữ tinh chỉnh đoán của nó. Nhưng đó chỉ là việc của tôi-- những thứ này không được xác định đến mức thậm chí các bài báo đánh giá so sánh các chẩn đoán so với siêu chẩn đoán hoặc không xác định, hoặc chỉ đưa ra các định nghĩa lỏng lẻo. Về cơ bản, bạn biết một khi bạn nhìn thấy một. – Novak

Trả lời

28

Bạn có thể nghĩ về phương pháp phỏng đoán như một giải pháp gần đúng (không xấp xỉ) cho một vấn đề. Sự khác biệt giữa xấp xỉ và xấp xỉ là đầu tiên là về việc đoán đúng về giải pháp của một vấn đề, nhưng bạn không thực sự biết nó tốt như thế nào. Thứ hai là về việc nhận được một giải pháp mà bạn có thể chứng minh mức độ gần với giải pháp tối ưu.

Vì vậy, chẩn đoán thường phụ thuộc vào vấn đề, tức là, bạn xác định một phỏng đoán cho một vấn đề nhất định. Meta-heuristics là các kỹ thuật độc lập về vấn đề có thể được áp dụng cho một loạt các vấn đề. Ví dụ, một heuristic, chọn một yếu tố ngẫu nhiên để xoay vòng trong Quicksort. Một siêu heuristic không biết gì về vấn đề nó sẽ được áp dụng, nó có thể xử lý các chức năng như các hộp đen.

Bạn có thể nói rằng một heuristic khai thác thông tin phụ thuộc vào vấn đề để tìm một giải pháp 'đủ tốt' cho một vấn đề cụ thể, trong khi meta-heuristics, giống như mẫu thiết kế, ý tưởng thuật toán chung có thể được áp dụng cho một phạm vi rộng các vấn đề.

+2

Bạn cũng có một nguồn về điều này? –

+2

Có một cuốn sách giới thiệu tuyệt vời về meta-heuristics của [El-Ghazali Talbi] (http://books.google.com.vn/books/about/Metaheuristics.html?id=SIsa6zi5XV8C). Nó nói nhiều hay ít quan điểm này trong phần giới thiệu. Kiểm tra nó ra. –

+0

Vì vậy, vì những gì bạn nói, NSGAII là một thuật toán siêu heuristic vì nó có thể áp dụng được cho nhiều vấn đề ngay cả với vấn đề phức tạp của riêng tôi, nhưng nếu tôi viết thuật toán của riêng mình khai thác thông tin của vấn đề phức tạp của riêng tôi, nó có nghĩa đó là một heuristic thuật toán? Tôi có ý nghĩa và khác biệt không? (Xin lỗi vì tiếng Anh xấu) – Aerox

6

Để cung cấp cho một báo giá hợp lý, liên quan đến Alejandro câu trả lời:

«Một metaheuristic là một vấn đề độc lập cấp cao khung thuật toán mà cung cấp một bộ các chủ trương hoặc chiến lược để phát triển các thuật toán tối ưu hóa dựa trên kinh nghiệm [ ...] một thực hiện vấn đề cụ thể của một thuật toán tối ưu hóa dựa trên kinh nghiệm theo hướng dẫn trình bày trong một khuôn khổ metaheuristic cũng được gọi là một metaheuristic »(Sorensen, Glover trên http://scholarpedia.org/article/Metaheuristics)

để được hoàn toàn đầy đủ. Chúng ta nên phân biệt giữa các thuật toán chính xác, gần đúng và phỏng đoán. Một thuật toán chính xác tìm ra giải pháp chính xác. Một thuật toán gần đúng nên tìm một giải pháp gần đúng, trong một khoảng thời gian có thể chấp nhận được, cũng như cho biết phạm vi sai lệch của nó với giải pháp tối ưu được cho là. Một heuristics chỉ đơn giản là tìm một giải pháp đủ tốt, trong một thời gian chấp nhận được.

Nhân tiện, ví dụ của Alejandro quicksort không xuất hiện đầy đủ cho hai hoặc ba lý do khác nhau.

  1. Thực tế, phỏng đoán và siêu tân bạch là một phần của trường tối ưu hóa. Vấn đề họ cố gắng giải quyết là do đó tìm kiếm một tối ưu, không phải phân loại.
  2. Heuristics thường được sử dụng khi các vấn đề bạn muốn giải quyết là quá phức tạp, theo nghĩa tính toán - đó không phải là trường hợp phân loại vấn đề.
  3. Điều được chỉ ra qua ví dụ về quicksort, nếu tôi hiểu rõ, là phần tử ngẫu nhiên. Về nguyên tắc, bạn có thể có các chẩn đoán xác định - tôi chưa bao giờ gặp phải một metaheuristics xác định, nhưng có lẽ người ta có thể mã hóa nó. Nó có thể là một chút "chơi với các từ", nhưng, các yếu tố ngẫu nhiên đúng hơn đặc trưng "tìm kiếm ngẫu nhiên" hơn (meta) heuristics.
+1

Hum, tôi nghĩ rằng một ngôi sao là một heuristics xác định có thể? – reyman64

+1

@Touki, +1 cho những bổ sung sâu sắc của bạn.Chỉ muốn chỉ ra rằng, ngay cả khi một ví dụ táo bón, bạn có thể xây dựng phân loại như tìm kiếm hoán vị giảm thiểu số lần nghịch đảo. Với công thức đó, bạn có thể áp dụng bất kỳ tổ hợp meta-heuristic (nói, GA hoặc SA) để giải quyết nó. Tất nhiên, Quicksort sẽ hoạt động tốt hơn nhiều vì nó khai thác cấu trúc vấn đề. Theo nghĩa này, có lẽ Quicksort chính nó có thể được coi là một heuristic cho vấn đề phân loại. Tôi biết, nó không phải là một công thức hữu ích trong thực tế, nhưng phục vụ mục đích chỉ ra sự khác biệt. –

+0

Như một bên, xem [Nelder-Mead] (https://en.wikipedia.org/wiki/Nelder%E2%80%93Mead_method) làm ví dụ về thuật toán IMHO có thể được coi là siêu anh hùng (khả năng ứng dụng rộng rãi) đến một loạt các vấn đề tối ưu hóa hộp đen), và nó hoàn toàn xác định. Là heuristic bởi vì, trái với nói, [phương pháp đơn giản] (https://en.wikipedia.org/wiki/Simplex_algorithm) nó không đảm bảo hội tụ để tối ưu toàn cầu. –

1

Đối với một lời giải thích chi tiết, xem:

Sörensen, K. (2015). Metaheuristics—the metaphor exposed. International Transactions in Operational Research, 22(1), 3-18.

Một metaheuristic là một cấp cao vấn đề độc lập thuật toán khuôn khổ mà cung cấp một bộ các chủ trương hoặc chiến lược để phát triển tối ưu hóa dựa trên kinh nghiệm thuật toán. Thuật ngữ này cũng được sử dụng để chỉ một triển khai cụ thể về vấn đề của thuật toán tối ưu hóa heuristic theo các hướng dẫn được thể hiện trong khung như vậy (Sörensen, 2015).

Các phỏng đoán là các nguyên tắc, metaheurstics là khuôn khổ sử dụng chúng.

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