Chứng minh P ≠ NP khó hơn chứng minh P = NP?


20

Hãy xem xét hai khả năng P vs NP vấn đề: P = NP và P NP.

Đặt Q là một trong những bài toán NP-hard đã biết. Để chứng minh P = NP, chúng ta cần thiết kế một thuật toán thời gian đa thức A cho Q và chứng minh rằng A giải Q chính xác.

Để chứng minh NP P , chúng ta cần chỉ ra rằng không có thuật toán thời gian đa thức nào giải được Q. Nói cách khác, chúng ta phải loại trừ tất cả các thuật toán thời gian đa thức.

Tôi đã nghe mọi người nói điều này làm cho nhiệm vụ thứ hai khó khăn hơn (giả sử rằng nó thực sự đúng).

Có lý do nào để nghĩ rằng việc chứng minh P = NP (giả sử rằng P = NP) sẽ dễ hơn chứng minh NP P (giả sử rằng P NP)?


30
Câu hỏi này không được đặt ra. Vì chỉ một trong những tuyên bố có thể đúng, một là không thể chứng minh. Cái khác thể chứng minh được, và nếu vậy thì sẽ dễ chứng minh hơn cái giả. Ergo, tôi không biết bạn đang tìm kiếm loại câu trả lời nào. Cộng đồng bình chọn, xin vui lòng! Điều này có thể được trả lời ở tất cả?
Raphael

10
@Raphael Tôi không đồng ý. Bạn có thể giải thích câu hỏi của OP là "Nếu P = NP là đúng, việc chứng minh P ≠ NP có dễ hơn không nếu chứng minh P ≠ NP là đúng?" Tôi không nghĩ OP nghiêm túc dự định cho nó được hiểu là một gợi ý rằng cả hai phải đúng.
Anathema

3
FWIW, dường như với tôi rằng a) @ Giải thích câu hỏi của TheAnathema là đúng và b) đó là một câu hỏi có ý nghĩa. Nói cách khác: Nếu P = NP và một bằng chứng được tìm thấy, bằng chứng đó có thể sẽ ở dạng thuật toán đa thức thời gian cho một vấn đề hoàn thành NP. Mặt khác, nếu chúng ta bắt đầu với giả định rằng P ≠ NP, chúng ta có thể sử dụng loại kỹ thuật nào để tìm bằng chứng, và bằng chứng nào có thể có bằng chứng như vậy?
JohannesD


Bình luận không dành cho thảo luận mở rộng; cuộc trò chuyện này đã được chuyển sang trò chuyện .
Gilles 'SO- ngừng trở nên xấu xa'

Câu trả lời:


25

Như Raphael giải thích, câu hỏi này không được đặt ra, vì nhiều nhất một trong số P = NP và P ≠ NP hoàn toàn có thể chứng minh được. Tuy nhiên, một câu hỏi tương tự xuất hiện trong khoa học máy tính lý thuyết trong một số chiêu bài, trong đó dễ thấy nhất là trong lĩnh vực thuật toán gần đúng .

Với một vấn đề tối ưu hóa NP-hard (giả sử, tối đa hóa), chúng ta có thể hỏi chúng ta có thể ước chừng nó tốt đến mức nào. Chứng minh giới hạn trên của xấp xỉ có thể gần giống với P = NP, trong khi chứng minh giới hạn dưới của xấp xỉ có thể gần giống với P ≠ NP. Cái trước dễ hơn cái sau. Thật vậy, để chứng minh một giới hạn trên, tất cả mọi người phải làm là đưa ra một thuật toán gần đúng và phân tích nó. Ngược lại, tất cả các giới hạn dưới được biết là có điều kiện: chúng chỉ hợp lệ nếu P ≠ NP (thực sự, nếu P = NP thì mọi vấn đề tối ưu hóa NP-hard sẽ trở nên có thể giải quyết được). Để chứng minh các giới hạn dưới này, chúng tôi cho thấy rằng nếu chúng ta có thể tính gần đúng vấn đề quá tốt, thì chúng ta sẽ có được thuật toán thời gian đa thức cho một số bài toán NP-hard. Thông thường điều này được thực hiện thông qua các máy móc kỹ thuật phức tạp của định lý PCP. Lĩnh vực này, được gọi là độ cứng của xấp xỉ , chỉ có thể được tiếp cận là các chuyên gia và là kỹ thuật khó khăn hơn so với hầu hết các thuật toán xấp xỉ. Vì vậy, trong trường hợp này ít nhất, P = NP thực sự dễ hơn P ≠ NP.


