Giải thích vấn đề P = NP đến 10 tuổi


54

Đây là câu hỏi đầu tiên của tôi trên trang web này. Tôi đang tham gia một khóa học thạc sĩ về lý thuyết tính toán. Làm thế nào bạn giải thích vấn đề P = NP cho một đứa trẻ 10 tuổi và tại sao nó lại có phần thưởng tiền tệ như vậy?

Bạn mất?

Tôi sẽ cập nhật câu hỏi khi đầu tôi hiểu rõ về nó.


11
Quan điểm của tôi là đóng cái này vì không phải là cấp độ nghiên cứu khoa học máy tính.
Dave Clarke

11
@Dave: Nó nên được trả lời bởi những người nghiên cứu, vì vậy có lẽ nó là đủ để hỏi nó đến nơi mà những người nghiên cứu đi?
Jeremy

11
Tôi nghĩ rằng điều này là hợp lý. Có một bài báo nổi tiếng tên là "Cách giải thích các giao thức không kiến ​​thức cho trẻ em của bạn", mà tôi nghĩ sẽ được coi là cấp độ nghiên cứu. Đúng là có thể khó chọn "câu trả lời hay nhất", nhưng đó thường là trường hợp với những câu hỏi nhẹ. Ngoài ra, câu hỏi này có thể trở thành quảng cáo tốt cho trang web nếu có đủ câu trả lời thú vị ... nhiều người có thể liên kết với câu trả lời được đưa ra ở đây khi được yêu cầu giải thích về P so với NP.
Philip White

7
nhưng nó thực sự nên là CW.
Suresh Venkat

5
Tôi hỏi động lực bởi vì từ ngữ của câu hỏi cho tôi cảm giác rằng bạn không quan tâm nhiều đến câu trả lời cho câu hỏi của riêng bạn (nó giống như một cách để bắt đầu một cuộc trò chuyện hơn là một câu hỏi thực sự), không phải vì câu hỏi bị câm . Theo câu trả lời của bạn, dường như bạn đã hỏi câu hỏi này vì mục đích đặt câu hỏi, và do đó tôi không quan tâm đến việc trả lời nó vì nó sẽ không giúp bạn. Chúng tôi có một nền văn hóa khác với Stack Overflow, nhưng hiện tại điều đó không liên quan.
Tsuyoshi Ito

Câu trả lời:


33

Tôi sử dụng 3 slide này để chỉ ra lý do tại sao nó quá khó (không thể?) Để đưa ra một thuật toán nhanh cho một vấn đề NP:

Thùng đóng gói Thùng đóng gói là NP hoàn thành 1 Thùng đóng gói là NP hoàn thành 2


Rất dễ hiểu.
toto

4
Tôi nghĩ rằng "không có cách dễ dàng" cần phải được mở rộng bao gồm cả việc nhân rộng khi số khối trở nên lớn hơn
Ian Ringrose

3
Ví dụ rất hay nhưng không được gọi là vấn đề Đóng gói hình chữ nhật trong tài liệu?
Mohammad Al-Turkistany

1
@ user54609 NP-Complete không có nghĩa là chúng tôi có thể xác minh rằng việc đóng gói là tối ưu trong thời gian đa thức. NP-Complete có nghĩa là chúng ta có thể xác minh một giải pháp khả thi trong thời gian đa thức (và không nhất quán tìm thấy nó trong thời gian đa thức (trừ khi P == NP)).
Geoffrey De Smet

1
Ồ, vậy vấn đề quyết định là "có giải pháp khả thi không". Tôi hiểu rồi.
ithisa

21

Trong bài nói chuyện này, Scott Aaronson trả lời câu hỏi.

TEDxCaltech - Scott Aaronson - Vật lý trong thế kỷ 21: Làm việc trong bóng tối của Feynman

Cảnh báo: Xin vui lòng, KHÔNG hiển thị cuộc nói chuyện này trực tiếp với bà của bạn / 10 tuổi. tại sao? xem nó và bạn sẽ biết ;-)

