P = NP problemini 10 yaşına kadar açıkla


54

Bu sitede ilk sorum. Hesaplama teorisi üzerine bir yüksek lisans kursu alıyorum. P = NP problemini 10 yaşındaki bir çocuğa nasıl açıklarsınız ve bunun üzerinde neden böyle bir para ödülü kazanırsınız?

Sen al

Kafam açıkladığında soruyu güncelleyeceğim.


11
Benim eğilimim, bunu araştırma düzeyinde teorik bilgisayar bilimi olmayan bir şey olarak kapatmak .
Dave Clarke

11
@Dave: Araştırmacılar tarafından cevaplandırılmalıdır, bu yüzden araştırmayı yapan insanların nereye gittiklerini sormak yeterli olabilir mi?
Jeremy,

11
Bunun makul olduğunu düşünüyorum. Araştırma düzeyinde kabul edilebileceğini düşündüğüm “Çocuğunuza Sıfır Bilgi Protokollerini Nasıl Açıklayabilirim” adlı ünlü bir makale var. Bir "en iyi cevap" seçmenin zor olabileceği doğrudur, ancak bu genellikle yumuşak sorularla ilgilidir. Ayrıca, yeterince ilginç cevaplar ortaya çıkarsa, bu soru site için iyi bir reklam olabilir ... birçok kişi burada P ile NP hakkında bir açıklama istendiğinde burada verilen cevaplarla bağlantı kurabilir.
Philip White

7
ama bu gerçekten CW olmalı.
Suresh Venkat

5
Motivasyona sordum, çünkü sorunun ifadesi bana kendi sorunuzun cevaplarıyla pek ilgilenmediğiniz izlenimini verdi (gerçek bir sorudan ziyade bir konuşmaya başlamanın bir yolu gibi görünüyordu), soru aptal olduğu için değil . Cevabınıza göre, bu soruyu bir soru sormak için sormuş görünüyorsunuz ve bu nedenle size cevap vermeyeceğim çünkü size yardımcı olmayacak. Yığın Taşması'ndan farklı bir kültüre sahibiz, ancak bu şu an için geçerli değil.
Tsuyoshi Ito

Yanıtlar:


33

Bu 3 slaydı, bir NP problemi için hızlı bir algoritma geliştirmenin neden bu kadar zor (imkansız?) Olduğunu göstermek için kullanıyorum:

Çöp kutusu Çöp kutusu NP tamamlandı 1 Kutu paketleme NP tamamlandı 2


Anlaması çok kolay.
toto

4
Bence "kolay yol yok", blok sayısı büyüdükçe ölçeklendirme de dahil olmak üzere genişletilmeye ihtiyaç
duyuluyor

3
Çok güzel bir örnek ama literatürde Dikdörtgen Ambalaj problemi değil mi?
Muhammed El-Türkistan,

1
@ user54609 NP-complete, bir paketlemenin polinom zamanında optimal olduğunu doğrulayabileceğimiz anlamına gelmez. NP tamamlama, polinom zamanında uygulanabilir bir çözümü doğrulayabileceğimiz anlamına gelir (ve polinom zamanında tutarlı bir şekilde bulamazsınız (P == NP olmadıkça).
Geoffrey De Smet

1
Oh, bu yüzden karar sorunu "uygun bir çözüm var". Anlıyorum.
ithisa

21

Bu konuşmada Scott Aaronson soruyu ele alıyor.

TEDxCaltech - Scott Aaronson - 21. Yüzyılda Fizik: Feynman'ın Gölgesinde Yaşıyor

Uyarı: Lütfen, bu konuşmayı doğrudan büyükannenize / 10 yaşına kadar göstermeyin. neden? izle ve bileceksin. ;-)

EDIT:
Çocuğa 8 kraliçe çözmek için bulmaca verin . Ayrıca ona zaman sınırı verin.

Bir çözüm bulursa, o zaman akıllı bir çocuktur ve ona hemen CS öğretmeye başlayabilirsiniz. :)
Başka bir deyişle, ona çözümü gösterin ve doğru olup olmadığını "kontrol etmesini" isteyin.

ClassCheckFindExamplePEasyEasyMultiply numbersNPEasyHard8 queens

P

NP

Bir çözümü o kadar kolay "kontrol edebilirsek", o zaman neden kolayca "bulamıyoruz"?

CS’de yaptığınız, ya sorunu çözersiniz ya da kimsenin yapamayacağını kanıtlarsınız.

