Làm thế nào cứng là mô phỏng chính xác các thuật toán và một hoạt động liên quan đến các lớp phức tạp


17

Trêu chọc

Vì vấn đề là lâu dài nên đây là một trường hợp đặc biệt nắm bắt được bản chất của nó.

Vấn đề: Đặt A là thuật toán chi tiết cho 3-SAT. Là vấn đề mô phỏng hoàn toàn thuật toán A (trên mọi trường hợp của vấn đề). P-Space có khó không?

(Chính xác hơn, có lý do để tin rằng nhiệm vụ này là P-Space khó, có điều gì đó theo hướng này theo các phỏng đoán CC tiêu chuẩn hay không, và có hy vọng chứng minh rằng nhiệm vụ này là X-hard đối với một lớp X phức tạp nào đó được cho là nghiêm túc trên NP.)

Các câu hỏi liên quan : are-pspace-hoàn thành-vấn đề-vốn-ít-dễ điều khiển-hơn-np-hoàn thành-vấn đề ;

CẬP NHẬT EDITED : Có nhiều cách hiểu khác nhau cho "Hoàn toàn mô phỏng A". Và có thể có những câu trả lời thú vị khác nhau theo cách giải thích. (Ngoài ra Ryan Williams đã đề xuất một cách giải thích để mô phỏng thuật toán không xác định.) Đối với một cách nhất định để liên kết một vấn đề quyết định với nhiệm vụ tính toán "Mô phỏng hoàn toàn A", Joe Fitzsimons đã tìm thấy một thuật toán A mà vấn đề quyết định liên quan này vẫn còn trong NP . Nếu "hoàn toàn mô phỏng" đề cập đến việc có thể để sản xuất toàn bộ đăng ký của máy tính tại một bước cho sau đó cho thuật toán của Joe dường như là những gì là cần thiết. Đối với phiên bản này (tôi nghĩ, nhưng không chắc chắn) Câu trả lời của Ryan phác họa mộtP N P P N PiPNPPNPtranh luận về sự chậm trễ. Joe nhận xét rằng nếu bạn được yêu cầu cung cấp toàn bộ các thanh ghi (không còn là vấn đề quyết định nữa) thì không có gì đáng ngạc nhiên khi bạn cần phải tăng cường và các lớp phức tạp không giống nhau.

Dù sao, nếu chúng tôi yêu cầu xuất trạng thái của các thanh ghi ở bước quy định thì câu trả lời của Ruan và Joe gợi ý (nhưng một lần nữa, tôi không chắc về điều đó) rằng thực chất là . Chúng ta có thể xác định rằng bằng cách giải thích này, hoạt động đẩy lên một bước cao hơn trong hiearachy đa thức, và .N P + P N P P H + = P HiNP+PNPPH+=PH

Trong mọi trường hợp bởi những diễn giải này, câu trả lời cho câu hỏi trêu ghẹo của tôi là KHÔNG .

Tôi đã có một cách giải thích quyết liệt hơn cho "mô phỏng hoàn toàn thuật toán A" trong tâm trí. (Nhưng có lẽ cách giải thích của Joe và Ryan thú vị hơn.) Giải thích của tôi bằng "thuật toán mô phỏng hoàn toàn A" là bạn vượt ra khỏi trạng thái của các thanh ghi ở mỗi bước . Đặc biệt, nếu thuật toán không phải là đa thức, đầu ra của bạn cũng không phải là đa thức. Theo cách giải thích quyết liệt này, tôi tự hỏi liệu chúng ta có nên tin rằng với mọi thuật toán A, là P-SPACE cứng không, và chúng ta có thể chứng minh điều gì.C AiCA

Động lực:

