“P = NP?” Nedir ve neden bu kadar ünlü bir soru? [kapalı]


234

P = NP'nin Bilgisayar Bilimlerinde belki de en ünlüsü olup olmadığı sorusu. Bu ne demek? Ve neden bu kadar ilginç?

Oh, ve ekstra kredi için, lütfen ifadenin doğruluğunun veya yanlışlığının kanıtını gönderin. :)


11
Scott Aaronson, MIT tarafından güzel bir şekilde ortaya konduğu gibi, "P = NP ise, dünya genellikle bizim varsaydığımızdan çok farklı bir yer olurdu." Yaratıcı sıçramaları "için özel bir değer olmazdı. bir senfoniyi takdir edebilen herkes Mozart, adım adım argüman izleyebilen herkes Gauss olurdu ... " en.wikipedia.org/wiki/Complexity_classes_P_and_NP'den alıntı .
gts

Yanıtlar:


365

P, polinom zamanı anlamına gelir. NP, deterministik olmayan polinom zamanı anlamına gelir.

Tanımlar:

  • Polinom zamanı , algoritmanın karmaşıklığının O (n ^ k) olduğu, burada n verilerinizin boyutu (örneğin, sıralanacak bir listedeki öğe sayısı) ve k sabittir.

  • Karmaşıklık , veri öğelerinin sayısının bir fonksiyonu olarak alacağı işlem sayısında ölçülen süredir.

  • Operasyon , belirli bir görev için temel bir operasyon olarak anlamlı olan şeydir. Sıralama için temel işlem bir karşılaştırmadır. Matris çarpımı için temel işlem iki sayının çarpımıdır.

Şimdi soru şu, deterministik ve deterministik olmayan ne anlama geliyor? Soyut bir hesaplama modeli var, Turing makinesi (TM) adı verilen hayali bir bilgisayar. Bu makine sonlu sayıda duruma ve içine sınırlı bir dizi sembolün yazılabildiği ve okunabildiği ayrı hücrelere sahip sonsuz bir banda sahiptir. Herhangi bir zamanda, TM durumlarından birinde ve banttaki belirli bir hücreye bakıyor. Bu hücreden ne okuduğuna bağlı olarak, bu hücreye yeni bir sembol yazabilir, bandı bir hücre ileri veya geri hareket ettirebilir ve farklı bir duruma geçebilir. Buna durum geçişi denir. Şaşırtıcı bir şekilde, durumları ve geçişleri dikkatlice oluşturarak, yazılabilecek herhangi bir bilgisayar programına eşdeğer bir TM tasarlayabilirsiniz.

Burada bizi ilgilendiren iki tür TM vardır: deterministik ve deterministik olmayan. Deterministik bir TM, kasetten okuduğu her sembol için her durumdan yalnızca bir geçişe sahiptir. Deterministik olmayan bir TM böyle bir geçişe sahip olabilir, yani aynı anda birkaç olasılığı kontrol edebilir. Bu, birden çok iş parçacığının doğması gibidir. Fark, deterministik olmayan bir TM'nin istediği kadar "iş parçacığı" üretebilmesidir, ancak gerçek bir bilgisayarda aynı anda yalnızca belirli sayıda iş parçacığı (CPU sayısına eşit) yürütülebilir. Gerçekte, bilgisayarlar temelde sonlu bantlara sahip deterministik TM'lerdir. Öte yandan, kuantum bilgisayar dışında, deterministik olmayan bir TM fiziksel olarak gerçekleştirilemez.

Deterministik olmayan bir TM tarafından çözülebilecek herhangi bir sorunun deterministik bir TM tarafından çözülebileceği kanıtlanmıştır. Ancak ne kadar zaman alacağı belli değil. P = NP ifadesi, eğer bir problem deterministik olmayan bir TM üzerinde polinom zaman alırsa, o zaman aynı problemi polinom zamanda da çözecek olan deterministik bir TM oluşturabilir. Şimdiye kadar hiç kimse bunun yapılabileceğini gösteremedi, ancak hiç kimse bunun yapılamayacağını da kanıtlayamadı.

