Giới hạn tốt nhất trong SAT


43

Trong một chủ đề khác , Joe Fitzsimons đã hỏi về "giới hạn dưới tốt nhất hiện tại trên 3SAT."

Tôi muốn đi theo một cách khác: Giới hạn trên tốt nhất hiện tại trên 3SAT là gì? Nói cách khác, độ phức tạp thời gian của người giải SAT hiệu quả nhất là gì?

Cụ thể, có thể hiểu được khi tìm một thuật toán cấp số nhân (siêu đa thức) cho SAT không?


2
Tôi không biết về kết quả phân tích, nhưng bạn có thể tìm thấy kết quả thử nghiệm ở đây baldur.iti.uka.de/sat-race-2010/results.html (xem các liên kết "HTML")
Radu GRIGore

1
tiêu đề câu hỏi này là một chút sai lệch, bởi vì sự tồn tại của câu hỏi này: cstheory.stackexchange.com/questions/1295/sat-solver-doad . Tôi nghĩ bạn có thể viết lại là 'Giới hạn tốt nhất trong SAT'?
Suresh Venkat

@Suresh: Câu hỏi bạn đang đề cập liên quan đến "#SAT", trong khi câu hỏi này tương ứng với SAT. Ngoài ra, câu hỏi đó đã được hỏi khoảng một tuần sau câu hỏi này. Nhưng dù sao, bạn vẫn đề nghị thay đổi tiêu đề này?
MS Dousti

có, bởi vì "SAT Solver" là một đối tượng nổi tiếng cụ thể - một cơ sở mã thực tế để giải SAT. Google sẽ bị lẫn lộn và chuyển hướng mọi người tìm mã ở đây :).
Suresh Venkat

4
Về động lực cho câu hỏi này, tôi nghĩ rằng một số người đã thử giải SAT trong các trường hợp 17x17. Nó dường như là biên giới của những gì có thể được xử lý với bộ giải SAT. Thay vào đó, bạn có thể thử một bộ giải song song, nhưng tôi có ấn tượng dựa trên các bài đăng của Bill Gasarch rằng bạn sẽ cần một nỗ lực quy mô lớn. Bạn cũng có thể áp dụng một bộ giải SMT với một lý thuyết phù hợp hoặc sử dụng một bộ giải ràng buộc thực hiện một ràng buộc toàn cầu có một bộ truyền hiệu quả. Trong mỗi trường hợp này, ý tưởng mới sẽ là thể hiện một thuộc tính quan trọng khó thực hiện bằng cách sử dụng mệnh đề.
András Salamon

Câu trả lời:


38

Có hai loại người giải SAT "tốt nhất", một cho lý thuyết, một cho thực hành.

Học thuyết

ngẫu nhiên cho 3SAT.Ôi(1.32113viết sai rồi)

ngẫu nhiên cho 3SAT.Ôi(1.321viết sai rồi)

xác định ( 1.439 n ) cho 3SAT.Ôi(1.439viết sai rồi)

Thực hành

Kiểm tra hội nghị SAT để biết kết quả thi đấu mỗi năm.


Tôi tìm thấy một liên kết đến Iwama et al. giấy . Vì vậy, thực sự là kết quả mới nhất và tốt nhất để giải SAT cho đến bây giờ không? Ôi(1.32113viết sai rồi)
MS Dousti

@ Sadeq: Tôi nghĩ vậy, nhưng chỉ cho 3-SAT, không phải SAT.
Tian Liu

2
Bây giờ thuật toán tốt nhất là trong thời gian của Timon Hertli, Robin A. Moser và Dominik Lập lịch. Ôi(1.321viết sai rồi)
Tian Liu

10
Một cập nhật khác: trong FOCS 2011, Timon Hertli ( arxiv.org/abs/1103.2165 ) đã chứng minh rằng thuật toán PPSZ giải quyết mọi trường hợp 3SAT trong thời gian . 1.308viết sai rồi
Ryan Williams

21

Tôi không biết về bất kỳ thuật toán ngẫu nhiên không có lỗi nào (hoặc thuật toán coNE / Eadvice ,
đối với vấn đề đó) đối với SAT có giới hạn tốt hơn các thuật toán xác định đã biết,
bất kể có hứa hẹn sẽ có nhiều nhất một nhiệm vụ thỏa mãn hay không.


"Vấn đề 3-SAT là tất định có thể giải quyết trong thời gian ."O(1.3303n)


"Đối với 3-CNF (tương ứng 4-CNF) thỏa đáng duy nhất trên biến, việc gán thỏa mãn có thể được tìm thấy trong thời gian chạy xác định ở hầu hết On
(resp. OO(1.3071n) ). "O(1.4699n)


  1. "Tồn tại một thuật toán ngẫu nhiên cho 3-SAT với
    lỗi một phía chạy trong thời gian . " O(1.30704n)
  2. "Tồn tại một thuật toán ngẫu nhiên cho 4-SAT với
    lỗi một phía chạy trong thời gian . "O(1.46899n)