Câu hỏi này được thúc đẩy bởi một bài giảng của Paul Goldberg ( slide , video , giấy ) mô tả một bài báo với Papadimitriou và Savani. Họ đã chỉ ra rằng P-space hoàn thành để tìm bất kỳ trạng thái cân bằng nào được tính toán bằng thuật toán Lemke-Howson. Vấn đề để tìm một số điểm cân bằng chỉ là hoàn thành PPAD. Khoảng cách này là khá tuyệt vời và kết quả tương tự đã được mô tả trong bài báo nổi tiếng của Papadimitriu: Sự phức tạp của lập luận chẵn lẻ và bằng chứng không hiệu quả khác về sự tồn tại (1991) . (Người ta biết rằng các vấn đề hoàn thành PPAD thậm chí không thể là NP-hard (trừ khi những điều khủng khiếp xảy ra nên điều này còn quá xa trong thế giới phức tạp so với P-space).

Câu hỏi là gì

Câu hỏi của tôi là về những khoảng trống tương tự cho các vấn đề phức tạp tính toán cũ hơn và cổ điển hơn. (Có lẽ điều này đã quen thuộc.)

Đưa ra một vấn đề tính toán, chúng ta có thể phân biệt giữa ba vấn đề

a) Giải bài toán

b) Đạt cùng một giải pháp như một thuật toán cụ thể A

c) Mô phỏng toàn bộ thuật toán A

Tất nhiên c) ít nhất là cứng bằng b) ít nhất là cứng như a). Các kết quả được đề cập ở trên cho thấy một khoảng cách giữa độ khó tính toán của các nhiệm vụ a) và b) cho vấn đề cân bằng điện toán. Chúng tôi muốn hiểu tình huống (và chủ yếu là khoảng cách giữa a) và c)) cho các vấn đề tính toán khác.

Câu hỏi:

Dạng cơ bản của câu hỏi với một ví dụ

Chúng tôi bắt đầu với một vấn đề tính toán, Bài toán X

Một ví dụ có thể là

Bài toán X: Giải một thể hiện SAT với n biến

chúng tôi cũng chỉ định

A: một algoritm thực hiện Bài toán X

và chúng tôi đặt ra một vấn đề mới

Bài toán Y: Mô phỏng chính xác thuật toán A

và chúng tôi quan tâm đến độ khó tính toán của Bài toán Y. Chúng tôi muốn hiểu loại vấn đề Y như vậy đối với tất cả các thuật toán A giải quyết vấn đề ban đầu X. Đặc biệt chúng tôi muốn biết vấn đề Y có thể dễ đến mức nào (hoặc khó đến mức nào được) nếu chúng ta được phép chọn thuật toán A theo ý muốn.

Hoạt động đề xuất trên các lớp phức tạp

Bắt đầu với một lớp phức tạp , được mô tả bởi một số nhiệm vụ tính toán. Với một thuật toán A đến thực hiện mỗi thể hiện của nhiệm vụ tính toán này, hãy xem xét một lớp phức tạp mới được mô tả bởi các nhiệm vụ tính toán của hoàn toàn mô phỏng . Sau đó, chúng ta có thể (hy vọng) định nghĩa một "lý tưởng" của các lớp phức tạpC A ACCAA

C+={CA: cho tất cả các thuật toán A}.

Nếu chúng ta để mô tả bất cứ điều gì máy tính kỹ thuật số có thể làm trong thời gian đa thức (vì vậy tôi không muốn hạn chế sự chú ý, ví dụ như các vấn đề quyết định) thì là lý tưởng được tự điều khiển.P + PPP+P

Cuối cùng, câu hỏi của tôi

Câu hỏi của tôi là:

1) Là định nghĩa có nghĩa (theo nghĩa rộng của nghĩa của từ). Là nó nổi tiếng hoặc giống như (hoặc tương tự) một số điều nổi tiếng. (Công thức của tôi là không chính thức và đặc biệt khi chúng tôi chuyển từ các vấn đề cụ thể như SAT sang một lớp phức tạp như NP, chúng tôi phải lo lắng về những điều khác nhau mà tôi đã bỏ qua.)

