Jelaskan masalah P = NP hingga 10 tahun

54

Ini adalah pertanyaan pertama saya di situs ini. Saya mengambil kursus master tentang teori perhitungan. Bagaimana Anda akan menjelaskan masalah P = NP kepada seorang anak berusia 10 tahun dan mengapa ia memiliki imbalan uang seperti itu?

Anda menerima?

Saya akan memperbarui pertanyaan karena kepalaku sudah mengerti.

Mohsin Hijazee
sumber
11
Kecenderungan saya adalah untuk menutup ini sebagai bukan ilmu komputer tingkat teori penelitian .
Dave Clarke
11
@ Dave: Itu harus dijawab oleh orang-orang peneliti, jadi mungkin cukup untuk menanyakannya ke tempat orang-orang yang melakukan penelitian?
Jeremy
11
Saya pikir ini masuk akal. Ada sebuah makalah terkenal yang disebut "Bagaimana Menjelaskan Protokol Nol Pengetahuan untuk Anak-anak Anda," yang saya pikir akan dianggap tingkat penelitian. Memang benar bahwa mungkin sulit untuk memilih "jawaban terbaik," tetapi itu sering terjadi dengan pertanyaan lunak. Selain itu, pertanyaan ini bisa menjadi iklan yang bagus untuk situs tersebut jika muncul jawaban yang cukup menarik ... banyak orang mungkin menautkan ke jawaban yang diberikan di sini ketika ditanyai penjelasan P vs. NP.
Philip White
7
tetapi harus benar-benar CW.
Suresh Venkat
5
Saya bertanya motivasi karena kata-kata dari pertanyaan itu memberi saya kesan bahwa Anda tidak terlalu tertarik pada jawaban untuk pertanyaan Anda sendiri (sepertinya cara untuk memulai percakapan daripada pertanyaan nyata), bukan karena pertanyaannya bodoh . Menurut jawaban Anda, Anda tampaknya telah menanyakan pertanyaan ini demi mengajukan pertanyaan, dan karena itu saya tidak tertarik untuk menjawabnya karena itu tidak akan membantu Anda. Kami memiliki budaya yang berbeda dari Stack Overflow, tetapi itu tidak relevan sekarang.
Tsuyoshi Ito

Jawaban:

33

Saya menggunakan 3 slide ini untuk menunjukkan mengapa begitu sulit (mustahil?) Untuk membuat algoritma cepat untuk masalah NP:

Bin pengepakan Tempat sampah adalah NP lengkap 1 Tempat sampah adalah NP lengkap 2

Geoffrey De Smet
sumber
Sangat mudah dimengerti.
toto
4
Saya pikir "tidak mudah" perlu diperluas termasuk penskalaan karena jumlah blok semakin besar
Ian Ringrose
3
Contoh yang sangat bagus tapi bukankah itu disebut masalah Rectangle Packing dalam literatur?
Mohammad Al-Turkistany
1
@ user54609 NP-complete tidak berarti kami dapat memverifikasi bahwa pengemasan optimal dalam waktu polinomial. NP-complete berarti kami dapat memverifikasi solusi agar layak dalam waktu polinomial (dan tidak secara konsisten menemukannya dalam waktu polinomial (kecuali P == NP)).
Geoffrey De Smet
1
Oh, jadi masalah keputusannya adalah "apakah ada solusi yang layak". Saya melihat.
ithisa
21

Dalam ceramah ini Scott Aaronson menjawab pertanyaan itu.

TEDxCaltech - Scott Aaronson - Fisika di Abad ke-21: Bekerja keras di Bayangan Feynman

Peringatan: Tolong, JANGAN tampilkan pembicaraan ini langsung ke nenek Anda / 10 tahun. Mengapa? tonton itu dan kamu akan tahu. ;-)

EDIT:
Berikan anak 8 puzzle ratu untuk dipecahkan. Juga beri dia batas waktu.