14
Bạn có thể giải thích câu hỏi của OP là "Nếu P = NP là đúng, việc chứng minh P ≠ NP có dễ hơn không nếu chứng minh P ≠ NP là đúng?" Tôi không nghĩ OP nghiêm túc dự định cho nó được hiểu là cả hai đều đúng.
Anathema

6
@TheAnathema Tôi đoán người ta phải giải thích câu hỏi theo cách đó. Nhưng nó vẫn còn khá xấu vì một trong những lựa chọn nhất thiết là phản tác dụng. Làm thế nào bạn có thể so sánh sự phản tác dụng đó với khó khăn trong việc chứng minh điều gì đó là sự thật?
David Richerby

@David, yêu cầu về khó khăn trong việc chứng minh P NP so với P = NP là điều tôi có từ các chuyên gia một số lần. Hỏi nếu đó là một yêu cầu hợp lý là một câu hỏi hợp lệ. Đánh giá độ khó của các tình huống phản tác dụng (khi chúng không được biết là như vậy) là thực tế phổ biến. Lấy ví dụ như ai đó hỏi về khó khăn trong việc chứng minh P NP. Nếu P = NP thì nó phản tác dụng. = =
Kaveh

9

Chúng tôi không loại trừ khả năng một bằng chứng đơn giản rằng P = NP. Nếu ai đó ngày mai đưa ra một thuật toán giải quyết vấn đề NP-Complete trong thời gian P, thế giới sẽ thay đổi.

Mặt khác, chúng tôi đã loại trừ khả năng một bằng chứng đơn giản rằng P! = NP. Các kỹ thuật chứng minh điển hình của chúng tôi để chỉ ra rằng hai lớp phức tạp khác nhau đã được chính thức chứng minh là không đủ. Ba kỹ thuật như vậy được gọi là "tính toán", "bằng chứng tự nhiên" và loại bằng chứng được gọi là "tương đối hóa" (những kỹ thuật không quan tâm đến việc sử dụng phép lạ nào). Có thể chứng minh rằng bất kỳ kỹ thuật chứng minh nào thuộc bất kỳ 3 loại nào trong số đó đều không thể chứng minh P! = NP.

Trên thực tế, có bằng chứng mạnh mẽ chứng minh P! = NP yêu cầu các loại bằng chứng mới (các kỹ thuật mới với các thuộc tính khác nhau), không chỉ áp dụng mới cho các kỹ thuật chứng minh nổi tiếng.


Bây giờ, nó có thể chỉ ra rằng P = NP, trong khi không có thuật toán xác minh đơn giản nào trong P để giải quyết vấn đề hoàn thành NP và các kỹ thuật chứng minh mới được yêu cầu để chứng minh P = NP. (Nếu P = NP, chúng ta đã biết các thuật toán về mặt kỹ thuật trong P giải quyết các vấn đề NP-hard, thật thú vị. Chúng không thực tế để chạy, vì hệ số không đổi của chúng là lớn.)

Về cơ bản, chúng ta biết rất nhiều về những gì chúng ta không thể sử dụng để chứng minh P! = NP, trong khi chúng ta dường như biết rất ít về những gì chúng ta không thể sử dụng để chứng minh P = NP.


Tất cả các rào cản đối với bằng chứng đơn giản của áp dụng đối với chứng minh của P = N P với lực lượng như nhau. Nếu bạn có một thuật toán, thì bằng chứng rằng P = NPNPP= =NP sẽ là bằng chứng cho thấy thuật toán đó là (i) đúng và (ii) thời gian đa thức, và bằng chứng đó vẫn sẽ phải tranh luận về sự thật về tính không xác định của thuật toán đang sử dụng cho mô phỏng xác định hiệu quả của nó không đúng với một nhà tiên tri (đại số) và cách nó đánh bại rào cản bằng chứng tự nhiên. P= =NP
Liêuwe Vinkhuijzen