ClassCheckFindPEasyEasyNPEasyEasy
P=NP

NPPNP


3
Belki de Scott'un açıklamasının özünü özetleyebilirsiniz.
Dave Clarke

2
P = NP'nin yaygarasının ne olduğunu hep merak etmişimdir, şimdi yapıyorum!
Lee Kowalkowski

P ∈ NP’den bu yana, NP’in P olmayan kısmı hakkında konuştuğunuzu açıklığa kavuşturabilirsiniz.
David,

+1 Bu konudaki pek çok harika cevap var, ancak P ve NP'nin ne anlama geldiğini bile belirlemeye çalışan tek kişi bu!
Mark E. Haase,

“Bir çözümü çok kolay bir şekilde“ kontrol edebilirsek ”, o zaman neden“ kolayca ”bulamıyoruz? --- bu soru henüz cevaplanmadı! Aksi takdirde, bu bana en iyi cevaptır.

19

İnsanların bilgisayarları kullandığı en önemli şeylerden biri arama yapmak. Google gibi programlara bile "arama motorları" denir ve bunlar günde milyonlarca kullanılır. Bir bilgisayar son zamanlarda Jeopardy'de insanları dövdü çünkü süper hızlı, tonlarca veriyi araştırabildi.

Ancak bazı şeyler bilgisayarların bile araması zor. Kulağa garip geliyor, değil mi? Bir örnek ters çarpmadır. Tabii ki "5 kez 3 kaç?" Dersem Bir nanosaniyede "15" diyebilirsiniz, whooosh! Ancak, "Hangi iki sayı bir araya toplanır 21 eşittir?" (Cevap 7, 3 bekleyin.) Doğru! Şimdi, hangi iki sayı birlikte çarpılır 23? (Cevap için ya da hayal kırıklığı için bekleyin.)

23 ile eşit olarak çarpılan tek iki sayı 1 ve 23'ün kendisidir. Bu biraz düşündü, değil mi? Ve 23 küçük bir sayıdır. Sayının yüzlerce rakam olup olmadığını düşünün. Ve mesele şu ki, dünyadaki en iyi programlar 7 yaşındaki bir çocuğun deneyebileceğinden çok daha iyi bir çarpımı tersine çeviremez, sadece bir sayıyı test eder, sonra bir sonraki, sonra bir sonraki. Bilgisayarlar daha hızlı yapabilir , ancak bir bilgisayara nasıl daha akıllı hale getirileceğini nasıl söyleyeceğimizi bilmiyoruz . İnsanlar bu konuda doktora alıyorlar ve bilgisayarlara sadece nasıl daha akıllı ters çarpma yapmalarını söyleyeceğini biliyorlar.

Yani belki daha akıllı bir yolu yoktur. Ama belki var, ve henüz bulamadık. Yani kısaca P / NP sorun: Ben hemen bir cevap tanıyabilir eğer -, 23 23 1 kez duh - Bu beni yardımcı olur aramak cevap daha hızlı? İnsanlar cevabı bulan kişinin evet ya da hayır olduğunu düşünerek milyon dolar kazanacağının çok önemli olduğunu düşünüyor.


4
İyi bir. Faktoringin tesadüfen kötü bir örnek olması önemli değildir (veya öyle mi?).
Raphael

4
Faktoring, Kil Matematik Enstitüsü'nün "P / NP'yi halka açıkla" videosunda Mike Sipser'in kullandığı örnekti. Onun için yeterince iyi olup olmadığını anlıyorum .....
Aaron Sterling

3
Alt küme toplamı sorunu henüz çarpma eğitimi almayan öğrencilere açıklanabilir!
Tegiri Nenashi

16

P-NP probleminin Sudoku açısından çok nazikçe açıklanabileceğini düşünüyorum. Sanırım söz konusu on yaşındaki çocuğun Sudoku ile aşina olduğunu düşünüyorum. Açıklamamda titizlikle sadeliği desteklemeye çalışacağım.

İşte P = NP'yi on yaşındaki bir varsayımcıya açıklama girişimi:

Bitmemiş bir Sudoku bulmacanız varsa ve bitirmek istiyorsanız, bunu yapmak gerçekten zor olabilir. Öte yandan, arkadaşınız sorunu çözerse ve aritmetik konusunda iyiyseniz, arkadaşınızın bulmacanın çözümünün doğru olup olmadığını kontrol etmek çok zor değildir.