EDIT:
Đưa cho trẻ 8 câu đố nữ hoàng để giải. Cũng cho anh giới hạn thời gian.

Nếu anh ta "tìm thấy" một giải pháp thì anh ta là một đứa trẻ thông minh, bạn có thể bắt đầu dạy anh ta CS ngay lập tức. :)
Khác bạn chỉ cho anh ta giải pháp và yêu cầu anh ta "kiểm tra" nếu nó đúng.

ClassCheckFindExamplePEasyEasyMultiply numbersNPEasyHard8 queens

P

NP

Nếu chúng ta có thể "kiểm tra" một giải pháp dễ dàng như vậy thì tại sao chúng ta không thể "tìm thấy" nó một cách dễ dàng?

Những gì bạn làm trong CS là bạn giải quyết vấn đề hoặc chứng minh rằng không ai có thể.

ClassCheckFindPEasyEasyNPEasyEasy
P=NP

NPPNP


3
Có lẽ bạn có thể tóm tắt bản chất của lời giải thích của Scott.
Dave Clarke

2
Tôi đã luôn tò mò về tất cả những gì phiền phức P = NP, bây giờ tôi làm!
Lee Kowalkowski

Vì P ∈ NP, có thể làm rõ rằng bạn đang nói về phần không phải P của NP ở đây.
David

+1 Nhiều câu trả lời tuyệt vời trong chủ đề này, nhưng đây là câu duy nhất thậm chí còn cố gắng xác định P và NP có nghĩa là gì!
Đánh dấu E. Haase

"Nếu chúng ta có thể" kiểm tra "một giải pháp dễ dàng như vậy thì tại sao chúng ta không thể" tìm thấy "nó một cách dễ dàng?" --- câu hỏi này chưa được trả lời! Nếu không, nó là câu trả lời tốt nhất cho tôi.

19

Một trong những điều chính mà mọi người sử dụng máy tính là tìm kiếm. Các chương trình như Google thậm chí còn được gọi là "công cụ tìm kiếm" và chúng được sử dụng hàng triệu lần mỗi ngày. Một máy tính gần đây đã đánh bại con người trên Jeopardy vì nó có thể tìm kiếm thông qua hàng tấn dữ liệu, siêu nhanh.

Nhưng một số thứ rất khó cho ngay cả máy tính để tìm kiếm. Nghe có vẻ lạ phải không? Một ví dụ là phép nhân ngược. Tất nhiên nếu tôi nói "5 lần 3 là gì?" bạn có thể nói "15" trong một nano giây, whooosh! Nhưng câu trả lời là gì, "Hai số nào trùng với nhau bằng 21?" (Đợi câu trả lời, 7 x 3.) Đúng! Bây giờ, hai số nào nhân với nhau bằng 23? (Đợi câu trả lời, hoặc cho sự thất vọng.)

Hai số duy nhất nhân với nhau bằng 23 là 1 và 23 chính nó. Điều đó đã suy nghĩ một chút, phải không? Và 23 là một con số nhỏ. Hãy suy nghĩ nếu con số dài hàng trăm chữ số. Và điều quan trọng là, các chương trình tốt nhất trên thế giới không thể đảo ngược phép nhân tốt hơn nhiều so với một đứa trẻ 7 tuổi có thể cố gắng, chỉ thử một số, rồi tiếp theo, rồi tiếp theo. Máy tính có thể làm điều đó nhanh hơn , nhưng chúng ta thực sự không biết làm thế nào để bảo máy tính làm điều đó thông minh hơn . Mọi người có được bằng tiến sĩ về công cụ này và họ chỉ biết làm thế nào để bảo máy tính thực hiện phép nhân ngược một chút thông minh hơn.

Vì vậy, có thể không có cách nào thông minh hơn. Nhưng có lẽ là có, và chúng tôi chưa tìm thấy nó. Đó là vấn đề P / NP một cách ngắn gọn: nếu tôi có thể nhận ra câu trả lời ngay lập tức - 1 lần 23 là 23, duh - điều đó có giúp tôi tìm kiếm câu trả lời nhanh hơn không? Mọi người nghĩ rằng điều quan trọng là người tìm ra câu trả lời, có hoặc không, sẽ giành được một triệu đô la.


