Complessità Computazionale

Documenti analoghi
Successioni. Grafico di una successione

EQUAZIONI ALLE RICORRENZE

SUCCESSIONI E SERIE NUMERICHE

Numerazione binaria Pagina 2 di 9 easy matematica di Adolfo Scimone

Anno 5 Successioni numeriche

52. Se in una città ci fosse un medico ogni 500 abitanti, quale sarebbe la percentuale di medici? A) 5 % B) 2 % C) 0,2 % D) 0,5% E) 0,02%

SUCCESSIONI NUMERICHE

Calcolo della risposta di un sistema lineare viscoso a più gradi di libertà con il metodo dell Analisi Modale

V Tutorato 6 Novembre 2014

PARTE QUARTA Teoria algebrica dei numeri

SUCCESSIONI e LIMITI DI SUCCESSIONI. c Paola Gervasio - Analisi Matematica 1 - A.A. 15/16 Successioni cap3b.pdf 1

Terzo appello del. primo modulo. di ANALISI

Sintassi dello studio di funzione

SERIE NUMERICHE Con l introduzione delle serie vogliamo estendere l operazione algebrica di somma ad un numero infinito di addendi.

Foglio di esercizi N. 1 - Soluzioni

Esercizi riguardanti limiti di successioni

ANALISI MATEMATICA 1 Area dell Ingegneria dell Informazione. Appello del TEMA 1. f(x) = arcsin 1 2 log 2 x.

Appunti sulla MATEMATICA FINANZIARIA

Formula per la determinazione della Successione generalizzata di Fibonacci.

IL CALCOLO COMBINATORIO

8. Quale pesa di più?

LA DERIVATA DI UNA FUNZIONE

Limiti di successioni

Soluzione La media aritmetica dei due numeri positivi a e b è data da M

Statistica 1 A.A. 2015/2016

LA GESTIONE DELLA QUALITA : IL TOTAL QUALITY MANAGEMENT

Successioni ricorsive di numeri

IMPLICAZIONE TRA VARIABILI BINARIE: L Implicazione di Gras

Corso di Laurea in Ing. Edile Politecnico di Bari A.A Prof. ssa Letizia Brunetti DISPENSE DEL CORSO DI GEOMETRIA

Teorema 13. Se una sere converge assolutamente, allora converge:

Corso di laurea in Matematica Corso di Analisi Matematica 1-2 Dott.ssa Sandra Lucente 1 Funzioni potenza ed esponenziale.

Serie numeriche: esercizi svolti

Rendita perpetua con rate crescenti in progressione aritmetica

CONCETTI BASE DI STATISTICA

Elementi di matematica finanziaria

Percorsi di matematica per il ripasso e il recupero

Campi vettoriali conservativi e solenoidali

Risposte. f v = φ dove φ(x,y) = e x2. f(x) = e x2 /2. +const. Soluzione. (i) Scriviamo v = (u,w). Se f(x) è la funzione richiesta, si deve avere

DISTRIBUZIONI DOPPIE

SERIE NUMERICHE Esercizi risolti. 2 b) n=1. n n 2 +n

1 Limiti di successioni

Progressioni aritmetiche

Successioni. Capitolo Definizione

DEFINIZIONE PROCESSO LOGICO E OPERATIVO MEDIANTE IL QUALE, SULLA BASE

5. Le serie numeriche

Sistemi e Tecnologie della Comunicazione

Interesse e formule relative.

Una funzione è una relazione che ad ogni elemento del dominio associa uno e un solo elemento del codominio

APPUNTI DI MATEMATICA ALGEBRA \ ARITMETICA \ NUMERI NATURALI (1)

Selezione avversa e razionamento del credito

Analisi statistica dell Output

Lezione n Lezioni di Ricerca Operativa. Corso di Laurea in Informatica Università di Salerno. Prof. Cerulli Dott. Carrabs

I appello - 29 Giugno 2007

Approfondimenti di statistica e geostatistica

Introduzione all assicurazione. (Dispensa per il corso di Microeconomia per manager. Prima versione, marzo 2013; versione aggiornata, marzo 2014)

LA VERIFICA DELLE IPOTESI SUI PARAMETRI

ESERCIZI SULLE SERIE