P = NP sorusu henüz bitmemiş bir Sudoku bulmacasını çözmek için çok hızlı, adım adım bir işlem olup olmadığını soruyor. Adım adım süreç o kadar net ve kolay olmalı ki bir bilgisayar bile bunu anlayabilir ve Sudoku bulmacalarını otomatik ve çok hızlı bir şekilde çözmek için kullanabilir. Eğer bu kadar hızlı bir adım adım işlem varsa, bu, matematikçilerin “polinom zaman algoritması” dediği şey olurdu (yaşlandığınızda bunun ne anlama geldiğini açıklayacağım).

Aslında, bilgisayar bilimcileri ve bilgisayar programcıları, Sudoku kadar çözülmesi zor olan birçok başka bulmaca ve çok önemli sorunları tespit ettiler. Bu sorunların çözülüp çözülmeyeceğini bilmek gerçekten önemlidir, çünkü bilgisayarlar, yapabilecekleri birçok şeyi daha hızlı yapmamıza yardımcı olabilir. Örneğin, trenleri daha verimli bir şekilde programlamamıza, gizli kodları kırmamıza ve hatta yapay zekaya sahip gerçekten akıllı bilgisayarlar oluşturmak için yardım oluşturmamıza yardımcı olabilirler.

İnsanlar P = NP'yi çözebilselerdi olacak çok iyi şeyler olurdu. Tabii ki, bazı problemler de olacaktır, çünkü özel mesajları daha fazla gizli tutmak için gizli kodları kullanmak daha zor olacaktır.

Çoğu akıllı matematikçi, P = NP'nin doğru olmadığını düşünür. Başka bir deyişle, çoğu insan hiç kimsenin çok zor Sudoku bulmacalarını hızlıca çözemeyeceğini düşünür. Bununla birlikte, hiç kimse daha önce P'nin NP'ye eşit olmadığını ispatlayamamıştır, bu nedenle Kil Matematik Enstitüsü adlı bir kuruluş P = NP'nin doğru olduğunu veya ilkini kanıtladığının ilk kanıtı için bir milyon dolarlık bir ödül teklif ediyor. yanlış olduğunu kanıtla.

Gördüğünüz gibi, kelimenin tam anlamıyla "on yaşındaki bir çocuğa açıkla" kısmına aldım. :)

Bu yardımcı olur umarım.


Çok iyi bir girişim, ancak 10 yaşında bir sudoku bulmacasının ne olduğunu bilip bilmeyeceğimi bilmiyorum.
chazisop

2
@chazisop Tecrübelerime göre, sudoku bulmacalarının temel versiyonlarının (yani 4x4 ızgarada) 3. ve 4. sınıflardaki çocuklara alıştırma olarak verildiğini söyleyebilirim, bu yüzden mantıksız bir varsayım değil.
Bob Fraser,

n1000

1
@Mohsin, Çok rica ederim. @Raphael, P ve NP'yi düşürmem gerekmiyor; on yaşındaki bir çocuk P ve NP'nin ne anlama geldiğini bilmeye ihtiyaç duymadan sorunu tanımlamamı kabul edebilir ve sorunu atıfta bulunmadan nasıl açıklayabileceğimi bilmiyorum :). Ayrıca, tam doğrulukta netliği tercih ettiğimi de söyledim ... bu nedenle, "çok hızlı" ve "polinom zamanını" birbirinin yerine kullanmanın haksızlık olduğunu düşünmüyorum.
Philip White

Demek istediğim, "hızlı" kullanımın netlik yaratmadığıdır. P = NP olduğunu varsayarsak, belki de "sadece" sorun, "hızlı" çözülemeyen, ancak sadece yüksek dereceli polinom olan "hızlı" algoritmaları aradığımızdır.
Raphael

8

İşte anneme şöyle açıkladım, umarım size hizmet eder :)

Bir çözümü bulmanın kolay olduğu problemler var (P, ancak daha azına "kolayca çözülebilir" diyoruz), verilen bir çözümün doğru olup olmadığını kontrol etmenin kolay olduğu problemler var (NP, ancak bunları "kolayca kontrol edilebilir" olarak adlandıralım) ) ve kolayca çözülemeyen ve kolayca kontrol edilemeyen problemler. Basit olması için "Kolay" ın resmi olarak tanımlandığını ve her sorunun kendine has bir çözümü olduğunu varsayalım.