Hai câu hỏi tiếp theo cho rằng định nghĩa có thể có ý nghĩa hoặc được cứu vãn để có ý nghĩa.

2) Giả sử chúng ta trang bị cho mình tất cả các phỏng đoán tiêu chuẩn liên quan đến tính toán tính toán. Chúng ta có thể nói những gì được cho là dành cho một số lớp phức tạp quen thuộc không. (Ví dụ: C = N P , C = P-space, ..)? EDIT: Một số người chỉ ra rằng P S P Một C E + = P S P Một C E . Vì vậy,> chúng ta có thể hỏi thay vì ( P N P ) + là gì? là P H + = P H ?C+C=NPCPSPACE+=PSPACE(PNP)+PH+=PH

Chúng ta có thể đoán các lớp là gì để C + là lý tưởng được kéo dài bởi C không?CC+C

Vì vậy, câu hỏi nhiệm vụ tính toán mô phỏng thuật toán A cho 3-SAT dễ dàng như thế nào (khi chúng ta có thể chọn thuật toán để làm cho nó dễ dàng nhất có thể) là một trường hợp đặc biệt thú vị.

3) Có hy vọng thực sự chứng minh điều gì về hoạt động này không?

Tất nhiên, nếu bạn chứng minh rằng tất cả các lớp phức tạp trong là không gian P cứng, điều này sẽ cho thấy P = N P ngụ ý P = P S P A C E , mà (tôi nghĩ) sẽ là một kết quả rất lớn và rất bất ngờ . Nhưng nếu bạn thấy rằng tất cả các lớp phức tạp trong N P + rất khó somthing nói trong mức độ thứ ba của Hieararchy đa thức (ví dụ Δ P 3 ) điều này sẽ chỉ bao hàm những điều mà chúng ta đã biết, điều mà theo từ thực tế là P = N P khiến PH sụp đổ.NP+P=NPP=PSPACENP+Δ3PP=NP


3
Câu hỏi thú vị! Nhưng: "Tất nhiên a) ít nhất là cứng như b) ít nhất là cứng như c)." Không nên đặt hàng theo cách khác?
Bart Jansen

2
Có thể bao gồm một liên kết hoặc có thể mô tả ngắn gọn về ý nghĩa của nó để 'mô phỏng toàn bộ thuật toán A'. Giống như, sự khác biệt giữa 'mô phỏng' và 'chạy' trong trường hợp này là gì? Có thể mô phỏng một thuật toán nhanh hơn thời gian chạy của nó không?
Artem Kaznatcheev

1
Thưa ông, bằng cách mô phỏng một thuật toán trên một trường hợp cụ thể, ý tôi là mô tả toàn bộ quá trình tiến hóa của thuật toán. (Vì vậy, có thể nó giống như "chạy" thuật toán.) Bạn không thể mô phỏng thuật toán nhanh hơn thời gian chạy. Nó không phải là một khái niệm tiêu chuẩn (theo hiểu biết của tôi) vì vậy tôi không thể đưa ra các liên kết hoặc tài liệu tham khảo (nhưng hy vọng sẽ có được liên kết và tài liệu tham khảo.). Mô phỏng thuật toán khác với nhiệm vụ tính toán "đưa ra cùng một đầu ra như thuật toán A" có liên quan đến động lực và nhiệm vụ b) được mô tả trong câu hỏi.
Gil Kalai

2
Gil thân mến, tôi không biết tại sao chúng ta không thể mô phỏng thuật toán với các tài nguyên có cùng thứ tự như A sử dụng. Trừ khi một số tài nguyên bị hạn chế nhiều hơn, chúng ta chỉ có thể mô phỏng bất cứ điều gì A làm. Hãy để tôi xem liệu tôi hiểu được một phần động lực một cách chính xác: Chúng tôi có một vấn đề Q trong lớp C . Một là một thuật toán có thể bên ngoài C giải quyết Q . Mặc dù việc tìm kiếm một giải pháp cho Q có thể được thực hiện trong C , việc tìm kiếm một trong những giải pháp mà một phát hiện có thể có độ phức tạp bên ngoài CAAAQCACQQCAC. Tôi có hiểu đúng phần động lực của bài viết không?
Kaveh