8

Vâng, về cơ bản bạn có ý tưởng. Chúng tôi thường nghĩ rằng P! = NP nhưng không biết làm thế nào chúng tôi thậm chí sẽ chứng minh những điều này không bằng nhau.

Ngược lại, nếu P = NP, bạn nghĩ rằng chúng ta đã tìm thấy một thuật toán để giải quyết một trong hàng tá các vấn đề hoàn thành NP ngay bây giờ.

Đây là những tranh luận rất sóng nhưng trong một vài câu họ mô tả văn hóa giữa các nhà khoa học máy tính.

Việc chứng minh P! = NP có "khó" hơn hay không tất nhiên phụ thuộc vào điều đó là đúng mặc dù (chặn kết quả siêu toán học?), Và tất nhiên, điều đó, tất nhiên, chúng tôi không biết.


5

Có một số chuyên gia tin rằng việc chứng minh P NP khó hơn chứng minh P = NP theo nghĩa thời gian mà họ nghĩ sẽ cần để giải quyết câu hỏi P so với NP. Nhưng đó chủ yếu là một số trực giác dựa trên cảm giác rằng việc thiết kế các thuật toán cho các vấn đề dễ dàng hơn so với việc chứng minh rằng không có thuật toán (hiệu quả). Nói chung, chúng tôi đã không thành công trong việc chứng minh giới hạn thấp hơn cho các vấn đề. Chúng ta thậm chí không thể loại trừ một thuật toán thời gian tuyến tính cho SAT. Chúng tôi không thể loại trừ rằng không có thuật toán không gian nhật ký cho SAT. Chúng tôi thậm chí không thể chứng minh rằng không có đa thức kích thước mạch Boolean chiều sâu liên tục với , , ¬ , vଠcổng không thể giải SAT (theo thuật ngữ của giáo dân, có thể có một thuật toán song song thời gian không đổi với số lượng bộ xử lý đa thức giải quyết SAT và mỗi quy trình chỉ tính toán một trong các cổng này). Các giới hạn thấp nhất tốt nhất mà chúng ta có cho các máy Turing giải SAT thậm chí không thể chỉ ra rằng không có thuật toán nào có thời gian chạy nhân với không gian mà nó sử dụng là n 1.9 . Tôi có thể tiếp tục khá nhiều về trạng thái khá lúng túng khi chứng minh giới hạn dưới (nhưng hãy nhớ rằng chúng tôi cũng có kết quả rào cản giải thích tại sao rất khó để chứng minh giới hạn dưới). Một số chuyên gia nghĩ rằng chương trình GCT của Ketan Mulmuley có khả năng giải quyết P nhất so với NP và chính Mulmuley đã lặp lại nói rằng ông tin rằng có thể sẽ mất hơn một trăm năm để đến đó.mod6n1.9

Tuy nhiên, đã có một số công việc gần đây của Ryan Williams và những người khác cho thấy rằng có những liên kết nội tại giữa việc chứng minh giới hạn thấp hơn và tìm kiếm thuật toán. Ví dụ, ông đã chỉ ra rằng một thuật toán tốt hơn một chút so với thuật toán vũ lực cho một vấn đề SAT bị hạn chế cụ thể ngụ ý giới hạn mạch thấp hơn và sau đó ông đã thiết kế một thuật toán như vậy. Vì vậy, tôi nghĩ rằng mọi người ít bi quan hơn và dường như không phát triển thuật toán và chứng minh các giới hạn thấp hơn tách biệt như mọi người thường nghĩ.

πφπφvà thuật toán trả về có hoặc không. Bạn có thể nghĩ về bất kỳ kiểm tra bằng chứng theo cách này. Bạn cũng có thể nghĩ về bằng chứng trong một hệ thống toán học như ZFC như vậy. Bản thân quá trình kiểm tra có thể được thực hiện trong thời gian đa thức theo kích thước của bằng chứng vì đây là một nhiệm vụ cú pháp.