Jika dia "menemukan" solusi, maka dia adalah anak yang cerdas, Anda dapat segera mulai mengajarinya CS. :)
Lain Anda tunjukkan solusinya dan minta dia untuk "memeriksa" apakah itu benar.

ClassCheckFindExamplePEasyEasyMultiply numbersNPEasyHard8 queens

P adalah serangkaian masalah di mana komputer dapat "menemukan" solusi dengan mudah.

NP adalah serangkaian masalah di mana komputer tidak dapat "menemukan" solusi dengan mudah tetapi dapat "memeriksa" solusinya dengan mudah.

Jika kita dapat "memeriksa" suatu solusi dengan mudah maka mengapa kita tidak dapat "menemukannya" dengan mudah?

Apa yang Anda lakukan di CS adalah Anda menyelesaikan masalah atau membuktikan bahwa tidak ada yang bisa.

Jika seseorang menemukan algoritma yang membuatnya mudah untuk "menemukan" solusi untuk masalah NP maka tabel akan terlihat seperti dan . P=NP

ClassCheckFindPEasyEasyNPEasyEasy
P=NP

Dan jika seseorang membuktikan bahwa tidak ada yang dapat menemukan algoritma untuk "menemukan" solusi untuk masalah maka tabelnya tetap sama dan .PN PNPPNP

Pratik Deoghare
sumber
3
Mungkin Anda bisa meringkas inti dari penjelasan Scott.
Dave Clarke
2
Saya selalu ingin tahu apa yang terjadi dengan P = NP, sekarang saya tahu!
Lee Kowalkowski
Karena P ∈ NP, mungkin jelaskan bahwa Anda berbicara tentang bagian non-P dari NP di sini.
David
+1 Banyak jawaban bagus di utas ini, tetapi ini adalah satu-satunya yang bahkan mencoba untuk mendefinisikan apa arti P dan NP!
Mark E. Haase
"Jika kita dapat" memeriksa "suatu solusi dengan mudah maka mengapa kita tidak bisa" menemukannya "dengan mudah?" --- pertanyaan ini belum dijawab! Kalau tidak, itu adalah jawaban terbaik untukku.
19

Salah satu hal utama yang orang gunakan untuk komputer adalah mencari. Program-program seperti Google bahkan disebut "mesin pencari," dan digunakan jutaan kali sehari. Sebuah komputer baru-baru ini mengalahkan manusia di Jeopardy karena ia dapat mencari melalui banyak data, sangat cepat.

Tetapi beberapa hal sulit dilakukan bahkan oleh komputer. Kedengarannya aneh, bukan? Salah satu contoh adalah multiplikasi terbalik. Tentu saja jika saya mengatakan "Berapa 5 kali 3?" Anda bisa mengatakan "15" dalam nanosecond, whooosh! Tapi apa jawaban untuk, "Dua angka apa yang digandakan bersama dengan angka 21?" (Tunggu jawabannya, 7 x 3.) Benar! Sekarang, apa dua angka yang dikalikan bersama dengan 23? (Tunggu jawabannya, atau frustrasi.)

Dua angka yang dikalikan bersama yang sama dengan 23 adalah 1 dan 23 itu sendiri. Butuh beberapa pemikiran, bukan? Dan 23 adalah angka kecil. Pikirkan jika jumlahnya ratusan digit. Dan masalahnya adalah, program terbaik di dunia tidak dapat membalikkan perkalian jauh lebih baik daripada yang mungkin dilakukan oleh anak berusia 7 tahun, hanya menguji satu angka, lalu yang berikutnya, dan kemudian yang berikutnya. Komputer dapat melakukannya dengan lebih cepat , tetapi kita tidak benar-benar tahu bagaimana cara memberitahu komputer untuk melakukannya dengan lebih cerdas . Orang-orang mendapatkan gelar PhD dalam hal ini, dan mereka hanya tahu bagaimana cara memberitahu komputer untuk melakukan multiplikasi terbalik sedikit lebih pintar.