NP-tam problemi, herhangi bir NP problemi Y'nin bir polinom indirgemesi ile X'e indirgenebileceği şekilde bir NP problemi X anlamına gelir. Bu, eğer herkes NP-komple problemine bir polinom-zaman çözümü bulursa, bunun herhangi bir NP problemine polinom-zaman çözümü de getireceğini ima eder. Bu P = NP olduğunu kanıtlar. Tersine, eğer birisi P! = NP'yi kanıtlayacak olsaydı, geleneksel bir bilgisayarda polinom zamanında NP problemini çözmenin bir yolu olmadığından emin olurduk.

NP-tamamlama sorununun bir örneği, n değişkenini içeren bir boole ifadesini doğru kılacak bir doğruluk ataması bulma sorunudur.
Uygulamada an için deterministik olmayan TM üzerinde polinom zaman alan herhangi bir problem sadece deterministik bir TM veya geleneksel bir bilgisayarda üstel zamanda yapılabilir.
Örneğin, doğruluk ataması problemini çözmenin tek yolu 2 ^ n olasılığı denemektir.


5
SAT'ı çözmenin tek yolunun davaların numaralandırılması olduğu doğru değildir. Bkz en.wikipedia.org/wiki/... aslında birçok ortak durumlarda çok etkilidir DPLL algoritması üzerinde bilgi için.
Doug McClean

44
Derek, katılmıyorum yalvarıyorum. Turing makineleri olmadan P ve NP'yi nasıl açıkladığınızı gerçekten görmüyorum. Bir zamanlar bunu deneyen bir algoritma sınıfındaydım. Eğer TM'leri bilmeseydim, tamamen kaybolurdum.
Dima

4
Uygulamada , NP-tam sorunlarının çözülmesinin gerçek bir bilgisayarda polinom zamanından daha uzun sürdüğü doğrudur , ancak bunun anlamı bu değildir, P = NP'nin bilinmemesinin bir sonucu olarak sadece sanatın mevcut durumu. Herhangi bir NP-tam problemini çözmek için bir polinom algoritması bulmuş olsaydı, bu P = NP'yi kanıtlardı ve bunun haberlerde yer alacağı için olmadığını biliyoruz! Tersine, P! = NP olduğu kanıtlanmışsa, polinom zamanında NP-tam bir sorunun çözülemeyeceğini güvenle söyleyebiliriz.
Steve Jessop

21
Bunun oldukça eski olduğunu biliyorum, ama sadece cevabın destansı olduğunu ve benim için ilk tıklayanı söylemek istiyorum! İyi iş
Dimitar Dimitrov

4
İkinci paragraftan son paragrafa kadar düzeltme: " Geleneksel bir bilgisayarda polinom zamanında NP Tam sorununu çözmenin bir yolu olmadığından emin oluruz ", çünkü P NP'in bir alt kümesidir ve P! = NP'nin mutlaka NP'de NP-Complete olmayan sorunların aslında P'de olduğu
Millie Smith

88
  1. Eğer cevap polinom zamanında hesaplanabiliyorsa, evet ya da hayır problemi P'dir ( P olynom zamanı).
  2. Bir evet-hayır sorun olduğunu NP ( N on-deterministik P evet cevabı edilebilirse olynomial zamanı) doğrulanmış polinom zamanda.

Sezgisel olarak, bir problem P'de ise NP'de olduğunu görebiliriz . Bir sorun için potansiyel cevap Verilen P , biz sadece cevabı yeniden hesaplayarak cevap doğrulayabilir.

Daha az belirgin ve çok daha zor cevap, tüm sorunların olup olmadığıdır NP içindedir P . Bir cevabı polinom zamanında doğrulayabileceğimiz gerçeği, bu cevabı polinom zamanında hesaplayabileceğimiz anlamına mı geliyor?

