Algoritmi per big data

Codice: 20810211

Scheda insegnamento

Anno Accademico di erogazione
2026/2027
Periodo di erogazione
Primo semestre
CFU
6 CFU
Lingua
Italiano
SSD
ING-INF/05

Scopri il programma didattico

Programma, testi adottati e modalità d’esame sono quelli pubblicati dai docenti per l’anno accademico 2026/2027. L’insegnamento è diviso in canali: ogni canale ha il suo programma.

Docente
Fabrizio Frati
Curriculum
Sistemi Informatici Complessi
Anno di corso
2
Periodo
Primo semestre
Ore
54
CUIN
260002630

Programma

1) Algorithms for data streams
- Approximate counting
- Majority problems
- Sampling and reservoir sampling
- Bloom filters
- Frequent itemsets
- Number of distinct elements
2) Algorithms and data structures for quantitative features analysis
- orthogonal range searching (kd-trees, range trees, and layered range trees)
- median finding
- multidimensional divide and conquer, closest pair
- fractional cascading
3) Locality sensitive hashing for finding similar items
- Min-Hashing
- Nearest neighbour search, k-nearest neighbour search
4) NoSQL internals & Distributed Hash Tables
- Chord
- consistent hashing
- Kademlia
5) Scalable security:
- integrity of big data sets in the cloud,
- consistency and scalability issues with authenticated data structures

Prerequisiti

Nessuno

Testi adottati

Mining of Massive Datasets
Jure Leskovec, Anand Rajaraman, Jeff Ullman
Cambridge University Press
http://www.mmds.org/

Bibliografia di riferimento

Mining of Massive Datasets
Jure Leskovec, Anand Rajaraman, Jeff Ullman
Cambridge University Press
http://www.mmds.org/

Modalità di erogazione

Tradizionale

Modalità di frequenza

Facoltativa

Modalità di valutazione

Prova scritta, valutazione progetto. La prova scritta può essere sostituita da prove in itinere parziali.

Prove previste

  • Prova scritta
  • Prove intermedie
  • Valutazione di un progetto

Docente
Giordano Da Lozzo
Curriculum
Sistemi Informatici Complessi
Anno di corso
2
Periodo
Primo semestre
Ore
54
CUIN
260002630

Programma

1) Algorithms for data streams
- Approximate counting
- Majority problems
- Sampling and reservoir sampling
- Bloom filters
- Frequent itemsets
- Number of distinct elements
2) Algorithms and data structures for quantitative features analysis
- orthogonal range searching (kd-trees, range trees, and layered range trees)
- median finding
- multidimensional divide and conquer, closest pair
- fractional cascading
3) Locality sensitive hashing for finding similar items
- Min-Hashing
- Nearest neighbour search, k-nearest neighbour search
4) Algoritmi sotto-esponenziali e parametrizzate
- kernelizzazione
- branching
- programmazione dinamica su decomposizioni parametriche

Prerequisiti

Il corso non richiede alcun prerequisito.

Testi adottati

Mining of Massive Datasets
Jure Leskovec, Anand Rajaraman, Jeff Ullman
Cambridge University Press
http://www.mmds.org/

Bibliografia di riferimento

Mining of Massive Datasets
Jure Leskovec, Anand Rajaraman, Jeff Ullman
Cambridge University Press
http://www.mmds.org/

Modalità di erogazione

Tradizionale

Modalità di frequenza

Facoltativa

Modalità di valutazione

Prova scritta, valutazione progetto. La prova scritta puo' essere sostituita da prove in itinere parziali.

Prove previste

  • Prova scritta
  • Prove intermedie
  • Valutazione di un progetto

Docente
Fabrizio Frati
Curriculum
Ingegneria dei Dati
Anno di corso
2
Periodo
Primo semestre
Ore
54
CUIN
260002642

Programma

1) Algorithms for data streams
- Approximate counting
- Majority problems
- Sampling and reservoir sampling
- Bloom filters
- Frequent itemsets
- Number of distinct elements
2) Algorithms and data structures for quantitative features analysis
- orthogonal range searching (kd-trees, range trees, and layered range trees)
- median finding
- multidimensional divide and conquer, closest pair
- fractional cascading
3) Locality sensitive hashing for finding similar items
- Min-Hashing
- Nearest neighbour search, k-nearest neighbour search
4) NoSQL internals & Distributed Hash Tables
- Chord
- consistent hashing
- Kademlia
5) Scalable security:
- integrity of big data sets in the cloud,
- consistency and scalability issues with authenticated data structures

Prerequisiti

Nessuno

Testi adottati

Mining of Massive Datasets
Jure Leskovec, Anand Rajaraman, Jeff Ullman
Cambridge University Press
http://www.mmds.org/