I numeri complessi. Pagine tratte da Elementi della teoria delle funzioni olomorfe di una variabile complessa

Un modello di interazione tra CPU e dispositivi di I/O

Il test parametrico si costruisce in tre passi:

SUCCESSIONI NUMERICHE

5 ln n + ln. 4 ln n + ln. 6 ln n + ln

Campionamento stratificato. Esempio

II-9 Successioni e serie

Introduzione all assicurazione. (Dispensa per il corso di Microeconomia)

Problemi di Scheduling Definizioni. Problemi di Scheduling Definizioni. Problemi di Scheduling Definizioni. Problemi di Scheduling Definizioni

Le onde elettromagnetiche. Origine e natura, spettro delle onde e.m., la polarizzazione

Random walk classico. Simulazione di un random walk

Corso di Laurea Magistrale in Ingegneria Informatica A.A. 2014/15. Complementi di Probabilità e Statistica. Prova scritta del del

STATISTICA DESCRITTIVA

Random walk classico. Simulazione di un random walk

La matematica finanziaria

Principi base di Ingegneria della Sicurezza

LE MISURE DI VARIABILITÀ DI CARATTERI QUANTITATIVI

Statistica (Prof. Capitanio) Alcuni esercizi tratti da prove scritte d esame

1 Successioni Limite di una successione Serie La serie armonica La serie geometrica... 6

Economia Internazionale - Soluzioni alla IV Esercitazione

Capitolo 3 CARATTERIZZAZIONE MECCANICA DELLE FIBRE

Disposizioni semplici. Disposizioni semplici esercizi

che sono una l inversa dell altra; l insieme dei messaggi cifrati C i cui elementi sono indicati con la lettera c.

( ) ( ) ( ) ( ) ( ) CAPITOLO VII DERIVATE. (3) D ( x ) = 1 derivata di un monomio con a 0

Analisi Fattoriale Discriminante

Calcolo Combinatorio (vers. 1/10/2014)

CARATTERISTICHE MECCANICHE DI PIETRE NATURALI PER FACCIATE VENTILATE. Di seguito verranno utilizzati i seguenti simboli:

CAPITOLO 5 TEORIA DELLA SIMILITUDINE

Serie numeriche e serie di potenze

1. Considerazioni generali

Transcript:

Uiversità degli studi di Messia Facoltà di Igegeria Corso di Laurea i Igegeria Iformatica e delle Telecomuicazioi Fodameti di Iformatica II Prof. D. Brueo Complessità Computazioale

La Nozioe di Algoritmo Iformalmete, u algoritmo è u procedimeto formato da ua sequeza fiita di operazioi elemetari che trasforma uo o più valori di igresso iput i uo o più valori di uscita output Dato u algoritmo A, deoteremo co f A la fuzioe che associa a ogi igresso x di A la corrispodete uscita f A x Questa corrispodeza tra iput e output rappreseta il problema risolto dall algoritmo Fodameti di Iformatica II Prof. D. Brueo

Defiizioe di Problema Formalmete, u problema è ua fuzioe: f : D D I S defiita su u isieme D I di elemeti che chiameremo istaze, a valori su u isieme D S di soluzioi U problema verrà i geerale descritto usado la seguete rappresetazioe: Problema NOME Istaza: Soluzioe: x D I f x D S Fodameti di Iformatica II Prof. D. Brueo 3

Algoritmi e Problemi Diremo che u algoritmo A risolve u problema f se fx = f A x per ogi istaza x L esecuzioe di u algoritmo su u dato iput richiede il cosumo di ua certa quatità di risorse: tempo di computazioe spazio di memoria usato umero di dispositivi di calcolo utilizzato È i geerale importate saper valutare la quatità di risorse cosumate perché u cosumo eccessivo può pregiudicare le stesse possibilità di utilizzo di u algoritmo Noi faremo riferimeto a modelli di calcolo formati da u solo processore trattado, quidi, uicamete la teoria degli algoritmi sequeziali Fodameti di Iformatica II Prof. D. Brueo 4

