Điều gì là sai với mâu thuẫn dường như này với một bài báo về AND-nén SAT?


7

Có một công trình đơn giản dường như mâu thuẫn với một bài báo giả định hợp lý.

Vì không chắc là phỏng đoán là sai, nên có gì sai với lập luận?

Từ một tờ giấy

Nén AND là thuật toán đa thức thời gian xác định ánh xạ một tập hợp các trường hợp SAT x1,,xt đến một ví dụ SAT ycó kích thước sao cho y thỏa mãn khi và chỉ khi tất cả x_i đều thỏa đáng. ... Trừ khi sự sụp đổ lý thuyết phức tạp khó xảy ra \ sf coNP \ subseteq NP / poly xảy ra, không có nén AND cho SAT.poly(maxi|xi|)yxicoNPNP/poly

Xây dựng:

Nếu xi không có trong CNF, hãy chuyển đổi chúng thành CNF có thể thêm các biến mới. Đây là đa thức.

Trong CNF ai có thể mã hóa VÀ cổng C:=AB và OR cổng C:=AB .

Các cổng AND và OR có thuộc tính cho tất cả các nhiệm vụ thỏa mãn CNF của chúng, chúng ta có C(AB)C(AB) .

Đặt mệnh đề thứ j trong xixi,j=[y1,,yk] cho các chữ ym .

Sử dụng cổng OR và các biến mới, tính toán biến Oi,j:=y1y2yk .

Đối với tất cả các mệnh đề trong ( ) và biến tính toán cổng AND .xiOi,jVi:=Oi,1Oi,2Oi,m

Bằng cách xây dựng .xiVi

Đối với tất cả , sử dụng cổng AND tính toán .ViF:=V1Vt

Fx1xt .

Vì vậy, công thức cuối cùng là sự kết hợp của các CNF cho , , và một mệnh đề đơn vị .yOi,jViF[F]

|y|là tuyến tính theo số lượng của tất cả các chữ, là đa thức trong, mà làm chođa thức trong.tmax|xi||y|max|xi|

Điều này dường như mâu thuẫn với yêu cầu trong bài báo, trừ khi sự sụp đổ nhất định xảy ra.

Điều gì là sai với lập luận này dường như mâu thuẫn với yêu cầu trong bài báo?

Các công trình xây dựng tương tự cho nén OR, khi ít nhất một phải thỏa đáng.xi

Biến mới được giới thiệu được xác định duy nhất bởi các biến ban đầu.

OR gate in  CNF 3 := 1 \/ 2 : [[1 2 -3],[-1 3],[-2 3]]
AND gate in CNF 3 := 1 /\ 2 : [[-1 -2 3],[1 -3],[2 -3]]

Bạn không thể tính (và do đó ), điều này có nghĩa là bạn đã biết giải pháp cho các trường hợp SAT. Oi,jVi,j
Luke Mathieson

@LukeMathieson Điều này hoạt động trong thực tế với các cổng rõ ràng, nó được tính toán một cách tượng trưng trên các chữ. Để tính , sử dụng hoặc tính toán cổng , . T:=xyzt1:=OR(y,z)T:=OR(x,t1)
elluser

@ user114872 nếu họ không sử dụng các giá trị, làm thế nào họ bị ép buộc bởi sự phân công sự thật? Tôi có thể đứng sau là thỏa đáng là thỏa đáng, nhưng tôi không hiểu tại sao bạn lại đảo ngược, các biến có thể được đặt thành đúng. xi ViOi,j
Luke Mathieson

@LukeMathieson Tôi không xây dựng giải pháp, tôi đang xây dựng CNF (làm việc với nghĩa đen một cách tượng trưng). Theo trực giác, chuyển đổi CNF thành mạch có cổng . Thêm cổng AND giữa tất cả . Chuyển đổi mạch cuối cùng sang CNF buộc cổng cuối cùng thành TRUE. Đây là đa thức quá. yxioixioi
elluser

1
@ user114872 Tôi hiểu rằng bạn đang xây dựng một công thức CNF, điều tôi đề nghị là nó không tuân theo điều kiện là thỏa đáng nếu và chỉ khi tất cả đều thỏa đáng - chỉ thỏa đáng bằng cách đặt tất cả các biến thành true. Điều này cho chúng ta không có gì về các trường hợp . FxiFOi,jxi
Luke Mathieson

Câu trả lời:


12