"Có một thuật toán ngẫu nhiên cho 3-SAT duy nhất sao cho ϵ=1/(1024)
là số thực cho phép thời gian chạy của bài báo trước bị ràng buộc cho 3-SAT được biểu thị bằngS
O(2(S+o(1))n), thuật toán của bài báo hiện tại chạy đúng lúc . "O(2(Sϵ+o(1))n)



16

Thuật toán của Schoening là thuật toán xác suất cho k-SAT với thời gian chạy , trong đó a = 2 ( k - 1 ) / k . Điều này dẫn đến thuật toán O ( 1.33334 n ) cho 3SAT, thuật toán O ( 1.5 n ) cho 4SAT, v.v.Ôi(mộtviết sai rồi)một= =2(k-1)/kÔi(1.3334viết sai rồi)Ôi(1,5viết sai rồi)

Thuật toán cũng đã được (gần như hoàn toàn) derandomized bởi Moser và Scheder, người đưa ra một thuật toán xác định để giải quyết kSAT thời gian chạy nơi một là hằng số tương tự như trước, và ε > 0 có thể được thực hiện tùy ý nhỏ.Ôi((một+ε)viết sai rồi)mộtε>0

Lưu ý: Trong câu trả lời này, ký hiệu Oh lớn ẩn các yếu tố poly (n). Tôi muốn sử dụng ký hiệu, nhưng nó không được hoàn trả đúng.Ôi*


1
Tại sao bạn nói "gần như hoàn toàn"? Tôi đã bỏ lỡ một cái gì đó trong bài báo?
András Salamon

