Introdurre lo studio della topologia computazionale, e in particolare i concetti, le rappresentazioni e gli algoritmi per strutture topologiche e geometriche di supporto alla modellazione geometrica, alla costruzione di mesh per simulazioni, e alla visualizzazione scientifica. Acquisire le tecniche per l'implementazione parallela nella rappresentazione e nella elaborazione di grafi e complessi di enormi dimensioni. Applicazione delle matrici sparse, per la codifica di algoritmi su grafi e complessi con metodi di algebra lineare
scheda docente
materiale didattico
Herbert Edelsbrunner and John Harer, Computational Topology. An Introduction, AMS, 2011.
Fruizione: 20410431 IN540 - TOPOLOGIA COMPUTAZIONALE in Scienze Computazionali LM-40 PAOLUZZI ALBERTO
Programma
Breve introduzione al linguaggio Julia per calcolo scientifico. Introduzione alla modellazione geometrica e alla visualizzazione scientifica. Complessi simpliciali, cellulari e di catene. Operatori di bordo e cobordo. Operatori algebrici di incidenza e adiacenza. Dualita`. Estrazione di modelli geometrici da immagini 3D. Triangolazioni di Delaunay e complessi di Voronoi. Funzioni di Morse e grafi di Reeb. Cenni alle strutture topologiche nei bigdata. Omologia persistente. Sviluppo di un progetto collaborativo: LAR parallelo.Testi Adottati
Trasparenze delle lezioni su Github:Herbert Edelsbrunner and John Harer, Computational Topology. An Introduction, AMS, 2011.
Modalità Erogazione
Le lezioni utilizzano sussidi didattici (slides sul repository Github del corso) disponibili prima dell'inizio di ogni lezione, e alternano nozioni teoriche, esempi di programmazione e proposte di sviluppo di algoritmi/programmi, spesso con una traccia in pseudocodice.Modalità Valutazione
La verifica dell’apprendimento avviene attraverso lo sviluppo di un progetto individuale, in un insieme di temi coordinati. Il progetto utilizzerà Julia, il nuovo linguaggio di programmazione per applicazioni tecnico-scientifiche prescelto per il corso. Il progetto farà anche uso di strumenti di controllo delle versioni (Git e Github). Il voto finale terrà conto della frequenza e dell'impegno individuale al raggiungimento degli obiettivi.