Jadi mungkin tidak ada cara yang lebih pintar. Tapi mungkin ada, dan kami belum menemukannya. Singkatnya, masalah P / NP: jika saya dapat langsung mengenali jawaban - 1 kali 23 adalah 23, ya - apakah itu membantu saya mencari jawaban lebih cepat? Orang-orang berpikir itu sangat penting sehingga orang yang menemukan jawabannya, ya atau tidak, akan memenangkan satu juta dolar.

Aaron Sterling
sumber
4
Bagus Mungkin tidak masalah bahwa anjak piutang adalah contoh buruk (atau bukan?).
Raphael
4
Anjak adalah contoh yang digunakan Mike Sipser dalam video "jelaskan P / NP kepada publik" untuk Clay Mathematics Institute. Saya pikir apakah itu cukup baik untuknya .....
Aaron Sterling
3
Masalah jumlah subset dapat dijelaskan kepada siswa yang belum belajar perkalian!
Tegiri Nenashi
16

Saya pikir masalah P vs NP bisa dijelaskan dengan sangat lembut dalam hal Sudoku. Saya berasumsi anak sepuluh tahun yang dimaksud akrab dengan Sudoku. Saya akan mencoba mendukung kesederhanaan daripada ketelitian dalam penjelasan saya.

Ini adalah usaha saya untuk menjelaskan P = NP kepada anak sepuluh tahun yang hipotetis:

Jika Anda memiliki teka-teki Sudoku yang belum selesai, dan Anda ingin menyelesaikannya, itu bisa sangat sulit dilakukan. Di sisi lain, jika teman Anda menyelesaikan masalah dan Anda mahir berhitung, tidak terlalu sulit untuk memeriksa apakah solusi teman Anda untuk teka-teki itu benar.

Pertanyaan P = NP menanyakan apakah ada proses langkah-demi-langkah yang sangat cepat untuk menyelesaikan teka-teki Sudoku yang belum selesai. Proses langkah demi langkah harus sangat jelas dan mudah dipahami sehingga bahkan komputer dapat memahaminya dan menggunakannya untuk memecahkan teka-teki Sudoku secara otomatis dan sangat cepat. Jika ada proses selangkah demi selangkah yang demikian cepat, itulah yang oleh para ahli matematika disebut sebagai "algoritma waktu polinomial" (saya akan menjelaskan apa artinya itu ketika Anda lebih tua).

Faktanya, ilmuwan komputer dan pemrogram komputer telah mengidentifikasi banyak teka-teki lain dan masalah yang sangat penting yang sama sulitnya dengan Sudoku. Sangat penting untuk mengetahui apakah masalah ini dapat diselesaikan, karena komputer dapat membantu kita melakukan banyak hal lebih cepat jika mereka bisa. Misalnya, mereka dapat membantu kami menjadwalkan kereta lebih efisien, memecahkan kode rahasia, dan bahkan mungkin membangun bantuan untuk membangun komputer yang benar-benar pintar yang mampu melakukan kecerdasan buatan.

Akan ada banyak hal yang sangat baik yang akan terjadi jika orang dapat menyelesaikan P = NP. Tentu saja, akan ada beberapa masalah, karena akan lebih sulit untuk menggunakan kode rahasia untuk merahasiakan pesan pribadi.

Kebanyakan ahli matematika pintar berpikir bahwa P = NP tidak benar. Dengan kata lain, kebanyakan orang berpikir bahwa tidak ada yang akan mampu memecahkan teka-teki Sudoku yang sangat sulit dengan cepat. Namun, tidak ada yang pernah dapat membuktikan bahwa P tidak sama dengan NP sebelumnya, jadi sebuah organisasi bernama Clay Mathematics Institute menawarkan hadiah satu juta dolar untuk bukti pertama bahwa P = NP benar, atau untuk yang pertama bukti bahwa itu salah.