Şimdi, insanlar (matematik kullanarak) "kolayca çözülebilir" ve "kolayca kontrol edilebilir" olan bu iki kavram arasındaki ilginç ilişkileri kanıtladılar, öyle ki bazı problemler kolayca çözülemez ve bazıları da kolayca kontrol edilemez. Bu sonucun temel bir örneği, kolayca çözülebilen bir sorunun da kolayca kontrol edilebilir olmasıdır: sadece çözümünü bulun ve verilen çözümle karşılaştırın.

Bir sürü pratik problem için (örneğin, profesörlere ve sınıflara olası bir öğrenci ödevinin verilip verilmediğine karar verilmesi gibi, çok az marj olduğunda), bunu çözmenin "kolay" bir yolu olup olmadığı bilinmemektedir. Bir çözümün doğru olup olmadığının kolayca kontrol edilebileceği bilinmektedir. İnsanlar çok denedi ve başarısız oldu, sonra bunun mümkün olmadığını ve başarısız olduğunu da kanıtlamaya çalıştı: sadece bilmiyorlar. Bazıları kolayca kontrol edilebilen tüm sorunların kolayca çözülebilir olduğunu düşünüyor (bunun hakkında daha fazla düşünmeliyiz), bazıları bunun tersine, bu sorunlara kolay çözümler bulmak için zamanımızı boşa harcamamamız gerektiğini düşünüyor.

Öğrendiklerimiz, problemler arasındaki bağlantıların nasıl gösterileceğidir (örneğin, okula nasıl gideceğinizi biliyorsanız, sadece önündeki fırına nasıl gideceğinizi biliyorsunuz) ve diğer tüm kolay kontrol edilebilir problemlerle bağlantılı kolay kontrol edilebilir problemler ( NP tamamlandı, ama onlara "önemli problemler" diyelim, öyle ki) eğer birisi, bir gün, önemli problemlerden birinin kolayca çözüldüğünü gösterirse, kolayca kontrol edilebilir olan tüm problemlerin de kolayca çözülebilir olduğunu gösterir (yani P = NP). Öte yandan, eğer birisi ana problemin birinin kolayca çözülemeyeceğini gösteriyorsa, diğerlerinin hiçbiri de kolayca çözülemez (yani P <> NP).

Bu yüzden soru, pratikte göreceli olarak önem kazanmakta ve göreceli olarak önemlidir (bazıları alternatif "kolay" tanımlarına odaklanmamız gerektiğini savunsa da) ve insanlar tartışmaya oldukça fazla para ve zaman harcıyorlar.



1

Bu problemi 10 yaşına, hatta meslekten olmayan kişilere, anahtar kavramları yanlış beyan etmeksizin açıklamak konusunda biraz şüpheliyim.

"Kolaylık" - "sertlik" ile formüle edilmiş tüm kontrol çözümlerini bulmak için formüle edilen tüm açıklamalar, genel davada tartışmasız yanlış olan Cobham'ın tezini üstlenir ve en iyi kurallardan çok daha az kabul edilebilir.


Bu sorunun cevabı değil.
Dave Clarke

Neden olmasın? "P = NP sorununu 10 yaşındaki bir çocuğa nasıl açıklarsın?" Sorusuydu ve cevabım, sorunun muhtemelen yanlış olmadığını göstermeyen doğru bir açıklama olduğudur. Elbette cevabımı kabul etmiyor olabilirsin, ama neden soruyu yanıtlamadığını iddia ediyorsun?
Antonio Valerio Miceli-Barone

3
Kabul etmeme rağmen, bence bu olası bir cevap. P'yi “gerçek dünyada verimli bir şekilde çözülebilen problemler dizisi” gibi bir şeyle akılsız bir şekilde tanımlayamadığımız doğrudur. Ancak, bunun P =? NP problemini açıklamanın olasılığını reddettiğini düşünmüyorum. sezgisel düzeyde on yaşında bir çocuk. Örneğin, on yaşından büyük çocuklar bir çemberin alanını öğrenirler. Alanın titiz bir şekilde ele alınması , büyük özen gerektirir, ancak bu, alan kavramını sezgisel bir seviyede yararlı bir şekilde öğretme olasılığını dışlamaz.
Tsuyoshi Ito

P

1
P

1

Çeşitli klasik masa oyunları için kazanma stratejileri, örneğin, savaş gemisi (veya daha yakın zamanda) video oyunlarının, NP tamamlanmış olduğu kanıtlanmıştır ve bu, bazı temel teorileri yenilere sunmak / tanımlamak için mükemmel bir yoldur.