φφφ265536theo nghĩa là bạn có thể xác định các dòng trước từ dòng hiện tại trong bằng chứng và quy tắc. Một ngoại lệ quan trọng cho điều này là quy tắc cắt. Điều này rất quan trọng vì mặc dù chúng tôi không cần quy tắc cắt để chứng minh các tuyên bố, nó có thể làm giảm đáng kể kích thước của bằng chứng ngắn nhất. Tuy nhiên quy tắc cắt không mang tính quyết định: có một công thức cắt mà chúng ta phải đoán. Bạn có thể nghĩ về quy tắc cắt như chứng minh bổ đề và sử dụng chúng. Công thức cắt giống như một bổ đề. Nhưng bổ đề gì chúng ta nên chứng minh rằng sẽ giúp chúng ta? Đó là phần khó khăn. Thường thì một kết quả được chứng minh trong toán học bằng cách tìm ra một bổ đề tốt. Ngoài ra khi bạn sử dụng các kết quả đã được chứng minh trước đó, về cơ bản bạn đang sử dụng quy tắc cắt. Một thành phần quan trọng khác trong việc chứng minh các tuyên bố là định nghĩa. Thông thường chúng ta định nghĩa một khái niệm mới, sau đó chứng minh các tuyên bố về nó, và cuối cùng áp dụng nó trong trường hợp cụ thể của chúng tôi. Sử dụng các định nghĩa làm giảm kích thước của các công thức (thử mở rộng một số công thức toán học sang ngôn ngữ lý thuyết tập hợp thuần túy bằng cách mở rộng các định nghĩa để có ý tưởng về các định nghĩa quan trọng như thế nào). Một lần nữa chúng ta nên sử dụng định nghĩa mới nào? Chúng tôi không biết. Điều này mang lại cho tôi ý nghĩa thứ ba của một tuyên bố là khó để chứng minh. Một tuyên bố có thể khó chứng minh vì bạn cần các tiên đề mạnh. Lấy ví dụ Một tuyên bố có thể khó chứng minh vì bạn cần các tiên đề mạnh. Lấy ví dụ Một tuyên bố có thể khó chứng minh vì bạn cần các tiên đề mạnh. Lấy ví dụCH . Nó không thể được chứng minh trong ZFC và cũng không thể bác bỏ trong ZFC. Đây là một trường hợp cực đoan nhưng điều đó xảy ra thường xuyên hơn mà bạn nghĩ. Ví dụ, chúng ta cần các tiên đề lớn (để có thể làm việc trong vũ trụ Grothendieck ) để chứng minh FLT hoặc chúng ta có thể chứng minh điều đó trong một lý thuyết yếu hơn nhiều như PA không? Đây là một khái niệm khác liên quan đến khó khăn trong việc chứng minh tuyên bố.


Khi bạn nói về việc xác định câu hỏi "tôn giáo hơn", tôi cho rằng bạn có nghĩa là "chặt chẽ hơn"? :-)
David Richerby

2
@David, vâng, tự động sửa đôi khi làm điều đó. :)
Kaveh

4

Tôi nghĩ rằng câu hỏi có thể được giảm xuống: dễ dàng hơn để chứng minh rằng một cái gì đó tồn tại hoặc để chứng minh rằng một cái gì đó không tồn tại.

Lập luận ủng hộ việc chứng minh rằng một cái gì đó tồn tại là dễ dàng xây dựng những thứ có thể đáp ứng các yêu cầu và cũng dễ dàng kiểm tra xem chúng có thực sự thỏa mãn chúng hay không.

Trong một số trường hợp, điều này là đúng: nếu bạn muốn tìm gốc của đa thức, thật dễ dàng để xây dựng các số và thật dễ dàng để kiểm tra xem chúng có phải là gốc hay không.