Seperti yang Anda lihat, saya mengambil bagian "jelaskan kepada anak sepuluh tahun" secara harfiah. :)

Semoga ini membantu.

Philip White
sumber
Upaya yang sangat bagus, meskipun saya tidak tahu apakah anak berusia 10 tahun akan tahu apa itu teka-teki sudoku.
chazisop
2
@chazisop Dari pengalaman, saya dapat mengatakan bahwa versi dasar teka-teki sudoku (yaitu pada kotak 4x4) telah diberikan kepada anak-anak di kelas 3 dan 4 sebagai latihan, jadi itu bukan asumsi yang tidak masuk akal.
Bob Fraser
n1000
1
@Mohsin, Sama-sama. @ Raphael, saya rasa saya tidak perlu menjatuhkan P dan NP; seorang anak berusia sepuluh tahun mungkin hanya menerima definisi masalah saya tanpa perlu tahu apa arti P dan NP, dan saya tidak yakin bagaimana saya bisa menjelaskan masalah tanpa merujuknya :). Juga, saya memang mengatakan saya lebih menyukai kejelasan daripada akurasi lengkap ... jadi, saya tidak berpikir itu tidak adil untuk menggunakan "sangat cepat" dan "waktu polinomial" secara bergantian.
Philip White
Maksud saya adalah bahwa penggunaan "cepat" tidak menciptakan kejelasan. Dengan asumsi P = NP, mungkin masalah "satu-satunya" adalah kita mencari algoritma "cepat" untuk masalah yang tidak dapat diselesaikan "cepat", tetapi hanya secara polinomi dengan derajat tinggi.
Raphael
8

Beginilah cara saya menjelaskannya kepada ibu saya, semoga akan membantu Anda :)

Ada masalah yang mudah untuk menemukan solusinya (P, tetapi kurang menyebutnya "mudah dipecahkan"), masalah yang mudah diperiksa apakah solusi yang diberikan benar (NP, tetapi sebut saja "mudah diperiksa") ), dan masalah yang tidak mudah dipecahkan atau juga tidak mudah diperiksa. Untuk kesederhanaan, anggaplah bahwa "Mudah" didefinisikan secara formal, dan bahwa setiap masalah memiliki solusi yang unik.

Sekarang, orang telah dapat membuktikan (menggunakan matematika) hubungan yang menarik antara dua pengertian "mudah dipecahkan" dan "mudah diperiksa", sehingga beberapa masalah tidak mudah dipecahkan, dan bahwa beberapa orang lain tidak mudah diperiksa. Contoh dasar dari hasil tersebut adalah bahwa masalah yang mudah dipecahkan juga mudah diperiksa: temukan saja solusinya dan bandingkan dengan solusi yang diberikan.

Cukup menggoda, untuk banyak masalah praktis (seperti memutuskan apakah ada kemungkinan tugas siswa untuk profesor dan ruang kelas, ketika ada sangat sedikit margin) tidak diketahui apakah ada cara "mudah" untuk menyelesaikannya, tetapi diketahui cara memeriksa dengan mudah apakah suatu solusi benar atau tidak. Orang-orang mencoba banyak dan gagal, kemudian mencoba membuktikan bahwa itu tidak mungkin dan gagal juga: mereka tidak tahu. Beberapa orang berpikir bahwa semua masalah yang mudah diperiksa dapat dipecahkan dengan mudah (kita hanya harus memikirkannya lebih lanjut), beberapa berpikir sebaliknya, bahwa kita seharusnya tidak membuang waktu untuk mencari solusi mudah dari masalah ini.