4
Tốt một. Có lẽ không có vấn đề gì khi bao thanh toán là một ví dụ tồi tệ (hoặc là nó?).
Raphael

4
Bao thanh toán là ví dụ mà Mike Sipser đã sử dụng trong video "giải thích P / NP cho công chúng" của mình cho Viện toán học Clay. Tôi nghĩ nếu nó đủ tốt cho anh ta .....
Aaron Sterling

3
Vấn đề tổng hợp con có thể được giải thích cho những học sinh chưa học phép nhân!
Tegiri Nenashi

16

Tôi nghĩ vấn đề P so với NP có thể được giải thích rất nhẹ nhàng về Sudoku. Tôi cho rằng đứa trẻ mười tuổi trong câu hỏi đã quen thuộc với Sudoku. Tôi sẽ cố gắng ủng hộ sự đơn giản hơn sự nghiêm khắc trong lời giải thích của tôi.

Đây là nỗ lực của tôi để giải thích P = NP cho một đứa trẻ mười tuổi giả định:

Nếu bạn có một câu đố Sudoku chưa hoàn thành và bạn muốn hoàn thành nó, điều đó thực sự khó thực hiện. Mặt khác, nếu bạn của bạn hoàn thành vấn đề và bạn giỏi số học, sẽ không khó để kiểm tra xem liệu giải pháp của bạn của bạn cho câu đố có đúng không.

Câu hỏi P = NP hỏi liệu có quá trình từng bước rất nhanh để giải câu đố Sudoku chưa hoàn thành hay không. Quá trình từng bước phải rất rõ ràng và dễ hiểu đến nỗi ngay cả một máy tính cũng có thể hiểu nó và sử dụng nó để giải các câu đố Sudoku tự động và rất nhanh. Nếu có một quá trình từng bước nhanh như vậy, đó sẽ là điều mà các nhà toán học gọi là "thuật toán thời gian đa thức" (tôi sẽ giải thích điều đó có nghĩa là gì khi bạn già đi).

Trên thực tế, các nhà khoa học máy tính và lập trình viên máy tính đã xác định được rất nhiều câu đố khác và những vấn đề rất quan trọng khó giải quyết như Sudoku. Điều thực sự quan trọng là phải biết liệu những vấn đề này có thể được giải quyết hay không, bởi vì máy tính có thể giúp chúng ta làm nhiều việc nhanh hơn nếu có thể. Ví dụ, họ có thể giúp chúng tôi lên lịch các chuyến tàu hiệu quả hơn, phá vỡ các mã bí mật và thậm chí có thể xây dựng trợ giúp để xây dựng các máy tính thực sự thông minh có khả năng trí tuệ nhân tạo.

Sẽ có rất nhiều điều rất tốt sẽ xảy ra nếu mọi người có thể giải P = NP. Tất nhiên, cũng sẽ có một số vấn đề, bởi vì sẽ khó sử dụng mã bí mật hơn để giữ bí mật tin nhắn nữa.

Hầu hết các nhà toán học thông minh nghĩ rằng P = NP là không đúng. Nói cách khác, hầu hết mọi người nghĩ rằng sẽ không ai có thể giải được những câu đố Sudoku thực sự khó một cách nhanh chóng. Tuy nhiên, chưa ai có thể chứng minh rằng P không bằng NP trước đây, vì vậy một tổ chức có tên là Viện toán học Clay đang trao giải thưởng một triệu đô la cho bằng chứng đầu tiên rằng P = NP là đúng hoặc là lần đầu tiên bằng chứng là nó sai

Như bạn thấy, tôi đã lấy phần "giải thích nó cho một đứa trẻ mười tuổi" một chút theo nghĩa đen. :)

Hi vọng điêu nay co ich.


