introduzione al corso di algoritmi
TRANSCRIPT
![Page 1: Introduzione al corso di algoritmi](https://reader030.vdocuments.pub/reader030/viewer/2022020203/5875d69b1a28ab8c448b4924/html5/thumbnails/1.jpg)
Prof. V. Cutello Algoritmi 1
Algoritmi (9 CFU)
Anno Accademico 2009-10
![Page 2: Introduzione al corso di algoritmi](https://reader030.vdocuments.pub/reader030/viewer/2022020203/5875d69b1a28ab8c448b4924/html5/thumbnails/2.jpg)
Prof. V. Cutello Algoritmi 2
Libro di Testo
Introduction to Algorithms, 2/e T.H. Cormen, C.E. Leiserson, R.L.
Rivest, C. Stein
![Page 3: Introduzione al corso di algoritmi](https://reader030.vdocuments.pub/reader030/viewer/2022020203/5875d69b1a28ab8c448b4924/html5/thumbnails/3.jpg)
Prof. V. Cutello Algoritmi 3
Prerequisiti
42 CFU del I anno (minimo)Programmazione 2 (e quindi Progr. 1)Fondamenti di Informatica,Matematica Discreta,Elementi di Analisi Matematica e
GeometriaTotale 51 CFU
![Page 4: Introduzione al corso di algoritmi](https://reader030.vdocuments.pub/reader030/viewer/2022020203/5875d69b1a28ab8c448b4924/html5/thumbnails/4.jpg)
Prof. V. Cutello Algoritmi 4
Contenuti di Massima
Il corso offre un'introduzione rigorosa allostudio degli algoritmi e delle strutture datiponendo particolare enfasi sulle relativemetodologie generali di progettazione e letecniche di analisi.
Più specificamente, saranno discussi: fondamenti matematici per la stima della
complessità asintotica degli algoritmi; problema dell'ordinamento e limiti
computazionali;
![Page 5: Introduzione al corso di algoritmi](https://reader030.vdocuments.pub/reader030/viewer/2022020203/5875d69b1a28ab8c448b4924/html5/thumbnails/5.jpg)
Prof. V. Cutello Algoritmi 5
Contenuti di Massima strutture dati elementari, alberi, alberi binari di
ricerca heap e heapsort problema dell’hashing e algoritmi correlati Alberi RB e statistiche d’ordine dinamiche Programmazione Dinamica Algoritmi Golosi Grafi e algoritmi elementari su grafi
![Page 6: Introduzione al corso di algoritmi](https://reader030.vdocuments.pub/reader030/viewer/2022020203/5875d69b1a28ab8c448b4924/html5/thumbnails/6.jpg)
Prof. V. Cutello Algoritmi 6
Esami
esame scritto + colloquio orale per chi passa lo scritto
in cui si parlerà di come avete fatto beneallo scritto (si spera)
![Page 7: Introduzione al corso di algoritmi](https://reader030.vdocuments.pub/reader030/viewer/2022020203/5875d69b1a28ab8c448b4924/html5/thumbnails/7.jpg)
Prof. V. Cutello Algoritmi 7
Contenuti del corso:Introduzione
L’Algoritmica.Analisi e progettazione di AlgoritmiRevisione di alcuni algoritmi di
ordinamento fondamentaliInsertion sortBubble sortMerge sort
Capitoli 1-2
![Page 8: Introduzione al corso di algoritmi](https://reader030.vdocuments.pub/reader030/viewer/2022020203/5875d69b1a28ab8c448b4924/html5/thumbnails/8.jpg)
Prof. V. Cutello Algoritmi 8
Crescita asintotica di funzioni
Tempi di esecuzione di algoritmi.Metodologie per confrontare funzioni:
O ≈ ≤ Ω ≈ ≥ Θ ≈ = o ≈ < ω ≈ >
Capitolo 3
![Page 9: Introduzione al corso di algoritmi](https://reader030.vdocuments.pub/reader030/viewer/2022020203/5875d69b1a28ab8c448b4924/html5/thumbnails/9.jpg)
Prof. V. Cutello Algoritmi 9
Equazioni di ricorrenza
In molti casi il tempo di esecuzione diun algoritmo (ricorsivo) può esseredescritto da equazioni di ricorrenza.
Es. il Teorema Master per risolveretutte le equazioni del tipo
T(n)=aT(n/b)+f(n)Capitolo 4.
![Page 10: Introduzione al corso di algoritmi](https://reader030.vdocuments.pub/reader030/viewer/2022020203/5875d69b1a28ab8c448b4924/html5/thumbnails/10.jpg)
Prof. V. Cutello Algoritmi 10
Algoritmi randomizzati
Analisi probabilistica di base ealgoritmi randomizzati
Concetti di base di probabilità Esempi particolari Capitolo 5 e Appendice C
![Page 11: Introduzione al corso di algoritmi](https://reader030.vdocuments.pub/reader030/viewer/2022020203/5875d69b1a28ab8c448b4924/html5/thumbnails/11.jpg)
Prof. V. Cutello Algoritmi 11
Heap e Heapsort
Struttura dati per l’ordinamento Ne vedremo le operazioni e
studieremo l’algoritmo di ordinamento Cap. 6
![Page 12: Introduzione al corso di algoritmi](https://reader030.vdocuments.pub/reader030/viewer/2022020203/5875d69b1a28ab8c448b4924/html5/thumbnails/12.jpg)
Prof. V. Cutello Algoritmi 12
Quicksort
Algoritmo randomizzato Proprietà ed analisi delle performance Capitolo 7
![Page 13: Introduzione al corso di algoritmi](https://reader030.vdocuments.pub/reader030/viewer/2022020203/5875d69b1a28ab8c448b4924/html5/thumbnails/13.jpg)
Prof. V. Cutello Algoritmi 13
Ordinamento in tempo lineare
Vedremo in quali condizioni si puòordinare molto velocemente
Introdurremo diversi tipi di algoritmilineari
Capitolo 8
![Page 14: Introduzione al corso di algoritmi](https://reader030.vdocuments.pub/reader030/viewer/2022020203/5875d69b1a28ab8c448b4924/html5/thumbnails/14.jpg)
Prof. V. Cutello Algoritmi 14
Mediane e Statistiche d’ordine
Casi particolari dell’ordinamento Trovare minimo e massimo di una lista Trovare il 10, 23, 97 o k-esimo
Si può fare velocemente? Capitolo 9
![Page 15: Introduzione al corso di algoritmi](https://reader030.vdocuments.pub/reader030/viewer/2022020203/5875d69b1a28ab8c448b4924/html5/thumbnails/15.jpg)
Prof. V. Cutello Algoritmi 15
Hashing
Strutture dati veloci che supportanooperazioni di Search, Insert e Delete
Capitolo 11
![Page 16: Introduzione al corso di algoritmi](https://reader030.vdocuments.pub/reader030/viewer/2022020203/5875d69b1a28ab8c448b4924/html5/thumbnails/16.jpg)
Prof. V. Cutello Algoritmi 16
Alberi Binari di Ricerca
Definizione della struttura dati e delleoperazioni su di essa
Complessità per tutte le operazioni Costruzione casuale ed algoritmo di
ordinamento associato Capitolo 12
![Page 17: Introduzione al corso di algoritmi](https://reader030.vdocuments.pub/reader030/viewer/2022020203/5875d69b1a28ab8c448b4924/html5/thumbnails/17.jpg)
Prof. V. Cutello Algoritmi 17
Alberi Rosso-neri
O Rossazzurri/Bianco-neri/Nerazzurrise preferite
Proprietà Operazioni su di essi e complessità Capitolo 13
![Page 18: Introduzione al corso di algoritmi](https://reader030.vdocuments.pub/reader030/viewer/2022020203/5875d69b1a28ab8c448b4924/html5/thumbnails/18.jpg)
Prof. V. Cutello Algoritmi 18
Aumentare le strutture dati
Vedremo come estendere alcunestrutture dati (Alberi Rosso-neri) permigliorare l’efficienza di alcunialgoritmi
Statistiche d’ordine dinamiche Capitolo 14
![Page 19: Introduzione al corso di algoritmi](https://reader030.vdocuments.pub/reader030/viewer/2022020203/5875d69b1a28ab8c448b4924/html5/thumbnails/19.jpg)
Prof. V. Cutello Algoritmi 19
Programmazione Dinamica
Tecnica per la risoluzione di problemi(complessi)
Tipicamente problemi diottimizzazione
Ricombinazione della soluzione disotto-problemi
Capitolo 15
![Page 20: Introduzione al corso di algoritmi](https://reader030.vdocuments.pub/reader030/viewer/2022020203/5875d69b1a28ab8c448b4924/html5/thumbnails/20.jpg)
Prof. V. Cutello Algoritmi 20
Algoritmi Greedy (golosi)
Tecnica per prendere decisionidurante la risoluzione di problemi(complessi)
Tipicamente problemi diottimizzazione
Ad ogni passo faccio la scelta migliorepossibile. Trovo la soluzione migliorepossibile?
Capitolo 15
![Page 21: Introduzione al corso di algoritmi](https://reader030.vdocuments.pub/reader030/viewer/2022020203/5875d69b1a28ab8c448b4924/html5/thumbnails/21.jpg)
Prof. V. Cutello Algoritmi 21
Grafi
Definizione di grafo Rappresentazioni di un grafo Visite di un grafo Ordinamento topologico Componenti fortemente connesse Capitolo 22 e appendice B (fatta a
Matematica Discreta)
![Page 22: Introduzione al corso di algoritmi](https://reader030.vdocuments.pub/reader030/viewer/2022020203/5875d69b1a28ab8c448b4924/html5/thumbnails/22.jpg)
Prof. V. Cutello Algoritmi 22
Basta così
Ma …. Vi lascio con due problemi(più o meno facili/difficili)
Se conoscete le soluzioni non diteloai vostri colleghi. Fate sudare i loroneuroni che gli fa bene.
![Page 23: Introduzione al corso di algoritmi](https://reader030.vdocuments.pub/reader030/viewer/2022020203/5875d69b1a28ab8c448b4924/html5/thumbnails/23.jpg)
Prof. V. Cutello Algoritmi 23
5 in 7
Per ordinare 2 numeri, a e b, faccioun solo confronto.
Per ordinare 3 numeri, a,b e c, diconfronti ne devo fare al più 3.
Classico problema (knuth) Riuscite ad ordinare 5 numeri facendo
sempre al più 7 confronti ?
![Page 24: Introduzione al corso di algoritmi](https://reader030.vdocuments.pub/reader030/viewer/2022020203/5875d69b1a28ab8c448b4924/html5/thumbnails/24.jpg)
Prof. V. Cutello Algoritmi 24
12 monete
Giochino molto conosciuto12 monete d’oro di cui una falsaNon si sa se la falsa pesa più o meno
di quelle d’oroA disposizione una bilancia (quella
classica con i due piatti)Trovare la falsa con al più 3 pesate.