Studio degli Algoritmi Possiamo raggruppare le problematiche riguardati lo studio degli algoritmi i tre ambiti pricipali: Sitesi: dato u problema f, costruire u algoritmo A per risolvere f, cioè tale che f = f A Aalisi : dato u algoritmo A ed u problema f, dimostrare che A risolve f, cioè che f = f A correttezza e valutare la quatità di risorse usate da A complessità cocreta Classificazioe: data ua quatità T di risorse, idividuare la classe di problemi risolubili da algoritmi che usao al più tale quatità Fodameti di Iformatica II Prof. D. Brueo 5

Complessità di u Algoritmo Due misure ragioevoli per sistemi di calcolo sequeziali soo i valori: T A x S A x tempo di calcolo spazio di memoria Valori richiesti da u algoritmo A su iput x Ua soluzioe che forisce buoe iformazioi su T A e su S A cosiste ell itrodurre il cocetto di dimesioe di u istaza Fodameti di Iformatica II Prof. D. Brueo 6

Tempo di Calcolo Dato u algoritmo A su u isieme di iput I, può accadere che due istaze x, x' I di eguale dimesioe, cioè tali che: x = x' diao luogo a tempi di esecuzioe diversi, ovvero: T A x T x' A Come defiire allora il tempo di calcolo di A i fuzioe di ua sola dimesioe? Fodameti di Iformatica II Prof. D. Brueo 7

Tempo di Calcolo cot. Ua possibile soluzioe è quella di cosiderare il tempo peggiore su tutti gli iput di dimesioe fissata. Ua secoda è quella di cosiderare il tempo medio. Avremo quidi: Complessità el caso peggiore Complessità el caso medio I questo modo la complessità diveta ua fuzioe T defiita sugli iteri positivi, co tutti i vataggi che la semplicità di questa otazioe comporta Risulta sigificativa la cosiddetta complessità asitotica, cioè il comportameto della fuzioe T per gradi valori di Quale delle due complessità forisce più iformazioe? Etrambe hao vataggi e svataggi. Ad esempio la complessità el caso peggiore forisce spesso ua valutazioe troppo pessimistica; viceversa, la complessità el caso medio assume ua distribuzioe uiforme sulle istaze, ipotesi discutibile i molte applicazioi Fodameti di Iformatica II Prof. D. Brueo 8

Esempio Ricerca Esaustiva it Ricerca_esaustiva it a[], it key; it { } it i; for i=; a[i]!=key && i!=; i++; retur a[i]==key? i :0; C C C3 Il tempo di esecuzioe si esprime come: T = C + αc + C3 dove α = se l elemeto o esiste i se l elemeto è i posizioe i Come fissare α? Assumedo ua distribuzioe uiforme, l elemeto si troverà mediamete i posizioe i= = i i i= = + + = coviee, però, prescidere da distribuzioe e ordiameto dei dati Fodameti di Iformatica II Prof. D. Brueo 9

Complessità i Tempo Ordii di Gradezza Il criterio pricipale solitamete usato per valutare il comportameto di u algoritmo è basato sull aalisi asitotica della sua complessità i tempo el caso peggiore o i quello medio. I particolare l ordie di gradezza di tale quatità, al tedere di a forisce ua valutazioe della rapidità di icremeto del tempo di calcolo al crescere delle dimesioi del problema Ua differeza ache piccola ell ordie di gradezza della complessità di due procedure può comportare eormi differeze elle prestazioi di due algoritmi Fodameti di Iformatica II Prof. D. Brueo 0

Tempi effettivi La seguete tabella forisce u idea più precisa del tempo effettivo corrispodete a fuzioi di complessità tipiche. Si è supposto di poter eseguire u operazioe elemetare i u microsecodo. Si soo cofrotati i tempi di calcolo richiesti su istaze di varie dimesioi da sei algoritmi di complessità i tempo differete. Complessità =0 =0 =50 =00 =0 3 =0 4 =0 5 =0 6 0μs 0μs 50μs 0,ms ms 0ms 0,s s log 33,μs 86,4μs 0,8ms 0,6ms 9,9ms 0,s,6s 9,9s 0,ms 0,4ms,5ms 0ms s 00s,7h,5g 3 ms 8ms 5ms s 6,6m,5g 3,7a 300c ms s 35,7a 0 4 c 3 59ms 58m 0 8 c μs = microsecodi ms = millisecodi s = secodi m = miuti h = ore a = ai c = secoli = periodo superiore al milleio Fodameti di Iformatica II Prof. D. Brueo