NP- komplet olduğu bilinen çok sayıda önemli problem vardır (temel olarak, eğer bu problemlerin P'de olduğu kanıtlanırsa , tüm NP problemlerinin P'de olduğu kanıtlanmıştır ). Eğer P = NP , o zaman tüm bu sorunların etkili (polinom zamanlı) çözüm olması kanıtlanacak.

Çoğu bilim adamı P ! = NP olduğuna inanır . Ancak, P = NP veya P ! = NP için henüz bir kanıt belirlenmemiştir . Eğer herhangi bir varsayım için kanıt varsa, 1 milyon dolar kazanırlar .


23

Düşünebileceğim en basit cevabı vermek için:

Belirli sayıda girdi alan ve belirli girdiler için sorunu çözebilecek veya çözmeyebilecek çeşitli potansiyel çözümlere sahip bir sorunumuz olduğunu varsayalım. Bir bulmaca dergisindeki mantık bulmacası iyi bir örnek olacaktır: girdiler şartlardır ("George mavi veya yeşil evde yaşamıyor") ve potansiyel çözüm ifadelerin bir listesidir ("George sarı renkte yaşıyor ev, bezelye büyür ve köpek sahibi "). Ünlü bir satıcı Seyahat Satıcısı sorunudur: bir şehir listesi ve herhangi bir şehirden diğerine geçme süreleri ve zaman sınırı göz önüne alındığında, potansiyel bir çözüm, satıcının ziyaret ettiği sırayla şehirlerin bir listesi ve seyahat sürelerinin toplamı zaman sınırından az olsaydı işe yarardı.

Potansiyel bir çözümü işe yarayıp yaramadığını görmek için böyle bir sorun NP'dedir. Örneğin, satış elemanının sırayla ziyaret etmesi gereken şehirlerin bir listesi verildiğinde, şehirler arasındaki her yolculuk için süreleri toplayabilir ve zaman sınırı altında olup olmadığını kolayca görebiliriz. Eğer bir problem varsa etkili bir şekilde bir çözüm bulabilirsek, problem P'dir.

(Verimli bir şekilde, burada kesin bir matematiksel anlamı vardır. Pratik olarak, büyük problemlerin çözülmesi mantıksız bir şekilde zor değildir. Olası bir çözüm ararken, olası tüm çözümleri veya buna yakın bir şeyi listelemek için verimsiz bir yol olacaktır. , etkili bir yol çok daha sınırlı bir kümenin aranmasını gerektirir.)

Bu nedenle, P = NP problemi şu şekilde ifade edilebilir: Yukarıda tarif edilen türde bir problemin çözümünü verimli bir şekilde doğrulayabilirseniz, etkili bir şekilde bir çözüm bulabilir (veya hiçbiri olmadığını kanıtlayabilir misiniz)? Açık cevap "Neden bunu yapabilmelisiniz?" Dir ve bu da konunun bugün durduğu noktadır. Kimse bunu şu ya da bu şekilde kanıtlayamadı ve birçok matematikçi ve bilgisayar bilimcisini rahatsız ediyor. Bu yüzden çözümü kanıtlayabilen herkes Claypool Vakfı'ndan bir milyon dolara kadar.

Genel olarak P'nin NP'ye eşit olmadığını, çözüm bulmanın genel bir yolu olmadığını varsayıyoruz. P = NP olduğu ortaya çıkarsa, birçok şey değişecekti. Örneğin, kriptografi imkansız hale gelir ve bununla birlikte internette her türlü gizlilik veya doğrulanabilirlik olur. Sonuçta, şifrelenmiş metni ve anahtarı verimli bir şekilde alıp orijinal metni üretebiliriz, bu nedenle P = NP olursa, anahtarı önceden bilmeden verimli bir şekilde bulabiliriz. Şifre kırma önemsiz hale gelir. Diğer yandan, etkin bir şekilde çözebileceğimiz tüm planlama problemleri ve kaynak tahsisi problemleri sınıfları vardır.