Bibliografia di riferimento

Mining of Massive Datasets
Jure Leskovec, Anand Rajaraman, Jeff Ullman
Cambridge University Press
http://www.mmds.org/

Modalità di erogazione

Tradizionale

Modalità di frequenza

Facoltativa

Modalità di valutazione

Prova scritta, valutazione progetto. La prova scritta può essere sostituita da prove in itinere parziali.

Prove previste

  • Prova scritta
  • Prove intermedie
  • Valutazione di un progetto

Curriculum
Ingegneria dei Dati
Anno di corso
2
Periodo
Primo semestre
Ore
54
CUIN
260002642

Programma

1) Algorithms for data streams
- Approximate counting
- Majority problems
- Sampling and reservoir sampling
- Bloom filters
- Frequent itemsets
- Number of distinct elements
2) Algorithms and data structures for quantitative features analysis
- orthogonal range searching (kd-trees, range trees, and layered range trees)
- median finding
- multidimensional divide and conquer, closest pair
- fractional cascading
3) Locality sensitive hashing for finding similar items
- Min-Hashing
- Nearest neighbour search, k-nearest neighbour search
4) Algoritmi sotto-esponenziali e parametrizzate
- kernelizzazione
- branching
- programmazione dinamica su decomposizioni parametriche

Prerequisiti

Il corso non richiede alcun prerequisito.

Testi adottati

Mining of Massive Datasets
Jure Leskovec, Anand Rajaraman, Jeff Ullman
Cambridge University Press
http://www.mmds.org/

Bibliografia di riferimento

Mining of Massive Datasets
Jure Leskovec, Anand Rajaraman, Jeff Ullman
Cambridge University Press
http://www.mmds.org/

Modalità di erogazione

Tradizionale

Modalità di frequenza

Facoltativa

Modalità di valutazione

Prova scritta, valutazione progetto. La prova scritta puo' essere sostituita da prove in itinere parziali.

Prove previste

  • Prova scritta
  • Prove intermedie
  • Valutazione di un progetto

Docente
Fabrizio Frati
Curriculum
Algoritmi, Big Data e Machine Learning
Anno di corso
2
Periodo
Primo semestre
Ore
54
CUIN
260002624

Programma

1) Algorithms for data streams
- Approximate counting
- Majority problems
- Sampling and reservoir sampling
- Bloom filters
- Frequent itemsets
- Number of distinct elements
2) Algorithms and data structures for quantitative features analysis
- orthogonal range searching (kd-trees, range trees, and layered range trees)
- median finding
- multidimensional divide and conquer, closest pair
- fractional cascading
3) Locality sensitive hashing for finding similar items
- Min-Hashing
- Nearest neighbour search, k-nearest neighbour search
4) NoSQL internals & Distributed Hash Tables
- Chord
- consistent hashing
- Kademlia
5) Scalable security:
- integrity of big data sets in the cloud,
- consistency and scalability issues with authenticated data structures

Prerequisiti

Nessuno

Testi adottati

Mining of Massive Datasets
Jure Leskovec, Anand Rajaraman, Jeff Ullman
Cambridge University Press
http://www.mmds.org/

Bibliografia di riferimento

Mining of Massive Datasets
Jure Leskovec, Anand Rajaraman, Jeff Ullman
Cambridge University Press
http://www.mmds.org/

Modalità di erogazione

Tradizionale

Modalità di frequenza

Facoltativa

Modalità di valutazione

Prova scritta, valutazione progetto. La prova scritta può essere sostituita da prove in itinere parziali.

Prove previste

  • Prova scritta
  • Prove intermedie
  • Valutazione di un progetto

Curriculum
Algoritmi, Big Data e Machine Learning
Anno di corso
2
Periodo
Primo semestre
Ore
54
CUIN
260002624

Programma

1) Algorithms for data streams
- Approximate counting
- Majority problems
- Sampling and reservoir sampling
- Bloom filters
- Frequent itemsets
- Number of distinct elements
2) Algorithms and data structures for quantitative features analysis
- orthogonal range searching (kd-trees, range trees, and layered range trees)
- median finding
- multidimensional divide and conquer, closest pair
- fractional cascading
3) Locality sensitive hashing for finding similar items
- Min-Hashing
- Nearest neighbour search, k-nearest neighbour search
4) Algoritmi sotto-esponenziali e parametrizzate
- kernelizzazione
- branching
- programmazione dinamica su decomposizioni parametriche

Prerequisiti

Il corso non richiede alcun prerequisito.

Testi adottati

Mining of Massive Datasets
Jure Leskovec, Anand Rajaraman, Jeff Ullman
Cambridge University Press
http://www.mmds.org/

