Là các mạch có kích thước đa thức cho tầm thường 3-SAT?


10

Giả sử chúng ta xem xét 3-SAT với biến và mệnh đề . Tôi đang nghiên cứu một phương pháp có vẻ mất thời gian / không gian để giải quyết bất kỳ vấn đề SAT nào phù hợp với mô tả này, trong một lỗi có thể được điều chỉnh thành một lượng tùy ý. Tuy nhiên, có một nhược điểm.c O ( v 2 + log c )vcÔi(v2+đăng nhậpc)

Phương pháp này yêu cầu một tập hợp các giá trị được tính toán trước, sau đó nó có thể giải quyết vấn đề 3-SAT tùy ý phù hợp với mô tả ở trên. Các giá trị được tính toán trước là một tập hợp kích thước với mỗi giá trị lấy không gian . Vấn đề thực sự là mỗi giá trị này có thể mất thời gian để tính toán. Có một cơ hội mà tôi có thể tìm ra cách để tăng tốc các tính toán này.O ( 1 ) O ( 2 v )Ôi(v2+đăng nhậpc)Ôi(1)Ôi(2v)

Tôi nghĩ rằng các giới hạn tự đánh bại các giới hạn trên được trình bày trong câu hỏi này (đối với nhỏ ). Vì vậy, tôi tự hỏi, có một cách tầm thường để đạt đến giới hạn trên mà tôi mô tả nếu chúng tôi cho phép tính toán trước ?O ( v 2 + log c )cÔi(v2+đăng nhậpc)

Tôi muốn tiếp tục nghiên cứu này và hy vọng công bố kết quả của mình nếu mọi thứ đều ổn, nhưng trước tiên tôi muốn biết liệu có một cách tầm thường để làm tốt hay tốt hơn.


CẬP NHẬT

Tôi đã nghiên cứu các vấn đề liên quan ngoài việc nghiên cứu thuật toán này. Tôi đã hỏi Câu hỏi này trên trang web Bảo mật CNTT của StackExchange liên quan đến bẻ khóa mật khẩu và SAT, nếu bạn quan tâm. Ít nhất một trong những câu trả lời phản ánh điều này.


Bạn nói rằng phải mất thời gian / không gian O (N ^ 2 + logc) ... Vậy nó không có trong PSPACE? Nhưng trong QSPACE (Quasi-Space)?
Tayfun Trả

@Tayfun Pay: Nó chạy trong . Đây là một thuật toán xác định cung cấp cho modulo kết quả một số nguyên tố p (lưu ý rằng kết quả này là đủ cho phần còn lại của thuật toán để xác định một phép gán thỏa mãn). Nó có thể được chạy cho bất kỳ nguyên tố. Chạy nhiều hơn một số nguyên tố làm tăng cơ hội tìm được nhiệm vụ thỏa mãn. Nó có cơ hội tìm thấy một nhiệm vụ thỏa mãn, nếu có tồn tại, của ( p - 1 ) / p . O(v(2+logc))p(p1)/p
Matt Groff

Có cần O (N ^ (2 + log (c))) KHÔNG GIAN không?
Tayfun Trả tiền

@Tayfun Trả tiền: Có. Tôi chưa tìm được cách giảm bớt sự cân nhắc về không gian.
Matt Groff

1
Tôi sẽ đề nghị thay đổi tiêu đề thành một cái phù hợp hơn. Tiêu đề hiện tại không hấp dẫn, trong khi bản thân câu hỏi có vẻ như vậy.
Yoshio Okamoto

Câu trả lời:


16

Nếu những gì bạn đang học tập được thực hiện, nó chắc chắn sẽ không tầm thường.

Nó có nghĩa là 3SAT có các mạch (không đồng nhất) có kích thước . Sau đó, mọi ngôn ngữ trong N P (và hệ thống phân cấp thời gian đa thức) sẽ có các mạch kích thước bán cầu đa thức (tức là n O ( log c n ) ).nÔi(đăng nhậpn)NPnÔi(đăng nhậpcn)

Ngay cả khi phải mất thời gian tiền xử lý để tạo ra cấu trúc dữ liệu có kích thước chỉ 2 O ( log 2 n ) , sau đó có thể trả lời đúng các truy vấn 3SAT có kích thước n trong 2 O ( log 2 n ) thời gian ngẫu nhiên với xác suất cao, 3SAT sẽ có các mạch kích thước đa thức, sử dụng các bản dịch thuật toán ngẫu nhiên đã biết cho các mạch. Điều này sẽ không cải thiện giới hạn thời gian thuật toán đã biết do tiền xử lý, nhưng nó vẫn cực kỳ thú vị vì kết quả không đồng nhất.22n2Ôi(đăng nhập2n)n2Ôi(đăng nhập2n)

Bạn có ý nghĩa gì khi "trong một lỗi có thể được điều chỉnh thành số tiền tùy ý"? Là thuật toán ngẫu nhiên?


