Teorema dell'esperto

Da testwiki.
Versione del 13 mar 2025 alle 01:25 di imported>FrescoBot (Bot: numeri di pagina nei template citazione)
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)
Vai alla navigazione Vai alla ricerca

Il teorema dell'esperto, noto anche come teorema principale (Template:Inglese) o teorema del maestro, è un teorema inerente all'analisi degli algoritmi che fornisce una soluzione asintotica ad una famiglia di relazioni di ricorrenza. È stato inizialmente esposto da Jon Bentley, Dorothea Haken, e James B. Saxe nel 1980, dove fu descritto come un metodo unificato[1] per una famiglia di ricorrenze.[2] Il nome di questo teorema è stato popolarizzato dal famoso manuale Introduzione agli algoritmi di Cormen, Leiserson, Rivest e Stein. Non fornisce una soluzione a tutte le possibili relazioni di ricorrenza, ed una sua generalizzazione è il teorema di Akra-Bazzi.

Informalmente, il teorema afferma che, data una relazione di ricorrenza nella forma T(n)=aT(nb)+f(n) con a1 e b>1, in alcuni casi si può ottenere una soluzione confrontando f con la funzione nlogba. Se f è asintoticamente polinomialmente più piccola (ovvero più piccola per almeno un fattore polinomiale nε allora T(n)=Θ(nlogba); se le due funzioni hanno asintoticamente la stessa grandezza allora T(n)=Θ(nlogbalog(n))=Θ(f(n)log(n)); infine, se f è sufficientemente regolare e polinomialmente più grande allora T(n)=Θ(f(n)). Non sono coperti dal teorema i casi in cui f sia asintoticamente più grande o più piccola di nlogba in modo non polinomiale.[3]

Enunciato

Sia data una relazione di ricorrenza T(n) nella forma[4]

T(n)=aT(nb)+f(n),

dove a1 e b>1 sono costanti e nb si può interpretare sia come nb (parte intera) sia come nb (parte intera superiore).

Allora la funzione T(n) è limitata asintoticamente secondo uno dei tre seguenti casi:

  1. se esiste una costante ε>0 tale che f(n)=O(nlogbaε), allora T(n)=Θ(nlogba);
  2. se f(n)=Θ(nlogba), allora T(n)=Θ(nlogbalogbn);
  3. se esiste una costante ε>0 tale che f(n)=Ω(nlogba+ε) ed esistono una costante 0<c<1 e un intero n0 tali che nn0:af(nb)cf(n), allora T(n)=Θ(f(n)).[5]

Dimostrazione

Lemma

La somma s(n)=i=0logbnaif(nbi) definita su potenze di b, dove a1 e b>1 sono costanti e f è non negativa, ha rispettivamente comportamento asintotico:

  1. sotto l'ipotesi del caso 1 del teorema principale, s(n)=Θ(nlogba);
  2. sotto l'ipotesi del caso 2 del teorema principale, s(n)=Θ(nlogbalogbn);
  3. sotto l'ipotesi del caso 3 del teorema principale, se esistono una costante 0<c<1 e un intero n0 tali che nn0:af(nb)cf(n), allora s(n)=Θ(f(n)).

Dimostrazione

Caso 1

Per il caso 1, l'ipotesi implica

f(nbj)=O((nbj)logbaε)

che sostituita in s porta a

s(n)=O(i=0logbn1ai(nbi)logbaε).

Raccogliendo i fattori comuni, semplificando e sommando la serie geometrica troncata risultante, si ha

s(n)=O(nlogbaε(nε1bε1)).

Poiché ε e b sono costanti, si ha

nlogbaε(nε1bε1)=nlogbaεO(nε)=O(nlogba),

e dal fatto che, poiché f(1) è una costante,

s(n)alogbnf(1)=f(1)nlogbas(n)Ω(nlogba)

che insieme danno

s(n)Θ(nlogba)

da cui la tesi.

Caso 2

Analogamente al caso 1, per il caso 2 l'ipotesi implica

f(nbj)=Θ((nbj)logba)

che sostituita in s porta a

s(n)=Θ(i=0logbn1ai(nbi)logba).

Si procede analogamente al caso precedente, tuttavia la serie troncata ottenuta non è una serie geometrica, ma una serie a termini costanti

nlogbai=0logbn11=nlogbalogbn

da cui la tesi.

Caso 3

Applicando iterativamente i volte l'ipotesi di regolarità del caso 3, si ha

aif(nbi)cif(n)

per valori sufficientemente grandi di n. Tale condizione vale dunque per tutti tranne al più un numero costante di termini, per i quali n non è sufficientemente grande. Analogamente ai casi precedenti, si sostituisce nella definizione di s, ottenendo

s(n)i=0logbncif(n)+O(1)f(n)i=0ci+O(1),

dove O(1) rappresenta i termini precedentemente citati per i quali non vale la disuguaglianza. Sommando la serie geometrica si ha

s(n)=f(n)(11c)+O(1)=O(f(n))

e poiché la definizione di s contiene f in una somma a termini non negativi, si ha anche s(n)=Ω(f(n)). Combinando le due limitazioni asintotiche, si ha s(n)=Θ(f(n)).[6]

Dimostrazione del teorema principale

Nel caso particolare in cui T sia definita solo su potenze esatte di b, analizzando l'albero della ricorsione relativo alla relazione di ricorrenza si osserva che[7]

T(n)=i=0logbnaif(nbi)+Θ(nlogba).

Applicando quindi il lemma dimostrato precedentemente, si ottiene immediatamente la validità del teorema principale nel caso particolare in cui n sia definita su potenze di b. Questo ovviamente non è sufficiente a dimostrare il teorema, ma può essere esteso al caso generale considerando il caso in cui compaiano parti intere superiori o inferiori.

Nel caso di una parte intera superiore, nel considerare l'albero di ricorsione alla chiamata i-esima l'argomento assume la forma

ni={n,i=0,ni1b,i>0.

Poiché dalla definizione di parte intera superiore si ha xx+1, si ottiene

ninbi+i=0i11bi<nbi+bb1.

Da ciò si osserva che nlogbn=O(1), quindi alla profondità di ricorsione logbn il costo del problema è limitato da una costante. Si generalizza quindi la prima equazione per n arbitrario, non più ristretto alle potenze di b

T(n)=i=0logbnaif(ni)+Θ(nlogba)

e si può procedere a studiare la somma. Il terzo caso procede in maniera esattamente analoga al terzo caso del lemma. Per il secondo caso, dalla definizione di O-grande e ricordando l'espressione di ni si ha che esiste una costante c>0 e un intero n0 tali che, per nn0

f(ni)c(nbi+bb1)logbac(nlogbaai)(1+bb1)logba=O(nlogbaai).

Il limite asintotico ottenuto permette di procedere poi in maniera analoga al caso 2 del lemma. Per il primo caso, in maniera analoga a quanto appena fatto si mostra che

f(ni)=O((nbi)logbaε)

che permette di procedere poi in maniera analoga al caso 1 del lemma. Questo completa la dimostrazione del teorema principale in caso di parte intera superiore, nel caso della parte intera inferiore la dimostrazione è analoga.[8]

Generalizzazioni

Il secondo caso del teorema principale può essere generalizzato sostituendo solo alla sua ipotesi particolare, f(n)=Θ(nlogbalogkn) per qualche k0 e alla tesi T(n)=Θ(nlogbalogk+1n).[9] Come si vede il caso non generale è per k=0.

Il teorema di Akra-Bazzi generalizza il teorema principale, sotto opportune ipotesi, per relazioni di ricorrenza nella forma T(x)=g(x)+i=1kaiT(bix+hi(x)).

Esempi

Caso 1

Sia data la seguente relazione di ricorrenza:

TA(n)=9TA(n3)+n.

Si ha a=9, b=3 e f(n)=n. Allora nlogba=nlog39=Θ(n2). Dato che f(n)=O(nlog39ε) quando ε=1, è possibile applicare il caso 1 del teorema dell'esperto ottenendo la soluzione

TA(n)=Θ(n2).

Caso 2

Sia data ora la relazione di ricorrenza:

TA(n)=TA(2n3)+1,

in cui a=1, b=3/2 e f(n)=1. Essendo nlogba=nlog3/21=Θ(n0)=Θ(1) ed f(n)=1, vale il caso 2 del teorema dell'esperto, che porta alla soluzione TA(n)=Θ(logn).

Caso 3

Infine sia data la relazione di ricorrenza:

TA(n)=3TA(n4)+nlogn,

in cui a=3, b=4 e f(n)=nlogn. Essendo nlogba=nlog43=O(n0,793) ed f(n)=Ω(nlog43+ε), in cui ε0,2, il caso 3 del teorema dell'esperto si può applicare solo se vale la condizione di regolarità per f(n). Per n sufficientemente grande si ha 3(n4)log(n4)(34nlogn)=cf(n) per c=3/41. Di conseguenza la soluzione della ricorrenza è TA(n)=Θ(nlogn).

Note

  1. Questo il significato originario del termine master nel nome.
  2. Template:Cita pubblicazione
  3. Template:Cita.
  4. Considerando un algoritmo ricorsivo associato alla relazione di ricorrenza, le quantità coinvolte si possono interpretare come:
    • n è la dimensione dell'input;
    • a è il numero di chiamate ricorsive all'algoritmo;
    • nb è la dimensione della chiamata ricorsiva (ovvero la porzione del problema originale rappresentato in ogni sottoproblema);
    • f(n) è la funzione di costo della fase di suddivisione del problema e di ricostruzione della soluzione.
  5. Template:Cita.
  6. Template:Cita.
  7. Template:Cita.
  8. Template:Cita.
  9. Template:Cita.

Bibliografia

Voci correlate

Template:Portale