Esplora E-book
Categorie
Esplora Audiolibri
Categorie
Esplora Riviste
Categorie
Esplora Documenti
Categorie
I
algoritmi
k
Sommario.
.---- *- ----
Nota alla seconda edizione ....................-....-....-
-------
Prefazione ................................ ....--.-------------
l Introduzione ..................
- - -
1.1 Algoritmi .........................-...... ... .-
. - -- -
1.4 Riepi1ogo .............................
Introduzinne ....................
slll .
l E. il i11lll llOI 1C
Dc1 niriune di lilllltd/i lllt
M
Sommario V
17.2 Strategia greedy concetti di base .............................................................. 315 Introduzione ......,....,...,. ...................,....,...........,.........................................................
......................................,................,.......----..--------------------- 445
17.3 Codici di Huffman .....................................................................................
................................................................. 3 l9
17.4 Fondamenti teorici dei metodi ..................................................... 326 23 Algoritmi elementari su .....................................--------- ----------
............................................................................
greedy grafi 447
17.5 Un problema di scheduling ........................................................................ 332 23.1 Rappresentazione di grafi .......................................................................... 447
3.2 Visita in ampiezza ..........,.....................................................,.................... 450
IS Analisi ammortizzata..........................................................................................
......................................................................................... 337
23.3 Visita in profondit ............................... ... - - 45 8
18.1 Il metodo degli aggregati ...........................................................................
..........,...,................................................. 338 23.4 Ordinamento topologico ......................................... - 465
18.2 Il metodo degli accantonamenti.................................................................
................................................................ 342 23.5 Componenti fortemente connesse .............................................................. 468
18.3 Il metodo del potenziale ............................................................................
....... ............................ ....................... 344
introduzione ....................................,............................................................................
....................................,............................................................................
36 1 25.1 Cammini nlinimi e rilassamentn.................................... ......................... 495
3 i. l Ten po
politl inli ile ................................................................
.. ...,...,...............................,.................................. . Rb
edizione Inrrodu-ione agli Algoritmi XII1
XEI Prefa ione all italiana
Questo libro di testo fornisce sia una moderna introduzione che un esauriente trattato
e Alan A. Bertossi
riguardo al progetto e all analisi di algoritmi, ed k stato scritto da famosi professori
ricercatori del prestigioso Massachusetts Institute of Technology. Il testo presenta molti Docente di b1erodi il Tratramenro dell 7nforn a-ione
per
algoritmi per problemi di indubbia utilit pratica, alcuni dei quali sono trattati molto
Universit degli Studi di Pisa
approfonditamente, pur rendendone accessibili il progetto e l analisi a lettori, siano essi
Gli algoritmi sono descritti sia verbalmente che utilizzando un semplice pseudocodice, che
li rende comprensibili a qualsiasi lettore che abbia una minima esperienza di programmazio-
testo in italiano, si posto il dilemma se usare termini scientifici della lingua italiana o inglese.
Dove stato possibile. sono stati usati termini italiani di uso corrente nell ambito accademico.
Nei casi in cui la traduzione avrebbe richiesto l introduzione di neologismi, sono stati
mantenuti i termini inglesi per esempio bi r. cirray, heap, l ash divenuti ormai di uso corrente
pseudocodice e i nomi delle variabili e degli algoritmi sono stati lasciati in inglese.
Il testo suddiviso in sette parti, a loro volta suddivise in capitoli. Ciascun capitolo presenta
dapprima le nozioni pi semplici e successivamente quelle pi difficili, cosi che un lettore
inesperto possa limitarsi a leggere le prime. Alcuni paragrafi ed esercizi sono contrassegnati
La Parte I tratta tutte le tecniche matematiche che sano necessarie nel resto del testo.
L unico prerequisito richiesto al lettore quello di avere una minima dimestichezza con le
dimostrazioni che usano l induzione matenntica. Questa parte pu essere soltanto sfogliata
ad una prinaa lettura. per ritornarvi successivamente quando risulti necessario capire una certa
tecnica matematica usata nel progetto o nell analisi di un algoritmo trattato nelle Parti II-VIL
radia sort, bucl et sor/ e di selezione. mentre la Parte III introduce le principali strutture di
dati lisre. code, pile, tabelle havh, aiberi di ricerca, allreri bilaiiciati atte a realizzare
La Parte I V presenta tecniche sofisticate per progettare nuoti algoritmi prograimnn ione
dii ainica. greedy e per analizzarne l etficienza eo mlisi anuirorti- aia . La Parte V tratta
strunure di dati evolute B-alberi, heap bi ohi iia/i. heap li Fibc nacci, stnrrnire per insieini
disgiunti . molte delle quali bonn state inventate nell ultimo decennio. La Parte VI espone
algnritmi per operare u di una impoi-t mtiiiima struttura. i grafi. Oltre ad algoritmi di base
visira in ampie ,.-a o in profonditG. con menti connesse . anno considerati algoritmi sia
-a
classici che recnstissimi per probic mi di opprimi ione su grafi alberi di co errura, canvuini
La Parte Vll contiene complementi ed estensioiii del materiale trattato nelle Porti ll-VI.
Sono intrndotti nunvi modelli i c ilcolo reti eli ccmfi-w ratori, circuiti combinati ri e
trattate alcune limit rioni teorichc di certi prohlemi. che pei c. non posa no esecra. risolti in un
Nota alla seconda edizione italiana
inevitabile che sfuggano degli errori e che vi siano altre imperfezioni dovute alla
pagine
traduzione, alla del testo e delle figure, alla lavorazione del libro in generale.
preparazione
Il non sempre essere uno specialista del ramo questo viene atf ancato da
traduttore pu per
un revisore, ma vi comunque spazio miglioramenti e comzioni. Gli autori stessi
per
commettono errori o, motivi magari inesplicabili a loro stessi, non presentano eli
per
argomenti nel modo migliore in questo libro, il caso pi eclatante era forse quello
proposti
del teorema 12.7. che stato ora reso bonus dormit6t Honierus...
pi preciso. Quandoque
anche Omero sembra sonnecchiare talvolta diceva gih Orazio.
correggere errori un lavoro minuzioso e ingrato, al quale ci sianao sobbarcati con spirito
gli
e cercando di fare del nostro meglio ci scusiamo fin d ora se qualche svista
di servizio
rimasta o se ne sono state introdotte di nuove. Ringraziamo altresi i numerosi studenti che
opportuno segnalare che, allo scopo di nsitieare la ben nota confusione tra alberi pieni.
Universit di lvliIano
libro fornisce un ampia introduzione allo studio moderno degli algoritmi. Presenta
Questo
molti algoritmi e li tratta in modo approfondito inoltre rende la loro progettazione e la loro
Dato che si discutono sia le tecniche che aspetti matematici presenti nella
questioni gli
di algoritmi. il libro essere utilizzato anche da tecnici e
progettazione pub proficuamente
professionisti.
Al docente
libro tratta molti argomenti, che non saranno affrontati tutti durante
Questo probabilmente
un corso. Pertanto si cercato di renderlo utile sia come libro di testo sia come manuale di Molti amici e colleghi hanno contribuito considerevolmente alla di questo libro. Li
qualit
riferimento da usare in seguito nella carriera professionale. ringraziamo l aiuto e le critiche costruttive.
per
I prerequisisti per poterlo leggere sono Il Laboratory for Computer Science del MIT ha fornito un ottimo ambiente di lavoro. I
una esperienza di programmazione, la comprensione delle ricorsive nostri colleghi del Theory of Computation Group del laboratorio sono stati particolarmente
qualche procedure
array e le liste d aiuto, tolleranti malgrado le nostre richieste incessanti di verifica e critica dei capitoli. Un
e la conoscenza di alcune strutture di dati semplici come gli
ringraziamento va a Baruch Awerbuch, Shafi Goldwasser, Leo Guibas, Tom
una certa confidenza con le dimostrazioni induzione matematica del particolare
per poche parti
Leighton, Albert Meyer, David Shmoys, e Eva Tardos. Grazie a William Ang, SalIy Bemus,
libro si basano su nozioni di analisi matematica e la Parte I del libro presenta tutte le
Ras Hirschfeld e Mark Reinhold che hanno garantito il buon funzionamento dei nostri
tecniche matematiche necessarie.
calcolatori DEC Microvax. Apple Macintosh. e Sun Sparcstation e la ricompi1azionc di
TgX tutte le volte che si superava il limite del tempo di compilazione. La Thinking Machines
Al professionista Corporation ha contribuito a Charies Leiserson di lavorare a questo libro durante
permettendo
una sua assenza dall MIT.
La variet degli areomenti di questo libro lo rende un ottimo manuale sugli algoritmi. Poich Molti colleghi hanno usato versioni di testo tenere cor i in altre
preliminari questo per
ogni capitolo relativamente completo, il lettore pu focalizzare 1a sua attenzione sugli scuole. ed hanno suggerito numerose comzioisi e revisioni. In si ringraziano
particolare
argomenti che maggiormente lo interessano. Richard Beigel Yale . Andrew Goldberg Stanford . Joan Lucas Rutgers , Mark Overmars
Poich molti degli algoritmi discussi hanno utilit ne sono considerati Utrecht . Alan Sherman Tuft e Maryland e Diane Souvaine Rutgers .
grande pratica.
anche vi si forniscono alternative anche algoritmi di questo
gli aspetti realizzati pratiche per quei pochi Molti assistenti dei nostri corsi hanno dato contributi significativi allo sviluppo
che sono essenzialmente di interesse teorico. materiale. Si ringraziano in Alan Baratz. Bonnie Berger. Aditi Dhagat, Burt
particolare
uno degli algoritmi sarh semplice Kalisl i, Arthur Lent, Andrew Moulton, Warios Papaefthymiou. Cindy Phillips. Mark
Per il lettore che desideri realizzare qualsiasi presentati
tradurre lo pseudocodice nel suo lingua di programmazione Lo Reinhold. Phil Rogaway. Flavio Rose, Arie Rudich, Alan Sherman. Cliff Stein, Susmita Sur.
gio preferito. pseudocodice
stato ciascun algnritmo in modo chiaro e sintetico sono stati Gregory Troxel e Margaret Tuttle.
progettato per presentare
volutamente ignorati la gestione degli ennri ed altri aspetti dell ingegneria del software che Molte altre hanno fornito un utile e valida assistenza tecnica. Denise Sergent ha
persone
richiedono ipotesi speci teche sull ambiente di programmazione. Si cercato di presentare trascorso molte ore nelle biblioteche del MIT alla ricerca di riferimenti bibliografici. Maria
pi
ciascun algoritmo in modo semplice e diretto, evitando le idiosincrasie di un linguaggio di Sensale. a bibl intecaria della nostra sala di lettura stata sempre disponibile e di grande aiuto.
programmazione specifico che avrebbe potuto coi fondere il suo significato, L accesso alla biblioteca di A1hert Meyer ci ha fattn risparmiare molte ore nella
personale
delle note si capitoli. Shlomo Vipnis, Bili Niehans e David Wilsott hanno
preparazione
correno le bozze dei vecchi esercizi, ne hanno sviluppato di nuovi e hanno scrittn le note per
Errori
le loro soluzioni. Marios Papaefthymiou e Gre ory Troxel hanna contribuito alla stesura
dell indice analitico. Negli anni, le nostre se,.retarie Inni Rzdziahoviky, Denise Sergent.
Un libro di mnle contiene seiiz altrn errori ed nmissioni. Se il lettore trova qualche
questa Galle Sherns in e. Be HubbarJ h mio fnrnito un snstegno senza pari per
particolarmente,
errore o h utile iu erimento a sar aseolt tn volentieri. Saranno
qualche proporre, e pertanto le ringraZiaimo.
questo progelto.
apprezzati u gerimenti nuovi esercizi e inclu l ino la
partico1arri ente per pr emblemi. purchi
Molti errori nelle versioni sono stati individuati dogli studenti. Un particolare
l prime
SOlllZIOtlC. I COI111112lltl pO i OI10 COSCI C lfll l 1I
rin razi mento va Bobby Blumofe. Bo ni Ei.,enberg. Raymo,ed 3nhn.,on. John Keen.
lullT Lahor.itoiy tor Computer Sii iice Molti c alle hi hat1no anche tornito rcvisic ni critiche di capitoli specifici. o i ilnnnazioni SU
545Technolo y Situare
A arxval. Erie B ch. V t eh Chv it rl. Riclurd Cole. 3oh i H,lit d. At x lihii. D x id
Camhriec. M iiiachusctti 02 I 3
Prefazione
Johnson. Joe Kilian. Dina Kravets, Bruce Maggs, Jim Orlin, James Par , Thane Plamback,
Hershel Safer, Jetf Shallit, Cliff Stein, Gi/ Strang, Bob Tarjan e Paul Wang. Alcuni colleghi
Il libro originale stato impaginato con L T X, un insieme di macro per TEX. Le figure
sono state realizzate su Apple iVIacintosh usando MacDraw II si ringraziano Joanna Terry
della Claris Corporation e Vlichael Mahoney della Advanced Computer Graphics per la loro
Rosico L. RIVEST
1.1 Algoritmi
I, 5 ll , .. il .
I ttrodu ione 3
pp la sequenz di input 31, 41, 59, 26, 41, 58 , un algoritmo di ordinamento restituisce
come output la sequenza 26, 31. 4i, 41, 58, 59 . Una sequenza di input di tipo
questo
cpiamata un istanza del problema di ordinamento. Pi in genera1e, un istanza di un problema
gonsiste di tutti i dati di ingesso che soddisfino i vincoli imposti nella definizione del
necessari a calcolare una soluzione.
problema
Nel libro gli algoritmi saranno di solito descritti come scritti in unopseudocodice, IsSERTIOY,-SORT A
programmi
un linguaggio che somiglia molto al C, al Pascal o all Alaol. H lettore che zi conosce questi 1 for j 2 to lengrli A
linguaggi non dovrebbe avere difficolt nella lettura degli algoritmi infatti, ci che distingue
reale do l ey Aj
lo pseudocodice da un codice che nello descrivere un dato
pseudocodice, per A j 1 .. j I
t Si inserisce Aj nella sequenza ordinata
algoritmo, si impiegano metodi espressivi chiari e concisi.
pi
4 i j- l
Talvolta, il metodo chiaro l uso del linguaggio corrente,
pi per cui non sorprenda la
di frasi vero 5 while i 0 e A i k
presenza o periodi in linguaggio naturale, mescolati a codice. Un altra
differenza tra lo psBudocodice ed un codice reale che il primo non specificatamente 6 do Ai 1 m Ai
concepito per gestire aspetti di ingegneria del software l astrazione dei dati. la modularit e-
7 i i l
la gestione degli errori. per esempio, sono spesso ignorati, in modo da cogliere pi 1 kc
8 Ai
direttamente l essenza di un algoritmo.
oritmo A 6, l. 3. L indice j
La figura 1.2 mostra il funzionanacnto d ll 1 per 5.2.4.
Insertion sort carta .. 1
essere infierite nella mano, elevamenti A1 j-
indie i la corrente che deve gli
Iniziamo con l algoritmo chiamato i isertivii so , che risulta efficiente nel casn si debba ancora sul tavnlo.
Aj 1 .. n corrispnndono al miszzetto di Irte
insertion
ordinare un piccolo numero di elementi. l sort funziona nello stesso modo usatn da
mnlte persone per ordinare una mano di bridge o ramino si inizia con la mano sinistra vuota
e le carte coperte poste sul tavolo, quincli si prende del tavolo una cart alla volta e la si
Lo pseudoc dice per l a1 oritm i li insertion s rt descrittn con un, chi ll11 ll I
procc hirw
a leugfh AJ . I numeri in input soner ordinatati in loco i numeri sono riiistcnsJti denti l irr iy
Capitolo l Introduzione 5
d
S - J j 3 Una variabile che rappresenta un array o un oggetto trattata come un puntarore ai dati
contenuti nell array o nell oggetto. Per tutti i campi f di un oggeno.z, l assegnamento
8. Ad ogni procedura i parametri sono passati per valore la procedura chiamata riceve una
1 2 4 5 6 3
propria copia dei parametri e se si assegna un valore ad un parametro, la modifica non
sentita dalla routine chiamante. Quando si passano oggetti, viene passata una copia del
2 3 4 5 6
puntatore ai dati che rappresentano l oggetto, mentre non sono copiati i campi degli
Figura 1.2 L elabora-ione di Inserfion-So s rll array oggetti. Per esempio, se x un di una chiamata, l assegnamento
A 5, 2, 4. 6, l, 3 La posi ione di indice j parametro procedura
indicata con un circolo. x m y dentro la procedura non visibile alla procedura chiamante, mentre l assegna nen-
to f x e- 3 sar visibile.
Convenzioni sullo pseudocodice
1. Le rientranze indicano la struttura dei blocchi. Per esempio. il corpo del ciclo For, che
1./-1 Usando la figura 1.2 come modello. illustrare l operazione di IYSERTIOY SORT
comincia dalla linea , comprende le linee 2-8 mentre il corpo del ciclo svhile, che comincia
dalla linea applicata al l array A g l. 41. 59. 26. 41, 58 .
5. contiene le linee 6-7 ma nnn la linea 8. Le rientranze si applicano nello stesso
modo ai costrutti if-then-else. L usn della rientranza al posto di pi conienzionali
indicatori delIa struttura di un blocco. come il costrutto 1.1-2 Riscrivere -SoRv ordinare in ordine non crescente
begin-end, riduce notevolmente la la procedura L saRviot per
lunghezza della procedura e talvolta migliorandone anzich in ordine
preservandone la chiarezza . non decrescente.
2. I costrutti iterativi while. for e repeat e quelli condizionali if, then ed else hanno la stessa
interpretazione del Pascal.
1.1-3 Considerare il seguente problema di ricerca
3. Il simbolo v indica che il resto della linea un conm,ento. Input una di n numeri a ..., a ed un valore v.
sequenza A a,.
4. Un assegnamento multiplo della forma i j- e assegna ad entrambe le variabili i e j il Output un indice i, oppure il valore speciale wc se i non presente
i tale che A i j
valore dell espressione e assegnamento dovrebbe
questo essere considerato equivalente in A. Scrivere lo pseudocodice la ricerca lineare che scandisce 1a sequenza a
per
all assegnamento j m e seguito da i m j.
partire dal primo elemento per ricercare il valore v.
5. Le variabili come i, j e l ey sono locali alla procedura data e comunque non saranno mai
usate variabili senza un esplicita indicazione.
globali
1.1-4 Considerare il problema di addizionare due interi codificati ciascuno su ii bit.
6. Si pu accedere agli elementi di un array specificando il nome dell array seguito memorizzati in due somma interi dovrebbe
array A e B di n elementi. La dei due
dall indice scritto tra Per esempio Ai indica
parentesi quadre. In i esimo elemento di ui essere memnrizzata in forma binaria in nn array C di 1 elementi. Descrivere
-.. n
array A. La notazione denota un intervallo di valori dentro un arruy, quindi A1 .. j il problema in modo formale e scrivere lo pseudocodice addizionare i due interi.
per
indica il sottoarri y di A contenente elementi Al
gli j, A 2 ...., Aj.
7. I doti composti sono organizzati in oggetti,
generalmente che sono strutturati in atEribicti
o campi. Si puo accedere a un campo specificousando il nome del campo se uito dal suo 1.2 Analisi di algoritmi
oggetto scritto tra parentesi Per esempio, un an vy trattato
quadre. come un oggetto on
l attributn le ngth che indica elementi contiene.
quanti quindi per specificare quanti AnaEi are un algoritmo ha il signific to di le risnrse che l al nritmo richiede.
elencanti ha un array prevedere
A. si scrive lengrh A . Bench si usino le sia
parentesi quadre per
l indicizzazione di un array che li attribuiti di ut
per oggetto. l interpretazione ria
utilizzare sar chiara in base al coiitcsto.
mentre algoritmi inferiori inno di solito scartati nel corso clcll analiii.
parecchi
J I11C.
p
Wg wwa
6 fntroduziene 7
Capitolo l
i I Cp 1
7 i ,t
Il tempo impiegato dalla I ey 8 n-1
procedura b sr .tn.io -SoRz dipende dall input l ordinamento di un 8 A i 1
migliaio di numeri richiede tempo dell ordinamento
pi di tre numeri. Inoltre la procedura
INSERTION-SORT impiegare linea
puo quantit diverse di tempo per ordinare sequenze della steisa la somma dei ten pi di esecuzione di ciascuna
Il tempo di esecuziane dell aigoritmo
dimensione, a seconda di quanto si ino olte contribuirh
queste gi parzialmente ordinate. In generale, il tempo impiega c essere eseguita ed elaboratan
eseguita un istruzione che passi per
richiesto da un algoritmo cresce cnn l dimensione dell input, di INSERTlON-
per cui tradizione descrivere Per calcolare Tn, il tempn di esecuzione
con c n al totale del tempo di esecuzione .
il tempo di esecuzione di un come una funzione
programma della dimensione del suo input. delle colonne dei costi e delle i olte, ottenendo
SORT, si sommano i prodotti
Per far ci necessarfo descrivere in modo tempo
pi formale i termini di esecuzione e
dimensione Il n
del l input .
1 cq n 1 cq t, cg t, l
Tn c n ei n
g
La nozione migliore di dii tensir ne elell inpug dipende dal che
problema si deve studiare. per j- J
molti problemi, come esempio l ordinamento
per o il calcolo delle trasformate discrete di n
Fourier, la nsisura naturale il nn nero degli elen eiiti 1 .
pi dell inpur per esempin. In cq 1 cg n
gt
dimensione ii dell urruy l ordin imenio
per per molti altri prnblemi, coine per esempio la J
7
di un al oritmo
di una stessa dimensione. il tempo di esecuzione pu
Anche input
per
,, N- RT. ll C l iO mieliore
. ..
Ip I
inoltre. piii upprnpriato descrivere la dimensione dell input .
con due numeri piuttosto che con c e Ai Leynellalinea5.
ciascun 2. 3.....
2......,. n, si trova
l array
a i ordinatn per j
uno solo per esempio, ie l input di un,l , ori dimoi un grafo, la dimensione
quando
quan
dell input puo e.,sere
i ha il suo valore iniziale di j I.
descr tt dal llunlelo lei Iloti e de, li ar lli rlel grato. In gellerale,
qu usdo
preieflti comunc/ue. per oglli
problCtllU tudiuto sar sempre indicata la misura scelta le dimensione ell input.
per
i ccitic,tiinlin.ua... iocorret,tr..
i L .. i ll
ii lI C li illl i I h lli i i
Cil l ililc Illi ltrc. 1liili ili
Ordine di grandezza
l ii cn c n-l c n j
- -- , ,
hanno semplificato lo studio. Innanzitutto
costi inoltre. si osservato che anche queste
Cg C6 C7S usando le costanti c per rappresentare questi
2 Cg C6 C7
I, si necessiti il tempo di esecuzione nel caso peggiore
- A cn costanti forni scana dettagli di quanto
2 2 pi
c dei comandi. Quindi non solo
c per costanti a. b e c che dipendono dai costi
Cv Cg Cg Cg . nn hn
ma anche i loro costi astratti c,.
si sono ignorati i costi reali dei comandi,
Questo tem o di esec uzione del caso essere espresso come considerando il tasso di crescita o ordire
peggiore pu an- bn c er fare un ulteriore operazione di a trazione
Si puo
costanti a, b e c che dipendono ancora . di interesse nell usalisi
daia costi t,
cos d dd, sulta una che il valore maggior
quindi fun ione di grande-a del tempo di esecuzione. poi
quadratica di n. solo il ternsine di una formula per
degli algoritmi. A tale scopo, si considera principa1e
Genenlmente, come - inferiore sono relativamente non signiticativi per
nel caso dell in sertion sort, il tempo di esecuzione di un atgoritmo esempio an- . dato che i termini di ordine
,
fisso
f. un dato input, il coeft sciente costante del termine principale.
per nonostante cib ne 1i i ultimi
neg u capitoli . vedranno
si alcuni interessanti
. n valori di n mo to grandi si puo ignorare anche
randomizzati nella deterininazinne
algoritmi
lp il cui com or variare sono meno significativi del tasso di crescita
portamento pu anche su un input tissatn. dato che i fattciri costanti
si scrive cle l insertion sort, per
dell efficienzz computazionale per input gr indi. Quindi.
tlteta
di O ir di n al
tetapo eli esecuzione nel caso pronunciatn
Analisi del caso e del esempio. h t un peggiore
peggiore caso medio mentre sar
usata in questo cupitolo in modo informale.
. La notazione 8 sarh
quadrato
.
, definita in modo nel Capitolo
Nell analisi dell aleoritmo di i . ertion
ins ort, sono preciso
stati presi . in considerazione
. i ne sia i caso
il
di esecuzione nel
, e tTiciCllie di un altro se il sun tempo
migliore, in cui l array i
di in p ut gi ordinato, che Infine. un nl oritmo si considera piii
il caso.- peggiore, quello ii cui
in arra
l arra di i
valutazione essere errat.. per
input ordinato ha un ordine di,.randezza inferiore. Questa puo
in modo inverso. caso pe,. ziore
rendi algoritmo 8 u- . esempio. sar
ma input sufficientemente un per
Nel seguito del libro sar input piccoli. per
di solito reso o iin cconsiderazioiie
pre. . .soltanto il tempo di eseru
. -i wc
i ione
velocemente di un algoritmn 8n .
- eseguito nel caso pei iore piii
ne
re caso e
peggiore.ore. cio
ciac il tempo di esecuzione
. pi lungog per qu
qua I.si si . input
i d ei sione
din
n questa scelta motivata dalle seguenti tre ragioni.
lO Capitolo l
di esecuzione nel caso mi liore e nel caso usando la notazione 8. a sufticienza, essi sono risolti direttamente.
peggiore problemi piccola
ottenere la soluzione del
le soluzioni dei sottoprobIemi sono combinati per
Combina
1.2-2 Si consideri ancora la ricerca lineare si veda l Esercizio 1.1-3 , Quanti elementi problema originale.
da cercare essere uguale, con la stessa ad uno degli tn il paradigma divide-et-impera intuitivamente
possa probabilit, qualunque L algrit mo m erge sort segue in modo stret
elementi ne ll array Quanti nel caso peggiore Quali sono i tempi di esecuzione nel
esso funziona nel modo seguente
caso medio e nel caso peggiore in notazione O Giustificare la risposta. sottosequenze di nl2 elementi
i elementi della sequenza da ordinare in due
Divide divide gli
ciascuna.
1.2-3 Si consideri il problema di valutare un polinomio in un punto. Dati r coefficienti il merge sort, le due sottosequenze.
Impera ordina. usando ricorsivamente
a, a,, ..., a, ed un numero rea er, si vuo1e calcolare g, z a,x . Descrivere, per la sequenza ordinata.
come risposta
Combina fonde le due sottosequenze per produrre
questo problema. un semplice algoritmo che abbia un tempo 8 n- . Descrivere poi
un algoritmo con un tempo 8n che usi il seguente metodo chiamato regola di
risale la sequenza da ordinme ha una
Hoivier riscrivere il polinomio Si noti che il processo delle chiamate ricorsive qaando
per
da fare in ogni sequenza di
uguale ad l in caso non ch altro quanto
n-I lunghezza questo
. a, x ago. 1 di per s ordinata.
gax ... a ,x a , x lunghezza
0 di merge sort la fissione delle due sottosequenze
L nperazione chiave dell algoritmo
fusione si usa una ausili ia
combina Per eseguire una tale procedura
ordinate nel passo
indici di elementi dell array tali che
1.2-4 Esprimere la funzione i/1000 l00n-- 1000n 3 iii termini di notazione 8. -. dnve A un array, p. q ed r sono
MrvcE A. -,.
e Aq 1 . rj Ordinati, eenera un singolo
r assumendo Ap .. q
p q queste procedura.
il corrente sottomray Ap .. rj.
sottoarray che sostituisce
1.2- Come pu essere modificato, quasi sempre, un algoritmo per avere un buon tempo
sia lasciato come esercizio si veda l Esercizio
di esecuzione nel caso migliore Bench il corrispondereste pseudocodice
Merce che impieghi un tempo On,
l.-2 , si pu facilmente immaginare una procedura
maui si esegue la fusione. Infatti. tornando
r- l il numero degli elementi su
dove ii p
di avne sul tavolo due mazzetti di carte
all esempio del di carte, si puo supporre
1.3 Progetto di algoritmi giocatore
e si desidera fondere
mazzetto ordinato ed ha in cima la carta pi piccla
scoperte. Ciascun
ba e consiste nello scegliere la piii
in un unico guazzetto di output. Il passo
i due mazzetti
Ci sono molte tecniche al oritmi esempio l algoritmo di insertion sort usa mazzetti, rimuoverla dal suo mazzeno
per progettare per tra le due carte che si trovano in cima ai due
piccola
un approccio incrementale dopo avere ordinato il sottoarray A 1. 1. si inserisce il coperta in cima al mazzetto di output.
j cosi capotta una nuova carta e deporla
lasciando
singolo elemento Aj nel il sottoarray A1 .. j ordinato. vuoto, a quel si prendona le carte
proprio posto, producendo si ripete finch un mazzetto di input punto
Questo passo
in cima al mazzetto di output.
In qquesto. n n si s esaminerh un approccio di alternativo, conosciuto dell altro mazzetto e si nno. coperte.
paraorafn progettazinite rimanenti pon
divide-et-im -impera era
, , co tante, in quantn si stannn
come c
che s
sar impie natoz. per progettare un algoritmo di ordinamento il
Computazionalmente. ciascun passo base impie a un tempo
fiore cui. al pii . i eseguiranno n passi
cui tempo di esecuzione nel caso peg risulta assai inferiore a quello dell insertinn sort. considerando solo le due carte in cima ai due m i retti. per
A
fntrodu-ione 13
Capitolo l
fusione fusione CI S
AB 1
T n/b Dn Cn altrimenti.
$a
2 5 4 6 l 3 2 6
risolvere ricorrenze ordinarie di questa forma.
Nel Capitolo 4 si vedr come
Esercizi
2 10 - istruzioni
0000 secondi 5.56 ore,
10 istruzioni/secondo
50 10 1g 10 istruzioni
1000 secondi 16.67 minuti.
10 istruzioni/secondo
rispetto al supercalcolatore
Esercizi
...v ....r di
/.4-3
elelln stesso numero. lWnstr re che questo
n numeri contetsg occorrenze ip tute
per ogni funzione f n e tempo r della tabella seguente, determinare il pi grande input n di merge sort .
un problema che pu essere risolto in un tempo t, assumendo che I algoritmo per risolvere tale
impieghi f st microsecondi.
problema
Note al capitolo
j
l argomento degli algoritmi. inclusi
secondo minuto mese anno I secolo Vi sono molti buoni libri che affrontano in generale
giorno
Brassard e Bratley 33 Horowitz e Sahni
di Aho, Hopcroft e Ullman 4, 5 B aa 14
quelli
145, 146 Purdom e Brown
Knuth 121, 122, 123 Manber 142 Mehlborn 144,
105
Wil In Bentley 24, 25 e
Reingold, Nieverge1te Deo 167 Sedgewick 175 201 .
164
nella degli algoritmi.
Gonnet sono discussi alcuni degli aspetti pi pratici progettazione
90 The
volumi con il titolo di Art of
1968 Knuth il primo di tre generale
Nel pubblic
che avvi lo studio moderno degli algoritmi
Computer Programming 121, 122, 12 .
di esecuzione tutta la serie. comunque.
richiamando 1 attenzione sull analisi del tmpo
degli argomenti di questo libro. Secondo
un utile ed importante riferimento per molti
rimane
.algoritmo -al-Khowarizmi . matematico de
dal no,ne un persiunn
Knuth. la parola deriva
IX secolo.
asintotica degli algoritmi sia uno
e Ullman mostrarono come l analisi
Aho. Hopcroft 4
diffusero anche l uso delle relazioni di
tra relative. Essi
strumento di confronto prestazioni
1nsertion sort nel merge sort sa array piccoli degli algoritmi ricorsivi.
ricorrenza descrivere il tempo di esecuzione
per
Bench merge sort venga eseguito nel caso in tempo 8n lpi ed insertion sort di molti algoritmi di ordinamento il suo
peggiore fornisce un trattato enciclopedico
Knuth 123
esatta del conteggin dei passi. come
di tali algoritmi 381 include l analisi
confronto pagina
lo rendono pi veloce per valori piccoli di n. Quindi ha senso usare insertion sort dentro il mer e sort. La discussione di Knuth sull algoritmo
che stata fatta nel libro per l insertion
quella
sort i sottoproblemi diventano sufficientemente Si consideri una modifica del la pi importante di queste lo
quando piccoli. sort comprende diverse varianti dell algoritmo.
di insertion
merge snrt in cui n/k sotteliste di lunghezza l sono ordinate usa d l . . c usa insertion sort su sottosequenze periodiche
Shell sort, da D. L. Shell, che
presentato
combinate usando il meccanismo standard di fusione, con /- che deve essere determinato. veloce.
dell input ottenendo un algoritmo di ordinamento pi
a. che le n/k sottoliste, ciascuna di lunghezza i- nel inventato nel 1938.
iVIostrare gg iore possono essere
Il merge sort descritto anche da Knutl., che cita un selezionatore meccanico,
1-3 Inversioni
L analisi degli algoritmi spesso richiede l impiego di numerosi strumenti matematici alcuni
di essi sono semplici come l algebra delle scuole superiori. ma altri, come quelli per la
soluzione di ricorrenze. risultare al lettore delle vere novit. Questa parte del libro
potrebbero
vuoi essere un compendio dei metodi e degli strumenti che si useranno per analizzare
proprio
algoritmi essa organizzata in primo luogo come un testo di riferimento e talvolta come
basato sulla presentazione di nozioni mate matite e mira a far si che risulti chiara la notazione
I metodi la ri oluzione delle ricorrenze, che ono state usate nel Capitolo l per
per
.metodo
analizzare il merge sort, sono raccolti nel Capitolo 4., una tecnica potente il
.
che si usa risolvere le ricorrenze che si trovano analizz.,mdo gli algoritn1i del
generale per
divide-et-impera
tipo La maggior del capitolo dedicata alIa climnstrazione di
parte
correttezza di questo metodo. che essere saltata senza alcun danno per la compren-
peri pu
sione successiva degli argnnsenti propositi.
i iltato alai lettnie che abbia i seguito litri c rei su ucsti ar omenti.
La nsa ior Jci li li iritnqi gli libro non richiecle il calcol delle
proh hilit. parte qcilo
la loro analisi, ad una prima lettura, gli ultimi paragrafi del capitolo
probabilit per quindi,
possono essere saltati anche senz ifagliarli. Tuttavia, se si vuole comprendere meglio
Ordine di grandezza delle funzioni
l analisi che si incontrer in seguito, il Capitolo 6 organizzato in modo da
probabilistica
essere un comodo riferimento.
Data una funzione gn, si denota con Ogn l insieme di finn -ioni ogni n n . Dividendo n- si ha
per per
La figura 2.1 a fornisce una rappresentazione intuitiva delle funzioni n e gn. dove n diverse.
f f
,,
O g n .Perognivaloredinall d
adestradillp ilvaloredif n coincideositrovasoprac c g nn che 6n e O n- . Si supponga per
la definizione formale anche per verificare
,, Si pu usare
e c ih e sitro sono c g n llp Allora n c,16, che non
.. , n altre parole,per ogni la funzione fn uu,auale a
che esistano c, ed n, tali che 6n c,ri- per ogni ii n. pu
assurdo
gn a meno di un fattore co
costante. . Si dice che gn un lignite asintotico stretto nn. dato che c, costante.
per f valere in alcun modo per n comunque grancle,
La definizione di O g n richiede che ogni membro n di 8 g n sia asintoticamente basso di una funzione asintoticamente positiva
f Intuitivamente, i termini di ordine pi
non negativo, cio che sia non negativa tutte le volte che n sufficientemente rande. asintotico stretto essi sono
f, n ignorati nella determinazione del limite perch
essere
possono a
l3,. consegue . 1st s f zione deve essere asintoticamente non ne atii a. alt del termine di ordine alto sutficiente
gn n grande. Una frazione piccola pi
trascurabili per
-
gn vuoto. Si assumer percio che ogni funzione usata dentro la notazione 8 bassa.
dominare i termini di ordine pi
sia asintoticamente non negativa ipotesi vale anche le altre notazioni asintotiche del coefficiente del
questa per un valore leggermente pi piccolo
Quindi l assegnamento a c, di
definite in questo capitolo. Si die a sititotieamentepositiva una funzione che siastrettamente consente che le
alto e a c di un valore leggermente pi grande,
termine di ordine pi
positiva per tutti gli n sufficientemente grandi. soddisfatte. Il coefficiente del
nella definizione della notazinne 8 siano
disuguaglianze
Nel Capitolo 1 si introdotta una nozione informale della esso cambia c, e c, solo per un
notazione O che co l essere ignorato in quanto
termine pi alto pu analogamente
i ermini i grado pi basso ed ignorare il coefficiente del termine di
principale fattore costante uguale al coefficiente.
ordine Si a
ppi erande.
. pu b
brevemente giustificare questa soluzione intuitiva usando la
funzione f n an- bn c, dove a,
Come esempio si consideri una generica quadratica
di ordine basso ed ignorando la costante
costanti ed a 0. Tralasciando i termini pi
c, g n cg n b e c sono
stessa cosa, si le costanti
Formalmente, mostrare la prendono
si ha fn O ir . per
fn Il lettore verificare che
a/4, c, 7nl4 ed n 2mzx jb /ei , c /a . pu
f c,
ogni n n. In per qualunque polinomio pn
C I1 Qll l ll C C 11
per generale
cg n 2-1 .
c gn 0. si ha p n O ir si veda il Problema
ai , dove 1e a, snno costanti e is,
g, z
esprimere funzione
costante un pol inomio di grado 0. si pu qualunque
Dato che qualunque
non chiaro variabile stia
o Ol. ultima notazioite, poich quale
costante come 8 Quest
importanza . Si user spesso la
un uso improprio. comunque di minore
tendendo all infinito.
n n It
costante rispetto a qualche variabile.
n PI indicare o una coitznte o una funzione
V notazione 81 per
fn 8gn fl 0g f . no
a b c
Notazione O
e da sotto. si ha solo
una f rn ione ala sopra Quando
Lu notazione 8 limit asintoticamenie
dt si denota con
la not rione O. Per una funzione gn.
un limite asintotico superiore, si usa
c ta i C e al/a destrosi di li i/, Yl/rrre dif
o fornis .e tr , /intime sn,erir,re er u, O g itl l insieme di ftinzioisi
1 si visto che quando l input gi ordinato, l insertion sort Viene eseguito in tempo 8n.
una costante moltiplicata gn, con n sufficientemente grande.
Tecnicamente, un uso per
improprio dire che il tempo di esecuzione di insertion sort O n- .
in quanto, un dato n. il tempo
per di esecuzione reale dipende dal particolare input di
Notazione asintotica nelle equazioni
Yotaziene Q l
, O ll . Ill CllC1 lle,
li 11 . I . .,
l
COlllCLlll
1 gll llCI1C
La. .......
Cosi come la notazione O f irnisce un limite asintotico superiore d una funzione. la notazione
lli 8n.
f insieme di funzioni 8 . Ill tjUCsl C lM .
f
ll 1. CllC i
pl of l ll
o la definizione di
come definizione della notazione
Alcuni autori usano questo limite
Zen/2 On. negative.
y-, , ad essere asintoticamente non
libro timita le funzioni anonime
solo al comportamento asintotico di Tn, non di alcuna questo
igwressati importanza
esattamente tutti i termini di ordine pi basso sottinteso che siano tutti inclusi
rq e
anonima denotata daI termine On. Notazione m
funzione
-.omero di funzioni anonime in un espressione sottinteso che sia uguale al numero di o sta alla notazione O.
,.- alla notazione Q come la notazione
Per analogia, la notazione co sta
, - he la notazione asintotica appare. Per esempio, nell espressione stretto. Un modo
un limite inferiore non asintoticamente
Si usa la notazione co per denotare
definir1a
lp i , per
Q se e solo se g n e ofn .
fn c m gn
di g di n come l insieme
o una singola funzione anonima una funzione di i . Questa espressione non Formalmente si definisce co g n omega piccolo
quindi
una costante n 0 tale che
q qpsa di 01 02 ... On, che in realt non ha una chiara interpretazione. costante c 0, esiste
Co g n f n per qualunque positiva
-.-. la notazione asintotica n
cuni casi, appare sul lato sinistro di un equazione, come in 0 cg n n per ogni 12p
f .
D implica che
e n- . W c i . La relazione f n gn
-- 8n j Per esempio, t l2 co s , ma n-12
all infinito.
mhn .
f s e gn whn implicano fn
S r taxione o
Riflessivit
f j j J fg e asintotico superiore fornito dalla notazione O essere asintoticamente stretto
puo
fn f ,
c q. la notazione o per denotare un limite superiore che non asintoticamente stretto. f 0 f ai ,
Si
gf jgjggi formalmente ogn o piccolo di g di n l insieme f f
pf j f n per qualunque costante positiva c 0, esiste una costante n Q tale che Simmetria
f n Ogn a b,
Notazioni standard e funzioni comuni
2.2
fn Qgn a b,
f sr co g n a b.
Monotonicit
Una propriet dei numeri reali che pern non pu essere trasferita alla notazione asintotica
analogamente
la seguente crescente se m n implica f n fn
Una funzione n monotona
f
funzione n strettamente
Tricotomia Per ogni coppia di numeri reali a e b, deve valere esattamente una delle n implica fn. Una f
monotona decrescente se m fm
decrescente se in ii implica
seguenti espressioni a b, a b, a b. n ed strettamente
crescente se n n impiica f m f
Sebbene qualunque coppia di numeri possa essere confrontata, non tutte le funzioni sono fm
fn.
asintoticamente confrontabili. Cio, per una coppia di fu t.-ioni f n e gn, pu essere che non
valga n f n Ogn n f n Qgn . Per esempio le funzioni n e n-, usando le
Base e tetto
notazioni asintotiche, non possono essere confrontate in quanto il valore dell esponente di
n oscilla tra 0 e 2, assumendo tutti i valori dell interuallo. minore o uguale a x con Lx J
reale x, si denota il pi grande intero
Dato un qualunque numem tetto
a x con I x l si legga di
base intero maggiore o uguale
si legga di x e il pi piccolo
Esercizi .
x Per tutti i reali x
x l ixj x x x l.
2.1-1 Siano f n e gn funzioni asintoticamente non negative. Usando la definizione di
Per intero n,
qualunque
base della notazione 8, dimostrare che max f n, gn f n gn .
in/2J n,
fn/2i
con a c 0 e h 0,
e per intero n, a e b interi,
qualunque
2.I-2 Mostrare che per ogni coppia di costanti reali a e b, dove b 0, 2.3
rr r s r
n a 6n .
- .4
LL I J 11 LI J .
Il
2.1-3 Spiegare perch l affermazione tempo di esecuzione del l algoritmo A almeno
O n- priva di significato.
e tetto sono monotone crescenti.
Le funzioni base
2.2-2 .
2,1-8 Si pu estendere la notazione al c so di due n ed nt che tendere I- veda l Esercizio
parametri possono costante ci
a dire che f n Oi per qualche
indipeisdentensente all intinito con tassi di crescita cliversi. Per una data funrions
0 /pii. m c n, ni o ni i e nr m .
per se LleI1ti idelllit l
ct W 0, In cd II. Si ll lini li
Per og li li.lie
Dare le corrispondenti dchnirioni Q g n. i e O g ll. 111 .
per
30 Capitolo 2
a
a a btoln
loga a Il 10gb Q,
Per ogni n e a I, la funzione a monotona crescente rispetto a n. Quando sar conveniente,
log, a
si assumer 0o l. 1Qgb Q
log, b
Il tasso di crescita di polinomi ed esponenziali essere messo in relazione con il seguente
pu a i 10gb Q,
fatto tutte le costanti reali a e b tali che a l,
per 1
10gb Q
n log,b
lirn 0 . 2.5
10 II log a
i a Q 2.9
da cui si pub concludere che
cambiando la base di un logaritmn da una costante ad un altra il valore del
Dato che
n oa . Ign
fattore costante. si user spesso la notazione quando non
logaritmo cambia solo per un
funzione esponenziale con base strettamente maggiore di 1 cresce la base
Quindi, qualunque positiva costanti, come nella notazione O. Gli informtici trovno che
si sia interessati ai fattori
pi velocemente di qualunque polinomio. dati la dii isione
naturale i logaritmi sia 2 perch molti a1goritmi e strutture prevedono
pi per
Usando e per denotare 2.71828... la base della funzione logaritmo naturale. si ha per ogni
in due parti del problema.
reale,v l
V i un semplice sviluppo in serie per 1n 1 x quando x
X X X
e 1x , , g ,, x- xe x x
2.6
2 3 t- 1n 1 x x .
2 3 4 5
dove denota la funzione fattoriale definita nel seguito di questo paragrafo. Per ogni reale
Per.r 1 si hanno anche le seguenti disuguag ianze
x, si ha la disuguaglianza
X
e I x,
p 1n 1 x x, 2.10
lx
e- 1 x 8x .
1g n , 1g n
In equazione, lanotazione asintotica usata il comportamento al limite lim lim 0.
questa perdescrivere
n oc pa E n co 1
0 piuttosto che m . Si h che ogni x
per.r per per
Da limite si pu concludere che
questo
e
m .
Ig n on
Un limite superiore debole per la funzione fattoriale n n, dato che ciascuno degli n
di Fibonacci sono definiti dalla seguente ricorrenza
termini del prodotto fattoriale al pi n. L approssima ione di Stirlisrg I numeri
F, O,
. Pz zru
- e - ,. F, 1,
i 2. 2.13
dove e la base.dei logaritmi naturali, fornisce sia un limite superiore che un limite inferiore F FF per
dei due e vale la sequenza
pi strego. Usando l approssimazione di Stirling si puo dimostrare che Percio, ogni numero di Fibonacci la somma precedenti
.
2
V2nn n 42 n e .1 -
- 1.61803...,
2.14
t Ks
La funzione logaritmica iterata 2
0.61803....
log
Si usa la notazione 1g n si legge stella di n denotare l iterazione logaritmica che si ha
per Pi precisamente,
definita come segue
pi S
sia la funzione Ig n definita ricorsivamente interi non negativi i come F,
per
erat1 le. le l It o l le It .
22 6 i lu tul li nc aiittl ticitmi..ni piit
Quei.ll
delle 35
Ordine di grande-a funzioni
. -
2.2-7 Dimostrare e gn sono nella stessa classe se
che l i-esimo numero di Fibonacci sddisfa l elenco in classi di equivalenza tali che f n
l uguaglianza Partizionare
F, dove e solo se f n 8gn .
p p I y5, p il rapporto aureo e/ il suo coniugato.
n gl gg
2
Ig lg n plg g lgn
2.2-8 Dimostrare che i 0. l i 2 -esimo
per numero di Fibonacci soddisfa F .
t p2 l/Ign
n 1g n 1g n
3 ll
n
1nn l
n g n n 2 lglg
1nln
Problemi
n
1 n
pTgn n 4lg n lg
ign
algol gn
2-1 n 2
Comportamento asintotico dei g g
p
polinomi
Sia funzione
funzione non negativa n tale che per ogni g,
b. Dare un esempio di una singola f
d Qg
della a, n non n Og n n n .
parte f
pn an,
g
i0
a. Ogn implica gn Of n .
f n
b. Se k d, allora Q r .
pn
b. gn 8 min f n , gn .
fn
e. Se l d, allora 8n .
pn
1g g n 0 e f t 1 pt o-
implica Ig f O lg g n , dove
c. f n gg , n
d. Se l d, allora on .
pn sufficientemente grande.
e. Se k d, allora co n . .
pn d. Ogn implica 2. 02
f n
e. fn O fn - .
2-2 Crescita asintotica relativa
Indicare Qf n .
per ogni coppia di espressioni A, B nella tabella sotto, se A O, o, Q. oppure f. f l Ogn implica g ir
8
di B. Si assuma che k l, c 0 e c 1 siano costanti. La risposta dovrebbe essere sotto forma
si no O f 12 .
di tabella con un o un in ogni casella.
g. fn
h. ofn Ofn .
fn
B O o Q m 8
a. Ig n n
2-5 Variazioui sri O e Q
c. y n n
che c, n 0 per un numero infinitamente grande
se esiste una costante positiva c tale f n
pn pn/2
di interi n.
m
lg lgn
C y ii ic e solo sc i Oqn .
definizione iltirn itiva. Si dice che f n f
3 Capuolo 2
grgine c i grandezza dellepnzioni 37
n se i 0,
p, Jf f
n se i 0.
f n min 0 dan c,
i
che non necessita di essere ben definita in tutti i casi. In altre parole, la quantit il
f n
numero di applicazioni ripetute della funzione f richieste per ridurre il suo valore fino a un
valore minore o uguale a c.
Per ognna delle seguenti funzioni e costanti
f n c, fornire un limite pi stretto possibile
P f,. .
e. n/2
e. n
f. n
g. n
h.
Note al capitolo
Knuth l 21 fa risalire l origine detla notazione O ud un testo ulb te ria dei numeri di P.
Bachmann del 1S9 . La notazione o fu introdotto da E. Landau nel 1909 nella sua tr.,ttazione
della distribuzione dei numeri primi. Le nutazioni Q e O furono w stenute da Knuth 124 pei
corre pere Ia pratica, ma tec nicamente
popolare impreci u, sii usare nelIu lettentura Ii
notazione O sia per limiti superiori che infi.riori. Mnlti continuano ad uv re l i notazione O
mentre la notazione 8 piii precisa li cnicament, Ulteriori discuiiioni iulla storia e lo
SO Rt0116
gi
J-
seguente modo
.
ga
kl
Yi iZLICll tC l11OCIO.
Capitolo 3 Sommarorie
Serie geometrica
ga .
k1
n X 1XX X
im 40
ga .
kl
una serie o esponenziale ed ha come valore
geometrica
Se il limite non esiste, la serie diverge altrimenti converge. I termini di una serie convergente n
non sempre l
possono essere sommati in ordine.
n
qualunque Si possono risistemare i 3.
per
termini di una serie ussolutamettte convergente, cio una serie ag,. per
pp, cui anche la serie k0
pp, az converge.
1, si ha la serie metrica decrescente infinita
Quando la sommatoria infinita e x geo
Linearit
bk 3.4
k0
Datounqualunquenurnerorealec
eduequalunquesequenzefinitea,,
a, ..., a e b,. b,...., b,
allora
Serie armonica
n n n
cgaq gbq .
g caq bq
Dato l intero n, l n-esimo numero annonieo
kl k ki positivo
g fk
e g/w . 1nn 01 .
In quest equazione, la notazione 8 sul lato sinistro applicata alla variabile k, mentre sul lato Integrali e derivate di serie
destro applicata ad n. Queste manipolazioni essere
possono applicate a serie convergenti
infinite.
.
Si i ossono
oss ottenere ulteriori risultati integrando e differenzi iandoleformuleappenaviste.Per
.serie rica i
intuita 3A e moltiplicando perx,
esempio,
esempi, derivando entrambi i lati della ggeometrica
Serie aritmetica
si ha
X
La sommatoria ex 3.6
l x-
n
12 n,
gk
Serie telescopiche
che viene fuori dall analisi dell insertion sort, una serie aritvretica ed ha come valore a, v le che
Data u sequenza ci , e ,,
qualunque
n
l
-n n n
1
3,l
i A i ao, .7
kl
-1
I
On .
ei..ltl..llllClltc UIID VOlta.
CI i Ci..l,i llllT . to CI1C,iotlt,lttO
l al,. al ...,
- , . . ,t 1 . A,
Alt I lil1CA
1 lll1CII C
C
. un. c innocchi ile C o lttegC tPICilllCCll14 .
Si l diceIC Ccle. l. lasomns
. i . rientra c ime
42 Capitolo 3 Sommaro rie 43
n I che
3.I-5 Usare la propriet di linearit delle serie per provare
ai ao a.
g
O fq n Og i fa n .
J 0 ,
Come esempio di serie telescopica, si consideri 3.I-6 Provare che Qfk Q pp, fk .
la sommatoria g,
n- i
l. il valore del 2 4.
3.I-7 Calcolare prodotto fJ ,
kk I
de1 l/k .
3.1-8 Calcolare il valore prodotto Jg 1
Poich ogni termine essere riscritto come
pu
armonica essere migliorato a
3.i-9 Si dimostri che il limite della serie pu
l I I
kk I k E
k l
Hn I
2n
si ha
la costante di Eulero-Mascheroni ed
dove 0.5772156649... conosciuta come
y
E Ic k
l
1
.. c soddisfa 0 e l. Si veda Knuth 121 .
Induzione matematica
Il prodono finito a,, a, a essere scritto come
pu
n
di usare l induziane matematica. Per
Il metodo base calcolare il valore di una serie
per
Il k ha come valore I. Si pu
esempio, si dimostrer che la serie aritmetica g, nn
kl
induttiva che esso valga per
verificare che vero n 1. quindi si fa l ipotesi
facilmente per
Se n 0, il valore del 1 per definizione.
prodotto Si pu convertire una formula contenente n e si dimostra che vale per n I. Si ha
un prodotto in una formula contenente una sommatoria usando la seguente identit
nI n
n n
s a ga n i
ga glsaa .
kl kl
I I kl
l
-n n 1 1
n
1
-n 1 n 2 .
Esercizi 2
I
3.1-4 Calcolare il valore della erie
/ 1 .- . g
gi
E 3k 3II
c . o a n
I
3ll y 3tlt
.
l t I
C ,3
Si pu applicare metodo per dare un limite alla sommatoria pp, k/3 . Il primo
questo
se 1/3 l/c I o, equivalentemente, c 312. Di qui 03 .
q3 come si voleva termine 1/3 mentre il rapporto tra due termini consecutivi
dimostrare.
On
On 1
n
.
1 enato
g- g- -
I 1
L errore nel procedimento che la costante nascosta dalla O cresce 3 1 2/3
con n e quindi non una
costante. Non stato mostrato che la stessa costante vale per 1.
ogni n.
un errore comune, nell applicazione di questo metodo, mostrare che il rapporto di due
Limitazione dei termini termini consecutivi minore di l e quindi assumere che la sommatoria sia limitata da una serie
Per esempio, si potrebbe fare questo errore per la serie armonica infinita che
geometrica.
Talvolta, un buon limite superiore su una serie invece diverge
puo essere ottenuto maggiorando ogni termine
della serie, e spesso sufficiente usare il termine pi grande per limitare gli altri. Per esempio.
un limite superiore immediato sulla serie aritmetica 3.1
n n
gk gn
lim 8 lgn
Il OO
kt kl
OO .
2
n-
Il rapporto tra il k 1 - esimo e il k-esimo termine di questa serie k/ k 1 1, ma la serie
In generale per una serie az, se si pone a, max fggg
g, ag-, allora vale decrescente. Infatti, per limitare una serie con una serie
non limitata da una serie geometrica
si deve mostrare che il rapporto limitato da un valore strettamente inferiore a
n geometrica,
1 cio deve esistere una costante r 1, tale che il rapporto fra due termini consecutivi non
E aA t1amax
a,r risultanti. Per esempjo, si supponga di cercare un limite inferiore per la serie aritmetica
ga
k0 O k, che come si i visto limitata superiormente da n-. Si potrebbe limitare ogni
Zl I
1
ap
1 r
Sommatone 49
Capitolo 3
l
f x lnn I . 3.12
kl
Esercizi
f g
X AO
m-1 m m1 m2 n2 n-1 n n1
f -i su
con l integrale 3.10 direttamente
3.2-5 Perch non si usa l approssimazione
Problemi
I I costanti.
O
n
a.
X g
m 1 m m I m2 n-2 n-1 n n I l
b
1g I.
b g
l I
n
Fieura 3.1 A pp rossima-ion
. a ione d i con
fk integrali. I ialore dell area di ogni rettmrgolo k 1g k.
ntostrato al quo interno, e il valore rr ra1e g
dell area dei rettangoli rappresenta il valore della
sommatoria. L integ raie rappresentato dal1 area
grigia sotto la curva.
Cvnfroirrando le aree in si attiene nnitic
a, f .x d.x fk e quindi traslando di urr i
j, g
revangoli verso destra si ottiene
g , fl f fx dx i b. Note al capitolo
in cnpito ln. Le
un riferimento eccellete il m. teri le presentato questo
Knuth l2l per
buon te. to di analisi
delle serie eiicre trov itc in qualunque
di hase possom
prnpriet
come Apostol o Thoin ii e Finncy l92J.
matematica 12j
Ricorrenze
ricorsivauna a se stesso,
chiamata come gi notato nel
Quando un algoritmo contiene
spesso essere descritto da una ricorrenza. Una
Capitolo l, il suo tempo di esecuzione
pu
ricorrenza un equazione o una disuguaglianza che descrive una funzione in termini del suo
valore su input sempre Per esempio, nel Capitolo 1 si mostrato come il tempo
pi piccoli.
di esecuzione T n della procedura MERGE-SORT, neI caso peggiore, possa essere descritto
dalla ricorrenza
81 se n l,
f 4.1
8n se n 1,
$2T n/2
la cui soluzione Ti On 1p .
le ricorrenze cio, per ottenere i limiti
Questo capitolo offre tre metodi per risolvere
8 O di sostituziorre si tenta un limite e quindi
asintotici o deIla soluzione. Nel metodo
che il tentativo corretto. Il metodo iterativo
si usa l induzione matematica
per provare
e risolvere la ricorrenza si applicano le
converte le ricorrenze in sommatorie quindi per
Il metodo fornisce limiti sulle ricorrenze della
tecniche per limitare le sommatorie. priircipale
forma
Tn aT n/b fn,
Aspetti tecnici
n l,
J8 1
T n/2J 8 n n I .
T n/2
riferimento ad alcuni di questi dettagli per mostrare le sottigliezze dei metodi per risolvere
la soluzione corretta per ogni
le ricorrenze. esiste una regola per azzeccare
Sfortunatamente, non generale
che aiutare il lettore a
vi sono alcune euristiche possona
ricorrenza. Fortunatamente, per,
Tn 2c Ig n/2J n
fn/2J