[Algoritmi] Chiarimenti su analisi asintotica della complessità

Messaggioda Fra27 » 14/06/2017, 17:57

Buonasera a tutti, non riesco a chiarire questo dubbio:
Per la risoluzione di un'equazione di ricorrenza come faccio a stabilire se ha ordine $O(g(n))$ o $Theta(g(n))$? Dal punto di vista teorico mi è chiaro il significato di entrambi, però quando guardo la risoluzione di alcuni esercizi non riesco a capire il ragionamento che è stato applicato.

Per definire che un algoritmo ha complessità $Theta(g(n))$ devo conoscere anche $\mathcal{Omega}(g(n))$, come faccio a trovarmi la limitazione inferiore? Grazie a chi risponderà!!
Fra27
Junior Member
Junior Member
 
Messaggio: 61 di 172
Iscritto il: 08/01/2015, 11:50

Re: [Algoritmi] Chiarimenti su analisi asintotica della complessità

Messaggioda Fra27 » 16/06/2017, 09:04

Nessuno riesce ad aiutarmi?
Fra27
Junior Member
Junior Member
 
Messaggio: 64 di 172
Iscritto il: 08/01/2015, 11:50

Re: [Algoritmi] Chiarimenti su analisi asintotica della complessità

Messaggioda apatriarca » 16/06/2017, 10:21

La domanda è troppo generica. Stia in pratica chiedendo come calcolare la complessità di qualcosa e ci sono tantissimi modi diversi in cui questo si possa fare. Dipende dai casi. Esempi di metodi sono:
1. Trovare il caso migliore.
2. Dimostrare che la complessità non dipende dall'input.
3. Dimostrare che il tuo algoritmo ha una complessità uguale o peggiore di un altro algoritmo di cui conosci la complessità..
4. ...

C'è qualche esempio in particolare in cui hai difficoltà?
apatriarca
Moderatore
Moderatore
 
Messaggio: 4675 di 10436
Iscritto il: 08/12/2008, 20:37
Località: Madrid

Re: [Algoritmi] Chiarimenti su analisi asintotica della complessità

Messaggioda Fra27 » 16/06/2017, 16:48

apatriarca ha scritto:C'è qualche esempio in particolare in cui hai difficoltà?


Allora noi abbiamo studiato 5 metodi per l'analisi della complessità di una relazione di ricorrenza:

1) Metodo Iterativo
2) Metodo di sostituzione
3) Metodo del cambio di variabile
4) Metodo dell'albero di ricorsione
5) Teorema Master delle ricorrenze

Allora ad esempio è possibile utilizzare il metodo iterativo per la seguente rel. di ricorrenza:
$T(1)=c$
$T(n)=T(n/2)+c$ $ se$ $ n>1$

La soluzione è$ Theta(log n) $

Mentre sempre con lo stesso metodo questa seconda relazione :
$ T(1)=2$
$T(n)=8* T(n/2)+n$ $ se$ $n>1 $

Ha soluzione è $O(n^3)$

Ho visto tutta la risoluzione ma non capisco perchè nel primo è nota la limitazione inferiore mentre nel secondo no.
Ultima modifica di Fra27 il 16/06/2017, 17:55, modificato 2 volte in totale.
Fra27
Junior Member
Junior Member
 
Messaggio: 65 di 172
Iscritto il: 08/01/2015, 11:50

Re: [Algoritmi] Chiarimenti su analisi asintotica della complessità

Messaggioda apatriarca » 16/06/2017, 17:44

Non ho capito come è fatta la seconda equazione di ricorrenza..
apatriarca
Moderatore
Moderatore
 
Messaggio: 4676 di 10436
Iscritto il: 08/12/2008, 20:37
Località: Madrid

Re: [Algoritmi] Chiarimenti su analisi asintotica della complessità

Messaggioda Fra27 » 16/06/2017, 17:56

Pardon, ora l'ho modificata.
Fra27
Junior Member
Junior Member
 
Messaggio: 66 di 172
Iscritto il: 08/01/2015, 11:50

Re: [Algoritmi] Chiarimenti su analisi asintotica della complessità

Messaggioda apatriarca » 16/06/2017, 18:28

In base al master theorem hai che \(\log_2 8 = 3\) e \( n \in O(n) \) per cui vale il primo caso e \( T(n) \in \Theta(n^3).\) Non c'è insomma nessuna differenza tra i due casi, a parte la scelta di porre l'attenzione solo sulla limitazione superiore invece che su entrambe. In ogni caso hai che \( f(n) \in \Theta(g(n)) \implies f(n) \in O(g(n))\). Spesso si è solo interessati al caso peggiore e quindi si usano relazioni meno precise. Ci sono tuttavia casi in cui una funzione è \(O(g(n))\) ma non \(\Theta(g(n))\).
apatriarca
Moderatore
Moderatore
 
Messaggio: 4677 di 10436
Iscritto il: 08/12/2008, 20:37
Località: Madrid

Re: [Algoritmi] Chiarimenti su analisi asintotica della complessità

Messaggioda Fra27 » 16/06/2017, 18:49

Ma la prima equazione è stata risolta con il metodo iterativo e non con il teorema master. Ecco il mio dubbio. Come faccio ,utilizzando un metodo che non sia il teorema master, a sapere la limitazione inferiore e quindi \( \Theta(g(n)) \) ?
Fra27
Junior Member
Junior Member
 
Messaggio: 67 di 172
Iscritto il: 08/01/2015, 11:50


Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite