Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Diagramma di Voronoi
Duccio Mugnaini1
1Dipartimento di Scienza e Alta Tecnologia (DiSTA)Università degli Studi dell’Insubria
Metodi numerici per la grafica :: Geometria computazionale
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Outline
I Introduzione
I Definizioni di base
I Proprietà strutturali
I Fortune’s Sweep Algorithm
I Applicazione: path planning problem
I Applicazioni: smallest-width annulus problem
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Referenze
Mark DeBerg, Otfried Cheong, Mark Van Kreveld, Mark Overmars, Computational Geometry,Third Edition 2008, Springer.
I calcolo del convex hull ;I intersezioni fra segmenti;I intersezioni di semipiani;I point location queries;I Voronoi Diagram e triangolazioni di Delaunay;I metodologie di base per il motion planning;I . . .
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Section 1
Introduzione
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Social geography
Market problem
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Esempio di geografia socialIn quale località è maggiormenteconveniente aprire un supermercato?É necessario stimare il numero di clientiche saranno attratti dal nuovosupermercato.
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Social geography
Market problem
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Assunzioni del problema:I medesimo prezzo in ogni sito;I il costo di un bene o servizio è
uguale al costo del bene più ilcosto di trasporto al sito;
I il costo di trasporto è uguale alladistanza euclidea al sitomoltiplicato un prezzo fissato perunità di distanza;
I i consumatori cercano diminimizzare il costo di beni eservizi.
Il ModelloLe assunzioni effettuate nonrispecchiano esattamente la realtà mapossono comunque fornire una rozzaapprossimazione.
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Social geography
Market problem
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
RisultatoLe assunzioni del modelloportano a una suddivisionedell’area in cui ogni gliabitanti della stessa regionesi recheranno nello stessomarket.
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Applicazioni
Applicazioni I
I contesti in cui il diagramma di Voroni è stato utilizzato con successo sono svariati:I Torrette di osservazioni anticendio: il Voronoi Diagram traccia le linee di responsabilità
tra le aree di foresta per ogni torretta;I Archeologia: individuazione di regioni sotto l’influenza di clan neolitici differenti, centri
cerimoniali o fortini di guerra;I Cartografia: incollare insieme fotografie satellitari in grandi mappe costruite come
mosaici di immagini;I Robotica: path planning in presenza di ostacoli;I Zoologia: modellare e analizzare il territorio degli animali;I Fisiologia: analisi della distribuzione capillare in sezioni di tessuto muscolare per
calcolare il trasporto di ossigeno.
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Applicazioni
Applicazioni II
Numerosi altri contesti in cui il diagramma di Voronoi è stato applicato con successo sonoreperibili:
I https://www.ics.uci.edu/ eppstein/gina/scot.drysdale.htmlI Joseph O’Rourke, Computational geometry in C, Cap.5, Second Edition, Cambridge
Press.
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Section 2
Definizioni di base
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Concetti di base
I Distanza euclidea;
I Cella di pi ;
I Diagramma di Voronoi di P - Vor(P);
I Bisettore fra p e q;
I Semipiano di p e p;
I Ottenere la cella di pi .
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Concetti di base
Definizioni
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Distanza euclidea d(p,q)Dati due punti nel piano
p = (px ,py )T q = (qx ,qy )T
Si definisce distanza euclidea:
d(p,q) =√
(px −qx )2 + (py −qy )2
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Concetti di base
Definizioni
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Diagramma di Voronoi di PDato un insieme finito di punti (o siti) nelpiano
P = {p1,p2, . . .pn}
il diagramma di Voronoi (Vor(P)) è l’insiemedi n celle V(pi ), i = 1 . . .n tc:
q ∈V(pi )⇔ d(q,pi )< d(q,pj ) ∀pj ∈P j 6= i
In cui V(pi ) denota la cella assocciata alpunto pi .
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Concetti di base
Definizioni
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Bisettore di p e qDati due punti p e q nel piano, definiamo ilbisettore di p e q come la retta passante peril punto medio tra p e q e perpendicolare alsegmento pq
Semi–piano di pIndichiamo il semipiano contenente p conh(p,q).
Semi–piano di qIndichiamo il semipiano contenente q conh(q,p). ⇒ dato un punto r nel piano,
r ∈ h(p,q)⇔ d(r ,p) < d(r ,q)
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Concetti di base
Definizioni
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Osservazione
V(pi ) =⋂
1≤j≤n, j 6=i
h(pi ,pj )
La cella di Voroni relativa al punto pi siottiene come l’intersezione di tutti i semipianih(pi ,pj ).⇒ (n−1) intersezioni di semi–piani;⇒ regione poligonale convessa limitata (oillimitata) da al più:
I (n−1) lati;I (n−1) vertici.
⇒ il diagramma di Voroni risultante avràcome lati segmenti di retta o semirette;eccetto il caso in cui i punti siano tutticollineari nessun lato sarà una rettacompleta (ma al più una semiretta).
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Section 3
Proprietà strutturali
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Caratterizzazione della struttura di Vor(P)
Struttura di Vor(P)
Caratterizzazione struttura di Vor(P)Sia P = {p1,p2, . . .pn} insieme di punti distinti nel piano.Allora abbiamo che Vor(P):
1) è composto da n−1 rette parallele se tutti i punti sono collineari;
2) è connesso e i lati sono o segmenti o semi–rette altrimenti;
Dim:
1) Semplice da dimostrare;
2) Dimostrare prima che i lati sono tutti semirette o segmenti esuccessivamente che è connesso;
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Caratterizzazione di lati e vertici di Vor(P)
Complessità di Vor(P)Caratterizzazione complessità di Vor(P)Dato un insieme di punti nel piano P = {p1,p2, . . .pn} con n ≥ 3, valgono le seguenti relazioni:
# vertici di Vor(P) = nv ≤ 2n−5
# lati di Vor(P) = nl ≤ 3n−6
Dim:
I Trattiamo il caso di punti non collineari;I Utilizziamo la formula di Eulero relativa ai grafi planari connessi:
mv −ml + mf = 2
in cui:I mv : numero di nodi;I ml : numeri di archi;I mf numeri di faccie.
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Caratterizzazione di lati e vertici di Vor(P)
Complessità di Vor(P)
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
I Per poter applicare la formula diEulero aggiungiamo un vertice v∞
ottenendo il grafo aumentato G′. SiaV l’insieme dei vertici del grafoaumentato e deg(v) v ∈ V il grado diun vertice (ovvero il numero di latiincidenti su di esso). Indichiamoinoltre con nv ,nl rispettivamente ilnumero di vertici e lati che compongoG′:
(nv + 1)−nl + n = 2
I Adesso ogni lato del grafo haesattamente 2 vertici, e sapendo cheogni vertice ha almeno grado 3(deg(v)≥ 3 ∀v ∈ V ) otteniamo:
2nl = ∑v∈V
deg(v)≥ 3(nv + 1)
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Caratterizzazione della struttura di V(P)
Struttura di Vor(P)
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Quali porzioni di bisettori compongonoVor(P)?Quali intersezioni compongono Vor(P)?
Definizione di Cp(q)
La più grande circonferenza di q rispetto aP, denotata con Cp(q), è la circonferenza diraggio massimo centrata in q che noncontiene nessun sito pi ∈ P al suo interno.
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Caratterizzazione della struttura di V(P)
Struttura di Vor(P)
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
TeoremaDati un insieme di punti nel piano P = {p1,p2, . . .pn}, per il relativodiagramma di Voronoi Vor(P) valgono le seguenti proprietà:
a) un punto q nel piano è un vertice di Vor(P)⇔ Cp(q) contiene 3o più punti sul suo perimetro;
b) Il bisettore tra due siti pi e pj definisce un lato di Vor(P)⇔ ∃ qsul bisettore tale che Cp(q) contiene sia pi ,pj sul suo perimetroma nessun altro sito.
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Section 4
Vor(P) Sweep Algorithm
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Idea
Algoritmo Naivefor each pi ∈ P
V(pi ) = R2;for each pj ∈ P
V(pi ) = V(pi )∩h(pi ,pj )end
end⇒ O(n2 logn). Migliorabile?
Fortune’s Algorithm O(n logn)Algoritmo sweep line:
I spazzata dall’alto verso il basso;I durante la spazzata vengono mantenute informazioni sulla struttura;I le informazioni vengono aggiornate negli event point.
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Informazioni da mantenere
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Quali informazioni mantenere durante ladiscesa?Idea: mantenere informazioni riguardo alleintersezioni di Vor(P) fino a dove la sweepline ` è arrivata ma non è possibile.
Soluzione: mantenere informazioniriguardo la struttura di Vor(P) relative ai sitial di sopra di ` che non possono esseremodificate.In altre parole mantere la rappresentazionedel luogo dei punti che sono più vicini adun qualche sito pi al di sopra dellasweepline, piuttosto che alla sweeplinestessa (e quindi a qualsiasi altro sito al disotto della sweepline).
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Parabola βi
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Per quale punto q ∈ l+ sappiamo percerto il p ∈ P ad esso più vicino?Dato pi ∈ `+ ∩PSe dist(q,pi )≤ dist(q, l)⇒ allorasappiamo per certo che il più vicino sito nonrisiede al di sotto di ` .
Dato q ∈ `+, se ∃p+i ∈ `+⇒ q non
appartiene a celle di Vor(P) relative aivertici appartenenti a `−.
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Parabola βi
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
DefinizioneDato p+
i ∈ `+, chiamiamo confine βi di p+i il
luogo geometrico dei punti q ∈ `+ t.c.
d(q,p+i ) = d(q, `)
ed evidentemente è definito da una parabolala cui equazione è definita rispetto a pi :
y :=1
2(pi,y − `y )(x2−2pi,x x +p2
i,x +p2i,y−`2
y )
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Parabola βi
Inserire il video che mostra come si muove la parabola fissato unpunto e facendo scorrere la sweep line;
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Beach-line
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Beach-lineIl luogo di punti del piano che sono più vicinia qualche sito pi ∈ `+ che a ` è limitatoinferiormente da una curva continuacomposta dalle parabole βi . Chiamiamobeach-line tale sequenza di archi parabolici.
I una parabola può contribuire più voltealla beach-line;
I chiamiamo break point i punti diintersezione tra parabole adiacentinella beach-line;
I i breakpoint giacciono sui lati diVor(P).
Idea sweep algorithm⇒ Invece di mantenere le intersezioni diVor(P) teniamo traccia della beach-linementre la sweepline scende.
Quali eventi modificano la beach-line?
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Site event
Site event :: nuovo lato Vor(P)
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Site event
Un site event si verifica quando la sweeplineraggiunge un sito pi ∈ PCosa accade sulla beach-line?
I inizialmente la nuova parabola βiinterseca ` in due punti coincidenti;
I successivamente, via via che` scende, βi le intersezioni tra βi e ldivergono⇒ un nuovo lato di Vor(P)viene definito.
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Site event
Site event :: nuovo lato Vor(P)
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
LemmaL’unico modo in cui un arco sulla beach-linepuò apparire è in corrispondenza di un siteevent.
DimostrazionePer assurdo supponiamo che un nuovo arcopuò apparire anche non in corrispondenza diun site event. Come può apparire il nuovoarco βj ?
Caso 1: il nuovo arco appare nel mezzo diun’altra parabola βi . Assumendo`u < pi,y ≤ pj,y calcolandol’intersezione fra βi e βj si ha che∆ > 0.
Parabole βi ,βj relative ai punti pi ,pj .
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Site event
Site event :: nuovo lato Vor(P)
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
LemmaL’unico modo in cui un arco sulla beach-linepuò apparire è in corrispondenza di un siteevent.
DimostrazionePer assurdo supponiamo che un nuovo arcopuò apparire anche non in corrispondenza diun site event. Come può apparire il nuovoarco βj ?
Caso 2: il nuovo arco appare a cavallo di duearchi esistenti βi ,βk incorrispondenza del breakpoint q.Essendo il punti di intersezione di trearchi significa che è equidistante dapi ,pj ,pk e dalla sweepline (ricordareil significato delleparabole).(Continua . . . )
Circonferenza centrata in q.
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Site event
Site event :: nuovo lato Vor(P)
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
LemmaL’unico modo in cui un arco sulla beach-linepuò apparire è in corrispondenza di un siteevent.
DimostrazionePer assurdo supponiamo che un nuovo arcopuò apparire anche non in corrispondenza diun site event. Come può apparire il nuovoarco βj ?
Caso 2: Se facciamo scendere di un ε lasweepline mantenendo lacirconferenza tangente a l cosaaccade?⇒ uno dei punti fra pi o pk saràinglobato;⇒ uno dei punti fra pi o pk sarà piùvicino a l rispetto a pj ;⇒ la parabola βj non potràcontribuire alla beach-line.
�
Circonferenza centrata in q.
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Site event
Site event :: nuovo lato Vor(P)
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
CorollarioBeach-line consiste al più in 2n−1 archiparabolici. Infatti un nuovo arco può essereoriginato solo in corrispondenza di un nuovosito e può splittare un arco esistente almassimo in due parti.
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Circle event
Circle event :: nuovo vertice Vor(P)
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Circle eventUn circle event si verifica quando labeach-line raggiunge il punto più basso diuna circonferenza passante per tre siti chedefiniscono archi consecutivi.Cosa accade sulla beach-line?
I due break point collassano cheequivale a dire che due archi delVor(P) si uniscono;
I un vertice di Vor(P) è individuato.
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Circle event
Circle event :: nuovo vertice Vor(P)
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Circle eventUn circle event si verifica quando labeach-line raggiunge il punto più basso diuna circonferenza passante per tre siti chedefiniscono archi consecutivi.Cosa accade sulla beach-line?
I due break point collassano cheequivale a dire che due archi delVor(P) si uniscono;
I un vertice di Vor(P) è individuato.
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Circle event
Circle event :: nuovo vertice Vor(P) [Appendice]
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Circle eventUn circle event si verifica quando labeach-line raggiunge il punto più basso diuna circonferenza passante per tre siti chedefiniscono archi consecutivi.Cosa accade sulla beach-line?
I due break point collassano cheequivale a dire che due archi delVor(P) si uniscono;
I un vertice di Vor(P) è individuato.
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Circle event
Circle event :: nuovo vertice Vor(P) [Appendice]
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
LemmaL’unico modo in cui un arco esistente puòscomparire dalla beach-line è attraverso uncircle event.
DimostrazioneSiano α,α ′,α ′′ i tre archi sulla beach-lineda sinistra verso destra, porzioni delleparabole dei siti pi ,pj ,pk . In quali casi l’arcoα ′ può scomparire?
Caso 1: l’arco α e α ′′ sono lo stesso arco⇒caso impossibile, perchésupponiamo che q sia l’unico punto ditangenza, allora scorrendo di poco lverso il basso la parabola βj nonscompare ma al contrario si biforca.
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Circle event
Circle event :: nuovo vertice Vor(P) [Appendice]
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
LemmaL’unico modo in cui un arco esistente puòscomparire dalla beach-line è attraverso uncircle event.
DimostrazioneSiano α,α ′,α ′′ i tre archi sulla beach-lineda sinistra verso destra, porzioni delleparabole dei siti pi ,pj ,pk . In quali casi l’arcoα ′ può scomparire?
Caso 2: gli archi α,α ′,α ′′ sono tutti distinti eal momento in cui α ′ scompare sonocoincidenti tutti in un punto q. q èequidistante sia da pi ,pj ,pk che l (inquanto sulla frontiera di tutte leparabole).Continua . . .
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Circle event
Circle event :: nuovo vertice Vor(P) [Appendice]
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
LemmaL’unico modo in cui un arco esistente puòscomparire dalla beach-line è attraverso uncircle event.
DimostrazioneSiano α,α ′,α ′′ i tre archi sulla beach-lineda sinistra verso destra, porzioni delleparabole dei siti pi ,pj ,pk . In quali casi l’arcoα ′ può scomparire?
Caso 2: ⇒ Non può esiste un punto internoalla circonferenza C(pi ,pj ,pk ) inquanto se esistesse q non potrebbestare sulla beach-line.⇒ q è un vertice di Vor(P) (infattiquando un arco sulla beach-linecollassa significa che due breakpointsi fondono che equivale a dire chedue lati di Vor(P) si uniscono).
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Circle event
Circle event :: nuovo vertice Vor(P) [Appendice]
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
LemmaOgni vertice è individuato per mezzo di uncircle event.
DimostrazioneDobbiamo dimostrare che appena prima chela sweep line raggiunge il punto più bassodella circonferenza C(pi ,pj ,pk ), la beachline è composta dai tre archi αi ,αj ,αk .Infatti se consideriamo come prima la sweepline appena prima che raggiunga il punto piùbasso di C(pi ,pj ,pk ), dato che quest’ultimanon contiene nessun altro sito, è possibiledue circonferenza C(pi ,pj ) e C(pj ,pk )passanti dai rispettivi siti e ancora tangentialla sweepline che a loro volta noncontengono nessun sito . . .
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Circle event
Circle event :: nuovo vertice Vor(P) [Appendice]
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
LemmaOgni vertice è individuato per mezzo di uncircle event.
Dimostrazione. . . Se esistono tali circonferenze allora nelpunto centrale pi ,pj e pj ,pk risultano essereequidistanti. Quindi saranno presenti duebreakpoint sulla beach-line formati da trearchi adiacenti. Perciò è possibileindividuare un circle event appena prima chequesto avvenga (controllando se i tre puntirelativi ai tre archi sono sulla stessacirconferenza).
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Circle event
Costruire il diagramma di Voronoi
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Strutture
Strutture utilizzate
Quali strutture sono necessarie per costruire Vor(P)?I Doubly-connected Linked List - memorizzare struttura del
Diagramma di Voronoi. Data la struttura dinamica di Vor(P) lad.l.l. permette di ottimizzare l’accesso, l’eliminazione el’inserimento se implementata a basso livello. In Matlab èconsigliabile un cell array.
I Balanced Binary Tree - memorizzazione beach-line
I Event Queue - collezione dei site e circle event.
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Strutture
Strutture utilizzate
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Doubly-connected Linked ListUtilizzata per memorizzare il corrente statodel diagramma di Voronoi.
I considerare i lati del diagramma diVoronoi come archi direzionati;
I una cella è formata da una sequenzadi archi direzionati in senso orario (oantiorario);
I dato che ogni lato è condiviso da duecelle, ad ogni lato corrispondono duearchi direzionati nel senso opposto;
⇒ permette la navigazione dell’interodiagramma.
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Strutture
Strutture utilizzate
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Balanced Binary treeUtilizzato per rappresentare la beach-line ein particolare gli archi che la compongono, ibreakpoints e i relativi siti.
I nodi interni - rappresentano ibreakpoint tra due archi;
I nodi foglia - rappresentano gli archiognuno dei quali è rappresentato asua volta dal relativo sito. Ogni fogliaha un puntatore al circle event chefarà scomparire il relativo arco.
O(nlogn) per trovare l’arco sopra ogni sito.Sufficiente comparare l’ascissa del nuovosito con quella dei nodi interni.
Osservazione: le parabole non vengonomemorizzate esplicitamente.
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Strutture
Strutture utilizzate
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Event QueueUn evento è un punto di rilievo che lasweepline incontra mentre stà andandoverso il basso.
I site event - corrispondono ai siti in P;I circle event - corrispondono al punto
più basso della circonferenzapassante per tre o più siti;
I tutti gli eventi sono ordinati perpriorità crescente in base allacoordinata y .
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Algoritmo
Algoritmo di Fortune per Vor(P)
1 Inizializzazione strutture;:: inizializza coda degli eventi Q con tutti i siti P;:: inizializza albero di ricerca binario T = /0;:: inizializza doubly linked list D = /0;
2 finchè Q! = /0:: rimuovi evento e da Q;:: richiama gestisciEvento(e);
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Algoritmo
Gestisci Site Event
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Procedura per la gestione degli eventi ditipo sito (p ∈ P)
a localizza l’arco A sopra al nuovo sitose esiste;
b rompi l’arco A sulla beachlinerimpiazzando il nodo foglia in T conun sottoalbero rappresentante ilnuovo arco e i suoi breakpoints;
c aggiungi il record in D relativo alnuovo lato che si stà formando;
d controlla la presenza di nuovi circleevent e inseriscili in Q se esistono.
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Algoritmo
Gestisci Site Event
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Procedura per la gestione degli eventi ditipo sito (p ∈ P)
a localizza l’arco A sopra al nuovo sitose esiste;
b rompi l’arco A sulla beachlinerimpiazzando il nodo foglia in T conun sottoalbero rappresentante ilnuovo arco e i suoi breakpoints;
c aggiungi il record in D relativo alnuovo lato che si stà formando;
d controlla la presenza di nuovi circleevent e inseriscili in Q se esistono.
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Algoritmo
Gestisci Site Event
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Procedura per la gestione degli eventi ditipo sito (p ∈ P)
a localizza l’arco A sopra al nuovo sitose esiste;
b rompi l’arco A sulla beachlinerimpiazzando il nodo foglia in T conun sottoalbero rappresentante ilnuovo arco e i suoi breakpoints;
c aggiungi il record in D relativo alnuovo lato che si stà formando;
d controlla la presenza di nuovi circleevent e inseriscili in Q se esistono.
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Algoritmo
Gestisci Site Event
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Procedura per la gestione degli eventi ditipo sito (p ∈ P)
a localizza l’arco A sopra al nuovo sitose esiste;
b rompi l’arco A sulla beachlinerimpiazzando il nodo foglia in T conun sottoalbero rappresentante ilnuovo arco e i suoi breakpoints;
c aggiungi il record in D relativo alnuovo lato che si stà formando;
d controlla la presenza di nuovi circleevent e inseriscili in Q se esistono.
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Algoritmo
Gestisci Circle Event
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Procedura per la gestione degli eventi ditipo circle
a aggiungi un vertice per icorrispondenti record (lati) in D;
b elimina da T le foglie corrispondentiagli archi sulla beachline che stannoscomparendo;
c crea un nuovo record lato in D;d controlla la nuova tripla formata dai
nuovi archi vicini per circle eventpotenziali.
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Algoritmo
Gestisci Circle Event
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Procedura per la gestione degli eventi ditipo circle
a aggiungi un vertice per icorrispondenti record (lati) in D;
b elimina da T le foglie corrispondentiagli archi sulla beachline che stannoscomparendo;
c crea un nuovo record lato in D;d controlla la nuova tripla formata dai
nuovi archi vicini per circle eventpotenziali.
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Algoritmo
Gestisci Circle Event
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Procedura per la gestione degli eventi ditipo circle
a aggiungi un vertice per icorrispondenti record (lati) in D;
b elimina da T le foglie corrispondentiagli archi sulla beachline che stannoscomparendo;
c crea un nuovo record lato in D;d controlla la nuova tripla formata dai
nuovi archi vicini per circle eventpotenziali.
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Algoritmo
Gestisci Circle Event
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Procedura per la gestione degli eventi ditipo circle
a aggiungi un vertice per icorrispondenti record (lati) in D;
b elimina da T le foglie corrispondentiagli archi sulla beachline che stannoscomparendo;
c crea un nuovo record lato in D;d controlla la nuova tripla formata dai
nuovi archi vicini per circle eventpotenziali.
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Algoritmo
Gestisci Circle Event
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Procedura per la gestione degli eventi ditipo circle
a aggiungi un vertice per icorrispondenti record (lati) in D;
b elimina da T le foglie corrispondentiagli archi sulla beachline che stannoscomparendo;
c crea un nuovo record lato in D;d controlla la nuova tripla formata dai
nuovi archi vicini per circle eventpotenziali.
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Algoritmo
Gestisci Circle Event
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Procedura per la gestione degli eventi ditipo circle
a aggiungi un vertice per icorrispondenti record (lati) in D;
b elimina da T le foglie corrispondentiagli archi sulla beachline che stannoscomparendo;
c crea un nuovo record lato in D;d controlla la nuova tripla formata dai
nuovi archi vicini per circle eventpotenziali.
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Algoritmo
Costo computazionale totale O(nlogn)
I O(n) - numero di eventi da gestire (n siti che generano O(n)circle event);
I O(logn) - costo della gestione di un eventosite O(logn) individuazione in T dell’arco esistente sopra il nuovo sito;site O(1) le operazioni rimanenti;
circle O(logn) eliminazione da T della foglia relativa all’arco che stàscomparendo;
circle O(1) le operazioni rimanenti.
⇒ O(nlogn) costo computazionale totale.
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Section 5
Voronoi Diagram e Path Planning
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Sketch Algorithm
Path Planning
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Il problemaDato un insieme di ostacoli poligonali nelpiano lo scopo è individuare un percorsolibero da collisioni che metta incomunicazione due posizioni assegnate.
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Sketch Algorithm
Path Planning
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Il problemaDato un insieme di ostacoli poligonali nelpiano lo scopo è individuare un percorsolibero da collisioni che metta incomunicazione due posizioni assegnate.
Algoritmo
1 Definire un insieme di punti P lungo ilati di ogni poligono, cornice inclusa;
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Sketch Algorithm
Path Planning
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Il problemaDato un insieme di ostacoli poligonali nelpiano lo scopo è individuare un percorsolibero da collisioni che metta incomunicazione due posizioni assegnate.
Algoritmo
1 Definire un insieme di punti P lungo ilati di ogni poligono, cornice inclusa;
2 Costruire il diagramma di Voronirispetto a P;
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Sketch Algorithm
Path Planning
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Il problemaDato un insieme di ostacoli poligonali nelpiano lo scopo è individuare un percorsolibero da collisioni che metta incomunicazione due posizioni assegnate.
Algoritmo
1 Definire un insieme di punti P lungo ilati di ogni poligono, cornice inclusa;
2 Costruire Vor(P);3 Eliminare da Vor(P) i lati che
intersecano l’interno degli ostacoliottenendo Vor(P)′;
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Sketch Algorithm
Path Planning
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Il problemaDato un insieme di ostacoli poligonali nelpiano lo scopo è individuare un percorsolibero da collisioni che metta incomunicazione due posizioni assegnate.
Algoritmo
1 Definire un insieme di punti P lungo ilati di ogni poligono, cornice inclusa;
2 Costruire Vor(P);3 Eliminare da Vor(P) i lati che
intersecano l’interno degli ostacoliottenendo Vor(P)′;
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Sketch Algorithm
Path Planning
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Il problemaDato un insieme di ostacoli poligonali nelpiano lo scopo è individuare un percorsolibero da collisioni che metta incomunicazione due posizioni assegnate.
Algoritmo
1 Definire un insieme di punti P lungo ilati di ogni poligono, cornice inclusa;
2 Costruire Vor(P);3 Eliminare da Vor(P) i lati che
intersecano l’interno degli ostacoliottenendo Vor(P)′;
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Sketch Algorithm
Path Planning
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Il problemaDato un insieme di ostacoli poligonali nelpiano lo scopo è individuare un percorsolibero da collisioni che metta incomunicazione due posizioni assegnate.
Algoritmo
1 Definire un insieme di punti P lungo ilati di ogni poligono, cornice inclusa;
2 Costruire Vor(P);3 Eliminare da Vor(P) i lati che
intersecano l’interno degli ostacoliottenendo Vor(P)′;
4 Convertire il diagramma ottenuto inun grafo G(V ,E) i cui vertici e laticorrispondono a quelli di Vor(P)′;
5 Collegare pstart e pgoal ai vertici piùvicini in Vor(P)′;
6 Individuare un path che collega pstarta pgoal tramite un qualsiasi algoritmodi visita di grafi.
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Sketch Algorithm
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Section 6
Voronoi Diagram per controllo di rotondità(smallest-width annulus problem)
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Smallest-width annulus problem
Smallest-width annulus problem
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Il problemaSupponiamo di dover costruire un oggetto lacui forma deve essere il più circolarepossibile. Quindi una volta costruito nevogliamo testare la rotondità. Per farequesto ci affidiamo a macchine dimisurazioni che determinano molti punti sulbordo dell’oggetto.
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Smallest-width annulus problem
Rotondità
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
DefinizioneLa rotondità di un insieme di punti è definitacome la larghezza del più piccolo anellocircolare che contiene quei punti. Un anelloè la regione che si trova tra duecirconferenze concentriche e la larghezza èla differenza fra i raggi. Indicheremo con:
I Couter la circonferenza esterna;I Cinner la circonferenza interna
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Smallest-width annulus problem
L’anello più stretto
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Casi PossibiliDato uninsieme di punti P, l’anello più strettopuò essere dei seguenti tipi:
I Couter contiene almeno 3 punti di P eCinner contiene almeno 1 punto di P;
I Couter contiene almeno 1 punto di P eCinner contiene almeno 3 punti di P;
I Couter contiene almeno 2 punti di P eCinner contiene almeno 2 punti di P;
ObbiettivoPer conoscere la larghezza dell’anellodobbiamo individuare il centro dell’anellostesso. Per individuare il centrointroduciamo farthest-point VoronoiDiagram.
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Smallest-width annulus problem
Farthest Voronoi diagram
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
DefinizioneIl farthest-point Voronoi Diagram (fpVD)consiste nella partizione del piano in regioninelle quali risiedono i punti che hanno il sitopiù lontano in comune.
CostruzioneLa cella di un punto pi nell’fpVD èl’intersezione di n−1 semi-piani (analogo aVor(P)) ma viene considerato l’altro lato delbisettore.
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Smallest-width annulus problem
Farthest Voronoi diagram - alcune proprietà
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Prop. 1Per qualsiasi punto nel piano, il relativopunto più lontano fra i punti in P deve essereun punto che giace sul convex hull di P.
Prop 2Supponiamo pi ∈ P sul convex hull. Sia q unpunto nel piano per cui pi è il punto piùlontano. Sia l(pi ,q) la retta passante da pi eq. Allora tutti punti nella semiretta su l(pi ,q)sono nella cella di pi ⇒ celle illimitate;
Prop 3Il centro della circonferenza con raggiominimo che include tutti i punti di P:
I è un vertice di fpVD;I punto medio di un lato di fpVD.
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Smallest-width annulus problem
Farthest Voronoi diagram - Esempio
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Smallest-width annulus problem
Farthest Voronoi diagram - algoritmo di costruzione
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
AlgoritmoFase 1:
I calcolare convex hull di P (O(n logn));I considerare i vertici della convex hull in ordine
casuale p1 . . .ph;for i = h . . .4 (−1)
- rimuovi pi dalla convex hull;- collega i vertici adiacenti a pi dalla convex
hull;- memorizza cw(pi ) (il vicino in senso
orario);- memorizza ccw(pi ) (il vicino in senso
anti-orario);
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Smallest-width annulus problem
Farthest Voronoi diagram - algoritmo di costruzione
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
AlgoritmoFase 1:
I calcolare convex hull di P (O(n logn));I considerare i vertici della convex hull in ordine
casuale p1 . . .ph;for i = h . . .4 (−1)
- rimuovi pi dalla convex hull;- collega i vertici adiacenti a pi dalla convex
hull;- memorizza cw(pi ) (il vicino in senso
orario);- memorizza ccw(pi ) (il vicino in senso
anti-orario);
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Smallest-width annulus problem
Farthest Voronoi diagram - algoritmo di costruzione
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
AlgoritmoIndichiamo con Fi il fpVD(p1,p2, . . . ,pi ).
Fase 2:
I calcolare fpVD di p1,p2,p3→ F3;for i = 4 . . .h
- aggiungi pi a fpVD Fi−1 per ottenere Fi
Osservazione Per costruire in modo efficiente Fi apartire da Fi−1 manteniamo un puntatore ∀1≤j≤i−1pjal primo lato semi-infinito della cella pj che si incontrain senso antiorario (nella doubly-connected linkedlist).
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Smallest-width annulus problem
Ottenere Fi a partire da Fi−1
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
I All’inserimento di pi la relativa cella saràdefinita all’interno delle celle dei sui vicinicw(pi ),ccw(pi ) che in Fi−1 sono adiacenti;
I Ricordiamo che ccw(pi ) ha un puntatore allato di Fi−1 che separa le celle dicw(pi ),ccw(pi ) in Fi−1;
I il bisettore fra pi e ccw(pi ) genera una nuovasemiretta (lato di fpVD) che starà nella cella diccw(pi );
I grazie al puntatore di ccw(pi ) al primo latodella sua cella in senso antiorarioattraversiamo i lati delle celle di Fi−1 percontrollare quali sono intersecate;
I quando individuiamo un intersezionepassiamo alla cella successiva, relativa a unpunto pj , confinante e ripetiamo tutti i passaggi(considerando l’intersezione fra il bisettorepi ,pj e i lati della cella di pj );
I l’algoritmo termina quando il lato puntato dacw(pi ) viene incontrato.
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Smallest-width annulus problem
Complessità
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Idea
O(n logn) - complessità calcolo convex hull;O(1) - accesso al primo lato in senso antiorario dellacella di pi ;O(ki ) - se ki è il numero di lati che definiscono ilconfine allora per costruire la cella di pi :
I visitiamo O(ki ) lati e vertici di Fi−1;I rimuoviamo O(ki ) vertici e lati e creiamo
O(ki ) lati e vertici;⇒ aggiungere pi ha un costo lineare nell’ordine dellacomplessità della relativa cella.
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Smallest-width annulus problem
Complessità - stimare ki
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Quante lati ha mediamente una cella?Sapendo che:
I al più il numero di lati di un Fi è pari a 2i−3;I ogni lato limita esattamente 2 celle;I ogni punto pi ha la stessa probabilità di essere
aggiunto;Abbiamo che il numero medio di lati di ogni cella èdato da:
ki ≤2(2i−3)
i=
4i−6i
< 4
⇒ il tempo per costruire Fi a partire da Fi−1 ècostante O(1).
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Smallest-width annulus problem
Torniamo al problema dell’anello
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Abbiamo i seguenti casi::: Cinner interseca almeno tre punti di P ⇒ il
centro è un vertice di Vor(P);:: Couter interseca almeno tre punti di P ⇒ il
centro è un vertice di vfVD(P);:: sia Cinnner che Couter contengono due punti⇒
il centro starà su un lato di Vor(P) econtemporaneamente su un lato di fpVD(P).
⇒ possiamo ottenere un insieme di puntiragionevolmente piccolo che dovrà contenere ilcentro dell’anello più stretto.
Come?
Introduzione Definizioni di base Proprietà strutturali Vor(P) Sweep Algorithm Voronoi Diagram e Path Planning Voronoi Diagram per controllo di rotondità (smallest-width annulus problem)
Smallest-width annulus problem
Torniamo al problema dell’anello
Duccio Mugnaini - [email protected] Universities of
Diagramma di Voronoi
Algoritmo
- calcola Vor(P);- calcola fpVD(P);for each v ∈ V(fpVD(P))
individua il sito più vicino a v ;endfor each v ∈ V(Vor(P))
individua il sito più vicino a v ;endfor each e′ ∈ E(Vor(P))
for each e′′ ∈ E(fpVD(P))calcola intersezione fra e′ ed e′′;
endendend
Thank you for your attention.