Sự phức tạp của các vấn đề NP-hard hoặc -complete mạnh có thay đổi khi đầu vào của chúng được mã hóa không chính thức không?


12

Liệu khó khăn của một vấn đề NP-hard hoặc NP-Complete mạnh mẽ (như được xác định ở đây ) có thay đổi khi đầu vào của nó là đơn nhất thay vì được mã hóa nhị phân không?

Có gì khác biệt nếu đầu vào của một vấn đề NP-hard mạnh được mã hóa đơn phương? Ý tôi là, nếu tôi lấy ví dụ về vấn đề Knapsack NP-perfect yếu, thì nó hoàn thành NP khi được mã hóa nhị phân nhưng có thể được giải quyết trong thời gian đa thức bằng cách lập trình động khi mã hóa đơn nguyên. Có lẽ nó có một số hàm ý cho độ cứng của mức độ cao hơn của thời kỳ gia truyền đa thức?

Có phải khái niệm mạnh mẽ ...- cứng cũng giữ cho các lớp phức tạp khác, ví dụ các lớp cao hơn của hệ thống phân cấp thời gian đa thức?

Trước đây tôi đã hỏi câu hỏi này tại stackoverflow.com nhưng nó đã chỉ ra rằng nó phù hợp hơn ở đây.


Tôi có nên hỏi câu hỏi này tốt hơn tại cstheory.stackexchange.com không? Tôi chỉ không biết nó tồn tại. Các aswers ở đây không đi theo hướng mà tôi đã hy vọng.
dùng2145167

Tại sao họ không? Họ đúng (theo như tôi có thể nói) chính xác, vì vậy có lẽ câu hỏi của bạn không phải là câu hỏi bạn muốn hỏi? Bên cạnh đó, Khoa học máy tính lý thuyết dành cho các câu hỏi TCS ở cấp độ nghiên cứu , điều này chắc chắn là không.
Raphael

Câu trả lời:


4

NNđăng nhậpNF(N)F(kích thước)F(2kích thước)


3

Không.

Nếu bạn thay đổi mã hóa của đầu vào, bạn đã thay đổi định nghĩa chính thức của vấn đề, điều đó có nghĩa đó là một vấn đề khác . Sự phức tạp của vấn đề ban đầu không thay đổi, vì cùng một lý do là chỉ vào một ánh sáng khác trên bầu trời không làm thay đổi khối lượng của mặt trăng.


2
PP1

2

Câu trả lời ngắn gọn là, nếu đầu vào được mã hóa đơn nguyên thì nó dài hơn . Nó dài hơn theo cấp số nhân . Bây giờ, một thuật toán hoạt động trong thời gian đa thức theo kích thước của đầu vào có "đủ thời gian" để giải quyết vấn đề, chỉ vì bản thân đầu vào dài hơn theo cấp số nhân so với vấn đề ban đầu.


1

Nhìn thấy vấn đề xây dựng được chỉ ra trong câu trả lời của JeffE, câu trả lời là có.

Hãy xem xét vấn đề Knapsack . Nó có một đa thức giả thuật toán , đó là một thuật toán có thời gian chạy giới hạn bởi một đa thức trong một số được mã hóa trong đầu vào. Bởi vì trong các giá trị mã hóa đơn nguyên tương ứng với độ dài, đây là thuật toán đa thức thời gian cho phiên bản đơn nguyên.

Trong thực tế, mọi vấn đề hoàn thành NP yếu đều thuộc loại này.


Câu hỏi phụ, nhưng tôi không bao giờ hiểu - làm thế nào để bạn thậm chí "mã hóa" một cái gì đó trong unary? Bạn không cần một dấu phân cách của một số loại?
dùng541686

@Mehrdad Có và không. Đúng; ký hiệu phân tách thường không được tính theo nghĩa này, cf cũng nhập vào bảng chữ cái băng; ở đây chúng tôi chỉ xem xét kích thước của bảng chữ cái đầu vào. Không; về nguyên tắc, một số là đủ để mã hóa các bộ dữ liệu và các bộ số có thể đếm được để bạn không cần các ký hiệu phân tách. Điều đó rõ ràng không hữu ích cho việc "làm việc" với các máy như vậy nhưng lại biện minh cho việc bỏ qua các biểu tượng phân tách (và điều khiển khác).
Raphael

Hmm ... Tôi không chắc là tôi hiểu phần "không" của bạn; Làm thế nào bạn biết số kết thúc ở đâu nếu bạn không có dấu phân cách ở cuối? Nó có vẻ hơi giống logic vòng tròn đối với tôi: nếu chúng ta bỏ qua các dấu phân cách, thì câu hỏi trở thành "nếu chúng ta buộc đầu vào chiếm nhiều không gian hơn theo cấp số nhân, điều đó có thay đổi thời gian chạy của thuật toán theo cấp số nhân so với kích thước đầu vào không ? " có câu trả lời tầm thường là có ... theo định nghĩa. Nó không thay đổi quá nhiều mã hóa vì nó được thêm vào các bit dự phòng một cách giả tạo sau khi bạn tính đến các dấu tách.
dùng541686

@Mehrdad Được rồi, tôi chỉ nghĩ về việc tách nhiều số với nhau. Trong mọi trường hợp, bạn cần điểm đánh dấu kết thúc. biểu tượng "trống" trên máy Turing; mà bạn không thể thoát khỏi. Phần còn lại bạn có thể mã hóa thành một số (rõ ràng là ở hình phạt thời gian chạy).
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.