Dlaczego czas wielomianowy nazywany jest „wydajnym”?


50

Dlaczego w informatyce jakakolwiek złożoność, która jest co najwyżej wielomianowa, jest uważana za wydajną?

Dla każdego praktycznego zastosowania (a) algorytmy o złożoności są znacznie szybsze niż algorytmy działające w czasie, powiedzmy n 80 , ale pierwszy jest uważany za nieefektywny, a drugi jest wydajny. Gdzie jest logika ?!nlognn80

(a) Załóżmy na przykład, że liczba atomów we wszechświecie wynosi około .1080


3
Nie jestem pewien, czy zgadzam się z twoim założeniem. Myślę, że większość ludzi uważa być całkiem nieefektywne (choć oczywiście to zależy od stałych, jak również i na problemie, który jest rozwiązany). n80
sepp2k

16
Uważam, że dla dowolnego c > 3 jest bardzo nieefektywne. Masz przykład analizy asymptotycznej doprowadzonej do nieuzasadnionej skrajności. Nie ma naturalnych algorytmów (o których wiem) z czasem działania n 80 . Istnieją jednak naturalne algorytmy z czasem działania 2 n dla niektórych problemów oraz podstawowe pytania w teorii złożoności dotyczące tego, czy istnieje algorytm wielomianowy dla takich problemów. ndodo>3)n802)n
Joe

5
Myślę, że nie należy lekceważyć tego pytania, ponieważ ludzie nie zgadzają się z tym założeniem (zakładając, że to był powód). Up- i downvotes mają wskazywać na jakość pytania, a nie na ich treść (o ile dotyczą tematu).
Alex ten Brink

8
@RanG. a pełny cytat to (podkreślenie moje): teza Cobhama głosi, że P jest klasą problemów obliczeniowych, które można „skutecznie rozwiązać” lub „rozwiązać”; w praktyce niektóre problemy, o których nie wiadomo, że są w P, mają praktyczne rozwiązania, a niektóre w P nie, ale jest to przydatna praktyczna zasada.
Joe

6
W literaturze (teoretycznej CS) słowo „wydajny” jest synonimem „wielomianu”. Może jest inaczej w przypadku innych (bardziej praktycznych) subpól.
Ran G.

Odpowiedzi:


32

Inna perspektywa „wydajności” polega na tym, że czas wielomianowy pozwala nam zdefiniować pojęcie „wydajności”, które nie zależy od modeli maszyn. W szczególności istnieje wariant tezy Turinga zwany „skuteczną tezą Turinga”, który mówi, że każdy problem, który działa w czasie wielomianowym na rodzaju modelu maszyny, będzie również działał w czasie wielomianowym na innym równie potężnym modelu maszyny.

Jest to słabsze stwierdzenie w stosunku do ogólnej tezy CT i jest „niejako” naruszane zarówno przez algorytmy randomizowane, jak i algorytmy kwantowe, ale nie zostało naruszone w sensie możliwości rozwiązania problemu trudnego dla NP w czasie wieloczasowym poprzez zmianę model maszyny.

To jest ostatecznie powód, dla którego czas wielomianowy jest popularnym pojęciem w teorii CS. Jednak większość ludzi zdaje sobie sprawę, że nie odzwierciedla to „praktycznej wydajności”. Więcej informacji na ten temat zawiera post Dicka Liptona na temat „ algorytmów galaktycznych ”.


15
Drugim, pragmatycznym powodem wyboru P jest to, że jest ono zamknięte przy dodawaniu, mnożeniu i potęgowaniu stałymi. Jest to wygodne przy tworzeniu algorytmów / maszyn; jeśli bloki konstrukcyjne są wydajne, taki jest wynik.
Raphael

Jestem tylko ciekawy, czy ktoś wie, czy termin „algorytm galaktyczny” jest kiedykolwiek używany w praktyce?
Juan Bermejo Vega

To nie tak stary termin. Ale zacząłem go używać :)
Suresh

24

O(n80)O(nlogn)n>1208925819614629174706176

nlognn80

Na przykład większość bibliotek do mnożenia liczb całkowitych, np. GMP wdroży mieszankę algorytmów i wybierze gorszy algorytm na podstawie wielkości wejściowej, wybierze praktycznie lepsze algorytmy na podstawie wielkości wejściowej, chociaż algorytmy te mogą być asymptotycznie gorsze. Niektóre asymptotycznie „gorsze” algorytmy będą szybsze przy pewnych rozmiarach wejściowych i zostaną wybrane w stosunku do algorytmów optymalnych.

O(n2,3737)

Teoria TL; DR dba o zachowanie asymptotyczne w celu porównania algorytmów, ponieważ granica wielkości wejściowej idzie do dowolnie dużych liczb.


„Wybierają gorszy algorytm”? Nie masz na myśli „wybierz lepszy algorytm”?
maska ​​bitowa