2
Có, chúng tôi giả định rằng thuật toán A là xác định! Tôi không có một trực giác rõ ràng tại sao chúng ta nên mong đợi rằng việc mô phỏng mọi thuật toán xác định cho 3-SAT là không gian P khó khăn. Đây là câu hỏi! Tôi muốn xem các chuyên gia nghĩ gì.
Gil Kalai

Câu trả lời:


12

Vấn đề: Đặt A là thuật toán xác định cho 3-SAT. Có phải vấn đề mô phỏng hoàn toàn thuật toán A (trên mọi trường hợp của vấn đề) P-Space có khó không?

Tôi không hiểu tuyên bố của vấn đề này. Nhưng tôi nghĩ có một cách tự nhiên để chính thức hóa câu hỏi chung chung hơn của bạn có thể làm sáng tỏ một chút về nó. Có thể tôi hoàn toàn thiếu quan điểm của bạn, nhưng hy vọng bạn vẫn tìm thấy một cái gì đó thú vị để đọc ở đây.

1) Là định nghĩa có nghĩa (theo nghĩa rộng của nghĩa của từ). Là nó nổi tiếng hoặc giống như (hoặc tương tự) một số điều nổi tiếng. (Công thức của tôi là không chính thức và đặc biệt khi chúng tôi chuyển từ các vấn đề cụ thể như SAT sang một lớp phức tạp như NP, chúng tôi phải lo lắng về những điều khác nhau mà tôi đã bỏ qua.)

Một cách để hiểu ý nghĩa của nhiệm vụ mô phỏng chính xác thuật toán Y là cách sau. Chúng ta hãy sửa mô hình thành máy Turing một băng cho đơn giản; những gì tôi sẽ nói có thể áp dụng cho bất kỳ mô hình tính toán điển hình nào.

Với mỗi thuật toán và đầu vào x , chúng ta có thể xác định lịch sử tính toán của nó H Y ( x , i , j ) : Cho các số nguyên ij có phạm vi từ 0 đến thời gian chạy của Y , H Y ( x , i , j ) bằng nội dung của ô thứ j của băng Turing machine Y trên đầu vào x trong bước thời gian i . (Và nếu đầu băng đang đọc jYx HY(x,i,j)ij0YHY(x,i,j)jYxijTế bào trong bước thứ , bao gồm cả điều đó cùng với trạng thái của máy.) Tất nhiên, lịch sử tính toán xuất hiện mọi lúc trong lý thuyết phức tạp.i

Bây giờ, người ta có thể lập luận rằng bất kỳ thuật toán nào có thể quyết định ngôn ngữ

CY={(x,i,j,σ) | HY(x,i,j)=σ}

(hoặc mô phỏng các chức năng trên tất cả các đầu vào) được giải quyết nhiệm vụ chính xác thuật toán mô phỏng Y , bởi vì nó có khả năng in tất cả các phần nhỏ của tất cả các tính toán có thể có của thuật toán Y . Chắc chắn, được đưa ra một lời sấm cho C Y người ta có thể làm một mô phỏng từng bước của Y .HYYYCYY

2) Giả sử chúng ta trang bị cho mình tất cả các phỏng đoán tiêu chuẩn liên quan đến độ phức tạp tính toán. Chúng ta có thể nói những gì C + được cho là dành cho một số lớp phức tạp quen thuộc không. (Ví dụ: C = NP, C = P-space, ..)? Chúng ta có thể đoán các lớp phức tạp C là gì để C + là lý tưởng được kéo dài bởi C không?