Một nỗ lực rất tốt, mặc dù tôi không biết nếu một đứa trẻ 10 tuổi sẽ biết câu đố sudoku là gì.
chazisop

2
@chazisop Từ kinh nghiệm, tôi có thể nói rằng các phiên bản cơ bản của câu đố sudoku (tức là trên lưới 4 x 4) đã được trao cho trẻ em lớp 3 và 4 dưới dạng bài tập, vì vậy đó không phải là một giả định vô lý.
Bob Fraser

n1000

1
@Mohsin, Bạn rất hoan nghênh. @Raphael, tôi không nghĩ mình cần bỏ P và NP; một đứa trẻ mười tuổi có thể chấp nhận định nghĩa của tôi về vấn đề mà không cần biết P và NP nghĩa là gì, và tôi không chắc làm thế nào tôi có thể giải thích vấn đề mà không đề cập đến nó :). Ngoài ra, tôi đã nói rằng tôi ủng hộ sự rõ ràng hơn độ chính xác hoàn toàn ... do đó, tôi không nghĩ rằng việc sử dụng "rất nhanh" và "thời gian đa thức" thay thế cho nhau là không công bằng.
Philip White

Quan điểm của tôi là việc sử dụng "nhanh" không tạo ra sự rõ ràng. Giả sử P = NP, có thể vấn đề "duy nhất" là chúng tôi đang tìm kiếm thuật toán "nhanh" cho các vấn đề không thể giải quyết "nhanh", nhưng chỉ đa thức với mức độ cao.
Raphael

8

Đây là cách tôi giải thích với mẹ tôi, hy vọng nó sẽ phục vụ bạn :)

Có những vấn đề dễ tìm giải pháp (P, nhưng ít gọi chúng là "dễ giải quyết"), những vấn đề dễ kiểm tra xem giải pháp đã cho có đúng không (NP, nhưng hãy gọi chúng là "có thể kiểm tra dễ dàng" ) và các vấn đề không dễ giải quyết cũng không dễ kiểm tra. Để đơn giản, giả sử rằng "Dễ" được định nghĩa chính thức và mỗi vấn đề có một giải pháp duy nhất.

Giờ đây, mọi người đã có thể chứng minh (sử dụng toán học) mối quan hệ thú vị giữa hai khái niệm "dễ giải quyết" và "dễ kiểm tra", do đó một số vấn đề không dễ giải quyết và một số vấn đề khác không dễ kiểm soát được. Một ví dụ cơ bản về kết quả như vậy là một vấn đề dễ giải quyết cũng có thể dễ dàng kiểm tra: chỉ cần tìm giải pháp của nó và so sánh nó với giải pháp được đưa ra.

Đủ trêu chọc, đối với rất nhiều vấn đề thực tế (chẳng hạn như quyết định liệu có thể giao việc cho sinh viên cho các giáo sư và lớp học hay không, khi có rất ít vấn đề), không biết có cách nào "dễ dàng" để giải quyết không, nhưng người ta biết làm thế nào để kiểm tra dễ dàng nếu một giải pháp là chính xác hay không. Mọi người đã cố gắng rất nhiều và thất bại, sau đó cố gắng chứng minh rằng điều đó là không thể và cũng thất bại: họ chỉ không biết. Một số người nghĩ rằng tất cả các vấn đề có thể dễ dàng kiểm tra đều có thể giải quyết dễ dàng (chúng ta chỉ nên nghĩ nhiều hơn về nó), một số nghĩ ngược lại, rằng chúng ta không nên lãng phí thời gian để cố gắng tìm giải pháp dễ dàng cho những vấn đề này.

