Lớp phức tạp tương ứng với sắp xếp


14

Hai phần của TCS là thuật toán và độ phức tạp. Tôi sẽ nói một cách đơn giản rằng các thuật toán là nghiên cứu về giới hạn trên, cho thấy rằng bạn có thể làm một cái gì đó (với các tài nguyên bị hạn chế) và sự phức tạp là về việc cho thấy rằng bạn không thể làm điều đó mà không cần một số tài nguyên tối thiểu.

Vì vậy, thường một vấn đề thuật toán được nêu trong một mô hình quyết định để đặt nó trong một lớp phức tạp.

Nhưng một điều luôn làm tôi bận tâm là một số thuật toán cơ bản không bao giờ được đề cập hoàn toàn là thuộc về một lớp cụ thể. Một ví dụ là (so sánh) sắp xếp. Hãy thử như tôi có thể, một lớp có liên quan dường như quá thiếu (thực sự, chỉ là kiểm tra trong logspace rằng kết quả đã được sắp xếp? Điều đó có vẻ quá yếu, hoặc tôi không nhận được phiên bản quyết định đúng).

Lớp phức tạp tốt nhất / phù hợp nhất / hữu ích nhất mà sắp xếp so sánh nằm ở đâu?

Câu trả lời:


17

Vấn đề sắp xếp thực sự đã hoàn tất cho TC0 (theo khấu trừ). Một nguồn tiêu chuẩn cho điều này là Mục 1.4.3 của cuốn sách của Vollmer .AC0

Lưu ý rằng là loại vấn đề quyết định, nhưng chúng ta thường nghĩ sắp xếp như một vấn đề chức năng, tức là chúng ta muốn xuất các số, theo thứ tự không tăng. Tuy nhiên, chúng ta cũng có thể định nghĩa sắp xếp là một vấn đề quyết định như sau:TC0

Với một chuỗi các con số và hai số k , p [ n ] , chúng tôi muốn quyết định xem một k là ở vị trí p trong chuỗi chúng ta có được bằng cách phân loại một 1 , ... , một n trong nondecreasing đặt hàng. Lưu ý rằng để tránh sự mơ hồ, khi một i = một j , chúng tôi muốn một i để đặt trước một j nếu i < j .a1,,ank,p[n]akpa1,,anai=ajaiaji<j


Tuyệt vời ... được chỉ định là vấn đề quyết định chính thức?
Mitch

1
Nó sẽ là gấp đôi tuyệt vời để bao gồm một tài liệu tham khảo trong câu trả lời của bạn.
Oleksandr Bondarenko

@Mitch và @Okeksandr: Cảm ơn ý kiến ​​của bạn! Tôi vừa mở rộng câu trả lời của mình để làm rõ những điểm đó.
Đại Lê

Nghe có vẻ như vấn đề quyết định cho thống kê đơn hàng. Có một vấn đề liên quan trong đó mọi thứ ở đúng vị trí của nó? Một cái gì đó giống như được đưa ra một chuỗi và một hoán vị σ trên [ 1 .. n ] , quyết định nếu 1 k < j n , một σ k < một σ j . Điều này cũng khó như của bạn; nó khó hơn hay hoàn thành cho một lớp bao gồm? a1...anσ[1..n]1k<jn,aσk<aσj
Mitch

2
@Mitch: Tôi tin rằng việc kiểm tra xem mọi thứ có ở đúng vị trí như thế thực sự dễ hơn sắp xếp không. Trực giác là bạn có thể kiểm tra xem cho tất cả các cặp có thể ( một σ k , một σ j ) với k < j song song, mà tôi tin rằng có thể được thực hiện trong một C 0 . Đối với bài toán sắp xếp ở trên, bạn cần có khả năng "đếm" để tìm ra vị trí đúng của một số theo thứ tự tuyến tính. mộtσk<mộtσj(mộtσk,mộtσj)k<jMộtC0
Đại Lê

0

Tôi tin rằng FP là những gì bạn đang tìm kiếm.


Chà, tôi đang tìm kiếm lớp phức tạp quyết định có liên quan hơn là lớp chức năng, nhưng ngay cả như vậy, tôi khá chắc chắn sắp xếp so sánh không ở đâu gần P-Complete (hoặc hoàn thành FP), vì vậy tôi đang mong đợi một lớp nhỏ hơn mà nó dự kiến ​​sẽ ở / hoàn thành.
Mitch

Tôi không biết rằng tính đầy đủ là một trong những yêu cầu đối với câu hỏi của bạn. Là một vấn đề quyết định (nếu bạn bỏ qua ràng buộc hoàn thành của mình) tại sao P sẽ không được chấp nhận như một câu trả lời? Đưa ra một DTM, bạn có thể vừa sản xuất và xác nhận chứng chỉ trong thời gian đa thức.
Nicholas Mancuso

Đưa ra một vấn đề chung, điều tôi thường muốn biết không chỉ là thời gian đa thức, mà là lớp nhỏ nhất mà nó có thể tham gia. Tôi muốn biết liệu nó có ở LOGCFL, NL, L, AC_0, v.v. là một cách mà bạn "không thể" làm tốt hơn nữa. Vì vậy, nit không phải là một yêu cầu của câu hỏi của tôi, nhưng có khả năng là một câu trả lời.
Mitch
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.