Bibliografia di riferimento

Mining of Massive Datasets
Jure Leskovec, Anand Rajaraman, Jeff Ullman
Cambridge University Press
http://www.mmds.org/

Modalità di erogazione

Tradizionale

Modalità di frequenza

Facoltativa

Modalità di valutazione

Prova scritta, valutazione progetto. La prova scritta puo' essere sostituita da prove in itinere parziali.

Prove previste

  • Prova scritta
  • Prove intermedie
  • Valutazione di un progetto

Docente
Fabrizio Frati
Curriculum
Cybersecurity
Anno di corso
2
Periodo
Primo semestre
Ore
54
CUIN
260003215

Programma

1) Algorithms for data streams
- Approximate counting
- Majority problems
- Sampling and reservoir sampling
- Bloom filters
- Frequent itemsets
- Number of distinct elements
2) Algorithms and data structures for quantitative features analysis
- orthogonal range searching (kd-trees, range trees, and layered range trees)
- median finding
- multidimensional divide and conquer, closest pair
- fractional cascading
3) Locality sensitive hashing for finding similar items
- Min-Hashing
- Nearest neighbour search, k-nearest neighbour search
4) NoSQL internals & Distributed Hash Tables
- Chord
- consistent hashing
- Kademlia
5) Scalable security:
- integrity of big data sets in the cloud,
- consistency and scalability issues with authenticated data structures

Prerequisiti

Nessuno

Testi adottati

Mining of Massive Datasets
Jure Leskovec, Anand Rajaraman, Jeff Ullman
Cambridge University Press
http://www.mmds.org/

Bibliografia di riferimento

Mining of Massive Datasets
Jure Leskovec, Anand Rajaraman, Jeff Ullman
Cambridge University Press
http://www.mmds.org/

Modalità di erogazione

Tradizionale

Modalità di frequenza

Facoltativa

Modalità di valutazione

Prova scritta, valutazione progetto. La prova scritta può essere sostituita da prove in itinere parziali.

Prove previste

  • Prova scritta
  • Prove intermedie
  • Valutazione di un progetto

Curriculum
Cybersecurity
Anno di corso
2
Periodo
Primo semestre
Ore
54
CUIN
260003215

Programma

1) Algorithms for data streams
- Approximate counting
- Majority problems
- Sampling and reservoir sampling
- Bloom filters
- Frequent itemsets
- Number of distinct elements
2) Algorithms and data structures for quantitative features analysis
- orthogonal range searching (kd-trees, range trees, and layered range trees)
- median finding
- multidimensional divide and conquer, closest pair
- fractional cascading
3) Locality sensitive hashing for finding similar items
- Min-Hashing
- Nearest neighbour search, k-nearest neighbour search
4) Algoritmi sotto-esponenziali e parametrizzate
- kernelizzazione
- branching
- programmazione dinamica su decomposizioni parametriche

Prerequisiti

Il corso non richiede alcun prerequisito.

Testi adottati

Mining of Massive Datasets
Jure Leskovec, Anand Rajaraman, Jeff Ullman
Cambridge University Press
http://www.mmds.org/

Bibliografia di riferimento

Mining of Massive Datasets
Jure Leskovec, Anand Rajaraman, Jeff Ullman
Cambridge University Press
http://www.mmds.org/

Modalità di erogazione

Tradizionale

Modalità di frequenza

Facoltativa

Modalità di valutazione

Prova scritta, valutazione progetto. La prova scritta puo' essere sostituita da prove in itinere parziali.

Prove previste

  • Prova scritta
  • Prove intermedie
  • Valutazione di un progetto

Esplora gli obiettivi dell’insegnamento

Ambito disciplinare: Ingegneria informatica

In molti contesti applicativi sono in gioco enormi volumi di dati che
vengono utilizzati in ambito economico-finanziario, politico, sociale ed
anche istituzionale. Spesso i dati sono memorizzati in enormi cloud
distribuite e talvolta sono generati secondo un flusso continuo, così
consistente da renderne impossibile una memorizzazione completa. In
moltissimi casi i dati sono inerenti ad entità in fitta relazione tra
loro e danno luogo a immense reti di collegamenti. Esempi comuni di tali
reti sono le reti sociali e biologiche, le reti di distribuzione e il
grafo del Web. Inoltre il fatto che i dati siano memorizzati in sistemi
gestiti da terze parti pone problemi di integrità che non trovano
riscontro nella letteratura informatica classica sia per la tipologia
sia per la scala.

