Bất kỳ vấn đề NP-Complete nào có thể được giải quyết bằng cách sử dụng tối đa không gian đa thức (nhưng trong khi sử dụng thời gian theo cấp số nhân?)


12

Tôi đã đọc về NPC và mối quan hệ của nó với PSPACE và tôi muốn biết liệu các vấn đề NPC có thể được giải quyết một cách xác định bằng thuật toán với yêu cầu không gian đa thức tồi tệ nhất hay không, nhưng có khả năng mất thời gian theo cấp số nhân (2 ^ P (n) trong đó P là đa thức).

Hơn nữa, nó có thể được khái quát thành EXPTIME nói chung không?

Lý do tôi hỏi điều này là vì tôi đã viết một số chương trình để giải quyết các trường hợp thoái hóa của một vấn đề NPC và chúng có thể tiêu thụ một lượng RAM rất lớn cho các trường hợp khó khăn và tôi tự hỏi liệu có cách nào tốt hơn không. Để tham khảo xem https://fc-solve.shlomifish.org/faq.html .

Câu trả lời:


27

Nói chung, điều sau đây là đúng với bất kỳ thuật toán nào:

  1. Giả sử A là một thuật toán chạy trong thời gian f(n) . Sau đó, A không thể mất hơn f(n) không gian, kể từ khi viết f(n) bit đòi hỏi f(n) thời gian.
  2. Giả sử A là một thuật toán yêu cầu không gian f(n) . Sau đó, trong 2f(n) thời gian, A có thể truy cập từng trạng thái khác nhau của mình, do đó không thể kiếm được gì khi chạy quá 2f(n) thời gian.

Nó theo sau:

NP PSPACE

Sự trì trệ được gọi là một phần của các mối quan hệ giữa các lớp, như được mô tả bởi sơ đồ sau:

quan hệ giữa các lớp

Câu trả lời rất đơn giản: một vấn đề Q NP có một đa thức chứng nhận chiều dài y . Một thuật toán kiểm tra tất cả các chứng chỉ có thể là một thuật toán quyết định Q trong thời gian 2nO(1) .

Yêu cầu không gian của nó là:

  • y (đa thức trongn )
  • không gian cần thiết để xác minh y . Vì y là chứng chỉ đa thức, nên nó có thể được xác minh trong thời gian đa thức, do đó không thể yêu cầu nhiều hơn không gian đa thức.

Vì tổng của hai đa thức cũng là một đa thức, Q có thể được quyết định với không gian đa thức.


Thí dụ:

Giả sử φ là một thể hiện của 3-CNF trên literals x1xn , với m mệnh đề. Chuyển nhượng f là một số chức năng f:{x1xn}{0,1} .

Nó giữ rằng:

  • 2n bài tập khác nhau.
  • Với một bài tập f , phải mất O(m) thời gian để tính toán giá trị của φ , do đó nó không thể đòi hỏi nhiều hơn O(m) không gian.

Vì vậy, thuật toán A kiểm tra tất cả các bài tập có thể sẽ sử dụng không gian đa thức, chạy theo thời gian theo cấp số nhân và quyết định 3-SAT.

Nó theo sau:

3-SAT PSPACE , và kể từ 3-SAT là NP-đầy đủ, NP PSPACE


1
Tại sao EXPSPACE và EXPTIME có liên quan? Tôi nghĩ thời gian và không gian là những tài nguyên khác nhau. Một ví dụ xuất hiện trong tâm trí là phá vỡ một sơ đồ tiền điện tử, đòi hỏi EXPTIME, nhưng không gian không đổi
WeCanBeFriends

6
Trực quan ở đây là, nếu bạn sử dụng không gian , bạn phải sử dụng ít nhất f ( n ) thời gian và bạn không nên sử dụng nhiều hơn 2 f ( n ) thời gian, bởi vì sau đó bạn phải xem lại các trạng thái tương tự. Đó là lý do tại sao PSPACE EXPf(n)f(n)2f(n)
lox

Có f (n) khác với O (n) trong ví dụ của bạn không?
WeCanBeFriends

1
@WeCanBeFriends Người ta không thể sử dụng thời gian theo cấp số nhân với không gian liên tục: bạn cần ít nhất không gian sử dụng để đếm cho đến khi số mũ (ví dụ như chương trình truy cập của một ngôn ngữ lắp ráp), đó là đa thức (logarit trong mũ)
gigabyte

4
@gigabyte Chúng tôi không biết điều đó. Điều tốt nhất chúng ta biết là . PEXPTIME
Tom van der Zanden

9

Đúng. Đây là một bản phác thảo của một bằng chứng trực tiếp.

Nếu một vấn đề nằm ở NP , có một máy Turing không xác định  M quyết định nó, và có một đa thức  p sao cho không có đường tính toán nào của M trên các đầu vào có độ dài  n hơn các bước p(n) . Điều đó có nghĩa là một đường dẫn không thể sử dụng nhiều hơn các ô băng p(n) , vì vậy chúng ta có thể mô phỏng một đường dẫn duy nhất một cách xác định trong không gian đa thức.

Nhưng chúng ta cần mô phỏng tất cả các đường dẫn. Vâng, đó là một hằng số  c mà chỉ phụ thuộc vào chức năng chuyển đổi của  M (và không phải trên đầu vào của nó) sao cho M  có ít nhất  c lựa chọn không xác định tại bất cứ bước nào. Điều đó có nghĩa là có nhiều nhất các đường dẫn tính toán khác nhau cp(n) cho bất kỳ đầu vào nào có độ dài  n . Chúng ta có thể mô phỏng tất cả các đường dẫn cp(n) như sau. Đầu tiên, ghi ra một p(n) số -digit trong cơ sở- c (điều này có không gian p(n) nhưng đó là đa thức, vì vậy nó ổn). Sau đó, mô phỏng hoạt động của M và, ởbước thứi của tính toán, sử dụngchữ số thứi của số để quyết định lựa chọn không xác định nào để thực hiện. Ví dụ, nếuchữ số thứi là 6 và chỉ có bốn lựa chọn có thể được thực hiện, hãy từ bỏ mô phỏng đó và chuyển sang lựa chọn tiếp theo.

Vì vậy, bây giờ, để làm toàn bộ mô phỏng, chúng ta bắt đầu bằng cách viết ra số 00 , mô phỏng con đường của  M , tăng số lượng, mô phỏng các con đường tiếp theo, và như vậy, cho đến khi chúng ta đạt đến số lượng mà mỗi chữ số là c1 . Bây giờ chúng tôi đã mô phỏng mọi đường dẫn tính toán có thể và chúng tôi đã thực hiện kịp thời về cp(n)p(n) , sử dụng khoảng trắng khoảng 2p(n) . Đó là thời gian theo cấp số nhân và không gian đa thức, theo yêu cầu.

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.