Tính toán mọi thông tin về Max-3SAT


26

Đối với một công thức 3CNF để là số tối đa của các điều khoản thỏa mãn trong bất kỳ chuyển nhượng tới . Được biết, Max-3SAT khó gần đúng (theo P ≠ NP), tức là không có thuật toán đa thời gian có đầu vào là công thức 3CNF và đầu ra của nó là số sao cho nằm trong a hệ số nhân từ , trong đó là hằng số dương tuyệt đối.M ( C )CM(C)C M M ( C ) 1 + c M c > 0CCMM(C)1+cMc>0

Tôi tin rằng cũng khó NP để tính cho bất kỳ mô đun không đổi . Tôi tự hỏi liệu sự khái quát chung sau đây của hai sự thật này có đúng không: Không có thuật toán đa thời gian nào có đầu vào là công thức 3CNF với mệnh đề và một chuỗi lời khuyên và đầu ra của nó là . Ở đây là một hằng số tuyệt đối. Nói một cách dễ hiểu, không có thuật toán nào tính được bit thông tin của .B M ( C )M(C)modpC N log 2 N - B M ( C ) BpCNlog2NBM(C)BBM(C)

Tôi xin lỗi nếu câu hỏi có câu trả lời nổi tiếng, vì tôi không phải là một nhà lý thuyết phức tạp bằng cách nền tảng.


1
Thông thường, một lời khuyên của người Viking chỉ có thể phụ thuộc vào độ dài của đầu vào. Tôi tin rằng ý định của bạn là một lời khuyên của người dùng ở đây có thể phụ thuộc vào đầu vào. Tôi không biết một thuật ngữ tiêu chuẩn cho khái niệm này.
Tsuyoshi Ito

9
Đó là một câu hỏi rất thú vị. Để xác nhận rằng thực sự là khó có thể tính toán, người ta có thể lưu ý rằng bằng chứng về lý Cook tạo ra một công thức -variable đó là một trong hai satisfiable hay như vậy mà . m F M ( F ) = m - 1M(C)modpmFM(F)=m1
Luca Trevisan

16
Câu hỏi có thể được trình bày lại theo cách sau: có thể có thuật toán thời gian đa thức, đưa ra công thức 3CNF với biến, đưa ra danh sách các số sao cho một trong các số đó là ? m m / 2 B M ( F )Fmm/2BM(F)
Luca Trevisan

2
vâng, nên là số mệnh đề trong nhận xét trên. m
Luca Trevisan

9
nó tương đương vì nếu bạn có một thuật toán như được mô tả trong bài đăng, thì bạn có thể chạy thuật toán trên mỗi chuỗi lời khuyên có thể, hãy lấy càng nhiều (hoặc ít hơn nếu có những va chạm) câu trả lời, và một trong số đó là chính xác. Nếu bạn có một thuật toán như trong nhận xét của tôi ở trên, \ log_2 m - Các bit lời khuyên B là đủ để xác định rằng câu trả lời đúng là lớn nhất thứ i trong số các đầu ra của thuật toán, đối với một số i . log 2 m - B i i2log2mB=m/2Blog2mBii
Luca Trevisan

Câu trả lời:


14

Dưới đây là một đối số rằng nếu bạn có thể giải Max 3SAT trên một thể hiện mệnh đề m với số lượng lời khuyên không đổi, thì hệ thống phân cấp đa thức sẽ sụp đổ.

Khắc phục sự cố hoàn thành NP L. Từ định lý Cook, chúng ta biết một phép biến đổi f () của đầu vào x cho L thành công thức 3SAT f (x), do đó

1) nếu thìM ( f ( x ) ) = mxLM(f(x))=m

2) nếu thìM ( f ( x ) ) = m - 1xLM(f(x))=m1

Trong đó là số mệnh đề trong .f ( x )mf(x)

Chúng tôi cũng có một định lý về Kadin, nói rằng, nếu đưa ra đầu vào của một vấn đề hoàn thành NP, bạn có một thuật toán thời gian đa thức tạo ra truy vấn cho một nhà tiên tri NP và xác định Câu trả lời đúng cho các vấn đề NP , sau đó hệ thống phân cấp đa thức sụp đổ.x 1 , ... , x kk - 1 k x i? Lkx1,,xkk1kxi?L