Questo scenario pone sfide algoritmiche inedite sulle quali è al lavoro
una vasta platea di ricercatori. Tale sforzo ha prodotto, nell’ultimo
decennio, molte novità sia sul piano metodologico sia sul piano
tecnologico. L’insegnamento ha lo scopo di trasferire agli studenti
alcuni tra i più importanti strumenti metodologici nati nell’ambito
della ricerca sugli algoritmi per Big Data. Tali strumenti metodologici
sono proposti assieme a contesti applicativi sfidanti.

Risultati di apprendimento attesi — Fabrizio Frati

Fornire le competenze avanzate per la progettazione e l’analisi di algoritmi scalabili per l’elaborazione di grandi volumi di dati, con particolare attenzione ai modelli computazionali tipici dei Big Data (streaming, approssimazione, dati multidimensionali e parametrizzazioni) e alle tecniche per la gestione efficiente della complessità computazionale.

Obiettivi specifici:

- conoscenza e applicazione di algoritmi per l’elaborazione di flussi di dati (data streams), con particolare riferimento a tecniche di approssimazione, campionamento e strutture probabilistiche (Es. Bloom filters) per la gestione efficiente della memoria;
- capacità di progettare e analizzare algoritmi per l’estrazione di pattern e statistiche fondamentali da grandi dataset, quali elementi mediani, cardinalità e distribuzioni;
- conoscenza e utilizzo di strutture dati avanzate per l’analisi di dati multidimensionali, inclusi alberi di decomposizione spazionale e tecniche di ricerca connesse (Es. fractional cascading);
- comprensione e applicazione di tecniche per la ricerca di similarità in spazi ad alta dimensionalità, con particolare riferimento al Locality Sensitive Hashing e ai metodi per il Nearest Neighbor Search;
- conoscenza dei principali paradigmi per la progettazione di algoritmi efficienti in contesti complessi, inclusi metodi sub-esponenziali e algoritmi parametrizzati (kernelizzazione, branching, programmazione dinamica su decomposizioni);
- capacità di valutare l’efficienza, l’accuratezza e la scalabilità degli algoritmi nel contesto dei Big Data, anche mediante confronto tra soluzioni esatte e approssimate;
- abilità pratiche nell’implementazione e sperimentazione di algoritmi su dataset di grandi dimensioni.

Risultati di apprendimento attesi — Giordano Da Lozzo

Fornire le competenze avanzate per la progettazione e l’analisi di algoritmi scalabili per l’elaborazione di grandi volumi di dati, con particolare attenzione ai modelli computazionali tipici dei Big Data (streaming, approssimazione, dati multidimensionali e parametrizzazioni) e alle tecniche per la gestione efficiente della complessità computazionale.

Obiettivi specifici:

- conoscenza e applicazione di algoritmi per l’elaborazione di flussi di dati (data streams), con particolare riferimento a tecniche di approssimazione, campionamento e strutture probabilistiche (Es. Bloom filters) per la gestione efficiente della memoria;
- capacità di progettare e analizzare algoritmi per l’estrazione di pattern e statistiche fondamentali da grandi dataset, quali elementi mediani, cardinalità e distribuzioni;
- conoscenza e utilizzo di strutture dati avanzate per l’analisi di dati multidimensionali, inclusi alberi di decomposizione spazionale e tecniche di ricerca connesse (Es. fractional cascading);
- comprensione e applicazione di tecniche per la ricerca di similarità in spazi ad alta dimensionalità, con particolare riferimento al Locality Sensitive Hashing e ai metodi per il Nearest Neighbor Search;
- conoscenza dei principali paradigmi per la progettazione di algoritmi efficienti in contesti complessi, inclusi metodi sub-esponenziali e algoritmi parametrizzati (kernelizzazione, branching, programmazione dinamica su decomposizioni);
- capacità di valutare l’efficienza, l’accuratezza e la scalabilità degli algoritmi nel contesto dei Big Data, anche mediante confronto tra soluzioni esatte e approssimate;
- abilità pratiche nell’implementazione e sperimentazione di algoritmi su dataset di grandi dimensioni.

Risultati di apprendimento attesi — Fabrizio Frati

Fornire le competenze avanzate per la progettazione e l’analisi di algoritmi scalabili per l’elaborazione di grandi volumi di dati, con particolare attenzione ai modelli computazionali tipici dei Big Data (streaming, approssimazione, dati multidimensionali e parametrizzazioni) e alle tecniche per la gestione efficiente della complessità computazionale.

Obiettivi specifici:

