Neden polinom süresine “verimli” denir?


50

Neden bilgisayar bilimlerinde en fazla polinom olan herhangi bir karmaşıklığın verimli olduğu düşünülmektedir?

Herhangi bir pratik uygulama için (a) , karmaşıklığı olan algoritmalar, zaman içinde çalışan, diyelim ki algoritmalardan çok daha hızlıdır , ancak ikincisi verimli iken ilk olarak verimsiz olarak kabul edilir. Mantık nerede? n 80nlognn80

(a) Örneğin, evrendeki atomların sayısının yaklaşık varsayalım .1080


3
Senin fikrinle aynı fikirde olduğumdan emin değilim. Bence çoğu insan oldukça yetersiz olduğunu düşünür (tabii ki sabitlere ve çözülmekte olan soruna bağlı olsa da). n80
sepp2k

16
Çok verimsiz herhangi bir için düşünürdüm . Mantıksız bir uç noktaya alınan bir asimptotik analiz örneğiniz var. çalışma zamanı ile hiçbir doğal algoritma (bildiğim kadarıyla) yoktur . Bununla birlikte, bazı problemler için çalışma süresi olan doğal algoritmalar ve bu tür problemler için bir polinom algoritmasının olup olmadığına dair karmaşıklık teorisindeki temel sorular vardır. c > 3 n 80 2 nncc>3n802n
Joe

5
Bence bu soru reddedilmemeli çünkü insanlar öncüllere katılmıyor (bunun nedeni olduğunu varsayıyorlardı). Yukarı ve aşağı oyların, içeriğinin değil (konuştukları sürece) sorunun kalitesinin bir göstergesi olduğu varsayılır.
Alex ten Brink

8
@RanG. ve tam alıntı: (benimkinin vurgusu): Cobham'ın tezi, P'nin "verimli bir şekilde çözülebilir" veya "izlenebilir" olan hesaplama problemleri sınıfı olduğunu söylüyor; pratikte, P'de olmadığı bilinen bazı problemlerin pratik çözümleri vardır ve bazıları P'deki değildir, ancak bu kullanışlı bir kuraldır.
Joe

6
Literatürde (teorik CS), "verimli" kelimesi "polinom" ile eş anlamlıdır. Belki bu, diğer (daha pratik) alt alanlar için farklıdır.
Ran G.,

Yanıtlar:


32

"Verimlilik" üzerine bir başka bakış açısı, polinom süresinin makine modellerine bağlı olmayan bir "verim" kavramını tanımlamamıza izin vermesidir. Spesifik olarak, kilise turing tezinin “etkili Kilise Turing Tezi” olarak adlandırılan, bir tür makine modelinde polinom zamanında çalışan herhangi bir sorunun aynı zamanda başka bir eşit derecede güçlü makine modelinde polinom zamanında çalışacağını söyleyen bir çeşidi vardır.

Bu, genel BT tezine daha zayıf bir ifadedir ve hem randomize algoritmalar hem de kuantum algoritmalar tarafından 'tür' ihlal edilmiştir, ancak değişmeyerek çok zor zamanlardaki NP zor bir problemi çözebilme anlamında ihlal edilmemiştir. Makine modeli

Sonuçta bu, polinom zamanının teoride CS'de popüler bir kavram olmasının nedenidir. Ancak çoğu insan bunun "pratik verimliliği" yansıtmadığını fark eder. Bunun hakkında daha fazla bilgi için Dick Lipton'un ' galaktik algoritmalar ' konusundaki yayını büyük bir okuma.


15
P'yi seçmenin ikinci, pragmatik bir nedeni, sabitleme ile toplama, çarpma ve üstelleştirme altında kapatılmasıdır. Algoritmalar / makineler oluştururken bu uygundur; eğer yapı taşları verimli ise, sonuç da böyledir.
Raphael

Sadece merak ediyorum, "galaktik algoritma" teriminin hiç pratikte kullanılıp kullanılmadığını bilen var mı?
Juan Bermejo Vega

O kadar eski bir terim değil. Ama kullanmaya başladım :)
Suresh

24

Teoride, asimptotik davranışı önemsiyoruz ve asimptotik davranışlarına dayanan problem sınıflarını ve algoritmaları tanımlıyoruz. Buradaki anahtar kelime asimptotiktir . asimptotik olarak den daha hızlıdır , yani (bu arada: septillion! Olarak adlandırılır) ile birim sabit katsayıları varsayar ve düşük olmaz -sipariş terimleri.O ( n log n ) n > 1208925819614629174706176O(n80)O(nlogn)n>1208925819614629174706176

Bununla birlikte uygulamada hem üstlere hem de sabit katsayılara dikkat edilir. Uygulamalarda, giriş boyutları septilyonlara kadar uzayamaz, bu nedenle, evet, her türlü amaç için için daha iyi bir seçim olacaktır . Diğer faktörler de uygulamalarda önemlidir: paralellik, hafızaya erişim kalıpları (örneğin, yerellik). n 80nlognn80

Örneğin, tam sayı çarpımı için çoğu kütüphaneler, örneğin GMP , bir algoritma karışımı uygulayacak ve girdi büyüklüğüne dayanarak aşağı algoritmayı seçecektir, bu algoritmalar asimptotik olarak daha düşük olabilmesine rağmen, girdi büyüklüğüne dayanarak pratik olarak daha üstün algoritmalar seçecektir. Asimptotik olarak bazı "düşük" algoritmalar, belirli giriş boyutlarında daha hızlı olacak ve optimum algoritmalar üzerinden seçilecektir.

Başka bir örnek, bilinen en hızlı matris çarpma algoritması , de çalışan -Winograd algoritmasıdır (en son gelişmeler; daha fazlası burada ). Ancak hiçbir zaman uygulanmadı, çünkü (1) zor (2) sabit katsayısı devasa. Tüm lineer cebir paketleri Strassen'in en az optimalini kullanır .O(n2.3737)

