Not: Cevabı henüz dikkatlice kontrol etmedim ve yazılacak eksik parçalar var, ilk taslak olarak düşünün.
Bu cevap temel olarak karmaşıklık teorisi veya ilgili alanlarda araştırmacı olmayan insanlar içindir. Bir karmaşıklık teorisyeniyseniz ve cevabı okuduysanız, lütfen herhangi bir sorunu fark ederseniz veya cevabı geliştirmekle ilgili bir fikriniz varsa bana bildirin.
Talep edilen P ve NP çözümlerini nerede bulabilirsiniz?
P ve NP'nin nasıl çözülmeyeceğine dair diğer listeler
Lance Fortnow, Öyleyse Sizi Yerleştiğini Düşünün NP , 2009
Scott Aaronson, Sekiz İddia Edilen P ≠ NP Kanıtı Yanlış Oldu , 2010
İçin Polymath sayfa Deolalikar en kağıt , ileri okumalar bölüm sorun hakkında referansların güzel bir listesi vardır.
P-NP'ye nasıl yaklaşılmaz
İşe yaramayacak fikirler anlamında değil, daha genel anlamda "P'ye nasıl NP'ye yaklaşılmayacağını " tartışalım . P ve NP, kolayca ifade edilebilecek bir problemdir ( buradaki cevabım bakınız ):
NP = P: Polinom zaman doğrulama algoritmasıyla ilgili her karar sorunu için bir polinom zaman algoritması vardır.
Veya eşdeğer olarak
SAT için bir polinom zaman algoritması vardır.
SAT, NP tamamlayıcı bir problemle değiştirilebilir .
.
Genellikle insanlar sorunu aşar ve felsefe eder ve problemin pratik önemini abartır (yukarıda belirtildiği gibi). Bu tür ifadeler genellikle sezgi vermek içindir, ancak problemin gerçek matematiksel ifadesinin yerine geçmezler.
Teorik verimlilik pratikte fizibilite ile aynı değildir .
İlk önce abartılı pratik sonuçlara sahip olayım.
I. P = NP olabilir ancak pratikte herhangi bir soruna yardımcı olmaz!
Örneğin SAT'nin P'de olduğunu ancak çalışma süresi için en hızlı algoritmanın olduğunu söyleyin
. Bu algoritma pratik bir kullanım değildir.2264n65536+22128
II. P NP olabilir ve NP tamamlama problemlerini verimli bir şekilde çözebiliriz .≠
Örneğin SAT'ın P'de olmadığını, ancak çalışma zamanına sahip bir algoritması olduğunu söyleyin .nlg∗lg∗n
yapacak bir girdi vermek için, evrende olduğu düşünülen daha fazla elektron kullanmanız gerekir. Yani üs, esasen .2lg∗n>62
Buradaki ana nokta, P'nin verimli bir hesaplamanın soyut basit bir modeli olduğu, en kötü durum karmaşıklığının, bir hesaplamanın maliyetini tahmin eden soyut basit bir model olduğu vs. Gerçekten verimli bir algoritma olarak yukarıdaki (I) 'deki gibi. P güzel bir soyut modeldir, hoş özelliklere sahiptir, teknik sorunları kolaylaştırır ve faydalıdır. Bununla birlikte, tüm matematiksel soyutlamalar gibi, pratikte umursayabileceğimiz detayları gizler. Daha rafine edilmiş çeşitli modeller var, ancak model ne kadar karmaşık olursa tartışması o kadar iyi olmaz.
İnsanların pratikte umursadığı şey , makul miktarda kaynak kullanmayı umdukları durumlar için soruna bir cevap hesaplamaktır . Göreve bağlı ve dikkate alınmalıdır.
NP zorlu problemlerin pratik örnekleri için daha iyi algoritmalar bulmaya çalışmak ilginç ve değerli bir çabadır. Endüstride kullanılan ve milyonlarca değişkenle birlikte SAT'ın pratik örneklerini çözebilen SAT-çözücü sezgisel algoritmalar vardır. Uluslararası SAT Yarışması bile var .
(Ancak, tüm bu algoritmaların başarısız olduğu ve oldukça başarısız olduğu küçük somut durumlar da var, aslında tüm modern SAT-çözücülerinin önermeli Güvercin Deliği Prensibi gibi basit örnekleri çözmek için katlanarak zaman aldıklarını kanıtlayabiliriz .)
Unutmayın programların doğruluğu ve çalışma süresi örneklerinde program çalıştırarak sadece elde edilemez . Kaç tane örnek denediğiniz önemli değil, hiçbir miktar yeterli değil. Sınırsız sayıda giriş vardır ve bunların tümü için programın doğruluğunu ve verimliliğini (çalışma zamanı polinomdur) göstermek zorundasınız. Kısacası, matematiksel doğruluk ve verimlilik kanıtına ihtiyacınız var. Matematiksel kanıtın ne olduğunu bilmiyorsanız, önce bazı temel matematiği öğrenmelisiniz (ayrı bir matematik / birleştirici / grafik teorisi ders kitabı okuyun, bunlar matematiksel kanıt olarak kabul edilenler hakkında bilgi edinmek için iyi bir konudur).
Ayrıca P'ye karşı NP ile ilgili diğer iddialara ve cevaplarının sonucuna dikkat edin. Bu iddialar genellikle benzer basitleştirmelere dayanır.
Karmaşıklık teorisyenleri P-NP'ye bir cevabı gerçekten umursamıyorlar!
Biraz abarttım. Tabii ki, P'ye karşı NP'e bir cevabı önemsiyoruz. Ancak bunu bir bağlamda önemsiyoruz. P'ye karşı NP bizim amiral sorunumuzdur, ancak asıl amaç bu değildir. Sorunu açıklamak kolaydır, birçok temel fikir içerir, konuya aşina olmayan insanlara ilgi duyduğumuz soru türlerini açıklamakta faydalıdır. Ancak soruyu cevaplamak için bir bit Evet / Hayır cevabını aramıyoruz.
Biz aramak verimli hesaplama doğasının daha iyi anlaşılmasını . Sorunun çözülmesinin böyle bir anlayışla ortaya çıkacağına inanıyoruz ve bunu önemsememizin gerçek sebebi bu. Çok büyük bir araştırma grubunun parçası. Eğer yaptığımız şeyin tadına varmak istiyorsanız, iyi bir karmaşıklık teorisi ders kitabına bakınız, örneğin Arora ve Barak'ın “ Karmaşıklık Teorisi: Modern Bir Yaklaşım ” ( taslak versiyon ).
Birinin şifreli tamamen resmi bir P NP kanıtı ile geldiğini varsayalım ve kanıtın birkaç bitini seçerek ve şifresini çözerek çok yüksek bir güven derecesinde doğruluğunu doğrulayabiliriz (bkz. Sıfır Bilgi Kanıtı ve PCP teoremi ) . Böylece hata olasılığını, evimize çarpan bir meteordan daha az hata olasılığını doğrulayabiliriz, ispatın doğru ve P = NP olduğundan eminiz, ancak ispatı bilmiyoruz. Bizim için pek tatmin edici veya heyecan verici olmayacak. Resmi kanıtın kendisi de tatmin edici olmayacak. Aradığımız şey resmi bir kanıt değil, aradığımız şey anlayıştır.≠
Kısacası, bir karmaşıklık teorisyeni açısından
P - NP, Evet / Hayır cevabına sahip bir bilmece değildir. P ve NP'ye bir cevap ararız çünkü bunun verimli hesaplamanın doğasını daha iyi anlayacağını düşünüyoruz. Anlayışımızda önemli bir ilerleme olmadan bir cevap çok ilginç değil.
Uzman olmayanların P'ye karşı NP için çözümler talep ettiği çok fazla zaman olmuştur ve bu iddialar karmaşıklık teorisi üzerine sadece standart bir kitap okudukları takdirde yapamayacakları sorunlardan muzdariptir.
Yaygın sorunlar P = NP
P = NP iddiası daha yaygın görünüyor. Aşağıdaki en yaygın tür olduğunu düşünüyorum. Birisi bir fikri var ve bir program yazıyor ve birkaç durumda test ediyor ve polinom zamanı olduğunu düşünüyor ve NP tamamlanmış bir sorunu doğru şekilde çözüyor. Yukarıda açıkladığım gibi, hiçbir test miktarı P = NP göstermeyecektir. P = NP matematiksel kanıtı ihtiyacı değil, sadece bir programı gibi görünüyor polinom zamanda NP-tam sorunu çözmek için.
Bu girişimler tipik olarak iki meselenin birinden muzdariptir:
I. Algoritma gerçekten polinom zamanı değildir.
II. algoritma tüm örnekleri doğru şekilde çözmüyor.
P NP argümanının doğru olmadığını gösterir≠
[yazılacak]
Nasıl algoritma olmadığını kontrol etmek değil gerçekten işe
Algoritmanızın test ederek düzgün çalıştığını gösteremezsiniz. Ancak test ederek doğru çalışmadığını gösterebilirsiniz! Öyleyse, biraz çalışma yapmaya istekli iseniz, algoritmanızın doğru olmadığından nasıl emin olabilirsiniz.
Öncelikle, SAT örneklerini (standart CNF formatında) çözdüğünüz NP-zor problemine dönüştürmek için bir program yazın. SAT en çok çalışılan NP zorlu sorunlardan biridir ve diğer sorunlardan SAT'a indirgenmeler genellikle kolaydır. İkincisi, sanat eseri SAT-çözücülerinin mücadele ettiği (örneğin SAT yarışmasından örnekleri alın) örneklerini alın ve bunları algoritmanıza besleyin ve algoritmanızın nasıl performans gösterdiğini görün. Öngörülen Güvercin Deliği Prensibi (ve bunları özel durumlar olarak zor kodlayarak aldatmaz), şifreleme örnekleri ( RSA Faktoring Zorlukları gibi ), eşiğe yakın rasgele k-SAT örnekleri , vb. Gibi bilinen sert örnekleri deneyin .
Benzer şekilde, algoritmanızın verimli olmadığını kontrol edebilirsiniz. Örneğin, algoritmanızın çalışma süresinin olmadığını düşünüyorsanız, ancak 1000 boyutunda bir örneği çözmek günler alıyor. Algoritmanızın sahip olduğunu düşündüğünüz polinom en kötü durumdaki çalışma zamanı üst sınırını düzeltin. Örnekleri alın ve algoritmanızın bunları çözmek için harcayacağı zamanı tahmin edin ve tahminlerinize uyup uymadığını kontrol edin.10n2
Algoritmik bilgilerinizi nasıl kontrol edebilirsiniz P = NP fikri işe yaramaz
Bunları yaparsanız, algoritmanızın çalışmadığından emin olursunuz (eğer teknolojinin SAT-çözücülerinden daha iyi çalışıyorsa, bir sonraki yarışmaya katılır ve birçok kişi algoritmanızı ve fikirlerinizi çalışmakla ilgilenir).
Artık gerçekten işe yaramadığını biliyorsunuz ama bu yeterli değil. Nedenini bilmek istiyorsun
algoritmamın düzeltilebilecek küçük bir sorunu çözmemesi mi yoksa çalışamamasının temel bir nedeni var mı?
Bazen algoritmadaki problem basittir ve kişi neyin yanlış olduğunu kavramsal olarak tanımlayabilir. En iyi sonuç, fikrinizin çalışamamasının nedenini anlamanızdır. Genellikle durum böyle değil, fikriniz işe yaramıyor ama nedenini bulamıyorsunuz. Bu durumda aklınızda bulundurun:
neden bazı fikirlerin işe yaramadığını anlamak P ile NP'yi çözmekle daha zor olabilir!
Fikrinizi yeterince resmileştirirseniz, belirli fikirlerin sınırlarını ispatlayabilirsiniz (örneğin, açgözlü algoritmanın belirli formalizasyonlarının NP-tamam sorunlarını çözemediğini söyleyen sonuçlar vardır). Ancak, daha da zordur ve standart bir karmaşıklık teorisi ders kitabı okumadıysanız çok fazla şansınız olmaz.
Bazen algoritmanın niçin çalışması gerektiğine dair net bir kavramsal fikir bile yoktur, yani iyi anlaşılmayan bazı sezgilere dayanır . Algoritmanızın neden çalışması gerektiğine dair net bir kavramsal fikriniz yoksa, bunun neden işe yaramadığını anlama şansınız olmayabilir!
P NP hak talepleriyle ilgili genel sorunlar≠
Uzmanların çoğu P NP'nin P = daha muhtemel olduğunu düşünüyor olsa da , bu iddiaların daha az yaygın olduğu görülmektedir. Bunun nedeni, alt sınırları kanıtlamanın, algoritmalar tasarlamaktan daha zor bir görev gibi gözükmesidir (ancak genellikle alt sınırları ve üst sınırları kanıtlamak özünde ilişkilidir ).≠
Sayı 1: Yazar P ve NP'nin tanımını bilmiyor ya da daha da kötüsü matematiksel bir kanıtın ne olduğunu anlamıyor. Yazar, temel ne matematiksel eğitimden yoksun olduğundan, ne sunduğunu söylendiğinde anlamadığı bir kanıt değildir (örneğin, adımlar öncekilerden takip etmez).
Sayı 2: yazar "nasıl yapılacağını bilmiyoruz" u "matematiksel imkansızlık" ile karıştırır. Örneğin, haksız çeşitli varsayımlar yaparlar ve sorulduğunda "neden bu ifadenin doğru olduğunu?" "nasıl yanlış olabilir?" diye yanıtlıyorlar. Yaygın olanlardan biri, problemi çözen herhangi bir programın belirli adımlar atması gerektiğini, örneğin problemi çözmenin alternatif bir yolunu düşünemediği için belirli ara değerleri hesaplaması gerektiğini varsaymaktır.
[tamamlanacak]
P NP argümanının doğru olmadığını gösterir≠
[yazılacak]
K nasıl kontrol edilir NP fikri çalışamaz≠
Bir iddia bu temel sorunlardan muzdarip değilse, o zaman reddetmek daha zor hale gelir. Birinci seviyede, tartışmadaki yanlış bir adım bulunabilir. Yazarın tipik cevabı, düzeltebileceğim ve bu ileri geri devam edebildiğimdir. P = NP çözümlerine benzer şekilde, özellikle fikrin gayrı resmi olduğunda, işe yaramayacağını gösterebilecek bir fikri olan temel bir sorun bulmak genellikle çok zordur.
En iyi durumda, fikri formüle edebilir ve fikrin işe yaramayacağını gösteren engeli belirleyebilirsek, yeni bir bariyer sonucu ortaya P> NP devre alt sınırlarını kullanarak Doğal Kanıtlar bariyerine yol açan devre budur. ).≠