Sự phức tạp của các vấn đề trường hợp đặc biệt


7

Thường thì tôi thấy một câu như thế này trong khi đọc các văn bản về Độ phức tạp tính toán:

"Đối với trường hợp đặc biệt này của TSP" hoặc là

"Đây là một trường hợp đặc biệt của SAT" hoặc là

" - là trường hợp đặc biệt sau đây của " hoặckPARTITIONBIN PACKING

" là trường hợp đặc biệt của " nauseam quảng cáo.SUBSET SUMKNAPSACK

Điều tôi thấy thiếu là tiêu chí để khẳng định một vấn đề là trường hợp đặc biệt của vấn đề khác.
Sự cần thiết của việc phân loại một vấn đề như một trường hợp đặc biệt của một vấn đề khác là gì? Liệu một trường hợp đặc biệt luôn mang lớp phức tạp như trường hợp 'không đặc biệt' của nó?

Thường thì điều này được nêu đơn giản là không có bằng chứng về mối quan hệ giữa các vấn đề này.

Những yêu cầu phải được đáp ứng cho một vấn đề là một trường hợp đặc biệt của người khác?

Làm cách nào tôi có thể chứng minh một Ngôn ngữ mới cho một vấn đề là trường hợp đặc biệt của một vấn đề đã tồn tại?

Câu trả lời:


11

Khi chúng tôi nói rằng một vấn đề B là một trường hợp đặc biệt của một vấn đề A, chúng tôi muốn nói rằng B là vấn đề tương tự như A, ngoại trừ không phải tất cả các trường hợp vấn đề của A là những trường hợp vấn đề cho B. NếuB là một trường hợp đặc biệt của A, chúng tôi nói rằng A là một khái quát của B.

Hai ví dụ: việc cộng các số nguyên dương (nói 5+3) là một trường hợp đặc biệt của việc cộng các số nguyên (nói 5+(3)) và sắp xếp các số nguyên trong phạm vi {1,2,,k} cho cố định k là một trường hợp đặc biệt của việc sắp xếp các số nguyên tùy ý.

Bất kỳ giải pháp để A cũng là một giải pháp để Bvà bất kỳ kết quả độ cứng nào cho B (ví dụ, nó là NP-hard hoặc nhu cầu Ω(n2) thời gian để được giải quyết) ngay lập tức chuyển đến A. Tuy nhiên, chúng tôi thường xem xét các trường hợp đặc biệt vì đôi khi chúng tôi có thể tìm thấy các thuật toán tốt hơn cho chúng so với trường hợp chung.

Ví dụ: Θ(nlogn) thuật toán sắp xếp hoạt động tốt như trên các số nguyên trong phạm vi {1,2,,k}, nhưng CountingSort hoạt động trong trường hợp đặc biệt (không phải trên tổng quát) trong O(n+k), thường nhanh hơn nếu k nhỏ. SATNP-cứng, 3SAT là một trường hợp đặc biệt của SAT đó vẫn là NP-hard (do đó ngụ ý rằng SATNP-hard), nhưng 2SAT trong P.

Lưu ý rằng định nghĩa trên đôi khi bị kéo dài (bị lạm dụng) để nói rằng bạn có thể mã hóa bất kỳ trường hợp nào của B như một ví dụ của Avà mã hóa này cực kỳ đơn giản. Trong trường hợp đó, ở trên thường vẫn giữ, nhưng ít nghiêm ngặt hơn.


4

"Trường hợp đặc biệt" đơn giản là ngược lại với "trường hợp chung".

Chẳng hạn, cây là trường hợp đặc biệt của đồ thị, v.v ... Tương tự như vậy đối với các vấn đề : "tìm phần tử tối thiểu của danh sách nào đó" hoặc "tìm trung vị" chỉ là trường hợp đặc biệt của vấn đề "tìmk- yếu tố nhỏ nhất trong danh sách ".

Đối với độ phức tạp, chúng ta biết rằng trường hợp đặc biệt khó nhất là trường hợp chung (vì bất kỳ thuật toán nào giải quyết trường hợp chung, cũng có thể giải quyết trường hợp đặc biệt).

Tuy nhiên, có thể trường hợp đặc biệt đơn giản hơn trường hợp chung. NhiềuNP-Các vấn đề đầy đủ có các trường hợp đặc biệt "dễ dàng" để giải quyết. Chẳng hạn, 2-SAT đó là trường hợp đặc biệt của SATtrong đó công thức chỉ có 2 biến trong mỗi mệnh đề. Trong khiSATNP-Hoàn thành, 2-SAT có thể được giải quyết với thời gian đa thức.

Một ví dụ khác: mặc dù việc sắp xếp mất Ω(nlogn) nói chung, đối với trường hợp đặc biệt trong đó miền bị giới hạn (nghĩa là các phần tử chỉ từ {1,,m} cho một cố định m), một tuyến tính O(n+m)giải pháp tồn tại bằng cách sử dụng Xô sắp xếp , v.v.

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.