- conoscenza e applicazione di algoritmi per l’elaborazione di flussi di dati (data streams), con particolare riferimento a tecniche di approssimazione, campionamento e strutture probabilistiche (Es. Bloom filters) per la gestione efficiente della memoria;
- capacità di progettare e analizzare algoritmi per l’estrazione di pattern e statistiche fondamentali da grandi dataset, quali elementi mediani, cardinalità e distribuzioni;
- conoscenza e utilizzo di strutture dati avanzate per l’analisi di dati multidimensionali, inclusi alberi di decomposizione spazionale e tecniche di ricerca connesse (Es. fractional cascading);
- comprensione e applicazione di tecniche per la ricerca di similarità in spazi ad alta dimensionalità, con particolare riferimento al Locality Sensitive Hashing e ai metodi per il Nearest Neighbor Search;
- conoscenza dei principali paradigmi per la progettazione di algoritmi efficienti in contesti complessi, inclusi metodi sub-esponenziali e algoritmi parametrizzati (kernelizzazione, branching, programmazione dinamica su decomposizioni);
- capacità di valutare l’efficienza, l’accuratezza e la scalabilità degli algoritmi nel contesto dei Big Data, anche mediante confronto tra soluzioni esatte e approssimate;
- abilità pratiche nell’implementazione e sperimentazione di algoritmi su dataset di grandi dimensioni.

Risultati di apprendimento attesi — Giordano Da Lozzo

Fornire le competenze avanzate per la progettazione e l’analisi di algoritmi scalabili per l’elaborazione di grandi volumi di dati, con particolare attenzione ai modelli computazionali tipici dei Big Data (streaming, approssimazione, dati multidimensionali e parametrizzazioni) e alle tecniche per la gestione efficiente della complessità computazionale.

Obiettivi specifici:

- conoscenza e applicazione di algoritmi per l’elaborazione di flussi di dati (data streams), con particolare riferimento a tecniche di approssimazione, campionamento e strutture probabilistiche (Es. Bloom filters) per la gestione efficiente della memoria;
- capacità di progettare e analizzare algoritmi per l’estrazione di pattern e statistiche fondamentali da grandi dataset, quali elementi mediani, cardinalità e distribuzioni;
- conoscenza e utilizzo di strutture dati avanzate per l’analisi di dati multidimensionali, inclusi alberi di decomposizione spazionale e tecniche di ricerca connesse (Es. fractional cascading);
- comprensione e applicazione di tecniche per la ricerca di similarità in spazi ad alta dimensionalità, con particolare riferimento al Locality Sensitive Hashing e ai metodi per il Nearest Neighbor Search;
- conoscenza dei principali paradigmi per la progettazione di algoritmi efficienti in contesti complessi, inclusi metodi sub-esponenziali e algoritmi parametrizzati (kernelizzazione, branching, programmazione dinamica su decomposizioni);
- capacità di valutare l’efficienza, l’accuratezza e la scalabilità degli algoritmi nel contesto dei Big Data, anche mediante confronto tra soluzioni esatte e approssimate;
- abilità pratiche nell’implementazione e sperimentazione di algoritmi su dataset di grandi dimensioni.

Risultati di apprendimento attesi — Fabrizio Frati

Fornire le competenze avanzate per la progettazione e l’analisi di algoritmi scalabili per l’elaborazione di grandi volumi di dati, con particolare attenzione ai modelli computazionali tipici dei Big Data (streaming, approssimazione, dati multidimensionali e parametrizzazioni) e alle tecniche per la gestione efficiente della complessità computazionale.

Obiettivi specifici:

- conoscenza e applicazione di algoritmi per l’elaborazione di flussi di dati (data streams), con particolare riferimento a tecniche di approssimazione, campionamento e strutture probabilistiche (Es. Bloom filters) per la gestione efficiente della memoria;
- capacità di progettare e analizzare algoritmi per l’estrazione di pattern e statistiche fondamentali da grandi dataset, quali elementi mediani, cardinalità e distribuzioni;
- conoscenza e utilizzo di strutture dati avanzate per l’analisi di dati multidimensionali, inclusi alberi di decomposizione spazionale e tecniche di ricerca connesse (Es. fractional cascading);
- comprensione e applicazione di tecniche per la ricerca di similarità in spazi ad alta dimensionalità, con particolare riferimento al Locality Sensitive Hashing e ai metodi per il Nearest Neighbor Search;
- conoscenza dei principali paradigmi per la progettazione di algoritmi efficienti in contesti complessi, inclusi metodi sub-esponenziali e algoritmi parametrizzati (kernelizzazione, branching, programmazione dinamica su decomposizioni);
- capacità di valutare l’efficienza, l’accuratezza e la scalabilità degli algoritmi nel contesto dei Big Data, anche mediante confronto tra soluzioni esatte e approssimate;
- abilità pratiche nell’implementazione e sperimentazione di algoritmi su dataset di grandi dimensioni.

Risultati di apprendimento attesi — Giordano Da Lozzo

