Hiệu quả tối thiểu có thể được chứng minh?


7

Đưa ra một vấn đề, liệu có thể chứng minh hiệu quả trong trường hợp xấu nhất của thuật toán để giải quyết vấn đề này là gì?

Ví dụ, hãy giải quyết vấn đề sắp xếp một mảng.

Nhiều thuật toán sắp xếp đơn giản hơn có hiệu quả trong trường hợp xấu nhất là O(n2)chẳng hạn như Sắp xếp nhanh và Sắp xếp bong bóng. Tuy nhiên, có những thuật toán khác như Timsort và Smoothsort cóO(nlogn), đó là hiệu quả hơn.

Không có thuật toán nào khác (theo hiểu biết của tôi) có thể sắp xếp một mảng hiệu quả hơn Θ(nlogn). Có thể chứng minh rằng không có thuật toán nào khác tồn tại hiệu quả hơn?

Nếu có một cách để chứng minh cho việc sắp xếp các thuật toán nếu một thuật toán tồn tại hiệu quả hơn, thì điều này có áp dụng cho các vấn đề khác không?

Câu trả lời:


10

Chắc chắn có nhiều cách để chỉ ra rằng các thuật toán nhất định phải mất một lượng thời gian nhất định hoặc các cấu trúc dữ liệu nhất định cần một lượng không gian nhất định. Một cách phổ biến là sử dụng lý thuyết thông tin.

Một mảng chưa sắp xếp là một hoán vị của mảng được sắp xếp. Cón!hoán vị có thể. Công việc sắp xếp, theo nghĩa lý thuyết thông tin, là khám phá chính xác đó là hoán vị.

Để truyền một số giữa 1m yêu cầu truyền log2mbit thông tin. Để truyền một hoán vị củan các yếu tố, do đó, đòi hỏi log2n!bit thông tin. Bằng cách xấp xỉ của Stirling, điều này hóa ra lànlog2n+O(low order) chút ít.

Một hoạt động so sánh nhị phân phát hiện ra một chút thông tin. Theo sau, bất kỳ thuật toán sắp xếp nào chỉ sử dụng thao tác so sánh nhị phân đều phải thực hiện ít nhấtnlog2n+o(nlogn)so sánh. Nếu chúng ta giả định rằng việc so sánh mất một lượng thời gian không đổi, điều đó có nghĩa là việc sắp xếp phải mất ít nhấtΩ(nlogn) thời gian.

Một loại cơ số có thể đánh bại điều này bằng cách khám phá nhiều hơn một bit thông tin cho mỗi truy vấn.

Một lập luận tương tự cho thấy tìm kiếm nhị phân là tối ưu. Bạn đang cố gắng tìm một số giữa1n, có nghĩa là khám phá log2nbit thông tin. Nếu hoạt động truy vấn của bạn trả về một bit thông tin, bạn cần ít nhấtlog2n truy vấn để tìm một yếu tố

Đó là một câu chuyện tương tự với việc sử dụng không gian. Giả sử rằng bạn cần lưu trữ một hoán vị trong bộ nhớ. Theo một lập luận giống hệt nhau, điều này đòi hỏi ít nhấtnlog2n+o(nlogn)bit lưu trữ. Vì bạn cầnlog2n bit để lưu trữ một số nguyên giữa 1n, về cơ bản bạn không thể làm gì tốt hơn là lưu trữ n số nguyên.


7

Sắp xếp, trên thực tế, đã được chứng minh là mất ít nhấtO(nlogn)thời gian nếu sắp xếp dựa trên so sánh. Đối với các số nguyên có kích thước cố định, có các phương thức nhanh hơn (sắp xếp cơ số).

Tuy nhiên, sắp xếp là một trong những vấn đề hiếm gặp trong đó điều này đã được thực hiện. Nói chung, chúng tôi không biết giới hạn thấp hơn cho sự phức tạp thời gian của hầu hết các vấn đề. Ví dụ, nếu chúng ta biết rằngO(2n) là một giới hạn thấp hơn cho NP- hoàn thành các vấn đề, sau đó chúng ta sẽ biết rằng PNP. Nhưng không có kết quả như vậy đã được chứng minh, vì vậyP đấu với NP vẫn còn là một bí ẩn

Đối với các vấn đề nói chung, không có thuật toán nào có thể biểu diễn một vấn đề và trả về giới hạn thấp hơn về độ phức tạp thời gian của nó. Điều này là do tập hợp các độ phức tạp như vậy sẽ là một tập chỉ mục: nghĩa là, nó đại diện cho một thuộc tính của ngôn ngữ (các vấn đề), không phải của các thuật toán. Có một kết quả được gọi là Định lý Rice nói rằng bất kỳ bộ nào như vậy là không thể giải quyết được.


2

Nói chung điều này là có thể, nhưng điều quan trọng là bạn chỉ định mô hình tính toán khi làm như vậy. Một ví dụ cổ điển nổi tiếng làΩ(nlogn)ràng buộc vào việc sắp xếp trong mô hình cây quyết định. Để phá vỡ giới hạn sắp xếp thấp hơn đã được chứng minh trong mô hình cây quyết định, bạn không được thực hiện so sánh.

Một ví dụ khác là mô hình thăm dò tế bào . Ngoài các ví dụ trên Wikipedia, bạn có thể xem ví dụ Fredman-Saks (STOC'89) . Đây là một mô hình mạnh mẽ; nếu bạn muốn đánh bại một ràng buộc bằng thuật toán, bạn không được truy cập bộ nhớ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.