Giả sử chúng ta có một thuật toán giải Max SAT trên các đầu vào mệnh đề m cho k bit lời khuyên. Chúng tôi sẽ sử dụng kết quả của Hastad để xây dựng một thuật toán như tiền đề của định lý Kadin.

Bắt đầu từ đầu vào cho vấn đề . Áp dụng định lý Cook cho mỗi người trong số họ. Sau một số chuẩn hóa (có thể được thực hiện bằng cách gán trọng số cho các mệnh đề hoặc sao chép chúng nếu chúng ta không muốn sử dụng trọng số), chúng ta xây dựng các công thức trong một nhất định :x 1 , Mạnh , x K L K F 1 , Góc , F K mK=2k+1x1,,xKLKF1,,FKm

1) nếu và nếu khôngx 1L M ( F 1 ) = m - 2M(F1)=m1x1LM(F1)=m2

2) nếu và nếu khôngx 2L M ( F 2 ) = m ( m - 2 )M(F2)=m(m1)x2LM(F2)=m(m2)

...

k) nếu và nếu khôngx KL M ( F K ) = m K - 1( m - 2 )M(FK)=mK1(m1)xKLM(FK)=mK1(m2)

Bây giờ lấy sự kết hợp của các công thức, được xây dựng trên biến các tập hợp không giao nhau, và gọi nó là . Vậy ta có và chúng ta có thể "đọc" câu trả lời cho các vấn đề bằng cách nhìn vào cơ sở- đại diện của . Nếu chúng ta có thể tính cho bit lời khuyên, điều đó có nghĩa là chúng ta có thể tìm thấy giá trị sao cho một trong số chúng là . Sau đó, chúng tôi có thể hỏi một nhà tiên tri NP không thích nghi liệu cho mỗi giá trị ứng cử viênM ( F ) = M ( F 1 ) + + M ( F k ) K x i? L m M ( F ) M ( FFM(F)=M(F1)++M(Fk)Kxi?LmM(F)k 2 k M ( F ) M ( F ) n i n 1 , Bắn , n 2 k 2 k + 1 2M(F)k2kM(F)M(F)nin1,,n2kchúng tôi tạo ra. Vì vậy, chúng tôi đã có thể giải quyết trường hợp các vấn đề hoàn thành NP bằng cách thực hiện truy vấn không thích ứng với một orory NP, ngụ ý rằng hệ thống phân cấp đa thức sụp đổ.2k+12k

Sử dụng định lý của Hastad thay cho định lý Cook, có thể đẩy kích thước của thành thay vì , vì vậy có thể đẩy đến và số bit lời khuyên . Hiểu những gì xảy ra khi bạn được cung cấp bit lời khuyên dường như thực sự khó khăn.Fm k k log m log log m log m - O ( 1 )O(1)kmmkklogmloglogmlogmO(1)


Đã chỉnh sửa để thêm: Krentel ( Sự phức tạp của các vấn đề tối ưu hóa . J. Comput. Syst. Sci. 36 (3): 490-509 (1988) ) đã chứng minh rằng việc tính toán giá trị tối ưu của vấn đề clique tối đa đã hoàn tất cho , lớp các hàm có thể tính toán được trong thời gian đa thức với các truy vấn cho một orory NP. Tính đầy đủ nằm dưới "một lần giảm truy vấn", trong đó hàm f có thể rút gọn thành hàm g nếu người ta có thể viết cho thời gian đa thức tính toán và . cho Max Clique. Bây giờ, nếu Max Clique có thuật toán thời gian đa thức tạo ra một danh sách O ( l o g n ) f ( x ) = r 1 (FPNP[O(logn)]O(logn)r 1 r 2 m o ( 1 ) F P N P [ o ( l o g n ) ]f(x)=r1(g(r2(x))r1r2mo(1)các giá trị có thể, nó sẽ nằm trong , bởi vì bạn có thể sử dụng tìm kiếm nhị phân để tìm tối ưu với một số truy vấn là nhật ký của kích thước danh sách.FPNP[o(logn)]

Bây giờ, nếu chúng ta có chúng ta chắc chắn sẽ có , đó là trường hợp đặc biệt cho các vấn đề quyết định và được biết đến, bởi kết quả của Wagner (cải thiện kết quả của Kadin áp dụng cho số lượng truy vấn không đổi), để thu gọn hệ thống phân cấp đa thức. Nhưng tôi nghĩ rằng có thể biết rằng sẽ thực sự ngụ ý P = NP. Nhưng trong mọi trường hợp, kết quả của Krentel và Kadin-Wagner phải đủ để đưa ra một bằng chứng khác về kết quả của Andy Drucker. Bây giờ tôi tự hỏi nếu nó thực sự là bằng chứng tương tự, đó là, nếu kết quả Fortnow-Van Melkebeek hoạt động, rõ ràng hoặc ngầm định, thông qua một đối số "mô phỏng truy vấn NP với ít truy vấn NP hơn". P N P [ O ( l o g n ) ] = P N P [ o ( l o g n ) ] F P N P [ O ( l oFPNP[O(logn)]=FPNP[o(logn)]PNP[O(logn)]=PNP[o(logn)]FPNP[O(logn)]=FPNP[o(logn)]

Một bài khảo sát tốt giải thích những gì đang xảy ra với các vấn đề tối ưu hóa và các lớp truy vấn bị ràng buộc:

http://www.csee.umbc.edu/~chang/ con / bababh / npfsat.pdf


8

Tôi muốn nêu một lý do tại sao việc chứng minh độ cứng NP của vấn đề này là khó khăn.

Trong một bình luận về câu hỏi, Luca Trevisan đã đưa ra một cách hay để lặp lại vấn đề: Liệu vấn đề sau có thể giải quyết được trong thời gian đa thức cho mọi hằng số k không? Cho một công thức CNF C với các mệnh đề m , đầu ra tối đa là số nguyên m / k sao cho một trong số chúng bằng M ( C ). Ở đây k có liên quan đến B bằng k = 2 B .

Tuy nhiên, hãy yêu cầu nhiều hơn. Cụ thể, chúng tôi xem xét vấn đề sau: đưa ra công thức CNF C , xuất ra hai số nguyên sao cho một trong số chúng bằng M ( C ). Chúng tôi biểu thị vấn đề này bằng Π. Vấn đề ít nhất cũng khó như vấn đề ban đầu, vì vậy nếu vấn đề ban đầu là NP-hard, cũng phải là NP-hard.

Lưu ý rằng là một vấn đề quan hệ. Một trong những cách giảm đơn giản nhất có thể được sử dụng để giảm một số vấn đề L thành vấn đề quan hệ Π là giảm Levin theo thời gian đa thức, là trường hợp đặc biệt của giảm Turing theo thời gian đa thức trong đó việc giảm chỉ gọi là tiên tri cho Một lần.

Chúng tôi cho rằng P [1] = P. Điều này rõ ràng ngụ ý rằng NP⊈P [1] trừ khi P = NP, nghĩa là, không phải là NP-hard dưới mức giảm Levin thời gian đa thức trừ khi P = NP.

Bằng chứng . Đặt L ∈P [1] , hay nói cách khác, tồn tại sự giảm Levin từ L xuống. Điều này có nghĩa là tồn tại một cặp ( f , g ) của hàm tính toán thời gian đa thức f : {0,1} * → {0,1} * ánh xạ từng trường hợp x của bài toán L sang một số công thức CNF f ( x ) và một vị từ tính toán thời gian đa thức g : {0,1} * × × ℕ → {0,1} sao cho g ( x , i , j ) = L( x ) nếu i hoặc j bằng M ( f ( x )). (Ở đây L ( x ) = 1 nếu x là trường hợp có của LL ( x ) = 0 nếu x là trường hợp không có.)

Chúng tôi xây dựng một thuật toán đa thức thời gian cho L từ đây như sau. Đặt x là một đầu vào.

  1. Hãy C = f ( x ), và để cho m là số điều khoản trong C .
  2. Tìm một i ∈ {0, Mạnh, m } sao cho giá trị g ( x , i , j ) không đổi độc lập với j ∈ {0, Lỗi, m }.
  3. Xuất ra hằng số g này ( x , i , 0).

Trong bước 2, i luôn tồn tại vì i = M ( f ( x )) thỏa mãn điều kiện. Hơn nữa, thuật toán này không thể đưa ra một câu trả lời sai vì g ( x , i , M ( f ( x ))) phải là câu trả lời đúng. Do đó, thuật toán này giải quyết L chính xác. QED .

Nếu tôi không nhầm, ý tưởng tương tự có thể được sử dụng để chứng minh rằng P Π [ k ( n )] DTIME [ n O ( k ( n )) ]. Điều này ngụ ý rằng NP⊈P [ k ] cho mọi hằng số k trừ khi P = NP và NP⊈P Π [polylog] trừ khi NP⊆DTIME [2 polylog ]. Tuy nhiên, ý tưởng này một mình dường như không loại trừ khả năng Π là NP-hard dưới khả năng giảm Turing theo thời gian đa thức.


1
Bạn có thể cung cấp một liên kết đến câu trả lời của Dana?
Mohammad Al-Turkistany

@turkistany: Cô ấy đã xóa câu trả lời của mình sau khi tôi đăng bản sửa đổi đầu tiên của câu trả lời này. Tôi vừa xóa một tham chiếu đến nó từ câu trả lời này.
Tsuyoshi Ito

8

Tôi tin rằng chúng ta có thể hiển thị:

Yêu cầu. Có giá trị sao cho sau đây là đúng. Giả sử có một thuật toán poly-thời gian xác định rằng, cho một -clause 3-SAT dụ , kết quả đầu ra một danh sách ít nhất giá trị, chẳng hạn rằng ; sau đó hệ thống phân cấp đa thức sụp đổ.m φ S m c M ( φ ) S0<c<1mϕSmcM(ϕ)S

Bằng chứng sử dụng kết quả của Fortnow và Santhanam về tính không khả thi của việc nén cá thể từ giấy của họ http://www.cs.uchicago.edu/~fortnow/ con /comp.p.p

Cụ thể, bằng cách xem bằng chứng của họ về Thm 3.1, tôi tin rằng người ta có thể trích xuất những điều sau đây (tôi sẽ kiểm tra lại điều này sớm):

"Định lý" [FS]. Có các số nguyên sao cho sau đây là đúng. Giả sử trong đa thời gian xác định, người ta có thể chuyển đổi OR của công thức Boolean (mỗi độ dài và trên các tập hợp biến số khác nhau) thành công thức OR của (một lần nữa biến đổi và về độ dài ), duy trì sự thỏa mãn / không thỏa mãn của OR. Sau đó và hệ thống phân cấp đa thức sụp đổ.n dn n d n N Pc o N P / p o l y0<d<dndnndnNPcoNP/poly

Bằng chứng về yêu cầu của chúng tôi sẽ là giảm từ nhiệm vụ nén OR được đề cập trong định lý trên [FS], đối với vấn đề tính toán danh sách . Giả sử là danh sách các công thức mà chúng tôi muốn nén.ψ 1 , ... , ψ n dM(ϕ)ψ1,,ψnd

Bước đầu tiên: xác định mạch có kích thước đa thức trên các chuỗi đầu vào . Ở đây, chuỗi mã hóa một phép gán cho và mã hóa một số trong khoảng từ đến .( v , y 1 , ... , y n d ) y i ψ i v { 0 , 1 } d log n + 1 0 n dΓ(v,y1,,ynd)yiψiv{0,1}dlogn+10nd

Chúng tôi có chấp nhận iff hoặc hoặc .v = 0 ψ v ( y v ) = 1Γv=0ψv(yv)=1

Bây giờ hãy để biểu thị giá trị tối đa , sao cho mạch bị giới hạn là thỏa đáng. (Số lượng này luôn luôn ít nhất là 0).v Γ ( v , , ... , )M(Γ)vΓ(v,,,)

Giả sử chúng ta có thể tạo một danh sách các giá trị có thể cho một cách hiệu quả . Sau đó, yêu cầu là trong danh sách của chúng tôi , chúng tôi có thể vứt bỏ tất cả mà ; danh sách kết quả chứa một công thức thỏa đáng nếu công thức ban đầu đã làm. Tôi hy vọng điều này là rõ ràng bằng cách kiểm tra.M * ( Γ ) ψ 1 , ... , ψ n d ψ i i SSM(Γ)ψ1,,ψndψiiS

Kết luận: chúng tôi không thể tạo ra một danh sách của các giá trị có thể cho , trừ khi hệ thống phân cấp poly sụp đổ.n d ' M * ( Γ )SndM(Γ)

Bước thứ hai: Chúng tôi giảm từ vấn đề tính toán danh sách sang vấn đề tính toán danh sách cho các trường hợp 3-SAT .M ( φ ) φM(Γ)M(ϕ)ϕ

Để thực hiện việc này, trước tiên, chúng tôi chạy chương trình rút gọn của Cook trên để lấy bản sao 3-SAT có kích thước . có cùng biến được đặt với , cùng với một số biến phụ. Quan trọng nhất cho mục đích của chúng tôi, là thỏa đáng iff là thỏa đáng.φ 1 m = p o l y ( n d ) φ 1 Γ φ 1 ( v , ) Γ ( v , )Γϕ1m=poly(nd)ϕ1Γϕ1(v,)Γ(v,)

Chúng tôi gọi là 'ràng buộc mạnh mẽ'. Chúng tôi cung cấp cho mỗi ràng buộc này trọng lượng (bằng cách thêm các ràng buộc trùng lặp). 2 mϕ12m

Sau đó, chúng tôi thêm một tập hợp 'các ràng buộc yếu' , thêm một ưu tiên cho chỉ số (được xác định trong bước 1) để càng cao càng tốt. Có một ràng buộc cho mỗi bit của , cụ thể là . Chúng tôi cho phép các -thứ bit quan trọng nhất của có một hạn chế trọng lượng . Vì có độ dài , các trọng số này có thể được tích hợp (chúng ta chỉ cần đệm để cho là lũy thừa 2). v v t v [ v t = 1 ] t v m / 2 t - 1 v d log n + 1 mϕ2vvtv[vt=1]tvm/2t1vdlogn+1m

Cuối cùng, hãy để là đầu ra của việc giảm giá của chúng tôi.ϕ=ϕ1ϕ2

Để phân tích , đặt ( v , z ) là tập hợp biến của ϕ , với v như trước. Lưu ý đầu tiên khi đưa ra bất kỳ phép gán nào cho ( v , z ) , người ta có thể suy ra giá trị của v từ đại lượng N ( v , z ) = (tổng trọng số của ϕ -constraint thỏa mãn bởi v , z ). Điều này xuất phát từ thiết kế phân cấp của các trọng số ràng buộc (tương tự như một kỹ thuật từ câu trả lời của Luca). Tương tự, giá trị tối đa có thể đạt đượcv v Γ ( v , ) M * ( Γ ) v = Γ ( v , )ϕ(v,z)ϕv(v,z)vN(v,z)=ϕv,z
đạt được bằng một cài đặt ( v , z ) thỏa mãn tất cả các ràng buộc mạnh và trong đó (đối tượng này)càng lớn càng tốt. Đâylà chỉ số lớn nhất màlà satisfiable, cụ thể là. (Lưu ý, luôn luôn có thể, bằng cách đặtall-0, để đáp ứng tất cả các ràng buộc mạnh, vì trong trường hợp đólà thỏa đáng.)M(ϕ)(v,z)vvΓ(v,)M(Γ)v=Γ(v,)

Theo sau, nếu chúng ta được cung cấp một danh sách các giá trị có thể có của , chúng ta có thể rút ra một danh sáchgiá trị có thể có của . Vì vậy, chúng ta không thể có trừ khi hệ thống phân cấp poly sụp đổ. Điều này đưa ra Khiếu nại, vì .M ( ϕ ) | S | M ( Γ ) | S | n d n d = m Ω ( 1 )SM(ϕ)|S|M(Γ)|S|ndnd=mΩ(1)

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.