NP tam karar sorunu olarak savaş gemisi Merlijn Sevenster ICGA dergisi Eylül 2004

mayın tarama gemisi, matematikçi RW Kaye tarafından NP tam SSS . Matematiksel Görevlinin Bahar 2000 sayısı (cilt 22 sayı 2, sayfa 9-15)

Oyun zor bir iştir, ama birileri yapmak zorunda! Giovanni Viglietta'dan arxiv kağıdı. Pac-Man, Tron, Lode Runner, Boulder Dash, Deflektor, Mindbender, Pipe Mania, Skweek, Pers Prensi, Lemmings, Doom, Puzzle Bobble 3 ve Starcraft'ın hesaplama karmaşıklığını analiz eder.

Pacman yukarıdaki kağıt üzerinde sert aşırı teknoloji mag makalesi


ayrıca bakınız Kendall, Parkes, Spoerer ve algoritmalarla oyun oynamak: NP-KOMPLE BULMACA BİR ARAŞTIRMA : Demaine ve Hearn tarafından Algoritmik Kombinatoryal Oyun Teorisi
vzn

0

Ve işte benim sorunum bu.

Kido!

Biliyorsun hayatımızda birçok sorunla karşı karşıyayız. Zorluklar söyleyebilirsin. Bazıları zor, bazıları kolaydır. Örneğin, genellikle iki sayı eklemeniz gerekir. Ve geçen akşam satranç tahtasının içindeydik ve komşumuza karşı kazanmak zorunda kaldık. İki sayı eklemek, sınırlı adımlarla ilgili basit ve dürüst bir sorundur. Bu tür problemlere P sınıfı problemler denir, çünkü bir çözüm elde etmek için tekrar tekrar tekrarlanacak farklı adımlarla oldukça basit olan birçok problem vardır.

Öte yandan, dün geceki göğüs oyunumuzda, oyunu kazanmak için en iyi strateji ne olurdu? İlk piyonu bir adım, ikinci piyonu bir adım hareket ettirebiliriz, veya ikinci piyonu iki adımı ve ilk piyonu bir adım piyon olarak hareket ettirebiliriz, böylece çok ve çok olasılık vardır. Ama bize ya da bize en iyiyi veren ve tamamlayan bir emir veren tam bir hareket seti veren bir reçete var mı? Gördüğünüz gibi zorluyor çünkü her adımda bir sürü olasılık var. Carl Sagan'ın dediği gibi Milyarlar ve Milyarlar.

Ama canım, eğer sana bütün kurul pozisyonlarını söylersem ve sana bir çek arkadaşı olduğunu sorarsam? Kuşkusuz, birkaç sınavda kral için geriye kalan herhangi bir yasal hamle olup olmadığını hızlı bir şekilde anlatabileceksiniz.

Bu yüzden çözülmesi zor olan bu tür problemler ancak eğer çözümleri birkaç basit adımda kolayca doğrulanabilirse, bunlara NP problemleri denir.

Şimdi P = NP'nin ne anlama geldiğini soruyorsunuz? Aslında bu soru, basit bir ekleme için yaptığımız gibi tüm milyarlarca olasılıktan geçmeden bir satranç oyunu için en iyi stratejiyi veya sipariş edilen hamle listesini bulmak için basit bir çözüm bulabilmemizin bir yolu olduğu anlamına mı geliyor? Bu basit soru henüz cevaplanmamış. Gerçek veya reddedilme olduğuna dair hiçbir kanıtımız yok, ancak yaparsak, bu atılım olacaktır. Gerçekleşirse, medeniyetimiz çok karmaşık sorunları çözebilir ve bunları P sınıfı problemlere dönüştürebilir. İnsanlar saniyeler içinde şifreleri kırabilecekler, mesajların şifresi çözülecek ve çok daha fazlası olacak ve bu yüzden bu sorunun binyılın en önemli sorunlarından biri olduğu düşünülüyor.


Metni sıkılaştırmaya değer olabilir. Bunu sesli okumayı denedin mi?
András Salamon

Her şey bence matematiksel tanımlar gibi sıkılmamalıdır.
Mohsin Hijazee

Metni çok fazla sıkarsanız, normal insan bir sonraki kavramı görmeden önce bir kavramı anlamak için yeterli "alana" sahip olmayacaktır.
Ian Ringrose

n×n

Bu bağlantı öncekinden daha açık olabilir: cstheory.stackexchange.com/questions/6563/…
Juan Bermejo Vega
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.