Perché il tempo polinomiale è chiamato "efficiente"?


50

Perché nell'informatica qualsiasi complessità al massimo polinomiale è considerata efficiente?

Per qualsiasi applicazione pratica (a) , gli algoritmi con complessità sono molto più veloci degli algoritmi che funzionano nel tempo, diciamo, n 80 , ma il primo è considerato inefficiente mentre il secondo è efficiente. Dov'è la logica ?!nlognn80

(a) Supponiamo, ad esempio, che il numero di atomi nell'universo sia approssimativamente di .1080


3
Non sono sicuro di essere d'accordo con la tua premessa. Penso che la maggior parte delle persone considererebbe abbastanza inefficiente (anche se ovviamente dipende anche dalle costanti e dal problema che si sta risolvendo). n80
sepp2k,

16
Considererei per qualsiasi c > 3 molto inefficiente. Hai un esempio di analisi asintotica portato a un estremo irragionevole. Non ci sono algoritmi naturali (che conosco) con n 80 runtime. Tuttavia, ci sono algoritmi naturali con runtime 2 n per alcuni problemi e domande fondamentali nella teoria della complessità sull'esistenza di un algoritmo polinomiale per tali problemi. ncc>3n802n
Joe

5
Penso che questa domanda non debba essere sottovalutata perché le persone non sono d'accordo con la premessa (supponendo che fosse la ragione). I voti positivi e negativi dovrebbero essere un'indicazione della qualità della domanda, non del loro contenuto (purché siano in tema).
Alex ten Brink

8
@Suonò. e la citazione completa è (enfasi sulla mia): la tesi di Cobham sostiene che P è la classe di problemi computazionali che sono "risolvibili efficacemente" o "trattabili"; in pratica, alcuni problemi che non si conoscono in P hanno soluzioni pratiche e altri in P no, ma questa è una pratica regola empirica.
Joe

6
Nella letteratura (del CS teorico), la parola "efficiente" è sinonimo di "polinomio". Forse questo è diverso per altri (più pratici) sottocampi.
Ran G.

Risposte:


32

Un'altra prospettiva di "efficienza" è che il tempo polinomiale ci consente di definire una nozione di "efficienza" che non dipende dai modelli di macchina. In particolare, esiste una variante della tesi di Church-Turing chiamata "efficace Church-Turing Thesis" che afferma che qualsiasi problema che corre in un tempo polinomiale su un tipo di modello di macchina verrà eseguito anche in tempo polinomiale su un altro modello di macchina altrettanto potente.

Questa è un'affermazione più debole della tesi CT generale, ed è "una sorta di" violata sia da algoritmi randomizzati che da algoritmi quantistici, ma non è stata violata nel senso di essere in grado di risolvere un problema NP-difficile nel poli-tempo cambiando il modello della macchina.

Questo è in definitiva il motivo per cui il tempo polinomiale è una nozione popolare nella teoria CS. Tuttavia, la maggior parte delle persone si rende conto che ciò non riflette "l'efficienza pratica". Per di più, il post di Dick Lipton sugli " algoritmi galattici " è un'ottima lettura.


15
Un secondo motivo pragmatico per la scelta di P è che è chiuso in aggiunta, moltiplicazione ed esponenziazione con costanti. Ciò è utile quando si compongono algoritmi / macchine; se i mattoni sono efficienti, lo è anche il risultato.
Raffaello

Sono solo curioso, qualcuno sa se il termine "algoritmo galattico" viene mai usato in pratica?
Juan Bermejo Vega,

Non è un termine così vecchio. Ma ho iniziato ad usarlo :)
Suresh

24

O(n80)O(nlogn)n>1208925819614629174706176

nlognn80

Ad esempio, la maggior parte delle librerie per la moltiplicazione di numeri interi, ad esempio GMP implementerà una combinazione di algoritmi e selezionerà algoritmo inferiore in base alla dimensione dell'input, seleziona gli algoritmi praticamente superiori in base alla dimensione dell'input, sebbene questi algoritmi potrebbero essere asintoticamente inferiori. Alcuni algoritmi asintoticamente "inferiori" saranno più veloci su determinate dimensioni di input e saranno selezionati su algoritmi ottimali.

O(n2.3737)

TL; la teoria DR si prende cura del comportamento asintotico al fine di confrontare gli algoritmi poiché il limite delle dimensioni di input va a numeri arbitrariamente grandi.