Những gì chúng tôi phát hiện ra là làm thế nào để hiển thị các liên kết giữa các vấn đề (ví dụ: nếu bạn biết cách đi học, bạn biết cách đi đến tiệm bánh ngay phía trước) và các vấn đề có thể kiểm tra dễ dàng liên quan đến tất cả các vấn đề dễ kiểm tra khác ( NP-đầy đủ, nhưng hãy gọi chúng là "các vấn đề chính") sao cho nếu ai đó, một ngày nào đó, cho thấy một trong những vấn đề chính được giải quyết dễ dàng, thì tất cả các vấn đề có thể kiểm tra dễ dàng cũng có thể giải quyết dễ dàng (ví dụ P = NP). Mặt khác, nếu ai đó cho thấy rằng một trong những vấn đề chính không thể giải quyết dễ dàng, thì không ai trong số những người khác có thể dễ dàng giải quyết được (ví dụ P <> NP).

Vì vậy, câu hỏi là trêu ngươi, và tương đối quan trọng trong thực tế (mặc dù một số ý kiến ​​cho rằng chúng ta nên tập trung vào các định nghĩa thay thế của "dễ dàng"), và mọi người đang đầu tư khá nhiều tiền và thời gian vào cuộc tranh luận.



1

Tôi hơi nghi ngờ về khả năng giải thích vấn đề đó cho một đứa trẻ 10 tuổi, hoặc thậm chí với một giáo dân, mà không phát sinh sự trình bày sai về các khái niệm chính.

Tất cả các giải thích được xây dựng dưới dạng "dễ dàng" so với "độ cứng" của việc tìm kiếm so với các giải pháp kiểm tra đều giả định luận điểm của Cobham, được cho là sai trong trường hợp chung, và có thể được coi là ít hơn một quy tắc tốt nhất.


Đây không phải là một câu trả lời cho câu hỏi.
Dave Clarke

Tại sao không? Câu hỏi là "Làm thế nào bạn giải thích vấn đề P = NP cho một đứa trẻ 10 tuổi" và câu trả lời của tôi là một lời giải thích phù hợp không làm sai lệch vấn đề có lẽ không tồn tại. Bạn có thể không đồng ý với câu trả lời của tôi, tất nhiên, nhưng tại sao bạn cho rằng nó không giải quyết được câu hỏi?
Antonio Valerio Miceli-Barone

3
Theo tôi, đây là một câu trả lời có thể, mặc dù tôi không đồng ý. Đúng là chúng ta không thể vô thức xác định P với một cái gì đó giống như tập hợp các vấn đề có thể giải quyết hiệu quả trong thế giới thực. Tuy nhiên, tôi không nghĩ rằng điều này loại trừ khả năng giải thích vấn đề P =? NP một đứa trẻ mười tuổi ở mức độ trực quan. Ví dụ, trẻ em mười tuổi trở lên học diện tích hình tròn. Bất kỳ sự đối xử nghiêm ngặt nào về diện tích đều cần sự chăm sóc chu đáo, nhưng điều đó không loại trừ khả năng dạy khái niệm khu vực ở mức độ trực quan một cách hữu ích.
Tsuyoshi Ito

P

1
P

1

chiến lược chiến thắng cho các trò chơi bảng cổ điển khác nhau, ví dụ như tàu chiến hoặc (gần đây hơn) trò chơi video đã được chứng minh NP hoàn thành & đây là một cách / góc tuyệt vời để trình bày / mô tả một số lý thuyết cốt lõi cho người mới.

tàu chiến như một vấn đề quyết định hoàn toàn NP Merlijn Sevenster Tạp chí ICGA sep 2004

quét mìn là NP hoàn thành Câu hỏi thường gặp của nhà toán học RW Kaye. Vấn đề mùa xuân năm 2000 của Nhà thông minh toán học (tập 22 số 2, trang 9--15)

Chơi game là một công việc khó khăn, nhưng ai đó phải làm điều đó! giấy arxiv của Giovanni Viglietta. phân tích độ phức tạp tính toán của Pac-Man, Tron, Lode Runner, Boulder Dash, Deflektor, Mindbender, Tube Mania, Skweek, Prince of Persia, Lemmings, Doom, Puzzle Bobble 3 và Starcraft.

Pacman là một bài báo công nghệ cực kỳ khó khăn trên giấy