NP-complete açıklamasını duymuş olabilirsiniz. Bir NP-tam problemi NP (elbette) olan ve bu ilginç özelliğe sahip olan sorudur: P'de ise, her NP problemi ve bu yüzden P = NP'dir. Gezgin Satıcı problemini etkili bir şekilde çözmenin bir yolunu veya bulmaca dergilerinden mantık bulmacalarını bulabilirseniz, NP'deki her şeyi etkili bir şekilde çözebilirsiniz. Bir NP-tam problemi, bir bakıma, en zor NP problemidir.

Bu nedenle, herhangi bir NP-tam problemi için etkili bir genel çözüm tekniği bulabilir veya böyle bir şeyin olmadığını kanıtlarsanız, şöhret ve servet size aittir.


1
Son paragrafınızda "bir bakıma, en zoru" var. NP-complete'un en zor olduğunu söylemelisiniz, çünkü NP-hard.
grom

1
Bu servetin senin olacağından emin değilim. Hükümet kafanızı isteyebilir.
Millie Smith

9

Mütevazi bilgimden kısa bir özet:

Oldukça hızlı hesaplanabilen (grafikte iki nokta arasındaki en kısa yolu bulmak gibi) bazı kolay hesaplama problemleri vardır (O (n ^ k), burada n girişin boyutu ve k sabittir ( grafik durumunda, köşe veya kenar sayısıdır)).

Bir grafikteki her tepe noktasını geçen bir yol bulmak veya RSA özel anahtarını ortak anahtardan almak gibi diğer sorunlar daha zordur (O (e ^ n)).

Ancak CS konuşması, sorunun deterministik olmayan bir Turing makinesini deterministik bir makineye 'dönüştüremeyeceğimizi' söyler, ancak deterministik olmayan sonlu otomatları (regex ayrıştırıcısı gibi) deterministik olanlara dönüştürebiliriz (iyi, olabilir, ancak makinenin çalışma süresi uzun sürer). Yani, mümkün olan her yolu denemek zorundayız (genellikle akıllı CS profesörleri birkaçını hariç tutabilir).

Bu ilginç çünkü kimsenin çözüm hakkında hiçbir fikri yok. Bazıları bunun doğru olduğunu söylüyor, bazıları bunun yanlış olduğunu söylüyor, ancak fikir birliği yok. Bir başka ilginç şey, bir çözümün genel / özel anahtar şifrelemeleri (RSA gibi) için zararlı olacağıdır. Artık bir RSA anahtarı oluşturmak kadar kolay kırılabilir.

Ve bu oldukça ilham verici bir problem.