Đây vẫn là một câu hỏi thú vị, theo đề xuất trên. Đối với các lớp thời gian xác định, không có gì thay đổi. chỉ là P : chúng ta có thể quyết định C Y trong polytime, cho mọi thuật toán polytime. Tương tự như vậy E X P + = E X P . Cũng P S P Một C E + vẫn là P S P Một C E . Đối với các lớp phức tạp thời gian không xác định, tình huống trở nên thú vị hơn. Trong trường hợp đó, thuật toán Y có thể có nhiều lịch sử tính toán, vì vậyP+PCYEXP+=EXPPSPACE+PSPACEY không còn được xác định rõ. Tuy nhiên, chúng tôi vẫn muốn inmột sốlịch sử tính toán, vì vậy "mô phỏng chính xác" của chúng tôi sẽ phải cách ly một lịch sử tính toán không xác định cụ thể và sau đó in các giá trị của nó. Đối vớithuật toán N P Y , người ta có thể nói rằng C YP N P : chúng ta có thể sử dụng thuật ngữ N P để tìm kiếm nhị phân cho lịch sử tính toán chấp nhận "đầu tiên" (theo thứ tự lex), sau đó khi chúng ta đã có được nó, hãy in các bit có liên quan. Đối với một N E X P thuật toán Y , người ta có thể nói C YHYNPYCYPNPNPNEXPY , vì lý do tương tự.CYEXPNP

Chúng ta có thể đặt trong một lớp nhỏ hơn không? Tôi không biết. Lưu ý rằng chúng ta không thể xác định lại đơn giảnNP+

{ ( x , i , j , σ ) | tồn tại một H Y sao cho H Y ( x , i , j ) = σ }CY=(x,i,j,σ) | HYHY(x,i,j)=σ

để thử đặt vào N P , vì chúng ta cần chuỗi lịch sử giống nhau cho tất cả các bộ tứ liên quan đến x , để "mô phỏng chính xác thuật toán Y ".CYNPxY

Dù sao, vấn đề không thể "in nhân chứng" cho tính toán mà không đi đến E X P N P không phát sinh trong một số tình huống, chẳng hạn như độ phức tạp của mạch. Nếu N E X P có các mạch kích thước đa thức, thì đó cũng là trường hợp C YP / p o l y cho mỗi 2 n k thời gian Y không xác định ?NEXPEXPNPNEXPCYP/poly2nkYImpagliazzo, Kabanets và Wigdersonđã trả lời câu hỏi này một cách khẳng định vào năm 2001. Bằng chứng của họ là vô cùng thú vị, gọi các công cụ từ khử hóa và chéo hóa (tại sao việc khử cộng đồng lại cần thiết cho kết quả như vậy?) và hóa ra đó là một định lý rất hữu ích để chứng minh giới hạn thấp hơn cho Hàm P.NEXP

Có hy vọng để thực sự chứng minh một cái gì đó về hoạt động này?

Có lẽ ... điều đó phụ thuộc vào việc bạn có hài lòng với việc chính thức hóa câu hỏi trên không. Đối với một xác định 3-SAT thuật toán , tôi nghĩ rằng trên mô phỏng chính xác của Y vấn đề sẽ là P N P ( 1 ) -Hard, nơi P N P ( 1 ) là đa thức thời gian với một truy vấn để N P . (Cú pháp khó chịu của StackExchange yêu cầu tôi viết (1) thay vì thay thế. Trước đó tôi đã nói C Y phải là P N P -hard, nhưng tôi không chắc về các chi tiết: bạn có thể xem cách khái quát hóa bên dưới.)YYPNP(1)PNP(1)NPCYPNP

Chúng tôi cung cấp một polytime giảm nhiều-một từ mỗi để C Y . Cho một L như vậy , hãy để M là một máy nhận ra L thực hiện một truy vấn N P duy nhất . WLOG, truy vấn đó là một công thức SAT. Ngoài ra, WLOG, truy vấn SAT có thể được "hoãn lại" cho đến bước cuối cùng của phép tính, theo nghĩa sau: có thuật toán thời gian đa thức A ( x ) in công thức F và bit b , sao cho tất cả x ,LPNP(1)CYLMLNPA(x)Fbx

