Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Cormen Leiserson Rivest Stein - Introduzione Agli Algoritmi E Strutture Dati-2Nd Ed
Cormen Leiserson Rivest Stein - Introduzione Agli Algoritmi E Strutture Dati-2Nd Ed
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
Sottigliezze
cn Ig n/2 n
54 Capirolo 4
T2 la nuova ricorrenza
Si ridenominare 5m per produrre
pu
Tn c
n/2j c n/2 l
S sn 2S m/2 m,
soluzione S tn Om 1gm .
cn l, ricorrenza 4.4 ed ha la stessa
che molto simile alla
Sm Om 1gm O lgn Iglgn .
ridenominate, si ha T n T2
che non implica Tn cn per nessuna scelta di c. Sarebbe interessante cercare una soluzione Risostituendo le variabili
la soluzione di T ii Tl 12 I l O lgn .
Intuitivamente l ipotesi esatta essa non torna solo per la costante 1, un termine di ordine 4.1-1 Mostrare che
La chiave di comprensione di questo passaggio sta nel ricordare che si usa l induzione si pu
1 facendo una sostituzione di variabili.
dimostrare di pi forte un valore dato assumendo qualcosa di pi forte per valori la ricorrenza Tn 2T n
qualcosa per 4.1-6 Risolvere
che i valori siano interi.
pi piccoli. Non preoccupassi
Evitare le trappole
4.2 Il metodo iterativo
Tn n 3T n/4J
Sostituzione di variabili
n 3 n/4j 3T n/16J
variahile. Percnn modith. i traicurerh l arrotondamento n interi dei valori conte /n. Snstituen- fino a c
nell iterazione questo punto
i raggiunge lo Proicguendo
il
equivalentensenti, n.
ClO ll Igll OttlCllC
PT 2 -
T2 ,n . decreicentc
Ricoiienze
5 Capitolo 4
2
Tn n
Tn n 3n/4 61
9n/16 27r./64 3
n ai
g 4
8n
- - -* -*
4n on
/ / h
0n .
Il metodo iterativo di solito comporta l uso di molta algebra, e fare tutti i calcoli in modo
esatto puo essere complesso. Bisogna concentrarsi su due parametri il numero di volte che
2
la ricorrenza deve essere iterata raggiungere le condizioni
per al contorno, e la somma dei n
n
di algebra.
per scegtiere il metodo di sostituzione,
-* -* n
Quando
particolarmente
una ricorrenza
complicato.
contiene
Spesso,
funzioni base
aiutare
e tetto,
assumere
il calcolo
che
matematico
la ricorrenza sia
pu
definita
diventare
solo
Ign
l
pu
sulla
intero
potenza
k, la funzione
esatta di un
base
numero.
avrebbe
Nell esempio,
potuto essere
se si fosse
comodamente
assunto
omessa.
che n 4 per
Sfortunatamente,
qualche
- - /
- X /
-
/ S /
L
mostrare il limite Tn On esclusivamente esatte di 4 tecnicamente un uo / X /
I
/ /
per potenze
improprio della notazione O. La definizione di notazione asintotjca richiede che i limiti siano
provati per qualunque intero sufficientemente non solo le potenze di 4. Si vedr
grande, per
nel Paragnfo 4.3 che per una ampia classe di ricorrenze, aspetti tecnici essere
oi.i. o .
questi possono
superati. analisi d
Il Problema 4-5 illustra a cune condizioni valendo le quali l sulle -.
potenze Tn p arte a
di ricorsione la ricorren.a
esatte di un intero essere estesa a tutti interi. F 4.1 C stru.io,re di un albero per
pu gli
Alberi di rirorsione
n
Il teorema principale
42-5 UsareunalberodiricorsioneperrisolverelaricorrenzaT n T nn T 1 n n.
dove n una costante nell intervallo 0 a l. logaritmico. e la
si cnoltiplica un fattore
hanno 1a stessa per
2, le due funzioni grandezza,
8n . i, lp, 8f n Ign .
soluzione Tn
tecnici. Nel caso,
comprendere al cuni aspetti primo
4.3 II metodo intuitivo, bisogna
principale l Oltre questo
concetto
costante c 0.
di n - i un fattore di n per qualche
ricettario deve essere asintoticamente pib piccola per
Questo metodo fornisce un a pprocci o tipo - ,, ma deve esserlo in modo
per risolvere le ricorrenze della forma essere di ,
terzo caso, non solo f o deve pi grande
Nel
Tn aT n/b fn, 4.5 limitate
nmggior delle funzioni polinomialmente
condizione soddisfatta dalla parte
dove n l e b I sono co tanti e f ir una funzione Questa
asintoticamente Il metodo
positiva.
richiede di ricordare a memoria che si incontreranno.
t r e casi,. , th la soluzione di ntolte ricorrenze essere
. sere tra i casi
pu i tutte le possibilit per fn
che i tre casi non cnmprendonn
determinata molto facilmente, spesso senza carta e penna. importante sottolineare
l, . ,,
11 l1 Il . Per esempio Ia ricorren-
za originata -,
dalla procedura McRc z-Sn -r h a, 2,1 efin u nu.
f i Usn del metodn principale
Nel rispetto della correttezza tecnicu. la ricorrenza h
in effetti n n b d f
ve n del
n1b caso se
potrebbe non essere un intero. Tuttuv , la iostituzione di si determina semplicemente quale
ognuno cteali a tertnini Per usare il metodo principale.
T I L J T, n/lr , riip it .
n i1 ini1uiice sul cuniportamcntn asintotico dcll,t ii q plic i c ii scrive
teureina principale
ricorrenza. Sarh mostrato nel rossimn p ,r,grafo. In condizioni normali i como,l ,. consideri
Come esempio si
dunque. omettere le funzioni - - prim i
baie e tetLO
o qu indo
eo si
... .serivoi n ricorrenze --
divide-et-il11p -
p l I
pie
di questa forma. 9T n/3 n .
Tn
Ricorrenze
dE
a. Tn 4T n/2 n.
analizza la ricorrenza 45.5
del teorema principale
b. Tn
La prima parte della dimostrazione principale
4T n/2 n .
Tn aT n/b fn,
Tn 4T n/2 n.
1, dove b non deve necessariamente essere
sotto che n sia una potenza
l ipotesi esatta di f
riduce il problema di risolvere la
un intero. L analisi si articola in tre lemnai il primo
4.3-2 Il te mpo di esecuzione di un algoritmo A descritto dalla ricorrenza che contiene una sommatoria
al problema di valutare un espressione
Tn 7 T n/2 n -. ricorrenza principale
il terzo lemma mette insieme i primi
il secondo determina i limiti su questa son matoria
Un,altro algoritmo A ha un tempo di esecuzione di T n nel caso in cui n sia una potenza
aT n/4 n- Qual il una versione del teorema principale
due per dimostrate
pi grande valore intero di a tale che A sia asintoticamente
pi veloce di A esatta di b.
42-3 Usare il mea odo principale per mostrare che la soluzione della ricorrenza
Tn T e/2 8- 1 della ricerca binaria si veda l Esercizio 1.3-5 T n O lg n .
Letttma 4.2
log n-I
Tn 8n a f n/b .
g 4.6
j0
Tn f n aT n/b
r I I I l I I I I
fn a f n/b a- f n/b-
I I n
y loS n f $loS n- y loEo p
Y 01 81 01 01 01 OI 01 01 81 01 81 0 1 .... Il,. O II
Poich a- n- , usando la condizione al contorno T1 81, l ultimo termine del
nlben albero
ag n-i Figura 4.3 L di ricorsio ie la ricorren a Tn aT nlb f n. L a-ario
ge erato per
coi rpleto con n e alte a log i. Il casro di ogni lii elio n ostraro sulla destra, e la sonimn
a foglie
f n/b
dei costi clara nell equa ione 4.6 ,
pQ
da cui deriva
In un algoritmo divide-et-impera, somma rappresenta il costo della suddivisione del
questa
dog n- i in sottoproblemi e della loro ricombinazione. Il costo di tutte le foglie, che il costo
prnblema
di tutti n - i, sottoproblemi di dimensione l, 8u i,
p p p f /7/g , gli .
g
j0
In termini di albero di ricorsione, i tre casi del teorema principale comspondono ai casi in
che completa la dimostrazione. cui il costo totale dell albero 1 dominato dal costo delle foglie, 2 parimenti distribuito
L albero di ricorsione La sommatoria nell equazione 4.6 descrive il costo dei passi di divisione e ricombi nazione
della sommatoria.
Prima di proseguire, cercheremo di giustificare intuitivamente la dimostrazione precedente
usando un albero di ricorsione. La Fig.4.3 nsostra l albero corrispondente all iterazione della
ricorrenza nel Lemma 42. La radice dell albero ha costo fn, ed ha a tigli. ognuno con costo
Lemma 4.3
f n/b . Conviene ad a come ad un numero intero, specialmente quando si utilizza
pensare
l albero di ricorsione, anche se da un punto di vieta matematico ci non richiesto . Ognuno Siano a l e b I due costanti e f una funzione non negativa definita su esatte
ir potenze
di questi fioli ha a sua volta a figli con costo f ir/Ir , quindi ci sono a- nodi a distanza 2 dalla di 1. Una fuhzione g n . definita su esatte di b nel mo seguente.
potino
radice.1n generale. vi sono a nodi a distanza j della radice. ed ognuno ha costo f tlb . Il costu
di ogni foglia T1 81. e o ni toglia distante log n dalla radice, ii/I 1. lOg II I
poich
Nell albero vi sono a i i fo lie. s f n/b 4.7
g
g0
Si ottenere l equazione 4.6 sommando i costi di o ni livello dell slbero, CAI1V.
pu
tot l e di i Casere limitata asintoticamente esatte di b cnnii.- serque.
mostrlto tle111 tlglltQ. tl CostO Jet Ilc Cli itltertli del 1i veli 1 j i af Ir/h . C Cfuillcti ll pUil per pnie vre
log n- l
a f n/b .
j0
Rico nenze 5
gn O a, c l e per ogni n b, si
g esatte di b. Sotto l ipotesi che af n/b cf n per qualche costante
4.
ha a f n/b cf n.
Esplicitiamo la sommatoria interna alla notazione O portando fuori una serie ma
un fattore, semplificando Sostituendo nell equazione 4.7 e semplificando si ottiene geometrica,
e calcolando la serie geometrica crescente ottenuta decrescenti
diversamente dalIa serie del caso 1, questa ha termini
-, IOgp
d t
s,
log n-
g,
I
f ,l
j0
logn n- I iole n- l
log a-e
c fn
jG
. log,, a-e
- fn g
c
n
log a-e - j0
fn
Poich ofn ,
b ed e sono costanti, l ultima espressione si riduce a On
r i On .
Sostituendo questa espressione alla sommatoria nell equazione 4.8 si ottiene
c una costante. Di qui si puo concludere che g n 8f n per potenze esatte di b.
poich
gn On dimostrazione del caso 3 completa la dimostrazione del lemma.
Questa
e il caso 1 dimostrato.
Possiamo ora dimostrare una versione del teorema principale p er il caso in cui n una
Sotto l ipotesi che f r, 8n 4 -,,
per il caso 2, si ottiene che f n/b O n/b . potenza esatta di b,
Sostituendo nell equazione 4.7 si ha
Lemmu 4.4
fin 8 a, su potenze
Siano a l e h I due costanti e f n una funzione non negativa definita
g 4.9
,g
esatte di b e si definisca Tn su potenze esatte di b con la ricorrenza
S limita la sonunatoria dentro il 8 come nel caso 1. ma questa vofta non si ottiene una serie
anzi si scopre
feti n l,
geometrica, che ogni termine della sornmatoria lo stesso b,
fn n
aT n/b
dog n-I
log n- I
dove i un intero positivo. Allora Tn puci essere limitato asintoticamente per potenze
E , z es atte di b cnme segue.
j0
Q
jg gIOgp
On , cnstante e 0, nllnra Tn
log e-I I. Se fn per qualche
u
p 6 l
Se 8n , aIIora Tn 6n 1gn .
Jn
g0
Dimostrazione. Useremo i limiti stabiliti dal lemma 4.3 per valutare la sommatoria 4.6 del
lemma 4.2. Per il caso il numero di iterazioni nil talech
l a sia
1, si ha Il primo obiettivo di determinare
la disuguaglianza I x1 .x 1, si ottiene
Tn 8n 0n
,
8n
n n,
n
e per il caso 2 n, l,
n l
Q o ,
z n g n Ogb El ni a g n np
b 1,
8 n b Ign . n l l
b b b
Perilcaso3,lacondizioneaf nlb cf n implicachef n Q noti. vedal Esercizio
Si
4.4-3 . Di conseguenza
f -
n,
n b
bi b 1
Per completare la dimostrazione del teorema
principale, si deve estendere l analisi alla
situazione in cui nella ricorrenza n b bl f 1 01.
principale sono usati base e tetto, in modo che la ricorrenza e quindi, quando i Llog,n J, si ottiene
sia definita su tutti interi e non solo
gli su potenze esatte di b. Un limite inferiore
per ottenendo
Si pu ora iterare la ricorrenza 4.10 ,
Tn aT fn/b
fn 4.10
e un limite superiore Tn f nq aT n
per
a fn a T nq
f nq
Tn aT n/bJ
fn 4.11
a fn a- f n,
f np
si ottengono in modo semplice infatti, Tn
per ottenere il risultato desiderato, si pu usare il limite a f n jog n-
a
jiog nj
n,
Si ora valutare la sommatoria
pu
f /b1,
i
Ifn/bll 1, tog n -
f 4.l4
tfr /b1/b1zb1, sn g
i-o
u n i
n se i 0, sesiriei
eriliaso iihaf n
n i/b sc i 0 . 4.l2 llorollprovidelcaso2dellemma t .I11111il . an
ill bI
lKl O l l ,
cchef ne O ll i ll Il 2 J
Ricorrenze 59
Tn 7T n/3 n.
osservi che j Llog nJ implica b ln 1. Il limite Ono, implica
fn che esiste una
costante e 0 tale che n sufficientemente vale e. 7T n/2 n -.
per grande, Tn
Tn 2T n/4 n.
f.
lOQQ
g
c . 1 n.
fn g Tn Tn
bi b 1
. - h. Tn T n l.
determinare
.. Un
i intero
array Al
mancante
.. n
in
contiene
tempo
tutti
On
gli
usando
interi da
uv
0 a n tranne
array ausiliario
uno.
8 0.
Sarebbe
n per
facile
registrare quali
a. Tn 2T n/2 n .
a. Tn 3T n/-l n Ig 11.
b. Tn T 9n/10 n.
b. 7 t 37 5 n/ .
n/3
c. Tn 16T n/4 n .
70 Capitolo 4
Ricorren e 7I
c. Tn 2T n/2 n/1gn.
d. Tn Tn I I/r .
i Ks -0.61803....
2
e. Tn Tn 1 Ig n.
c. Mostrare che
f Tn /n T n n.
i i i
Pz $ p z
4-5 Estensione dalle g
potenze di un intero a tutti i reali
,o
Spesso si riesce a limitare una ricorrenza Tn esatte di una costante intera b.
per potenze vicino.
d Dimostrare che F, i 0, arrotondato all intero pi Suggerimento
Questo fornisce condizioni sufficienti estendere il limite a tutti i reali n 0. qV/d5 per
problema per
a. Siano T ii e hn due funzioni monotone crescenti, e si supponga che Tn hn quando
n una lentamente
potenza esatta di una costante b 1. Si supponga inoltre che hn sia
e. Dimostrare che F, p per i 0.
crescente nel senso che hn O h n/b . Provare che Tn Ohn .
Questo problema considera alcune propriet dei numeri di Fibonacci, che sono definiti dalla
ricorrenza 2.13 . Si user la tecnica delle funzioni risolvere la ricorrenza di
generatrici per
Fibonacci. La funzione generatrice o serie di potenze F definita come
fonnaEi Il chi A dice Il chi B dice Conclusioni
a. Mostrare che Fz z Fz z F .
B guasto A guasto almeno uno guasto
b. Mostrare che
z non inconfutabiln1enw,
- 1
a. Mostrare che se pi di n/2 chip sono guasti. il professore pu
una strategia basata su questo tipo
determinare sono i funzionanti usando qualunque
Z
quali
cospirare imbrogliare il
di controllo a coppie. Assumere che i chip guasti possano per
l pz 1 p
, . professore.
- b. Considerare
di n/2 siano
il problema
fut zionanti.
di trovare
Mostrare
un singolo
cheLnl2J
chip
controlli
funzionante
a coppie
trai
sono
chip, assumendo
sufficienti a ridurre
che
pi
il probli.ma ad uno di dimensione pressoch dimezzata.
dove
e
Note al capitolo
generatrici. Il lavoro di Purdom e Brown 164 contiene una discussione estesa sulla
risoIuzione delle ricorrenze.
capitolo una
sono stati introdotti elementi di analisi. Questo presenta
Nei capitoli precedenti
elementari di insiemi, relazioni, funzioni,
delle definizioni, notazioni e proprieth
panoramica
materiale limitarsi a sfogliare il capitolo.
ed alberi. Il lettore gi preparato su questo pu
grafi
5.1 Insiemi
frequentemente
I. CIA 0.
Insiemi e a ni 75
Cdpil gap j
Dati due insiemi A e B si oss ono definire nuovi insiemi anche applicando I e seguenti
operazioni su insiemi
Q QQ QC
L intersezione degli insiemi A e B l insieme
A n 8 .r x e A e x e B .
unione
Lu degli insiemi A e 8 l insieme
A- Br C A-8 u A-C
AuB A 8nC
x .rc Aoxc 8.
insieme A,
La d ff eren la legge di DeMorgan 5.2 .Ciascan
a tra due insiemi A e B l insieme Figura 5.1 Un diagramma di Venn che illustra prima
A v B v C A u B u C.
s ps,
S,gS
Distributivit. esattamente in un
di S se ciascun elemento di S appare
ln altre S forma una partizione
parole
A n B u C A n 8 ,u A n C , S c S.
Au BnC AuB n Avg. dell insieme
5. l degli elementi di un insieme chiamato cardinalit o dimensione
Il numero
se i loro elementi possono essere
Assorbimento da insiemi hanno la stessa cardinalit
e denotato AS . Due
vuoto 0. Se la
la cardinalit dell insieme 8
A nA u B A, messi in corrispondenza biunivoca.
si dice altrimenti si dice
un numero naturale, allora l insieme finito,
A u cardinalith di un insieme
A n 8 A. con l insieme
essere messo in corrispondenza biunivoca
infu itn. Un insieme infinito che puo
Leggi di DeMorgan si dice non stainerabile. Per
si dice inferito rumerabile, altrimenti
N dei numeri naturali,
A n C l insieme R dei reali non numerabile.
B A B u A C, Z degli interi numenbile, mentre
esempio. l in ieme
A B u C A B n A C. uniti, vale l identith
Per ogni coppia A e B di insiemi
i un insieme A come 1 U A ero-ni . n eA c U,.iihannc lese uenti ill iei chi 1111QLO
r-insieme un l-insieme
di n e1ementi chi amato talvolta
U1s insiell3e tinito
M lt0111Sieme k cleilldlltl i Chiamato k-sottoinsiente.
SlllgOIC EEO Ull di
vuoto e l iniiense S
iniicme l, inclusi l insiemc
di tutti i sottoin iemi di rn
L insieme
a di 5 ecempin. 2
da 2 ed chi nato f insieme poten per
iliiso. i denotato
un itliienle lillitO S ll,.l c,.lrJin..llitl
b L insienlc di
,8. c, . b. ,r. . potchla
Spesso si considerano strutture simili ad insiemi, nelle quali gli elementi sono ordinati
esempio, per 5.I- Mostrare che l insieme dei numeri dispari numerabile.
una coppia ordinata di due elementi a e b denotata con b e pu essere
a,
formalmente definita come l insieme a, b a, a, b la coppia ordinata a,
quindi b non
uguale alla coppia ordinata b, a. 5.1-5 Mosuare che, insieme S finito, 2 ha 2 clementi
per ogni l insieme potenza cio,
Il prodotto cartesiano di due insiemi A e B, denotato da Ax8, l insieme ci sono 2 sottoinsiemi distinti di S .
di tutte le coppie
ordinate tali che il primo elemento della coppia un elemento di A ed il secondo un elemento
di B formalmente
pi
5.1-6 Dare una definizione induttiva di n-upla, estendendo la definizione di coppia
A x B a, b a c A e b e 8.
ordinata fornita da11a teoria degli insiemi.
Peresempio, fa,b x a,b,c a,a , a,b , a,c , b,a , b,b , b,c .guandoAeBsono
insiemi finiti, la cardinalit deI loro prodotto cartesiano
gxa g - a 5.2 Relazioni
5.4
Il prodotto cartesiano di n insiemi A,, A ..., A l insieme di n-uple
A,xA,x ... xA Una rela--ione birraria R su due insiemi A e B un sottoinsieme del prodotto cartesiano A x B.
a,,a ,a a,.c A., i 1,2, ..., n,
la cui Se a, b e R, talvolta sar scritto a R b. Quando si dice che R una relazione binaria su A,
cardinalit
minore
si intende che R un sottoinsieme di A x A. Per esempio, la relazione di sui numeri
A, x A x ... x A,
jA, jA, .. fA
naturalil insieme a, b a, be N e a b. Unarelazionen-ariasugliinsiemiA,.A ..., A,
se tutti gli insiemi sono finiti. Si pu denotare il prodotto cartesiano ripetuto un sottoinsieme di A, X A X ... X A,
n volte di un
singolo insieme A con l insieme
Una relazione binaria R c A x A riflessiva se
A AxAx...xA,
la cui cardinalit a Ra
AA jAf se A finito. Una n-upla pu essere anche vista come una
sequenza finita di lunghezza n non lo
si veda il Paragrafo 5.3 . tutti a e A. Per esempio e sono relazioni riflessive su N, mentre
per gli
. La relazione R siininetrica se
Esercizi
a R b implica b R a
A A
A A Una relazione che sia riflessive, simmetrica e transitiva una relazione di equivalenza. Per
A A
A
ga Ch Q .5,7,...
iA,uA u...va i
gEIg
Un teorema base delle elevasi di equivalenza il seguente.
A,f A, . a
BIBLIOTECA
- A, aiA, ...
A, AA
g
CENTRALE f J per tutte le coppie a
Teorema 5.f Unn rela ione di eqscivatei coincide con rna purti ioide
P
J, aA na, ... per tutte le triple
insieme A
fA,nA,n...nA, . li
-I equivalenza su A in cui le classi di equivalenza sora insiemi della partizione.
Insiemi e a ni 79
di f. Talvolta si scrive A m 8 e. se a. b e f. si
8 chiamato il codosninio f
a R b e b Ra implicano a f e l insieme
b.
scrive b dato che b univocantente determinato con la scelta di a.
f a
Per esempio, la relazione sui numeri naturali elemento di A nessun
antisimmetrica in a b e b un elemento di 8 add ogni
quanto i n ui i,
Intuitivamente, la funzione f assegna
.
implicano che a b. Una relazione che sia riflessiva, sntisimmetrica elemento di 8 pu essere
e transitiva un ordisca- elemento di A assegnato a due distinti elementi di 8. ma lo stesso
mento parziale e l insieme su cui l ordinamento parziale definito si dice insieme assegnato a due distinti elementi di A. Per esempio la relazione binaria
parzialmeitte
ordinato. Per esempio, la relazione discendente di un ordinamento sull insieme di
parziale
tutte le persone se si considerano individui anche b . a c N e b a mod 2
gli come discendenti di se stessi . f a.
In un insieme A parzialmente ordinato, massinso ogni numero naturale a ch esattamente un solo
pu non esistere un singolo elemento,r . f f N m 0, l . dato che per
tale che y R x per tutti 1 0 ecc.
gli y c A ci saranno, invece, diversi elementi massimali.v tali che valore b in 0, l tale che b a mod 2. Per questo esempio 0 f 0, f 1. f -
per
nessun elemento y e A sf avr x R . Per esempio, in un insieme di scatole di dii ersa V iceversa, la relazione binaria
grandezza
ci potrebbero essere diverse scatole massimali che non entrano in nessun altra scatola e tuttavia
none una singola scatola massima a, b a c N e a b pari
in cui qualsiasi altrascatolapotrentrare. g
f A b e 8 . b f a per qualche a c A .
l inversa di una relazione binaria. in modo tale
5.3 3 Dare una definizione naturale per
Il rango di f l immagine del suo dominio, cio f A. Per esempio, il rango della funzione
in realt una funzione biunivoca, allora la sua inversa
che. se una relazione
f W N definita da f n 2n f N m m 2n n c N .
per qualche
relazionale coincida con l inversa funzionale.
Una funzione surgettiva se il suo rango coincide con il suo codominio. Per esempio, la
funzione f n Lnl2J una funzione surgettiva da N a N, dato che ogni elemento di N ap-
come valore di f per argomento. 5.3-4 Dare una funzione biunivoca da Z a Z x Z.
pare qualche Viceversa, la funzione f n 2n non una
funzione surgettiva da N a N, dato che nessun argomento di f pu 3 come suo va-
produrre
lore. La funzione fn 2n , tuttavia, una funzione surgettiva dai numeri naturali ai numeri
pari. Una funzione surgettiva f A m B talvolta descritta come Wa comspondenza di A 5.4 Grafi
su B. Quando si dice che f su insieme, allora si intende che
qualche f k surgettiva.
Una funzione A m B iniettiva se ad argomenti orientati e non orientati. Il lettore trover che certe
f distinti di f corrispondono valori Questo presenta due tipi di grafi
paragrafo
iversi. cio, se a a implica cf a . Per da date in questo anche se.
fa esempio, la funzione fn 2n una definizioni in letteratura differiscono quelle paragrafo,
presenti
sono minime. Il paragrafo 23.1 mostra come i gr
per la maggior parte, queste differenze
b c
b
a
messi in corrisponden -a con
isolaro. c ll sottografo del della a, indono dall insieme di vertici l. 2, 3, 6. isomorfi. l ienici del grafo in alto so to
grafo parte Figun 5.3 Una coppia di grafi
a
,. w x 5 f . b 1 due gr
basso da u 2 f 3 f 4 f y
i,,errici del grafo in f 1 f
4 mentre il grafo in basso non lo fra.
in alto ha un verrice di grado
non sono isoinog7, dato cle il grafo
se ii w v e u,
sion
i c
orientata
E. Cio la versione non nrientata contiene gli archi di G con
non
le
n r
Ungrafo nononentatoeeotutesso .. seogni
i copppp/ l d i ver t -ivi co 11egatQcollutlcalllmino. w, , u iono lo stesso arco in un grafo
frecce riimosse e senza cappi. Poich
Lecomponehticonnessediunerafosoisolech . d 1 lo contiene una sola volta, an he se
d i vertici sotto la relazione non orientata di un rato orientato
raggiuneibile orienuto. la versione
G V. E
da . Il rof g .,2 entrambi irchi w. i e v. v. In un grafo orientato
il grafn orientato contiene gli
si ldi ente ada nella s ii ionc nun orientata
vertice w qualunque verliCe che
un viciiro di un
- u e i
orientato connesso se Ila es. tt tinente un 1 componente connciia, ..-,, cio ..se orni
ogni ve
verticeite di i si ia, v s Eoppurc , t C E. In un grato nonorientat .
di G. Cioi i i unvicino
raggiunpbi1e da ogni altro vertice.
soisu vicini se sono dipinti.
e a ni 85
Insiemi
Alcuni tipi di grafi hnno dei nomi specifici. Un grafo completo un grafo non orientat
in cui ogni coppia di vertici adiacente. Un grafo bipartito un grafo non orientato G V, E
in cui V pu essere partizionato in due insiemi V,, V, ta1i che u, v c E impl ica che o u e
V ,e i e V,oppureue V,eva V,. Ciotuttigli archivannoda V, a V o viceversa. Ungrafo
aciclico e non orientato una foresta e un rafo connesso acicIico e non orientato un 1be
directed
i ero si veda il paragrafo 5.5 . Spesso si usano le prime lettere del nome inglese
c
acyclic indicare un aciclico orientato. b
graph dag per grafo
Vi sono due varianti e nmt perci n
dei pafi che si possono incontrare occasionalmente. Un muMgrafo Un che conriene in ciclo
Un albero libero. b Una foresta. c grafo
Figura 5.4 a
come un grafo non orientato, ma pu avere sia archi multipli tra i vertici che cappi. Un ipergrafo
an atbero n una foresta.
come un grafo non orientato, ma ogni iperarco, piuttosto che connettere due vertici, connette
un sottoinsieme arbitrario di vertici. Molti algoritmi per grafi ordinari orientati e non orientati
dei vertici del grafo bipartito
possono essere adattati per essere eseguiti su queste strutture simili ai grafi. Si supponga che uno degli insiemi
Suggerimento agli
e l altro insieme di vertici corrisponda
corrisponda ai vertici dell ipergrafo
Esercizi iperarchi.
5.4-2 Dimostrare che in un grafo non orientato. la lunghezza di un ciclo deve essere
almeno 3. 5.5.1 Alberi liberi
orientato, connesso e
5.4, un non
albero libero, come definito nel paragrafo grafo
5.4-3 are che se pn rafo orientato o non orientato contiene un canarino tra due Un albero.
libero , si dice che un un
l aggettivo quando grafo
vertici aciclico. Spesso si omette
u e v, allora contiene un cammino semplice tra u e v. Mostrare che se un grafo si dice che una
ma essere sconnesso, allora
un non orientato aciclico. puo
orientato contiene un ciclo, allora contiene un ciclo semplice. Quando grafo La figura 5A
alberi operano anche sulle foreste.
Molti algoritmi che operano sugli
foresta. nella figura 5A c
5A mostra una fc restn. Il grafo
mostra un albero libero e la figura b
a
5.4-4 Mostrare che qualunque grafo non orientato connesso G V, E soddisfa contiene un ciclo.
non n un albero n una foresta perch
imi ivi-,. raccoglie molte importanti propriet
che riguardano gli alberi.
Il seguente teorema
raggiungibile
5.4-5 V erificare che in un grafo non orientato la relazinne da una
degli alberi liberi
Teorema 5.2 Propriet
relazione di equivalenza sui vertici del delle tre propriet di una
grafo. Quale affermazioni sono equivalenti.
non orientato. Le seguenti
relazione raggiungibile Sia G V, E un grato
di equivalenza vale in generale per la relazione da sui
verticf di un grafo orientato. I. Q un lbero libero.
4. connesso e l.
G E V
C I CI .
Insiemi e a ni
8 Capitolo 5
0
profondith
P
profondit 1
altezza 4 8 2 profondit 2
P
profondith 3
Figura 5.5 Un della dimostra.-ione
passo del Teorema 5.2 se G un albero libero.
1 allora 2
4
profondit
b
a
dal venice,v e riconvergono nel
poi vertice . Il cammino concatenato con nel
p,- il cammino p 4. L albero diseg raw
considerato Un albero radicato di aire- a
nel verso opposto, un ciclo da cui deriva Fi uro 5.6 Alberi radicati ed ordinari. a
forma la cohtraddi--ione.
3 4 P
Per iptesi, il G connesso
g
grafo e, per l Esercizio 5.4-4, h h
. Si prover vertici si distingue dagli altri. Il vertice
che E I per induzione. Un un albero libero in cui uno dei
V grafo connesso con n 1 oidi Un albero radicato
2 vertici ha n a un vertice di un alberi
l archi. Si supponga che G abbia n 3 vertici dell zlbero. Spesso si fa riferimento
e che tutti i grafi che soddisfano diverso chiamato la radice
la 3 con meno di n vertici mostra un albero radicato su un insieme
soddisfino anche La figura 5.6 a
jE V 1. Rimuovendo un arco arbitrario da radicato come a un chiodo- del l albero.
si separa il grafo in I 2 componenti connesse in realt k 2. Ogni componente soddisfa di 12 nodi con radice 7.
, ,. fanatiche I I. Se/ 1 n.
al , E,, si pu continuare nelln
profondi 0
profondi th l
altezz 3
profondi 2
a Y profondi 3
b
Figura 5.7 Alberi binari. a Un albero binario disegnato Figura .8 Un albero binario completo di alte a 3 con ce 7nodi interni.
disegnato nel modo standard. f g
appena sotto al Ilfiglio sinistro
nodo,.alla sua di un nodo
sinislra. Il figlio destro
al nodo alla sua di un nodo
destra. disegnato appena
b Un albero binario sotto
7 5 mentre diverso da
il figlio quello ir a. In i1figlio
destro assente. a, sinistro del irodo
In b, ilpglio
5. Come alberi
sinistro del nodo 7 assente ,
ordinati,
alberi mesttre il figlio destro nella figura 5.7 a a causa della di un nodo. o.
no Tuttavia,
u a considerati come alberien
albero questi rappresentano
lo stesso
posizione
diversi. E albero, ma
c binario in come alberi binari
a rappresentato sono
ordi tato dai nodi attenti di
in cui ciascun u albero binario
nodo intento ha albero pieno m albero
grado 2. Le foglie de l sono disegnate ione in un albero binario puo essere rappresentata ai
con dei quadrati.
emostratonellafigura5.7 c . i e dis i i i n
Il numero o
di figli di un nodoxin con un nodo che non a ig i
un albero radicato qu
del cammino T chiamato il grado
dalla radice di x. La Junghezza e fg g eo dei
r ad un nodo x la q uadrati.
r L albero che si ottiene un a
di un profondit di x in T la profondit
qualsiasi nodo in T I altezza pi una fo lia o ha esattamente ue, non
di T. grande grado
in
Un albero ordinato ei fieli di un nodo mantiene or . o. oe.
un albero radicato in cui i figli di ciascun i
se un nodo ha k figli, nodo sono ordinati.
allora vi un Cio. s pos zhw ch e d.
distineue
n gli alberi binari da i or ina i p
primo figlio, un secondo que
I due alberi nella figlio, ..., ed un /-esimo
figura 5.6 sono figlio. g i b ri con di - g i perno do. Inunulheroposi -iona e, i g i i
diversi se sono considerati pi
lo stesso albero alberi ordinati, ma -
radicato. rappresentano di tinti. . L i-esimo figlio di un no o a g
.
h ,m albero
te k-ario,. un albero e in c
posiziona p
5.5.3 i figli con etichetta pi di / sono assenti. un a ero ina .pi
Alberi grande Quindi
binari e posizionali 7.
V 8 - o o o un -
unalberok-arioincuitutte
Gli alberi p i e fooogliehannolastessaprofondit
ie
binari sono descritti meglio in modo ricorsi etuttiinodiinternihannogrado
definita vo. Un albero binario d k. . Lafi
a ura5.8mostrauna
. ero in zQ
su un insieme finito T una struttura
di nodi che .Q o i h n berok- ioco p letoconaltezza i. ara ic
non contiene alcun nodo, oppure
composta da rofondit
tre h P. In conclusione, albero o/- -ariol
f
insiemi disgiunti l altezza di un com
o I oco fogH 6 o n.
di nodi un nodo radice, .
il suo sottoalbero un albero binario
sinish o e un chiansato Il numero dei nodi interni di un albero
albero binario chiamato
L albero il suo sottoalbero
binario che destro.
non contiene alcun h-l
nodo ch i amato
denotato con albero vuoto o albero
wc. Se il sottoalbero nullo. tal voIta l k k-
sinistro non vuoto k
della radice la sua radice chiamatafigEio gk
dell intero albero. sinistro
Analogamente, i0
il figlio la radice di un sottoalbero
destro deIla radice destro non
dell intero albero. nullo
il figlio Se un set toalbero
assente l albero nullo
o mancante. La vie, si dice che
figura 5.7 n naostra k-l
un albero binario.
Un albero binario ,
non semplicemente
un albero ordinato per l1 equazione 3.3... Quindi, un albero binario compm c o ha
Iato 2- I nodi interni.
pi 2. Per esempio, in cui ogni nodo
in un albero binario, abbia rado al
-figlia se un nodo ha solo
sinistro un figlio, la posizione
o destro importante. del fi l io
In un albero ordinato.
unico destro non si distingue Esercizi
o sinistro. La figura ie un hglio
5.7 b mostra un albero binario che differisce da quello
5.5-2 Mostrare che, per n 7, esiste un albero libero con n nodi tale che
volta prendendo di
in volta ciascuno degli n nodi come c. Sia d il massimo di un vertice di un grafo G. Provare che G pu essere
radice, si ottiene sempre un albero grado qualsiasi
radicato
diverso. colorato con d 1 colori.
5-1 Colorazione albero con n vertici in due insie,ni A e 8 tali che L J -I -1.
di uht grafo qualsiasi AA
94 .
Questo capitolo
offre una panoramica della teoria del calcolo combinatorio elementare e del
calcolo delle
probabilit. Se il lettore ha gi una buona preparazione su questi argomenti, pu
sfogliare l inizio del capitolo e concentrarsi sui paragrafi successivi la maggior parte dei capitoli
successivi non richiede nozioni di prababilith, tranne qualcuno in cui sono invece essenziali.
Il paragrafo 6.1 presenta i risultati elementari della teoria del calcolo combinatorio, incluse
formule standard per contare le permutazioni e le combinazioni. Gli assiomi su11a pmbabilit
e i concetti di base che riguardano le distribuzioni di probabilit sono presentati nel paragrafo
6.2. Le variabili casuali sono introdotte nel paragrafo 6.3, insieme con le propriet di speranza
e varianza. Il paragrafo 6A considera le distribuzioni geometrica e binomiale che si
incontrano studiando ie prove di Bernoulli. Lo studio della distribuzione binomiale
code
continuato nel paragrafo 6.5, con una discussione avanzata delle di tale distribuzione.
Infine, il paragrafo 6.6 illustra l analisi probabilistica attraverso tre esempi il paradosso del
compleanno, il lancio casuale di palline in contenitori e le sequenze vincenti.
Quanti
La teoria del calcolo combinatorio
cerca di rispondere alla domanda senza di fatto
Quanti
contare. Per c,sempio, si potrebbe chiedere sono i numeri distinti di n bit oppure
Quanti
sono gli ordinamenti distinti di n elementi In questo paragrafo, si passeranno in
rassegna gli elementi della teoria del calcolo combinatorio. Poich spesso si assume una
conoscenza di base degli insiemi, si consiglia al 1ettore di rivedere il materiale del paragrafo 5.1.
Un insieme di elementi che si desidera contare pu talvolta essere espresso come unione di
insiemi disgiunti o prodotto cartesiano di insiemi.
La regola del/a somma dice che il nuniern di modi per scegliere un elemento da uno di due
insiemi clisgiunti la somma delle cardina it degli insiemi. Cio. se A e 8 sono due insiemi
imiti enza elementi in comune, allora IA u 8 AA AD.che segue dall equuziane 53 . Per
esempin. il numero di targa di una macchina ha in ogni posizione una lettera o una cifra. Il
numero di pussihilit per ogni posizione allora 26 l0 3, infutti ci sono 26 possibili
scelte ie una letten c IO scelte .ie un i vitro.
k
94 Capirofo 6
Una stringa su un insieme finito S una sequenza di elementi di S. Per esempio le stringhe n
6.2
binarie di lunghezza 3 sono 8 k k
n
000, Ooi,OIO, 011 , 100, 101.110, 111. il numero di modi scegliere 0 elementi da un n-insieme
Per P. 0, questa formula dice che per
Talvolta una stringa di lunghezza k sar chiamata k-stringa. Una sottostringa s di una l, infatti 0 l.
Una k-stringa su un insieme S puo essere vista come un elemento del cartesiano n I -combinazioni di un
prodotto legga su L denotare il numero di
Si usa 1a notazione si per
S di k-pie quindi le stringhe di lunghezza I- sono Per esempio, il numero di A-stringhe
S . si ha
n-insieme. Dall equazione 6.2 ,
binarie 2. Intuitivamente. per costruire una I -stringa su un n-insieme, si hanno n modi per
scegliere il primo elemento per ognuna di scelte, si hanno n modi scegliere 6.3
queste per
il secondo elemento e cosi via fino a k volte. costruzione al k k n k
Questa porta prodotto
n i ... n n come numero delle k-stringhe. k ed n k. cio
Questa formula simmetrica per
. - .- .
Permutazioni
.
hinosniali, a causa del fatto che
numeri sono conosciuti anche come coefficie rti
Una di un insieme Questi
pennulazioae finito S una sequenza ordinata di tutti gli elementi di 5.
compaiono nello sviluppo binomiale
in cui ogni elemento compare esattamente una volta. Per esempio se S b, c , ci sono 6
a,
di S
permutazioni
x,y g . e- . 6.5
abc, acb, bac, bea, cab, c a.
10
Le permutazioni di un insieme di n elementi sono n, dato che il primo elemento della di sviluppa binomi le si verifica y l
Un caso speciale quando.v
sequenza pu essere scelto in n m di, il secondo in t i modi, il terzo in n 2 modi e cosi
via tmch vengono selezionati / elementi, e il / -esimo vietare scelto tra u I- l e en enti.
binomi ile. Per l kL g n.
neceisithdi limitarc l gr,mdezxudi un cocfticiente
Si ha talvolta la
-- , , l altra.
Sfruttando la disuguaglianza k k/e che deriva dalla formula di Stirling 2.12 si Provare l identit
ottengono 6. 1-5
i limiti superiori
k j
nn
k /c
1 n
...
k 1
. -- . . - 6.14
I 6.8
6.9
.- . -
Per ogni 0 k n, si pu usare I induzione si veda I Esercizio 6. 1-12 per dimostrare il limite
.
per 0 I n.
n n
kg - k, n khan-, s. ro
6.E-7 Per scegliere k oggetti su n, si puo contraddistinguere uno degli oggetti e conside-
dove, comodit, si assume che 0 1.
per Per /,- kr, dove 0 il, 1, limite che
questo pu essere rare se quell oggetto viene scelto. Usare approccio per provare
riscritto quest
come
Rl
n
- J gg j
n
gg l
.n
C- . -
,, 6.11
6.I-8 Usando
0 l,. n dei
il risultato
coefficienti
deII Esercizio
binomiali
6.1-7,
con
costruire
in alto,
una
z
tabella
e , sulla
per n
linea
0, l,
successiva,
6 e
dOVP.
.1-9 Provare che
- Ig R 1 R 1g 1 g
6.13
la fiinzione
che H0 Hl
di entropia
0.
binaria e dove. per comodit, si assume che 0 1g0 0, in modo
$
Mostrare che n O e 0 I ir. il massimo valore di raggiunto
Esercizi .l-lO per qualunque
6.1-2 Una fiat-icvte hooleasta con n input c m output una funzione da rwcsr
Fornire
,- sia una
,
prova
algehriia che una motiv azione basata su un metodo
6.15
per
vRur.-. a
r ,sssr . ill cl,i I ugu l li,n/a,loil V,le.
v vE, Quante anno le funzioni bouleane cc,.licl C j I. clcl11c,lti su i. Forllit e u,l csc.,llpio
con n input e l output. Qu,nte
quelle con, input e,n output
. - ..
2nS 2- vi niente che obblighi a scegliere 1 come la probabilit
normalizzazione. in realt non
O l/n .
6.16 semplice e comodo.
l dell evento certo, eccetto il fatto che
. 12 .
In g,
generale, una distribuzione di vi
Pr A
per prnb niib l , .it. possono esiere alcuni i
v n i. uesta situazione si verifica encnt n
era i e. Il requisito S
principale k Ite l ii sieme.
J di
zioni i cavolo lei c mai,lemento di un v. Distrihuxione contimi t uniforme prnhahilit
interiezione
c venti e s di un numero
i
tn ito n numerahil di ivn , g
vive rannosonosu.i xizieampionefini i i
i ,
iirotoin iemidll iipaziocampioi e.La ii . ir u. La
a a sono considerati venti.
ra reve. rappresenta tm eccczi me. io t iinsiemi dello ip vio canspione
lit in cui non tutti i
g / le 101
100 QgQg j g g gggf gpjg
probabilit
. Capitolo 6
Pr Ago 1/2,
Talvolta si ha a priori una conoscenza parziale del risultato di un esperimento. Per esempio.
si supponga Pr Ago 1/2,
che un amico abbia lanciato due monete perfette e che abbia detto che almeno
una di queste monete mostrava testa Pr Ai R Ai 1/4,
qual la probabilit che entrambe le monete mostrassero
testa L informazione fornita elimina la possibilit che siano uscite due croci inoltre Pr Ago A Aq 1/4,
i tre
eventi elementari rimanenti sono equamente
probabili per cui si possono con una Pr Ago A Ag 1/4,
presentare
probabilit di 1/3. Di conseguenza soltanto uno di questi eventi mostra due teste e la risposta
alla Pr A, n A. n Aq 0 .
domanda 1/3.
Pr A n B
P A B
Pr B 6.19 Bayes
Il teorema di
tutte le volte che Pr B Pr A la
w 0. Leggere come
AB probabilit di A dato 8 .
Intuitivamente, dato che si verificato eventi
erdueeventiAeBoenuno
due A e 8 o nu no
l evento B, l evento che anche A si verifichi definizione della condizionata segue che per
A n B. Dalla 6.19 probabilit
Cio A A B l insieme dei risultati in cui i verificano sia A che 8. Poich non nulla,
i risultato uno con probabilit
degli eventi elementari di B, si normalizzano le probabilit di tutti eventi elementari di 8
gli Pr cAB Pr B Pr i B
dividendoli Pr f B , in modo che
per la loro somma sia 1. La probabiIit condizionata di A dato
B perci il rapporto tra la Pr A Pr 8 A .
probabilit dell evento A n B e la dell evento B.
probabilit
Nell esempio A l evento
precedente, che entrambe le monete mostrino Risolvendo rispetto a Pr A B , si ottiene
testa e B I evento
che almeno una moneta mostri testa. Quind , Pr A AB l/4 l 3/4 1/3. Pr A Pr 8 Aj
Due eventi Pr f 8
.1
sono indipendeirti se
Pr AAB Pr A Pr B ,
formula conosciuta come teorema di Bayes. Ildenominatoreunacostantedinormalizzazione
che equivalente, se Pr B - v Bn 8 ecce
0, alla condizione che si che
ciepu empiere
........ . esprei a anche nel mndo se ucntc.. c. c
Datoche8 RnA
puri
Pr A 8 e B A A SOllo Allltuatllente L clusivi. si Il 1
Pr A . eventi 8 rQ A
Per esempio, si supponga di lanciare dite mnnete e che i risultati siano indipendenti.
perfette
allora la probabilit di ottenere due teste i I/2 1/2 1/4. Si SUppOllg ,1llCY
i CllL V Ill
lll1 l
-
102, Capitolo6
e detle 103
Calcolo contbinatorio probabilit
Pr 8 Pr B tl A Pr B A A
,2-6 Provare che
Pr A Pr 8 A Pro Pr 8 A .
pr z IB 1.
Sostituendo
8 Pr w
questa formula nella 6.21 , si ottiene una forma equivalente del teorema di
Bayes
insieme di eventi A,, A ..., A,,
6.2-7 Dimostrare che. per un qualunque
Pr A Pr B A
p Pr A n A.
Pr A A. n n A Pr Pr A A Ap
Pr A Pr B A A
A Pr 2 Pr B A
Pr A A, nd n na a .
Il teorema di Bayes semplificare il calcolo
pu delle probabilit condizionate. Per esempio.
si supponga di avere una moneta ed una
perfetta moneta truccata cui si ottiene sempre
per che
testa. Si di n eventi indipendenti a coppie, ma tale
pu eseguire un esperimento che consiste di tre eventi .2-8 Mostrare come costruire un insieme
indipendenti una delle due
monete scelta a caso, di k 2 elementi, non siano mutuamente
lanciata una volta e dopo lanciata di nuovo si supponga suo sottoinsieme questi
che esca per qualsiasi
testa entrambe le volte, la probabilit
qual che la moneta sia truccata indipendenti.
Si risolve il problema usando il teorema di Bayes. SiaA1 evento che comsponde all s It-
e a moneta truccata, sia B l eventn di condizionato, dato C, se
ottenere testa entrambe le volte. Si desidera Due eventi A e B sono i rdipeszdenti in modo
6.2-9
determinare Pr A B . Si ha Pr A 1/2, Pr BfA 1, Pr A 1/2 e Pr BavA 1/4, quindi. Pr A r1 B C Pr A C Pr B C .
indipenden-
e. ia - Fornire un esempio semplice ma non banale di due eventi che non sono
la probabilit di vincere
Pr Ago u A. u Pr A Pr A . j
19
l.
f r Pr X x
di due variabili casuali la somma de11e loro speranze
La speranza della somma
ia funzione di densit di una variabile casuale X. Dagli assiomi della probabilit, 6.24
EX Y E X E Y,
Pr X x 0 e Pr X x 1.
g si estende alle sommatorie finite
ogniqualvolta EX e E YJ sono definite. Questa proprieth
Come esempio, si consideri l esperimento e assolutamente convergenti di speranze matematiche.
di lanciare un coppia di dadi comuni a sei facce.
V i sono 36 possibili eventi elementari nello funzione definisce una nuova variabile
spazio campione. Assumendo che la distribuzione Se X una variabile casuale, qualsiasi gx
generica
di probabilit.si uniforme, cio ogni evento s e di g X definita, allora
S sia equamente probabile, si ha che casuale gX. Se la speranza
Pr s 1l36. Si definisce la variabile casuale X come il iridassimo tra i due valori che i dadi
mostrano dopo ogni lancio. Si ha quindi che, esempio, E gX Pr x .
per Pr X 3 5136, dato che X assegna g gx X
valore 3 a 5 dei 36 eventi elementari
possibili e cio 1, 3, 2, 3, 3, 3, 3. 2 e 3, I .
Spesso si hanno diverse Ponendo ax, si ha ogni costante a,
variabili casuali definite sullo stesso spazio campione. Se X e Y gx per
sono variabili casuali, allora la funzione 6.25
E a X a E X .
Pr Y y gPr X x EY 6.26
e Yy, E aX Y aE X
Due
y sono
variabili casuali
indipendenti
X e Y si definiscono
o, equivalentemente,
y
se per ogni x e y, si ha
EXE fF .
Pr X xe Yy Pr X x Pr Y y .
una variabile casuale Xassume valori maui numeri naturali N 0, . 2, ... . viuna
Valore atteso di una variabile casuale Quando
formula semplice per la sua sperano.
EX Pr X x,
gx i Pr X i Pr X i I
6. 3i
r0
che risu t
di X deno
denotata con, o, t, ZiS l
p,. quando la variabile chiara dal intesto, semplicemente 6.
con,u. Pr X
r -I
1W Capirolo 6 Catcolo combinatorio e delle 107
probabilit
dato che ciascun termine Pr X i addizionato i volte e sottratto i-1 volte eccetto
Pr X 0, che aggiunto 0 volte e non mai sottratm . 6.3-3 Un l uso di tre dadi in un barattolo. Un pu puntare un
gioco prevede giocatore
dollaro su un qualsiasi numero da l a 6. Il barattolo agitato e la conclusione la
Varianza seguente se il numero scelto dal giocatore non appare su nessun dado, allora perde
e scarto medio
quadratico
il dollaro altrimenti. se il suo numero compare esattamente su k dei tre dadi. per k
1, 2, 3, egli tiene il suo dolIaro e vince altri k dollari. Qual la speranza matematica
La varianza di una variabile casuale X con speranza EX del guadagno del giocatore, provando una sola volta
Var X E E X
X
63-4 Siano X e Y due variabili casuali indipendenti. Provare che fX e gY sono
E 2XE X E
X- X
indipendenti per ogni scelta delle funzioni f e g.
E 2E XE XJI E
X X
E 2E X E
X- X j
X una variabile casuale non negativa, e si supponga che EX sia ben definita.
E x- ivi . 6.29
6.3-5 Sia
La giustificazione le eguaglianze
per EE-Xj E X e E XE XJ E-X che Pr X t E X /t
EX non
una variabile casuale ma semplicemente un numero reale e quindi si pu applicare la 6.25 ogni t 0.
a E XJ . per
con L equazione 6.29 essere riscritta
pu per ottenere un espressione la
speranza per
di una variabile casuale al quadrato
.3-6 Sia S uno spazio can pione e siano Xe X variabili casuali tali che Xs X s per
z fs- j vai x z x .
6.30 ogni s c S. Provare che per ogni costante reale t,
Esercizi
0.25
0.35
0.30 0.20
0.25 0.15
0.20 0.10
0.15 0.05
0.10 k
0.05 Figura 6.2 La disrribic ione binomiale bg 15. 1/3 che si ottiene con n 15 e di Beiv oufli,
pro
ciascuna cover probabilit di successo 113. La speran a del1a disrribu ione
p np 5.
IO ll 12 13 14 15
aq c,
Pr X k p
p 6.36
EX
gkq
kl perch vi sono modi di scegliere I delle n prove sono successi, e la pmbabilit che
quali
ognuna di esse si verifichi .
p q Una distribuzione di probubilith che soddisfi l equazione
glcq 6.36 detta distribu -ione bisromiale. Pn comodi. si definisce la famiglia di distribuzioni
40
binomiali usando la notazione
P
-e
k, .n 6.37
l/p iati
6.34
La tigura binomiale
6.2 illiistra una distribuzione binomi il . Il nnrne ha origine dal fatto
Di conseguenza in m i a, occorrono I/p prove di ottenere che 6.37 il I--eiin o termine della
prima un successo. che anche sviluppn di p e . Di conseguenza, dato che p q l,
la risposta intuitiva. La varianza, che pu essere calcolata si ha
anelo amente,
Var X q/p- . l n
6.35
bk n. p I,
g 6.38
I 0
Si pu calcolare la speranza di una variabile con distribuzione binomiale dalle equazioni / che va da
Come si puo vedere dalla figura 6.2. la distribuzione binomiale bl i. p , per
6.14 e 6.38 . Sia X una variabile casuale che segue la distribuzione binomiale bl, n, p . e la
0 a n. cresce finch / raggiunge il valore medio np e poi decresce. Si pu provare che
sia q I p. Dal la definizione di speranza, si ha distribuzione si comporta sempre in questo modo osservando il rapporto di termini succes-
n S1V1
EX
gkb k n,p
I 0 k n li
b k n,p Il p q
bk 1 n,p
z ., ze- n k
pk-iqn-l l
1 n k 1 p
n
-- n
k n
k 1p
k nq
kq
1p k
pp n 6.42
g pkq n-I -k
I O
aq
n-l
n
L8ITl11tQ 6.1
.rxi a
Siano ir 0,0 1, 1-p e 0 l n. Allora
gx, p q
n
E X, . - s, . a
Dimostra ione. Usando l equazione 6.10 . si ha
il
np. b ,.n.n
n.s.
Lo stesso approccio pu essere usato per calcolare la varianza della distribuzione. Us mdo - ..
I equazione 6.29 , si ha Var X E X- E-X. Poich X assunsere .iolo valori 0 c 1.
pu
si ha EX- EX e quincli ,
p,
7
f ,l P P- PP . 6.40
n
6.4-1 Veriticare l assioma 2 della probabilit per la distribuzione eeometrica.
Var Var .
K g.
g
n 3 tei
64-2 Quotaste volte insediasi dei orni lanci iri 6 inondate prinsadi ottenere
pcrtctte
Var
X, e 3 croci
npq . t i-ll
Calcolo combinatorio e delle H3
probabilit
6.4-4 Dimostrar che il valere massimo della distribuzione binomiale bl r, p * 6.5 Code della distribuzione binomiale
approssimativamente I/ nnpq, dove 1
q p.
Pr X k
.4-7 Mostrare che 0 k n, pb i n,p
per
ik
B / -n
/ g. /7
.4-8 Considerare n prove di Bernoulli, dove i Dimostrazione. Facendo uso della disuguaglianza
per l, 2, ..., n, l i-esima prova ha 6.15
k
p p per ciascun i 1, 2, ..., n. Provare che per I k ir,
.. -.
Pr X k si ha
.
pb i n,p
i0 n
Pr X l
pb i n,p
6.4-9 Sia X la variabile casuale che denota il numero totale di successi in un insieme A
n-I
di i prove di Bernoulli, dove l i-esima ha di successo e sia X
prova probabilit p, bk i n, p
la variabile casuale che g
denota il numero totale di successi in un secondo insieme
i0
A di n prove di Bernoulli, dove i-esima ha di successo
prova probabiIit p p. n-k,
mostrare come
Sug
to che
geriine to
coinvolga le prove di A. e usare
ottenere le prove
il risultato
di Bernoulli
dell Esercizio
di Ada un esperimen-
6.-6 . ,
,
n-k
b i. n k,p
g
p
-z
dato che g, b i, n k, p 1 dal l equazionc 6.38 .
Calcolo combinatorio e delleprobabilit II5
114 Capitolo 5
per 0 i I. e quindi
Corollario 6.3
n. .
g , Quando k np/2, si ha kq/ np k l, il cui significato che bk n, p limita la somma di
kp
n
bk n, p .
n, p con una serie usando la tecnica
Dimostrazione. Si limita la serie g, , bi geometrica k np
., U Teoreaur 6.6
., - Si
i
consideri
l, 2...,
una
n. il successo
sequenza di
si verific i
n prove
con
di Bernoulli.
probahilit p
dove
ed
nella
il fallimento
i-esima
con
prova,
probabilit
per
. , p- i
Allora per r p.
Pr X p r
segue che l
bi 1 n,p x i n,p
l
Dimostrazione. Dato che per ogni a 0 la funzione e strettamente crescente in x, Scegliendo a In r/p veda l Esercizio 6.5-6 , si ottiene
si
Pr X p r Pr e ,
e Pr r exp pe r in r/p
X p
dove a sar determinato in seguito. Usando la disuguaglianza di Markov 6.32 , si oniene exp r r In r/p
- e
Pr X p r E e- 6.43
e
- i/u
La parte pi importante della dimostrazione consiste nel limitare Ee e nel sostituire
.
,
ad X un valore opportno nella disuguaglianza 6.43 . Prima si valuter Ee Per
e Coro/lario 6.7
n
di Bernoulli, dove un successo si verifica con probabilit
Si consideri una sequenza di n prove
ug -u Allora. r np,
fallimento con 1 p. pn
p ed un probabilit q
il
n
Sostituendo X p, si ottiene
Pr X np r b Ic,n,p
g
n k np r1
p
QIX
/l
n ,
n
implica che EX np.
Dimostra -inne. Per una distribuzione binomiale l equazione 6. 39 p
IIEI D
il
che segue dalla 6.27 , perch la mutua indipendenza delle variabili casuali X implica la
si
mutua indipendenza delle variabili casuali e veda l Esercizio 6.3-4 . Per definizione Esercizi
di speranza,
p,e l
6.5-2 Dimostrare che
exp p,e , 6.44
n
dove ezp x denota la funzione esponenziale exp x e. disuguaglianza segue ai b / n,a/ a 1
La 6.44 a
na ka 1
dalle disuguaglianze u 0, q l. e e. e e I e l ultima linea segue dalla rO
i
X-p
E exp p,e allora
p che se 0 I- np. 0 l e I p.
6.5-3 Provare p q
il
exp pe ,
i0
/n p cl
Pr l X r
e delle 119
Caco o co inatorio probabili
lo stesso giorno
i compleanni cadano
la probabilit che entrambi
Quindi,
Analogamente, mostrare che le condizioni del Corollario 6.7 implicano che
n
e b, r
Pr np X r Pr b b, QPr b, r
rl
n
Si consideri una sequenza di n prove di Bernoulli, dove nella i-esima per g l/n
6.5-5 prova.
rl
i l, 2, ..., n, il successo si verifica con p, ed il fallimento con
probabilit I/n .
1 Sia X la variabile casuale che descrive il numero totale dei
probabilith q p. che b venga scelto uguale
sia stato scelto, la probabilit
successi e sia E Xj. Allora r 0, una volta che b,
p per Pi intuitivamente, la stessa che
lo stesso compleanno probabilit
la probabilith che i e j abbiano
- lln. Perci,
Pr X p r e Attenzione per perch questa
essi cada in un dato giorno.
. compleanno di uno di
, il indipendenti.
che e- Quindi applicare la tecnica che i compleanni siano
S,rggerimento provare pe qe- , dall assunzione
coincidenza dipende
dimostrare il Teorema 6.6, usando disuguaglianza al posto della compleanni coincidenti
seguita per questa 2 persone su k abbiano
la probabilit che almeno
u ana
Si i pu izzare
analizzare siano uguali
disuguaglianza 6.44 . che a1meno due compleanni
complementare. La probabilit
osservando l evento L evento che k persone
siano differenti.
che tutti i compleanni
1 diminuito della probabilit
6.5-6 Mostrare che scegliendo n 1n rlp si minimizza la parte destra della disuguaglian-
abbiano compleanni distinti
za 6A .
k-I
a,. Q
il
1 diverso da quello della persona
Analisi i
6. probabilistica A l evento che il compleanno della persona
dove
ogni j i. cio,
j per
usa tre esempi illustrare l analisi Il primo determina la
Questo paragrafo per probabilistica.
abbiano lo stesso A, b, pb, j 1,2...,i .
che, in una stanza con k persone, alcune coppie di persone la ricorrenza
probabilit dal equazione 6.20
B, An B,, si ottiene
compleanno. Il secondo esempio considera il lancio casuale di palline dentro dei contenitori. Poich si pu scrivere
6.46
Il terzo esamina sequenze di teste consecutive nel lancio di una moneta. 8q
Pr Bq Pr Aq ,
Pr Bqj
altre la che
Pr B, l. In parole. probabilit
condizione iniziale
dove si assume come
6.6.1 Il paradosso del compleanno 2,
..., /- 1. dato che b,. b ....,
che b, c b i I,
la per
distinti moltiplicatz per probabilit
Un buon esempio illustrare il ragionamento probabilistico il classico paradosso del sono distinti.
per b,, l. 2..... k- I
che b, c b per i
compleanno. devono esserci in una stanza ci sia una buona t la probabilith condizio wta
Quante persone perch probab 1 b ..., b, sono distinti,
Se b,, che non vengono presi.
loro nate nello stesso dell anno Poche. la sorprendente risposta. vi sono n- k-I giorni
c e ue di siano giorno I /n, dato che su n giorni,
n- k
Il paradosso che in realt ne bastano molte di meno del numero dei giorni di un anno, come si ottiene
Iterando la ricorrenza 6.46
si vedr di seguito.
BA Pr Aq Bq
B Pr A.
P er rispondere alla domanda, si indichino le persone nella stanza con gli interi l, 2.... l Pr B Pr 8 Pr 4
. . .
assuma che ogni anno abbia n 36S giorni. Per i l, 2, ... k, sia b il giorno dell anno in cui
.
cade
uniformemente
l i-esimo compleanno,
distribuiti sugli
con
n giorni
l b
dell anno,
n. Si assuma
cosi che
anche
Pr b
che
r
i compleanni
1 . e. forisisce
La disuguagiiunza 2.7 ,
La che due persone i e j facciano il compleanno lo stesso giorno, dipende dal
probabilit
n
fatto che la selezione casuale dei compleanni sia indipendente. Se i compleanni sono - k-l,
p -l/ , -2/n
g
indipendenti, allora la probabilit che il compleanno di i e quello di j cadano entramhi il giorno ,
in
r
A l /an
C,-A
Prjb, r e b, r Pr b, r Pr b r
f /
l /-n
Il numero di palline che cadono in un dato
l l 1 12n in un daro eontenirore
quando In 1/2 . La probabilit che tutti i k compleanni siano distinti al pi Quanre palliare finiscono
Se vengono lanciate n palline, il
segue la distribuzione binomiale bk n. 1/b .
1/2 quando k/ 1 2nln2 oppure, risolvendo l equazione contenitore
quadratica, quando n/b.
aneso di palline che cadono in un dato contenitore
k l Sln2 n /2. Per n 365, si deve 23. numero
l avere I Percio, se almeno 23
un daro contenitore contenga una
sono in una stanza, la si devono lanciare, in media, perch
persone probabilit che almeno due di esse abbiano lo stesso Quante palline
contenitore riceva una segue la distribu-
compleanno almeno 1/2. Su Marte, Il numero di lanci un dato pallina
un anno lungo 669 giorni marziani occorrono pallina. perch
quindi di lanci ottenere un
31 1/b e quindi il numero atteso per
marziani per ottenere lo stesso risultato. zione geometrica con probabilit
successo 1/ l/b b.
kk 1 E E
g.,
2 ll
l b
Perci, quando l k 1 2n, il numero atteso di coppie di compleanni almeno 1. Quindi.
E n
se vi sono almeno v 2n individui in una stanza ci si puo aspettare che almeno due abbiano lo
stesso compleanno. Per n 365, se I 28 il numero atteso di coppie con lo stesso b
compleanno 28 27 1 2 36S 1,0356. Quindi, con almeno 28 persone, ci si aspetta di
-Eb b
trovare almeno ma coppia di compleanni uguali. Su Marte, dove un anno lungo 669 giorni
marziani, si ha bisogno di almeno 38 marziani.
j bg
h
appro simativatlle,ite
riga segue dal
I lnb
limite
l..lnci
3.
prinla
sulle
che
serie
ci si pnssa
armoniche.
aspettare
In
c.,e
conclusione
o ni con
occonono
ni tore abbia
6.6.2 Palline e contenitori
una pallina.
er , iz . L l Ls JJ
l / n2n/
Ig n-l
I /n 1
6.47 l
- 2n/ign-l / n
Per k 2f1gn ,
n
O 1/n .
p2lgn
i
2 -O 1/n 0 Q lg n .
i la sequenza
pu cominciare. La che una sequenza di teste Llg n J /2 1 I /n
probabilit
di lunghezza almeno I 2 1gn l cominci da una qualsiasi posizione, perci
La probabilit che una se qt. enza di teste ecceda rf l en1 lanci diminuisce rapidamente con
it di c nrdinalit n sia in realt una
r. Perr l la p robabi che una sequenza che una I -stringa su un insieme
di j Ignfteste cominci dalla .izione i 6.6-4 Qual la probabilit
posizione dei
correlare pr,b p aradosso
/,--permutazione Come si pu questo
Pr i,rpgn 1/2
compleanni
1/n .
. -
la probabilit
- che la sequenza
pi lunga abbia una lutsghezza minore di indipendente ed equamente
atteso
probabile
di contenitori
che la p
na
.
ttnisca
Q ual
in
il numero
un qualsiasi
atteso
contenitnre. Qu 1 il numero
Per esempio, ir 1000 lanci, la probabilit
per di avere una sequenza di almeno con esatt..unente una pallina.
klgn1 di contenitnri
20 teste al pi I/n I/1000. La probabilit di avere una sequenza lunga di 3 I l
pi I 3
al pi I hi - l/1000000. -, di successi mnstrando
1un ltezza ella . ei q e
uenza
RafTinarc c il limite inferiore della
6.6-6 di teite
iche nessuna sequenza
una moneto la prolnbiliti
che in t lane i di perfetta.
lllitli le i ti 1/0.
si 1 luil ,1 di l zii lglgtt
sequenze consecu1ive piil
di lunghezza Llgnjl2. Doli cc ii izinnc 647 , ii ha
Pr A, 1/2
jg p
l/ n .
... s il numero totale di volte che la linea 5 viene eseguita durante
e. Sia s s, s,
Problemi esecuzione del Mostrare che Es D lgn .
qualche programma.
pallina. Mostrare che il numero di modi di mettere le palline si pu contare fino a un Valore molto a scapito di un
.
n probabilistico di R. Morris, pi gode
Mostrare che
di un
il valore
errore
atteso
di overflnw.
Le somme di variabili casuali furono studiate in origine da P.L. Chebyshev e A.A. Markov,
La teoria delle probabilit fu assiomatizzata da A.N. Kolmogorov nel 1933. I limiti sulle code
di distribuzione furono dati da Chernoff 40 e Hoeffding 99 . Molti lavori pionieristici sulle
strutture combinatorie casuali sono dovuti a P. Erdos.
Knuth 121 e Liu 140j sono buoni riferimenti per il calcolo combinatorio elementare.
Libri di testo standard come Billingslcy 28 , Chung 4I , Drake 57 , Feller 66 e Rozanov
171 offrono un ampia introduzione al calcolo delle probabilit. Bollobs 30 , Hofri 100
e Spencer 179 contengono un abbondante raccolta di tecniche evolute.
probabilistiche
Introduzione
Ordinamento e selezione
contiene diversi algoritmi che risolvono il seguente proMema di ordinai tento
Questa parte
a, a ... a ,.
e propria.
l
Parte EI e selezione J31
Ordinamento
Nel Capitolo 1 sono stati presentati due algoritmi che ordinano ir numeri reali. Insertion so
impiega,mn tempo 8 n- nel caso peggiore. Tuttavia, dato che i suoi cicli annidati sono
Prerequisiti
compatti, esso risulta un algoritmo di ordinamento in loco veloce quando l input piccolo,
nel caso peggiore 8 n- . Il suo tempo di esecuzione nel caso medio per 8n 1gn e
generalmente nella pratica migliore dello heapsort. Come l insertion sort, il quicksort ha un
codice compatto, per cui il fattore costante nascosto del tempo di esecuzione piccolo un
algoritmo molto popolare per ordinare grandi array di input.
Insertion sort, merge sort, heapsort e quicksort sono tutti ordinamenti che operano per
confronto determinano la posizione finale degli elementi di un array di input confrontandali
l uno con l altro. Il Capitolo 9 comincia introducendo il modello dell albero di decisione che
consente di studiare le limitazioni delle prestazioni degli ordinamenti che operano per
confronto. Usando questo modello si dimostra un limite inferiore Qn Ign sul tempo di
esecuzione nel caso peggiore di qualsiasi ordinamento per confronto di n input, mostrando
cosi che heapsort e merge sort sono ordinamenti per confronto asintoticameme ottimi.
Selezione
successivi.
heap dell heapso , ma in
Si noti che il termine originariamente fu coniato nel contesto
garbage-collector- com
seguito stato usato riferirsi alla memoria con il quella
per gestita
struttura di dati che viene i1o
fornita dal linguaggio di programmazione Lisp. La presentata
allo heap in questo libro, esso si
questo tipo di memoria, e dovunque ci sia un riferimento
7.1 Heap
PE Ew-t i
return Li/2 J
Lr i
return 2i
134 Capirolo 7 Heapsotf
Esercizi
,. 4 7 1 2 3 4 5 7 altezza h.
6 8 9 10
16 14 10 8 7 9 3 2 4 l
uno heap di n elementi ha altezza Llgn J.
7. 1-2 Mostrare che
return 2i 1
ordinato in ordine inverso uno heap
7.1-5 Un array
In molti calcolatori, la procedura LEI calcolare 2i con una sola istruzione semplicemente
pu 14, 6, 13. 10, l. 5, 7, 12 uno heap
7.1-6 La sequenza 23, 17,
traslando di una posizione a sinistra la rappresentazione binaria di i. Analogamente, la
procedura RtrHT pu velocemente calcolare 2i 1 tramite la traslazione della rappresenta-
zione binaria di i di una a sinistra e inserendo 1 nel bit di ordine basso. La
posizione pi heap
7.2 lVIantenimento della propriet dello
procedura PARENT pu calcolare Lil2J tramite la traslazione di i di una verso destra.
posizione
In una buona realizzazione dello heapsort, tre sono spesso realizzate
queste procedure come A e
macro -in-linea . I suoi input sono un -.
sottoprogramma gli heap.
procedure o HEAPIFY un importante per gestire
che alberi binm con
HE ptvv viene chiamata, si assume gli
Gli h cap soddisfano anche un indice i nell array. Quando
la propriet di ordinai tento dello beai nel seguito
parziale che essere dei iui i figli.
e Rtavv i siano heap, ma che A ij possa pi piccolo
sar chiamata semplicemente de1lo radice in LEi i ..vendere
pi propriet lieap per ogni nodo i diverso dalla radice, il
La funzione di HvwptFv di lasciar
violando cosi la propriet dello heap 7.1 .
A PARENT i j Ai. di indice i diventi uno he
nello heap cosi che il sattoalbero con radice
valor di A i
cio il va1ore di un nodo minore o uguale al valore del I elemento
padre. Quindi pi grande
nello heap memorizzato nella radice e i sottoalberi di qualunque nodo contengono valori non HEAPIFY A, i
maggiori del valore dql nodo stesso.
1 I c LeFT i
Si definisce altera di un nodo in un albero il numero di archi sul lungo camminino
pi Ricca i
2 r
semplice discendente che va dal nodo a una foglia, e si definisce altezza dell albero l altezza
3 if / heap-size Aj e Al Ai
altezza 8 lgn si veda l Eserci zio 7.1-2 . Si vedr che le operazioni di base sugli 4 then largesr m I
heap hanno
un tempo di esecuzione al piii all altezza dell albero
proporzionale e quindi impiegano un 5 else lvrgesl - i
if r he -si eA e Ar A le rgest j
6
mostra come usarle in un algoritmo di ordinamento e in una struttura di dati chiamata coda
7 then largesr - r
con priorit.
8 if lnrgest c i
La procedura HEAPIFY, che ha tempo di esecuzione O lgn , lu procedura chiave per
mantenere la propriet dello he p then scambia Ai A lar,usti
7. 1 . 9
c
convertire un array A f 1 .. n . con
usare la procedura HEAPlFY in modo bonom-up per
Si pu
Figura 7.2 L a ,ione di Hh v,n A, 2, dot,e Ireap-si,e A 10. La fi gura ioite ini iale dello
n length A , in uno heap.
heap viola la dello heap A2 ite l no d o i 2 non piir
propriet poich grande dei suoi fi li.i. Laa
nel sottoarray A Lnl- 1 .. n sono tutte foglie
proprietdelloheapripristinataperilnodo2 illI b SCQttl fPlQilC I O 8 2 , CO11 A 4 , 1110 ClOpc Pta a violr i e Per cominciare, poich gli elementi
aproprier elloheapperilnodo4.Lachiamataricorsiva un solo elemento. La Buiio-HEsr
HEAvtn A,4 vnei 4. 0 dell albero. ognuno di essi uno heap di procedura
A4 o A j , ome m
mostrato mo inn c, il nodo 4 sisremalo e la chiamara ricorsiva HEa tFY A, 9 11011 HFwvtFv su ognuno di essi. L ordine in cui i nodi
attraversa i restanti nodi dell albero ed esegue
PECI1iede ulteriori cambiamenti della struttura di dati. che
con radice nei tigli di un nodo i sono heap, prima
sono trattati garantisce che i sottoalberi
originale di Ai, e quindi il sottoalbero con radice nel nodo largest violare ia
potrebbe
propriet dello heap. p. Di cnse uenza He wn
H deve essere Butto-Hne A
, chiamata ricorsi vamente su qeso
qu t
sottoalbero. eA c- le gth A
1 heap-si
3 do HEAPIFY A, i
p p r eseguire HEavin su un sottoalbero con radice in uno dei due figli del nodn
I
i. I ssottoalberi dei figli hanno ciascuno dimension ne a I pi 2 n 13 i caso peggiore si verifica un esempio dell esecuzione di Buri-HeAP.
uItimo I La figura 7.3 mostra
uan
quan o u t livello dell albero pieno esattamente a me
met e i tempo d i esecuzione di nel
limite superiore sul tempo di esecuzione di BA n.n-HEAv
Si pu calcolare un semplice
EAPIFY pu allora essere descritto dalla ricorrenza
richiede un tempo O lgn e tali chiamate sono 0i .
modo seguente. Ogni chiamata a HEAPIFY
Tn T 2n/3 81 ign . limite superiore, sebbene corretto.
. il tempo di esecuzione al pi On Questo
Quindi
La della non asintoticamente stretto.
soluzione ricorrenza, er il caso del teorema
principale Teorema 4.1 .
che il tempo fnr eseguire Hz,ivivv su un
Tn O lgir . In alternativa, si p u o definire
d coine O lr il tetnpo di esecuzione Si pu derivare un limite stretto osservando per
di i Hz.z.st
viF iFs ..u pi
e le altezze di molti nodi sono Un mialisi
un nodo di altezza h. nodn varia con l altezza del nodo i eli lbero piccole.
ha altezza LlgnJ si veda
si basa sullaproprieth che uno he.ip di n elementi
pi rigorosa
eli altezza h si veci, l Esercizio 7.3- .
I Esercizio 7.1-2 e al pi I nl2 annali
Esercizi
di altezza li O l , si
da Hrxvlvv c chi un ta su un t odo quindi
Il tempo richiesto quando
esprimere il costo tot le di B w.n-Hi sv come
7.2-1 pu
Usando la fi ura 7. - CUlllt , lllOGCllo, illustrare Ic operaziuni di Ht Af it s A.
sull array A 27. 17, 3. 16. 13. 10. i, S. 7, 12,4, 8, 9, 0 .
Oh O , 7.2
, g
n
Heapsorr 139
13S - Capirolo 7
3
- 0n
-
.
Esercizi
7 4
heap di n elementi vi sono al I 12 I nodi di
7.3-3 Mostrare che in qualunque pi
RllCZZR /l.
8 9 10
2 8 7
c d 7.4 L algoritmo heapsort
Figura 7. L esecu-ione di Buco-Hz v, mostrata attrai esso la struttrira di dati defla clriamara
prinra
a HEAPIFY ltella livrea 3 di BuLD-Hewv. a Un arra di input A di 10 elementi e l albero l inario cl e
lo rappresene. La m,rsrra che I indie,,
H vson A
figura i de1 cicfo pm,ra al odo 5 pri na della chia,nata a
HEAPIFY A. i. b La struttura di dati risultante. l. iildlce i del cick l itera ivi e successi a punta Borio-Hne A
per 1
al modo 4. cl- e Le irera ioidi successive del cic 1 for nel1a Bciio-HEwv. Si r vse si c1re .re HF vivY
2 for i m lengrh A downto 2
viene chiavtata sr un irodo, i due scrttoall eri di nodo sono heap e rrambi. Lo henp dcipr c lie
quel f
Buco-Hz a terininara. 3 do scambia A1 m A fi
4 lieap-si eA - h ap si eA l
5 HE, vivv A. 1
L ultima sommatoria pu essere valutata sostituendo.v 1/2 nella formula 3 .6 , cui vale
per
7.4 mostra un esempio dell opervziutse di heapsort dopo che lu lleap stato costruito
h 1/2 La fi cura
w l
E I 1 /2 -
pt
hO
2.
Heapsort 141
7 9 3 4 3
Heapsort un buon algoritmo, ma una buona realizzazione del quicksort, presentato nel
2
2 di dati heap ha un utilit
Capitolo 8, di solito migliore in pratica. Ci nonostante, la struttura
b applicazioni dello heap
c enorme. In questo paragrafo, sar presentata una delle pi conosciute
Una coda con priorit una struttura di dati per mantenere un insieme S di elementi, ognuno
con un valore associato chiamato chiave. Una coda con priorit offre le seguenti operazioni.
IxsERv S, x inserisce l elemento x nell insieme S, guest operazione potrebbe essere scritta
come S S u x.
il,
Q MAxwvu S restituisce l elemento di S con chiave pi grande.
d
e
ErrRwcr-Max S rimuove e restituisce l elemento di S con chiave pi grande.
Q1 Q1 l Q Una coda con essere usata nella simulazione di un sistema dagli eventi.
Ql Qf Q priorit puo guidato
g Q Q
h Gli elementi nella coda sono eventi che devono essere simulati, ognuno con associato il tempo
in cui deve avvenire, che serve come chiave. Gli eventi devono essere simulati seguendo
istante. semplicemente il valore A 1 dello heap. La procedura He,v-Ex Aa-Max simile al corpo
valore di i in Nel1o
quel1 / cap rimair prono solo i chiodi chiari. k ll ri sultante array A ordinato. del ciclo for della Hr vsoRt
linee 3-5 procedura
HEAP-EXTRACT-Max A
Esercizi l if/teap-si eA 1
heap
then error underflow
7.4-1 Usando Ia figura 7.4 come modello, illustrare l operazione di HEAPSORT 3 l lCIX - Al i
SU l llTBp
A 5. 13. 2, 25, 7. 17, 20, 8. 4 .
4 A1 c A ltecip-si..e A
5 heap-si A heap-si eA l
, -
7.4-2 Qu
Q i tcmpodi esecuzion ci lwapsort..- su un irrayA di lunghezza i o
gihordinato in o 6 Hv,iwrv A, 1
in ordin crescente E se I ordine decrescente
7 retuns n a.v
7.4-3 l .
M s . tnt che il tempo eli ciecurionc . di hevpi rt Q- Ipr
n c nel caso
pe iore.
HEAP-IxsERT A, key
l Ireap-size A - heap-si eA J 1
i m Ireap-si e A
3 while i l e A I ey
Pmem i
4 do A ij m A PARENT i
5 i- Pa RFvr i
6 Ai m key
7.5-2 Illustrare
Problemi
inoltre l operazione di He ,v-ExvRwcr-Max sullo heap A 15. 13, 9. 5.
12, 8, 7, 4, 0, 6, 2, 1.
7-1 Costruzione di uno keap ewr l inserzio re
7.5-3 Mostrare come La procedura Ru io-HEAP del 7.3 essere realizzata usando ripetutamente HEAP-
realizzare una coda pwagrafo pu
primo-amvito-primo-servito FIFO con una
coda con INSERT per inserire elementi nello heap. Si consideri la seguente realizzazione
priorit. Mostrare come realizzare una gli
pila usando una coda con priorit.
Code FIFO e pile snno definite neI paragrafo I l. I .
Buia -HeAv A
3 do HE P- NSERT A, Ai
7.5-5 L operazione HE v-De.me A, i cancella l elemento del nodo i dallo heap .4.
Realizzare una procedura Hne-DELETE che venga eseguita in tempo Le
O l,n su unn a. procedure BCico-Hpwv e ButLo-HEAP. se anno eseguite sullo stesso arra/ di input.
heap di n elementi.
creano sempre lo stesso he p Dimostrare che lo faimo o fornire un coi troesempio.
Uno heap d-ario come uno heap binario, ma i nodi hanno d figli invece di 2.
Aq 1 .. r inmodotalecheognielementodiA p .. q siaminoreougualeaqualunque
da questa di pzcizionanlellN.
elemento di A q 1 . r . L indice q calcolato procedura
quick ort.
realizza il quicksort.
A. l
Ql ICKS RT /.
I ifp r
tllen c C P xl rl I ioN A, p. r
3 Ql ic vsoin A. p. q
Ql I K i llkT A. / I. I
I
Quickson 147
A p..r
ordinare l intero array A, la chiamata iniziale Qutcxson A, l, length A .
Per
A p.. qj A q 1.. r
PARTITION A, p, r
332 5 7 3 3 2 1 4 6 5 7
1 xmA p
2 i -p l
1 j retum i
j
3 j c-r l
d e
4 while TRVE
array
do repeat l elementi cfriaro dell s mo
5 j j Figura 8.1 Esempio di esecu-ione di PwRtmos su un arra . Gli grigio array
scuri i on sono ancora ne fa loro a L
x stati messi nellaparti ione correrra e quelli parti ione.
6 until Aj
7 repeat i i l
8 until Ai x
9 if i j
c wgsia1i az 5, e gli elementi dell array dopo A fj scruta
10 then scambia Ai - Aj che precedono e inclndoiro A j sonar minori
tllQggiori o ugnerli a x 5.
11 else return j
La figura 8.1 mostra come funziona PARTITlON. Prima viene selezionato un elemento x Ap Esercizi
perno vengono
da A p .. r come elemento attorno al quale partizionare Ap .. rj. Quindi
come modello. illustrare le operazioni di PARvn ton sull arrai
.. r rispettivamente dall inizio e dalla fine di 8.1-I Usando la figura 8.1
fatte crescere le due regioni Ap .. i e Aj
in A 13, 19,9. 5, 12,8,7,4. 11,2.6. 21 .
Ap .. r cosi che ogni elemento in A p .. i sia minore o uguale a x e ogni elemento
Aj .. r sia maggiore o uguale ax. Inizialmente i p 1ej r l e le due regioni sono vuote.
PAR11TIOV SC tutti elementi nell array Ap . r
e l indice i incrementato, nelle linee 8.1-2 Quale valore di q restituisce gli
Nel corpo del ciclo while. l indice j decrementato
hanno lo stesso valore
5-8, finch Ai x A Assumendo che disuguaglianze siano strette. Ai troppo
j. queste
appartenere alla regione bassa e Ag troppo per appartenere alla regione
grande per piccolo
il tempo di esecuzione di PARTITlotl su un sottoarray
estendere le due 8.I-3 Spiegare brevemente perch
alta. Cos , scambiando Ai e Ag, come fatto nella linea 10, si possono
comunque . di dimensione n 8n.
regioni. le disuguaglianze non sono strette, lo scambio pu essere eseguito
Se
Il corpo del ciclo svhile si ripete finch i a questo l intero array Ap .. r stato
j, punto ordinare in ordine decrescente
8.1-4 Come si mdificure Qcicasoet per
r, tali che nessun potrebbe
ripartizionato in due sottoarray A p.. q e Aq 1. r, dove p q
elemento di A p .. q pi grande di qualunque elemento di A q 1 .. r. Il valore q j
elemento perno. Se invece venisse usato A r e se esso fosse anche l elemento pi grande nel i
sottoarray Ap .. r, allora P RTITrot re tituirebhe u QuicvsoRt il valore r. e Qutcwsow r
q
di che Pi nttos i corrct t i. bilanci minio dell i partizione.
andrebbe in ciclo per sempre. Il Pr hl ma 8- I richiede provare
l Esercizio 8.1-3 .
149
Quicksort
.q
l n-I n
I Il 2 n-l
-- - - .l n
n/8 n/8 n/8 n/8 n/8
---1 lg n n/8 n j8 np
n I Il-3 Il 2
l I I l l - n
T 1 1 1 1 1 1 1 1 l 1
1 On Ig n
On
Partizionamento migliore
Partizionamento peggiore
Tn Tn 1 8n .
esecuzione.
sempre una
che l algoritmo di partixinnamento produca
s ga Si supponga, per esempio,
Allora si ottiene
sufticientemente sbilanciata.
suddivisione di 9 a 1, che aprilia visn sembra
8 n- . la ricorrenza
Tn T 9n/10 T n/10 n
Si ottiene l ultima ri a osservand o che la serie aritmetica La figura S.Z mostra ostituito a 8n. La t gura
,l p.2 . dove coinodith n stato
il tempo di esecuzione di quicksort. per
un alberodi ricorrenza uicks
i quic nel . per ha
perl esec tzionedi sort caso pe iore. . Si veda nel pura foc Si noti che ogni livello dcll albero
di ricorrenza ricorrenza.
8.4 mostra l albero per questa
. una presentazione degli alberi di ricorrenza . lo Il . e
. lllCllC
esecuzione8
es - rr - 8 .si verittcaquandol arra rray di i input
in ut gi ordinato una .situazione
, - lli FCJll l
ll11
triquente.e . si avrehbe se la suddivisl 1I1C fl SII CSBlt llllClltC
D lllCt l.
n n
8n
l On
9
o
log
zn n-1 /2 1 n-1 /2
I 9 9 81
100 op 00 I 00
log,o,e
/ K
/
/ b
Esercizi
Per sviluppare una nozione chiara del caso medio bisogna fare un
per quicksort, ipotesi su
quanto frequentemente ci si aspettadi elementi
incontrare i var t d . U ipotesi comune che di Qu cyson 8n 1gn se tutti gli
8.2-1 Mostrare che il tempo di esecuzione
tutte le permutazioni dei numeri in input siano equamente Si discuter
probabili. quest ipotesi A hanno lo stesso valore.
ne ell array
prossimo paragrafo , ma intanto si studieranno subito le sue implicazioni.
Quando si esegue guicksort su un array di input preso a caso, improbabile che il 8 n- se l array A contiene
che il tempo di esecuzione di QuicxsoRI
partizionamento avvera nello stesso 8.2-2 Mostrare
modo ad ogni livello, come stato ipotizzato Il decrescente.
dente elementi distinti ed ordinato in ordine
p atialisi informale. ragionevole aspettarsi che qualche suddivisione sia ben
i anciata e che non lo sia.
qualcuna Per esempio. l Esercizio 8.2-5 chiede di mostrare che ordine
circa l ord in cui sono
per cento delle volte P nrriorl le transazioni su un conto seguendo
produce una suddivisione bI t d 9 I 8.2-3 Le banche spesso registrano
pi il loro
e circa i cento ricevere
per delle volte una suddivisione che nel tempo, rna molte persone potrebbero preferire
prnduce meno bilanciata di 9 a l. state eseguite
Le ene di solito
Nel caso medio, buone - con li assegni ordinuti per numero. ars
PARTITION un misto di suddivisioni . estratto conto bancario .
produce. 1 con
a e i commercianti di solito li riscuotono
nn i ricorrenza dell esecuzione di scrivono assegni ordinati per numero
PARTITION nel caso medio, 1e suddivisioni gli
buone e a ta di transa-
cattive sono distribuite Il problema di convertire l ordinamento per
lungo lab ero in modo casuale. Si supponga ragionevole prontezze.
per semplicit che di
l suddivisionf
per
numero di assegno quindi un tipico p roblema
buone e cattive si alternino sui livelli zione in ordinamento per
dell albero e che le buone siano i casi SORT
*8.Z-5 Quieksort
Dimostrare che, per qualsiasi costante 0 a 112, la probabilit che P Rvmoi
produca, su un array di input a caso, una partizione pi bilanciata del rapporto aragrafo 8.2 che un misto di partizioni buone e cattive
1 a ad a di I produce un buon tempo di esecuzione
2a circa. Per valore ,
quale di n ugualmente il quicksort, e quindi
probabile che la per
pe si capisce c h e versioniioni r
randomizzate dell algoritmo dovrebbero
partizione risulti bi anciata
pi di l n ad a oppure meno comportarsi bene. i
Clt. I I II l l/.
155
Quicksorr
154 Capuolo 8
Il a o 8.
8.2 ffornisce spiegazioni intuitive sul comporta meno t d e 1 quic k sort nel caso
p arazrafo ao
e sul ci si aspetta che sia eseguito velocemente. In uesto ara rafo, del
peggiore perch Analisi partizionamento
rtamento in modo rigoroso. Si comincer con l analisi del caso
p pi PARTlTION C
-Q sull operazione PARTlTION. Quando
C che vale tanto QUICKSORT C11C A DOMIZED QUICKSORT,
RANDOMIZE e si concluder con con osservazione
peggiore per pCf Cominciamo qualche Ap gi stato
l elemento
caso medio di RAwDowzso-Qutct so . 3 della R oo ,tzEo-gvic soRt,
un analisi del chiamata nella linea procedura che
semplificare l analisi. si assuma
a caso in A p . r. Per
con un elemento scelto
scambiato ancora vero che il
tutti i numeri sono diversi,
siano diversi. Se non
tutti i numeri in input richiede
8.4.1 Analisi del caso peggiore 1gn , ma dimostrarlo
nel caso medio On
di esecuzione di quicksort
tempo
complicata di quella presentata qui.
8.2. s iv isto
si che il partizionamento ad ogni livello di ricorrenza di un analisi pi di
Nel p ara rafo peggiore
, da PeRmtow dipende solo dal rango
che il valore di q re tituito
quicksort produce un tempo di esecuzione 8 n- n-, c h, e, intuitivamente,
t il caso peggiore per r La prima osservazione
in un insieme il numero
.. r. Il rango di un numero
affermazione sar ora dimostrata. agli elementi in A p
il tempo di esecuzione dell algoritmo. Questa x Ap rispetto
di elementi in A p .. r
Sia n r p l il numero
minori o uguali ad esso.
Usando il metodo di sostituzione veda il paragrafo 4.1 , si u di elementi di l/n che
si
a caso in A p .. r vi una probabilit
-. con un elemento scelto
tempo nel caso deIla c ura scambiando Ap
esecuz on
esecuzione i quicksort
k O n- . Sia T n il peggiore procedura
i per i l. 2...., n.
SU un input di dimensione n. Si ha la ricorrenza rango .r
QvICKSORT Se rango r l, allora
dei vari risultati del partizionamento.
Calcoliamo ora le probabilith , l indice a
i si ferma
Tn max Tn q 8n, 8.1 while nelle linee 4-11 di PwRriv ot
Tq volta che si esegue il ciclo basso
la prima della
conseguenza. restituito q j. il lato
j si ferma
a j p. Di quando
l e n l perch la procedura PARTITION due regioni.
i p e l indice l in dato che questa
dove il parametro q varia tra produce
il solo elementn A p Ci accade con probabilit
contiene
con dimensione almeno 1. Si pu tentare la soluzione Tn cn- er partizione
ognuna l.
la probabilit che rango .v
.So. M do 11 ioni Ap. Di conseguenza. la
8.1 , di.x
2, allora vi almeno un elemento pi piccolo
Se rango v
i si ferma a i p ma l indice j si ferma prima
max cn 8n il ciclo svhile. indice
Tn cq- q volta che si esegue alto della
prima nel lato
fattn uno scambio con A pJ per metterlo
di raggiungere p. Viene quindi
nel lato basso della
c max 8n . dei rango v l elementi
q- n q- PARTlTION termina. ognuno
partizione. Quando n- 1, se rango .z 2.
i l, 2, ...,
strenaniente minore di s. Pernnto. per ciascun
L espressione ii nell intervallo l n 1 ra iunge un valore massimo in partizione i elementi l lu.
q- q -, della abbia
la probabilit che il lato basso partizione
ei ue estremi, cpme si puo verificare dal fatto che la derivata seconda dell es re rione 1 del lato
concludere che la dimensione q p
dei due casi si puo
rispetto a q positiva veda l. Esercizio 8.4-2 . Dalla combinazione l/n per
si i con probabilit
- - 1 con probabilit 2/n e che 1 dimensione
- n- 2n 1 .. basso della partizione
Da ci si ha il limite max q- i q - l- n 1 -
... .
i 2,...,n I.
Proseguendo con il confronto su Tn si ottiene
Tn cn- 2c n l 8n
il caso niedio
Una ricorrenza per
cn -,
I Raxoowizro-Qucxsow .
rande atteso di
perch si pu scegliere la c ostante
s c sufticientemente in modo o cch il tempo di esecuzione
stabilisce ora una ricorrenza per
Si Una chiamata
- di input di n elementi.
2c n-1 superiiltermine ine 8 n .n . P ertantoiltempodiesecuzionediquicksortnelcasopeg
rtanto il t a iore richiesto ordinare un array
Sia Tn il tempo medio per
tempo costante e quindi
solo elemento richiede
su un arra di un
a R oowizeo-QuicvsoRv . n di lunghezza
su un array Al
Una chianxata a R oowizco-Qtucvsow
i ha T l 81. indice
restituisce un
La Pwwm iotl
l airay. procedura
8.4 Analisi del caso medio n richiede tempo Qn per partizionarc e e n
sottoarray di lunghezza q.
ricorsivamente sui
chianuta
q. e R iDANII7ED-QulCKYiORT espresso come
lun hezza n puii essere
or Jin re un array di
Si gi data una spieoazione int t U7. il tempo medio per
.. 1 p il tem pO SC OA Di conseguente
15 Capitolo 8
Quicfcsort I57
-Tl Tn I O -
1
Rimane da provare il limite 8.5 sulla sommatoa
On,
n-I
e il termine On nell equazione 8.2 puo perci assorbire l espressione- T l Tn I . k Igk
Si pu quindi riscrivere la ricorrenza 8.2 come kl
Soluzione della ricorrenza Si puo determinare limite sulla sommatoria di videndola in due parti, come discusso
questo
nel paragrafo 3.2, ottenendo
Si pu risolvere la ricorrenza 8.4 usancto il metodo di sostituzione. Si assuma n-I fni- 1-1 n I
induttivamente
che Tn an 1gn b per certe costanti a 0 e b 0 ancora da stabilire. klgk klgk klgk .
Si possono scegliere g g
a e b sufficientemente in modo
grandi che an Ics b sia kl k Tn 21
pi grande di T l . Quindi n I.
si ha per
la sostituzione
Il 1gk nella prima sommatoria della parte destra superiormente limitato
imitato da l nln/2
1g
n-I I Pii l il Ig/- nella seconda sommatoria superiormente limitato da lps. Quindi si ha
Tn Tk 8n
kl n-l I n 1- t n-1
n-I tgk 1 k 1g i k
ic Ignei
g g
ak lg k b 8n Al /l k n/2
n
n-t nj 2 -t
2a lgngk k
2b g
n 1 8n . kl kl
t1 gklgk
n
-n n 1
1 lg n
-
Si mostrer tra un attimo che la sommatoria nell ultima riga essere limitata
pu da l l
n-I -n Ign -n
2 S
k lgk n Ign n.-
/I
8.5
se n 2. Con eio dimostrata la disuguaglianza 8.5 .
Usando questa limitazione, si ottiene
Esercizi
Tn 1g n n I
nr -n- s n n On
-
a 8.4-I Mostrare
o trarec che e iil e
tempo di esecuzioiv.
. del quicksort . nel caso mi io re Q ii lie i .
an 1g n -n
2b 8n
4
,
an Ign b - ,. 1,2....,n I quando
b h.4-2 Mostrare
os r,ree che eq-q n q - rug,,iun,,c
un valore m,.ts imo
,- perq
n ,r
anlgn b
4 do if A j .s-
e quindi usare il metodo di approssimazione con di QUtcwsoRv, tutti i valori di input sono
integrali per fornire una mag- d. Come influenzato il tempo di esecuzione quando
della sommatoria k 1g k che sia stretta della uguali, se si sostituisce P Rt,tto con Lowum-P Rv,vto .
giorazione g pi 8.5 .
ION che scambia Ar con un elemen-
e. Definire una procedura RANDON11ZED-Lo uso-PARTll
la Lo uro-PwRvmow Mostrare che la
to scelto a caso in Ap .. r e quindi chiama
8.4-6 Prendere in considerazione una modifica alla PARvmoi che scelga in
procedura
che un dato valore sia restituito dalla RAxoow zEo-LoMvwo-P Rvhtoi
modo casuale tre elementi nell array A ed probabilit q
esegua il partizionamento rispeno al
r restituito dalla Rw DowizED-PwRtntoi.
mediano fra i tre valori. Approssimare
uguale alla probabilit che il valore p q sia
con una funzione di a la probabilit di
ottenere, nel caso peggiore, una suddivisione di n ad 1 a con 0 a 1.
Svooaa-Son A, i, j
8-1 Correttezza della Pwsrsrsov
procedura
1 if A i A j
Dimostrare formalmente che la procedura P Rtmow del 8.1 corretta. Dimostrare
paragrafo t
2 then scambia Ai Aj
i seguenti punti
a. Gli indici i e j non 3 ifi 1 j
si riferiscono mai a un elemento di A fuori dall interi allo .. r.
p
4 then return
b. L indice j diverso da r quando PaRvmow termina la suddivisione non mai
cio banale .
i 1 13 t Suddivisione in tre parti.
k L j
e. Ogni elemento di A p. minore o uguale ad ogni elemento di A j 1 ..
j r quando c ordinano i primi due terzi dell zrray.
6 STOOGE-SQRT A, i, j k Si
PARTITION termina.
t Si ordinano ultimi due terzi dell array.
7 Svoocr -Son A, i k. j gli
LostUTO-PwRTtTlN A. r con
p. esecuzi ne cle caso ili Stonrr.-Sn t quello
c. Contentare il tempo di pez ,iore
.
1 ICl
1 .v - A r , , , ,. ,, .
C,
3 for j to r
p
Qui ksorr Ml
.IO- Capitolo 8
buona
c. Se si definisce come suddivisione lo scegliere x A i J, con h/3 i 2n13, di
8-4 Profondit della pila per il quicksort
cresce la probabilit di avere una buona suddivisione rispetto alla realizzazione
quanto
L algoritmo QVICKSORT nel paragrafo 8.1 contiene due chiamate ricorsive a se stesso. Dopo usuale dell algoritmo si approssimi la somma con un integrale .
Suggerimehro
la chiamata a PwRm os, sono ordinati ricorsivamente prima il sottoarray di sinistra, e poi
d. Dedurre che il metodo mediano-fra-ve influenza solo il fattore costante del tempo Q itlgn i
quello di destra. La seconda chiamata ricorsiva nella procedura QulcxsoRT in realt non
di quicksort.
necessaria pu essere evitata usando una struttura di controllo iterativa. Questa tecnica
fornita da buoni compilatori in modo automatico. Si consideri la seguente versione di
Qvte soRv A, p, r
La fu da Hoare 98 . Sedgewick 174j fornisce una buona
procedura quicksort proposta
1 whilep r
trattazione dei dettagli di realizzazione dell algoritmo e della loro importanza. I vantagp
2 do t Partiziona e ordina il sottoarray di sinistra degli algoritmi randomizzati furono evidenziati da Rabin 165 .
3 q m PARTITION A, p, r
4 A,
QUICKSORT , q
5 pmq l
I compilatori di solito eseguono procedure ricorsive usando una pila che contiene le
informazioni relative ad ogni chiamata ricorsiva, inclusi i valori dei Le informa-
parametri.
zioni sulla chiamata pi recente sono sulla cima della mentre della chiamata
pila quelle
iniziale sono in fondo. Quando una procedura chiamata, le sue informazioni vengono
inserite sulla pila, quando questa termina te sue informazioni vengono estratte. Poich si
assume che di fatto i parametri relativi all array siano rappresentati da le informa-
puntatori,
zioni per ogni chiamata di procedura richiedono spazio 01 nella La profondit della
pila.
pila la massima quantit di spazio usato nella pila in qualunque monumento dell esecuzione.
si assume che gli elementi dell array di input A1 .. n siano distinti ed n 3. Sia A l . ii
l array di output ordinato. Usando il metodo mediano-fra-tre scegliere l elemento
per pernn
x, dehnire Pr x A i .
p
4
Ordinamento in tempo lineare
merge sort e lo heapsort raggiungono limite superiore nel caso peggiore il quicksort
questo
lo raggiunge in media. Inoltre, ognuno di questi algoritmi, si puo produrre una sequenza
per
di a numeri di input in modo che l algoritmo venga eseguito in tempo Qn Ipso .
ordihan ento
algoritmi condividono un interessante I che determinano
Questi proprieth
basato solo sui confi ohti rra elententi di input. algoritmi di ordinamento sono chiamati
Questi
cortfronti. Tutti algoritmi di ordinamento finora sono ordi-
ordinamenti per gli presentati
namenti per confronti.
9.3 e 9.4 esaminano tre algoritmi di ordinamento- counting sort, radix sort
I paragrafi 9.2.
e bucket sort che vengono eseguiti in tempo lineare. k superfluo dire che questi algoritmi
siano distinti. Data ipotesi, i ionfrnnti della forma a a sono inutili, e cosi si pu
questa
che i confronti a a,, a, a, a, a e a a,
f
assumere che non vengano fatti. Si noti iisoltre
sono tutti equivalenti. nel senso che forniscuno la ste sa informazione sull ordinainento
n 2,
s
1,3,2 3, I p 2.3,1 g.2,1 la funzione 1g monotona crescente. Dall approssimazione di Stirling 2.11 , si ha
poich
P J-5 Provare
o are che sono 7 S
necessari 2 1 confronti eseguire, l 2 3 4 5
per nel caso peggiore, la I 2 3 4 5 6 7 8
c224v l 2 3 4 5 6
2 3 4 5 6
9.1-6 Sia data una sequenza di n elemnti da ordinare, costituita di ii/k 2 2 4 6 7 8
sottosequenze, C 2 0 2 3 0 1
ognuna contenente I elementi. Gli elementi in una data sottosequenza sono tutti pi
piccoli degli elementi della sottosequenza b c
successi va e pi mandi degli elementi della a
precedente. Cos , per ordinare l intera sequenza di lunghezza n necessario soltanto
ordinare i k elementi di ognuna delle 1 2 3 4 5 6 7 8
all- sottosequenze. Mostrare che Qn Igl 1 2 3 4 5 6 7 8
un
limite inferiore sul numero di confronti ,
necessari a risolvere variante B l 4 4
12345
questa del
problema di ordinamento. Suggeri sento non rigoroso combinare semplicemente 3 4 $ 4i6
i limiti inferiori 1 2 3 4 5 6 1 2 3 4 5
delle singole sottosequenze.
C l 2 4 6 7..8 C 1 2 4 5 7 8
d
9.2 Counting sort
A l...., 8, dove ogni elelnentr di A
FlgU1Q 9 2 L SCCll f0l18 Cll COUNT15G SORT Sl il11 OPIMI di input
r -, - - o alinenh.ibl
Cd
u
Il coueting sort si basa sull ipotesi che ognuno degli n elementi di input sia un intero
nell intervallo da l a k, per
qualche intero I. Quando k O n ,1 ordinamento viene eseguito
in tempo On. riempiti. f L array di ourpirr 8 ordinai.
finale
3 for j c 1 to length A
si ha I On, nel caso il tenspo di
In pratica. si usa di solito il counting sort quando qual
4 do C Afj J C A jjj l
esecuzione On,
5 t C ij contiene ora il numero di el-menti uguali a i. 9.1 non
Il counting sort abbatte il limite inferiore Qin 1 n dimostrato nel paragrafo perch
6 fori e to/
7 do Ci m Ci Ci l
Il CA m CjA jj
fj J J I
Il countin sort illustrato nella ligure 9.2. Dopo l inizializzazinne nelle linee I- . si
diitabilitnel
Si ve lrir l importanza della d .
i si
insieme con li clcmcnti sta ordinare. . pr priith
t l
92-2 Dimostrare che Cova tea-So stabile.
esecu ione colonna l input.
Figura 9.3 L di radix.sorr s una lista di serre numeri di 3 cifre. La prima
mostrano la lista dopo,cn ordi ,amenro su cifre via via piii significative. Le frecce
Leoaltre colonne
ordinameivo
92-3 Si supponga della cifra su cui stata I prochrrre la lista dalla
che la linea 9 del ciclo for della Covmmc-SoRv sia riscritta verticali indicano la posi ione farro per
procedura
come precedente.
9 for j 1 to lengrh AJ
2 e cosi via. l intero blocco ordinato di nuovo sulla seconda cifra meno significativa
Quindi
92-4 Si supponga che l output dell algoritmo di ordinamento sia un flusso di dati su uno allo modo. 11 processo continua finch le schede sono state ordinate per
e ricombinato stesso
schermo grafico. Modificare COUNTING-SORT l output
per produrre ordinato senza tutte le d cifre a quel le schede sono completamente ordinate. Quindi per l ordinamen-
punto,
usare sostanzialmente memoria addizionale oltre ad A e C. su
Suggerimento colle- to sono richieste solo d passate del blocco. La figura 9.3 mostra come opera il radix sort
gare gli elementi di A con la stessa chiave in liste concatenate. Dov un
-libero posto un blocco di sette numeri di 3 cifre.
per tenere i puntatori agli elementi della lista
La cosa essenziale in quest algoritmo che l ordine ddle cifre rimanga stabile. L ordina-
l
i
in tempo lineare 171
170 Capitolo 9 Ordinamenro
o .68 g 941
Esercizi a b
A1 .. 10 . L arra B0 .. 9 di liste
9A Lesecu ione di BuckEv-So . a L cirro in input b
Figura
93-1 Usando come modello la figura 9.3, illustrare 1 operazione di R oix-SORv sulla
seguente lista di parole inglesi COW, DOG, SEA, RUG, ROW, MOB, BOX, TAR,
B 1 ..... B9.
BAR, EAR. TAR, DIG, BIG, TEA, NOW, FOX.
2 fori I ton
99-4 Mostrare come ordinare interi nell intervallo da l a rr
presi in tempo On.
3 do inserisci Ai nella lista B LnA i J
4 fori Oton- l
93-5 Nel algoritmo di ordinamento delle schede
primo presentato in questo paragnfo,
do ordina la lista 8i con l insertion sort
sono ncessari ordinare numeri 5
quanti pmsi per di d cifre decimali nel caso
80. 81 ..., Bn l j ih quest ordine
peggiore Di quanti pacchi di schede dovrebbe tenere traccia un operatore nel caso 6 concatena insieme le liste j,
peggiore
sort su un array di input di 10 numeri.
La figura 9.4 mostra l operazione di buchet
Il bucket sor impiega in media un tempo lineare. Come il counting sort, il bucket sort veloce
n.a i
n.d j J
2-- di foglie in e i i
Pl decisione T con k fon lie che raggiunge il minimo. Sia i il numero
81 . numero di foglie in RT.
I i / 1. la funzione i gi
Usando d. Provare che un dato valore di I- l e i nell intervallo
questo limite nell equazione si conclude per
9.1 , che il tempo atteso l ordinamento 1gl .
per i Ig k i mininsiztata i k/2. Concludere che dl Ql
con l insertion sort Oy. Cosi / per
complessivamente l algoritmo bucket sort impiega tempo n
lineare e concludere che il tempo atteso per ordinare
nel caso medio. e. Provare che. per T, D T, Q n 1g n
elementi Qn lp .
Note al capitolo
maggio interesse teorico che raggiunge un empo di esecuzinne Oi nel caio peggiore.
in ut insiClllc di n elementi . Si
confronti sono necessari deteimirnre il minimo
Quanti per
l confronti si esamina n,.ni elemento
facilmente ottenere un limite superior,- ugu,le a n
puo
A1
AI N I 1l A
i niin tl 1 /
2 fnr i m 2 t I rtglhJr
Mediano e sele-ione 177
3 do if min A J
10.2 Selezione con tempo medio lineare
4 then min m Ai
n 1 confronti determinare il minimo, e l algoritmo Mtwwuw ottimo rispetto al numero di O n Ign , il tempo medio di R oownzEo-SEt.Ecr Bn.
per
di confronti eseguiti. usa ta procedura Ib oowzao-PAn irto introdotta nel S.- .
RANDOMIZED-SELECT paragrafo
come RANDOMIZED-QUICKSORT, un algoritmo randamizzato, il suo compr-
Un interessante raffinamento dell analisi la valutazione del numero medio di volte che la Quindi, poich
tamenta determinato in dall output di un di numeri casuali. Il e iei
linea 4 viene eseguita. Il Problema 6-2 richiede di mostrare che questo numero medio parte generatore
restituisce l i-esimo elemento dell array Al .. 1-
8 lgn . codice per RANDOlvllZED-SELECT pi piccolo
RANDOMlZED-SELECT A. p, I, i
1Vlinimo e massimo simultanei
l ifp r
In atcune applicazioni, bisogna trovare sia il minimo che il massimo in un insieme di i 2 then return Ap
elementi. Per esempia, un programma grafico pu aver bisogno di rappresentare in scala un 3 RANDOMlZED-PARTITlDN A, t
q- p,
insieme di dati x, y da inserire all interno di uno schermo rettangolare o di altri dispositivi
4 k q-p l
grafici di output. Per far ci il programma deve prima determinare il minimo e il massimo di
5 ifi k
ogni coordinata.
Non troppo difficile ideare un algoritmo che trovare sia il minimo che il massimo
6 then return R oowzeo-SEceer A, p, q, i
possa
di n elementi usando un numero di confrnnti Qn asintoticamente ottimale. Basta semplice- 7 else return R xoos izeo-SeLzcv A, q 1, r, i k
che Tn sia monotona crescente, nel caso Ib xteMtzeo-SFt.Ecr sempre sfortnata Esercizi
peggiore
nel senso che l i-esimo elemento deve essere determinato sul lato della
pi grande partizione.
Cosi si ha 1a ricorrenza
10.2-1 Scrivere una versione iterativa di RwwDowtzco-Szwcr.
n-t
Tn T msx l,n-l T max k,n-k On
10.2-2 Si supponga di usare R xoowttzEo-Sat.Ecr per selezionare l elemento minino
kl
dell array A 3, 2, 9, 0, 7, 5, 4, 8, 6, l. Descrivere una sequenza di partizioni che
n-l
provachi una prestazione come quella del caso peggiore delI algoritmo.
Tjn l 2 Tk y 0 ll
g
k n/2
n-I 10.2-3 Si ricorda che, in presenza di elementi uguali, la procedura R r oowizEo-P Rmto
se k n/2 ,
max p,n gc fk
n k se k f n/2 .
10.3 Selezione in tempo lineare nel caso peggiore
Se n dispari, ogni termine Tl n/2 I, Tl n/2 I 1 ...., Tn 1 compare due i olte nell
sommatoria, mentre se i pari, ogni termine Tl n/2 1, Tl n/2 I 2 ,, T -1 compare
due volte e il termine Si esaminer ora un algoritmo di selezione il cui tempo di esecuzione 0n nel caso peggiore.
Tl n/21 compare una volta. In entrambi i casi, la sommatoria dell
riga limitata Come R oo iIZED-SELECT, l algoritmo Sa.Ect trova l elemento desiderato tramite p tr-
prima superiormente dalla sommatoria della seconda. La terza riga segue dalla
seconda tizionamenti ricorsivi dell array di input. L idea di base dell algoritmo. pero, di garanrir
poich nel caso peggiore T si I O n- , e cosi il termine Ti 1 essere
l/n pu
assorbito dal termine una buona suddivisione quando l array viene pmizionato. Sa Ecr usa l algoritmo di p r-
On.
tizionamento deterministico PwRTittow del quicl sort si veda il paragrafo 8.1 , modificato in
Si risolve la ricorrenza per sostituzione. Si assuma che Tn cn per costante c che
qualche modo da come di input l elemento attorno al quaIe
soddisfi le condizioni prendere parametro perno partizion c.
iniziali della ricorrenza. Usando l ipotesi induttiva, si ha
L algoritmo SEiecT determina l i-esimo elemento pi piccolo di un array di input di
-,, ,. - , I 1 I- 1 , ... 4. Partiziona l array di input attorno al mediano dei mediani. usando una versione nsodificau
di PwRTITION. Sia l il numero di elementi sul lato basso della partiziane, cosi che ii Asia
cn l 1 Qn
- il numero di elementi sul lato alto.
Cosi l i-esimo elemento di un insieme, 3 etementi piii grandi di r, eccettn quei gruppo che hws eno di 5 elementi si n non divisibili
per qualsiasi i. e in particolare il medi ino. poscon
essere determinati in tempo lineare nel caso medio. per 5. e quel gruppo contenente.r stessn. Detraendo questi due gruppi. segue che il ilUtllCI O
di e cernenti piii graiidi di s i almeno
I 3II
j I.
e selezione 181
Mediano
180 Capitolo iO
Esercizi
in tempo On lpi
fare in modo che ilquicksort sia eseguito
10.3-3 Mostrare come impossibile
Figura 10.1 Analisi dell algorinno SEt.ecr. Gli n elementi sono ra resen nel caso peggiore.
n o n co onn. .Il me d iano d io g ni g ru pp ob bianco e il mediano dei mediani ericherraui ari
pii picco
on.x. recce i anno ddagli elementi ai ii iccoli i da aciosipuvedereche3dei5ele
ci nei ri
pi grandi
trovare l i-esimo elemento pi
a a esrra ixsonoma che un algoritmo usi solo confronti per
gg ioridixe3d . 3 dei 5 eleinenri di ogni gruppo alla si tisrra di.v
i v 103-4 Si supponga li
che si trovare anche
minori i.v. i elemenri di x sono su un fondo grigio. in un insieme di n elementi. Mostrare possono
piccolo nessun
senza eseguire
e gli n i elementi pi grandi
i 1 elementi pi piccoli
u teriore confronto.
Analoeamente, i n umero di elementi minori di x almeno 3nl10 6. Perci. nel caso
-P 81
T n/51 ln/10 6 On
se
se
n
n i
80,
pp.
differenza .
di un insieme.
Fornire un algoritmo con tempo On 1gk per elencare i k-esimi quantili
orche
poich ssi pu
uo scegliere
sci e sufficientemente rande in modo cb e c n /10-7 sia ma della a
fiore
che sta
funzione descritta dal termine On ani n una compagnia petrolifera.
per 80. Il tem po di esecuzinne di Stitica nel caso 10.3-9 Il Benzolo consulente presso
professor di
attraverso un campo
quindi lineare. che va da est a ovest
peggiore un grosso
oleodotto
progettando
deve essere connesso
un condotto laterale
Come negli
neroli ordinamenti
ordi con n Da ogni pozzn,
per confronti si veda il parao ra f o 9.1., , S ELECT e R sDowizt n- petrolio pozzi.
o sud . conse
or , breve o nord
lungo il cumntino pi
SELECT determinano le informazioni sull ordine ine re I ativo tra elementi solo attraverso . cnnfron-r t - direttamente al condotto principale
, dei coine si dovrebbe
D te le coordinate.v e y pozzi.
tti.. Perci,
er il comportamento lineare non risulta u a daa ipotesi
i sull input, nel c ii mostrato bella tigura l0. 2.
come accade minimizza la
quelto che
eegli algoritmi - ottimale clel condntto princip le
di ordinamento del Capitolo 9. . L or d inamento richiede tem o On leiii ne
nel scegliere il luogo
luo o ottimale essere
Miistr tre che il pu
modello che opera tot ile dei conctntli Inter ili
per confronti. anche in media s d a il Prnblcma 9-1 . c perci il nictocl . ln.hexza
-. ten po lineare.
presentatonell introduzionediquestocapitolo,che r d determinato in
.c c
e
e cimento, asintoticamente inetficiente.
e ne l83
10.3.
definito come wp- -. S o P
Il problema della co11oca -ione dell uffieio postale
desidera covare m punto p non
associati Si
p con pesi
1j lV
p,, p ..., p. oe
che minimizzi la somma p, .
necessariamente uno di in input
quelli
dell uf io a 2 dimensio-
il problema della collocazione po. td
e. Trovare la soluzione per
tra i punti a x y, e
le coppie di coordinate x, y e la distanza
ni, in cui i punti sono
c - o x
Fieura
ge 10,2.2
. Si vuole determinare la . e e oleodotroeo
dell otro - la distan a Manhattaii d a, b x, 1
posi-ione eesr-ovest che minimi i la hmghe-.a .c b y,
Un n 0 T Zn/k 1.
d. Mostrare che se i 13- per / 2, allora
10-2 Mediano
pesato
Per n elementi distinti x, x...., x c on pesi v, w, ..., v tali che
positivi
il mediano l elemento
pesato x ch dd isfa le seguenti disuguaglianze
Note al capitolo
W,.
da Blum,
2 l. algnritnao trovare il mediano in ten po lineare nel caso peg
iarda fu progettato
per
e migliore che
tempo medio anche
sviluppato uria versione con
Floyd e Rive t f70j hanno
un campione degli
w ricoriivan ente da piccolo
g a orno a un elemento selezinnato
A., .tl
p rtiziona
elementi.
Introduzione
Strutture di dati
i matematici. Mentre gli
informatici lo sono per
Gli insiemi sono fondamentali per gli quanto
algoriuni nel
insiemi manipolati dagli possono,
insiemi matematici sono immutabili, gli
saranno chiamati dinamici.
in altri modi. Tali insiemi
tempo. crescere, contrarsi o cambiare
rappresentare e manipolare
alcune tecniche di base per
I prossimi cinque capitoli presentano
sul calcolatore insiemi dinamici finiti.
da ese uire sugli insiemi.
richiedere alcuni diversi tipi di operazioni
Gli algoritmi possono
di in iiie e cancel/are
molti algoritmi necessitano solo della possibili
Per esempio.
dinamico che offre queste
a un insieme. Un insieme
elementi e verificare l apparreneii -a
operazioni pi complicate.
un di ionario. Altri algnritmi richiedono
operazioni chiamato
della struttura di dati
introdotte nel Capitoln 7 nel contesto
Per esempio, le code con priorit,
e di estrazione del pi piccolo
di inserzinne di un elemento
heap, otfrono le operazioni
dinamico dipende
modo di realizzare un insieme
elemento. chiaro quindi che il miglior
upprescntato da un
un dinamico. ogni elemento
In una tipica realizzazione di insieme
all oggetto.
esaminati e manipolati se si hu un puntatore
oggetto i cui campi possono essere
in ambienti di programmazione
la realizzazione di a getti e puntatori
Il Capitnlo l I discute
assumono che uno
Alcuni insiemi dinamici
che non l i contengono come tipi di dato primitivi,
sono tutte diverse,
che lo identifica. Se le chiavi
dei campi dell oggetto sia un campo chiave
di valori c tiare. L oggetto pu
agli insiemi di amici come a un insieme
si pu pensare utilizzati in
mi non sono
che occupano altri campi del oggetro
contenere dati satetlite,
l avere anche campi che sono manipolati
modo nell s realizzazione del insieme pun
nessun altri oggetti
dati o puntatori ad
su insiemi campi contenere
dalle operazioni questi posarono
nell insienle.
altra imponante
saranno usate
struttura-Inheap
in seguito
per costruire
c stata
al oritmi i
Capitolo 7. presentata nel
j
in que1 contesero.
- Strutture di dati fondamentali
-i erso semplici
In questo capitolo si esaminer la rappresentazione di insiemi dinamo.
Pile c code sono insiemi dinamici in cui l elemento rimosso dall in i . un l operazione
Pile
l e 5 re pj5j
Quando
l elemento
rn S O, la pila
in cima.
C. il
l. Oll l Illl Ll v CCUpPE
supera n. la pila va in r verflow. Nella rc ili//, I/li lll. f 1CUCkl ldl
J
190 Capitolo 11 Strutture di dati 191
fondamentali
I 2 3 4 5 6 7 11
1 2 3 4 5 6 7 1 2 3 4 5 6 6 7 8 9 10
S 15 6 2 9 17 3 S 15 6 2 9 17 a 156984
k
4
t t
rop SJ 4 top S 6 7 12
top SJ 5 head Q rai Q
0 c 12
j 2 3 4 5 6 7 8 9 10 11
-- - -15
Figura l l. 1 La reali- a ione di ma pila S con un array. Gli elementi della appaiono solo nelle b Q 3 5 6 9 8 4 17
pila
posi-ioidi grigie chiare. a La pila 5 Ira 4 elementi. L elenrenro in cima 9. La S dopo
chiamate PUSH 5, 17 e PUS S, 3. c La pila S dpo la chia nata POP S ha
b
restituito
pila
l elemedto
le
3. .t t
che quello inserito arrm. tail Q 3 head Q 7
pi ic recentemente. Sebbene l elemento 3 appaia ancora eli esso non y iir
ne1la piln I elemento in cima il 17.
1 2 3 4 5 6 7 8 9 10 11 12
t
STACK-EMPTY S tail Q 3 Aead Q 8
l if rop S 0
coda co r ,r arra .. 12 . G1i eleme,r i della co,fa a p ... ,
Figura 11.2 Lc, reali a ione di w,a Q1
then return TRUE
1 rop SJ m rop SJ l
3 then tnil gj I
Es vr t e Dry vi i .. 0 ti operazi o
l ligtrr l l.2 m iilru li eflelti cl Ile operazioni
inserito nelle coda. Gli elementi clelia en la sono alle locazioni lienrl g . richiede n tempo 01.
lu ir/ g I..... rriii
Strunure di dati 193
Capcmlo 11 fondamenta1i
head L l 9 16 4
a
11.1.-1 Usando la figura 11.1 come modello, illustrare il risultato di ognuna delle seguenti
operazioni Pusa S,4 , Pusw 5, I, Pus S,3 , Por S , Pus S,8 e Por S .
16 4
vuota memorizzata nell array S1 .. 6. b head L / 25
applicate gd una pila S inizialmente
9 16 l /
un array A .. n j in modo tale che nessuna c hed L l 25
ILI-2 Spiegare come realizzare due pile con 1
di esse vada in overflow a meno che il numero complessivo di elementi sia n. Le
l insieme dinamico l. 4. 9. l 6. Ogni
operazioni di Por e Pvsv dovrebbero richiedere tempo 01. Figura 1 1.3 a Una lista L bidire ioz2ale che ruppresertra
11.1-4 Riscrivere ENQUEUE e DEQUEUE per controllare l overflow e l underflow di una della lista. Un attributo l ead L
mento x non ha successore ed quindi l ultimo elemento, o coda,
COI .
al primo elemento della lista. Se head Lj wL la lista vuota.
punta
diverse forme. Pu essere concatenata semplice o bidirezionale. puo
Una lista pu avere
11.1-5 Mentre una consente l inserzione e la cancellazione di elementi da una sola Se una lista concatenata sentplice. si omette
pila essere o nn ordinata. pu essere o no circolare.
e una coda consente l inserzione ad un estremo e la cance11azione dall altro. ordiitata. l ordine lineare della lista
parte il di ogni elementn. Se una lista
puntatore peci
una deque doppia coda l*inserzione e la cancellazione da entrambi chiavi memorizzate negli elementi della lista l elemento
permette gli corrisponde all ordine lineare delle
estremi. Scrivere quattro procedure con tempo 01 per inserire e cancellare
minimo la testa della lista mentre il massimo la coda. Se la lista non ordinai gli elementi
eIementi da entrambi estremi di una deque realizzata con un array. lista cireokrre, il puntatore della testa della
gli apparire in qualsiasi ordine. In una prei
possono
delIa lista alla testa. La lista puo cosi
lista alla coda e il puntatore yen della coda punta
punta
resto di questo si assumer che le liste
essere vista come un anello di elementi. Nel paragrafo,
11.1-6 Mostrare come realizzare una coda usando due pile. Analizzare il teiapo di
concatenate con cui si lavora siano non ordinate e bidirezionali.
esecuzione ddle operazioni della coda.
1E./-7 Mostrare come realizzare una usando due code. Analizzare il tempo di Ricerca in una lista concatenata
pila
esecuzione delle operazioni della piIa.
con chiave k nella lista L con una
La Lisv-Se Rcv L, k trova il primo elemento
procedura
all elemento. Se nessun aggetto con chiave
semplice ricerco lineare, resti tuendu il puntatore
nella figura 11.3 a , la
11.2 Liste concatenate k appare nella list . allora viene restituito wc. Per la lista concatenata
l x hciad L
insiemi dinamici, offrendo tutte le operazioni gi elencate per insiemi dinamici, anche se
gli
2 while.v c zii e I ey x w k
non necessariamente nel modo pi efficiente.
3 ElO.V IfdXll Cl
Come mostrato nella figura 11.3 ogni elemento di una lista concatenata doppia o listn
4 lCtlll ll .V
ni L
Dato un elemento x il cui campo chiave sia stato inizializzato, la procedura L st-IssERt
gi
inserisce x all inizio della lista concatenata, come mostrato nella figura 11.3 b . b nlL
9
LIST-IYSERT L, x
25 4
1 next x m head L nil L
2 if head L wL
3 then m x 25 9
prev head L nlL
4 head L x
se catinella s il L sci ra la connn e lista
Figura 11.4 Una lista concatenata L cfr usa una grigia
5 previ istL In testa e la cda. L nttriburo head L
richiusa in modo circolare con nil L disposto tra
b/dire atonale
L1ST-INSERT L, X
4 itest itil L c .r
LlST DELETE L, X
5 .v m il Ll
1 nen prei m ne.ir s pre
f. 11
2 nsostra effetti di LisT-Ir si.et e Lidi -Dru tr. u una ietta campione.
pre Aexl s J / rei .s La figura 11.4 gli
Uosa sentinella un oggetto fittizio che consente di semplit icarc la gestione dei casi limite.
codice. 1n si sostituisce con un riferimcntn alla sentineil ni/ L . Come moitr ti nell i ligur t
di dati 197
Strutture fondamentali
196 Capitolo Il
1I.2-4 , multipli
Re e alizzare le operazioni Issai, DEi.Ete e SEARCH d ei d izionari usando liste circolari di oggetti con array
Rappresentazione
concatenate semplici. Quali soi1o i tempi di esecuzione delle procedure
stessi campi usando un array per
un insieme di oggetti che abbiano gli
Si pu rappresentare
si pu realizzare la lista concatenata
11.2- L operazione UNlON esempio, la figura 1I.5 mostra come
SU insiemi dinamici prende come input d d ogni campo. Per
i valori delle chiavi attualmente
e S,e restituisce con tre array. L array l ey contiene
,
un insieme S 5, u S, consistente di tutti gli elementi di 5, e di della figura l l. a
ne.vt e prev. Dato un indice
sono memorizzati negli array
i insiemi S, e S, sono di solito distrutti dall operazione. Mostrare come fornire nell insieme dinamico, i puntatori
della lista concatenata. Secondo questa
Usto con terppo 01 usando una struttura di dati next x e prev .r rappresentano un oggetto
a lista adeguata. x, key x , .
agli array key, ne t e prei
x semplicemente un indice comune
interpretazione. un puntatore
chiave 16 nell lista con-
con chiave 4 segue l oggetto con
II.2-6 Scrivere una Nella figura 11.3 a . l oggetto
procedura che fonda due liste concatenate semplici ordinate in una in k
in l ey 2 , e la chiave 16 compare f .
. Nella figura 11.5, la chiave 4 compare
singo a ista concatenata semplice ordinata senza usare sentinelle. P catenata. coda
vr . compaia nel campo ne.vr della
2 e prev 2 5. Sebbene la costante
e ura ana oga usando una sentinella con chiave marcare la fine di ogni cosi si ha ne t 5
per 1 che sicuramente non possa
di solito si usa un intero come 0 o-
lista. e nel campo della testa,
Confrontare Ie due procedure riguardo alla semplicit del codice. prev L della testa
variabile L contiene l indice
un indice corrente nell array. Una
rappresentare
della lista.
Il.2-7 Dar eunaproceduranonricorsivaconte O h e inverta una lista concatenata sia l accesso ad un
le parentesi per denotare
Nello bonn state usate quadre
semplice di n elementi. La pseudocodice. i casi.
p roc edura
d dovrebbe usare .
solo una quantit s an
costante e di i
di unranspo attributo di un n spetto. In entrambi
array tramite indice che la selezione
memoria oltre necessaria la lista stessa. viene attribuito anche nei
quella per quello che di solito
il significato di key r , irevt x e prei v
l 2 3 4 l 2 3 4 5 6 7 8
5 6 7 8 9 10 ll 12 13 14 l5 l l7 18 19 20 2i 22 3 2
pee pee
l, L
A
key
key
prev
pt8V
ne.rr
Figura I 1.6 La lista concatenata de1le figure 11.3 a e 11.5 rappreseittnta con r arra singolo A
Ogni eleinen1o di lista un oggetto l 2 4 5 6 7 8
che occrrpa un sortoarray contiguo arra .
di lunghe a 3 dentro l
I tre campi I ey, nevt e pee
prev corrispond io rispetrivamenre ag1i spostamenri 0, l e 2. Un
un oggetto pu ttarore a
l i rdice del elemenro
primo de11 aggerro. Gli oggetri corrtenenti L
elementi delfa lisrn sono
grigi chiari e le frecce mostrano la successione degli elementi della lista. key
prev
Si pu usare la stessa strategia
per realizzare oggetti in ambienti di programmazione che non
forniscono esplicitamente tipi di dato
puntatore. Per esempio la figura ,, z ,. La lisw fia ,
11.6 mostra come un p pgpp-QgJE . a
singolo igura .
array A possa essere usato ,
per memorizzare la lista concatenata delle g gi.qqqe rnostraitv a
figure 11.3
e 11.5. Un oggetto occupa un sottoarray contiguo Aj .. k.
,
Ogni campo dell oggetto isra i era.
corrisponde a uno spostamento nel l intervallo f fg$ nresta e P
tra 0 e l I indice lega, DA
j j il puntatore al l aggeno. ,.- . ,.
Nella figura 11.6. spostamenti o g qq / esecu
gli corrispondenti a ley, nevr eprev sono
cn rerru
rispettivamente 0. .. e /e, lista liber
1 e 2. Per 5 g/venM IQ q
leggere il valore di prev i . dato il puntatote
g gggppt
i, si aggiunge al valore i del
lo spostamento puntatore
2, leggendo Ai 2j .
quindi
La rappresentazione a iin una variabile globa f e ie . quando l ins etne
con un singolo lista. La testa della lista libera mantenu
mantenuta
array flessibile nel seiiso che permette di memorizzare vuoto. ., a i
nello stesso array oggetti o 1, a lista concatenata L non
di lunghezza diversa. Il QpPS,
problema di gestire un tale insieme 0
eterogeneo come mostrato nella tigura ..7 i no
di oggetti pi difficile del con la lista L,
problema di gestire un insieme omogeneo. dove tutti i era. m
gli oggetti hanno stessi campi. o nella lista L o nelIa lista
gli Poich molte delle strutture di dati che saranno considerate
sono composte di elementi omogenei, oggetto allocatoque o i era
sar sufficiente usare la rappresentazione M B. S.M
rossimo -,
di oggetti con 1
array multipli. 1. BQ i v, ,
a varia i e g b free n
e liberare oggetti. Si supponga che
rocedure per allocare
Si supponga l ne.vr r m fi ee
che gli array nelia rappresentazione con array multipli ubbiano lunghezza n
e che in M X
qualche istante l insieme dinamico contenga n m elementi.
2 f lYC .l-
Allora ii oggetti
rappresentano elementi attualmente
gli neII insieme dinamico, e i riunenti ai ir o getti .
sono liberi - liber i i
gli oggetti liberi essere i ,li A o,, ,etti .
ni tl,.l1locati. Q,.
Quando
Ii liita
possonn usati per rappresentare elementi v. tutli
tu
da inserire in
futuro nell insieme dinamicn. d., r . i. l o.
I un e
-.. . -.
Si nuntengono oggetti -il are.e.. L..i fieur, I I.R
l.S mi u
g1i liberi in u singola lista I1 l1. Cl Svl Vlle
ersi diverse liitc oncatcna
concatenat i, che si chiama listn libern.
La lista libera usa iolo l array l. Il X C
next che memorizza lista llbCl.l illterc llltlcsse tlc li liTay
il uccciiivo all interno
puntai re dcll i
200 Capitolo 11 Stature di dati fondamentali
201
pie g l 2 3 4 5 6 7 8 9 10
Alberi binari
Esercizi
i puntatori
mostrato nella figura 11.9, si usano i campi p, left g p er memorizzare
11.3-1 Come
Disegnare la sequenza 13,4,8, 19,5, binario T. Se p j xtt,
11 memorizzata come una listabidirezionale destro di ogni nodo di un albero
al adre, al figlio sinistro e al figlio
usando la rappresentazione su array multipli. Fare la stesso la rappresentazione
per
con un singolo array, boot T . Se
dell albero T memorizzato nell attributo
figlio destro. Il puntatore alla radice
Il.3- Sia L una lista bidireziohale di lunghezza m memorizzata negli array I ey, e
next prei
di lunghezza
n hezza n. Si s
supponga che questi array siann dalle
gestiti procedure
ALl OCATE OBJECT e FREE OBSFCT che mantengono una lista libera Fbidirezionale.
Si supponga inoltre che degli s, elementi, m siano nella lista L e n m siano nella
lista libeta. Scrivere una procedura CowpwcnF -I sg L, F che, date la lista L e
la lista libera F, , sposti elementi
gli di L in modo che occupino le s
posizioni I.
2,, m dell arra rrav e riconipnnga correttamente la lista libera F, occupan,to le
DOSIZIOlll
p /71 I, in
l11, 2 .... ii. La
procedura dovrebbe avere tempo di esecuzione
- .-
8m e dovrebbe be uswr
usare so
solo unu -
quantit costante di spazio ., extra. . Dimostrare
cs ion
cura la correttezza della nnrq i /itt
pracedura. iiii v i n /ri,i ha i s ywntli ps
-...,, ,....,,.rtrnJ. s, , nu,slrr Ii.
il cl Stl7 . I lcclntvi / hy,ron
l crssri
c....,.. a sinistrnj e tiyf t v in l l5l
rrltiii. l ft .x in
202 Capitolo 11 26
Strutture di dari fondamentali
rom T
indice I e lefi tigli
l 12 7 3
8 NIL
3 4 10 en.
4 10 5 9
5 2 NIL NIL
6 18 l 4
7 7 N IL N IL
14 6
9 21 NIL N1L
10 5 riic wc
di dati ausiliaria.
limitato da una costante
grande, quando molti nodi hanno tigli viene sprecata
pochi molt
memoria.
Gli alberi radicati taluolta si rappresentano in altri mndi. Nel Capitolo 7. per esempio. si
rappresentato uno heap, che si basa su un albero binario completn. tramite un singolo arra Problemi
e un indice. Gli alberi che compaiono nel Capitolo 22 venarono attraversati soltanto verso Ii
radice cosi sono solo
presenti puntatori al padre e non vi sono ai hgli.
puntatori Sono possibili tra liste
molti altri I I-I Confronti
schemi. Lo schema migl inre dipende d ill applicazione.
ir guctlle tabell , o di esec/ii
Pcf O isuno dei tipi di liste tuli qi p
quattro
C11 ICgllltO.
O/Ill Opt .l ,lZIOllC CICllCJl,.l
,.l1llllOllCO. lit..l C.,lSO
pt . 2, 1E lC. pCf
Esercizi
-
11.4-I Dise n e albero binarie, radicato nell ii clice 6. che i rapt rcscnl t uenti
cl i ic
Clllpl.
204 Capitolo 11
Strutrure di dari fondamentali 205
11-2 Realizza ione di un mergeable heap con liste concatenate Sia X, la variabile casuale che descrive la distanza nella lista concatenata cio. attraverso
Un znergeabfe heap offre le seguenti la catena dei puntatori nerr dalla i alla chiave desiderata I dopo r iterazioni della
operazioni MAwa-HE r che crea un mergeable heap posizione
vuoto . I4SERT, Mi4l31Llkt, EXTRACT MIXC fase 1.
UYION. Ivlostrare come realizzare i mergeable heap
usando liste concatenate in ognuno dei seguenti casi. Cercare le rea1izzazioni b. Dedurre che il tempo di esecuzione atteso
pi efficienti di Cowvwcv-Lisr-SewRcv Ot EX per ogni
possibili delle operazioni. Analizzare il tempo di esecuzione di ogni operazione in termini di r 0.
cardina1it dell insiense o degli insiemi dinamico su cui opera. c. Mostrare che E X, y/p . Ime rro usare l equazione
g / SLsgg I 6.28 .
a. Le liste sono ordinate.
d. Mostrare che
p p y g /g y f
b. Le liste non sono ordinate.
e. Provare che E X,J /t y 1 e spiegarne il significato intuitiYO.
c. Le liste non sono ordin te e gli insiemi dinamici da fondere sono disgiunti.
f. Mostrare che CowPACT-L1$T-SEARCH eseguita con tempo atteso O v .
L origine delle code e delle come strutture di dati in informatica incerte. dato che
COE1PwCr-LtST-SEwRCH L, k pile
nozioni corrispondenti esistevano in matematica e nelle d uff cio cartucce
gi pratiche prima
l i head L
dell introduzione dei calcolatori. Knuth cita A. M. Turing lo sviluppo di nei
121 per pile
2 n tength L di un inker nel 1947.
programmi
3 s hile i w zie e I e i I, Anche le strutture inentore
per di dati basate sui non noto un . Secondo Knuth
puntatnri
4 do j R. soo. I. n i puntatori furono certarnente usati nei ilcnl nori con le memorie a tamburo. Il
primi
linguaggio A-l sviluppato da G. M. Hopper nel l95 I prevedeva la rappresentazione delle
5 if / cg i keyp e l ey j l
fi rmulc. algebriche come alberi binari. Knuth d5 credito al ingozggio IPL-II, sviluppato nel
6 then i e- j
l 956 d A. Newell, J. C. Slum e H. A. Simon. di over ricnnoiciuto l impnrtanza dei puntatori
7 i e- ne.i-t i e di caverne promnsso t utilizzo, ll Inro lingu,.ig, io IPL-lli sviluppatn nel l 57 includeva
8 if /-cg i l esplic infamante npcr izi ini iu1lc pile.
9 then return i
IO return ivi
Tabelle hash
mantiene una tabella dei simboli, in cui le chiavi degli elementi sono
programmazione
stringhe di caratteri che corrispondono a identificatori del linguaggio. Una tabella
qualunque
hash una struttura di dati efficace realizzare i dizionari. Sebbene la ricerca di un elemento
per
in una tabella hash richiedere lo stesso tempo di ricerca in una lista concatenata un
possa
tempo 8n nel caso in pratica le prestazioni del netodo hash sono estremamente
peggiore
buone. Sotto ragionevoli ipotesi, il tempo medio di ricerca di un elemento in una tabella hash
Ol.
le idee e il paragrafo 12.3 descrive come gli indici dell array possano
presenti principali
essere calcolati a partire da le chiavi utilizzando funzioni hash. Nel inoltre sono
paragrafo
e analizzate alcune variazioni sul tema la base comune a tutte che l uso delle
presentate
tabelle hash una tecnica estremamente efficace e pratica. le operazioni di base dei dizionari
dnve m non sia troppo Si a iuiiscrh che nes una coppia di elensenti abbia la stessa
grande.
chi vc.
tempo 01.
12.1-3 Suggerire come realizzare una tabella ad indirizzamento diretto in cui le chiavi
memorizzate non siano necessariamente distinte e gli elementi possano avere dati
sateIlite. Tutte le tre operazioni del dizionario IxsERt, Dat.e E e Space dovreb-
bero richiedere tempo Ol. Non si dimentichi che Dei prende come argomento
12.1-4 Si desidera realizzare un dizionario usando l indirizzamento in un array gran dissi no.
Figura 12. I La renli a iotte di un insigne dinamico All inizio elementi dell array contenere dati non significativi e ini-
tramire una tabella ad indiri anniento direrro T gli possono
Ogni chiave nell universo U 0, l, Descrivere
..., 9 corrisponde a un indice nella tabella. L insieme di ch ia i
zializzare l intero array impraticabile a causa della sua dimensione.
effettive determina le nella tabella
posi-ioni che contengono i piantatori agli elementi. Le aln-e uno schema realizzare un dizionario ad indirizzamento diretto su un array di
per
posi-ioni, grigie scure, contengono NIL.
tipo. Ogni oggetto memorizzato dovrebbe usare uno spazio 01 le
questo
operazioni INSERT, DELETE e Sz acw dovrebbero richiedere tempo Ol ognuna
figura 12.1 illustra l approccio la posizione / punta l inizializzazione della struttura di dati dovrebbe richiedere tempo 01. Soc
ad un elemento dell insieme con chiave geri-
k. Se l insieme non contiene elementi con ie iro aiutare a determinare se un dato elemento nell array valido o no. usare.
chiave k, allora Tk NIL. per
Le operazioni del dizionario come struttura addizionale. una pila la cui dimensione data dal numern di chiavi
sono banali da realizzare.
effettivamente utilizzate nel dizionario.
DIRECT-ADDRESS-SEARCH T, k
return Tjk
12.2 Tabelle hash
DIRECT-ADDRESS-INSERT T, X
La difficolt dell indirizzamento diretto ovvia se l universo U grande. memorizzare una
Tfkey x m x
tabella T di dimensione U essere impraticabile. o addirittura impossibile. a causa della
pu
DIRECT-ADDRESS-Delete T, x 1imitatezza della memoria disponibile su un calcolatore. Inoltre. l insieme K di chiavi
T key x m effettivainente irrili-- are pu essere cosi piccolo rispetto ad U che la maggiur parte dello
n.
spazio allocato per T sarebbe inutilizzato.
Ognuna di queste operazioni veloce richiesto Quando l insieme K di chiavi memorizzate in un dizionario mo to pi piccolo dell uni-
solo tempo Ol.
Per verso U di tutte le chiavi, una tabella hash richiede mnlto meno memoria di una
alcune applicazioni, elementi nell insieme possibili
gli dinamico possono essere memorizzati
tabella ad indirizzamento diretto. In la memoria richiesta puo essere ridotta a
direttamente nella tabella ad indirizzamento particolare.
diretto stessa. Cio, che memorizzare
piuttosto O K . e la ricerca di un elemento nella tabella hash richiede ancora solo tempo 01.
la chiave di un elementn e i funi dati satelIite in un oggetto esterno alla tabella, con un
L unico problema che limite vale per il rei epa inedio. mentre per indirizzamento
puntatore da una della tabella questo
posizione all oggetto, si memorizzare l oggetto nella
pu diretto vale il tempo
per nel caso peggie i e.
posizione stessa, risparmiando cool spazio Inoltre spesso non necessario memorizzare il
campo chiave dell oggetto, Con l indirizzamento diretto un elemento con hivve I memoriuato nella posizione k.
poich se si ha l indice di un oggetto nella tabella. si ha la sua
chiave. Tuttavia, se una chiave noni memorizzata, si deve avere modo codificare
qualche per
che la posizione vuota.
l universo U di chiavi e le di un tabella hash T0 .. in 1
posizinni
Esercizi
li U 0. I, ..., m l .
12.1-2 Un vettore di bit semplicetnente un array di bil 0 c I. Un elettore di hi di vi ono tecniche effic ci risolvere il
tenomeno chiamato collisione. Fortunataincnie. per
lUllgllCZZQ ll1 l 1ClllCClC lllOllO l11CI10 SpZIO Cl/ Ltll illT l all /ll Dt .ILl l1 t. IV
plll1l Il01 contlitto creato d Ile colliitoni.
Tabe1le hash 211
hk
II k
hk hk
hk
m-l
Figura 12.2 Uso di mia ione hash h per it corrisponde a le chiavi e le posi ioni nel1a ra1 elii i ish
fun porre Figura 12.3 Risolu ii ne delle co1lisioni roncalena.ione. Ogni Tj nella
per posi ione
tabella basii. Le chiavi k, e k, corrispondono alla stessa posizione, q rindi collidono. hl h ,
coiitiene una lista caircatenara di rurre 1e chiavi il cui i alore hash j. Per esenrpio.
It l lr l , h k, .
potrebbe cercare di raggiungere questo obiettivo scegIiendo una funzione hash h appropriata.
casuale , CHAINED-HASH-DELETE T, /
Un idea quella di scegliere h in modo che appaia evitando cos1 collisioni o
hash , cancella x dalla lista Tf/ l ey x
almeno minimizzando il loro numero. Il termine stesso che richiama l immagine di
mischiare e tritare, rende bene l idea di questo apprnccio. una funzione hash di esecuzione l inserimento O l nel caso Per la rive ,, il te p
Naturalmente Il tempo per peggiore.
h deve essere deterministica nel che un dato input l dovrebbe sempre lo stesso proporzionale alla lunghezza della lista. come ii analizzer
senso produrre di esecuzione nel caso peggiore
valore hash richiedere tnnpo 0 11 s
output hk Poich AU j m, per, vi sono sicuramente due chiavi con lo stesso pi precisamente fra poco. La cancellazione di un elemento. pu
una funzione hash ben si deve trovare .v nei . -
evitare del tutto le collisioni quindi impossibile. Perci, seppure le liste sono bidirezionali. Se le liste sono semplici. prima
che sembri casuale, minimizzare il numero di collisioni, ancora necessario T h l-e x , cosi che il nero del di x essere a -.i, o
progettata, possa puntatore predecessore possa
un metodo risolvere le collisioni che inevitabilmente si verificano. rimuovendo.v, in questo caso la cancellazione e la ricerca hanno essenzialmente lo stesso
per
terminologia informatica. /I
richiesto cercare un elemento chi ire l di pend l in 61 clo line tre alla luh ll
per c in
Tabelle hash 213
Capitolo 12
Esercizi
Teorema 12.1
In una tabella hash in cui le collisioni sono risolte per concatenazione, nell ipotesi di
uniformit 122-1 Si supponga di usare una funzione hash casuale h per definire la corrispondenza di
semplice della funzione hash, una ricerca senza successo richiede in media
tempo 01 u. n chiavi distinte in un array T di lunghezza m. Qual il numero medio di collisioni
Pi precisamente, qual la cardinalit media di v, hv hy
y
Suggerimenro mostrare che il tempo medio di ricerca con successo lo stesso per
Teorema 12.2
Nel Esercizio 12.2-3 i mostra che il tempo medio di ricerca con successo lo stesso se
122-5 Suggerire come allocare e deallocare memoria elementi dentro la tabella
i nuovi elementi sono inseriti in testa o in enda alla lista. Il numero medio di elementi per gli
hash stessa collegando in una lista libera tutte le posizioni inutilizzate. Si assuea che
esaminati durante una ricerca con successo I pi il numero di elementi esaminati quando
l elemento una posizione possa memorizzare una bandierina o flag e, inoltre. ur elemento e
cercato stato inserito poich ogni nuovo elemento va alla fine de11a lista . Per
un puntatore, oppure due Tutte le operazioni del dizionarin e della li tu
trovare il numero medio di elementi esaminati, si pretende la media, sugli n elementi della puntatori.
libera dovrebbero richiedere ten po medio Ol. La lista libera deie essere bi-
tabella, di I pi la lunghezza media della lista in cui l elemento i-esinto aggiunto. La
lunghezza direzinnale o sufficiente una lista semplice.
media di tale lista i 1 /m, e cosi il numero medio di elementi esaminati in una
ricerca con successo
il
i con concatenazinne richiede nel cvsu peggiore un tempo di ricerca 8 ahi .
t i
rn
12.3 Funzioni hash
a I
l
In questo paru,.rzto saranno discusse aliune che ri uardano I,.t clef inizi ne di buone
Per cui,
questioni
il tempo totale richiest un t ricerca con
per
funzioni hih e quindi si re schemi la lor i crcuzione divisione.
-l/ iu presentan per per per
la lunziOllC ll tSll c O rd Ol a.
-I
moltipliiaziotte e universale.
Tabelle hash
hl Lm /-A mod 1 3,
Molte funzioni hash assumono h e I universo delle chiavi sia l insieme i l. 2, ... d
0. -l.kAJ.
-kA tr zionaria di lA, cio kA
numeri naturafi. Per cui, mod 1 rappresenta la
se t h.. avi non soho numeri naturali, biSO o oP dove pare
m non criti,o. Tipi i
i che il valore di
me ta i. er esempio, una chiave che una .strin A pUo vantaggio del metodo di mnltiplicarione
oQ Un
t
, cn ii
pui
Q c a
me un intero espresso
. pp, .. inr, i ll 1lche intero p, poich
pp rep. entazione in una adatta. 2. cio ill 2
posizionale base . Coii
o si sceglie una potenza
di pCf
i suppdnga oche la din1
, ent,,catore
enti locatore nel modo se uente. Si
pt potrebbe essere
.. interpretato
p .. cotture la coppia
co di interi in rappresentazione la funzione su multi calcolatori
realizzare
,
a e
ne .,. i,poichp 112et I lhnellac ndificaASCII quindi.esprcssocomeun .- .. e
intero in base l28,pt diventa 112 l28 I 16 14452. Di solitn in ualun ue a l-
e
k f. l . i I ha e se . d o tipn
p q uest. p e r intetpreture ogni chiave conw. e un
nit iillivi ili i ,.
lei bit ii
numern t
naturale I hi coniisti pi
anche h grande . .. Nel se uito .si assume
.. che le chi wi si
.- mo numeriieri natura
naturali. i significativa. Il valore hih desider to di p p
Tabelle bus
w Qit l
identificatori con le i
hash casuale che mette male in comspondenza gli posizi, -..
. della
che ci accada piccola ed la stessa insieme di identir-,
probabilit per qualunque
stessa dimensione.
--
vanno da un dato universo L hifi
X b PJ Sia H un insieme finito di funzioni hash che
aniversale se per ogni coppi- - -hi
all intervallo 1, .... m l . Tale insieme detto
0.
P o x. y c U, il numero di funzioni hash h c H per cui hx hy preci ara..-.
distinte
H,
con una funzione hash scelta in modo casuale da la probabii .
estrae p bit m. In altre parole,
di un -. . -i. io
collisione traxe esattamente 1/I11, che esattamente laprobabilit
hk y perx
e hy sono scelte casualmente nell insieme 0, 1, ..., m 1.
se h x
Figura 2.4 II incrodo di moltiplica io te perdefinire uita t, -...
fim-ione Irash. La rappresenta ione coi teorema mostra che una classe universale di funzioni hash
Il seguente
ir bit della chiave k moltiplicata il valore su ir bit
per pari a LA 2 J, dove 0 A I fama cosranre
comportamento buono nel caso medio.
opport ma. I p bit significativi della me meno significativa
pii del prodotto forviano il valore ltash
desiderato hk.
Teorema E2.3
Sebbene questo metodo funzioni valore della costante A, con
per qualunque qualche valore hash ed usata la corriipi ..-- -
Se h scelta da un insieme universale di funzioni per
funziona meglio che con altri. La scelta ottima dipende dalle caratteristiche dei dati su cui , n, il numero medio di ..
i n chiavi su una tabella di dimensione, ,, dove
vengono prese le chiavi. Knuth discute la scelta di A in dettaglio
123j e suggerisce che di l.
che coinvolge una chiave.v minore
particolare
A 1 12 l
i5 0.6180339887 ... j
-
distinte, sia c, una variabile casus .. .--,.- -e 1 ir
probabile che Di nostra -ione. Per ogni coppie y, di chiavi
funzioni ragionevolmente bene.
Pich. definizione....-.. . in. .o
hy h- cio se y e collidono usando h e 0 altrimenti. per
Per esempio. se si ha / 1234S6, m 10000 e A come descritto nell equazione 12.2 . allora
coppia di chiavi collide con probabilit 1hn. si ha
al. l 51 . J
E il Et x
41. g
CT
l g X
Cori cl inizioilc,
qucita
I 2.4
1, ..., m l - 0, 1, ..., nr 1 .
h U x 0,
123-2 Si supponga di avere una corrispondenza tra una stringa di rcaratteri e in posizioni. che ogni chiave / , la sequenza di scansiosre
pp, Con l indirizzamento aperto si richiede per
dove la stringa trattata come un numero in ba e 128 e di usare il metod d
0, h k, 1, ..., h k, m 1
ivisione. Il numero i facilmente rappresentato come una di macchina di h k,
parola
che ogni elemento della tabella hash si
32 bit, ma la stringa di r caratteri, trattata come un numero in base 128, richiede una di 1, ..., n 1, cosi
sia permutazione 0,
chiave fino a riempire tutta la
molte parole. Come si pu applicare il metodo di divisione calcnlare il valore considerato come una per la nuova
per eventualmente posizione
elementi nella tabella T siano chiai i
hash
as della
e a stringa
s d
di caratteri senza usare di un numero costante di parole di tabella. Nel seguente si assume che gli
pi pseudocodice,
l elemen o stesso che la contiene. Ogni
memoria al di fuori della stringa stessa senza informazioni satellite., la chia, e I, proprio
12.3-3 Si consideri una versione del metodo di divisione in cui f l / mod m, dove
e/ ,- ,- - HwSH-It SERT T, l
rn 2 una .
stringa di caratteri rappresentata in base 2 . Mostrare recieche
e se
la stringa r essere derivata l im0
pu da una permutazinne dei caratteri della stringa
y allora x e y corrispondono allo stesso valore hash. Dare un esempio di 2 repeat j h/. i
applicazione in cui questo proprieth ere t delle difticolt itt una funzione hush. w
3 if 7U1
5
4 then m l
123-4 Si consideri u na tabella hash di dimensione rn 1000 e uosa funzione hash lr 4 5 return j
5
Ln gA mod 1J erA 11 . C,,lcol..ire le pusiliotli currispo,ldetlti,lie illi,n i
6 else i i l
61, 62, 63, 64 e 65.
7 until i in
8 error OVt. l f1 1D
sllll i tabuli h iih
Tabelle hash 22I
220 Capitolo 12
L algoritmo di ricerca della chiave k scandisce la stessa sequenza di posizioni esaminata Scansione lineare
dall algoritmo di inserzione quando I stata inserita. Quindi, la ricerca terminare senza
pu
successo quando trova una posizione vuota, poich k sarebbe stata inserita li e non 1, ..., m l , il metodo di scansione lineare usa la
proprio Data una funzione hash h U m 0,
in una successiva posizione della sequenza di scansione. Si noti che asserzione
questa funzione hash
assume che le chiavi non vengano cancellate dalla tabella hash. La HAsH-SEARcv
procedura
come l I, i AHI i mod n
input una tabella T e una chiave k, restituendo j se la posizione
prende j contiene la
chiave l, O NIL se la chiave non presente nella tabella T. k, la prima esaminata T h k . Quindi si
i 0, 1, ..., m 1. Data la chiave posizione
per
via fino a scandire la posizione Tm 1 . Quindi si
scandisce la posizione T jh k 1J, e cosi
Hashing doppio
t
222 Capitolo 12 Tabel/e hash 223
2 viene espressa in
dell indirizzamento aperto, come quella della concatenazione.
L analisi
3 n ed m che tendono all infinito. Si ricorda
termini del fattore di carico a della tabella hash. per
4 il numero medio di elementi
che se n elementi sono memorizzati in una tabella di m posizioni,
5 con l indirizzamento aperto, si ha al pi un
ogni a nlm. Naturalmente,
per posizione
6 n m, che implica u l.
elemento posizione, e quindi
per
7 ideale, la
venga usata una funzione hash uniforme. In questo schema
Si assuma che
8 equamente
0, h k, l, ..., h k, m 1 ogni chiave k , in modo
sequenza di scansione h k. per
di 1, ..., m 1. Cio ogni possibile sequenza di
probabile, una qualunque permutazione 0,
un inserzione o una ricerca. Naturalmente una
scansione usata in modo equiprobabile per
di scansione stabilita, il che significa che considerando
data chiave ha associata una sequenza
spazio di chiavi e l operazione della funzione hash sulle
la distribuzione di probabilit sullo
Il valore h, k deve essere primo rispetto alla dimensione ni della tabella hash per qualunque
senza st,cces.,o o,,ni ccesso tranne l ultimo a una posizione
chiave Dimostra-,io,re. In una ricerca
da ricercare. Altrimenti se m e h, k avessero un massimo comune divisore d 1 per
e l ultima considerata vuota. Si
occupata che non contiene la chiave desiderata posizione
qualche chiave k, allora una ricerca di taIe chiave andrebbe ad esaminare solo una frazione
della tabeIla hash. veda il Capitolo 33. Un modo di assicurare definisca
l/d Si comodo questa
condizione di scegliere m come potenza di 2 e definire h, in modo che sempre un i accessi a posizioni occupate
produca p Pr esattamente
numero dispari. Un altr6 modo scegliere t primo e h, in modo che restituisca sempre un i
0, si poisonu trovare al pi n posizioni occupate.
0. 1, 2, .... Peri n si ha p poich
intero minore di n . Per esempio si pu scegliere in primo e porre peri
positivo
cui il numero medio di accessi
per
h I kmodni,
h, k l k mod m , 12.6
t gip,.
2. i0
dove m scelto in modo che sia di poco minore di in peresempiom- l o m Per esempio.
q,.
gip,
in il
chiave. la posizione iniziale h, l e la distaiiza h, k variare in nsodo indipendente.
possono cui si acvede sia
di i l La che la prinla posizione
Ne risulta che il comportamento il valore q per prob,hilitb
del l hashin z doppio sembra essere molto vicino a quello Qual
ideale n/in. cui,
dello schema della funzione ha h occupata per
uniforme.
Il
/I
Tabetle hash
Teorema 12.7
Con una funzione hash uniforme, un secondo accesso, se necessario, sulle rimanenti in l
Data una tabella hash ad indirizzamento aperto con fattore di carico a I, il numero
posizini ancora non esaminate, n-1 delle sono occupate. Si fa un secondo accesso solo
quali
se il primo ad una medio di accessi in una ricerca con sisccesso al pi
posizione occupata per cui,
- -. . n
l
ln ,
1
l
nell ipotesi di usare una funzione hash uniforme e assumendo che ogni chiave sia
In generale, l i-esimo accesso fatto solo se i primi i l accessi sono a posizioni occupate e la ricercata nella tabella in modo equiprobabile.
posizione esaminata in modo equamente una delle restanti m i l
probabile qualunque
posizioni, n i 1 delle quali sono occupate. Per cui,
Dimostra-ione. La ricerca di una chiave k segue la stessa sequenza di scansione seguita p-
-. . l inserzione dell elemento con chiave / . Dal Corollario 12., se I la i I -esima chiai .
. . inserita
1/ 1
nella
i/in
tabella
in/ m
hash,
i. Eseguendo
il numero
la
medio
media
di
su
accessi
tutte le
fatti
n chiavi
in una
nella
ricnca
tabella
di
hash
k al
si ha
pi
.
i
1 m
...
peri 1,2, ..., n, poich n j/m j
ilni se n me j
0. Dopo n accessi, tutte le n posizioni i0
E i0
occupate sono state esaminate e non saranno scandite, 0 per i n.
pi quindi q, 1
in-n
Si pu valutare Kir
ora l equazione 12.6 . Data l ipotesi che n l, il numero medio di accessi
di una ricerca senza successo
dove H, 1/j 1 i-esimo numero armonico come definito nell equazione 3.5 i.
l QQ Q
IR.7 m m n l
l a
l/x dx
Q
J nr-n
L equazione 12.7 ha un interpretazione intuitiva un accesso sempre fatto, con probabilit
a ne necessario un secondo, con approssimativamente l
probabilit ri ne necessario un 1 n n/ m n
terzo e cosi via. C
l
1n I/ l a
Se u una costante, il Teorema 12.5 che una ricerca C
pronostica senza successo richieda
tempo 01. Per esempio, se1a tabella hash mezza piena, il numero medio di accessi in una
come lignite sul numero medio di accessi in una ricerca con successo.
ricerca senza successo al pi ll 1 D.5 2. Se piena al 90 per cento, il numero medio di
accessi al pi 11 1 0.9 10. con successo nteni
Se la tabellu hash piena a meth, il numem teedio di accessi in una ricerca
.55 .
Il Teorema 12.5 fornisce le prestazioni della H is -Irsenia di 1.387. Se la tabella hash piena al 90 per cento, il numero medio di accessi meno di
procedura in modo immediata.
Corollario 12 k Esercizi
L inserzione di un elemento in una tabella hash ad indirizzamento aperto cn f , ttore di c rico 22. 2S,
l2.4-I Si consideri l inserzione delle chiavi 10, 3 l, 4, 15. 17. 88. 5 in uno tahelb
arichiede al piii 1/ 1 a accessi in media, nell ipote i di usare una funzione haih uniforme.
hash di lunghezza n 11 ungendo l indirizzamento aperto con funzione ha. h
.
I I I I . TI I
Tabelle hash 227
22 Capitolo 12
aperto con fattore di carico a 112. Qual il numero medio di accessi in una ricerca
L2-3 Limite alla dimensione della tabella nel/a eoticatenazione
senza successo il numero medio di accessi in una ricerca con successo
Qual
hash di i posizioni, con le collisioni risolte per concatena-
Ripetere i calcoli i fattori di carico 314 e 718. Si supponga di avere una tabella
per
inserite nella tabella. Sia equamente probabile che ogni
zione e si supponga che n chi i siano
Sia M il massimo numero di chiavi in una qualunque
chiave comsponda a ogni posizione.
* z2.4-5 Si supponga di inserire n chiavi in una tabella hash di dimensione in usando EM,
sono state inserite. Occorre adesso dimostrare che
dopo che tutte le chiavi
in la probabilit che posizione
l indirizzamento aperto e una funzione hash uniforme. Sia p n,
il valore medio di M. ha un limite superiore O lpt /1g lpt .
-
non si verifichi alcuna collisione. Mostrare che p n, m e Sug geri,nenro.
k chiavi cadano in una data da
a. Dedurre che la probabilit Q, che particolare posizione
si veda l equazione Dedurre che n eccede m la probabilit di
2.7 . quando
evitare le collisioni va rapidamente a zero.
- --
12.4-6 Si consideri una tabella hash od indirizzametsto aperto con fattore di carico e.
k, cio la probabilit che la posizione contenente il maggior
b. Sia P, la probabilit che M
Trovare il valore non nullo di a per cui il numero medio di accessi di una ricerca
numero di chiavi ne contenga l . Mostrare che P, n g,.
senza successo sia uguale a due volte il numero medio di accessi di una ricerca con
di Stirling 2.11 mostrare che Q e Il .
il numero medio di accessi di una c. Usare l approssimazione equazione per
successo. Usare la stima l/ajln l/ l u per
c 1 tate che ll r k, c Ignl1g 1g . Concludere
ricerca con successo. d. Mostrare che esiste una costante Q per
e. Mostrare che
Problemi
clgn 1 f clgn clgn
E BI 5 Pr W a Pr M
1glgn Iglgn 1glgn
organizzazione
12-I Limite alla scaitsioire lunga in un Iiash
pii
n m/2. Concludere che EM O lpt/Ig Ignei .
Una tabella hash di dimensione m usata memorizzare n elementi, con
per
L indirizzamento aperto usato per la risoluzione delle collisioni.
a. Assumendo l uniformit della funzione hash, mostrare che peri 1,2, ..., n, la probabilit 22-4 Scansioite qtcadratica
. l, ..., in 1,
che l i-esima inserzione richieda strettamente di I- accessi al pi 2 chiave I- da cercare in una tabella hash con posizioni 0,
pi Si supponga di avere una
allo spazio del le chiavi l insieme 0. l, ...,
h. Mostrare che i 1. 2, ..., , la probabilit che l i-esima inserzione richieda pi di 21gn e di avere una tunzione h che faccia comspondere
per
accessi al pi l/ r -. m I . Lo schensa dell s ricerca si i il seguente.
La variabile casuale X, denoti il numero di accessi richiesti dall i-esima inserzione. Nella 1. Calcolare il valore i - hl . e porre j 0.
si gi mostrato che Pr X 21 n l/n-. La vm iabile casuale X max X denoti la chi ve L. Se trovata o se la posizione vuota.
parte b 2. Esaminare la posizinne i per cercare
il massimo numero di accessi richiesti da una qualunque delle n inserzintsi. la ricerca.
terminare
siano numeri. Si consideri ora l insietne it itico che non richiede le operazioni l re e Dt .i.u i
111CAlC.
228 Capito1o 12
S ia h una classe di funzioni hash in cui ogni Ji facomspondere l universo U delle chiavi
a 0, 1,..., m 1 . Si dice che M k-universale se, per ogni sequenza fissata di k chiavi distinte Alberi binari di ricerca
Esercizi
return Ti r r.-St i ii i /i v. 4
th n
chiamata iniziale.lu r
Tnrt .-Sr svcv right s . L
5 else return
nodo nell albero una il figi in sinistro e l altra
per per il destro.
Alberi binari di ricenu
Lo TREE-Mzxtwuw simmetrico.
pseudocodice per
TREE-MAXImUM x
2 do.a c lefi xj
3 return.v
Alberi binari di ricerca 235
234 Capitolo 13
un cammino che risale o uno che discende l albero. Anche la procedura TRAE-PREoEczssoR, 13.3 Inserzione e cancellazione
che simmetrica alla TRE -SuccpssbR eseguita con un tempo Oh.
la medifica dell insieme dinamico
Le operazioni di inserzione e cancellazione provocano
In conclusione si dimostrato il seguente teorema.
La struttura di dati deve essere n odi amicata per
rappresentato con un albero binario di ricerca.
che la propriet dell albero binario cti ricerca
cambiamento, ma in modo tale
riflettere questo
Teorema 13.1 di un nuovo
che la modifica dell albero per l inserzione
continui ad essere verificata. Si vedr
Le operazioni di un insieme dinamico Sewzcv, MtwtMvw, MAxmvu, SuccessoR e della cancellazione in qualche modo
relativamente semplice mentre la gestione
elemento
PREDECESSOR essere eseguite su un albero binario di ricerca di altezza h in
possono complessa.
pi
tempo Oh.
Inserzione
6 then x lefr x
13-Z.2 Il professor Volpini pensa di aver scoperto un importante propriet degli alberi 7 else x- iight x
13-2.3 Usare la propriet dell albero binario di ricerca per provare rigorosamente che il
alle Torr-SA zcq
13.3 mostra come opera TaEE-INSERT, Analogamente procedure
codice di TREE-Svccessoa corretto. La figura
dalla radice dell albero e segue un commi no
e IreR tw -TRE -SE e , la TaEr,-lr,,sF w comincia
realizzata trovando il minimo elemento dell albero con TREE-Mn I IUiv1 e poi
Cancellazione
13-2. Sia T un albero binario di ricerca in cui le hi n i s ivi tutte cliitinte. ii i.i un n iclii
TREE-DELETE T,
2 then pm.--
3 DISC l M TREE-SUCCESSOR
4 if lefrfv w n.
5 then .r - lefi$v
6 else .r m right y
Figura 13.3 Inser ione di wt elemento con chiave 13 in un albero binario di ricerca. I nodi chiari
grigi
indicano il nimmino dalla radice 7 ifx w zn.
alla posizione in cui l elemento inseriamo. La linea tratteggiata
albero
indica il collegamento aggiunto nel inserire il nuovo elemento. m
per 8 then px pi
9 if p v mx
10 then roor TJ -r
l l else if y lefi p y
12 then lefrp y c x
14 if v z
15 then / ey key y
17 return v
c Teorema 13.2
ll c
ll CI I l O.
Alberi binmi di cerca 241
Lemma 13.5
5
di n numeri distinti, e sia la v iabile casuale
Sia I , I, ..., k una permutazione casuale
S . l i n e k f ogni l i . 13.1
k per
b
l-In
- p /H.
Figura l.5 1 due insiemi G, e L, cfr contengoi o le chiavi su un czimmiirv dalla radice di im albercr
p- l p In n
birrario di ricerca
- in
fino alla chiav e k, 17. I nodi con chiat i in G, sorto neri e i au di con chiosi tn
In p-1 jp
l/n
Al fine dell analisi si pu semplificare in qualche modo scenario. Si supponga che Teorema J3.6
questo
n numeri distinti siano inseriti uno alla volta in un insieme dinamico. Se tutte le permutazioni z ezza costruito in modo iasu. l
f media 4i un al/ero binario di ricerca
dei numeri sono equiprobabili, volte cambia, in media, il minimo dell insieme Per
quante distinte O lgn .
rispondere a questa domanda si supponga che l i-esimo numero inserito sia k,. per i I, 2.....
n. La prababilit che k, sia il minimo dei i numeri lli, il rango di k, tra i primi
primi poich
i numeri equiprobabile che sia uno degli i possibili casuale delle n chiavi e sia T l albero
qualunque ranghi. Di conseguenza il Dimostra -ione. Sia l ,, I-., t una pernn tazione
numero medio di camhiamenti il ininimo dell insietae
per
l
g- e
ii
essere almeno t/2. Per maui
13.2
dove K 1n n O l l r -esimo numcrn nrm inicn si vcd l Equaiionc .i c il Pnihlcln i Pr l k,. T t Pr jc,j i vi , i. ivt.
Q.
E aillini 11110 ii11 1 Pl tl . Si 11,i
pt AG
k, , per v lli I i tl
1n ir. il seguente lemma mo tr ch * i minima la proh ibili che si i no to pii renale. Pr Q 112 Pi j l, I i j e
43
Alberi binari di ricerca
242 Capitolo 13
Pr k, i n e l, k, pe ogni li r/2
Problemi
vr s rz,
dove S definita come nell equazione 13-1 Alberi bi tari di ricerca con chiavi agaali
13.1 . Per giustificare questo ragionamento, si noti
i-.. ,
che la probabilit non decresce se si estende il rango di i da i nella realizzazione degli afe.-.
j ad i n, poich all insieme La presenza di chiavi uguali pone qualche problema
sono aggiunti pi elementi. Analogamente, la probabilit non decresce se si rimuove la ricerca.
condizione che k, l, poich si sta sostituendo una casuale di un numero di viene usata in . -. n
permutazione a. Quali sono le prestazioni asintotiche di TRE -IwsERv quando per
elementi che pu essere minore di n quei k che sono di k, con una inizialmente ni..
pi grandi permutazione elementi con chiavi identiche in un albero binario di ricerca
casuale di n elementi. I
si propone di migliorare TRE -INSERT verificando della linea 5 se l-ey,. kc
Ci prima
Usando un ragionamento simmetrico, si pu che vale l uguaglianza si . e u. ui. -
provare verificando della linea 11 se l e ., I eyjv . Se
prima
le prestazioni asintotiche dell i -.z ..- di
segenti strategie. Per ogni strategia, si trovino
Pr L t/2 Pr S t/2 ,
identiche in un albero binario di ricerca inizialmente i i.
n elementi con chiavi
cui, dalla disuguag1ianza e x. Pe-. . .l .
per 13.2 , si ottiene strategie sono descritte la linea 5 in cui si confrontano le chiavi di
per
stessa strategia alla linea 11, si dovr sostituire y ad r.
Pr d /-. T t 2Pr S t/2 .
, -
b. Mantenere una variabile booleana b xJ sul nodo x e assegnare adx lei i J opz
-. -
Se si sceglie r 2p 1H, dove H l n-esimo numero armonico e p 4.32 soddisfa in base al valore di h x , che si alterna tra FwvsE e TRUE ogni volta che il n.w -
Inp 1 p 2, si puo applicare il Lemma 13.5 concludere che durante la TaEE-Ir scRT.
per
Pr d / ,. T 2p 1 H e. Mantenere una lista di nodi con chiavi uguali ad.v ed inserire - nella li. t .
2Pr AS p 1 H
..- --
d. Assegnare in modo casuale ad.v left i oppure right v . Fornire le prestw. .
2/n- .
e derivare informalmente quelle ne1 caso medio.
peggiore
Poich vi sono al pi nodi in un albero binario di ricerca costruito in modo casuale. la
a, h,perognii 0. l.....i- l .
1. esiste un intero j,con0 j min p,q , tale che
Esercizi
2. p q e a, b, perngni i 0, I, ...,p.
1343 Data una costante r 1, si determini t in modo che la probzbilitii che l altezza di ui casuale
albero binario di ricerca costruito in modo casuale sia almeno tH risulti minore di
1h .
f h -. -
13.4-4
3.4-4 Si consideri l al oritmo R i nowlzco-Qutcvson cheopera ili R s rx wizt .n-Qvicvsovr del
su un isequcnz i li inpirt un albero bin irio di ricerc e l esecuzione p n
n-I
bob,-i
I- O
Figura 13.6 Un albero lessicografico che memori-a 1e srringlte binarie 1011, 10, O l l, 100 e 0. La b. Sia Bx la funzione generatrice
chinve di ogni r odo essere deten rinata attraversando
pu il camminino dalla radice a quel nodo. Non
necessario, quindi, minori are le chiat i nei nodi nella figura sono inostrare le ehiai i so1o per 8x
maggiore chiare a. I nodi sono scuri se le chiavi corrispondevi pb x
ti non sono nell albero ta1i nodi sono
solo tracciare
n0
presenti per il cammino per altri s odi.
P TR n l .
.
usando lo sviluppo in serie di Thylor di al 4A nel punk
l n-esimo nwnero Catalano
e. Sia P ir la lunghezza media del cammino interno iniziale x 0.
di un albero binario di ricerca di n nodi
costruito in modo casuale. Mostrare che si pu usare la generalizzazioni
si vuole. invece di usare lo sviluppo in serie di Taylor,
Se
I
Pn P ti i 1 n 1 . nn 1 ... n ,.
gPi numern reale n e pualunpue intero k, si interpreta
i0 conce
se l 0. 0 altrimenti.
d. Mostrare che Pn essere riscrittcl COlllC
pu
d. Mastrare che
n-I
4tl
Pn Pk On . bn ,, O 1/n .
g l
Al
e. Facendo riterimento all anzlisi della versione randomizzata di quichsort. concludere che
Pn O ii Izt.
Note al capitolo
l insietne . -
partizionare di elementi che devono essere ordinati. Ogni nodo , ,- . , , I ,. i enn ltclon
di un albero hinurio u
di ricerca partiziona l insieme di ekmenti che ricadono nel sattoalbcro radicato in esso.
Nel Capitolo 13 si mostrato come un albero binario di ricerca di altezza h posi . ere
Ciascun nodo dell albero contiene i campi color, key, lefi, riglrr e p. Se un figlio o il p
di un nodo non esistono, allora il corrispondente campo vale NIL. Questi vali r
puntatore
sono considerati come a nodi esterni foglie dell albero binario di ricerc i. tn i l
puntatori
interni dell albern mantenuta la normale impostazione basata sulla chi ne.
per i nodi
Un albero binario di ricerca un RB-albero se soddisfa le seguenti propriet RB
4. Ogni can,mino semplice da un nodo,d una foglia sua discendente contiene lo ..t o
Esercizi
ancora un RB-albero
Figura 14.1 Un albero RB con i nodi neri in nero e quelli rossi in Ogni rodo iit un
grigio. albero RB un nodo x nd una
semplice lungo da
rosso o nero. ogni nera Mostrare che in un RB-albero il cammino pi
foglia su. i figli di un nodo rosso sono entrambi neri ed ogni cannnino 14.I-3
doppia di del cammini
discendente ha una lunghezza al pi quella
foglia sua
Ogni nodo cor at. eticlrertato con la sua b-altez a i nodi NtL hanno una b-alte a uguale 0. dal nodo.v ad una foglia sua discendente.
a semplice pi corto
Una conseguenza immediata di questo lemma che le operazioni degli insiemi dinan1ic i. /
7
Se ecv, PREDECESSOR, SUCCESSOR, IVllNlMVE1 C MAXIMUM es ere realizzate
possnnn su un RR- Roane T.x
Lr
albero ottenendo tempi di esecuzione O lgn , dato che su un comune P v
albero di ricerca di P
-- . , ercr .ir,ne Rica -R n.,m T,
-i, u... ,- ... . L o
.,
, . , ,lt, .lie i slrlla d ,. -..
, ,- , , ... fl,nra ioHe
.a.,
rr
RB-albero di in ut, s
assume che il figlio destro non sia sn.. La rotazione sinistra fa perno sull arco dar ag. Essa
pone y come nuova radice del sottoalbero, x come figlio sinistro di y ed il figlio sinistro di y
come nuovo figlio destro di x.
LEm-Ro ve T, r
l y m right x t Inizializzazione di y.
LEpr. Rotore T, x
2 right x c left y t Rotazione del sottoalbero sinistro di y
3 ifleft y wwi.
4 then p lefr y m x
7 then roor T y
8 else if x lefr p x
9 then lefi p .r y
10 else rigltr p v y
I 1 left y x la stessa seepre i-a di alr ri clelle chiavi.
v Spostamento di x alla sinistra di y. moilijic atri proelucrwo
12 px mg
La figura 14. illustra il funzionamento deIla procedura LEw-RotwtE. Il codice per la 14.3 Inserzione
procedura Ricm-Romance simile. Entrambe le procedure sono eseguite in tempo 01 e se
operano solo sui puntatori e lasciano inalterati tutti altri campi di un nodo. tempn O lp .
gli RB-alLiero di n nodi essere eseguita in un
L inserzione di un nodo in un puo
RB IYSERT T
14.2-2 Scrivere la Rica -Rotwl e.
pseudocodice per1u procedura
1 TRcv.-I sw r T,.i-
COIOI X RED
5 then y m rightp Q s jj
i
f I
1 C liO l
l ll
i II i
RB-alberi 253
252 Capitolo 14
Il else if .v right p x
11 then x m P CQSD 2
p .r
l Lzn-RotAvE T, x i caso 2
a
14 color p x J - B CIACK t caso3
V
15 co or p p x M RED t caso 3
P CSSO 3 Caso I
16 Rtam-Rov tE T, p px
right left
17 else analogo al ramo then con e scambiati
linee 1-2. In secondo luogo si esaminer il risultato globale del ciclo while nelle linee 3-17.
CBSO -
Infine, come terzo si spiegheranno i tre casi in cui suddiviso il ciclo del hile e si
punto,
vedr come si comportano raggiungere il loro obiettivo. La figura 14.4 mostra il
per
comportamento della procedura RB-IwsERv su di un esempio.
violata la propriet 3, che dice che un nodo rosso non avere figli rossi
Q
pu pi precisamente
violata se il padre di x rosso, dato che x stesso viene colorato di rosso nella
questa propriet
linea 2. La figura 14.4 a mostra un esempio di tale violazione quando si inserisce il nodo.i.
risalire
Lo scopo del ciclo whi1e nelle linee 3-17 quello di far nell albero questa
violazione, mentre la prppriet 4 rimane sempre valida. Infatti, all inizio di ciascuna d
iterazione, z ad un nodo rosso con padre rosso l unica violazione alle propriet
punta
dell albero. Per ogni iterazione ci sono due possibili uscite il puntatore x risale l albero
a seconda che il padre di x, p x , sia il figlio sinistro oppure i figlio destro del nonno di .s-.
ppi , che individuato nella linea 4. Nella procedura stato fornito solo il codice del caio
. - -, i in C. A e weslci nui r i r,
in cui risulti figlio sinistro. Si anche fatta un ipotesi di lavoro importante stabilendo che .
pr iene esegui a r . .
la radice sia sempre nera propriet che viene garantita dalla 1inea 18 ogni i oltre che il
procedimento di inserzione termina per cui px non la radice e quindi p p .r esiste. ohe i rn ctlberii RB.
zio
Il caso 1 si distingue dai casi 2 e 3 per il colore del tratello del padre di x, detto . Nella
linea ad y assegnato il puntatore riglv p y x allo zio di .r, nella linea 6 eseguito un
controllo per cui se y rosso si esegue il caso l altrimenti il controllo passo si casi 2 e 3. In
ogni caso il nonnn di.v, ppi . llCfO 111fatti il padre px rosso e la propriet .i violata
solo tra.v e p .v .
La situazione del caso 1 linee 7-10 mostrata nella tigura 145. Il c isn l eseguito quando
l
sia p r che sono rossi. Datn che ppv J nero, si colorano v e y di nern e p p sj J di rosso, LlllllOLIOI1 f
l.
.. . I, loviudi.l .
I .. .
risolvendo cos il problema che.a e px sotio masi adiacenti e nlanienend la pri prii. 4, m r rc . .. ,
, -, - cl ihbiatlu etTcttuare al, . .i
a questo essere violata I 3 se il padre di i rosio c uindi ii e .
punto potrebbe propriet r fg s c te ri1
..
-
..
-,
I,l ., l l 1l3l-lt.l.,l 4, 10pi ill
d
.,
una r uzioi.. c destra c leI DfC iCl- ,.l
ripete il ciclo ivhile assegnando ed x il valore pp r .
4
camhi,n
C... enti di colore . dei nodi .
l
R8w1Sesi
Capimlo 14
Esercizi
nuovo.v C 5 i ia
il colore rosso al nuovo nodo in.-- r.
143-1 Nella linea 2 di RB-IRSERT si assegna
i ii i - P-r-h-
a A D y nero la propriet3 non potrebbe essere
che assegnando adx il colore
y Y
alla radice dell zl . Q--1
linea IS di RB-Issen si assegna il colore nero
143-2 NelIa
il vantaggio
a p
a p .- --
la b-altezza di ciascuno dei sottoalberi u. p, y, 5. e nelle
149-4 Si supponga che - r
Figura 14.5 ll caso 1 de1la RB-IisERv. La 3 violata dato che.v e suo nodo in ogni figura con la sua t - l .-
pn cedura propriet padre p .r e 14.6 sia k. Etichettare ciascun
la trastormazione in . ..
verificare che sia mantenuta la propriet 4 dopo
-.-.. . ..
costruito con insnimenti cucce,,i
143-5 Si consideri un RB-albero di n nodi
ha almeno un. .. - .-
esse RB-Ivsezv. Mostrare che se n 1 alloro l albero
3 pu av enire .wlco rn il nno o .v, che rosso, e suo se anclt ines . procedura
propriet pa -e
-----
etficientemente RB-Issavate la mppreien i-
143-6 Descrivere come realizzare
che l esecuzione termina in quanto non ci sono due nodi rossi adiacenti. Il corpo del while non memoria il puntatore al padre.
pi RB-alberi prevede per
non ripetuto un altra volta in quanto ormai px tiero.
Qual il tempo di esecuzione della procedura RB-It sen Dato che l altezza di un RB-
albero di n nodi O lgn , la chiamata TREE-Issai costa un tempo O lgn . Il ciclo ehil i 14.4 Cancellazione
ripetuto solo se si esegue il caso 1 con il conseguente spostamento verso la radice del
ai -* ni4
x. Per cui il numero totale i volte che il ciclo while essere ripet t 01 . RB-albero di n nodi, la cancellazione
puntatore pu Come le altre operaziani di base su un
per
-ItSERT,impiega 1e -i
Quin i un tempo totale di O lgn . Vale la pena osservare che non si di un nodo da un RB-albero . perii.
impiega un tempo 01 La cancelhzione
gn .
eseguono pi di due rotazioni in quanto se si esegue il czsg 2 o il caso 3 il ciclo termina. di un nodo.
complicata dell inserimento
pi
im e -
dei caii limite si usa una sentinella
Per semplificare nel endice la gestione
ite. .i i il P
T. nilfT un oggertn con gli
veda il I l.2 . Per un RB-albero
ivi si paragrafo
mentre a,.li. l... . t., Pi
vulore del suo canspo cofnr st,icK
di un comune nndo dell albero. Il
CBSO 3 nari.t .-.
Nel RB-albero tutti i punt
right e I e snno assegnati valvri arbitrari.
p. left.
as,.c.-n.i .-, . ..
Figun 14.6 . 1 asi . 2 e. 3 della c proc lu
rr ccdura, RB-I,
B-lvst-,ta. . Conle
C nel caso 1, lag rr,prietit 3 c ,.iolata si r nel dovri, fare attenzi ne ud
g, si deve manipol..u e un nncto t,,-lio di,,i
quando
caso 2 siri nel caso 3 iir c vanto.
a i nil T .
Tu t.-Dt i, n i p--.. -
r RB-Dn r ti . i una s mp1 ie na li t .a della proceclura
una rota. ione simstra, che rei La procedura
i li li . ... ...
t l/ lllll I IKi
Csc Ull c l FO
liti ll ll i Ville l l C J
ll P Cll ll I ll COlll ll C
l pllll
c casi
RB-Da.aiE 7 LEFT-ROTATE T, pr
T,
c caso
nil T o righr - w e- right p x
I if lefi nil T 8
BLACK
then r m lefi y else if color right tv
E- BLACK
c caso
6 else tben color 1eft ivj
x c- right i 13
r caso -
color v m Reo
pt-al - bl 14
w t caso
8 if p y RIGHT-ROTATE T,
nil T 15
riglitfy x
P. CQSc
9 u -
then root TJ - x 16
t CBCa
10 else color i - color pl. ll
if y left p vll 17
I CASO -
M BLACK
Il then cfr pv - x 18 COIOI p X
I CQSO-
color ar - st.sci
12 else rigkrlpyl x 19 eig n
D CQ50 -
13 ifyc 20
LEFT-ROTATE T. t
l C 15c -
14 then I-e D 21 x c roor TJ
right left
2 ramo then con e scambiati
1 Si copiano anche i dati satellite di y. else analogo al
2 do if x lefi g s
then w righrfp xj
if colorjiv vcn
del while.
a a il suo figlio ini. zi
si verifica ir nero,
Il caso 3 13-16 e figura 14.7 c quancto
linee - ini. tro
i colori tra sv ed i suo fi lio
y 5 z figlio destro nero. Si possono scambiare
J rosso ed il suo
alcuna delle de li RB-
destra su v senza violare propriet
left iv e poi eseguire una rotazione
un figlio destro rosso per ui i
ii di.r adesso un nodo nero con
Caso 3 alberi. Il nuovo fratello
ha m cok n v n
o , u mo x,
ureico , Esercizi
ivne B A
pi. caso che implica la ripeti del ciclo il caso 2. a 11 1 fO
o scant ialt o il colore tro i dell e. eruzione
r dice di un RB-albero nero prima
Mostrare che. se il colnre della
14.4-1
allora nero anche dopo.
di RB-Decevz.
, -, -i,
termi,ra in il co1 r c rosso. c II .. . c. i ns,c i
quctnto
n
e D ed eseguendo una rota ione destra. d Nel cas 4, il colore er . I /
ri ulta dalle succe iive in. erzio-
si trovato l RB-albero che
PlllllO I . . .. FQ l011l d L S glCCllClO IHlC1 P Pt l.,lOI1C Sllil sll ll
l4.4-2 Nell Esercizio 143-3
vuoto. alo, trar ora
19. 8 ics un albero inizialmente
scii.a iolare alcuna delle propriet degli alberi RB . quimli il cicfc terntiita. ni delle. chi ivi 41. 38. 3 1, l 2,
delle chiavi nell ordine
dalle c trvellaziuni successive
RB- alberi che risultano
gli
8. 12. 19. 31. 38. 41.
neridallaradiceuciascunodei sottnalberi y,6. ee 2 h opo la tras Tnrnnizione.
il all ragliai.
e e avere i ig i neri, si poiana ic mhi ir mantenere puntatoiv
I
RB-alberi 26I
14.4-5 Per ciascuno dei casi della figura 14.7, fornire il numero di nodi neri dalla radice
. -
14.4- S
Si suppon a che un nodo x sia inserito con la pmcedura RB-IwsERv e quindi sia
Giustificare la risposta.
b
Problemi
10. L albero binario te
coi chiavi 2, 3. 4, 7, 8, 1 perSistll
148 a Un albero binario di ricerca
Figura
14.1 Insiemi dinamici persistenti
dni i odi raggiungibili dalla
r e la versioi e composta
Durante ri tmo, talvolta si ha la necessit di memorizzare le versioni ragg i mg ibili dal1a radice precedenre
la vita di un al passate dai nodi
si inserisce la chiave 5.
radice r. f nodi sn ri soi o aggiunti quando
di un insieme dinamico che viene aggiornato. Un tale insieme chiamato te. U grigi
persistei
o o per realizzare un insieme persistente consiste nel ricopiare tutto l insieme ogni volta
Vi sono molte altre varianti de i alberi binari bilanciati forse i pi affascinanti n i sono g i
gli
alberi auto-aogiustanti .
splay presentati da Sleator e Tarjan 177 , che sono U
e ag iata di questo tipo di alberi data da Tarjan 188 . Gl 1b
ngono il bilanciamento senza alcuna esplicita condizione di bilanciamento come il
, s *
colore.
1 . D altra le o p erazioni a -
parte, p laay che includono rotazioni sono eseguite nell al-
bero tutte le volte che si fa un accesso all albero. Il costo ammortizzato veda il Capitolo
si che strutture i J. ti
non richiede niente di pi
18 di ciascuna operazione su un aibero con n nodi Vi sono molti casi in cui la programmazione
O lgn . i i - ano
manuale , tabelle hash o alberi binari. ma
da come esempio liste bidirezionali,
per
di dati originali. In que. te
altri casi in cui si deve ricorrere a strutture pi
anche molti
struttura di dati per intero
sempre necessario una nuova
circostanze non sar progettare
dati classica agiungendovi ult- rieri
estendere una struttura di
spesso sar sufficiente
che di ott i ere
e quindi definire su di essa le nuove operazinni permetteranno
informazioni
di dati. tut , i,.
dall applicazione. L estensione di una struttura
il comportamento richiesto
aggiunte dovranno e ere
un operazione semplice. dato che le informazioni
non sempre
corrispondente strutl r i di
corretto dalle operazioni della
mantenute ed aggiornate in modo
dati di base.
sono costruite a partire i
due strutture di dati che
In questo capitolo si discuteranno
struttura di dati che essere utilizz t
Il paragrafo 15.1 descrive una puo
struttura a RB-albero.
si potrh determini u
insieme dinamico e mediante la quale
le operazioni di selezione su un
per
di un dato elemento nell ordin.i . n
velncemente l i-esimo elemento pi piccolo o il rangn
di estensione di una strut tur
Il paragrafo 15.2 il processo
totale dell insieme. generalizza r.ito
l estensione di RB-alberi. Nel p.ir.
dati e presenta un teorema che potr semplificare
struttura di dati la,.e.,ti, n
usato come supporto al progetto di una per
15.3 questo teorenm
temponli. Con un .1
di intervalli, come esempio intervalli
di un insieme dinamico per
velocemente un
intervallo di tempo, sar determinare
struttura di dati. dato un certo possibile
in I i-e, in o
di selezione su un insieme particolare
Nel Capitolo l 0 si introdotto il concettn
n. . semplicemente. l clcmci
n e ementi. dove i c l, 2...,.
elemento di un insieme di
ii vedr i A
costi tempo On. In questo paragrafo
tale elemento su un insieme non ordinato
il rango di un cle,ll ti ai
nello atei , modo determinare
Si vedrh.,mche come sia possibile
in tempo Ol ill.
Ii su. nell insiemc ordinato
posizinne
vieni di i li /i
di tl ili che annuente per
15.1 c moitr ta un i itruttur
Nella figura
di strutture di dati 25
Estensione
264 Capitolo 15
Questo campo contiene il numero dei nodi interni del sottoalbero radicato in x x incluso .
cio la dimensione del sottoalbero. Definendo si-e Ntt. 0, si ha la seguente identit.
Per gestire correttamente i casi limite per il valore un., una realizzazione effettiva potrebbe
verificare esplicitamente se il nodo argomento zn. tutte le volte che si accede al campo si e
o pi semplicemente, come gi visto nel paragrafo 14.4, usare una sentinella il T si
per e
rappresentare n., ponendo si-e nil T 0.
4 elseif ir
del rango di un elemento
Determinazione
5 then return OS-SEt.Err left x , i
Nella linea I di OS-S azcr si calcola r, il rango di x all interno del sottoalbero radicato in VX
-,-
s sei rallorailno i nodo.v .v proprio l i-e imo elemento pi piccolo per cui i ella linea 3 sii 3 while y
c root Tj
6 i C pX
del sottoalberob ro ra
radicato - . -
ppiccolo . in.v.- corrisponde all i r -esimo elemento c dele 7 return r
pi piccolo
sottoalbero radicato in ri lit .v . Questo elemet to i determinato in modo ricorsivo nel line.,i li he
6 della procedur .
2 Capitolo 15
RIGHT-ROTATE T, y
iterazione
iter del ciclo while si considera il sottoalbero r ad icato in p yj. j. Si i contato il numero l9
19
i no i che precedonox nella visita simmetrica del sottoalbero radicato n . d 4
X 12
i numero di nodi nel sottoalbero radicato nel fratello di y che d ono.vnella 1i LEm-RovatgT, x
Si supponga, per esempio, di eseguire la procedura OS-RAw trovare il ran o del nodo
per
con chiave 38 nell albero di figura 15.1.1 all inizio del ciclo while si ottiene la seeuente
seguente
aggiornati. La modifica della pri eduta
mostra il modo in cui i campi sono
sequenza di valori I eyfy ed r La figura 15.2
per
Rtom-RovAvz simmetrica.
iterazione keyjy la se , na t- - -
al due rotazioni durante
che in un RB-albero sono operate, pi. .-
Dato . 3ui. .
38 2 aggiornare i campi si e 01
di inserzione, il costo addizionale per .
dell operazione l- .
di selezione di n nodi 0
30 4 I inserimento di un nodo in un albero
il tempo complessivo per
in un comune RB-albero.
3 4 asintoticamente uguale a quello per l inserzione
di due fasi la i p . ..- -
da un RB-albero composta prima
4 26 17 Anche la cancellazione -
tre rotazioni oppure na p.
di ricerc i. la cecondacausa al pi
itruttura di ba e dell albero
u nd
Quindi la procedura restituisce il valore 17 come rano
ango d e 1 no d o con chiave 38. fase si estrae Lin t , i
veda il paragrafo 144 . Nella prima
alcun modifica strutturale si
dal t1i d - --
Dato che ciascuna iterazione del ciclo while cottoalberi sufficiente risalire il cammino
impiega tempo 01 ed y sale nell albero di la dimensintte dei
Per aquino . re - l .-
nodo sul cammini . D.ili
un livello
hvello aad ogni iterazione. . il tempo di esecuz ione -
d i OS-R.. AYK C Il l caso eeeinre del campo si e di ciascun
radice de relllel1t ndu di l il valore st
impie - i-
all altezza dell albero lb ha lunghezza O lgn , il tempo
proporzionale O1 d i selezione di ir nodi. RB-albero con ii nodi, cammino
in un questo t- - -
Le 01 rotazioni della, eiond
il mantenimento del composi e 0 lpt .
prima fase per
Mantenimento della dimensione dei sottoalberi .
e. impiegano temp. il.- .
la gestione dei campi si
la cancellazione. compresi i tempi pe
- composto da n nodi.
Dato o il campo o si. e per ciascun
. nodo, le procedure OS-SELECT e OS-R- pos AoCQC un albero di selezione
Y in ormazioni utiQ, i per il problema della se1ezione. Ma tutto lavora arebbe
questo
stato inutile se questi cam -
p i non p otesses ero essere mantenuti efficientemente dalle
a e o e
Esercizi
i bbase che modificano -a
unn RB-alber ero. SiS vedr adesso come le informazioni d
sull
ri p osa o essere mantenute sia nell operazione di inse h d c i 5. l.
10 sull RB-albero T di figura
15.E-I Mostrare come opera OS-Select T,
o o senza modificare i tempi di esecuzione asintot d i queste operazinni.
arco su quale avviene la rotazione. Rie etto i I eli ii Ici ione di n nulli cal tA Ittttlleto n ll tr ll i. .
CIvI11Cllt0.1 di n alberi
C QQ IlC
pQfBgl 1fO I 4. . SJlil iUftlClClltL l i iun ere Ie e uei li lin i. 15.1-5 D il1llll
15.1-6 Si osservi che il campo ordinamento totale degli elementi dell insieme, come
si e sempre utilizzato da OS-SEwcr o da OS-R vv. insiemi dinamici che prevedono un
solo
per calcolare il rango dir nel set toalbero radicato in x. Di conseguenza, Mtvtwuw, Mmxwut t, SuccessoR e PmoEcessoR.
si supponga
di memorizzare direttamente in ogni nodo il suo rango in ogni nodo x memorizza la dimensione del
rispetto al sottoalbero di cui Per il passo 2 si scelto il campo si-e, che
esso la radice. Mostrare come informazione aggiunta rende le operazioni efficienti.
questa possa essere mantenuta nelle sottoalbero radicato in x. Di solito, l informazione pi
operazioni di inserzione e cancellazione. ricordi essere rea1izzate usando solo le
Si che entrambe le operazioni Per esempio, le operazioni OS-SEiacr e OS-Rw x potevano
possono richiedere rotazioni. . ma non sarebbero state eseguite con tempo Q lp .
chiavi gi memorizzate nell albero,
costituita da un che da dati, come
Talvolta, l informazione aggiunta puntatore piuttosto
,- -
dalfattochegliR -
li RB-alberi risultano effici nti .
sono impiegati operazioni iu
quando peraltri c . O1 la iornamento di ovili che dipcndonu ala tale nuidit ica.
per
270 Capito1o 15 strutture di dali 271
Estensione di
L inserimento di un nodo x in un albero T composto da due fasi veda il paragrafo 14.3 , RB-E UX1ERATE X.O.
si estendere RB-alberi con una nuova operazione
152-D Si desidera gli
Nella prima fase x inserito come figlio di un nodo che esisteva. Il valore di f in.v tali che a I IA.
px gi x pu tutte le chiavi / di un RB-albero radicato
b che restituisce
essere calcolato in tempo 01 dato che, ipotesi, esso dipende solo dal contenuto degli altri con un algoritmo che
per come RB-ExUI IERATE essere realizzata
Descrivere possa
campi di x stesso e dalle informazioni associate ai figli ix, che sono entrambi sn.. Dopo che sono restituite e n
per tempo 8 in 1gii , dove m il numero di chiavi
impiega
che f x stato calcolato, la modifica propagata all indietro sull albero, cui il tempo necessario aggiungere
per dei nodi interni dell albero. Sug gerimeirro non
il numero
complessivo impiegato neIla fase dell inserzione O lgsr . Nella seconda fase, I unica
prima dell RB-albero.
nuovi campi ai nodi
modifica strutturale all albero deriva dalle rotazioni. Dato che in una rotazione cambiano solo
due nodi, il tempo impiegato in ogni rotazione l aggiomamento dei campi
per f O lgsi .
Quindi, visto che al pi ci sono due rotazioni ogni inserzione, il tempo complessivo
per per
l inserzione 15.3 Alberi di interva11i
di O lp .
Come l inserzione, anche la cancellazione composta di due fasi veda il paragrafo 144 i.
si operazioni su insiemi dinamici di
RB-alberi saranno estesi per offrire
Nella fase si verifica una modifica In questo paragrafo gli
prima all albero solo se il nodo cancell ato sostituito dal r, t..
coppia ordinata di numeri reali t,, r, dove
intervalli. Un intervallo chiuso una
suo successore e poi di nuovo o il nodo cancellato o il suo successore sono ef-
quando Intervalli aperti o semiaperri
r, rappresenta l insieme r e R t, r t .
fettivamente estratti. La degli L interval1o t,,
propagazione aggiornamenti di f causata da modifiche
queste
costa al pi O igl dato che agpornamenti modificano l albero localmente. Modificato
gli ottenuti agli intervalli
intervalIi siano chiusi l applicazione dei risultati
l RB-albem, si assumn che gli
la seconda fase richiede al pi tre rotazioni e per ogni rotazione si impiega al pii
tempo aperti e semiaperti immediata.
O lp per propagare gli aggiornamenti di f. come l inserzione. il tempo
Quindi, per in
di eventi ciascuno dei quaIi si manifesta
complessivo la cancellazione O lp . Gli intervalli sono adatti alla rappresentazione
per
richiedere ad una base di dati di
continuo di tempo. Per esempio, si potrebbe
n per odo
un certo intervallo. La struttura i
temporali, eventi si sono verificati durante
interva11i quali
In molti casi, come il nmntenimento del campo si-e alberi di selezione. una tale base di
per per gli il cnsto ad essere utilizzata rappresentare
dati di questo paragrafo ben si presta per
dell aggiornamento una rotazione di 01, anzich O lgn ,
per come dimostrato nel
dati di intervalli.
Teorema 15.1. L Esercizio 15.2-4 ne fornisce un esempio.
come un oggetto i con campi low i t, l estremo
Si pu rappresentare un intervaIlo t,. r
Esercizi
IS.2-4 Sia 8 un operatore binario associativo e sia a un campo mantenuto in ciascun nodu
di un RB-albero. Si supponga di voler includere in ogni nodo l
un ulteriore campo
f tale che f r a s-, 8 cc r,J O 8 a i- , dnve x, i,....,.v l elenco in ordine
simmetrico dei nodi del sottoalber radicatn in x. Mostrare c
che il campo f pu essere b
aggiornato con un tempo Ol j dopo una rotazione. Ad ttare il ragionamenti
cegilito per mostrare che anche il campo si,,e ne li alberi di ielczione u eiicr.
mantenuto con un tempo 01 ngni iotazione.
per
I ni i f. c lriylr fi f Irni fi .
di strtture di dati 273
272 Capitolo 15 Esrensione
26 26
Passo 2 informazione aggiunta
25 30
19m20
17 19 che il pi degli
intervatli stessi, ciascun nodo x contiene un valore, inax .v , grande
16 Oltre agli
21
nel sottoalbero radicato in x. Dato che in qualsiasi
15 23 estremi degli intervalli memorizzati
8w9 l estremo sinistro, niax x contiene il pi
intervallo l estremo destro vale almeno quanto
6 10
tra estremi destri nel sottoalbero radicato in x.
58 grande tutti gli
03
1 x roor Tj
Un albero di intervalli un RB-albero che memorizza un 2 while.v c sic ed i non si sovrappone a int x
insieme dinamico di elementi.
con ciascun elemento x contenente un intervallo int i . Sugli alberi di intervalli sono previste 3 do if lefr x o wc e ina.v lefi .v j lo i
le seguenti operazioni.
then x lefi x
INTERV L-INSERT T, x a eiun ,e 1 elem ento x, il cui campo inr si suppone contenga un
5 else x right .r
intervallo, all albero di intervalli T.
6 return x
ImERv t.-Da.ere T, x rimuove l elemento.v d ll albero di intervalli T.
, a
INTERt AL-SEARCH T, i res
restituisce il puntatore -
, ad un elemento s nell albero ero di i intervalli
interra i T tale assegnattdo ed.v il i flore della radice
La ricerca di un intervallo che si sovrappone v i comincia
,
che inr xJ si sovra pp one all l intervallo i, oppure sta .se un tale elemento i non verso le foglie. Essa termina quando viene troi to un intervallo
dell albern e procede quindi
nell insieme. itmpiega tempo
sic. Dato che cia cuna iterazione del ciclo
g oppure quando. assume il x zlore
La figura 15.4.. mostra come un albero
b di intervalli O lgi . si conclude che I i procedura
rappresenti un insieme di ll . P 01 e dato cl1e l vltezza di un RB-albero di n nndi
a progettazione di un albero di intervalli e delle operazi . g . d esso,i Itnrvv,sc-Se i cw impie a tempo O lpr .
seguiranno i quattro del metodo nel se ne
passi proposto paragrafo 15.2. la cnrrettezza delln lsvvav.xt.-St wRcw.
Prima di prendere in considerazione procedura
Si sce lie un RB-albero in cui ciascun nodo.s contiene un intervallo inr .vj c la chi,tvc di i
., he a iud v ito non ii s wrapj onc l i. Aquinato punlo.
come on
interv i della1 dice, il nodo contenenle 8. 9.
.. .v, e o. Qi il di la vincita in orcliii
simmetrico dell vlbero elenca intervall
ali d ittiti rispetto ull slrcnso.iiniitro.
F femionedisf hd f 275
max lefr x 10 pi di low i 22, cui il ciclo continua con il figlio destro di
piccolo per
x come nuovo x. L intervallo 15, 23 memorizzato nel nodo si sovrappone a i, per cui la
procedura restituisce il puntatore a questo nodo.
i. restituisce li e rvallo
e quindi. 3-3 Descrivere un algoritmo efficiente che. dato un intervallo
per la tricotomia degli intervulli, i e i non si sovrappongono, il che completa l5
lu ii- se un tale
estremo sinistro. oppia
dimostrazione del caso 2. che si sovrappone a i, che abbia il piir piccolo
i elencare
inlcrv Alo i. descrivere com piii ann
1.5 7-4 Dati un a hcro di intcrv ioli Ti d nn
destr o di x possa sovrapporsi a i. Si osservi che se viene ese uitu la linea 4. allor i la .l . o
per ijinco cji output. O -ir n tl . lf
il numero de li intcrv,. lli diti
153-5 Descrivere possibili modifiche da apportare alle procedure per gli alberi di
un algoritmo con tempo On lpr che. dati due
b. Si supponga m non costante. Descrivere
intervalli in modo da offrire l operazione Imzav t.-SE RcH-Ex cri.v T, i. che
f la permutazione di Giuseppe Flavio n, tn .
interi n e m, calcola
restituisce il puntatore ad un nodo.v dell albero di intervalli T tale che low inr v
l
loii i e liigli inr x big/t i , oppure n. se T non contiene un tale nodo. Tutte
le operazioni, compresa IvrEav i-Se Rcw-Ex crcv, dovrebbero essere eseguite in
tempo O 1gn su un albero di ii nodi. Note al capitolo
153-7 Le basi di dati VLSI comunemente rappresentano un circuito integrato come una
lista di rettangoli. Si assuma che ogni rettangolo abbia i lati paralleli a li assi.i- e y.
in modo che la rappresentazione di un rettangolo sia costituita dalle sue coordinate
.r e y minime e massime. Fornire un algoritmo che decida in tempo On 1gn se un
insieme di rettangoli cosi rappresentati contenga due rettangoli che si sovrappongono.
Non necessario che l algoritmo elenchi tutte le coppie che si intersecano. ma deve
rispondere che esiste una sovrapposizione se un rettangolo ne copre interamente un
altro. anche se i loro lati non si intersecano. Suggerimento far scorrere una retta
attraverso l insieme dei rettangoli.
Problemi
Il problema di Giuseppe Flavio definito nel modo seguente. Si supponga che n persone
siano disposte in circolo e che sia d, to un intern positivo ni n. Cnminciando datla per ana
numero I. si procede intornn al cerchio allontanando ogni m-esima persona. Dopo che ana
persona stata allontanata. il conteggio continua con le persone rimaste nel cerchio. Questo
procedimento ripetuto finch tutte lc n persone sono tateullo ttanate. L ordine cnn il quale
le persone sono allontanate dal cerchio rappresenta la permuta ioide di Giuseppe Flaviv ir, m
de li interi 1. 2, ... n. Per esempio la permutn ir ne di Giuseppe Flavio 7, 3 i 3. 6. 2, 7. 5. l. 4 .
a. Si supponga m costante. DescriVCli Llll lllgoritmo con tempo On che. dato un intero n.
calcola la permutazione di Giuseppe Flavio n, ni .
N.d.R.
ll probi m,i i i. hiatnau coii pr.rch iprite i irril no i irn ru cimtu dello iteri del i ciil Ciiuii pp Flaviu.
prinni
Introduzione
Tecniche evolute per i/progetto e l analisi
di algoritmi
In questa verranno tre metodi molto importanti per il progetta e l analisi di
parte presentati
lgoritmi efficienti la programmazione dinamica Capitolo 16 , gli algoritmi greedy Capi-
Come abbiamo descritto nel Capitoln I, gli algoritmi basati sul metodo divide-et-impera
potrebbe essere ottenuto con algoritmi pi semplici e pi efficienti. Gli algoritmi greedy
adottano la strategia di prendere quella decisione che, al momento, appare come la migliore.
In altri termini, viene sempre presa quella decisione che, localmente, la decisione ottima.
senza preoccuparsi se tale decisione porter a una soluzione ottima del nella sua
problema stabilisce il costo ammortizzato di
al metodo degli accantonamenti, nel senso che
In non sempre esiste un algoritmo che determina che simili
globalit. generale, greedy la soluzione successi-
operazione, sovrastimando, inizialmente, il costo d p erazioni
ottima di un qualsiasi tuttavia algoritmi essere utilizzati ogni
problema. gli greedy possono per f
. Differente- e-
viene u t i 1iz zato compensare i costi sottostimati.
ottenere le soluzioni di alcune classi vamente, questo a dd e b ito per d
di problemi.
assoc l d 11a
ente dal metodo degli aggregati, dove il credito
Un semplice esempio fornito dal deI resto con un numero minimo di monete.
problema il credito pi visto come
struttura di dati. nel metodo del potenziale propriamente
Questo problema pu essere cosi formulato si deve minimizzare il numero totale di monete il
della struttura di dati.
o pi semplicemente potenziale ,
necessarie per dare il resto a un cliente. Una strategia che risolve potenziale,
questo problema consiste
nel selezionare ogni volta un certo numero di monete di valore massimo la cui somma non
supera l ammontare di denaro che deve essere ancora restituito.
Nel Capitolo 18 Verranno introdotti tre metodi diversi per effettuare l analisi amnsortizzata
di algoritmi. Nel metodo degli aggregati si determina
prima un limite superiore Tn del costo
totale di una sequenza di n operazioni. Il costo ammortizzato di una operazione dato da T n l
n. Nel metodo degli accantonamenti si stabilisce il costo ammortizzato di oceani operazione.
Quando si considerano operazioni di tipn diverso, aIlora accadere
pu che il costo ammor-
tizzato di una operazione vari a seconda del tipo. Il metodo degli accantonamenti addebita un
costo aggiuntivo a determinate operazioni della sequenza questo addebito deve essere
considerato credito
come un relativamente
prepagnto a quello specifico op etto de.Ila
struttura di dati.
lo stesso sottoproblema.
f O pB. iSl
A, A, A,A , scalari.
A, A,A, A, ,
Determinazione del numero di parentesizzazioni
A, A, A, A .
I SCII I
Nel seguito, i te mpo di esecuzion . verr sei ipre espresso ii termini lei nun ero li
moltiplicazioni PkPn k sc tt 2 .
scalari. g
286 Capirolo 15
j allora la sequenza
cn Possiamo definire in i, j ricarsivamente nel modo seguente. Se i
Il primo passo del paradigma della programmazione dinamica la caratterizzazione della m i, m i,k mk l,p Pi-iPcPp
j
strut tura del la soluzione ottima. Nel caso del problema del prodotto di una sequenza di matrici assume che il valore di l sia noto ma chiaramente questo
L equazione ricorsi va precedente
questo passo pu essere realizzato nel modo seguente. Per ragioni di convenienza di valori di l sono i dato che k i, i I..... Poich
non il caso. Tuttavia, i possibili j j-1.
notazione, indichiamo con A, la matrice risultato della valutazione del prodotto matriciale necessariamente assegnare a t- uno di questi val ori. il valore
la parentesizzazione ottima deve
A A, A, Una parentesizzazione ottima del prodotto A,A, A, divide il problema nei due dal valore che minimizza l equazione Pertanto
migliore da assegnare a l dato precedente.
sottoproblemi del prodotto delle prime / matrici e del prodntto delle rimanenti matrici. per costo minimo della ottima del prodono
la definizione ricorsiva del parentesizzazione
un qualche intero k tale che l k ir. In altri termini, prima si determinano le matrici A,
A A,, A diventa
e A ,, per un determinato valore di / . Infine, la soluzione finale A, il risultato del
0 se i j,
prodotto delle due matrici ottenute in precedenza. Il costo della parentesizzazione ottima dato
li.il min m i,k m k 1,j p pqp, se i j. 16.2
dalla somma del costo del calcolo della matrice A, con il costo del calcolo di A,
, lkj
a cui si deve aggiungere i1 costo del prodotto delle due matrici. tenere
tn i, definisce i costi delle soluzioni ottime dei sottoproblemi. Per
Il valore di j
A questo punto vogliamo mettere in rilievo una proprieth cruciale del problema che stiamo ottima, definiamo s i, valore k per cui.
traccia del modo in cui costruire una soluzione jj quel
esaminando. La parentesizzazione di A, A, A, nella parentesizzazione ottima di A, A, A una ottima. In altri termini,
dividendo il prodotto A A A. si ottiene parentesizzazione
i iI j
devenecessariamenteessereunaparentesizzazioneotri nadiA,A, A,, Ilperchdellavalidit n i. L ml I, j
s i, j quel valore k tale che m i, j p, p, p,.
di questa propriet presto detto. Se esistesse una strategia meno costosa per ottenere una
Soluzione ricorsiva
n muni il secondo se no distintivo e criterio di applicabilith d ll prugr imnsazione
d namica.
Il secondo passo del paradigma della rammazinne dii amica consiste ne l i definizione
pro
del valore i urr soluzione ottima ricoriii anicnte in termini dei valori ilill olu ivni ovini
Q ir .
2 fori I ton
memoria necessaria memorizzare le tabelle m e s 8 n- . In
Inolue, la quantit di per
3 do m i, i -0
si dimostra molto pi efficiente dell algoritmo
conclusione, la pmcedura MwvRm-Ca t -ORoaR
4 fori 2 ton
esponenziale che controlla in modo esaustivo tutte le possibili parentesizzazioni.
5 dofori I ton I l
S
6 60 j -i l- l
7 m i, j m
i
8 forkc itoj 1 J
do J
9 q - m i, k m l- 1, j p, p, p
10 ifq m i, j
Il then m i, j q
12 s i, j l
13 return m ed s
L algoritmo costruisce la tabella m nello stesso ordine in cui viene risolto il problema debbia A, A AI 4
A
principale della tabella i isposla orizzc ntalmente e la sequenza delle matrici i elenchi - 43 tS 0 35 10 0 I1375
m 2, 4 i r 5. 5 p f pp
subito sotto la figura. Per cnme dispost ila tabella nella figura 16. I, i pu notare che il coito
7125.
mininso ni i, j del prodotto di una scquenra di matrici A A, A risei trovato s ipr
pii
290 Capitolo E6
Progranuna ione dinamica 29 J
Questa informazione ci assicura che l ultimo prodotto matriciale nel calcolo ottimo di A,
dato dal prodotto A, A, C111818mente
questi prodotti matriciali possono essere 16.2 Elementi di programmazione dinamica
calcolati in modo ricorsivo il valore s 1, s 1, n definisce solamente l ultimo prodotto
matriciale nel calcolo di A, Anatogamente, s s l, n 1, n definisce l ultimo
,. prodotto solamente un esempio di applicazione della
Nel paragrafo precedente abbiamo mostrato
matriciale nel calcolo di A,, La seguente procedura ricorsiva calcola la matrice A
tecnica della dinamica a questo naturale chiedersi quale sia la
programmazione punto
risultato del prodotto di una sequenza di matrici. I parametri della sono la sequenza
procedura risolti con tecnica. In
classe di problemi che possono essere questa questo paragrafo
di matrici A A, ... A . la tabella s costruita dalla MwvRtx-Cesti-Oeoee e gli
procedura ottima e sottoproblemi comuni, che un
esamineremo le due propriet basilari. sonostruttura
indici i e j. Si assume che la chiamata iniziale della procedura sia Ma,TRtx-CwAii-Mt t.rivLs A.
di ottimizzazione deve affinch si applicare la tecnica della
problema possedere possa
5, I, 11 .
dinamic a. Inoltre. una variante della tecnica della program-
programmazione presenterenso
mazione dinamica, detta ricorsione con memorizzazione nsemoi -ation , che si avvantaggia
MATR1X-CHAIY-MULTIPLY A, s, i, j della dei sottoproblemi comuni.
propriet
l ifj i
292 Capitolo 16
mw
possono
esempio,
j, ri
lo spazio dei sottoproblemi che abbiamo considerato nel caso del di una
prodotto
sequenza di matrici include tutti i sottoproblemi le sottosequenze della sequenza di
per
inpesso.
i
Avremmo potuto anche scegliere come spazio dei sottoproblemi sequenze arbitra-
rie di matrici
soqoproblemi
costruite
troppo
a partire
grande
dalla
un
sequenza
algoritmo
di ingresso.
di programmazione
Tuttavia
dinamica
quest ultimo
basato
spazio
su questo
dei
3,.3
ri 4..4 2..2
i 3.3
2..2 3..3 1..1 2.2
4 for kc itoj l
Rzcuastvc-MATRIX-CHAIN J, li 1, j f p
p
1 Tn k i j per n l .
Tn
come la procedura gTk
fv1 reix-C , ii-Or trr riutilizzi le nluzioni dei sottoproblemi delle righe
interiori durante I ii oluzione dei sottnprublemi delle righe superinri. Per esempio, l ele-
2, .... it I, si una volta coiae T4
n iti come un termine Ti. i l, presenti
Si generico per
mento nei 3. 4 viene utilizzato ben volte. durante il calcolo di or 2. 4. n
per quattro l. 4j.
m 3, 5 e in 3. 6j. Sc. m 3. A Ioidi calce l. tt 11uos ametlte ogni vC lta, itlvecc che Citare fl iC1 IVCre ec uazione di ricorrenza
IJ C ll I I tUOl1 8 lll l i0111Al ilOf1 i
SOllllllDtOI pO iSll110
COI11C
Tn 2g Ti n . 164
i i I g
t. I
termini clcll cquazione di ricorreivz. 1 i.2 .
294 Capitolo 16 dinamica 95
Prog ranuna-ione
MEh10lZED-MATRIX-CHAIN p
n-I
n n length p 1
Tn 22 1
il 2 forim 1 ton
n-
3 do for j i ton
22 n
4 do mji, j m
i0
g pn-I
5 return Loovue-Cewti p, 1, n
2 2 n
LooKUP-CHAIN p, i. j
pn-I
l if m i, j
Questo conclude la dimostrazione. In conclusione, il numero totale delle operazioni eseguite 2 then return m i. j
a una chiamata della Recuastve-Mwmn-CHwtw p, l, risulta essere esponenziale in n. 3 ifi j
Si confronti il precedente algoritmo ricorsi vo top-down con l algoritmo di programmazio- 0
4 then m i. j
5 else for k m i to j 1
i. k
dinamica li risolve ciascuno una sola volta. Al l algoritmo
6 do q c Loovup-Citi p.
programmazione contrario.
Loovuv-Cv. i p, I- 1, j p,, p, p,
7 if q ai i, j
sottoproblema si ripresenta pi volte. allora una buona idea domandarsi se non siapossibile
8 then m i. j q
applicare la tecnica della programmazione dinamica.
9 return rn i, j
I.
ne utilizzo
I .. di tecnicllC l1ISllii
, 1Vi. . 1 LILI i. lll 1plOI1II Illl VLI1Ll ll 1
p Il lllll ll1 Ut/ll//, Ill IIlll11C
lll11C ILlllilXll lli I,
dinamica 297
Progranvnazione
296 Capirolo K
- di X B, C, 8, D. A, 8, dove
.z, Per esempio, Z 8, C, D, B una sottosequenza A,
tabella, pertanto. in totale si impiega tempo On . Quindi, la tecnica della ricorsione con
la corrispondente sequenza di indici risulta 2, , 5, 7 .
memorizzazione trasforma un algoritmo Q2 in un algoritmo On .
una sequenza Z una sottosequen a comune
Date due sottosequenze X e Y, diciamo che
In conclusione, il problema del prodotto di una sequenza di matrici essere risolto in un
pu se X B,
di entrambe le sequenze X e Y. Per esempio, A,
tempo On sia da un algoritmo top-down, che impiega una tecnica di ricorsione con di X e Y se Z una sottosequenza
C, A una sottosequenza comune di
C, B, D, A, B e Y 8, D, C, A, 8, A la sequenza B,
memorizzazione, che da un algoritmo bottom-up di programmazione dinamica. Entrambe le
comune LCS - di Xe Y, dato
Xe Y. La sequenza 8, C, A non la pi lunga sottosequenza
soluzioni si avvantaggiano della dei sottoproblemi comuni ci sono solamente 8 n-
propriet lunghezza 4. La sequenza
C, B, A , che comune a X e Y, ha
sottoproblemi distinti e le due calcolano soluzione che lunga 3 e la sequenza B,
procedure la di ogni sottoproblemu
D, A, 8 non esiste alcuna
C, 8, A una LCS di X e Y, come pure la sequenza 8,
esattamente una sola volta. Senza I uso della memorizzazione, l algoritmo ricorsivo naturale B,
di 1unghezza maggiore o uguale a 5.
richiederebbe un tempo esponenziale dato che sottosequenza comune
lo stesso sottoproblema verrebbe risolto i
sono date due sequenze X X,,
volte. Nel della lunga sottosequenza comane
problema piii
lasottosequenzacomunedi Xe Ydi lunghezza
In ...,x e Y v,,y ...,y e si vuole determinare
generale, se tutti i sottoproblemi devono essere risolti almeno una volta, allora un
della LCS essere risolto
massima. In questo mostreremo come il problema possa
alooritmo bottom-u d i pro rammazione dinamica pi efficiente di un fattore costante paragrafo
efficiente con la tecnica della dinamica.
rispetto a un algoritmo ricorsi vo top-down con memorizzazione. Il motivo che in modo programmazione
non c alcun
costo per la ricorsione e si ha un costo minore il mantenimento della tabella. Inoltre. la
per
struttura regolare degli accessi alla tabella di alcuni essere utilizzata da un lunga sottosequenza comune
problemi pu Caratterizzazione della pi
algoritmo di rara mmazione dinamica per ridurre ulteriormente i vincoli di tempo e di
spazio. Tuttavia, se nello spazio dei sottoproblemi esistono dei sottoproblemi che non tutte le
il problema della LCS consiste nell enumerare
Un metodo di soluzione ingenuo per
necessitano mai di essere risolti. allon una soluzione ricorsiva con memorizzazione ha il di
che ogni sottosequenza sia anche una sottosequenza
sottosequenze di Xe nel controllare
notevole vantaeeio di r v ere solo quei sottoproblemi che sono strettamente necessari. sulla
risolutivo bisogna mantenere l informazione pi
Y. Durante ogni fase del procedimento
Dato che ogni sottosequenza di X corrisponde
lunga sottosequenza trovata fino a quel punto.
Esercizi richiede un ten po
2...., m di indici di X, la soluzione ingenua
a un sottoinsieme l.
impraticabile sequenze lunghe.
esponenziale. rendendola. pertantn, per
l.2-I Si confronti l equazione di ricorrenza 16.4 con l equazione di ricorrenza 8.4 che
della sottostruttura ottima, come
Tuttavia, il problema della LCS soddisfa la prnpriet
viene fuori dall analisi del tempo medio di esecuzione dell al oritmo del t.
quickso nel seguito, la classe naturale dei
dimostrato dal teorema seguente. Come vedremo
i dia la motivazione intuitiva del le soluzioni delle due equazioni di
perch di delle due sequenze
de della LCS conciate nelle coppie prefissi
ricorrenza debbano essere sottoproblemi problema
cosi diverse.
X r, v ..., x diciamo che X i prejisso
di ingresso. Pi data una sequenza
precisamente,
con i 1, 2...., in. Pere empio. se
della sequenza X se e solo se X l X ...xe ,
i-esiino
16.2-2 Q
Qual il m o d o piii efficiente determinare il numero ottimo di moltiplicazioni vuota.
per allora X B. C. 8 e X la sequenza
X A, B. C. B, D, A, B, A,
scalari nel problema del prodntto di una sequenra di matrici enumerare tutte le
LCS di Xe Y.
qualunque
16.2-3 Si disegni l albero -, di X, e Y,
di ricorsione della procedure VIERGE-SORT, descritta nel 1. Se.v allora .v s e Z,, una LCS
paruera- y,
fo I.. 1, quando viene applicata a un vettore con 16 elementi. Si spieghi il motivo -, di X,, e V.
2. Se. - W e w x ,. allora Z una LCS
- y
pper cui la tecnica de v ricorsione con memorizzazione t on un aumento di
produce LCS di X e Y
3. Se .v w e ,w . allora Z u
eefficienza . viene applicata d y y
quando a un buon aal or t ri mo d i tipo
t d ivi e-et-imper i
come il fu1zem-Sonar.
una sottosequenza comune di
Se fobie . allora si costruire
Di nostra ione, l - c,v potrebbe
y . Chianinente. questo
Y di lungherza I 1 baiterebbe concatin iri. a Z l elemento.v
Xe
sottoicquenza cotnune di X e Y.
16,3 II problema che Z si i la ho ga
della pi lunga sottosequenza comune uno contraddizione dell ipotesi i
hcr a ch .
di e Y, di liin I 1. Dimoitriah1o queste pretisso
Il che nnlizzerento sottoiequenza comune X,
pro,sinodo problema il probi d 11. I Ullg,.l SOttOSC.gUcI1Z.,1 COI11LlllL..
Ullu iOttOSC i
Llcl1l. 18 . i . lll1I
c COll ClC Uslollc I
etto
iene st ttovequen -a di X se eiiite una sec u nz t. strali -
.. ...... .ci il in lcic1 iii cit C im man itihcequeniv.
mente crescente.
s tl e. i ....
,... i
i, d.
di illclici di X tale elle tlttti indici I. 2.... I. v tic Nci T.. I Ci i l acrw iinii termini
r.,
r,, per eli j
Progranvna ione dinamica
298 Capitolo E6
Il Teorema di caratterizzazione 16.1 dimostra che una LCS di due sequenze contiene al suo
interno una LCS dei delle due sequenze. il della lunga
prefissi Quindi, problema pi LCS LEiSGTH X, p
sottoseqdenza comune soddisfa la propriet della sottostruttura ottima. Inoltre, come vedre-
1 m length XJ
mo nel seguito, una soluzione ricorsiva soddisfa anche la propriet dei sottoproblemi comuni.
2 n c length Y
3 fori I tom
Soluzione ricorsiva dei sottoproblemi
4 dee i.0 0
5 for j c- 0 to i
Il Teorema 16.1 implica che, si vuole determinare una LCS di X
quando v, r,...., x e
Y 6 do c 0. j 0
y,, y ..., y, , si devono considerare uno o due sottoproblemi. Infatti, se.v i, per
determinare una LCS di X e Y basta trovare una LCS di X e Y e concatenare 7 fori 1tom
rn- l e-
a quest a
I
LCS l elemento.v y . Nel caso in cui x w y, allora si devono risolvere 1 to n
due sottoproblemi do for j
bisogna trovare sia una LCS di X, e Y che una LCS di Xe V,. La pi grande di queste due do if v i
9
LCS una LCS di X e Y.
then c i, - ci 1, j l l
10 j
facile notare che il problema della LCS soddisfa la propriet dei sottoproblemi comuni.
b i, j m
Per trovare una LCS di Xe Y si deve necessariamente trovare sia una LCS di X, e Y sia una
LCS else if chi i 1. j e i. j l
di Xe Y,. Entrambi i sottoproblemi devono risolvere il problema di trovare una LCS
di X, e Y,. Chiaramente, molti altri snttoproble mi devono then c i, j m ci 1. j
affrontare e risol vere i mede in ,i
sottoproblemi. -T
14 h i, j -
Come nel caso del problema del di una sequenza di matrici c i. 1
prodotto la nostra soluzione else c i. j j
ricorsii a del problema della LCS comporta la definizione di una m
equazione di ricorrenza per m
16 I i. j
determinare il costo di una soluzione nttima. Definiamo c i. come
j la lunghezza di una LCS
delle sequenze X e Y. Se uno 17 return b, c
o l altro degli indici i e j ueuale a 0. allora una delle due
sottosequenze ha lunghezza 0, la LCS ha lunghezza 0. La
quindi sottnstruttura ottima del
dell LCS-
problema LCS permette di derivare la formula ricorsiva le tabelle restituite cnmc risultato dallachiznsata procedura
La figura 16.3 nsostra
0 i0
SC o j O, della i 0
in tempo 01 e quindi il tempo di esecuzioise proi eduta
eli. j ci 1, j I 1 tzbella calcolato
se i j0 e x, y,,
l6.5
max c i. j 1, ci 1, j se i j0 e x, y,.
j 0 1 2 3 4 5 5
a sostanziali miglioramenti asintotici. ia in temP
casi, tuttavia, le modifiche possono portare
a, D C A a
che in spazio.
non utilizzare 1- t ll .
i 0 0 o Per esempio, la soluzione del problema della LCS potrebbe
o o o o
dal valore di Atri r
I A .p T T g Infatti. il valore di un elemento c i. j dipende solamente
generico
elementi della tabella c c fi 1, j- 1, ci 1, j e c f i j- 1 J. Dato il valore di e i..i po. o
2 p tre i oliari stato
0 -.I 2 2 determinare, in tempo 01 e senza accedere alla tabella h, quale di questi
molto imito alla
t utilizzato calcolare c i, Quindi, utilizzando una procedura
o per j.
I. 2 2 2
PRO-LCS costruire una LCS in tempo Om n. Yell E -- ciglio
4 1 33
procedura possiamo
0 1 l 2 2 modifica riduia li . p io
16.3-2 si chiede di scrivere la Sebbene questa
procedura.
5 t 1 --t
t calcolo di una LCS non
D richiesto di una O mn , lo spazio necessario per il
2 2 2 3 3 quantit
bisogno di uno spazio d-11 i rdine
6 .A T diminuisce in modo asintotico infatti abbiamo sempre
0 1 2 2 3 3 4
8 mn per memorizzare la tabella c.
7 t t tp l
B
0 l 2 2 3 4 diminuire lo spazio asintotico richiesto dalla LCS-I
4 Tuttavia. possiamo procedura
.i - 1
infatti la procedura, a ogni istante, necessita di sole due righe della tabella c. la ri
Figura
F o 6.3. Le tabelle c e b calcolare dalla . ao
procechrra LCS-LE ENGTH app l icata alle seqr,er,-e X realt. si utilizzare una di .pi
A. in precedenza e la riga in esame. In pu quantit
...,,, .,C,A,B,A . E el ..
ge emenro delfa tabella di rlgn i e coloima
. . j contiene il valore
maggiore dello spazio richiesto memorizzare na riga della tahell-l
c r, e leggermente per
va ore e emenro c 7, 6 nell ai qolri
effettivi solo nel caso in cui .i -
l Esercizio 16.3-4. Questi miglioramenti sono
O,l,. b a U, f n, o di una LCS se il problema richiede di restituire gli lC l
,... d. determinare la lunghezza
j .c .j- e j c 6n c allora la tabella di dimensioni minori non conterrebbe abbastanza inti nv i P
LCS.
i una sufficieirte segnire le frecce b i, a partire dall angolo n.
N
inferiore destro del1a tabella. ricostruire una LCS in un tempo dell ordine di O i
gni ffreccia ddel I ti p o sul l ca nnrino corrisponde a l
cn elemento in C/ 11O fg C
jj LCS,. B,, I, ,.
Esercizi
PRttvT-LCS b, X, i, j
2 then return .
mostri come ia ricostruire una LCS in tempo O vi
l.3-2 Si possibile
3 ifb i, j 4
utilizzare la tabella f . ma avendo disposizione la tabella c e le SCQU
4 then PRIxT-LCS b, X, i 1, j l X
XX CYQ V fV
X
5 x,.
print
- 1 LCS-l-
6 else if b i, 16.3-3 Si dia una versione ricorsiva con memorizzazione Jella procedura
j
7 then eseguibile in tempo O mn .
P m-LCS b, X, i i, j
8 else PRtrlv-LCS b, X, i. j 1
di una LCS utilizzando solamente - miil .
16.3-4 Si mostri come calcolare la lunghezza
in 1CI11pO O I1 IQ pi lllll l . l .9
16.3- Si determini un sl oritmv per trovare
Una soluzione efficiente
pi n numeri.
monotona crescente di una sequenza i
uan ,
s oilprogettodiunalgnritmo,ca
Quandosiconclu . - - - -
pi t a spessn
.. di accorgersi . che il tempop di Ign la lun a ii ti l
J G.3-6 Si determini un al ori mo tro, , . e in tempo On pii,
esecuzione e la di memoria utilizzata per
quantit dall al o itmo essere n i liorati.
possono
Questo accade molto frequentemente nel caso d IA
goritmi che hztin uno snluziune
immedinta con tecniche di ranuzzzioiw. dinamica.
pro
Alcune
Al modifiche . semplificare a e
possono c., la .struttur ura d e ll 1g - indole 1
goritmue mi liorur I etticient,t lllOt II/1I1t lL LOllOlCC ltCll/v C llltli l il c llc sii mi 1
i un fattore costante. ma senza a nti lineame
porture t, d ella ff icicn a. fn alcuni d in rcii .
programma inne dinamica 303
302 Capirolo 16
I l
geometrica delle considerei oli e sorprendenti analogie con il problema del prodono I i
I
presenta I
I 5
l I
di una sequenza di matrici. i
I
I
1
i
Un poligono una spezzata chiusa del piano bidimensionale. Ovvero, un poligono una I g
I
I
I
I
spezzata che si richiude su se stessa ed formata da una sequenza di segmenti di retta. detti I
I
paragrafo considereremo sempre poligoni semplici. L insieme dei punti del piano racchiusi
b
del che a
da un poligono semplice detto interno del poligono. L insieme dei punti piano
stanno sui lati del detto Infine, l insieme dei che stanno triangola io re di un cr r 7
poligono perimetro. punti Figura 16.4 Dire triangola ioni di tn poligono
coiivesso. Ogrri pc ligono
in un m,mea rii rricmgoli a
all esterno del detto esterno. Un poligono semplice detto convesso se. presi due Ira rm,rirmero di corde uguale a 7 3 4 e li,.ide il poligw,o rri
poligono lati
che appartengono al perimetro, o all interno del poligono, il segmento di retta T-2 5.
punti qualsiasi
che li unisce formato da punti che appartengono al perimetro o all interno del poligono.
Analogia con la parentesizzazione
Generalmente un poligono viene rappresentato elencando, in senso orario, l insieme dei
Siano i e v. due vertici non adiacenti, il segmento ,v, detto corda del una corda strutture ad albero.
poligono
una espressione corrisponde a un albero binario
i,v, divide un in due v, ,,, ..., v e v, , ..., i . Una triangota-io te Una completa di
poligono poligoni parentesizzazione
dell espressione. La figura 16.5 descrive
di un consiste in un insieme T di corde del che divide il poligono in un completo, altrimenti detto albero di parsi tg
poligono poligono
del della sequenza di matrici
insieme di triangoli poligoni con tre Iati disgiunti. La figura 16.4 descrive due possibili Inalbero di parsiisg della parentesizzazione prodotto
triangolazioni di un poligono di 7 lati. In una triangolazione le corde non hanno intersezioni 16.6
i - s
con la sola eccezione dei punti terminali , inoltre l insieme T delle corde massimale una
etichettata con uno dei con ponenti atomici matrici
corda che non appartiene all insieme T interseca almeno una delle corde in T. I lati dei Ogni foglia dell albero di parsing
triangoli risultanti da un triangolazione possono essere sia corde della triangolazione che lati
che rappresenta l espressione E,. ed un
del la radice del sottoalbero ha un sottoalbero iinistro.
poligono. Infine, ogni triangolazione di un poligono convesso con ri vertici ha n 3 corde
E, Esiste una corrispondenza biunivoca tra
e divide il poligono in n 2 triangoli. sottoalbero tleitro. che rappresenta 1*espres ione
dalle corde di P. Il problema consist nel determinare una triangolazione che mitsimizza li
somma dei pesi dei triangoli nella tri n,,olazione del poligono. Una funzione pe.,-o a,-,oci t,
in modo naturale ai triangoli
L D L j1 it /,. 4 l, .1, j
l,i l,l
dove, i- v. la distanza euclidea tra i e i . L algoritmo che stiaimo ettando non dipene
pro
dalla sci.lta della funzione peso 1 i tunz on peso essere definita in modo irbitrario.
puo
A ottima
Sottostruttura di una triangolazione
A,
a b
sovrapposra all albero di Ogni matrice A corrisponde al lato l 1, i l. 2...., 6. minimo del calcolo del
parsi g. per Allo stesso modo in cui abbiamo definito m i. j come iI costo prodono
il ragionamento, assegneremo 0 a o ni
ottima del i . i ...., v. Per facilitare peso
poliscono
In generale, quindi, una triangolazione di un con n lati corrisponde a un albero di triangolazione ottima de P .
poligono degenere del tipo l V Il peso di una poligonn
poligono
parsing con n 1 foglie. Da un albero di si costruire, con un n.
parsing pu procedimento dato dal valore dell elemento t 1.
quindi,
simmetrico, una triangolazione. Infatti, gli alberi di parsi ng sono in corrispondenza biuni i oca
in modo ricorsi vo. La base della ricorsione il I l O
A questo cerchiamo di definire ti j
con le triangolazioni di poligoni. punto
vertici r i, i 0, peri 1. 2, ..., n. Quando j- i I. Ia
degenere di un poligono con due soli
Il prodotto completamente di n matrici comsponde a un albero di pzrsing con almeno tre vertici. Il no.. ro
parentesizzato sequenza di vertici v,, v definisce un poligono
i,
con n foglie, e, pertanto, corrisponde anche a una triangolazione di un con n l i con k i. i 1, .... I. la somma tra
poligono obiettivo quello di minimizzare. per tutti i vertici . j
vertici. Le figure 16.5 a e b mettono in evidenza corrispondenza biunivoca ogni v..... v e v. i
questa il peso di Ai,v i ed i pesi de11e triangolazioni ottime dei poligoni v,,
matriceA delprodottoA, A, -A,corrispondeaun lato i,i diunpoligonoconn l vertici. . La fonnul azione ricorsiva risulta
....
mentre una corda i .v. con i j, corrisponde alla matrice A, calcolata durante la i alutazione
del matriciale. se I j,
prodotto 0
N AV l l
p p / .
L upinioni. c cl i correll l .
tl Ii n isura dcll uiva di tnt tri w il . prolcci lv.
pc .s i
Programma ione dinamica 307
30 CapitoIo 16
16 4-3 Si supporiga che la funzione dipenda dalle corde di una triangolazione invece
peso
che dai triangoIi. Il peso della triangolazione rispetto a questa funzione w
peso
dato dalla somma dei delle corde della triangolazione. Si dimostri che il
pesi
problema della triangolazione con corde un caso del
pesate particolare problema
della triangolazione con triangoli pesati.
I.4-4 Si determini una triangolazione ottimadi un ottagono regolare con lati di lunghezza
unitaria. Si utilizzi la seguente funzione peso a b
w Ev,v,vq v,v, vpVI t VAV f, su fama cvn di dintensione umraria. a /I piir corto
Figura 16.6 Sette punti del piano griglia quadrari
carnnrino noir bitonico. b Il piis corro cannnino
dove v v la distanza eucl idea tra v e v,. Un detto regolare se tutti i lati camniirro chiuso di lunghe-a 24.88.... Qgiesto
poligono n
bitonico lo stesso insieme di La sua lunghe 25.58....
e tutti gli angoli interni sono uguali. per punti.
altrove 131110
infierire e
consecutive siano separate e. ,vttamente da imo spazio allora il numero di spazi necess ri per
cancellare itmo Ql llOVC
completarelari adatoda,15
j p i g , equestonunseronondeveesserette etisia.
ione 309
Programma dinamica
v i valore v
di assegnare a ogni arco u, v e E una probabilit p u, p u,
Supponiamo
Chiaramente, ci sono altre sequenze di operazioni che lo stesso effetto. l arco v da u ed emenendo il suono
producono indica la di attraversare u, partendo
probabilit
Le operazioni cancellare. sostituire, copiare, inserire, scambiare e cancellare un suffisso comspondente. Naturalmente la somma delle probabilit
cammino
degli
definita
archi
come
che escono
il prodotto
da
delle
un
1
hanno un certo costo. si aspetta che il costo dell operazione che sostituisce un carattere determinato vertice 1. La di un
Ci probabilit
La probabilit di un cammino. la cui
sia minore della somma dei costi delle operazioni che cancellano ed inseriscono un carattere. it degli archi che appartengono al camminn.
probabi
interpretata come la probabilit che un attraversamento
Nel caso contrario. l operazione di sostituzione non dovrebbe essere utilizzata. Il costo di origine il vertice v,, pu essere
cammino. Chiaramente la scelta di
una certa sequenza di operazioni di modifica dato dalla somma del costo delle singole casuale del a partire dal vertice v, seguirh quel
grafo
degli archi che escono dal vertice
operazioni nella sequenza. Nel nostro esempio, il costo della trasformazione della arco va fatta in accordo all e prnbabilit
parola quale percorrere
algoritmo altrove
nella parola risulta in esame.
della a in modo tale che. se l algoritmo
b. Si modifichi l algorittno di risoluzione parte
2 costo copiare costo sostituire costo scambiare 2 costo inserire costo suffisso .
il cann ri ro pi che parte da v, ed abbia
restituisce un cammino, allora questo sia probabile
Si considerino due sequenze x1 . inj e y1 .. n ed un insieme di costi di operazioni la di esecuzione dell algoritmo proposto.
s come etichetta. Si analizzi il tempo
distan -a di editing trar e definita come il costo delIa sequenza pi economica di operazioni
che trasforma x in y. Si vuole definire un algoritmo di programmazione dinamica che
Questi graf etichettati definiscono un mndello formale per l analisi del parlato in un
linguaggio particolnrmente semplice. Ogn camnsino nel gr to che da un determinato
paiate
vertice i, corrisponde a una possibile sequenza di suoni. L etichetta di un cammino orientato
definita dalla concatenazione delle etichette degli archi che app rtengono al cammino.
sia ve la cui etichetta sia l sequenzu.c, se tale cammino esiste. Nel caso invi .ce in maui il
cammino non esista, l algoritmo invr stampare il messaggio Nr u C iiwi . Si
l
utile fare riferimento u concetti intrndotli nel Capite lo 23.
Algoritmi greedy
eiviily in oi lo eiilneii .
in tic i n
N.d.l. L.i trauzionc letterale del icrrniiv.
Algoritnu greedy
312 Capitolo J7
i s f,.
17.1 Selezione di attivit
l I 4
Il nostro primo esempio consiste nel dell assegnamento di una risorsa condivisa da
problema
un certo numero di attivit in competizione tra loro. Dimostreremo che Ia selezione di un 2 3 5
insieme che contiene il massimo numero di attivit in competizione e mutuamente compa-
tibili pu essere ottenuta con un elegante ed efficiente algoritmo greedy.
0 6 3
Sia S 1, 2, ..., n un insieme di n attivit che intendono utilizzare una determinata 3
risorsa.
per esempio una sala di lettura, che non essere utilizzata contemporaneamente da due o
pu
pi attivit. Una generica attivit i caratterizzata da un tempo di inizio s, e da
attivazione 4
4 5 7
un tempo di fine conclusione dove s, Una volta selezionata, l attivit i completata
f, f,.
nell intervallo di tempo aperto a destra Due attivit i e j vengono dette coi rpatibi/i
s,. f .
se gli intervalli s,. f e s., f non si sovrappongono i e j sono compatibili se vale
ovvero, che
5 3 8
s, f oppure s f . Il problema della selezionare di attivit consiste nell individuazione di un
insieme che contiene il massimo numero di attivit mutuamente compatibili.
GREEDY-ACTIVITY-SELECTOR $. f 9
g 8 12
1 n length s
2 A e- I
10
10 2 13
3 jml
4
4 fori m2ton
doif s f I l 12 14
8
6 then A A u i
7 1
J
8 return A Il
tempo
0 l 2 3 4 5 6 7 8 9 10 1l l2 13 14
Le operazioni eseguite dall algotitmo snno visualizzate nellu figura 17.1. L iniieme A
contiene le attivit selezionate. La variabile j indica l ultima attivi inserita nell insiemeA.
. - - acro sr di nn invienle Cr ll Hlldici
e e er c e
Dato che le attivjt sono considerate in ordine non decrescente. rispetto al l ro tempo di f ic.
abbiamo che f rappresenta sempre il massimo tempo di tine di tutte le attivit cl1e
, rctla rgrifr ictticri. e i e
appartengono AA. Pi ri .- s nlcrlndalot
precisamente, care an
fj max f .. k e A 17
- sr tele.-icnritla
..- e1 i rnelilan ll i sierheA.
-3 lirelt r
ire,r ill ail r,
e, ,s d .st a j i rttti .il,
e linee hanno il compito di selezinnare l attivit numero I ftreo i,si
r .ics i.
inizialmente l insieme.4
colltiene solaltlente attivit e, all 1 V friabile
qliest i pert lllti . j viellc. loie il ltn il s 1lore t. Le
.
linee 4-7 cnnsider mo uno dopn1 altra tutte le iii ricvnten cl lc in 1. Si l allivititi
at ti itil LtI11LVI1CI ICJ.lllYll t / VIClld llliCI II I 11 i ril
t i i.
, ..
se una certa attrvit i compatibile con . i chi tiillc le allivit
tutte le attivit selezionate tino i c uel i ns ns- i i in i i
punto ut t 1n
sufficiente, l eqct izione controll re
per 17.2 . lince 5 che il tcinp ali inizio Ioli ittiviti .i
314 Capitolo 17 Algoritmi 315
greedy
siano ordinate in modo crescente rispetto al loro tempo di fine. abbiamo che la procedura e Esercizi
in grado di selezionare un insieme S con n attivit in tempo 8n.
La procedura GREEDY-ACTIVITY-SELECTOR seleziona sempre l attivit con il pi dinamica che risolva il problema
piccoln 17.1-1 Si definisca un algoritmo di programmazione
tempo di fine tra i tempi di quelle attivit che essere ancora selezionate. Pertanto. dell a consiste nel calcolare il
possono la della selezione delle attivit. L idea di base goritmo
scelta dell attivit una scelta nel senso che. intuitivamente, vengono lasciate il che contiene il maggior numero di attivit
greedy numero m di elementi dell insieme
maggior numero possibile di opportunit la selezione delle attivit rimanenti. Il mecca- l. 2..., i. i l, 2..... n. Si supponga
per mutuamente compatibili tra 1e attivith per
nismo di scelt greedy, quello che massimizza la quantit di tempo che deve essere come nel caso dell equazioi e 17. 1. Si
quindi, che le attivit in ingresso siano ordinate
ancora assegnata. della soluzione con il tempo di esecuzio-
confronti il tempo di esecuzione proposta
cosi dimostrato cle esiste sempre iran assegnamento ottimo che inizia con una sceltagreedi.
1 .2 Strategia greedy. concetti di base
Inoltre. dopo avere fatto Ia scelta dell vttivit 1, il problema si riduce a troi are una
greedy
in questo esaminiamo
differenze tra le due tecniche, paragrafo
Propriet mettere in evidenza le sottili
della scelta greedy
varianti di un classico di ottimizzazione.
due problema
Q- 1 definito nel modo seguente.
--aino de11o zaino
Il problema discreto dello o problema
La prima propriet chiave la propriet della scelta reed si pu ottenere una soluzione l articolo i-esimo ha
negozio si trova di fronte a n articoli
Un ladro durante una rapina in un
o a e pren en o delle decisioni che sono ottimi locali oreed . u ir sono numeri interi. Il ladro
dove sia v che
un costo di v dollari ed un peso di v chilogrammi,
doVe li al oritmi reedy si differenziano da i alpwitmidipro rammazio edimmic un di
zaino sopportare al massimo peso
articoli costosi. ma il suo pu
nc e ne a programmazione dinamica a orni ve
vengono vuole prendere gIi pi
p asso prese delle decisioni, ma la
$V. Quali sono articoli pi convenienti da rubare
W chilogrammi. un qualche intero gli
tra e ternative dipendere dalla soluzione dei sottoproblemi. Invece, in un per deve
pu
di problema dello zaino 0 - 1 perch un articolo
noto con il nome
aalgoritmogreedysiprendesem p re q uellade ecisione che al momento appare come la mi lior ior Questo problema e lo stesso
una parte di un articolo,
. .. o lasciato stare il ladro non puo prendere
e in seguito si risolve il sotto essere preso
p rooblema originato da quella scelta. La modalit i di i scelta
sce ta- di i un
non essere volte .
algoritmo dipendere dalle decisioni articolo pu preso pi
greedy pu prese fino a quel punto B d vuole
.... dello zaino il ladro
deElo zaino o generico ,
d I qu e esce
111. 1te future
f 0 o dalle soluzioni dei sottoproblemi. Pert, d ff Nel continuo problema
problema il valore
trasportare in modo da massimizzare
o o un insieme di articoli da
mm m ica, che risolve i sottoproblemi con una modal t b P sempre scegliere prendere
scelta del tipo o
non si trova di fronte a una
M reedy adotta una modalit to -d, d 1 d trasportato. ma in questo caso il ladro
generalmente dello zaino
di articoli. Un articolo nel problema
una Cl opo altra con un meccanismo di scelta e on v lasciare , ma scegliere di prendere parti
p greed puo dello zaino
d oro, mentre un articolo nel problema
1 pu essere visto come un lingotto
0-
visto come della d oro.
Naturalmente. pu essere polvere
si deve dimostrare che una strategia di scelta reedypermettediottenereuna generico
la propriet della sottostruttura
del delln zaino soddistano
o ima g o aie, e questo pu richiedere una abilit ed in e n Entrambe le formulazioni problema
l elemento j di valore massimo
dello zaino 0- 1, si consideri
Generalmente accade
a e cche e I d imostrazione
. consideri una soluzione ottima elobale generica ottima. Nel caso del problema carico si
Chiaramente. se si rimuove l articolo j da questo
i caso e eorema 17.1. . . Success v ssivamente . dimostra.
si che la soluzione che al pi W chilogrammi.
pu esessere
ere pesi
1V n, che il ladro mettere
che al massimo pu
mo i icatainmodotalecheil rimo as so di risoluzione sia determinato da una scelta . ottiene il pi valore trasportato pesa
ereed grande
originali con l esclusione dell articolo j.
iaramente si deve anche dimostrare avendo a disposizione n l articoli, quelli
che in uesto modo.io i n p u pob a assieme
carico ottimo il peso w di una parte
zaino e si toglie dal
. imi e a ema originale ma con dimensioni ridotte. Infine. si a lica u Nel caso del dello genericn.
pro probiema trasportato che
il pi valore
induttivo reedy il carico rimanente necessariamente grande
per dimostrare
. rare cche e si uo
puo a
applicare
licar una strategia di scelta a o ni ni o dell articolo j, allora
paz
pas.o. a disposizione s l articoli
mettere assieme avendo
r e di ottenere un simile al roble al massimo 1V v che il ladro pu
y permette problema pesa
originale ma con dimensioni ridotte, si nif oca ridurre la dimostrazione di conene ll- e ic. io chilogrammi dell articolo j.
dello zaino pu essere
imostrazione che la soluzione ottima una sottostruttura alquanto simili. il problema generico
presenta ottima. Sebbene i due siano
problemi soluzione del
non trova la
mentre una strategia greedy
risolto con una strategia greedy.
del dello zaino generico. prima
zaino 0- 1. Per onenere una soluzione problema
Sottostruttura dello
ottima problema Seguendo una strategia
uni t - di peso di ogni articolo , /w..
di tutto si deve calcolare il valore per
dell articolo con il pi
cosa la maggiore quantit possibile
greedy, il ladro per prima prende
Un . un a sottostrrsttura - .o si esaurisce quando
problema ppresenta . o11ima .se una . o uzione
soluzione o ootti Q l po D accade che la dotazione dell articolo
valore unith di peso. Se
grande per
0 mo una soluzione ottima dei sottoproblemi. ro rieth allora il ladro prende la maggiore quantit
Questa in grado di trasportare altre case,
il ladro ancora
fOndamentate importanzu valore unit di pe o.
per accertarc l a licabilit s- risalta avere il pi grande per
dell articolo che, a questo punto,
ai sica possibile altre cose. Pettmto.
c e eg i al oritmi reedy. Cnme esenl io di .sottostruttura ottima si consideri non pi in grado di trasportare
termina il ladro
ime Questa operazione quando reedy viene
amen e u imnstrazioneclelTeorcma
. .1. N
17.1. Nelladimostrazione
ll del teoreinasi mnit valore unith di pe o. l ulgoritmn
articoli relativ assente al loro per
.. ordinando gli la
e u o,,uz.o e o,n, A e idem, d il problema dello z tino soddisfa
1gl . La dimostr azione che
eseguito eo6 un tempo O ii
era una soluzione ottima del della esercizio 17. - l.
problema lasc iata cnme Esercizio
della scelta greedv
propriet
zione e eattivitperS ic S f, . non funziona nel caso del
vo...linmo mostrare che L,,trategia greedy
A questo punto i11
di questo descritto
il c ivo p uticolare problema
dello ai o 0- 1. Consideriamo
prnblema di 50 chiln rammi. Il
,reedy , sopport.tre un peon
Analisi com arata de,li c, a , oritmi e della .. zione dinamica
inan,ica 17. abbi..imo tre articoli e lo zaini pui
programnsazione t,cura a lt,i
Il.iecundo articoln
r unrni c un co to di 60 dollari.
articolo ha un peso di 10 chilo
primo trticulo ha u i di 30
ali 100 doll tri. li teri peio
. di 20 chilogram 1ii ed un coito
Oatuche1 i
propriet dellasottui rutturlOltil11 . . ic C un peso l
1C
unith di pi.io ilell articolo
rvmn i di I 20 doli ri. Quintali. il v flore per
U .,
. 1llllC l,
lil CS
chilo ed un conio
pOlfC
,,
CClllC..ll
Genie ,
I c i pro ratntli 17ii lli. clin ltllic unchcC i u.
Cfll,llluO d i .LlfllClClllL Lttl llQOlllI110 CC
L tCC6l. V
i
i irr t1c in ciitc eni v I .. cr
ppu i. poltvL hc
ar ico o 2
ar ico o 3
50
30 $120
30 $129
20
30
580 chilometri
di servizio
vorrebbe
con
fare
dislocate
un
il minor
pieno
lungo
di benzina
numero
il trano
e la sua
di autostrada
possibile
cartina
di soste
che
riporta
per
sta
le distanze
percorrendo.
rifornire di
tra
benzina
le stazioni
Il professore
la sua
I
20 al quale il professor Mida in grado di
$100 20 $1QO macchina. Si progetti un algoritmo grazie
anico o I
si debba fermare si dimostri che la
determinare a quali stazioni di rifornimento
20 20 $100
10 di ottenere una soluzione ottima.
10 $60 10 $60 strategia proposta permette
10 $60
$60 $100 $120 aino $220 $160 $180 $240 di punti r,......s sulla
Si progeni un algoritmo efficiente che, preso un insieme .r,
17.2-5
a b unitaria
c il pi insieme di intervalli chiusi di lunghezza
retta dei reali, determini piccolo
in esame. Si discuta la correttezza della soluzione proposta.
Figura 17.2 La strategia ione -airi che contenga tutti i punti
g ree non permette di ottenere la sotu del problema dello 0 - l .
E 7.2-1 Si dimostri che il problema delln zaino soddisfa la proprie della scelta greeds .
AI O l O I I lO ll I
COLllCi,,l Illll,,lit..ll,I f ILS 0 0
per
seguita.
rappresentare
questo un
il file,
codice
con un risparmio
ottimo per
approssimativo
il file in esame.
del 25 . Infatti, come vedremo nel
I
Codici prefissi
In questo pia jrafo prenderemo in considerazione solamente quei codici dove nessuna parola
del codice anche un prefisso di qualche altra parola del codice. Questi codici sono conosciuti
con il nome di codici prefissi- . Si pu dimostrare ma noi non lo faremo che la compressione
b
onima ottenibile con un codice per i caratteri pu essere sempre ottenuta con un codice
prefisso. Pertanto, nowsi perde in generalit se restringiamo la nostra attenzione solamente di 17.3. Ogni foglia
agli schemi di codifica figura
17.-1 Gli alberi che corrispondono
codici Figura
ai prefissi.
I codi
codici prefissi hanno delle buone propriet che permettono di semplificare la codific
ottimo a 0.
L albero descrii e il codice prefisso
b 001...., f l O I. h
compressione e la decodifica. Generalmente, la codifica sempre semplice per un lunghe.. a fissa a 000.
Il codice ottimo di un file rappresentato sempre da un albero binario dove n ni la cui frequenza
pienamente li fusione un nuovo oggetto
fondere insieme. 11 risultato dell operazioni
che sono stati fu i insieme.
iornma delle trequeme degli oggetti
i. d t dalla