Fornire le competenze avanzate per la progettazione e l’analisi di algoritmi scalabili per l’elaborazione di grandi volumi di dati, con particolare attenzione ai modelli computazionali tipici dei Big Data (streaming, approssimazione, dati multidimensionali e parametrizzazioni) e alle tecniche per la gestione efficiente della complessità computazionale.

Obiettivi specifici:

- conoscenza e applicazione di algoritmi per l’elaborazione di flussi di dati (data streams), con particolare riferimento a tecniche di approssimazione, campionamento e strutture probabilistiche (Es. Bloom filters) per la gestione efficiente della memoria;
- capacità di progettare e analizzare algoritmi per l’estrazione di pattern e statistiche fondamentali da grandi dataset, quali elementi mediani, cardinalità e distribuzioni;
- conoscenza e utilizzo di strutture dati avanzate per l’analisi di dati multidimensionali, inclusi alberi di decomposizione spazionale e tecniche di ricerca connesse (Es. fractional cascading);
- comprensione e applicazione di tecniche per la ricerca di similarità in spazi ad alta dimensionalità, con particolare riferimento al Locality Sensitive Hashing e ai metodi per il Nearest Neighbor Search;
- conoscenza dei principali paradigmi per la progettazione di algoritmi efficienti in contesti complessi, inclusi metodi sub-esponenziali e algoritmi parametrizzati (kernelizzazione, branching, programmazione dinamica su decomposizioni);
- capacità di valutare l’efficienza, l’accuratezza e la scalabilità degli algoritmi nel contesto dei Big Data, anche mediante confronto tra soluzioni esatte e approssimate;
- abilità pratiche nell’implementazione e sperimentazione di algoritmi su dataset di grandi dimensioni.

Risultati di apprendimento attesi — Fabrizio Frati

Fornire le competenze avanzate per la progettazione e l’analisi di algoritmi scalabili per l’elaborazione di grandi volumi di dati, con particolare attenzione ai modelli computazionali tipici dei Big Data (streaming, approssimazione, dati multidimensionali e parametrizzazioni) e alle tecniche per la gestione efficiente della complessità computazionale.

Obiettivi specifici:

- conoscenza e applicazione di algoritmi per l’elaborazione di flussi di dati (data streams), con particolare riferimento a tecniche di approssimazione, campionamento e strutture probabilistiche (Es. Bloom filters) per la gestione efficiente della memoria;
- capacità di progettare e analizzare algoritmi per l’estrazione di pattern e statistiche fondamentali da grandi dataset, quali elementi mediani, cardinalità e distribuzioni;
- conoscenza e utilizzo di strutture dati avanzate per l’analisi di dati multidimensionali, inclusi alberi di decomposizione spazionale e tecniche di ricerca connesse (Es. fractional cascading);
- comprensione e applicazione di tecniche per la ricerca di similarità in spazi ad alta dimensionalità, con particolare riferimento al Locality Sensitive Hashing e ai metodi per il Nearest Neighbor Search;
- conoscenza dei principali paradigmi per la progettazione di algoritmi efficienti in contesti complessi, inclusi metodi sub-esponenziali e algoritmi parametrizzati (kernelizzazione, branching, programmazione dinamica su decomposizioni);
- capacità di valutare l’efficienza, l’accuratezza e la scalabilità degli algoritmi nel contesto dei Big Data, anche mediante confronto tra soluzioni esatte e approssimate;
- abilità pratiche nell’implementazione e sperimentazione di algoritmi su dataset di grandi dimensioni.

Risultati di apprendimento attesi — Giordano Da Lozzo

Fornire le competenze avanzate per la progettazione e l’analisi di algoritmi scalabili per l’elaborazione di grandi volumi di dati, con particolare attenzione ai modelli computazionali tipici dei Big Data (streaming, approssimazione, dati multidimensionali e parametrizzazioni) e alle tecniche per la gestione efficiente della complessità computazionale.

Obiettivi specifici:

- conoscenza e applicazione di algoritmi per l’elaborazione di flussi di dati (data streams), con particolare riferimento a tecniche di approssimazione, campionamento e strutture probabilistiche (Es. Bloom filters) per la gestione efficiente della memoria;
- capacità di progettare e analizzare algoritmi per l’estrazione di pattern e statistiche fondamentali da grandi dataset, quali elementi mediani, cardinalità e distribuzioni;
- conoscenza e utilizzo di strutture dati avanzate per l’analisi di dati multidimensionali, inclusi alberi di decomposizione spazionale e tecniche di ricerca connesse (Es. fractional cascading);
- comprensione e applicazione di tecniche per la ricerca di similarità in spazi ad alta dimensionalità, con particolare riferimento al Locality Sensitive Hashing e ai metodi per il Nearest Neighbor Search;
- conoscenza dei principali paradigmi per la progettazione di algoritmi efficienti in contesti complessi, inclusi metodi sub-esponenziali e algoritmi parametrizzati (kernelizzazione, branching, programmazione dinamica su decomposizioni);
- capacità di valutare l’efficienza, l’accuratezza e la scalabilità degli algoritmi nel contesto dei Big Data, anche mediante confronto tra soluzioni esatte e approssimate;
- abilità pratiche nell’implementazione e sperimentazione di algoritmi su dataset di grandi dimensioni.