chấp nhận iff A ( x ) = ( F , b ) sao cho ( S A T ( F ) XOR b ) = 1.M(x)A(x)=(F,b)SAT(F)b

( có thể từ chối iff F là thỏa đáng hoặc có thể chấp nhận; bit b nắm bắt được điều này.)MFb

Để đơn giản, giả sử khi kết thúc tính toán, nó di chuyển đầu băng của nó sang ô 1, viết "chấp nhận" hoặc "từ chối" trong ô đó và lặp lại mãi mãi. Sau đó, yêu cầu nếu ( F , T , 1 , một c c đ p t ) C Y cho đủ lớn T sẽ cho chúng tôi biết nếu F được chấp nhận. (Nói chung, chúng tôi chỉ cần hiệu quả để tính toán trường hợp y của C Y sẽ cho chúng tôi biết.) Lưu ý điều này đã cho thấy C Y là cả N P -hard vàY(F,T,1,accept)CYTFyCYCYNP -hard; sau này là đúng bởi vì ( F , T , 1 , r e j e c t ) C Y khi và chỉ khi Fkhôngsatisfiable.coNP(F,T,1,reject)CYF

Mức giảm cuối cùng từ xuống C Y là: đã cho x , chạy A ( x ) nhận ( F , b ) . Nếu b = 0 thì đầu ra ( F , T , 1 , a c c e p t ) , khác nếu đầu ra b = 1 ( F , T , 1 , r e j e c tLCYxA(x)(F,b)b=0(F,T,1,accept)b=1 .(F,T,1,reject)

Đối với mỗi chúng tôi đang sản xuất (trong thời gian đa thức) một y như rằng M ( x ) chấp nhận khi và chỉ khi y C Y .xyM(x)yCY

(Cảm ơn Joe vì đã yêu cầu tôi rõ ràng hơn về phần này.)

Nhưng tôi không thấy (ví dụ) làm thế nào để có được trễ. Để giảm Σ 2 -SAT cho vấn đề, có vẻ như bạn cần phải viết một ví dụ SAT 3-CNF x mô phỏng thuật toán xác định Y của bạn trong đó (trong đó Y đang giải Tautology trên các bài toán con khác nhau). Nhưng vì Y không bị ràng buộc về thời gian, 3-CNF x có thể rất lớn, do đó bạn không nhất thiết phải giảm thời gian đa thức. Trừ khi tôi đang thiếu một cái gì đó.Σ2PΣ2xYYYx


Ryan, cảm ơn rất nhiều vì câu trả lời của bạn. Tôi rất thú vị khi mô phỏng thuật toán xác định Y cho 3-SAT khó đến mức nào. Và câu hỏi là nếu không có vấn đề gì thì đây là P-space hard. (Sự hiểu biết của bạn về mô phỏng các thuật toán không xác định cũng rất thú vị và có lẽ là câu hỏi chính xác nhưng tôi chỉ xem xét mô phỏng một thuật toán xác định.)
Gil Kalai

Vâng, tôi nghĩ rằng đoạn cuối của câu trả lời của tôi sẽ giải quyết phần này.
Ryan Williams

Tôi hiểu rồi. Có thực sự nó làm. Tôi cũng nghi ngờ nó có thể là -hard rất thú vị (nhưng tôi không chắc là tôi có hiểu bằng chứng của bạn không). Bạn có mong đợi rằng P N P là câu trả lời đúng không? Tôi cũng nghi ngờ rằng việc chứng minh một cái gì đó ngoài P N P sẽ khó khăn. Quay trở lại từ những gì chúng ta có thể chứng minh cho những gì chúng ta nên tin, Ryan, bạn nghĩ câu trả lời là gì? PNPPNPPNP
Gil Kalai

Vâng, sự phức tạp của sẽ khác nhau tùy thuộc vào các thuật toán Y . Một số C Y có thể rất khó khăn và những người khác có thể dễ dàng hơn nhiều. Nhưng tôi nghĩ rằng với mọi thuật toán Y , có lẽ bạn sẽ không làm tốt hơn nhiều so với việc nói " C YP N P -hard". (Tôi không nghĩ rằng với mỗi Y bạn có thể nhận được Σ 2 P , vì lý do trực quan tôi đã đưa ra ở trên.)CYYCYYCYPNPYΣ2P
Ryan Williams

Ryan, bạn nói rằng "có một giảm đa thức từ ngôn ngữ hoàn chỉnh ... để C Y ", nhưng giảm của bạn dường như sử dụng nhiều trường hợp của C Y . Chắc chắn đây chương trình thay vì rằng có một đa thức giảm từ P N P vấn đề -complete để P C Y ? PNPCYCYPNPPCY
Joe Fitzsimons

7

Ban đầu tôi đã đăng một câu trả lời không chính xác, vì vậy hy vọng đây là một cải tiến.

Tôi sẽ bắt đầu bằng cách xem xét ví dụ 3SAT. Trong nhận xét của bạn về câu trả lời của Ryan, bạn nói

Tôi rất thú vị khi mô phỏng thuật toán xác định Y cho 3-SAT khó đến mức nào. Và câu hỏi là nếu không có vấn đề gì thì đây là P-space hard.

Câu trả lời cho điều này là nó không cứng cho ít nhất một số Y, giả sử rằng NP PSPACE, nhưng có tồn tại các thuật toán khác mà nó khó PSPACE. Hiển thị cái sau là tầm thường: Chúng ta chỉ cần xây dựng một thuật toán diễn giải chuỗi bit đại diện cho công thức 3SAT thay vì là một vấn đề TQBF, sau đó nó giải quyết trước khi giải quyết thể hiện 3SAT. Rõ ràng không có gì đặc biệt về TQBF trong trường hợp này, vì vậy thuật toán có thể được thực hiện tùy ý khó mô phỏng. Vì vậy, chúng ta chỉ nên quan tâm đến giới hạn thấp hơn trong việc mô phỏng bất kỳ thuật toán nào cho một vấn đề nhất định, thay vì một thuật toán cụ thể.

Với ý nghĩ đó, chúng tôi xây dựng thuật toán sau để giải quyết 3SAT:

Hãy đăng ký của bit (ban đầu tất cả các thiết lập để 0) để chứa một giải pháp thử nghiệm, cùng với một thanh ghi chứa các ví dụ 3SAT, một thanh ghi truy cập kích thước log 2 ( c + 1 ) ban đầu thiết lập để 1 và và hai lá cờ bit (gọi đây là cờ fail và cờ chấp nhận). Ở đây c là số mệnh đề. Thuật toán sau đó tiến hành như sau:nlog2(c+1)c

  • Nếu giá trị của bộ đếm mệnh đề nhỏ hơn hoặc bằng c và giải pháp dùng thử không phải là 111 ...... 1 , hãy kiểm tra xem mệnh đề k có thỏa mãn hay không. Nếu không đặt bit thất bại. Tăng số lượt truy cập.kc111......1k
  • Nếu giá trị của bộ đếm mệnh đề nhỏ hơn hoặc bằng c và giải pháp dùng thử là 111 ...... 1 , hãy kiểm tra xem mệnh đề k có thỏa mãn hay không. Nếu không, đặt cờ thất bại. Tăng số lượt truy cập.kc111......1k
  • Nếu vượt quá c và giải pháp dùng thử không phải là 111 ...... 1 , hãy kiểm tra xem cờ lỗi có được đặt không. Nếu vậy, sau đó tăng giải pháp dùng thử, đặt lại bộ đếm k thành 1 và bỏ đặt cờ thất bại. Nếu cờ không được đặt, đặt cờ chấp nhận, đặt bộ đếm mệnh đề k thành 0, đặt giải pháp dùng thử thành 0 và tạm dừng.kc111......1kk
  • Nếu vượt quá c và giải pháp dùng thử là 111 ...... 1 , hãy kiểm tra xem cờ lỗi có được đặt không. Nếu cờ không được đặt, đặt cờ chấp nhận. Đặt bộ đếm mệnh đề k về 0, đặt giải pháp dùng thử về 0 và tạm dừng.kc111......1k

Khi thuật toán tạm dừng, trạng thái của cờ chấp nhận cho bạn biết liệu công thức 3SAT có thể được thỏa mãn hay không.

i

iktik

Tương tự, nếu bit chấp nhận đã được đặt, trạng thái của các thanh ghi có thể được tính toán một cách hiệu quả, vì mọi thứ đều bằng 0 ngoại trừ bit chấp nhận, được đặt.

t

i

jix

  1. Fσ
  2. σFSATF
  3. σFUNSAT

FSATFUNSATCY=NPcoNP

i


1
Bạn có thể sử dụng cùng một kỹ thuật để chỉ ra rằng b) Tiếp cận cùng một giải pháp như thuật toán A đã khó PSPACE không? Có thuật toán chọn giữa một trong hai giải pháp có thể tùy thuộc vào giải pháp của một vấn đề cứng PSPACE được mã hóa vào đầu vào.
Peter Shor