TL; DR teorisi, giriş büyüklüğü limitinin keyfi olarak büyük sayılara giderken algoritmaları karşılaştırmak için asimptotik davranışı önemser.


"Aşağı algoritmayı seçtiler" mi? "Üstün algoritmayı seç" demek istemiyor musun?
11:12

Bir başka güzel örnek de, sıralama sıralama ile hızlı sıralama. Ekleme sıralama iken hızlı sıralama . Ancak, küçük girdilerde, 10 öğe söyleyin, ekleme sıralama işlemi hızlı sıralama işleminin yaklaşık iki katıdır! Aslında, optimize edilmiş hızlı sıralama küçük diziler için ekleme düzenini kullanır. 0 ( n l g n )Θ(N2)O(nlgn)
Robert S. Barnes

Neden asimptotik kübik algoritmaları "kötü" ve asimptotik ikinci dereceden algoritmaları "iyi" olarak düşünmüyoruz? Bu cevap soruya yalvarır.
djechlin

2

Bu cevap, sorunuzun "daha büyük resmi" içeriğine bakacaktır. Bilgisayar bilimi aslında nispeten genç ve biraz açık bir bilimdir ve bazı temel ve temel sorulara henüz mükemmel ve hatta iyi cevapları yoktur. “Neyin verimli bir şekilde hesaplandığını” temel sorusu, CS'de (fikre bağlı olarak) ünlü P vs NP problemi (veya yakından ilişkili P vs Exptime problemi) olarak doğru veya kabaca resmileştirildi ve kırk yıldan uzun bir süre sonra hala açık başlangıçta Cook / Levin ~ 1970 tarafından tanıtılmakta ve dünyanın en büyük bilgisayar bilimcileri tarafından yoğun bir şekilde çalışılmaktadır (ve birçok matematikçi de asıl olarak soruna ilgi duymaktadır).

Başka bir deyişle, P zamanı olarak "verimli" nin kaba bir tanımıyla ve en yüksek değerli bilimsel ödüllerden biri olan - yani 10 yıldan fazla bir süredir soruna ekli 1 milyon dolarlık ödülle - bilgisayar bilimi bazı sorunların bile kanıtlayamayacağını (yakın Bu sınır çizgisi) verimli (Ptime) algoritmalara sahip olmalı veya olmamalıdır. Bu nedenle, P zamanından daha kesin bir şekilde "verimli" nin kesin tanımı gerekli değildir, hatta bu zamanda mümkün değildir . Eğer P - NP varsayımı bir şekilde veya bir başka şekilde çözümlendiyse, "etkin" in daha katı bir tanımı mümkün olabilir veya büyük olasılıkla mümkün olabilir.

Dahası, Ptime'ın "verimli" tanımının biraz "özensiz" olabileceğini ve çoğu bilgisayar bilimcisinin muhtemelen aynı fikirde olduğunu düşünebilir ve neredeyse hepsi P - NP varsayımını çözmek için son derece önemli olduğunu düşünüyor. Bu iddiayı ya da gözlemi önemsiz görebilecekleri ... başka bir deyişle, tabiri caizse, devam eden bir çalışma / üzerinde çalışıyoruz . (aslında ana bilgisayar bilimleri uzmanları bile rutin olarak utanç verici olarak boşluğa ve ilerleme / kesin ayrımların eksikliğine atıfta bulunmak için şimdiye kadar sadece şaka yapıyorlardı .)

Aslında , şu anda bilgisayar bilimi tarafından da çözülemeyen P vs NP, yani NP vs P / poli'den daha yakından ilişkili / önemli ölçüde daha güçlü bir varsayım var. NP zamanı problemlerinin herhangi bir "P boyutlu" devre ile çözülemediği , yani algoritmalar / Turing makineleri tarafından yaratılabilecek devrelerle sınırlı olmadığı kanaatindedir.

P ya da NP'nin ne kadar zor olabileceğine gelince - en azından matematikte eski Riemann varsayımı kadar zor olabileceğini düşünmek için bazı sebepler var (şimdi 1.5 yüzyıldan beri), on yıl ve ikisi de henüz / ilk olarak çözülmedi.

Başka bir deyişle, hangi algoritmaların gerçekten "verimli" olduğunu tam olarak tanımlamak aslında teorik ve matematikte en önemli ve en zor olan açık problemlerden biridir .

Aslında "neyin verimli bir şekilde hesaplandığı" sorusu aslında daha da belirsizdir, çünkü P-time BT tezi olarak adlandırılan Kilise-Turing tezinin bir çeşidi vardır ve kuantum hesaplamanın gerçekte ihlal edip etmediği bilinmemektedir . Shor'ın P-time QM'deki çığır açan sonucu ile birlikte, faktoring bu araştırmada çarpıcı bir büküm olarak kabul edildi. Başka bir deyişle, etkin bir şekilde hesaplanan sorun aslında makul bir şekilde derin fizik prensiplerine kadar iner ve kuantum hesaplamanın, teorik CS ve ileri fizikte genel olarak açık bir problem olan klasik hesaplamaya göre daha verimli bir şekilde hesaplanıp hesaplanmayacağı ile ilgilidir.

Bu yüzden, P'ye göre NP'in ve verimli hesaplama sorusunun, CS'ye ve matematiğe - ilaca ekleme için çok önemli veya temel bir önemi olabileceğini bile ekleyebiliriz .

[1] P vs NP sorunu, wikipedia

[2] Millenium ödül problemleri

[3] P / Poli sınıfı, wikipedia

[4] Shor algoritması


düzeltme: P vs Pspace, P vs ExpTime değil
vzn

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.