Độ phức tạp thời gian của một vấn đề có thay đổi với mã hóa của vấn đề không?


7

Giả sử tôi có một vấn đề quyết định D và tôi mã hóa nó thành một ngôn ngữ L{0,1}. Bây giờ, tôi cũng có thể mã hóa nó sang một ngôn ngữ khácL.

Có định lý nào liên quan đến độ phức tạp thời gian của LL?

Làm thế nào để độ phức tạp thời gian của một vấn đề thay đổi với các bảng mã khác nhau của cùng một vấn đề?


1
Ngôn ngữ thưa thớt là ngôn ngữ có số chuỗi dài n được giới hạn bởi một hàm đa thức của n. Tất cả các ngôn ngữ đơn phương là thưa thớt. Định lý của Mahaney nói rằng nếu một ngôn ngữ thưa thớt là NP hoàn chỉnh thì P = NP.
Pål GD

Câu trả lời:


8

Có, sự phức tạp phụ thuộc vào mã hóa. Điều duy nhất bạn có thể chắc chắn là nếu dịch từ mã hóaL để mã hóa L hoặc ngược lại có sự phức tạp fD có thể được giải quyết với sự phức tạp g, sau đó D (cùng một vấn đề được thể hiện với mã hóa L) có thể được giải quyết với độ phức tạp O(f+g) bằng cách đi qua lại giữa các bảng mã.

Nó không chỉ là vấn đề về độ dài của mã hóa. Để đưa ra một ví dụ đơn giản, hãy đểL là số nguyên dương được biểu diễn dưới dạng nhị phân và Llà số nguyên dương được đại diện bởi hệ số nguyên tố của chúng. Có một đa thức ràng buộc trong kích thước của một đại diện về mặt khác. Tuy nhiên, trong một thời gian dài, người ta không biết liệu thử nghiệm nguyên thủy có thể được giải quyết trong thời gian đa thức trong biểu diễn nhị phân hay không; nhưng trong biểu diễn nhân tố, nó là đa thức tầm thường (có lẽO(1) tùy thuộc vào chi tiết đại diện).

Hoặc xem xét vấn đề quyết định là số nguyên n một thành viên của bộ SMùi. Nếu tập hợp được biểu diễn bằng một danh sách các số nguyên không có thứ tự, thì vấn đề này rõ ràng đòi hỏi ít nhất là thời gian tuyến tính. Nhưng nếu tập hợp được đại diện bởi một cây tìm kiếm cân bằng, thời gian tra cứu là đa hình theo kích thước của tập hợp.

Trong hầu hết các trường hợp cụ thể, có một đại diện rõ ràng mà mọi người đều giả định, hay chính xác hơn là có một lớp biểu diễn hoàn toàn tương đương với một phép biến đổi mất thời gian không đáng kể. Nhưng đôi khi việc biểu diễn có liên quan, thường xuyên nhất khi phân tích cấu trúc dữ liệu với độ chính xác cao hơn thời gian đa thức.


Tôi thích con trỏ của bạn đối với cấu trúc dữ liệu. Thời gian chạy của nhiều thuật toán đồ thị phụ thuộc rất nhiều vào biểu diễn đồ thị được chọn, có thể được xem là mã hóa đầu vào.
Raphael

6

Độ phức tạp thời gian phụ thuộc vào mã hóa. Sự phức tạp thời gian choLL có thể tùy ý cách xa nhau, được mã hóa đủ điên rồ.

Trong thực tế, chúng ta thường quan tâm đến độ phức tạp thời gian cho mã hóa "tự nhiên". Thông thường, nếu có nhiều mã hóa "tự nhiên", thì tất cả chúng đều có xu hướng dẫn đến độ phức tạp xấp xỉ cùng thời gian (ví dụ: nếu bạn có thể chuyển đổi giữa các mã hóa một cách hiệu quả). Tuy nhiên, không có đảm bảo chính thức về điều này.

Do đó, về mặt kỹ thuật, người ta không thể nói về độ phức tạp thời gian của một vấn đề mà không chỉ định mã hóa cụ thể được sử dụng.


Có định nghĩa khắt khe nào về "mã hóa tự nhiên" không?
user774025

1
@ user774025, không. Ví dụ: mã hóa tự nhiên của một số nguyênxlà liệt kê số nguyên ở dạng nhị phân. Một mã hóa tự nhiên của một danh sáchL=[x1,x2,,xn] là sự kết hợp của mã hóa x1, mã hóa của x2, vv (với các dấu phân cách phù hợp). Và như thế.
DW

@ user774025 Nói cách khác, không, không có.
Patrick87

5

Xem xét bất kỳ ngôn ngữ hoàn chỉnh NP L và người giải quyết vũ lực (do đó theo thời gian theo cấp số nhân) A. Bây giờ xác định

L={x$0|x||x|xL}.

Bây giờ rõ ràng, một sự thích nghi nhẹ của A (chỉ sử dụng đầu vào tối đa $) quyết định Ltrong thời gian theo cấp số nhân trong|x| và do đó trong đa thức thời gian theo chiều dài của đầu vào của chính nó (là từ L). Đó là,LP.

Một xem xét đơn giản hơn là chuyển từ mã nhị phân tiêu chuẩn sang mã hóa đơn nguyên. Đột nhiên, kiểm tra tính nguyên thủy tầm thường và thậm chí cả yếu tố chạy trong thời gian đa thức. Khái niệm này có liên quan đến thời gian chạy giả đa thức .

Vì vậy, có: mã hóa quan trọng nếu nó thay đổi độ dài đầu vào đáng kể . Do đó, giả định điển hình là sử dụng

  • một mã hóa đơn phương với
  • nhiều nhất là một yếu tố không đổi (trên thông tin trần trụi),

mơ hồ như thế.

Lưu ý rằng thậm chí không có thời gian chạy về Θ-Các lớp là bất biến chỉ sử dụng các giả định này. Hãy tưởng tượng một mã hóa các mảng xen kẽ các số; điều này thêm một yếu tố đa thức để tìm tối đa. Vì vậy, có lẽ bạn nên cẩn thận ngay cả với mã hóa "tốt" nếu bạn muốn nói điều gì đó có độ chi tiết cao hơn so với các yếu tố đa thức.


4

Không chính xác là một câu trả lời cho câu hỏi của bạn, nhưng theo phỏng đoán Berman-Hartmanis (không chính thức) rằng tất cả các vấn đề hoàn thành NP là mã hóa lẫn nhau, theo một nghĩa nào đó. Khái niệm mã hóa được sử dụng trong phỏng đoán không bảo toàn độ phức tạp thời gian, cho đến sự khác biệt đa thức.


"Không chính xác là một câu trả lời cho câu hỏi của bạn" - đó có phải là một nhận xét không? ;)
Raphael
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.