Obiettivi di sostenibilità

  • 9 Imprese, innovazione e infrastrutture
  • 8 Lavoro dignitoso e crescita economica

Esempi di domande d’esame

Fabrizio Frati

Descrivi l’algoritmo R di Waterman per campionare s oggetti in uno stream x1, x2, …, xn la cui lunghezza n non è nota a priori. Mostra l’analisi che dimostra che, dopo l’arrivo di t oggetti sullo stream, ciascun oggetto ha la stessa probabilità di appartenere al campione.

Descrivi l’algoritmo di Chakraborty, Vinodchandran e Meel per il calcolo del numero di elementi distinti in uno stream. Qual è la probabilità che un elemento appartenga al campione mantenuto dall’algoritmo in un momento successivo alla sua prima apparizione sullo stream?

Si illustri la tecnica del fractional cascading, mettendone in risalto il principio algoritmico, e se ne descriva in modo dettagliato l’applicazione ad almeno una delle seguenti due interrogazioni: (1) Orthogonal range search mediante layered range trees e (2) Restituzione delle intersezioni tra un path poligonale e una linea di interrogazione.

Siano S1 e S2 due colonne di una matrice caratteristica M. Si consideri una funzione Min-hash h associata ad una permutazione random delle righe di M. Enuncia la relazione tra la Jaccard similarity J(S1,S2) di S1 e S2 e la probabilità Pr[h(S1) = h(S2)] e mostra l’analisi che porta a determinarla.

Descrivi il funzionamento di una rete peer to peer basata su Chord ed analizzala dal punto di vista della scalabilità per le operazioni di lettura, cioè get(key), e scrittura, cioè put(key, value).

Giordano Da Lozzo

Domanda 1:
Descrivi i Bloom filter. Mostra perché i Bloom filter possono avere falsi positivi. Qual è la probabilità che un Bloom filter abbia falsi positivi? Mostra l’analisi che porta a calcolare tale probabilità e mostra quando tale probabilità è minima.

Domanda 2:
Si consideri un KD-tree T definito su un pointset P⊆R^2. Si descriva l’algoritmo SearchKDTree che consente di effettuare su T una query di tipo Orthogonal Range Search definita da un rettangolo R. Se ne descrivano inoltre le performance in termini di tempo di interrogazione, argomentando le ragioni che lo determinano.

Fabrizio Frati

Descrivi l’algoritmo R di Waterman per campionare s oggetti in uno stream x1, x2, …, xn la cui lunghezza n non è nota a priori. Mostra l’analisi che dimostra che, dopo l’arrivo di t oggetti sullo stream, ciascun oggetto ha la stessa probabilità di appartenere al campione.

Descrivi l’algoritmo di Chakraborty, Vinodchandran e Meel per il calcolo del numero di elementi distinti in uno stream. Qual è la probabilità che un elemento appartenga al campione mantenuto dall’algoritmo in un momento successivo alla sua prima apparizione sullo stream?

Si illustri la tecnica del fractional cascading, mettendone in risalto il principio algoritmico, e se ne descriva in modo dettagliato l’applicazione ad almeno una delle seguenti due interrogazioni: (1) Orthogonal range search mediante layered range trees e (2) Restituzione delle intersezioni tra un path poligonale e una linea di interrogazione.

Siano S1 e S2 due colonne di una matrice caratteristica M. Si consideri una funzione Min-hash h associata ad una permutazione random delle righe di M. Enuncia la relazione tra la Jaccard similarity J(S1,S2) di S1 e S2 e la probabilità Pr[h(S1) = h(S2)] e mostra l’analisi che porta a determinarla.

Descrivi il funzionamento di una rete peer to peer basata su Chord ed analizzala dal punto di vista della scalabilità per le operazioni di lettura, cioè get(key), e scrittura, cioè put(key, value).

Giordano Da Lozzo

Domanda 1:
Descrivi i Bloom filter. Mostra perché i Bloom filter possono avere falsi positivi. Qual è la probabilità che un Bloom filter abbia falsi positivi? Mostra l’analisi che porta a calcolare tale probabilità e mostra quando tale probabilità è minima.

