Perché dovrei preoccuparmi della crescita asintotica del limite inferiore del tempo / spazio peggiore?

6

In matematica, esistono notazioni per limiti inferiori asintotici, limiti superiori e limiti stretti (entro un fattore costante). Quando si descrive la crescita delle funzioni in generale, è logico che tutte e tre possano essere rilevanti per alcune funzioni o altro.

Nell'analisi dell'algoritmo, la notazione asintotica viene solitamente utilizzata per descrivere la crescita del tempo o dei requisiti di spazio.

Per me, sembra logico che possa essere interessato al massimo, al minimo o ai requisiti previsti. Ignorando i requisiti previsti, potrei essere interessato al limite inferiore del caso migliore (spazio / tempo minimo) o al limite superiore del caso peggiore (spazio / tempo massimo).

Non riesco a immaginare perché dovrei mai essere interessato al limite inferiore del caso peggiore o al limite superiore del caso migliore. Poiché il limite inferiore è una specie di caso migliore e il limite superiore è una specie di caso peggiore, questi sembrano "caso migliore del caso peggiore" e "caso peggiore del caso migliore" non corrispondono a me.

Ma in diverse occasioni, ho avuto risposte a risposte / commenti che suggeriscono che questo potrebbe essere un fallimento dell'immaginazione da parte mia.

Quindi - cos'è che non riesco a immaginare?

Non prenderò in considerazione una dichiarazione sulla falsariga di "è abbastanza comune dire che il limite inferiore del peggiore dei casi dell'algoritmo blah è blah" per rispondere alla domanda, a meno che non dica anche perché la gente si preoccupa.

    
posta Steve314 07.05.2011 - 01:45
fonte

2 risposte

6

Il limite inferiore del caso peggiore può essere utilizzato per dimostrare che un algoritmo non sta andando a lavorare per te.

Pensa in particolare alla programmazione in tempo reale. Ho bisogno che il mio codice venga eseguito al massimo in x perché ha bisogno di una risposta in tempo per inviare il messaggio giusto a un dispositivo che ha bisogno di ricevere messaggi su un programma molto preciso o che le cose vanno male. Se un limite inferiore nel caso peggiore supera x , allora ciò dimostra che devi assolutamente pensare a qualcosa di meglio. Non importa se il 99,99% delle volte stai bene, perché il rimanente 0,01% delle volte potrebbe danneggiare seriamente qualcosa.

    
risposta data 07.05.2011 - 02:28
fonte
0

Non sono sicuro di quale sarebbe il limite superiore del caso migliore, ma a volte può essere utile identificare il limite inferiore nel caso peggiore per il miglior algoritmo possibile che possa eseguire un dato compito . Tale informazione potrebbe essere utile se si ha un algoritmo che ad es. corre nel tempo O (N ^ 2lgN) e sta cercando di decidere se si dovrebbe cercare di trovare qualcosa di meglio. Se si può stabilire che il limite inferiore nel caso peggiore per un algoritmo che può realizzare ciò che deve essere fatto sarà O (N ^ 2lg (lgN)), ciò implicherebbe che l'algoritmo che si aveva era vicino ad essere all'interno di un fattore costante di ottimale. Se invece l'analisi con limite inferiore producesse O (lgN), ciò suggerirebbe che potrebbe esserci molto più margine di miglioramento.

    
risposta data 26.07.2015 - 21:42
fonte

Leggi altre domande sui tag