Apa yang kami temukan adalah bagaimana menunjukkan hubungan antara masalah (misalnya jika Anda tahu cara pergi ke sekolah, Anda tahu cara pergi ke toko roti yang ada di depan) dan masalah yang mudah diperiksa yang terkait dengan semua masalah lain yang mudah diperiksa ( Lengkap-NP, tetapi sebut mereka "masalah utama") sehingga jika seseorang, suatu hari, menunjukkan bahwa salah satu masalah utama mudah diselesaikan, maka semua masalah yang mudah diperiksa juga mudah dipecahkan (yaitu P = NP). Di sisi lain, jika seseorang menunjukkan bahwa salah satu masalah utama tidak dapat dengan mudah dipecahkan, maka tidak ada orang lain yang dapat dengan mudah dipecahkan (yaitu P <> NP).

Jadi pertanyaannya adalah menggiurkan, dan relatif penting dalam praktik (walaupun beberapa orang berpendapat bahwa kita harus lebih fokus pada definisi alternatif "mudah"), dan orang-orang menginvestasikan banyak uang dan waktu dalam debat.

Jeremy
sumber
5

Michael Sipser menjelaskan masalah P vs NP dengan cara yang sangat intuitif dalam video ini .

Shitikanth
sumber
1

Saya agak skeptis tentang kemungkinan menjelaskan masalah itu kepada seorang anak berusia 10 tahun, atau bahkan kepada orang awam, tanpa menimbulkan kesalahan penyajian konsep-konsep kunci.

Semua penjelasan yang dirumuskan dalam istilah "kemudahan" vs "kekerasan" untuk menemukan vs memeriksa solusi mengasumsikan tesis Cobham, yang bisa dibilang salah dalam kasus umum, dan dapat dianggap sedikit lebih dari sekadar aturan praktis.

Antonio Valerio Miceli-Barone
sumber
Ini bukan jawaban untuk pertanyaan itu.
Dave Clarke
Kenapa tidak? Pertanyaannya adalah "Bagaimana Anda akan menjelaskan masalah P = NP untuk anak berusia 10 tahun" dan jawaban saya adalah bahwa penjelasan yang tepat yang tidak salah menggambarkan masalah mungkin tidak ada. Anda mungkin tidak setuju dengan jawaban saya, tentu saja, tetapi mengapa Anda mengklaim bahwa itu tidak menjawab pertanyaan?
Antonio Valerio Miceli-Barone
3
Menurut pendapat saya, ini adalah jawaban yang mungkin, meskipun saya tidak setuju. Memang benar bahwa kita tidak dapat mengidentifikasi P tanpa berpikiran dengan sesuatu seperti "set masalah yang dapat diselesaikan secara efisien di dunia nyata." Namun, saya tidak berpikir bahwa ini mengesampingkan kemungkinan menjelaskan masalah P =? NP ke seorang anak berusia sepuluh tahun pada tingkat intuitif. Misalnya, anak-anak berusia sepuluh tahun atau lebih mempelajari area lingkaran. Perlakuan yang teliti terhadap area membutuhkan perhatian besar, tetapi itu tidak mengesampingkan kemungkinan mengajarkan konsep area pada tingkat intuitif dengan cara yang bermanfaat.
Tsuyoshi Ito
P
1
P
1

strategi pemenang untuk berbagai permainan papan klasik misalnya kapal perang atau (baru-baru ini) video game telah terbukti NP lengkap & ini adalah cara / sudut yang sangat baik untuk menyajikan / menggambarkan beberapa teori inti ke pemula.

kapal perang sebagai masalah keputusan NP lengkap Merlijn Sevenster ICGA jurnal September 2004

kapal penyapu ranjau adalah NP lengkap FAQ oleh ahli matematika RW Kaye. Masalah Spring Intelligence 2000 (volume 22 nomor 2, halaman 9--15)

Bermain game adalah pekerjaan berat, tetapi harus ada yang melakukannya! makalah arxiv karya Giovanni Viglietta. menganalisis kompleksitas komputasi Pac-Man, Tron, Lode Runner, Boulder Dash, Deflektor, Mindbender, Pipe Mania, Skweek, Prince of Persia, Lemmings, Doom, Puzzle Bobble 3, dan Starcraft.

