GEOMETRIA COMPUTAZIONALE
Claudio Mirolo
Ulteriore materiale è disponibile attraverso le pagine dedicate al corso:
https://www.dmif.uniud.it/claudio/teaching/geom_comput
OBIETTIVI FORMATIVI
I principali approcci introdotti sviluppano tecniche di tipo divide-et-impera, plane-sweep e incrementale-randomizzato.
Particolare attenzione è rivolta all’analisi della correttezza e della complessità computazionale degli algoritmi discussi.
Al termine del corso lo studente avrà acquisito la capacità di individuare tecniche appropriate per affrontare problemi nell’ambito della geometria computazionale e di valutarne criticamente potenzialità, efficacia, prestazioni e robustezza.
Descrittori di Dublino
CAPACITÀ RELATIVE ALLE DISCIPLINE
Lo/la studente/ssa dovrà:
1.1. Conoscenza e capacità di comprensione
– Conoscere le principali caratteristiche e i limiti delle tecniche della geometria computazionale;
– Conoscere alcuni algoritmi classici della geometria computazionale per risolvere problemi nel piano;
– Conoscere la complessità asintotica degli algoritmi basati sulle tecniche discusse.
1.2 Capacità di applicare conoscenza e comprensione
– Saper analizzare sistematicamente i casi che si possono presentare nell’affrontare un’elaborazione di dati geometrici;
– Saper stimare i costi computazionali di algoritmi che risolvono problemi di geometria piana;
– Saper utilizzare una libreria di algoritmi di geometria computazionale;
– Saper codificare semplici algoritmi applicando le tecniche della geometria computazionale.
CAPACITÀ TRASVERSALI / SOFT SKILLS
Lo/la studente/ssa dovrà:
2.1 Autonomia di giudizio
– Saper analizzare i problemi al fine di identificare gli aspetti che si prestano ad essere affrontati attraverso le tecniche della geometria computazionale.
2.3 Capacità di apprendimento
– Essere in grado di attuare sperimentazioni sistematiche per verificarne una soluzione.
CONTENUTI
Discussione di problemi significativi della geometria computazionale piana, in particolare: convex hull, intersezioni di insiemi di segmenti, partizioni di regioni poligonali, problemi di localizzazione, vicinanza e visibilità, diagrammi di Voronoi e triangolazioni di Delaunay.
1. Cenni alle problematiche legate all’elaborazione numerica nella geometria computazionale.
– Informazioni relative alle strutture geometriche: topologia e misure spaziali;
– Problemi legati all’aritmetica floating-point;
– Elaborazione algoritmica: decisioni e costruzione di nuovi oggetti.
2. Costruzione del convex hull di un insieme di punti nel piano: proprietà geometriche, casi degeneri, analisi dei costi.
– “Graham’s scan”: ordinamento lessicografico, ottimalità e robustezza;
– Approccio divide-et-impera (Preparata & Hong).
– Approccio randomizzato (Devillers): gestione dei “conflitti”, backward analysis.
3. Cenni alla generalizzazione in 3D.
– Schema divide-et-impera (Preparata & Hong);
– Schema randomizzato (Devillers).
– Altri risultati relativi al convex hull: analisi “output-sensitive”.
4. Intersezioni di un insieme di segmenti nel piano: tecnica di plane sweep.
– Concetto di “sweep line” ed eventi;
– Ordinamento lessicografico degli eventi;
– Ordinamento dei segmenti intercettati dalla sweep line: struttura BST e relativi eventi;
– Test di intersezione di Sharir & Hoey;
– Algoritmo di Bentley & Ottmann: coda con priorità e BST, analisi della complessità;
– Altri algoritmi: Chazelle & Edelsbrunner, randomizzato (Mulmuley).
5. Struttura DCEL: Doubly-Connected Edge List.
– Sovrapposizione di suddivisioni piane rappresentate da DCEL.
6. Problemi affrontabili attraverso triangolazioni.
– “Guarding art galleries”: triangolazione e tricolorazione;
– Triangolazione di un poligono semplice: esistenza di una triangolazione;
– Tricolorazione dei vertici di un poligono semplice: esistenza e ottimalità;
– Algoritmo per la triangolazione: suddivisione in componenti monotone e vertici SPLIT/MERGE;
– Tecnica di plane sweep per la triangolazione: invarianti del processo di plane sweep;
– Algoritmo di Lee & Preparata;
– Algoritmo di Chazelle per un poligono semplice.
7. Mappe trapezoidali.
– Point location e bounding box;
– Classificazione e numerosità delle regioni di una mappa trapezoidale:
– Algoritmo randomizzato incrementale: DAG e tipologie di nodi;
– Stima dei costi di point location: backward analysis.
– Trattamento di casi degeneri.
8. Point location in suddivisioni piane monotone.
– Ordinamento lineare delle regioni e famiglia di separatori;
– Algoritmo di Lee & Preparata;
– Algoritmo di Edelsbrunner, Guibas & Stolfi: costruzione del layered DAG e stima dei costi di preelaborazione.
9. Diagrammi di Voronoi.
– Caratterizzazione e complessità strutturale;
– Costruzione di un diagramma di Voronoi: lower bound;
– Algoritmo di Fortune: sweep line e “beach line”, caratterizzazione degli eventi, analisi dei costi computazionali;
– Algoritmo “divide et impera” di Shamos & D. Hoey: tecnica.
10. Triangolazione di un insieme di punti.
– Complessita’ di una triangolazione;
– Triangolazioni di Delaunay: grafi e triangolazioni di Delaunay;
– Algoritmo incrementale randomizzato e stima dei costi di point location.
TESTI DI RIFERIMENTO
Computational Geometry: algorithms and applications
Springer Verlag, 2008.