:Cảm ơn câu trả lời của bạn. Thuật toán không ngẫu nhiên. Thời gian chạy thực tế của thuật toán tự nó không hoàn toàn đơn giản như tôi đã mô tả nó. Về cơ bản, mặc dù, chúng ta có thể chạy nó thông qua các lần chạy lặp lại để loại bỏ lỗi. Vì vậy, nếu chúng tôi chạy nó qua lần, xác suất xảy ra lỗi sẽ giảm xuống dưới 1 / ( 2 x ) . Tôi ngần ngại đưa ra các chi tiết vì tôi lo lắng rằng nó sẽ tiết lộ quá nhiều về thuật toán. x1/(2x)
Matt Groff

3
Làm thế nào thuật toán có thể không được ngẫu nhiên, nhưng bạn có thể chạy nó nhiều lần để giảm lỗi? Tôi nghĩ rằng bạn có thể sẽ phải cung cấp ít nhất một vài chi tiết, để hiểu câu hỏi của bạn.
Ryan Williams

2
Thuật toán của anh ta là như vậy (nếu nó hoạt động), với mỗi số nguyên tố , nếu số lượng bài tập thỏa mãn không phải là bội số của p thì thuật toán tìm thấy một phép gán thỏa mãn.ppAnh ta (sai) gọi đó là "một sự thay đổi của việc tìm kiếm một nhiệm vụ thỏa mãn, nếu có tồn tại, của ."(p-1)/pNếu sự phụ thuộc của thời gian chạy vào không lớn, thì điều này mang lại các mạch có kích thước gần như đa thức cho SAT.p

Bước tiền xử lý cần . Tôi có thể có một tài liệu tham khảo về "bản dịch thuật toán ngẫu nhiên đã biết cho các mạch" không? Vì vậy, nếu bạn muốn giảm lỗi, bạn phải chạy tiền xử lý n lần. Tôi nghi ngờ điều này có thể được dịch sang một mạch gần đúng. Lợi thế này sẽ có lợi thế gì so với một thuật toán tầm thường? pn
Zirui Wang

@ZiruiWang: Nhìn lên . Giả sử các cấu trúc dữ liệu giải đáp thắc mắc một cách chính xác với xác suất 3 / 4 . Lấy 100 n bản sao cấu trúc dữ liệu có kích thước 2 O ( log 2 n ) mỗi hạt giống với các chuỗi bit ngẫu nhiên khác nhau. Lấy câu trả lời đa số của tất cả các bản sao. Đây là thời điểm quasipolynomial ngẫu nhiên thuật toán với lỗi ít hơn 1 / 2 n . Điều này có thể được chuyển đổi thành một mạch kích thước quasipolynomial bằng cách mã hóa một hạt giống thích hợp.BPPP/potôiy3/4100n2Ôi(đăng nhập2n)1/2n
Ryan Williams

3

Tôi không biết liệu kết quả của bạn - nếu hợp lệ - sẽ là một tiến bộ không hề nhỏ, nhưng đây là một loại vấn đề bạn có thể kiểm tra nó:

Vấn đề. Sửa một hàm . Cho y { 0 , 1 } n , tìm x { 0 , 1 } n sao cho f ( x ) = y .f:{0,1}n{0,1}ny{0,1}nx{0,1}nf(x)= =y

Nếu có thể được tính toán hiệu quả (giả sử, bằng một mạch nhỏ), kết quả của bạn ngụ ý một số giải pháp cho vấn đề này.f

Trong thế giới mật mã, thuật toán được biết đến nhiều nhất cho vấn đề này thực hiện một phép tính toán trước (chỉ phụ thuộc vào ) yêu cầu 2 n thời gian và 2 2 n / 3 không gian, và đưa ra một số lời khuyên về kích thước 2 2 n / 3 ; sau đó, với x , nó có thể tìm thấy y trong 2 2 n / 3 lần, sử dụng chuỗi lời khuyên có kích thước 2 2 n / 3 từ tiền mã hóa. Bạn có thể điều chỉnh không gian và đánh đổi thời gian, để sử dụng chuỗi lời khuyên có kích thước Sf2n22n/322n/3xy22n/322n/3Svà mất thời gian , miễn là S T. Theo tôi biết, sự phức tạp này được cho là tốt nhất có thể, đối với các thuật toán không tính đến bất kỳ cấu trúc bên trong nào củaf. Cụ thể, nó có khả năng là tối ưu khiflà hàm băm bảo mật bằng mật mã. (Kỹ thuật này được gọi là sự đánh đổi không gian thời gian Hellman.)ST= =2nff

Vì vậy, nếu kỹ thuật của bạn có thể làm tốt hơn so với sự đánh đổi không gian thời gian Hellman trên một số an toàn về mật mã , thì đó chắc chắn sẽ là tin tức.f

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.