Cosiderazioi Dall aalisi della tabella precedete si possoo trarre le segueti cosiderazioi: Gli algoritmi dotati di ua complessità i tempo lieare o di poco superiore log soo utilizzabili i maiera efficiete ache per elevate dimesioi dell iput Gli algoritmi che hao ua complessità dell ordie di k co k soo applicabili solo quado la dimesioe dell igresso o è troppo elevata Gli algoritmi che hao ua complessità espoeziale ad esempio o 3 presetao tempi di calcolo proibitivi ache per dimesioi di iput limitate Fodameti di Iformatica II Prof. D. Brueo

Cosiderazioi cot. Si potrebbe pesare che le valutazioi geerali riportate precedetemete dipedao dall attuale livello tecologico e siao destiate ad essere superate co l avveto di ua tecologia più sofisticata che permetta di produrre strumeti di calcolo sesibilmete più veloci I realtà: algoritmi lieari o quasi lieari log traggoo pieo vataggio dal passaggio alla tecologia più potete algoritmi poliomiali traggoo u vataggio evidete ma smorzato algoritmi espoeziali o traggoo essu vataggio Fodameti di Iformatica II Prof. D. Brueo 3

Espressioi Asitotiche Il comportameto asitotico ci permette di valutare l efficieza quado le dimesioi tedoo all ifiito, cosiderado il caso peggiore tra quelli di pari dimesioe. I certi casi si valuta il caso medio, ma è più complicato Aalisi asitotica di u algoritmo Valutazioe comportameto asitotico di ua sequeza di iteri {T}. dove: N T : quatità di ua certa risorsa cosumata su u iput di dimesioe el caso peggiore o i quello medio Fodameti di Iformatica II Prof. D. Brueo 4

Relazioi tra sequeze umeriche Date due fuzioi f,g defiite su N a valori i R + si possoo defiire le segueti relazioi: f è o grade di g f = O g f è omega grade di g f = Ω g 3 f e g hao lo stesso ordie di gradezza f = Θ g Fodameti di Iformatica II Prof. D. Brueo 5

Relazioi tra sequeze umeriche cot. f = O g Si dice che f è o grade di g se: c > 0 0, 0 N : > f c g si dice ache che f ha ordie di gradezza miore o uguale a quello di g Esempi: 5 + = O 4 5 3 = O log = O Fodameti di Iformatica II Prof. D. Brueo 6

Relazioi tra sequeze umeriche cot. f = Ω g Si dice che f è omega grade di g se: c > 0 0, 0 N : > f c g si dice ache che f ha ordie di gradezza maggiore o uguale a quello di g Esempi: 0 log = Ω k e k = Ωlog = Ω per ogi itero k>0 Fodameti di Iformatica II Prof. D. Brueo 7

Relazioi tra sequeze umeriche cot. 3 f = Θ g Si dice che f e g hao lo stesso ordie di gradezza se: c, d > 0 0, 0 N : > c g f d g Esempi: 5 + = Θ 00log = Θ log log + = Θ Fodameti di Iformatica II Prof. D. Brueo 8

Proprietà Dalle defiizioi precedeti si deducoo le segueti proprietà: f = O g g = Ω f f = Θ g f = O g, f = Ω g Fodameti di Iformatica II Prof. D. Brueo 9

