Có thuật toán thời gian tuyến tính không xác định cho CNF-SAT không?


19

Vấn đề quyết định CNF-SAT có thể được mô tả như sau:

Input: Một công thức boolean ở dạng chuẩn hội.ϕ

Câu hỏi: Có tồn tại một phép gán biến thỏa mãn không?ϕ

Tôi đang xem xét một số cách tiếp cận khác nhau để giải quyết CNF-SAT với máy Turing hai băng không xác định .

Tôi tin rằng có một NTM giải quyết CNF-SAT theo các bước .npoly(log(n))

Câu hỏi: Có NTM nào giải quyết CNF-SAT theo các bước không?O(n)

Bất kỳ tài liệu tham khảo có liên quan đều được đánh giá cao ngay cả khi chúng chỉ cung cấp các phương pháp tiếp cận không xác định thời gian gần tuyến tính.


5
Santhanam vào năm 2001 đã viết: "SAT NTIME ( n polylog ( n ) ), một kết quả xuất phát từ thực tế rằng SAT có thể được chấp nhận trong n polylog ( n ) trên NRAM và có một mô phỏng NRAM hiệu quả bởi NTMs , do Gurevich và Shelah. " Vì vậy, dường như không chắc chắn rằng SAT NTIME ( n ) được biết đến. (Tài liệu tham khảo là LNCS 363 từ năm 1989.)n(n)n(n)n
András Salamon

5
@Boson, giả sử rằng bạn được giao không chỉ là một bài tập thỏa mãn mà còn là sự tính toán hoàn chỉnh của công thức. Làm thế nào bạn sẽ kiểm tra nếu nó là một tính toán hợp lệ trong thời gian tuyến tính? Không rõ ràng thậm chí bạn có thể làm điều đó cho 3CNF-SAT vì bạn phải nhảy xung quanh để tra cứu bài tập cho các biến.
Kaveh

4
@Boson Không rõ liệu bạn có thể xác minh rằng phép gán thỏa mãn công thức trong thời gian tuyến tính với TM hai băng không. Bạn có thể sẽ phải di chuyển đầu băng qua lại nhiều lần. Nếu bạn có một cách tiếp cận hiệu quả cho việc xác minh này, xin vui lòng cho tôi biết. :)
Michael Wehar

5
Chỉ cần một lưu ý: nếu biến được trình bày trong unary (SAT vẫn là NPC), sau đó có một hai băng NTM mà nhận ra một satisfiable thức unary trong 2 | φ | các bướcφ2|φ|
Marzio De Biasi

3
@MichaelWehar nếu bạn sử dụng sắp xếp đếm, bạn có thể sắp xếp n khóa trong phạm vi [0, k] trong thời gian O (n + k) trong mô hình truy cập ngẫu nhiên hợp lý (ví dụ: Máy truy cập ngẫu nhiên Turing, nơi bạn có thể lấy O (nhật ký n) thời gian để ghi lại một chỉ mục, sau đó có thể chuyển đến chỉ mục đó của băng trong 1 bước). Nếu bạn mã hóa mỗi ký tự dưới dạng một chuỗi bit (log n + 1), thì tổng số mệnh đề và biến nhiều nhất là O (n / log n), trong trường hợp đó, hoạt động của O (log n) trên tất cả các chữ tốt thôi. Mở rộng đến hai băng TM không đơn giản, ít nhất là với việc sắp xếp đếm.
Ryan Williams

Câu trả lời:


5

Đây chỉ là một nhận xét mở rộng. Một vài lần trước tôi đã hỏi (bản thân mình :-) một NTM đa nhiệm nhanh như thế nào chấp nhận một ngôn ngữ hoàn chỉnh NP (được mã hóa hợp lý) có thể. Tôi nảy ra ý tưởng này:

3-SAT vẫn hoàn thành NP ngay cả khi các biến được biểu thị bằng unary. Đặc biệt chúng tôi có thể chuyển đổi một điều khoản - giả sử - một tùy ý 3-SAT công thức φ trên n biến và m khoản trong một chuỗi các ký tự trên bảng chữ cái Σ = { + , - , 1 } trong đó mọi sự xuất hiện biến được thể hiện bằng unary:(xi¬xjxk)φnmΣ={+,,1}

