Tổng tập hợp, giải pháp lập trình động thời gian giả đa thức?


8

Tôi đã tìm thấy vấn đề P vs NP một thời gian trước đây và gần đây tôi đã làm việc về vấn đề tổng hợp tập hợp con. Tôi đã đọc bài viết Wikipedia về vấn đề Tổng hợp con cũng như câu hỏi Thuật toán tổng hợp con

Tôi đã xem xét vấn đề và tìm thấy một số giải pháp nhưng cho đến nay chúng dường như là NP, tôi tin rằng tôi có thể tạo ra một thuật toán đủ nhanh trong thời gian NP.

Vấn đề của tôi là tôi không giỏi về lý thuyết nên nó không giúp tôi nói nhiều về Định lý Cook-Levin hoặc Máy Turing không xác định.

Những gì tôi muốn là một lời giải thích về tập hợp con lập trình động thời gian giả đa thức tổng hợp mà trên Wikipedia.

Tôi đã đọc nó và tôi tin rằng tôi hiểu khái niệm chung về lý do tại sao nó là NP thay vì P (liên quan đến kích thước của đầu vào thay vì các thao tác với nó), nhưng tôi không hiểu thuật toán.

Tôi sẽ đánh giá cao nếu ai đó đưa ra một ví dụ với một số con số và cách nó hoạt động. Nó sẽ giúp tôi rất nhiều vì nó sẽ:

  • Hãy cho tôi ý tưởng để cải thiện thuật toán tương lai của tôi
  • Giúp tôi hiểu bằng trực giác khi một thuật toán là giả đa giác thay vì NP.



2
Câu hỏi là gì? Ban đầu tôi nghĩ bạn hỏi một ví dụ về cách thuật toán mà bạn liên kết hoạt động, nhưng tôi đã theo liên kết và đã có một ví dụ ở đó.
rgrig

2
Tôi cũng gặp khó khăn trong việc hiểu bài viết, không rõ những gì đang được hỏi. btw, mọi vấn đề trong P cũng nằm trong NP. Tôi đoán bạn có nghĩa là NP-đầy đủ thay vì NP ở một số nơi trong bài viết của bạn. Cuối cùng, không có nghĩa gì khi nói một thuật toán nằm trong NP, NP là một lớp ngôn ngữ không phải là thuật toán. Tôi đoán là bạn có quan niệm sai lầm phổ biến rằng NP có nghĩa là thuật toán thời gian không đa thức (hoặc thời gian theo cấp số nhân).
Kaveh

2
Nếu bạn giới hạn kích thước các giá trị trong đầu vào (ràng buộc số bit cho mỗi giá trị là logarit trong tổng số bit của đầu vào) thì vấn đề có thể được giải quyết trong thời gian đa thức bằng lập trình động. Nếu chúng không bị ràng buộc, chúng có thể có các giá trị lớn theo cấp số nhân và kích thước của bảng cho lập trình động sẽ theo cấp số nhân.
Kaveh

Câu trả lời:


5

Đánh giá lại nhận xét của Kaveh như một câu trả lời:

Nếu bạn giới hạn kích thước các giá trị trong đầu vào (ràng buộc số bit cho mỗi giá trị là logarit trong tổng số bit của đầu vào) thì vấn đề có thể được giải quyết trong thời gian đa thức bằng lập trình động. Nếu chúng không bị ràng buộc, chúng có thể có các giá trị lớn theo cấp số nhân và kích thước của bảng cho lập trình động sẽ theo cấp số nhân.

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.