Domanda 2:
Si consideri un KD-tree T definito su un pointset P⊆R^2. Si descriva l’algoritmo SearchKDTree che consente di effettuare su T una query di tipo Orthogonal Range Search definita da un rettangolo R. Se ne descrivano inoltre le performance in termini di tempo di interrogazione, argomentando le ragioni che lo determinano.

Fabrizio Frati

Descrivi l’algoritmo R di Waterman per campionare s oggetti in uno stream x1, x2, …, xn la cui lunghezza n non è nota a priori. Mostra l’analisi che dimostra che, dopo l’arrivo di t oggetti sullo stream, ciascun oggetto ha la stessa probabilità di appartenere al campione.

Descrivi l’algoritmo di Chakraborty, Vinodchandran e Meel per il calcolo del numero di elementi distinti in uno stream. Qual è la probabilità che un elemento appartenga al campione mantenuto dall’algoritmo in un momento successivo alla sua prima apparizione sullo stream?

Si illustri la tecnica del fractional cascading, mettendone in risalto il principio algoritmico, e se ne descriva in modo dettagliato l’applicazione ad almeno una delle seguenti due interrogazioni: (1) Orthogonal range search mediante layered range trees e (2) Restituzione delle intersezioni tra un path poligonale e una linea di interrogazione.

Siano S1 e S2 due colonne di una matrice caratteristica M. Si consideri una funzione Min-hash h associata ad una permutazione random delle righe di M. Enuncia la relazione tra la Jaccard similarity J(S1,S2) di S1 e S2 e la probabilità Pr[h(S1) = h(S2)] e mostra l’analisi che porta a determinarla.

Descrivi il funzionamento di una rete peer to peer basata su Chord ed analizzala dal punto di vista della scalabilità per le operazioni di lettura, cioè get(key), e scrittura, cioè put(key, value).

Giordano Da Lozzo

Domanda 1:
Descrivi i Bloom filter. Mostra perché i Bloom filter possono avere falsi positivi. Qual è la probabilità che un Bloom filter abbia falsi positivi? Mostra l’analisi che porta a calcolare tale probabilità e mostra quando tale probabilità è minima.

Domanda 2:
Si consideri un KD-tree T definito su un pointset P⊆R^2. Si descriva l’algoritmo SearchKDTree che consente di effettuare su T una query di tipo Orthogonal Range Search definita da un rettangolo R. Se ne descrivano inoltre le performance in termini di tempo di interrogazione, argomentando le ragioni che lo determinano.

Fabrizio Frati

Descrivi l’algoritmo R di Waterman per campionare s oggetti in uno stream x1, x2, …, xn la cui lunghezza n non è nota a priori. Mostra l’analisi che dimostra che, dopo l’arrivo di t oggetti sullo stream, ciascun oggetto ha la stessa probabilità di appartenere al campione.

Descrivi l’algoritmo di Chakraborty, Vinodchandran e Meel per il calcolo del numero di elementi distinti in uno stream. Qual è la probabilità che un elemento appartenga al campione mantenuto dall’algoritmo in un momento successivo alla sua prima apparizione sullo stream?

Si illustri la tecnica del fractional cascading, mettendone in risalto il principio algoritmico, e se ne descriva in modo dettagliato l’applicazione ad almeno una delle seguenti due interrogazioni: (1) Orthogonal range search mediante layered range trees e (2) Restituzione delle intersezioni tra un path poligonale e una linea di interrogazione.

Siano S1 e S2 due colonne di una matrice caratteristica M. Si consideri una funzione Min-hash h associata ad una permutazione random delle righe di M. Enuncia la relazione tra la Jaccard similarity J(S1,S2) di S1 e S2 e la probabilità Pr[h(S1) = h(S2)] e mostra l’analisi che porta a determinarla.

Descrivi il funzionamento di una rete peer to peer basata su Chord ed analizzala dal punto di vista della scalabilità per le operazioni di lettura, cioè get(key), e scrittura, cioè put(key, value).

Giordano Da Lozzo

Domanda 1:
Descrivi i Bloom filter. Mostra perché i Bloom filter possono avere falsi positivi. Qual è la probabilità che un Bloom filter abbia falsi positivi? Mostra l’analisi che porta a calcolare tale probabilità e mostra quando tale probabilità è minima.

Domanda 2:
Si consideri un KD-tree T definito su un pointset P⊆R^2. Si descriva l’algoritmo SearchKDTree che consente di effettuare su T una query di tipo Orthogonal Range Search definita da un rettangolo R. Se ne descrivano inoltre le performance in termini di tempo di interrogazione, argomentando le ragioni che lo determinano.

Il corso in cui è erogato questo insegnamento

API