+1i0,1j,+1k

Ví dụ, có thể được chuyển đổi sang:(x2x3+4)

+110-1110+11110

Vì vậy, chúng ta có thể chuyển đổi công thức 3-SAT trong một chuỗi tương đương U ( φ i ) nối các mệnh đề của nó. Ngôn ngữ L U = { U ( φ i ) | φ i3 - S Một T } là NP-đầy đủ.φiU(φi)LU={U(φi)φi3SAT}

Một NTM 2 băng có thể quyết định nếu một chuỗi trong thời gian 2 | x | theo cách nàyxLU2|x|

  • đầu thứ nhất quét đầu vào từ trái sang phải và với logic bên trong, nó sẽ theo dõi khi nó nhập hoặc thoát một mệnh đề hoặc đến cuối công thức. Bất cứ khi nào nó tìm thấy dấu hoặc - , đầu thứ hai bắt đầu di chuyển đúng với nó trên 1 i đại diện cho x i . Ở cuối 1 i , nếu đầu thứ hai ở trên 0 thì nó đoán giá trị thật + hoặc - (nó thực hiện một bài tập) và viết nó vào băng thứ hai; nếu nó tìm thấy dấu + hoặc - thì biến đó đã được gán một giá trị;+1ixi1i0++
  • trong cả hai trường hợp, sử dụng logic bên trong, NTM khớp với giá trị chân lý dưới đầu thứ hai (phép gán) với giá trị nhìn thấy hoặc - ; nếu chúng khớp thì mệnh đề được thỏa mãn;+
  • sau đó đầu thứ hai có thể trở về ô ngoài cùng bên phải;
  • với logic bên trong, NTM có thể theo dõi nếu tất cả các mệnh đề được thỏa mãn trong khi đầu thứ nhất di chuyển về cuối của đầu vào.

Thí dụ:

Tape 1 (formula)    Tape 2 (variable assignments)
+110-1110+11110...  0000000000000...
^                   ^
+110-1110+11110...  0000000000000...
 ^                  ^
+110-1110+11110...  0000000000000...
  ^                  ^
+110-1110+11110...  0+00000000000... first guess set x2=T; matches +
  ^                  ^               so remember that current clause is satisfied
+110-1110+11110...  0+00000000000... 
  ^                  ^
...
+110-1110+11110...  0+00000000000... 
    ^               ^
...
+110-1110+11110...  0++0000000000... second guess set x3=T
       ^              ^              don't reject because current
                                     clause is satisfied (and in every
                                     case another literal must be parsed)

Thời gian có thể giảm xuống nếu chúng ta thêm một số ký hiệu dự phòng vào biểu diễn mệnh đề:|x|

+1i0i,1j0j,+1k0k...+++

+++

0i+++++


1
vv2

2
2n

1
vv1

1
2ncnc

1
Θ(nn)Ω(n2/(logn)1+ε)O(n3/(logn)ε)

2

Không chính xác những gì bạn đang tìm kiếm, nhưng đối với NTM 1 băng, câu trả lời dường như là tiêu cực: SAT không thể giải quyết được bằng NTM 1 băng trong thời gian tuyến tính không xác định.

REG o(nlog(n))o(nlog(n))


5
Định lý đó chỉ nói về máy Turing một đầu .(Ví dụ: máy Turing hai đầu có thể dễ dàng quyết định ngôn ngữ palindrom trong thời gian tuyến tính và không gian không đổi.)

Điều đó thật tuyệt! Cảm ơn rât nhiều. Nhưng, tôi quan tâm nhất đến trường hợp hai băng. :)
Michael Wehar

2
Như @Ricky đã viết. AFAIK vẫn phù hợp với những gì chúng ta biết rằng SAT đang trong thời gian tuyến tính xác định. Để chứng minh bằng cách khác, bạn sẽ cần một thời gian siêu tuyến giới hạn thấp hơn cho SAT và chúng tôi không có một (dường như không gần với một).
Kaveh
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.