xem thêm MỘT BÀI TOÁN VÒI HOÀN TOÀN NP của Kendall, Parkes, Spoerer và Chơi trò chơi với các thuật toán: Lý thuyết trò chơi kết hợp thuật toán của Demaine và Hearn
vzn

0

Và đây là vấn đề của tôi.

Đứa trẻ!

Bạn biết chúng ta phải đối mặt với nhiều vấn đề trong cuộc sống của chúng ta. Bạn có thể nói thách thức. Một số khó khăn một số dễ dàng hơn. Ví dụ, bạn thường cần thêm hai số. Và tối hôm qua, chúng tôi đã ở trên bàn cờ và chúng tôi phải giành chiến thắng trước người hàng xóm. Vâng, thêm hai số là một vấn đề đơn giản và đơn giản với các bước hạn chế liên quan. Các vấn đề như vậy được gọi là các vấn đề của lớp P vì có nhiều vấn đề khá đơn giản với các bước riêng biệt được lặp đi lặp lại nhiều lần để có giải pháp.

Mặt khác, đêm qua trên trò chơi ngực của chúng tôi, chiến lược tốt nhất để giành chiến thắng là gì? Chúng ta có thể di chuyển con tốt thứ nhất một bước, hoặc con tốt thứ hai một bước, hoặc chúng ta có thể di chuyển con tốt thứ hai hai bước và con tốt đầu tiên một bước để bạn thấy có rất nhiều khả năng. Nhưng có cách nào để chúng tôi hoặc người nhận cung cấp cho chúng tôi một bộ di chuyển hoàn chỉnh theo thứ tự mang lại kết quả tốt nhất và cho người kiểm tra không? Vì vậy, bạn thấy nó được bỏ khó khăn vì có rất nhiều khả năng mỗi bước. Hàng tỷ và hàng tỷ như Carl Sagan nói.

Nhưng thân yêu, nếu tôi nói với bạn tất cả các vị trí trong hội đồng quản trị và hỏi bạn đó có phải là một người kiểm tra không? Chắc chắn bạn sẽ có thể nhanh chóng nói trong vài lần kiểm tra xem có bất kỳ động thái hợp pháp nào để lại cho nhà vua không.

Vì vậy, những vấn đề khó giải quyết nhưng nếu giải pháp của họ dễ dàng kiểm chứng được trong vài bước đơn giản, thì chúng được gọi là vấn đề NP.

Bây giờ bạn hỏi P = NP nghĩa là gì? Trên thực tế câu hỏi này có nghĩa là có cách nào để chúng ta có thể tìm ra một giải pháp đơn giản để tìm chiến lược tốt nhất hoặc danh sách các nước đi cho một ván cờ mà không phải trải qua hàng tỷ khả năng giống như chúng ta làm cho một bổ sung đơn giản? Câu hỏi đơn giản này vẫn chưa được trả lời. Chúng tôi không có bất kỳ bằng chứng nào cho sự thật hoặc sự từ chối nhưng nếu chúng tôi làm, nó sẽ là bước đột phá. Nếu nó trở thành sự thật, nền văn minh của chúng ta có thể giải quyết các vấn đề rất phức tạp bằng cách biến chúng thành các vấn đề của lớp P. Mọi người sẽ có thể phá mật khẩu trong vài giây, tin nhắn sẽ được giải mã và nhiều hơn nữa và đó là lý do tại sao vấn đề này được coi là một trong những vấn đề quan trọng nhất của thiên niên kỷ.


Nó có thể có giá trị thắt chặt văn bản. Bạn đã thử đọc to điều này chưa?
András Salamon

Mọi thứ không nên được thắt chặt như các định nghĩa toán học tôi nghĩ.
Mohsin Hijazee

Nếu bạn thắt chặt văn bản quá nhiều, peole bình thường sẽ không có đủ "không gian" để hiểu một khái niệm trước khi bạn chuyển sang khái niệm tiếp theo.
Ian Ringrose

n×n

Liên kết này có thể rõ ràng hơn so với trước đây: cstheory.stackexchange.com/questions/6563/ mẹo
Juan Bermejo Vega
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.