Dispense sulla Complessità Computazionale
|
|
- Nicola Cara
- 7 anni fa
- Visualizzazioni
Transcript
1 Dispese sulla Complessità Computazioale Complessità Computazioale... Premessa... La misura dell efficieza... Ordie di gradezza delle fuzioi... 2 Notazioi asitotiche... 2 Tre otazioi: motivazioi e defiizioi... 2 O(g())... 3 Ω(g())... 3 Θ(g())... 3 Implicazioi... 4 Uso improprio... 4 Alcue cosiderazioi... 4 Calcolo della complessità computazioale dei pricipali costrutti di programmazioe... 5 Istruzioi... 5 Blocchi... 5 Costrutti selettivi... 5 Cicli... 6 Ciclo While... 6 Ciclo For... 6 Chiamate di fuzioi... 6 Calcolo della complessità di fuzioi ricorsive... 6 Formule di ricorreza: Metodi di soluzioe... 7 Esempi... 8 Calcolo del fattoriale... 8 La Torre di Haoi... 8 MergeSort... 9 QuickSort...
2 Complessità Computazioale Premessa U aspetto importate che o può essere trascurato ella progettazioe di u algoritmo è la caratterizzazioe dell efficieza co la quale l algoritmo stesso viee eseguito su u elaboratore. L efficieza è, tra l altro, da itedersi o solo come tempo di esecuzioe, ma ache i fuzioe dell utilizzo delle altre risorse del sistema di elaborazioe, come, ad esempio, la memoria cetrale. I questo capitolo viee itrodotto u modello per la misura dell efficieza di u programma. Il modello permette di caratterizzare l efficieza di esecuzioe (complessità computazioale o temporale) e l efficieza i termii di memoria impiegata (complessità spaziale) i maiera idipedete dal sistema di elaborazioe sul quale si itede eseguire il programma i oggetto. La misura dell efficieza L efficieza di u algoritmo (e da ora i poi, se o esplicitamete idicato, parleremo idistitamete di efficieza spaziale o di efficieza computazioale) o può essere misurata semplicemete, i quato dipedete da u umero elevatissimo di fattori. Dato u programma scritto i liguaggio sorgete l efficieza dell esecuzioe dipede dal compilatore impiegato che effettua ua traduzioe i codice macchia che può essere più o meo efficiete, dalla struttura del sistema di elaborazioe che può risultare più adeguata ad eseguire rapidamete alcue classi di istruzioi, dalla poteza della CPU del sistema di elaborazioe, e via di seguito. E quidi importate otare esplicitamete che il tetativo di caratterizzare l efficieza o può che prescidere dalla architettura di sistema di elaborazioe adottato, e cocetrarsi sugli aspetti che ivece soo strettamete legati alla atura e struttura dell algoritmo prescelto. Nel seguito di questo paragrafo teteremo di defiire i che ottica avviee la caratterizzazioe dell efficieza e ei paragrafi segueti daremo degli strumeti operativi per valutare l efficieza di u geerico algoritmo cosiderato. Suppoiamo di cosiderare u algoritmo A e di voler caratterizzare la sua complessità computazioale. Allora, se idichiamo co T il tempo impiegato dall algoritmo, ed la dimesioe della struttura dati d su cui opera A, oi siamo iteressati a caratterizzare la fuzioe: T=T(). A titolo di esempio se A è u programma che realizza l ordiameto di u vettore, è chiaro che è il riempimeto del vettore che iflueza, come oto, il tempo di esecuzioe di A. Spesso u algoritmo ha u tempo di esecuzioe che dipede dalla dimesioe di più strutture dati. Si pesi ad u programma che realizza la fusioe di due vettori ordiati; i questo caso è evidete che la fuzioe T dipede sia dalla lughezza del primo vettore che dalla lughezza del secodo e quidi è ua fuzioe di più variabili. Nel corso del capitolo correte il umero di variabili da cui dipede T o iflueza i risultati e le cosiderazioi che tracceremo e, di cosegueza, per motivi di semplicità faremo riferimeto ad ua fuzioe T di ua sola variabile. Visto che è ecessario prescidere dal particolare compilatore o dalla architettura del calcolatore su cui verrà eseguito l algoritmo, il modello che si assumerà per il calcolo del tempo T() è il modello computazioale tipicamete idicato co radom-access machie (RAM). Nel modello RAM si cosidera u geerico moo-processore i cui tutte le istruzioi soo eseguite ua dopo l altra, seza essu tipo di parallelismo. Ioltre si assumerà che le istruzioi semplici del liguaggio (istruzioi di assegameto, istruzioi co operatori aritmetici, relazioali o logici) abbiao u costo uitario i termii di tempo impiegato per la loro esecuzioe. Su questa base si procederà al calcolo del tempo complessivo T impiegato da tutte le istruzioi dall algoritmo, teedo coto ovviamete del fatto che tale tempo dovrà dipedere dalla dimesioe dei dati, visto che siamo iteressati alla valutazioe di T(). U altra cosiderazioe importate che è qui opportuo fare, è che il tempo T() potrebbe variare sesibilmete i dipedeza dello specifico valore assuto dalla struttura dati i igresso. Data ultimo aggiorameto 26/02/ Pag.
3 Quello che si vuol dire è che T oltre a dipedere dalla dimesioe della struttura dati d, potrebbe dipedere ache dagli valori assuti da ua geerica occorreza di d. Sempre rifacedoci al caso di u algoritmo A che deve effettuare l ordiameto di u vettore, potrebbe capitare che A impieghi u tempo sesibilmete diverso se il vettore i igresso e già ordiato rispetto al caso i cui tale vettore sia o ordiato (o magari addirittura cotrordiato). Per questo motivo l aalisi che si coduce per il calcolo del tempo T() va fatta esamiado tre casi possibili: il caso migliore, che corrispode a quelle (o a quella) cofigurazioi della struttura dati d che dao luogo ad u miimo della fuzioe T(), il caso peggiore che corrispode a quelle (o a quella) cofigurazioi della struttura dati d che corrispodoo ad u massimo della fuzioe T(), ed il caso medio, che evidetemete corrispode al comportameto medio della fuzioe al variare della cofigurazioe di d. Dovrebbe risultare chiaro, ma coviee comuque precisarlo, che l algoritmo cosiderato potrà ache avere u tempo di esecuzioe T() idipedete dai valori assuti da d. I tal caso il tempo impiegato el caso migliore sarà uguale a quello impiegato el caso peggiore, e quidi ache a quello impiegato el caso medio. Nel corso dei prossimi paragrafi, si aalizzerà dapprima come è possibile caratterizzare co delle opportue otazioi il tempo di calcolo di u algoritmo A al crescere della dimesioe della struttura dati su cui A opera e si illustrerà il perché di questo tipo di aalisi. I seguito si vedrà come è possibile utilizzare tali otazioi per caratterizzare la complessità computazioale dei pricipali costrutti di programmazioe, ivi comprese le chiamate di fuzioi. Ifie verrà affrotato il problema di calcolare il tempo di esecuzioe di fuzioi ricorsive: sarao itrodotte delle opportue formule, dette formule di ricorreza, e metodi per la loro soluzioe. Ordie di gradezza delle fuzioi Notazioi asitotiche Nello studio della complessità di u algoritmo l iteresse è spesso quello di verificare il comportameto dell algoritmo, i termii di tempo di calcolo, seza far riferimeto ad ua prefissata dimesioe dei dati di igresso. I particolare, visto che l icideza sul tempo di calcolo cresce al crescere di, l aalisi che si coduce è u aalisi al limite, ovvero si studia il comportameto dell algoritmo per u sufficietemete grade. Le otazioi che si itroducoo soo pertato dette otazioi asitotiche, i quato devoo caratterizzare il comportameto di u dato algoritmo a partire da u valore di sufficietemete grade. U altro cocetto da teer presete ella valutazioe del comportameto di u algoritmo è il seguete: affermare che u algoritmo ha u certo adameto asitotico, sigifica dire che per qualuque cofigurazioe di dati i igresso il comportameto asitotico è di quel tipo; i altri termii o è corretto valutare il comportameto asitotico solo el caso migliore (o i quello peggiore), ma è ecessario verificare l adameto dell algoritmo i tutti i casi possibili. Soo tuttavia corrette affermazioi del tipo: l algoritmo A ha u comportameto asitotico, el caso migliore, di tipo T, ache se tale comportameto è diverso el caso medio ed i quello peggiore. Tre otazioi: motivazioi e defiizioi Nelle defiizioi delle otazioi asitotiche ritroviamo formalizzato il cocetto di aalisi al limite: per dire che ua fuzioe f() appartiee ad u certo isieme X(g()) è ecessario che l adameto relativo di f() e g() sia di u certo tipo a partire da ua prefissata dimesioe del dato di igresso, ovvero per ogi maggiore di u certo 0. I particolare, i iformatica, soo tre le otazioi comuemete adottate: O, Ω, Θ. Ua delle ragioe per cui vegoo adottate tre otazioi è che le prime due, come sarà evideziato el seguito, foriscoo u limite lasco, rispettivamete per i limiti superiore ed iferiore, metre la Data ultimo aggiorameto 26/02/ Pag. 2
4 terza forisce u limite stretto. I alcui cotesti è difficile trovare u limite stretto per l adameto delle fuzioi, per cui ci si accoteta di u limite meo preciso. Tali otazioi furoo itrodotte i u classico articolo di Kuth del 76; tuttavia i molti testi viee riportata ua sola di queste otazioi, che i geere è la O. Tale scelta è dettata da ragioi di semplicità, sia per o itrodurre troppe otazioi (cosa che potrebbe cofodere le idee al lettore), sia perché i geere ciò che serve è ua limitazioe superiore del tempo impiegato da u dato algoritmo e, i quest ottica, dimostrare che u algoritmo appartiee alla classe O è, come detto, più semplice che dimostrare l apparteeza alla classe Θ. Vi è ioltre u ultimo puto che vale la pea rimarcare: ua otazioe asitotica deve, ove possibile essere semplice, tat è che, come vedremo, l utilizzo di tali otazioi ci cosete di trascurare costati moltiplicative e termii di ordie iferiore. Orbee, spesso, voledo trovare u limite stretto, è ecessario ricorrere a fuzioi più complesse di quelle che si potrebbero adottare se ci si limitasse a cosiderare u limite lasco. Più i geerale, se si vuole caratterizzare u algoritmo co u limite stretto può essere ecessario dover cosiderare separatamete il caso migliore e quello peggiore, metre se ci limita a cercare u limite superiore basta trovarlo per il solo caso peggiore ed evidetemete tale limite sarà valido per l algoritmo stesso; quest ultima cosiderazioe può essere u ulteriore giustifica all adozioe i alcui testi di ua sola otazioe, la O. Passiamo ora ad itrodurre le defiizioi delle tre otazioi asitotiche. O(g()) Date due costati positive c ed 0, ua fuzioe f() appartiee all isieme O(g()), ovvero f() O(g()) se: c, 0 > 0 > 0, 0 f() c g() ciò sigifica che, a partire da ua certa dimesioe 0 del dato di igresso, la fuzioe g() maggiora la fuzioe f(). Possiamo quidi ache dire che la g() rappreseta u limite superiore per la f(). Tale limite o è però stretto. Suppoiamo ifatti di avere ua fuzioe f() O( 2 ). Ciò implica che la f(), da u certo puto i poi, è maggiorata da 2 : se ciò è vero, ache 3 maggiorerà la f(), e quidi f() appartiee ache a O( 3 ). E evidete che quest ultima apparteeza implica u limite sicuramete meo stretto del precedete, ma rimae comuque formalmete ieccepibile. I geerale quado si itroduce la otazioe O (soprattutto i quei cotesti i cui è l uica otazioe presetata) si cerca comuque di idividuare u limite superiore il più possibile stretto, fermo restado che tale limite potrebbe essere raffiato ulteriormete. Si oti ioltre che il comportameto per tutti gli < 0 o è assolutamete teuto i coto, per cui potrao esserci dei valori di < 0 tali che f() > g(), come evideziato ache i Fig. b. Ω(g()) Date due costati positive c ed 0, ua fuzioe f() appartiee all isieme Ω(g()), ovvero f() Ω(g()) se: c, 0 > 0 > 0, f() c g() 0 ovvero, a partire da ua certa dimesioe 0 del dato di igresso, la fuzioe g() è maggiorata dalla fuzioe f(). Ache i questo caso il limite o è stretto, e valgoo sostazialmete tutte le cosiderazioi fatte per la otazioe O() (cfr. ache Fig. c). Θ(g()) Date tre costati positive c, c 2 ed 0, ua fuzioe f() appartiee all isieme Θ(g()), ovvero f() Θ(g()) se: c, c 2, 0 > 0 > 0, 0 c g() f() c 2 g() ovvero a partire da ua certa dimesioe 0 del dato di igresso, la fuzioe f() è compresa tra c g() e c 2 g(). I maiera iformale si può dire che, al crescere di, la f() e la g() crescoo allo stesso modo (vedi Fig. a). A differeza delle otazioi precedeti, duque, se ua fuzioe appartiee ad esempio a Θ( 2 ), o potrà apparteere ache a Θ(), é tatomeo a Θ( 3 ) Data ultimo aggiorameto 26/02/ Pag. 3
5 Fig. : Esempi di fuzioi f() che appartegoo rispettivamete agli isiemi (a) Θ(g()), (b) O(g()) e (c) Ω(g()). Si oti come le relazioi di diseguagliaza che compaioo elle defiizioi soo soddisfatte solo a partire da u certo valore 0 della dimesioe del dato di igresso. Implicazioi Dalle defiizioi suvviste discede il seguete teorema (che o dimostreremo): Date due fuzioi f() e g(), ua fuzioe f() Θ(g()) se e solo se f() O(g()) e f() Ω(g()). Uso improprio Come detto l utilizzo corretto delle otazioi asitotiche è i espressioi del tipo f() O(g()). E tuttavia prassi comue ammettere usi del tipo f() = O( 2 ). Ioltre i alcui casi è molto utile dal puto di vista otazioale, ache se formalmete scorretto, poter sommare due otazioi asitotiche, cioè ammettere espressioi del tipo T() = Θ ( 2 )+ Θ(). Quest ultima espressioe deve evidetemete itedersi come: T() è uguale alla somma di ua qualuque fuzioe che appartiee all isieme Θ ( 2 ) più ua qualuque fuzioe che appartiee all isieme Θ (). Alcue cosiderazioi Come detto all iizio del capitolo, o è corretto cosiderare solo il caso migliore per valutare il comportameto asitotico di u algoritmo. Solo i virtù del fatto che, ad es., il BubbleSort el caso migliore ha ua complessità lieare o basta per affermare che l algoritmo BubbleSort appartega a Θ() oppure a O(). Per lo stesso motivo o è corretto eppure affermare che il BubbleSort appartiee a Θ( 2 ) solo perché el caso peggiore la complessità è quadratica. Viceversa è corretto affermare che, el caso migliore, la complessità del BubbleSort è Θ(), che el caso medio e el caso peggiore la complessità è Θ( 2 ) e, più i geerale che il BubbleSort è O( 2 ) ovvero è Ω(). Altre due importati cosiderazioi fao riferimeto a 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 cui aveti tempi di esecuzioe T() il cui adameto al limite è uguale (es. soo etrambe O( 2 )), 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, i primo luogo, e poi dei termii di ordie iferiore. U esempio classico è dato dalla scelta degli algoritmi di ordiameto: come dimostreremo el seguito il MergeSort è u algoritmo che appartiee a Θ(log), ovvero la sua complessità è sia el caso migliore che i quello peggiore (e quidi ache i quello medio) Θ(log). Il QuickSort, Data ultimo aggiorameto 26/02/ Pag. 4
6 viceversa è u algoritmo O( 2 ), la cui complessità el caso migliore e el caso medio è però Θ(log). Cotrariamete a quato si potrebbe pesare, l algoritmo di ordiameto più comuemete usato, e che si trova ormalmete implemetato elle librerie, è proprio quest ultimo. Questa scelta ha origie da due ordii di cosiderazioi: la prima è di carattere tecico, dovuta al fatto che il QuickSort svolge l ordiameto sul posto, e che quidi ha miore complessità spaziale del MergeSort, la secoda, ivece, è dovuta proprio al fatto che, da u lato la probabilità che per il QuickSort si verifichi il caso pessimo è abbastaza remota (e quidi cosiderare ache il QuickSort come u algoritmo di complessità Θ(log), pur o essedo formalmete corretto, è ua assuzioe abbastaza prossima alla realtà) dall altro che le costati moltiplicative el caso del QuickSort soo miori rispetto a quelle del MergeSort. Quidi per scegliere tra due algoritmi che hao sostazialmete lo stesso ordie di complessità è ecessario cosiderare il peso delle costati moltiplicative e queste giocao a favore del QuickSort. U altro caso i cui o è corretto trascurare i termii ascosti dalla otazioe asitotica è il caso i cui siamo iteressati a cofrotare il comportameto di due algoritmi per u prefissato. I tal caso è possibile, ad esempio, che u algoritmo A di complessità Θ( 3 ) si comporti meglio di u algoritmo A 2 Θ( 2 ); per covicersee suppoiamo di aver fissato = 50 e che l algoritmo A abbia u tempo T() dato da 3 / 0 metre l algoritmo A 2 abbia T() uguale a I tal caso per A avremo T(50) = 2500, metre per A 2 avremo T(50) = 250. Calcolo della complessità computazioale dei pricipali costrutti di programmazioe Nel seguito daremo delle semplici regole per caratterizzare la complessità dei vari costrutti di programmazioe, sulla base delle otazioi asitotiche itrodotte ei precedeti paragrafi. Combiado opportuamete tali regole è possibile calcolare la complessità computazioale di u geerico algoritmo. Istruzioi Ua volta fissato il modello di costo della macchia RAM, le istruzioi di assegameto, le istruzioi che coivolgoo solo operatori aritmetici, relazioali o logici hao tutte, come detto, lo stesso costo computazioale. I particolare si assume che tali istruzioi abbiao complessità costate, per idicare la quale viee covezioalmete utilizzata la otazioe Θ () (o equivaletemete O()). Blocchi La complessità di u blocco sequeziale di istruzioi è data dalla complessità massima fra quelle delle istruzioi costitueti il blocco i questioe. Dette I,,I i,,i m le m istruzioi del blocco e f (),,f i (),,f m (), le fuzioi che e caratterizzao la complessità, la complessità del blocco sarà quidi data da: Θ (max i (f i ())). I questo caso si applica la cosiddetta regola della somma: cioè è possibile calcolare la complessità di ua sequeza di istruzioi come la somma delle complessità delle istruzioi compoeti e la complessità risultate è quella del termie di grado più alto. Se ad esempio ho u blocco di tre istruzioi, la cui complessità è rispettivamete Θ (), Θ () e Θ (), posso calcolare la complessità del blocco (idicadola co Θ blocco ) come: Θ blocco = Θ () + Θ () + Θ (), che per la regola della somma sarà uguale a Θ (). Costrutti selettivi 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 Data ultimo aggiorameto 26/02/ Pag. 5
7 complessità costate. Idicado per semplicità co f cod, f else ed f the queste tre complessità e utilizzado la otazioe O avremo che la complessità dell if è pari a O(max(f cod +f the, f cod +f else )), dove il simbolo + sta ad idicare che si applica la regola della somma. Voledo ivece utilizzare la otazioe Θ, siamo costretti, come acceato ell itroduzioe, a distiguere u caso migliore ed u caso peggiore. Nel caso migliore avremo che la complessità sarà data da: Θ(mi(f cod +f the, f cod +f else )), metre el caso peggiore sarà data da Θ(max(f cod +f the, f cod +f else )). Ragioameti aaloghi valgoo el caso di u costrutto di tipo case. Cicli Ciclo While La complessità di u ciclo while è i geerale data dal prodotto della complessità del corpo del while stesso per il umero di volte che esso viee eseguito. I più bisoga cosiderare il tempo ecessario alla verifica della codizioe di fie ciclo. 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 while, e dette f cod e f corpo le fuzioi che caratterizzao le complessità derivati rispettivamete dalla valutazioe della codizioe e dalle istruzioi che compogoo il corpo del while, avremo che, el caso migliore, la complessità sarà data da Θ(f cod + k mi f corpo )), metre el caso peggiore sarà pari a Θ(f cod + k max f corpo )),. Si oti che è ecessario cosiderare ache f cod visto che k mi (e ache k max ) potrebbe essere pari a 0. Utilizzado la otazioe O ache i questo caso è possibile avere u uica espressioe per esprimere la complessità del ciclo while, che sarà ifatti data da O(f cod + k max f corpo )). Ciclo For 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. Ache i questo caso bisoga teer coto del fatto che è ecessario valutare il tempo ecessario all iizializzazioe della variabile di ciclo, al cofroto co la codizioe di fie ciclo e all icremeto della variabile stessa, tempo che tipicamete è costate. Detta quidi geericamete f cod la fuzioe che caratterizza tali tempi, detta ivece f corpo la fuzioe che caratterizza le complessità derivate dalle istruzioi che compogoo il corpo del for ed idicate co k il umero di iterazioi, si avrà che la complessità del for è data da Θ(f cod + k f corpo ). Si oti tuttavia che, dal mometo che i C il for di fatto o implemeta u ciclo predetermiato, ella pratica valgoo le stesse cosiderazioi fatte el caso del while. Chiamate 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. Calcolo della complessità di fuzioi ricorsive Nel caso i cui la fuzioe di cui si vuole calcolare la complessità è ua fuzioe ricorsiva, cioè cotiee al suo itero ua chiamata a se stessa, la tecica proposta ei precedeti paragrafi o può essere semplicemete applicata. Ifatti, data ua geerica fuzioe ricorsiva R, la complessità Data ultimo aggiorameto 26/02/ Pag. 6
8 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 Θ(f()) che deriva dall isieme di tutte le istruzioi che o cotegoo chiamate ricorsive, ed u tempo T(k) che deriva dalle chiamate ricorsive, ivocate su di ua dimesioe del dato di igresso più piccola, cioè co k <. Otterremo quidi u equazioe, detta equazioe ricorrete o formula di ricorreza o più semplicemete ricorreza, del tipo T()=aT(/b)+Θ(f() (oppure T()=aT( b)+θ(f()), dove il primo cotributo è apputo quello di a chiamate ricorsive su di u dato di dimesioe /b (oppure di b uità più piccolo) rispetto a quello di parteza ed il secodo cotributo è quello legato a tutte le istruzioi della fuzioe i cui o compaioo chiamate ricorsive. Per completare la ricorreza (e permettere la risoluzioe) è ecessario ache valutare il tempo impiegato dalla fuzioe per valori di sufficietemete piccoli. I questi casi (tipicamete per =0 o =) la fuzioe termia seza attivare chiamate ricorsive e se e può quidi calcolare semplicemete il tempo di esecuzioe T(), che sarà i geerale costate. Ad esempio, ell ambito del paradigma divide-et-impera, avremo ricorreze del tipo: Θ () per c T ( ) =, derivati dall aver diviso u certo problema padre at ( / b) + C( ) + D( ) per > c 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 Θ()) 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(), è ecessario adottare dei particolari metodi di soluzioe che sarao presetati e discussi el prossimo paragrafo. Formule di ricorreza: Metodi di soluzioe I metodi proposti per la soluzioe delle formule di ricorreza soo sostazialmete tre: il metodo iterativo, il metodo di sostituzioe ed il metodo pricipale. Il primo metodo 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. I geerale è quidi ecessario fare u po di passaggi matematici (che o dovrebbero essere comuque particolarmete complessi). Il metodo di sostituzioe cosiste ell ipotizzare ua soluzioe cadidata e dimostrare l esattezza dell ipotesi sulla base dell iduzioe matematica. Il problema si ricoduce duque alla scelta della fuzioe cadidata. Nel caso i cui la fuzioe scelta o si dimostri corretta, sarà ecessario provare co u altra fuzioe. Il metodo pricipale, viceversa, permette di trovare direttamete la soluzioe i u certo umero di casi. I particolare questo metodo si può applicare a fuzioi la cui formula di ricorreza sia del tipo T()=aT(/b)+f(), cioè il problema padre è divisibile i a problemi figlio tutti di dimesioi /b rispetto al padre, ed f() è il costo della fase di divisioe e combiazioe. I tal caso occorre cofrotare la fuzioe f() co la fuzioe log b a : la complessità risultate sarà quella della fuzioe di ordie maggiore; se le due fuzioi soo dello stesso ordie comparirà u termie logaritmico ella soluzioe dell equazioe di ricorreza. Più precisamete, el caso i cui f() Θ ( log b a ), cioè f() e log b a soo dello stesso ordie di gradezza, la soluzioe dell equazioe di ricorreza sarà Θ(f() log ); se viceversa f() O( log b a-ε ) per qualche ε > 0 (questo equivale a dire che la fuzioe f() è maggiorata poliomialmete da log b a ) la complessità risultate sarà data ovviamete dalla maggiore delle due Data ultimo aggiorameto 26/02/ Pag. 7
9 fuzioi, cioè la soluzioe della ricorreza sarà Θ ( log b a ). L ultimo caso è quello i cui si verifica che f() Ω( log b a+ε ) per qualche ε > 0 e i più è ache verificata ua codizioe di regolarità, cioè a f(/b) c f() per qualche c <. I tal caso la fuzioe f() maggiora poliomialmete log b a e quidi la soluzioe sarà Θ(f()). Esempi Calcolo del fattoriale it fattoriale(it ){ if (==) retur ; else retur *fattoriale(-); Θ () per = La formula di ricorreza è data i questo caso da: T ( ) =. Ifatti el T ( ) + Θ () per > caso base, quado ==, la complessità è Θ() perché bisoga solo effettuare u cofroto e poi restituire. Nel passo iduttivo, si spede u tempo Θ() per la verifica della codizioe dell if e acora Θ() per il prodotto e la restituzioe del risultato, metre la chiamata viee effettuata su ua dimesioe che è di u uità più piccola: quidi la complessità sarà data da T( ) + Θ(). Risolviamo la ricorreza co il metodo iterativo: T() = T( ) + Θ() = (T( 2) + Θ()) + Θ() = ((T( 3) + Θ()) + Θ())+ Θ(); da cui geeralizzado, otteiamo: k T() = T( k) + Θ (). La ricorreza si chiude quado k =. I questo caso ifatti l argometo di T( ) sarà pari ad uo ed arriveremo al caso baale T()= Θ(). Quidi sostituedo otteiamo: T() = T() + Θ () = Θ() + Θ () = Θ () =Θ(). La Torre di Haoi typedef it piolo; void muovi(it disco, piolo sorgete, piolo destiazioe) { pritf("muovi il disco %2d da %2d a %2d\", disco, sorgete, destiazioe); void haoi(it, piolo sorgete, piolo destiazioe, piolo ausiliario) { if ( == ) muovi(, sorgete, destiazioe); else { haoi(-, sorgete, ausiliario, destiazioe); muovi(, sorgete, destiazioe); haoi(-, ausiliario, destiazioe, sorgete); Data ultimo aggiorameto 26/02/ Pag. 8
10 La fuzioe muovi() ha complessità Θ(), essedo composta da u uica istruzioe di stampa. Θ () per = Allora la formula di ricorreza sarà data da: T ( ) =. Ifatti el caso 2T ( ) + Θ () per > baale devo effettuare solo u cofroto e la chiamata di muovi(), che hao etrambe complessità Θ(). Nel passo iduttivo ho ivece due chiamate ricorsive, su di u argometo di u uità più piccolo (che costao quidi 2T( )) ed ua chiamata di muovi() che ha complessità Θ(). Posso acora risolvere la ricorreza co il metodo iterativo: T() = 2T( ) + Θ() = 2(2T( 2) + Θ()) + Θ() = 2(2(2T( 3) + Θ()) + Θ())+ Θ(); effettuado le moltiplicazioi ottego: T() = 8T( 3) + 4Θ() + 2Θ() + Θ() da cui geeralizzado: T() = 2 k k T( k) + 2 i Θ () = 2 k T( k) + k i Θ Acora ua volta la ricorreza si chiude quado k =. I questo caso ifatti l argometo di T( ) sarà pari ad uo ed arriveremo al caso baale T()= Θ(). Quidi sostituedo otteiamo: T() = 2 - T() + 2 i Θ 2 = 2 - Θ() i Θ 2 = 0 i Θ 2. 0 La sommatoria i paretesi o è altro che la serie geometrica. I geere: + i x 2 x =. Nel ostro caso allora avremo: i 2 = = 2, da cui sostituedo ella 0 x 0 2 relazioe precedetemete trovata risulta: T() = Θ ( 2 ) = Θ ( 2 ). MergeSort #defie MAX_SIZE 000 typedef it Vettore[MAX_SIZE]; void Merge(Vettore vet, it i, it j, it k) { Vettore aux; it p, p = i, p2 = j + ; for (p = i; p <=k; p++) if (p > j) aux[p] = vet[p2++]; else if (p2 > k) aux[p] = vet[p++]; else if (vet[p] <= vet[p2]) aux[p] = vet[p++]; else aux[p] = vet[p2++]; for (p = i; p <= k; p++) vet[p] = aux[p]; La complessità della fuzioe Merge() è data dalla somma della complessità delle iizializzazioi e delle complessità dei due cicli for. Questi ultimi hao etrambi u corpo di complessità Θ() che viee eseguito volte. La complessità della Merge() è duque Θ() + Θ() + Θ() che per la regola della somma risulta essere uguale a Θ(). Data ultimo aggiorameto 26/02/ Pag. 9
11 void MergeSort(Vettore vet, it i, it j) { if (i < j) { MergeSort(vet, i, (i+j)/2); MergeSort(vet, (i+j)/2 +, j); Merge(vet, i, (i+j)/2, j); Θ () per = La formula di ricorreza i questo caso è data da: T ( ) =. 2T ( / 2) + Θ ( ) per > Ifatti el caso baale (vettore vuoto o composto da u uico elemeto) devo effettuare solo u cofroto che ha chiaramete complessità Θ(). Nel passo iduttivo ivece devo effettuare u cofroto, co costo Θ(), più due chiamate ricorsive su di u vettore di dimesioe metà, che costao 2T(/2), più ua chiamata di Merge() sull itero vettore, chiamata che ha quidi complessità Θ() (che i questo caso rappreseta il costo di combiazioe idicato co C() el precedete paragrafo, metre o ho u costo di divisioe D()). Di uovo, per la regola della somma, Θ() + Θ() = Θ(). Risolviamo dapprima la ricorreza co il metodo iterativo. T() = 2T(/2) + Θ() = 2(2T(/4) + Θ(/2)) + Θ() = 2(2(2T(/8)+ Θ(/4)) + Θ(/2)) + Θ(); effettuado le moltiplicazioi ottego: T() = 8T(/8) + Θ() + Θ() + Θ() da cui geeralizzado: T() = 2 k T(/2 k k ) + Θ ( ). Acora ua volta la ricorreza si chiude quado l argometo di T( ) è pari ad ; i questo caso ciò si verifica quado =2 k. Ciò implica che k sarà uguale a log 2. Se sostituiamo ella precedete relazioe avremo allora: log log T() = T() + Θ ( ) =Θ()+ Θ ( ) =Θ() + Θ(log) = Θ(log). A questo risultato era possibile ache giugere direttamete applicado il metodo pricipale. Nel ostro caso ifatti, la relazioe di ricorreza è del tipo T()=aT(/b)+f(), co a = 2, b = 2 e f() = Θ(). Cofrotado allora f() = Θ() co log b a = log 2 2 =, troviamo che f() Θ( log b a ), pertato la soluzioe dell equazioe di ricorreza sarà Θ(f() log) = Θ( log). Proviamo ora ad applicare ache il metodo di sostituzioe, utilizzado chiaramete la fuzioe log come fuzioe cadidata. Per semplicità dimostriamo solo che il MergeSort() è O(log). I effetti per dimostrare l apparteeza a Θ(log), dovremmo dimostrare ache che il MergeSort() è Ω(log), dimostrazioe che, per brevità, sarà omessa. Coduciamo la dimostrazioe per iduzioe. Partiamo dal passo iduttivo: dobbiamo dimostrare che T() c log, suppoedo per iduzioe completa che T(/2) c (/2) log(/2). Sostituedo l ipotesi iduttiva ella ricorreza T()=2T(/2) +, otteiamo: T() 2 c (/2) log(/2) + = c (log log2) + = c log c+ c log. L ultimo passaggio è evidetemete valido per c. Per completare la dimostrazioe dobbiamo dimostrare ache la base, cioè che, per u certo k, sia T(k) c klogk. Normalmete come valore di k viee scelto 0 oppure. I questo caso tuttavia, scegliere k pari ad porta a dover dimostrare la diseguagliaza T() c log, che equivale a dover dimostrare T() 0, il che è impossibile. Il pricipio d iduzioe, tuttavia, dice che, dimostrato il passo iduttivo, basta dimostrare il caso base per u certo valore di k per garatire la verità dell asserto per tutti gli k. Dimostrare quidi l asserto T(k) c klogk per k = 2 garatisce che tale asserto sia vero per tutti gli 2. Ciò è più che sufficiete, dal mometo siamo iteressati a Data ultimo aggiorameto 26/02/ Pag. 0
12 dimostrare la veridicità di ua otazioe asitotica. Dobbiamo quidi dimostrare che T(2) c 2log2. Il primo membro, applicado la defiizioe iduttiva è pari a 4; otteiamo pertato 4 2 c, che risulta evidetemete vero per ogi c 2. QuickSort it Partitio(it *vet,it i,it j){ it first,last,pivot; pivot = vet[i]; first = i-; last = j+; for(;;){ do last--; while (vet[last]>pivot); do first++; while (vet[first]<pivot); if (first<last) swap(vet,first,last); else retur last; La complessità della fuzioe Partitio() è data dalla somma della complessità delle iizializzazioi e della complessità del ciclo for. Quest ultimo ha ua complessità Θ() i quato l istruzioe di retur, che determia la fie del ciclo viee raggiuta dopo l esecuzioe di u umero di istruzioi dell ordie di. void QuickSort(it *vet, it i,it j){ it k; if (i < j){ k = Partitio(vet,i,j); QuickSort(vet,i,k); QuickSort(vet,k+,j); La formula di ricorreza i questo caso dipede da come lavora la fuzioe Partitio(), il cui costo rappreseta il costo di divisioe che era stato idicato co D() el precedete paragrafo, metre o c è u costo di combiazioe C(). Nel caso i cui l idice k restituito da Partitio() è tale da dividere il vettore i due sottovettori di dimesioe metà, la formula di ricorreza è evidetemete la stessa trovata per il MergeSort, cioè: Θ () per = T ( ) =. Ifatti el caso baale (vettore vuoto o composto da u uico 2T ( / 2) + Θ ( ) per > elemeto) devo effettuare solo u cofroto che ha chiaramete complessità Θ(). Nel passo iduttivo ivece devo effettuare ua chiamata di Partitio() sull itero vettore, co costo Θ(), e due chiamate ricorsive, su di u vettore di dimesioe metà, che costao 2T(/2). I questo caso, che è ache il caso migliore, poiché la formula di ricorreza è la stessa del MergeSort, la soluzioe sarà baalmete Θ(log). Viceversa, se l idice k restituito da Partitio()è tale da dividere il vettore i due sottovettori, uo di dimesioe uitaria e l altro di dimesioe, la formula di ricorreza Data ultimo aggiorameto 26/02/ Pag.
13 Θ () per = diveterà: T ( ) =. Ifatti el passo iduttivo, la complessità sarà data T ( ) + Θ ( ) per > dalla somma della complessità di Partitio()che è Θ() più la complessità delle due chiamate ricorsive, che avrao i questo caso complessità T() e T( ). Poiché T() = Θ(), avremo che el passo iduttivo, la complessità sarà data da Θ() +Θ() + T( ), che, sempre per la regola della somma, è pari a T( ) + Θ(). Risolviamo allora la ricorreza co il metodo iterativo: T() = T( ) + Θ() = (T( 2) + Θ( )) + Θ() = ((T( 3) + Θ( 2)) + Θ( )) + Θ(); da cui geeralizzado: k T() = T( k) + Θ ( i + ). La ricorreza si chiude quado k =. I questo caso ifatti l argometo di T( ) sarà pari ad uo ed arriveremo al caso baale T()= Θ(). Quidi sostituedo otteiamo: T() = T() + Θ ( i + ) = Θ() + Θ ( i + ) = Θ ( i + ) =Θ( 2 ). L ultimo passaggio deriva dal fatto che tra paretesi ho ua serie aritmetica, la cui sommatoria è pari a ( + ). 2 Il caso appea cosiderato corrispode al caso peggiore per l algoritmo QuickSort. Si può dimostrare che el caso medio la complessità del QuickSort è uguale a quella del caso migliore, cioè è Θ(log). Data ultimo aggiorameto 26/02/ Pag. 2
3 Ricorrenze. 3.1 Metodo iterativo
3 Ricorreze Nel caso di algoritmi ricorsivi ad esempio, merge sort, ricerca biaria, ricerca del massimo e/o del miimo), il tempo di esecuzioe può essere descritto da ua fuzioe ricorsiva, ovvero da u equazioe
DettagliRicorrenze. 3 1 Metodo iterativo
3 Ricorreze 31 Metodo iterativo Il metodo iterativo cosiste ello srotolare la ricorreza fio ad otteere ua fuzioe dipedete da (dimesioe dell iput). L idea è quella di reiterare ua data ricorreza T () u
DettagliAlgoritmi e Strutture Dati (Elementi)
Algoritmi e Strutture Dati (Elemeti Esercizi sulle ricorreze Proff. Paola Boizzoi / Giacarlo Mauri / Claudio Zadro Ao Accademico 00/003 Apputi scritti da Alberto Leporati e Rosalba Zizza Esercizio 1 Posti
Dettagli2T(n/2) + n se n > 1 T(n) = 1 se n = 1
3 Ricorreze Nel caso di algoritmi ricorsivi (ad esempio, merge sort, ricerca biaria, ricerca del massimo e/o del miimo), il tempo di esecuzioe può essere descritto da ua fuzioe ricorsiva, ovvero da u equazioe
DettagliTempo di calcolo. , per cui x è un caso più sfavorevole quando T. peggiore(
Tempo di calcolo. Tempo di calcolo di u algoritmo La complessità computazioale è ua misura della difficoltà di risolvere problemi di calcolo co algoritmi. Per misurare la complessità di u algoritmo si
DettagliCAPITOLO 3. Quicksort
CAPITOLO 3 Quicksort I questa lezioe presetiamo l algoritmo di ordiameto Quicksort(vedi []). L algoritmo Quicksort riceve i iput u array A e idici p r ed ordia l array A[p,, r] el modo seguete. L array
DettagliProgetto e analisi di algoritmi
Progetto e aalisi di algoritmi Roberto Cordoe DTI - Uiversità degli Studi di Milao Polo Didattico e di Ricerca di Crema Tel. 0373 / 898089 E-mail: cordoe@dti.uimi.it Ricevimeto: su apputameto Web page:
DettagliCorso di Linguaggi e Traduttori 1 AA TEORIA DELLA COMPUTAZIONE (cenni)
Corso di Liguaggi e Traduttori 1 AA 2004-05 TEORIA DELLA COMPUTAZIONE cei) 1 Sommario Iterazioe e ricorsioe Relazioi di ricorreza Complessità computazioale 2 Iterazioe e Ricorsioe Dato u problema, la sua
DettagliSoluzioni degli esercizi di Analisi Matematica I
Soluzioi degli esercizi di Aalisi Matematica I (Prof. Pierpaolo Natalii) Roberta Biachii 6 ovembre 2016 FOGLIO 1 1. Determiare il domiio e il sego della fuzioe ( ) f(x) = arccos x2 1 x + 1 π/3. 2. Dimostrare,
DettagliAlgoritmi e Strutture Dati Esercizi Prima parte
Algoritmi e Strutture Dati Esercizi Prima parte Esercizio 1 Si cosideri il seguete codice: 1 i 1 2 k 0 3 while i 4 do if A[i] s 5 the k k + 1 6 A[k] A[i] 7 i i + 1 e si dimostri la sua correttezza rispetto
DettagliESERCIZI SULLE SERIE
ESERCIZI SULLE SERIE. Dimostrare che la serie seguete è covergete: =0 + + A questa serie applichiamo il criterio del cofroto. Dovedo quidi dimostrare che la serie è covergete si tratterà di maggiorare
Dettagli1. a n = n 1 a 1 = 0, a 2 = 1, a 3 = 2, a 4 = 3,... Questa successione cresce sempre piú al crescere di n e vedremo che {a n } diverge.
Le successioi A parole ua successioe é u isieme ifiito di umeri disposti i u particolare ordie. Piú rigorosamete, ua successioe é ua legge che associa ad ogi umero aturale u altro umero (ache o aturale):
Dettagli0.1 Esercitazioni V, del 18/11/2008
1 0.1 Esercitazioi V, del 18/11/2008 Esercizio 0.1.1. Risolvere usado Cramer il seguete sistema lieare x + y + z = 1 kx + y z = 0 x kz = 1 Soluzioe: Il determiate della matrice dei coefficieti è (k 2)(k
DettagliESERCITAZIONI DI INTRODUZIONE AGLI ALGORITMI (A.A. 08/09, CANALE E-O)
ESERCITAZIONI DI INTRODUZIONE AGLI ALGORITMI (A.A. 08/09, CANALE E-O) DISPENSA N. 1 1. Limiti superiori, iferiori ed esatti, O, Ω, Θ Defiizioe 1.1 (Limitazioe Superiore). Diciamo che g() è ua itazioe superiore
DettagliSoluzioni degli esercizi del corso di Analisi Matematica I
Soluzioi degli esercizi del corso di Aalisi Matematica I Prof. Pierpaolo Natalii Roberta Biachii & Marco Pezzulla ovembre 015 FOGLIO 1 1. Determiare il domiio e il sego della fuzioe ( ) f(x) = arccos x
DettagliSERIE NUMERICHE Esercizi risolti. (log α) n, α > 0 c)
SERIE NUMERICHE Esercizi risolti. Calcolare la somma delle segueti serie telescopiche: a) b). Verificare utilizzado la codizioe ecessaria per la covergeza) che le segueti serie o covergoo: a) c) ) log
Dettagli= = 32
Algabra lieare (Matematica CI) - 9 Algebra delle matrici - Moltiplicazioe Euple, righe e coloe Notazioe I algebra lieare giocao u ruolo importate le coppie, tere,, ple ordiate di umeri reali; cosi come
Dettaglia n (x x 0 ) n. (1.1) n=0
Serie di poteze. Defiizioi Assegati ua successioe {a } di umeri reali e u puto x dell asse reale si dice serie di poteze u espressioe del tipo a (x x ). (.) Il puto x viee detto cetro della serie e i umeri
DettagliSERIE DI POTENZE Esercizi risolti. Esercizio 1 Determinare il raggio di convergenza e l insieme di convergenza della serie di potenze. x n.
SERIE DI POTENZE Esercizi risolti Esercizio x 2 + 2)2. Esercizio 2 + x 3 + 2 3. Esercizio 3 dove a è u umero reale positivo. Esercizio 4 x a, 2x ) 3 +. Esercizio 5 x! = x + x 2 + x 6 + x 24 + x 20 +....
DettagliElementi di statistica
Elemeti di statistica La misura delle gradezze fisiche può essere effettuata direttamete o idirettamete. Se la misura viee effettuata direttamete si parla di misura diretta; se essa viee dedotta attraverso
DettagliEsercizi Determinare il dominio di de nizione delle seguenti funzioni: a.
Esercizi -. Determiare il domiio di deizioe delle segueti fuzioi a. () = log jj p (jj ) b. () = µ 5 c. d. e. f. g. h. i. j. () =log jj () = 4p j j! Ã () =arcsi () = log 3 + () =log(jj ) p jj () =log(jcos
DettagliAlgoritmi e Strutture Dati (Mod. B) Programmazione Dinamica (Parte I)
Algoritmi e Strutture Dati (Mod. B) Programmazioe Diamica (Parte I) Numeri di Fiboacci Defiizioe ricorsiva (o iduttiva) F() = F() = F() = F() + F() Algoritmo ricorsivo Fib(: itero) if = or = the retur
DettagliInsiemi numerici. Sono noti l insieme dei numeri naturali: N = {1, 2, 3, }, l insieme dei numeri interi relativi:
Isiemi umerici Soo oti l isieme dei umeri aturali: N {1,, 3,, l isieme dei umeri iteri relativi: Z {0, ±1, ±, ±3, N {0 ( N e, l isieme dei umeri razioali: Q {p/q : p Z, q N. Si ottiee questo ultimo isieme,
DettagliTutorato di Probabilità 1, foglio I a.a. 2007/2008
Tutorato di Probabilità, foglio I a.a. 2007/2008 Esercizio. Siao A, B, C, D eveti.. Dimostrare che P(A B c ) = P(A) P(A B). 2. Calcolare P ( A (B c C) ), sapedo che P(A) = /2, P(A B) = /4 e P(A B C) =
DettagliLezione 2. . Gruppi isomorfi. Gruppi S n e A n. Sottogruppi normali. Gruppi quoziente. , ossia, equivalentemente, se x G Hx = xh.
Prerequisiti: Lezioe Gruppi Lezioe 2 Z Gruppi isomorfi Gruppi S e A Riferimeti ai testi: [FdG] Sezioe ; [H] Sezioe 26; [PC] Sezioe 58 Sottogruppi ormali Gruppi quoziete L Esempio 7 giustifica la seguete
Dettaglialgoritmi e strutture di dati
algoritmi e strutture di dati complessità degli algoritmi m.patrigai ota di copyright queste slides soo protette dalle leggi sul copyright il titolo ed il copyright relativi alle slides (iclusi, ma o limitatamete,
Dettagli16 - Serie Numeriche
Uiversità degli Studi di Palermo Facoltà di Ecoomia CdS Statistica per l Aalisi dei Dati Apputi del corso di Matematica 6 - Serie Numeriche Ao Accademico 03/04 M. Tummiello, V. Lacagia, A. Cosiglio, S.
DettagliAlgoritmi e Strutture di Dati
Algoritmi e Strutture di Dati Complessità degli algoritmi m.patrigai Nota di copyright queste slides soo protette dalle leggi sul copyright il titolo ed il copyright relativi alle slides (iclusi, ma o
Dettagli(a 0, a 1, a 2,..., a n,...) (0, a 0 ), (1, a 1 ), (2, a 2 ),... (1, 3, 5, 7,...) Lezione del 26 settembre. 1. Successioni.
Lezioe del 26 settembre. 1. Successioi. Defiizioe 1 Ua successioe di umeri reali e ua legge che associa a ogi umero aturale = 0, 1, 2,... u umero reale - i breve: e ua fuzioe N R; si scrive ella forma
DettagliAnalisi Matematica Soluzioni prova scritta parziale n. 1
Aalisi Matematica Soluzioi prova scritta parziale. 1 Corso di laurea i Fisica, 018-019 3 dicembre 018 1. Dire per quali valori dei parametri α R, β R, α > 0, β > 0 coverge la serie + (!) α β. ( )! =1 Soluzioe.
DettagliSECONDO ESONERO DI AM1 10/01/ Soluzioni
Esercizio. Calcolare i segueti iti: Razioalizzado si ottiee SECONDO ESONERO DI AM 0/0/2008 - Soluzioi 2 + 2, 2 + 2 = 2 + 2 + 2 + 2 = Per il secodo ite ci soo vari modi, e mostro tre. Ora ( ) ( + si = +
DettagliElementi di calcolo combinatorio
Appedice A Elemeti di calcolo combiatorio A.1 Disposizioi, combiazioi, permutazioi Il calcolo combiatorio si occupa di alcue questioi iereti allo studio delle modalità secodo cui si possoo raggruppare
Dettagli1.6 Serie di potenze - Esercizi risolti
6 Serie di poteze - Esercizi risolti Esercizio 6 Determiare il raggio di covergeza e l isieme di covergeza della serie Soluzioe calcolado x ( + ) () Per la determiazioe del raggio di covergeza utilizziamo
DettagliStima di somme: esercizio
Stima di somme: esercizio Valutare l'ordie di gradezza della somma k l (1 + 3 k ) Quado x
DettagliEs. di Ordine di crescita. Di quanto aumenta il running time se la taglia ~nlog(n) operazioni. dell input)
Ricomiciamo da quato fatto Riflettiamo su quato fatto Problemi icotrati Algoritmi Problemi icotrati Algoritmi Max Subarray Stable Matchig Max Subarray Stable Matchig 2 possibilità! possibilità Algoritmo
DettagliPrincipio di induzione: esempi ed esercizi
Pricipio di iduzioe: esempi ed esercizi Pricipio di iduzioe: Se ua proprietà P dipedete da ua variabile itera vale per e se, per ogi vale P P + allora P vale su tutto Variate del pricipio di iduzioe: Se
DettagliLezioni di Matematica 1 - I modulo
Lezioi di Matematica 1 - I modulo Luciao Battaia 4 dicembre 2008 L. Battaia - http://www.batmath.it Mat. 1 - I mod. Lez. del 04/12/2008 1 / 28 -2 Sottosuccessioi Grafici Ricorreza Proprietà defiitive Limiti
DettagliESERCIZI - FASCICOLO 1
ESERCIZI - FASCICOLO 1 Esercizio 1 Sia (Ω, A) uo spazio misurabile. Se (A ) 1 è ua successioe di eveti (= elemeti di A), defiiamo lim sup A := A k lim if A = A k. Mostrare che =1 k= (lim sup A ) c = lim
Dettaglii-esima statistica d ordine di un insieme = i-esimo elemento più piccolo
Geeralità i-esima statistica d ordie di u isieme i-esimo elemeto più piccolo prima statistica d ordie di u isieme miimo -esima statistica d ordie di u isieme di elemeti massimo Mediao di u isieme di elemeti
DettagliComplessità Computazionale
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
DettagliEsercizi: analisi asintotica delle funzioni di complessità ricorsive. January 31, 2007
Esercizi: aalisi asitotica delle fuzioi di complessità ricorsive Jauary, 007 Il Metodo di Sostituzioe: esercizi risolti Si utilizzi il metodo di sostituzioe per studiare le segueti ricorreze (per le ricorreze,
DettagliSOLUZIONE DI ESERCIZI DI ANALISI MATEMATICA IV ANNO 2015/16, FOGLIO 2. se x [n, 3n]
SOLUZIONE DI ESERCIZI DI ANALISI MATEMATICA IV ANNO 05/6, FOGLIO Sia f : R R defiita da f x { se x [, 3] 0 altrimeti Studiare la covergeza putuale, uiforme e uiforme sui compatti della successioe f e della
DettagliSERIE NUMERICHE FAUSTO FERRARI
SERIE NUMERICHE FAUSTO FERRARI Materiale propedeutico alle lezioi di Aalisi Matematica per i corsi di Laurea i Igegeria Chimica e Igegeria per l Ambiete e il Territorio dell Uiversità di Bologa. Ao Accademico
DettagliAncora con l induzione matematica
Acora co l iduzioe matematica Iformatica@SEFA 017/018 - Lezioe 9 Massimo Lauria Veerdì, 1 Ottobre 017 L iduzioe matematica sembra, per come vi è stata presetata la scorsa lezioe,
DettagliLe successioni: intro
Le successioi: itro Si cosideri la seguete sequeza di umeri:,,, 3, 5, 8, 3,, 34, 55, 89, 44, 33, detti di Fiboacci. Essa rappreseta il umero di coppie di coigli preseti ei primi mesi i u allevameto! Si
DettagliAnalisi Matematica 1 Matematica
Aalisi Matematica 1 Matematica Secodo Compitio Luedì 30 Geaio 01 VERSIONE A Esercizio 1 (8 puti) Sia α R u parametro e si cosideri la serie di poteze complessa z. i) Calcolare il raggio di covergeza R
Dettagli2,3, (allineamenti decimali con segno, quindi chiaramente numeri reali); 4 ( = 1,33)
Defiizioe di umero reale come allieameto decimale co sego. Numeri reali positivi. Numeri razioali: defiizioe e proprietà di desità Numeri reali Defiizioe: U umero reale è u allieameto decimale co sego,
DettagliPROVE SCRITTE DI MATEMATICA APPLICATA, ANNO 2013
PROVE SCRITTE DI MATEMATICA APPLICATA, ANNO 3 Prova scritta del 6//3 Esercizio Suppoiamo che ua variabile aleatoria Y abbia la seguete desita : { hx e 3/x, x > f Y (y) =, x, co h opportua costate positiva.
DettagliCenni di calcolo combinatorio
Appedice B Cei di calcolo combiatorio B Disposizioi, combiazioi, permutazioi Il calcolo combiatorio si occupa di alcue questioi iereti allo studio delle modalità secodo cui si possoo raggruppare degli
DettagliLe successioni: intro
Le successioi: itro Si cosideri la seguete sequeza di umeri:,, 2, 3, 5, 8, 3, 2, 34, 55, 89, 44, 233, detti di Fiboacci. Essa rappreseta il umero di coppie di coigli preseti ei primi 2 mesi i u allevameto!
DettagliCalcolo Combinatorio
Uiversità degli Studi di Palermo Facoltà di Ecoomia Dip. di Scieze Ecoomiche, Aziedali e Statistiche Apputi del corso di Matematica Geerale Calcolo Combiatorio Ao Accademico 2013/201 V. Lacagia - S. Piraio
DettagliArgomenti. Stima Puntuale e per Intervallo. Inferenza. Stima. Leonardo Grilli. Università di Firenze Corso di Laurea in Statistica Statistica
Uiversità di Fireze Corso di Laurea i Statistica Statistica Leoardo Grilli Stima Cicchitelli cap. 6 Argometi Defiizioe di stimatore Proprietà degli stimatori (campioi fiiti): No distorsioe Efficieza relativa
Dettagli1 Esponenziale e logaritmo.
Espoeziale e logaritmo.. Risultati prelimiari. Lemma a b = a b Lemma Disuguagliaza di Beroulli per ogi α e per ogi ln a k b k. k=0 + α + α Teorema Disuguagliaza delle medie Per ogi ln, per ogi upla {a
Dettagli2.5 Convergenza assoluta e non
.5 Covergeza assoluta e o Per le serie a termii complessi, o a termii reali di sego o costate, i criteri di covergeza si qui visti o soo applicabili. L uico criterio geerale, rozzo ma efficace, è quello
DettagliGiulio Cesare Barozzi: Primo Corso di Analisi Matematica Zanichelli (Bologna), 1998, ISBN
Giulio Cesare Barozzi: Primo Corso di Aalisi Matematica Zaichelli (Bologa), 998, ISBN 88-08-069-0 Capitolo NUMERI REALI Soluzioe dei problemi posti al termie di alcui paragrafi. Numeri aturali, iteri,
DettagliLa comparsa dei numeri complessi è legata, da un punto di vista storico, alla risoluzione delle equazioni di secondo grado.
Capitolo 3 3.1 Defiizioi e proprietà La comparsa dei umeri complessi è legata, da u puto di vista storico, alla risoluzioe delle equazioi di secodo grado. L equazioe ammette le soluzioi x 2 + 2px + q =
DettagliAppunti complementari per il Corso di Statistica
Apputi complemetari per il Corso di Statistica Corsi di Laurea i Igegeria Edile e Tessile Ilia Negri 24 settembre 2002 1 Schemi di campioameto Co il termie campioameto si itede l operazioe di estrazioe
Dettagli1 + 1 ) n ] n. < e nα 1 n
Esercizi preparati e i parte svolti martedì 0.. Calcolare al variare di α > 0 Soluzioe: + ) α Per α il ite è e; se α osserviamo che da + /) < e segue che α + ) α [ + ) ] α < e α Per α > le successioi e
DettagliT n = f n log n = log n. 1 ] 1 ] 1 = sono verificate le disuguaglianze c 1
A.A. 00 05 Esame di Algoritmi e strutture dati luglio 005 Esercizio (6 puti) Risolvere co almeo due metodi diversi la seguete relazioe di ricorreza T = T =T Master Theorem a= b= per cui log b a = log /
DettagliEsercizi sull estremo superiore ed inferiore
AM0 - A.A. 03/4 ALFONSO SORRENTINO Esercizi sull estremo superiore ed iferiore Esercizio svolto. Dire se i segueti isiemi soo limitati iferiormete o superiormete ed, i caso affermativo, trovare l estremo
DettagliTracce di soluzioni di alcuni esercizi di matematica 1 - gruppo 42-57
Tracce di soluzioi di alcui esercizi di matematica - gruppo 42-57 4. Limiti di successioi Soluzioe dell Esercizio 42.. Osserviamo che a = a +6 e duque la successioe prede valori i {a,..., a 6 } e ciascu
DettagliAnalisi Matematica A e B Soluzioni prova scritta n. 4
Aalisi Matematica A e B Soluzioi prova scritta. 4 Corso di laurea i Fisica, 17-18 3 settembre 18 1. Scrivere le soluzioi dell equazioe differeziale ( u u + u = e x si x + 1 ). 1 + x Soluzioe. Si tratta
DettagliNote per la Lezione 11 Ugo Vaccaro
Progettazioe di Algoritmi Ao Accademico 2017 2018 Note per la Lezioe 11 Ugo Vaccaro Abbiamo visto ella lezioe scorsa u argometo ituitivo secodo il quale il tempo medio di esecuzioe di QuickSort è O( log
DettagliAlgoritmi e strutture dati
Algoritmi e Strutture Dati Selezioe e statistiche di ordie Problemi di statistiche d ordie Estrarre da gradi quatità di dati u piccolo isieme di idicatori che e rappresetio caratteristiche statisticamete
DettagliAlgebra delle matrici
Algebra delle matrici Prodotto di ua matrice per uo scalare Data ua matrice A di tipo m, e dato uo scalare r R, moltiplicado r per ciascu elemeto di A si ottiee ua uova matrice di tipo m, detta matrice
Dettagli1.10 La funzione esponenziale
6. Risolvere le segueti disequazioi: (i) x + x + 3 2; (ii) x + 2 x > ; (iii) 4x 2 < x 3; (iv) 3x 2 > x 2 3; (v) x 2x 2 > 2x 2 ; (vi) x 3 x 2 > x. 7. Provare che per ogi a R si ha maxa, 0} = a + a 2, mia,
Dettagli1. Serie numeriche. Esercizio 1. Studiare il carattere delle seguenti serie: n2 n 3 n ; n n. n n. n n (n!) 2 ; (2n)! ;
. Serie umeriche Esercizio. Studiare il carattere delle segueti serie: ;! ;! ;!. Soluzioe.. Serie a termii positivi; cofrotiamola co la serie +, che è covergete: + + + 0. Pertato, per il criterio del cofroto
DettagliPROPRIETA DELLE FUNZIONI ARMONICHE
CAPITOLO PROPRIETA DELLE FUNZIONI ARMONICHE - Defiizioi ed esempi Le fuzioi armoiche vegoo defiite ello spazio euclideo; i questa tesi sarà cosiderato u umero itero positivo maggiore di metre Ω sarà u
DettagliAnalisi Matematica I modulo Soluzioni prova scritta preliminare n. 1
Aalisi Matematica I modulo Soluzioi prova scritta prelimiare 1 Corso di laurea i Matematica, aa 004-005 9 ovembre 004 1 (a) Calcolare il seguete limite: **A***** Soluzioe Si ha ( + log ) ( + log ) lim
DettagliNUMERICI QUESITI FISICA GENERALE
UMERICI (Aalisi Dimesioale). Utilizzado le iformazioi ricavabili dalla gradezza fisica che ci si aspetta come risultato e dai valori umerici foriti, idividuare, tra le espressioi riportate, quella/e dimesioalmete
Dettaglix n (1.1) n=0 1 x La serie geometrica è un esempio di serie di potenze. Definizione 1 Chiamiamo serie di potenze ogni serie della forma
1 Serie di poteze È stato dimostrato che la serie geometrica x (1.1) coverge se e solo se la ragioe x soddisfa la disuguagliaza 1 < x < 1. I realtà c è covergeza assoluta i ] 1, 1[. Per x 1 la serie diverge
Dettagli7 LE PROPRIETÀ DEI NUMERI NATURALI. SUCCES- SIONI
7 LE PROPRIETÀ DEI NUMERI NATURALI. SUCCES- SIONI Abbiamo usato alcue proprietà dei umeri aturali che coviee mettere i evideza. Per prima cosa otiamo che N gode delle due proprietà (i 0 N; (ii se N allora
Dettagli9 LIMITI DI SUCCESSIONI NUMERICHE
9 LIMITI DI SUCCESSIONI NUMERICHE Iiziamo ora ad esamiare gli argometi veri e propri di questa prima parte del corso, i cui svilupperemo gli strumeti per giugere a descrivere soddisfacetemete le proprietà
DettagliEntropia ed informazione
Etropia ed iformazioe Primi elemeti sulla teoria della misura dell iformazioe Per trasmettere l iformazioe è ecessaria ua rete di comuicazioe, che, secodo l approccio teorico di Claude E. Shao e Warre
DettagliREGRESSIONE LINEARE E POLINOMIALE
REGRESSIONE LINEARE E POLINOMIALE Nota ua tabella di dati relativi alle osservazioi di due gradezze X e Y, è aturale formulare ipotesi su quale possa essere ua ragioevole fuzioe che rappreseti o che approssimi
DettagliEsercizi sul principio di induzione
Esercitazioi di Aalisi I, Uiversità di Trieste, lezioe del 0/0/008 Esercizi sul pricipio di iduzioe Esercizio Dimostrare per iduzioe che + + + ( + ), Risoluzioe Le dimostrazioi di ua proprietà P() per
Dettaglin + 1 n + 2 = 1 n + 1 n n n Esercizio. Verificare il seguente limite a partire dalla definizione: n n 2 + n + 1 = 0 lim
3.. Esercizio. Ricoosciuto che determiare i valori ε tali che ε : ANALISI Soluzioi del Foglio 3 + = + ε essedo ε ua prima volta e ua secoda 0.5 ε = 9 ottobre 009 + + disuguagliaza soddisfatta da ogi N,
DettagliEsperimentazioni di Fisica 1. Prova scritta del 1 febbraio 2016 SOLUZIONI
Esperimetazioi di Fisica 1 Prova scritta del 1 febbraio 2016 SOLUZIONI Esp-1 Prova di Esame Primo appello - Page 2 of 7 10/09/2015 1. (12 Puti) Quesito. La variabile casuale cotiua x ha ua distribuzioe
DettagliCorsi di laurea in fisica ed astronomia Prova scritta di Analisi Matematica 2. Padova,
Corsi di laurea i fisica ed astroomia Prova scritta di Aalisi Matematica 2 Padova, 28.8.29 Si svolgao i segueti esercizi facedo attezioe a giustificare le risposte. Delle affermazioi o motivate e giustificate
DettagliEsercizi: analisi asintotica delle funzioni di complessitá ricorsive
Esercizi: aalisi asitotica delle fuzioi di complessitá ricorsive Jauary, 00 Cotets 0. Il Metodo di Sostituzioe: esercizi risolti............ 0. Il Metodo di Iterazioe: esercizi risolti............. 7 0.
DettagliProbabilità e Statistica (cenni)
robabilità e Statistica (cei) remettiamo la distizioe tra i due cocetti: Defiizioe: dato il verificarsi di u eveto si defiisce la probabilità per l eveto cosiderato il rapporto tra il umero dei casi favorevoli
Dettaglik=0 f k(x). Un altro tipo di convergenza per le serie è la convergenza totale e si dice che la serie (0.1) converge totalmente in J I se
Serie di fuzioi Sia I R, per ogi k N, data la successioe di fuzioi (f k ) k co f k : I R, cosideriamo la serie di fuzioi (0.) f k () k=0 e defiiamo la successioe delle somme parziali s () = k=0 f k().
DettagliSUCCESSIONI SERIE NUMERICHE pag. 1
SUCCESSIONI SERIE NUMERICHE pag. Successioi RICHIAMI Ua successioe di elemeti di u isieme X è ua fuzioe f: N X. E covezioe scrivere f( ) = x, e idicare le successioi mediate la ifiitupla ordiata delle
DettagliQual è il numero delle bandiere tricolori a righe verticali che si possono formare con i 7 colori dell iride?
Calcolo combiatorio sempi Qual è il umero delle badiere tricolori a righe verticali che si possoo formare co i 7 colori dell iride? Dobbiamo calcolare il umero delle disposizioi semplici di 7 oggetti di
DettagliSerie di potenze / Esercizi svolti
MGuida, SRolado, 204 Serie di poteze / Esercizi svolti Si cosideri la serie di poteze (a) Determiare il raggio di covergeza 2 + x (b) Determiare l itervallo I di covergeza putuale (c) Dire se la serie
DettagliSUCCESSIONI DI FUNZIONI
SUCCESSIONI DI FUNZIONI LUCIA GASTALDI 1. Defiizioi ed esempi Sia I u itervallo coteuto i R, per ogi N si cosideri ua fuzioe f : I R. Il simbolo f } =1 idica ua successioe di fuzioi, cioè l applicazioe
DettagliAritmetica 2016/2017 Esercizi svolti in classe Seconda lezione
Aritmetica 06/07 Esercizi svolti i classe Secoda lezioe Dare ua formula per 3 che o coivolga sommatorie Dato che sappiamo che ( + e ( + ( + 6 vogliamo esprimere 3 mediate, e poliomi i U idea possibile
DettagliEquazioni Differenziali
Equazioi Differeziali Nota itroduttiva: Lo scopo di queste dispese o è trattare la teoria riguardo alle equazioi differeziali, ma solo dare u metodo risolutivo pratico utilizzabile egli esercizi che richiedoo
DettagliProgrammazione dinamica vs. divide-et-impera
Programmazioe diamica vs. divide-et-impera Aalogia Soo etrambi paradigmi di sitesi di algoritmi che risolvoo problemi combiado le soluzioi di sottoproblemi Differeza Secodo divide-et-impera si suddivide
Dettagli1 Congruenze. Definizione 1.1. Siano a, b, n Z con n 2, definiamo a b (mod n) se n a b.
1 Cogrueze Defiizioe 1.1. Siao a, b, Z co 2, defiiamo a b (mod ) se a b. Proposizioe 1.2. 2 la cogrueza mod è ua relazioe di equivaleza su Z. a a () perché a a a b () b a () a b () b c () a b b c a c =
DettagliAccenni al calcolo combinatorio
Accei al calcolo combiatorio Dario Malchiodi e Aa Maria Zaaboi ottobre 2017 Pricipio fodametale del calcolo combiatorio: se ci soo s 1 modi per operare ua scelta e, per ciascuo di essi, ci soo s 2 modi
DettagliCapitolo 5. Successioni numeriche
Capitolo 5 Successioi umeriche Ua successioe è ua fuzioe avete domiio N o u suo sottoisieme del tipo A = { N > 0, 0 N} e come codomiio R e che associa a ogi umero aturale u umero reale a. La legge di ua
DettagliSERIE DI POTENZE. n=0 a n z n.
SERIE DI POTENZE 1. Covergeza putuale Data ua successioe di coefficieti (a ) N, a C, e dato u cetro w 0, la relativa serie di poteze è la serie di fuzioi a (z w 0 ) a 0 + a 1 (z w 0 ) + + a (z w 0 ) +.
DettagliCorso di Analisi Matematica 1 - professore Alberto Valli
Uiversità di Treto - Corso di Laurea i Igegeria Civile e Igegeria per l Ambiete e il Territorio - 07/8 Corso di Aalisi Matematica - professore Alberto Valli 8 foglio di esercizi - 5 ovembre 07 Taylor,
DettagliEsercizi sui numeri complessi per il dodicesimo foglio di esercizi
Esercizi sui umeri complessi per il dodicesimo foglio di esercizi 6 dicembre 2010 1 Numeri complessi radici ed equazioi Ricordiamo iazitutto che dato u umero complesso z = x + iy, il suo coiugato, idicato
DettagliESERCITAZIONE DI PROBABILITÀ 1
ESERCITAZIONE DI PROBABILITÀ 1 12/03/2015 Soluzioi del primo foglio di esercizi Esercizio 0.1. Ua classe di studeti è costituita da 6 ragazzi e 4 ragazze. I risultati dell esame vegoo esposti i ua graduatoria
DettagliPROPRIETÀ DELLE POTENZE IN BASE 10
PROPRIETÀ DELLE POTENZE IN BASE Poteze i base co espoete itero positivo Prediamo u umero qualsiasi che deotiamo co la lettera a e u umero itero positivo che deotiamo co la lettera Per defiizioe (cioè per
DettagliIn questo capitolo approfondiremo le nostre conoscenze su sequenze e collezioni,
Cotare sequeze e collezioi Coteuto Sequeze e collezioi di elemeti distiti Sequeze e collezioi arbitrarie 3 Esercizi I questo capitolo approfodiremo le ostre coosceze su sequeze e collezioi, acquisedo gli
Dettagli( 1) k+1 x k + R N+1 (x), k. 1 + x 10 2, 5 R N+1 ( 1 3 ) ) )
Esercizi di Aalisi - Alberto Valli - AA 05/06 - Foglio 8. Fatevi veire u idea per calcolare log48 alla secoda cifra decimale. Lo sviluppo di Taylor di log( + ) è covergete per solo per (,]. Duque bisoga
Dettagli06 LE SUCCESSIONI DI NUMERI REALI
06 LE SUCCESSIONI DI NUMERI REALI Ua successioe è ua fuzioe defiita i. I simboli ua f : A tale che f ( ) è ua successioe di elemeti di A. Se poiamo f ( i) ai co i,...,,..., ua successioe può essere rappresetata
Dettagli