1
Bu tam olarak doğru değil - bir NDTM'yi bir DTM'ye dönüştürebilirsiniz, ancak yeni makinenin orijinalin çalışma süresinde üstel bir çalışma süresi vardır (önce NDTM'nin durum geçiş grafiğini etkili bir şekilde araştırırsınız).
Adam Wright

6

Sorunun P =? NP kısmının neye ve nedenine ekleyebileceğim pek bir şey yok, ancak kanıt açısından. Bir kanıt sadece fazladan bir krediye değmez, aynı zamanda Milenyum Sorunlarından birini de çözerdi . Son zamanlarda ilginç bir anket yapıldı ve yayınlanan sonuçlar (PDF) bir kanıt konusu konusunda kesinlikle okunmaya değer.


5

İlk olarak, bazı tanımlar:

  • Belirli bir problem, bir çözümü n^kbazılarına göre daha az zamanda hesaplayabiliyorsanız , girişin boyutu knerede n? Örneğin, sıralama n log n, daha az olan bir sıralamada yapılabilir n^2, bu nedenle sıralama polinom zamanıdır.

  • kEn fazla n^kzamanda doğrulayabileceğiniz boyutta bir çözüm bulunacak şekilde mevcutsa, NP'de bir problem vardır n^k. Grafiklerin 3 renklendirilmesini alın: bir grafik verildiğinde, 3 renklendirme, boyutu olan (tepe noktası, renk) çiftlerinin bir listesidir O(n)ve tüm komşuların farklı renklere sahip olup olmadığını zamanında O(m)(veya O(n^2)) doğrulayabilirsiniz . Dolayısıyla, grafik sadece kısa ve kolayca doğrulanabilir bir çözüm olduğunda 3 renklendirilebilir.

NP eşdeğer tanımı sorunları Çözülebilir" bir N de ondeterministic Turing makinesi P olynomiyal zamanında " dir. Bu size adın nereden geldiğini söylese de, NP sorunlarının nasıl olduğu hakkında aynı sezgisel hissi vermez.

P'nin NP'nin bir alt kümesi olduğuna dikkat edin: polinom zamanında bir çözüm bulabilirseniz, polinom zamanında doğrulanabilecek bir çözüm vardır - sadece verilen çözümün bulabileceğinize eşit olup olmadığını kontrol edin.

Soru neden P =? NPilginç? Bunu cevaplamak için önce NP-tamamlama problemlerinin ne olduğunu görmelidir. Basitçe söylemek gerekirse,

  • (1) L, P ise ve (2) L'yi çözen bir algoritma NP'deki herhangi bir L 'problemini çözmek için kullanılabiliyorsa, bir L problemi NP-tamamlanmış olur; yani, bir L 'örneği verildiğinde, yalnızca L' örneğinin bir çözümü varsa çözümü olan bir L örneği oluşturabilirsiniz. Resmi olarak, NP'deki her L 'problemi L'ye indirgenebilir .

L örneğinin polinom-zaman hesaplanabilir olması ve L 'boyutunda polinom boyutuna sahip olması gerektiğini unutmayın; bu şekilde, NP-tam problemini polinom zamanında çözmek bize herkese polinom zaman çözümü verir NP problemlerine .

İşte bir örnek: varsayalım ki grafiklerin 3 renklendirilmesi NP zor bir problemdir. Boole formüllerinin tatmin edilebilirliğine karar vermenin de NP açısından zor bir sorun olduğunu kanıtlamak istiyoruz.

Her köşe v için, iki v_h ve v_l boole değişkeni ve gereksinimi (v_h veya v_l) vardır: her çift sadece 1, 2 ve 3 rengi olarak düşünebileceğimiz {01, 10, 11} değerlerine sahip olabilir.

Her kenar için (u, v), (u_h, u_l)! = (V_h, v_l) şartı aranır. Yani,

not ((u_h and not u_l) and (v_h and not v_l) or ...) her ikisinde de geçerli olmayan tüm eşit konfigürasyonları ve şartları numaralandırmak.

ANDBütün bu kısıtlamaları bir araya getirmek, polinom boyutu ( O(n+m)) olan bir boole formülü verir . Hesaplamak için polinom zamanının geldiğini kontrol edebilirsiniz: doğrudan yapıyorsunuzO(1) köşe başına ve kenar başına şeyler .

Yaptığım boolean formülünü çözebilirseniz, grafik rengini de çözebilirsiniz: v_h ve v_l değişkenlerinin her çifti için, v renginin bu değişkenlerin değerleriyle eşleşen renk olmasına izin verin. Formülün oluşturulmasıyla, komşuların eşit renkleri olmayacaktır.

Dolayısıyla, grafiklerin 3 renklendirmesi NP-tamamlanmışsa, boolean-formül-doyurulma da böyledir.

Grafiklerin 3 renklendirilmesinin NP-tam olduğunu biliyoruz; Bununla birlikte, tarihsel olarak, önce boolean-devre-satisfiability'nin NP-bütünlüğünü göstererek ve sonra bunu 3-renklendirilebilirliğe (tersi yönde) indirerek biliyoruz.

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.