Sự nhầm lẫn phát sinh từ một sự hiểu lầm về những gì là đa thức trong kích thước của ví dụ lớn nhất có nghĩa. Điều đó không có nghĩa là sự tăng trưởng đa thức của đầu ra của máy nén được cho phép là số lượng phiên bản (t) tăng. Thay vào đó, điều đó có nghĩa là đầu ra của máy nén chỉ được phép tăng khi kích thước cá thể tối đa tăng lên, không phụ thuộc vàotvà sau đó chỉ trong một đa thức cố định của giá trị đó.

Máy nén của bạn nối các thể hiện CNF, chuyển đổi chúng thành các mạch và sau đó chuyển đổi các mạch trở lại CNF. Đầu ra của nó tăng trưởng tuyến tính với số lượng phiên bản (t) độc lập với các kích thước cá thể và do đó bị ràng buộc vượt quá bất kỳ hàm đa thức nào của kích thước cá thể tối đa. Bởi vì điều này, thực sự bởi vì nó không thực hiện bất kỳ nén nào, máy nén của bạn không gây ra bất kỳ sự sụp đổ phân cấp nào.

Dường như cũng có một sự hiểu lầm về chức năng của máy nén AND phải làm gì. Nó không phải xuất ra một thể hiện duy trì tất cả các phép gán thỏa mãn cho tất cả các thể hiện đầu vào, cũng không cần phải giảm số lượng đáng kể từ các thể hiện đầu vào sang thể hiện đầu ra. Một triển khai tuân thủ có thể ở đầu ra cực đoan một thể hiện trống nếu tất cả các thể hiện đầu vào đều thỏa đáng và một mệnh đề trống khác.

Một máy nén AND hợp lý hơn có thể điều chỉnh các kỹ thuật nén dữ liệu tiêu chuẩn như sử dụng từ điển. Một bảng các biểu mẫu con không thỏa mãn có thể được tính toán trước và được sử dụng để tìm kiếm theo các trường hợp SAT đầu vào. Một trận đấu sẽ ngụ ý một phép gán biến bị cấm, khi được khởi tạo như một mệnh đề đã học có thể loại bỏ (loại bỏ) một số mệnh đề khác.

Một kỹ thuật khác liên quan đến việc tận dụng các kích cỡ khác nhau của các thể hiện đầu vào. Nếu các thể hiện đầu vào có kích thước khác nhau, thì các thể hiện lớn hơn có thể được tìm kiếm cho các biểu mẫu con tương đương với một trong các thể hiện nhỏ hơn. Một kết quả khớp như vậy ngụ ý sự tồn tại của một phép gán biến có thể tạo ra biểu mẫu con, và do đó, thể hiện lớn hơn là thỏa đáng nếu thể hiện nhỏ hơn là thỏa đáng. Nếu thể hiện nhỏ hơn không thỏa mãn, thì thể hiện lớn hơn vẫn có thể thỏa mãn nhưng điều đó không thành vấn đề vì đầu ra của máy nén vẫn tạo ra một công thức không thỏa mãn. Vì vậy, thể hiện đầu ra được tách rời một cách hiệu quả từ sự thỏa mãn của thể hiện lớn hơn và do đó, thể hiện lớn hơn không còn phải được thể hiện trong đầu ra nữa, loại bỏ một số lượng lớn các mệnh đề.

Có nhiều kỹ thuật khác. Định lý trong bài báo cho thấy rằng việc đạt được mức độ nén cao một cách hiệu quả là không thể xảy ra do sự sụp đổ một phần của hệ thống phân cấp đa thức.


Cảm ơn bạn, nhưng điều này làm tôi bối rối hơn nữa. Chỉnh sửa câu hỏi về cơ bản với điều này: Hãyt=2n,max|xi|=n2. Nhưn có xu hướng vô cùng t không phải là đa thức trong max|xi|. Hoạt động Any_ tùy thuộc vào tất cảxi là cấp số nhân, vì vậy trong trường hợp này xuất hiện với tôi giải pháp đa thức độc lập với t không thể tồn tại vì lý do đơn giản kích thước của đầu vào là theo cấp số nhân trong max|xi|.
elluser

Bạn đã trộn lẫn các ràng buộc. Máy nén phải chạy theo thời gian đa thức theo kích thước của đầu vào, nhưng kích thước của đầu ra của nó phải là đa thức với kích thước của thể hiện đầu vào đơn lớn nhất. Yêu cầu kích thước đầu ra không ảnh hưởng đến thời gian bạn được phép đọc và xử lý đầu vào.
Kyle Jones