1
@Peter: Chắc chắn, bạn có thể làm cho nó khó tùy ý, nhưng tôi nghĩ rằng câu hỏi thú vị là giới hạn trên được tối thiểu hóa trên A, biến chúng ta thành NP.
Joe Fitzsimons

3

Suy nghĩ rất thú vị! Đây là một bình luận mở rộng quá dài để đăng như vậy:

Về định nghĩa trong (1) như vậy , đó là:

CCAAC+={CA:A}

C+MML(M)=?L(M)

MMMMMt(n)MO(t(n))M

NPPSPACENP

PSPACEPPADPSPACE


Δ3P

Gil, xem điều này có nói lên câu hỏi của bạn không: Khắc phục một số thuật toán (tùy ý) A cho 3-SAT. Xem xét một thuật toán mới B. Sau đó, chúng tôi muốn tuyên bố: B mô phỏng A, theo nghĩa của (b) của bạn - tức là B đạt được các giải pháp tương tự như A trên tất cả các đầu vào được xác định rõ. Vì chúng ta có thể xem các thuật toán như các máy Turing, chúng ta có thể xem A chấp nhận 3-SAT (theo giả định). Để chứng minh cho tuyên bố này, tôi thấy rằng sau đó chúng ta cần phải quyết định câu hỏi "B (được xem như là một TM) có chấp nhận 3-SAT không?", Điều này dẫn đến các vấn đề không thể giải quyết được.
Daniel Apon

C+

1
Daniel thân mến, bạn đã viết "Sau đó, chúng tôi muốn khẳng định: B mô phỏng A, theo nghĩa của (b) của bạn - tức là B đạt được các giải pháp tương tự như A trên tất cả các đầu vào được xác định rõ." Đây không phải là ý của tôi bởi "B mô phỏng A". Đối với tôi B mô phỏng A có nghĩa là nó mô tả chính xác toàn bộ "hoạt động" của thuật toán A không chỉ đạt được cùng một "giải pháp" (hoặc đầu ra).
Gil Kalai

1
Về bình luận thứ hai của bạn. Dường như chúng ta có thể tìm thấy một hạn chế hợp lý đối với các thuật toán mà chúng ta xem xét hoặc hình thành câu hỏi hơi khác một chút: Ví dụ: hãy xem xét câu lệnh "Đối với mọi thuật toán A để giải 3-SAT, P-space khó mô phỏng A." Tôi không thấy vấn đề tạm dừng leo vào (nhiều hơn trong các câu hỏi khác về độ phức tạp tính toán).
Gil Kalai
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.