0 Fodameti di Iformatica II Prof. D. Brueo Regole 0, > = = c g O f c g O f ], max[ g g O f f g O f g O f = + = = Ω,Θ Dalla defiizioe di O grade discede che: Le stesse regole valgoo per I fattori costati o iteressao I termii di grado iferiore o iteressao 0, 0 k k k k k k O f a a a a a f = > + + + + = Vale la regola della somma

Fodameti di Iformatica II Prof. D. Brueo Dimostrazioe = = g O f g O f g b f g a f ], max[ g g b a bg ag f f + + + Al fie di dimostrare la regola della somma si cosideri: dalla defiizioe di o grade risulta: quidi: da cui deriva: ], max[ g g O f f = +

Cosiderazioi No è corretto cosiderare solo il caso migliore per valutare il comportameto asitotico di u algoritmo. Il fatto che u algoritmo el caso migliore abbia ua complessità lieare o basta per affermare che l algoritmo appartega a Θ oppure a O. Per lo stesso motivo o è corretto eppure affermare che l'algorimto appartiee a Θ solo perché el caso peggiore la complessità è quadratica. Viceversa, è corretto affermare che, el caso migliore, la complessità dell'algoritmo è Θ, che el caso medio e el caso peggiore la complessità è Θ e, più i geerale, che l'algoritmo è O ovvero è Ώ. U altra importate cosiderazioe fa riferimeto ai casi i cui o soo verificate le codizioi che soo alla base dell itroduzioe delle otazioi asitotiche. Ifatti, proprio perché le otazioi itrodotte soo asitotiche, vegoo trascurati i termii di ordie iferiore e le costati moltiplicative. Tuttavia, el caso i cui è ecessario cofrotare algoritmi aveti tempi di esecuzioe T il cui adameto al limite è uguale es. soo etrambe O, o è più possibile trascurare tali termii. I tal caso per stabilire quale algoritmo è più coveiete usare bisoga ecessariamete teer coto, i primo luogo delle costati moltiplicative e poi dei termii di ordie iferiore. Fodameti di Iformatica II Prof. D. Brueo

Tempo di esecuzioe: Operazioi semplici Le segueti operazioi hao u tempo di esecuzioe dell ordie di: operazioi aritmetiche +,*, operazioi logiche&&,,. cofroti <=, == operazioi di accesso a strutture dati semplici p.e.: ad elem. di array operazioi di assegazioi di valore p.e.: a=b seza chiamate di fuzioe operazioi di lettura e scrittura p.e.: pritf... operazioi di cotrollo p.e.: break,cotiue, retur T = O Spiegazioe ituitiva: soo operazioi che possoo essere realizzate co poche istruzioi i liguaggio macchia Fodameti di Iformatica II Prof. D. Brueo 3

Tempo di esecuzioe: Blocchi di comadi semplici U blocco composto da ua serie di comadi semplici ha u tempo di esecuzioe dell ordie di: T = O Ifatti, per la regola della somma, ogi somma di u umero costate di O restituisce come risultato O Fodameti di Iformatica II Prof. D. Brueo 4

Tempo di esecuzioe: ciclo for O ciclo for iizializza test O ed La complessità di u ciclo for è data dal prodotto della complessità del corpo del for stesso per il umero di volte che esso viee eseguito. T = Ok*f k volte corpo icremeto Of O Trattadosi di ciclo o predetermiato, sarà ecessario distiguere u caso migliore ed u caso peggiore. Dette k mi e k max il umero miimo e massimo di volte che viee iterato u geerico ciclo for si potrao otteere i tempi di esecuzioe T mi e T max Il caso del ciclo while risulta essere aalogo Fodameti di Iformatica II Prof. D. Brueo 5

Tempo di esecuzioe: costrutto if-the-else If-the-else O test parte if parte else La complessità di u istruzioe del tipo if <codizioe> the <istruzioi ramo the> else<istruzioi ramo else> è limitata superiormete dal ramo che ha la complessità maggiore. I realtà bisoga ache cosiderare il tempo impiegato a verificare la codizioe, che i geere ha complessità costate O. Of Og T = Omax[f,g] Ragioameti aaloghi valgoo el caso di u costrutto di tipo case. Fodameti di Iformatica II Prof. D. Brueo 6

Tempo di esecuzioe: chiamata di fuzioi La complessità di ua chiamata di fuzioe è data dalla somma di due termii: il costo, i termii di complessità computazioale, dell esecuzioe della fuzioe stessa ed il costo della chiamata. Quest ultimo è i geere trascurabile, ma o lo è se si effettuao chiamate per valore che hao l effetto di copiare sullo stack la struttura dati d la cui dimesioe è proprio quella da cui dipede la ostra fuzioe T di iteresse. Tuttavia, se la struttura dati è u vettore ed il liguaggio cosiderato è il C, poiché alla fuzioe viee passato di fatto il putatore al primo elemeto del vettore, il tempo di chiamata è idipedete da. T = Of fuzioe +f chiamata Passaggio dell itera struttura dati T = Of fuzioe Passaggio del putatore alla struttura dati Fodameti di Iformatica II Prof. D. Brueo 7

Tempo di esecuzioe: fuzioi ricorsive La complessità di ua fuzioe ricorsiva cioè di ua fuzioe che cotiee al suo itero ua chiamata a se stessa o può essere calcolata co le teciche precedeti. Ifatti, data ua geerica fuzioe ricorsiva R, la complessità della chiamata di u istaza ricorsiva di R, che compare el corpo di R stessa, dovrebbe essere data dalla somma del costo di chiamata e del costo dell esecuzioe dell istaza di R. Ma quest ultimo costo è proprio quello che stiamo cercado di calcolare, ed è quidi icogito. Per risolvere questo problema è ecessario esprimere il tempo icogito T dell esecuzioe di R, come somma di due cotributi: u tempo Of che deriva dall isieme di tutte le istruzioi che o cotegoo chiamate ricorsive, ed u tempo Tk che deriva dalle chiamate ricorsive, ivocate su di ua dimesioe del dato di igresso più piccola, cioè co k <. Otterremo quidi u equazioe, detta formula di ricorreza, del tipo: T=aT/b+Of Fodameti di Iformatica II Prof. D. Brueo 8

Tempo di esecuzioe: fuzioi ricorsive cot. Ad esempio, ell ambito del paradigma divide-et-impera, avremo ricorreze del tipo: T= O at/b+c+d per c per >c derivati dall aver diviso u certo problema padre i a sottoproblemi figlio di dimesioe /b, avedo idicato co C il costo derivate dalla combiazioe dei risultati e co D il costo relativo alla divisioe del problema padre ei problemi figlio ed essedo costate e quidi pari a O il tempo per la soluzioe dei problemi el caso baale, cioè quado <c. Per risolvere ua formula di ricorreza, e quidi giugere a determiare la complessità asitotica di T, è possibile adottare dei particolari metodi di soluzioe. Uo di questi detto metodo iterativo cosiste semplicemete ell iterare la ricorreza proposta, fiché o si riesce a trovare ua geeralizzazioe. A questo puto occorre trovare il valore per il quale si chiude la ricorreza, sostituirlo ella formula geerale e calcolare il risultato applicado le regole per limitare le sommatorie. Fodameti di Iformatica II Prof. D. Brueo 9

Esercizio Calcolare la complessità i fuzioe di 0 della seguete fuzioe: it g it { it a=; if <=500 for it i=; i<=; i++ for it j=; j<=;j++ a+=; else for it i=; i<=; i++ a+=; retur a; } Soluzioe: Istruzioe ricorrete: a+=; T= O per 500 istr. ricorrete i u doppio ciclo for ciascuo dei quali itera volte O per >500 istr. ricorrete i u ciclo for da ad. Complessità asitotica Fodameti di Iformatica II Prof. D. Brueo 30

Esercizio Dato il seguete frammeto di programma: i=; while i>= { for it j=; j<=;j++ a++; i=e; } calcolare la complessità asitotica i fuzioe di ei casi: a E=i-; b E=i-; c E=i/. Fodameti di Iformatica II Prof. D. Brueo 3

Esercizio : soluzioe Istruzioe ricorrete: a++; Tale istruzioe verrà eseguita almeo volte el for, resta da determiare la stima delle iterazioi el ciclo estero while i fuzioe di che adrao a moltiplicare le iterazioi del ciclo itero => T = OTwhile*. Il while itera per i che va da ad variado ei tre casi il passo di decremeto => i. Calcoliamo duque la complessità del while: a i=e=i-: il passo è lieare => il while itera volte => T = O* = O ; b i=e=i-: alla prima iterazioe i=, viee eseguito il for e duque ad i viee assegato i- => i=0 che o soddisfa la codizioe del while => ua sola iterazioe => T = O* = O; Fodameti di Iformatica II Prof. D. Brueo 3

Esercizio : soluzioe cot. c I=E=i/: suppoiamo sia k il umero di iterazioi del quale vogliamo stabilire ua stima della complessità i fuzioe di : iizialmete i=; passo K i=/; passo K- i=/4; passo K- i=/8; passo k-z i=/ z+ ; passo j i=/ k-j+ ; passo i=/ k =; Da cui possiamo stimare k: k = log Il che vuol dire che la complessità asitotica sarà: T = O*log Fodameti di Iformatica II Prof. D. Brueo 33

Esercizio 3 a Date le segueti dichiarazioi di fuzioe, calcolare la complessità i fuzioe di >0 della chiamata PF,y. it Fit { it b; it a=; for it i=; i<=; i++ for it j=; j<=;j++ a++; b= a/; retur *b; } void P it m, it &x { for it i=; i<=m*m; i++ x+=3; } Fodameti di Iformatica II Prof. D. Brueo 34

Esercizio 3 a: soluzioe L istruzioe ricorrete di F si trova all itero del doppio for, cioè: a++; Quella di P è ivece localizzata all itero del for: x+=3; La complessità di F risulta essere: T F = O essedo l istruzioe ricorrete iterata i u doppio for co i e step uitario, quella di P: T P m = Om i quato il ciclo itera per i tra ed m co icremeto uitario. Il valore restituito dalla fuzioe F che diveta il limite del ciclo i P il parametro m facedo u semplice calcolo risulta essere uguale ad, per cui ella stima della complessità possiamo sostituire ad m ; da cui la complessità totale si trova sommado le complessità delle due fuzioi, essedo la loro esecuzioe o sovrapposta e iterata: T = T F + T P = O + O = O Fodameti di Iformatica II Prof. D. Brueo 35

Esercizio 3 b Come ell esempio precedete ma co F defiita come segue: Soluzioe : it Fit { } it b; it a=; for it i=; i<=; i++ b= a; retur *b; for it j=; j<=;j++ a++; La complessità delle due fuzioi rimae ivariata rispetto al caso precedete, differisce ivece il valore restituito dalla fuzioe F, che sarà : T F = O ; T P m = Om T = T F + T P = O + O 4 = O 4 Fodameti di Iformatica II Prof. D. Brueo 36

Esercizio 4 Calcolare la complessità i fuzioe di >0 del seguete ciclo: for it j=; j<=f;j++ a+=; it f it { it a=0; for it j=; j<=;j++ a+=; retur a; } Soluzioe: umero di iterazioi = risultato[f]: somma volte => complessità di ua iterazioe: complessità della chiamata f: T F = O + O + O = O complessità del for: umero iterazioi * complessita di ua iterazioe: T for = O * = O 3 Fodameti di Iformatica II Prof. D. Brueo 37

Esercizio 5 Calcolare la complessità della fuzioe seguete ricerca biaria it bisearch it A [], it, it x { it i=0; it j= ; while i <= j { it k=i+j/; if x == A[k] retur ; if x < A[k] j= k ; else i= k+; } retur 0; } Fodameti di Iformatica II Prof. D. Brueo 38

Esercizio 5: soluzioe La fuzioe bisearch implemeta l algoritmo di ricerca dicotomica o biaria su vettori ordiati. È basato sul pricipio divide et impera: scelto come elemeto pivot quello co idice medio, si cofrota l elemeto i tale posizioe el vettore col valore ricercato, se il cofroto dà esito positivo si è ultimata la ricerca, altrimeti prosegue su ua parte del vettore, per vettori ordiati i ordie crescete, quella a destra del pivot se l elemeto ricercato è maggiore di quest ultimo, a siistra el caso opposto. Per calcolare la complessità utilizziamo ua variabile k che cota il umero di cicli effettuati: iizialmete passo K passo K- passo K- passo K-z... passo j passo i=0; i=/+; i=3/4+; i=7/8+; i=[ z+ -/ z+ ]+; i=[ k-j+ -/ k-j+ ]+; i=[ k -/ k ]+=-. Da cui possiamo stimare k: k = log [ + /] Il che vuol dire che la complessità asitotica sarà: Olog Fodameti di Iformatica II Prof. D. Brueo 39

Esercizio 6 Calcolare la complessità asitotica i fuzioe di della seguete fuzioe ricorsiva che calcola il fattoriale di u umero it fattorialeit { if == retur ; else retur *fattoriale-; } Fodameti di Iformatica II Prof. D. Brueo 40

Esercizio 6: soluzioe La formula di ricorreza è data i questo caso da: T= O per = T-+O per > quidi: T =T O = T O O = T 3 O O O geeralizzado: k T =T k O i= la ricorsioe si chiude quado T sarà pari ad quidi per k=-, quidi T =T i= O =O i= O = O =O i= Fodameti di Iformatica II Prof. D. Brueo 4