Bạn có nghĩa là thời gian chạy có thể tùy ý (không phải đa thức), chỉ là đầu ra yđược đa thức?
elluser

Không, thời gian chạy phải đa thức theo kích thước của đầu vào. Khi đầu vào phát triển lớn hơn, thời gian chạy trường hợp xấu nhất cũng vậy, nhưng ở cùng một đa thức với kích thước của đầu vào.
Kyle Jones

Kích thước của đầu vào là tất cả các trường hợp SAT và là i=1t|xi|?
elluser

5

Chỉnh sửa lại 3:


F,T là một nhiệm vụ thỏa mãn cho ví dụ "(¬x0)x1".
T,F là một nhiệm vụ thỏa mãn cho ví dụ "x0¬x1".
Các trường hợp"(¬x0)x1"và"x0¬x1"đều thỏa đáng.
Ví dụ"(¬x0)x1"là thỏa đáng nếu ví dụ"x0¬x1"Là thỏa đáng.
F,Tkhông một nhiệm vụ đáp ứng cho các trường hợp "x0¬x1".
F,T là một nhiệm vụ thỏa mãn cho ví dụ "(¬x0)x1"nhưng không cho ví dụ"x0¬x1".
Do đó, việc chuyển đổi từ ví dụ"(¬x0)x1"ví dụ
"x0¬x1"không bảo toàn tất cả các bài tập thỏa mãn của thể hiện đầu vào,
nhưng là như vậy"(¬x0)x1"là iff thỏa đáng "x0¬x1"Là thỏa đáng.

Dưới đây là phiên bản không nhất thiết phải hiệu quả của thuật toán nén AND cho SAT:
Xác định xem tất cả các trường hợp SAT đầu vào có thỏa đáng hay không.Nếu tất cả đều như vậy,
thì hãy xuất ra trường hợp SAT duy nhất "x0", khác xuất ra trường hợp SAT đơn"x0¬x0".


1
Cảm ơn bạn, điều này đã giúp. Những cái này có nén được khôngt(càng lớn càng tốt) các trường hợp trên các biến khác nhau có cùng kích thước. Các trường hợp là 3-SAT ngẫu nhiên. Vì chúng nằm trên các biến khác nhau, tối thiểu hóa mạch không hoạt động. Người ta không thể nén mọi trường hợp SAT đơn lẻ, vì điều này sẽ giải quyết nó bằng cách gọi đủ để giảm thiểu.
elluser

Đó là những nén (mặc dù không nhất thiết phải hiệu quả); chỉ cần sử dụng thuật toán mà tôi đã đưa ra. Mối quan hệ duy nhất giữa giảm thiểu mạch vấn đề này mà tôi thấy là thực tế là, tùy thuộc vào việc có bắt buộc phải thực hiện ánh xạ từng đầu vào vào một nút hay không, SAT có thể được giảm thiểu một cách hiệu quả để giảm thiểu mạch.

"Vì điều này sẽ giải quyết" cái gì "bằng cách gọi đủ để giảm thiểu"?Người ta có thể nén mọi trường hợp SAT đơn lẻ (mặc dù không nhất thiết phải hiệu quả); chỉ cần thay thế "tất cả các trường hợp SAT đầu vào là thỏa đáng. Nếu tất cả chúng đều" trong câu trả lời của tôi bằng "trường hợp SAT đầu vào là thỏa đáng. Nếu có".

Tôi có nghĩa là giảm thiểu / nén hiệu quả . Chắc chắn giải quyết cho nén O (1).
elluser

Sự khác biệt của các biến là không liên quan. Tôi nghi ngờ rằng không có thuật toán không tầm thường nào cho nén AND của các phân phối như vậy và không có hậu quả dường như không thể biết (khác) về sự tồn tại của thuật toán nén AND hiệu quả cho các phân phối đó.

3

Điều cuối cùng làm tôi bối rối là giới hạn t và định nghĩa chính xác của đa thức.

Bài viết "Tính không khả thi của nén cá thể và các PCP ngắn gọn cho NP" đã giúp ích rất nhiều.

Đó là về nén OR, nhưng hoạt động.

Trong ký hiệu của bài báo gốc t=mmax|xi|=n.

Bài viết giải thích:

"n có thể có thể ít hơn nhiều m

(thuật toán) chạy trong đa thức thời gian trong mn

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.