Click here to load reader

Introduzione al corso di algoritmi

  • View
    220

  • Download
    2

Embed Size (px)

Text of Introduzione al corso di algoritmi

  • Prof. V. Cutello Algoritmi 1

    Algoritmi (9 CFU)

    Anno Accademico 2009-10

  • Prof. V. Cutello Algoritmi 2

    Libro di Testo

    Introduction to Algorithms, 2/e T.H. Cormen, C.E. Leiserson, R.L.

    Rivest, C. Stein

  • 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

  • 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;

  • Prof. V. Cutello Algoritmi 5

    Contenuti di Massima strutture dati elementari, alberi, alberi binari di

    ricerca heap e heapsort problema dellhashing e algoritmi correlati Alberi RB e statistiche dordine dinamiche Programmazione Dinamica Algoritmi Golosi Grafi e algoritmi elementari su grafi

  • 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)

  • Prof. V. Cutello Algoritmi 7

    Contenuti del corso:Introduzione

    LAlgoritmica.Analisi e progettazione di AlgoritmiRevisione di alcuni algoritmi di

    ordinamento fondamentaliInsertion sortBubble sortMerge sort

    Capitoli 1-2

  • Prof. V. Cutello Algoritmi 8

    Crescita asintotica di funzioni

    Tempi di esecuzione di algoritmi.Metodologie per confrontare funzioni:

    O = o < >

    Capitolo 3

  • 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.

  • 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

  • Prof. V. Cutello Algoritmi 11

    Heap e Heapsort

    Struttura dati per lordinamento Ne vedremo le operazioni e

    studieremo lalgoritmo di ordinamento Cap. 6

  • Prof. V. Cutello Algoritmi 12

    Quicksort

    Algoritmo randomizzato Propriet ed analisi delle performance Capitolo 7

  • Prof. V. Cutello Algoritmi 13

    Ordinamento in tempo lineare

    Vedremo in quali condizioni si puordinare molto velocemente

    Introdurremo diversi tipi di algoritmilineari

    Capitolo 8

  • Prof. V. Cutello Algoritmi 14

    Mediane e Statistiche dordine

    Casi particolari dellordinamento Trovare minimo e massimo di una lista Trovare il 10, 23, 97 o k-esimo

    Si pu fare velocemente? Capitolo 9

  • Prof. V. Cutello Algoritmi 15

    Hashing

    Strutture dati veloci che supportanooperazioni di Search, Insert e Delete

    Capitolo 11

  • 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

  • Prof. V. Cutello Algoritmi 17

    Alberi Rosso-neri

    O Rossazzurri/Bianco-neri/Nerazzurrise preferite

    Propriet Operazioni su di essi e complessit Capitolo 13

  • Prof. V. Cutello Algoritmi 18

    Aumentare le strutture dati

    Vedremo come estendere alcunestrutture dati (Alberi Rosso-neri) permigliorare lefficienza di alcunialgoritmi

    Statistiche dordine dinamiche Capitolo 14

  • Prof. V. Cutello Algoritmi 19

    Programmazione Dinamica

    Tecnica per la risoluzione di problemi(complessi)

    Tipicamente problemi diottimizzazione

    Ricombinazione della soluzione disotto-problemi

    Capitolo 15

  • 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

  • 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)

  • 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.

  • 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 ?

  • Prof. V. Cutello Algoritmi 24

    12 monete

    Giochino molto conosciuto12 monete doro di cui una falsaNon si sa se la falsa pesa pi o meno

    di quelle doroA disposizione una bilancia (quella

    classica con i due piatti)Trovare la falsa con al pi 3 pesate.