Θ(N.2))O(nlsoln)

Dlaczego nie uważamy asymptotycznie algorytmów sześciennych za „zły”, a asymptotycznie algorytmów kwadratowych za „dobry”? Ta odpowiedź nasuwa pytanie.
djechlin

2

Ta odpowiedź przyjrzy się szerszemu kontekstowi twojego pytania. Informatyka jest w rzeczywistości stosunkowo młodą i nieco otwartą nauką i nie ma jeszcze dobrych ani nawet dobrych odpowiedzi na niektóre podstawowe i podstawowe pytania. Podstawowe pytanie „co jest skutecznie obliczane” jest dokładnie lub z grubsza sformalizowane w CS (w zależności od opinii) jako słynny problem P vs NP (lub ściśle powiązany problem P vs Exptime) i nadal jest otwarty po ponad czterdziestu latach początkowo wprowadzony przez Cooka / Levina ~ 1970 i intensywna praca największych światowych informatyków (i wielu matematyków jest również zainteresowanych problemem jako podstawowym).

Innymi słowy, nawet przy zgrubnej definicji „wydajnego” jako czasu P i jednej z najwyżej cenionych nagród naukowych - mianowicie nagrody 1 mln USD związanej z problemem od ponad 10 lat - informatyka nie może nawet udowodnić, że pewne problemy (zbliżone do ta granica) musi lub nie musi mieć wydajnych algorytmów (Ptime). Dlatego dokładna definicja „wydajnego” bardziej precyzyjnego niż czas P nie jest w tym momencie konieczna ani nawet możliwa . Jeśli / kiedy hipoteza P kontra NP zostanie rozstrzygnięta w taki czy inny sposób, możliwe lub prawdopodobnie będzie możliwe bardziej rygorystyczne określenie „wydajnego”.

Co więcej, można by pomyśleć, że definicja „wydajnego” czasu Ptime może być nawet nieco „niechlujna”, a większość informatyków prawdopodobnie by się zgodziła i prawie wszyscy uważają, że hipoteza P kontra NP ma ogromne znaczenie dla rozstrzygnięcia punkt, w którym mogliby nawet uznać to twierdzenie lub obserwację za trywialne ... innymi słowy, że tak powiem, jest to praca w toku / pracujemy nad tym . (w rzeczywistości główni informatycy posunęli się nawet tak daleko, tylko na pół żartem, rutynowo nazywając lukę i brak postępów / ostatecznych separacji zakłopotaniem ).

W rzeczywistości istnieje nawet blisko spokrewniona / znacznie silniejsza hipoteza niż P vs NP, a mianowicie NP vs P / poli, których w tej chwili nie może rozwiązać również informatyka. Przypuszcza, że ​​problemów czasu NP nie można rozwiązać za pomocą żadnych obwodów „P”, tzn. nawet nie ograniczając się do tych obwodów, które mogą być tworzone przez algorytmy / maszyny Turinga.

Co do tego, jak trudne może być P w porównaniu z NP - istnieje uzasadniony powód, by sądzić, że może być co najmniej tak trudny, jak bardzo stara hipoteza Riemanna w matematyce (obecnie 1,5 wieku ), ponieważ obaj otrzymali tę samą nagrodę w wysokości 1 miliona dolarów za ponad dekada i żadne z nich nie zostało jeszcze rozwiązane / pierwsze.

Innymi słowy, precyzyjne określenie, które algorytmy są naprawdę „wydajne”, jest w rzeczywistości jednym z najważniejszych i najtrudniejszych istniejących otwartych problemów w nauce teoretycznej i matematyce .

W rzeczywistości pytanie „co jest efektywnie obliczane” jest w rzeczywistości jeszcze bardziej subtelne, ponieważ istnieje wariant tezy Turinga zwany tezą CT czasu P i nie wiadomo, czy obliczenia kwantowe faktycznie ją naruszają . Biorąc pod uwagę przełomowy wynik QM w P-time, faktoring był uważany za dramatyczny zwrot w tych badaniach. Innymi słowy, problem tego, co jest skutecznie obliczane, w rzeczywistości prawdopodobnie sprowadza się do zasad głębokiej fizyki i dotyczy tego, czy obliczenia kwantowe mogą obliczać wydajniej niż obliczenia klasyczne, co jest również ogólnie otwartym problemem w teoretycznej CS i zaawansowanej fizyce.

Można więc nawet dodać, że P vs NP i kwestia wydajnego przetwarzania mogą mieć kluczowe lub fundamentalne znaczenie dla - oprócz CS i matematyki - fizyki .

[1] P vs NP problem, wikipedia

[2] Problemy z nagrodami Millenium

[3] Klasa P / Poly, wikipedia

[4] Algorytm Shora


korekta: P vs Pspace, a nie P vs ExpTime
od

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.