"Selezionano un algoritmo inferiore"? Non intendi "selezionare un algoritmo superiore"?
Maschera di bit

Θ(N2)O(nlgn)

Perché non consideriamo gli algoritmi asintoticamente cubici "cattivi" e gli algoritmi asintoticamente quadratici "buoni"? Questa risposta pone la domanda.
Djechlin,

2

Questa risposta esaminerà il contesto "più ampio" della tua domanda. L'informatica è in realtà una scienza relativamente giovane e in qualche modo aperta e non ha ancora grandi o addirittura buone risposte ad alcune domande di base e fondamentali. La questione fondamentale "ciò che è efficiente calcolato" o è accurato o più o meno formalizzato nel CS (a seconda del parere) come il famoso P vs problema NP (o strettamente correlata P vs problema EXPTIME), e la sua ancora aperta dopo più di quattro decenni di inizialmente introdotto da Cook / Levin ~ 1970 e intenso lavoro dei più grandi scienziati informatici del mondo (e molti matematici sono anche interessati al problema come fondamentale).

Quindi, in altre parole, anche con una definizione approssimativa di "efficiente" come tempo P, e uno dei premi scientifici più apprezzati - vale a dire un premio di $ 1 milione assegnato al problema per oltre 10 anni - l'informatica non può nemmeno dimostrare che alcuni problemi (vicino a questo limite) deve o non deve avere algoritmi efficienti (Ptime). Pertanto la definizione esatta di "efficiente" più precisa del tempo P non è necessaria o addirittura possibile in questo momento. Se / quando la congettura P vs NP è regolata in un modo o nell'altro, una definizione più rigorosa di "efficiente" potrebbe o presumibilmente essere possibile.

Inoltre, si potrebbe pensare che la definizione Ptime di "efficiente" potrebbe anche essere un po '"sciatta", e la maggior parte degli scienziati informatici sarebbe probabilmente d'accordo, e quasi tutti pensano che la congettura P vs NP sia della massima importanza da risolvere, per il punto che potrebbero persino considerare questa affermazione o osservazione come banale .... in altre parole, per così dire, è un lavoro in corso / ci stiamo lavorando . (in effetti, gli scienziati informatici tradizionali vanno persino così lontano, solo per metà scherzosamente, a riferire sistematicamente al divario e alla mancanza di progressi / separazioni definitive come imbarazzanti ).

In effetti esiste persino una congettura strettamente correlata / significativamente più forte di P vs NP, vale a dire NP vs P / poly, che al momento non può essere risolta dall'informatica. ipotizza che i problemi del tempo NP non possano essere risolti da nessun circuito di "dimensione P", vale a dire nemmeno limitato a quei circuiti che possono essere creati da algoritmi / macchine di Turing.

Quanto a quanto sia difficile P vs NP - c'è qualche solida ragione per pensare che potrebbe essere difficile almeno quanto la vecchia congettura di Riemann in matematica (ora vecchia di 1,5 secolo ), perché entrambi hanno avuto lo stesso premio da $ 1M per oltre un decennio, e nessuno dei due è stato ancora risolto / primo.

Quindi, in altre parole, definire con precisione quali algoritmi sono veramente "efficienti" è in realtà uno dei problemi aperti più importanti e più difficili esistenti nella scienza teorica e matematica .

In effetti la questione di "cosa viene calcolato in modo efficiente" è in realtà ancora più sottile, perché esiste una variante della tesi di Church-Turing chiamata T-time CT tesi, e non è noto se il calcolo quantistico la violi effettivamente . Con il risultato rivoluzionario di Shor di P-time QM, il factoring ha considerato una svolta drammatica in questa ricerca. In altre parole, il problema di ciò che viene calcolato in modo efficace scende in modo plausibile fino ai principi della fisica profonda e si riferisce al fatto che il calcolo quantistico possa calcolare in modo più efficiente rispetto al calcolo classico, che è anche un problema generalmente aperto nella CS teorica e nella fisica avanzata.

Quindi si può anche aggiungere che P vs NP e la questione del calcolo efficiente possono essere di importanza cruciale o fondamentale per la fisica, oltre a CS e matematica .

[1] Problema P vs NP, wikipedia

[2] Problemi del premio del millennio

[3] Classe P / Poly, Wikipedia

[4] Algoritmo di Shor


correzione: P vs Pspace, non P vs ExpTime
vzn

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.