Pacman adalah artikel majalah teknologi ekstrem keras di atas kertas

ay
sumber
lihat juga SURVEI PUZZLES NP-SELESAI oleh Kendall, Parkes, Spoerer, dan Bermain game dengan algoritma: Algorithmic Combinatorial Game Theory oleh Demaine dan Hearn
vzn
0

Dan ini saya ambil masalah.

Kido!

Anda tahu kita menghadapi banyak masalah dalam hidup kita. Anda bisa mengatakan tantangan. Ada yang sulit ada yang lebih mudah. Misalnya, Anda sering perlu menambahkan dua angka. Dan tadi malam, kami berada di papan catur dan kami harus menang melawan tetangga kami. Nah, menambahkan dua angka adalah masalah yang sederhana dan lurus dengan langkah-langkah terbatas yang terlibat. Masalah seperti ini disebut masalah kelas P karena ada banyak masalah yang cukup mudah dengan langkah-langkah terpisah yang harus diulang berulang kali untuk mendapatkan solusi.

Di sisi lain, tadi malam di pertandingan dada kami, apa strategi terbaik untuk memenangkan pertandingan? Kita bisa memindahkan pion pertama satu langkah, atau pion kedua satu langkah, atau kita bisa memindahkan pion kedua dua langkah dan pion pertama satu langkah sehingga Anda melihat ada banyak dan banyak kemungkinan. Tetapi apakah ada cara untuk kita atau penerima yang memberi kita serangkaian gerakan lengkap yang menghasilkan yang terbaik dan untuk skakmat? Jadi Anda lihat itu berhenti keras karena ada begitu banyak kemungkinan satu setiap langkah. Miliaran dan Miliaran seperti kata Carl Sagan.

Tetapi sayang bagaimana jika saya memberi tahu Anda semua posisi dewan dan bertanya apakah ini skakmat? Tentunya Anda akan dapat dengan cepat memberi tahu dalam beberapa pemeriksaan apakah ada langkah hukum yang tersisa untuk raja.

Jadi masalah seperti itu yang sulit dipecahkan tetapi jika solusi mereka mudah diverifikasi dalam beberapa langkah sederhana, mereka disebut masalah NP.

Sekarang Anda bertanya apa artinya P = NP? Sebenarnya pertanyaan ini berarti apakah ada cara agar kita dapat menemukan solusi yang lebih sederhana untuk menemukan strategi terbaik atau daftar gerakan untuk permainan catur tanpa melalui semua miliaran kemungkinan seperti yang kita lakukan untuk penambahan sederhana? Pertanyaan sederhana ini belum terjawab. Kami tidak memiliki bukti untuk kebenaran itu atau untuk penolakan tetapi jika kami melakukannya, itu akan menjadi terobosan. Jika ternyata benar, peradaban kita mungkin bisa memecahkan masalah yang sangat kompleks dengan mengubahnya menjadi masalah kelas P. Orang akan dapat memecahkan kata sandi dengan beberapa detik, pesan akan didekripsi dan lebih banyak lagi dan itulah sebabnya masalah ini dianggap sebagai salah satu masalah terpenting milenium.

Mohsin Hijazee
sumber
Mungkin perlu diperketat teksnya. Sudahkah Anda mencoba membaca ini dengan keras?
András Salamon
Semuanya tidak harus diperketat seperti definisi matematika yang saya pikir.
Mohsin Hijazee
Jika Anda mengencangkan teks terlalu banyak, orang normal tidak akan memiliki cukup "ruang" untuk memahami satu konsep sebelum Anda pindah ke konsep berikutnya.
Ian Ringrose
n×n
Tautan ini mungkin lebih jelas daripada yang sebelumnya: cstheory.stackexchange.com/questions/6563/…
Juan Bermejo Vega