- Large-Scale Graph Algorithms
- Summary
Course Syllabus
Obiettivi
Al termine dell’insegnamento, gli studenti avranno conoscenze nel campo della teoria dei grafi ed in particolare su algoritmi efficienti per alcuni problemi fondamentali. Inoltre avranno conoscenze relative a complessità computazionale e alle tecniche algoritmiche associate, e competenze relative all’implementazione di algoritmi efficienti, anche euristici, su grafi di grandi dimensioni.
Conoscenza e comprensione
Questo insegnamento permetterà di comprendere come rappresentare grafi, anche di grandi dimensioni. Inoltre gli studenti acquisiranno conoscenza dei principali algoritmi su grafi, incluse alcune tecniche euristiche necessarie per trattare grafi di grandi dimensioni.
Capacità di applicare conoscenza e comprensione
Alla fine dell'insegnamento gli studenti saranno in grado di analizzare un problema concreto, modellarlo come problema computazionale su grafi, selezionare la tecnica algoritmica più adatta per la soluzione del problema.
Contenuti sintetici
Introduzione alla teoria dei grafi.
Problemi computazionali su grafi.
Tecniche di disegno di euristiche per grafi di grandi dimensioni.
Programma esteso
- Grafi: definizioni fondamentali. Rappresentazioni di grafi: liste di adiacenza, matrice di adiacenza. Strutture dati efficienti e succinte per le rappresentazioni.
Problemi su grafi
- Calcolo delle componenti connesse, biconnesse, triconnesse
- Matching
- Tagli e flussi
- Copertura minima, cricca massima, insieme indipendente massimo
- Cammino di Eulero, cammino Hamiltoniano e TSP
- Colorazione di grafi
- Isomorfismo di grafi
- Compressione di grafi
- Grafi planari e disegno di grafi
Tecniche euristiche e complessità computazionale
- Complessità parametrica. Algoritmi per la copertura di grafi
- Risolutori SAT
- Algoritmo di Lin-Kernighan
- Simulated Annealing
- Complessità di approssimazione.
- Particle Swarm Optimization
- Algoritmi Streaming
- Ant Colony
Prerequisiti
Teoria della computazione
Modalità didattica
Tutte le attività sono tenute in presenza e non vengono registrate nè trasmesse in streaming. L'insegnamento è erogato in Inglese. Le attività previste sono:
- 24 lezioni da 2 ore svolte in modalità erogativa nella parte iniziale ed in modalità interattiva nella parte successiva
Materiale didattico
Il testo utilizzato è Graph Algorithms, una collezione curata di articoli di Wikipedia.
I docenti non distribuiranno il materiale utilizzato in classe. Gli studenti sono incoraggiati a seguire le lezioni e prendere appunti.
Periodo di erogazione dell'insegnamento
Primo semestre
Modalità di verifica del profitto e valutazione
L'esame consiste in una prova orale con domande aperte su tutti gli argomenti trattati nel corso.
La prova verrà valutata principalmente in base alla correttezza e alla completezza delle risposte fornite. Criteri secondari di valutazione saranno la capacità di contestualizzare le risposte rispetto agli altri argomenti trattati nell'insegnamento e all'utilizzo corretto dei formalismi.
Non sono previste prove in itinere.
Si ricorda che è necessario essere iscritti alle prove d'esame tramite segreterie online. Non ci saranno eccezioni al riguardo.
Orario di ricevimento
Su appuntamento con i docenti
- https://www.unimib.it/gianluca-della-vedova
- claudio.zandron@unimib.it
Sustainable Development Goals
Aims
The course will present some efficient algorithms concerning fundamental problems in graph theory.
Moreover, we will discuss some computational complexity aspects and the related algorithm design techniques, as well as techniques for implementing efficient (and heuristic) algorithms on large-scale graphs.
Knowledge and understanding
Student will learn how to represent standard graphs and large-dimension graphs, and they will learn some fundamental graph algorithms and heuristics techniques to tackle computational problems on small and large graphs.
Applying knowledge and understanding
At the end of the course, students will be able to model a real-world problem in terms of a graph problem, and to design specific algorithms to efficiently solve the problem.
Contents
Graph theory fundamentals.
Computational problems on graphs.
Heuristic approaches on large-scale graphs.
Detailed program
- Graph: basic notions. Representation of graphs: adjacency lists, adjacency matrices. Efficient and succint data structures for graph representation.
Graph problems
- Connected components, bi- and tri- connected components
- Graph matching
- Cuts and flows
- Minimal cover, maximum clique, maximum independent set
- Eulerian path, Hamiltonian path, and Travelling Salesman Problem (TSP)
- Graph coloring
- Graph isomorphism
- Graph compression
- Graph planarity and graph drawing
Heuristic techniques and computational complexity
- Parametric complexity. Graph cover algorithms
- SAT solvers
- Lin-Kernighan algorithm
- Simulated Annealing
- Approximation complexity
- Particle Swarm Optimization
- Streaming Algorithms
- Ant Colony
Prerequisites
Theory of computation
Teaching form
All activities are in-person and will be neither recorded nor streamed. The teaching language of this course is English. The activities will be:
- 24 lectures, 2 hours each, with an initial part in unidirectional mode and a second part in interactive mode.
Textbook and teaching resource
The text we will be using is Graph Algorithms, a collection of readings compiled from Wikipedia.
Lecture materials will not be distributed to the class; instead, you are encouraged to attend the lecture yourself and take your own notes.
Semester
First semester
Assessment method
The exam consists of an oral exam, with open-ended questions over all topics of the course.
The main criteria to evaluate the exam are correctness and completeness of the answers. Secondary criteria are the correct use of formal aspects and the ability to discuss how the answer is related to different course topics.
Beware that you must be registered via "segreterie online" to take the exam. If you are not registered, you will not allowed to take the exam. No exceptions will be made.
Office hours
Office hourse are online.
You can book a meeting at:
- https://www.unimib.it/gianluca-della-vedova
- claudio.zandron@unimib.it
Sustainable Development Goals
Key information
Staff
-
Gianluca Della Vedova
-
Claudio Zandron