1
Có một O xác định ( ( 2 - 2thuật toán cho k-SAT của tám người, vì vậy xin vui lòng tha thứ cho tôi không đề cập đến tất cả trong số họ. Đây là liên kết:linkshub.elsevier.com/retrieve/pii/S0304397501001748. Vì vậy, vớik=3,chúng ta cóO(1,5n)và nó không tốt như các giới hạn khác cho 3-SAT được trình bày ở đây, nhưng đối với k-SAT thì đó là điều tốt nhất, theo như tôi biết. Ôi((2-2k+1)viết sai rồi)k= =3Ôi(1,5viết sai rồi)
Grigory Yaroslavtsev

4
Tôi đã nói "gần như hoàn toàn" chỉ để chỉ ra rằng có một yếu tố epsilon ở đó. Tôi đoán người ta sẽ mong đợi rằng một sự tách rời hoàn toàn đạt được cùng thời gian chạy (tối đa các yếu tố đa thức). Hoặc có thể đó là không hợp lý để mong đợi.
Robin Kothari

1
@Grigory Yaroslavtsev: Không phải là thuật toán xác định Moser-Lập lịch cho kSAT mà tôi đã đề cập nhanh hơn mà bạn đã trích dẫn? Tui bỏ lỡ điều gì vậy?
Robin Kothari

1
Tôi chỉ lo lắng về vấn đề này trong ký hiệu của bạn, vì vậy nó là nhanh hơn thật. Có vẻ như bài báo đã xuất hiện trên arXiv chỉ vài ngày trước: arxiv.org/PS_cache/arxiv/pdf/1008/1008.4067v1.pdf , vì vậy không có gì lạ khi tôi không biết về nó. ε
Grigory Yaroslavtsev

12

Như đã được đề cập, nếu bạn quan tâm đến đảm bảo thời gian chạy lý thuyết, câu hỏi này là một bản sao.

Nhưng tôi muốn chỉ ra rằng nếu bạn thực sự muốn giải quyết một vấn đề cụ thể (như vấn đề tô màu mà bạn đã đề cập), tôi nghĩ rằng nó hoàn toàn không có ý nghĩa gì khi nghiên cứu giới hạn lý thuyết.

Mặc dù bạn muốn tránh các khía cạnh "kỹ thuật", tôi khuyên bạn chỉ nên lấy một số bộ giải SAT phổ biến, dùng thử và xem điều gì xảy ra (hầu hết chúng có thể đọc cùng định dạng tệp DIMACS, vì vậy rất dễ để thử người giải quyết khác nhau). Bạn có thể có cả những bất ngờ tích cực và tiêu cực. Gần đây tôi có một gia đình của các trường hợp SAT; một loạt các trường hợp với hàng chục ngàn biến và hơn một triệu mệnh đề hóa ra rất dễ giải quyết, trong khi các trường hợp có vẻ đơn giản hơn nhiều chỉ với hàng trăm biến và hàng ngàn mệnh đề là quá khó đối với bất kỳ người giải nào mà tôi đã thử.


8
Ngoài tóm tắt của Jukka, điều đáng chú ý là có hai loại người giải SAT chính: những người dựa trên tuyên truyền khảo sát, hoạt động tốt cho các trường hợp SAT ngẫu nhiên và những người sử dụng học mệnh đề kết hợp với giải quyết đơn vị, có xu hướng hoạt động cũng để khám phá cấu trúc tổ hợp. Những điều này có hành vi khá khác nhau. Các trường hợp xấu nhất đối với người giải SAT có xu hướng là những trường hợp không thỏa đáng, nhưng trong đó không gian của nogoods có cấu trúc phức tạp không cho phép cắt tỉa nhiều. Thật không may, các trường hợp từ tổ hợp có xu hướng thuộc loại này.
András Salamon

11

Ôi(1.308viết sai rồi)


Tôi cho rằng khi ai đó đưa ra giới hạn trên tốt hơn họ sẽ trích dẫn bài báo này. Chỉ có một lần trích dẫn trong bài báo này, đó là "Thuật toán thỏa mãn và Độ cứng trường hợp trung bình cho các công thức trên cơ sở nhị phân đầy đủ" Và dường như họ chỉ nói về một số loại công thức nhất định. Do đó, đây dường như là Giới hạn trên tốt nhất cho đến nay.
Tayfun Thanh toán

@TayfunPay: Bài viết dưới cùng trong câu trả lời của tôi trích dẫn bài báo đó.

@RickyDemer Uhuh! nó là một ràng buộc tốt hơn so với điều này? Ký hiệu không quá rõ ràng với tôi.
Tayfun Thanh toán

@TayfunPay: Có, và bạn có thể săn lùng hai bài báo như được mô tả sau đây. S3Sk Ở đầu trang 11, bài báo đó nói rằng thuật toán của họ có cùng giới hạn với PPSZ, điều đó có nghĩa là họ không hiển thị bất cứ điều gì nhiều hơn tôi đã đề cập trong câu trước của tôi. (tiếp tục ...)

(... Tiếp tục) S2Sviết sai rồiSS3

8

3SAT không thể có các thuật toán theo cấp số nhân trừ khi giả thuyết thời gian theo cấp số nhân là sai.

Ôi(1.324viết sai rồi)

Ôi(1.32216viết sai rồi)


15
Đó không phải là một tautology?
Tsuyoshi Ito

1
2o(viết sai rồi)

Công việc của Kazuo Iwama et al. (2004) mới hơn so với Schoening's (1999). Tôi tự hỏi nếu thậm chí nhiều kết quả gần đây có sẵn.
MS Dousti

8
Để tránh khả năng nhầm lẫn, nhận xét cuối cùng của tôi đề cập đến câu đầu tiên của câu trả lời: 3SAT không thể có thuật toán theo cấp số nhân trừ khi giả thuyết thời gian theo cấp số nhân (ETH) là sai. Giả thuyết là giả thuyết rất rõ ràng rằng không có thuật toán nào cho 3SAT mà thời gian chạy của nó là phụ (ví dụ 2 ^ {o (n)}) về số lượng biến.
Tsuyoshi Ito

10
Và để tránh nhầm lẫn hơn nữa, tôi sẽ nói thêm rằng khi Tsuyoshi đăng bình luận của mình, câu trả lời chỉ chứa một câu đó, khiến nhận xét của anh ấy rất phù hợp.
Robin Kothari

7

Đây bài thỏa thuận với giới hạn trên về SAT. Đây là một thỏa thuận với giới hạn thấp nhất. Liên kết này cung cấp chi tiết về cuộc thi hàng năm so sánh việc triển khai SAT solver, tất cả đều có thể tải xuống. Để đơn giản, bạn có thể bắt đầu với SAT4J , một thư viện dựa trên Java để giải SAT.


Hóa ra câu hỏi này đã được hỏi trước đó; Tôi chỉ không nhìn thấy nó khi tôi tìm kiếm trang web. Câu trả lời của Tian Liu về câu hỏi giới hạn trên chính xác là những gì tôi đang tìm kiếm. Cảm ơn các liên kết, dave!
Daniel Apon

1
Đây là bằng chứng cho thấy tôi dành quá nhiều thời gian ở đây ;-)
Dave Clarke

chúng tôi rất vui vì bạn đã làm :)
Suresh Venkat

2
Tôi không chắc chắn nếu tôi muốn giới thiệu sat4J, không chỉ nó chậm hơn đáng kể so với hiện đại mà còn hơi phức tạp hơn. Tuy nhiên, sự thật là nó có thể tùy biến độc đáo do cấu trúc hướng đối tượng. MiniSat được viết rất độc đáo và 2.2 là hiện đại.
Mikolas

3

Thuật toán xác định tốt nhất cho 3-SAT hiện có giới hạn trên 1.32793 ^ n, xem https://arxiv.org/abs/1804.07901 của Sixue Liu. Về cơ bản các giới hạn trên cho tất cả các k-SAT đã được cải thiện trong bài viết này.

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.