Vấn đề, tất nhiên, là bạn phải may mắn. Bạn có thể giảm không gian tìm kiếm, ví dụ: bằng cách chứng minh rằng nó phải là bội số của 5 hoặc từ 1 đến 10; nhưng, trừ khi bạn giới hạn nó ở một tập hợp số hữu hạn (trong trường hợp bạn không thực sự sử dụng phương pháp "đoán và xác thực"), bạn không có phương pháp để giải quyết vấn đề: bạn chỉ có một phương pháp, giả sử bạn cực kỳ may mắn, có thể tạo ra một giải pháp.

Nhưng nếu bạn muốn điều đó, thật dễ dàng để chứng minh rằng một cái gì đó không tồn tại! Tạo văn bản có thể là giải pháp có thể và kiểm tra nếu chúng thực sự là.

Do đó, có một phương pháp có thể mang lại giải pháp bằng may mắn thuần túy không có nghĩa là việc chứng minh rằng một cái gì đó tồn tại là dễ dàng hơn.

Bây giờ, nói chung có dễ dàng hơn để chứng minh rằng một cái gì đó tồn tại với một số phương pháp khác? Nó phụ thuộc vào vấn đề thực tế bởi vì nếu không chứng minh rằng một cái gì đó không tồn tại sẽ được giảm xuống để chứng minh rằng một bằng chứng rằng nó không tồn tại. Và tôi e rằng chúng ta không thể đo lường được rằng vì chưa bao giờ có thứ gì đó được chứng minh là tồn tại và không tồn tại nên chúng ta có thể (cố gắng) đo lường độ khó của bằng chứng.


1
Nếu "cái gì đó" tồn tại, việc chứng minh nó sẽ dễ dàng hơn (một cách tầm thường, bạn không thể chứng minh nó không tồn tại; điều đó không có nghĩa là nó không khó tìm thấy bằng chứng nói trên). Cùng lý luận theo cách khác. Như ý kiến ​​nói, bản thân câu hỏi không có ý nghĩa.
vonbrand

@vonbrand Tôi không nói for any X: is it easier to prove that X exists or to prove that X does not exist, tôi đang nói rằng for any X,Y: is it easier to prove that X exists or to prove that Y does not exist.tức là nếu E tập hợp các bằng chứng chứng minh các câu có dạng 'X tồn tại' và NE là tập hợp các bằng chứng chứng minh các câu có dạng 'Y không tồn tại' và d ( P) độ khó của chứng minh, có đúng là d (X) <d (Y) trong đó X ở E và Y ở NE.
Thanos Tintinidis

d(X)XXX

@vonbrand có; hơn nữa, tôi cho rằng bạn không thể sử dụng phương pháp của OP (tiếp tục tạo ra các giải pháp tiềm năng cho đến khi bạn tìm thấy) như một lý lẽ cho thấy việc chứng minh sự tồn tại dễ hơn là chứng minh sự không tồn tại vì bạn có thể biến đổi câu lệnh S1 không tồn tại đến một tuyên bố S2 về sự tồn tại của bằng chứng của tuyên bố S1. Mặc dù tôi bắt đầu nghi ngờ về giá trị của điều này
Thanos Tintinidis


-2

Tôi tin rằng không thể chứng minh P <> NP, vì bạn sẽ phải loại trừ tất cả các thuật toán có thể chứng minh P = NP. Có thể có một số lượng vô hạn trong số này có thể. Không có cách nào để từ chối vô hạn, do đó không thể. Mặt khác, tất cả chỉ cần một thuật toán để chứng minh P = NP, nếu nó là như vậy. Do đó, P = NP mà ai đó sẽ chứng minh, hoặc chúng tôi sẽ không bao giờ biết.


Chào mừng bạn đến với Khoa học máy tính ! Bạn tin hay bạn có thể chứng minh điều đó là không thể chứng minh? Tôi nghĩ rằng câu trả lời của Yakk làm sáng tỏ chủ đề này.
Ác

2
"Không có cách nào để từ chối vô hạn" Mọi người loại trừ vô số khả năng mọi lúc trong toán học; chúng ta không nhất thiết phải kiểm tra từng người một để biết rằng không có việc gì. "Đối số" của bạn sẽ ngụ ý rằng chúng ta không bao giờ có thể tách rời các lớp phức tạp, điều này là vô nghĩa.
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.