el problema de la galería de arte - asignatura.us.esasignatura.us.es/fgcitig/presentaciones/tema...
TRANSCRIPT
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
El problema de la galería de arte
En 1973, Víctor Klee planteó el problema de determinar el mínimo número de guardias suficientes para vigilar el interior de una galería de arte con un número n de paredes.
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
El problema de la galería de arte
Vigilante fijo con ángulo de visión de 360º (cámara)
Las salas son polígonos simples en el plano
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
El problema de la galería de arte
Vigilante fijo con ángulo de visión de 360º (cámara)
Las salas son polígonos simples en el plano
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
El problema de la galería de arte
Algunos ejemplos Cualquier polígono convexo necesita un único guardián
Una sala más “posible” que necesita dos guardianes
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
El problema de la galería de arte
Un polígono de 12 vértices que necesita 3 guardianes.
Otro polígono de 12 vértices pero necesita 4 guardianes
Algunos ejemplos
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
El problema de la galería de arte Algunas consideraciones
Obviamente se necesita al menos un guardián. Y a lo sumo son necesarios n guardianes para vigilar el polígono completo.
Pero se puede mejorar la cota. Para n=3 es evidente que se necesita un único guardián.
En el caso de n=4, podemos considerar dos tipos de cuadriláteros: convexos y no convexos.
Vértice reflex
Pero en cualquier caso, pueden vigilarse con un único guardián.
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
El problema de la galería de arte
En el caso de n=5, la situación es menos clara. Igual que en los casos anteriores si el polígono es convexo o tiene un único vértice reflex, se puede controlar con un único guardián.
Un pentágono puede tener dos vértices reflex, que pueden ser adyacentes o que estén separados por un vértice convexo pero en cualquier caso pueden vigilarse por un único guardián.
Algunas consideraciones
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
El problema de la galería de arte Algunas consideraciones
Un hexágono puede necesitar 2 guardianes
Pero tras un breve análisis nos aseguramos que no necesitan más de dos guardianes.
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
El problema de la galería de arte Y la respuesta es
En 1978 Fisk dio una demostración concisa y elegante que puede resumirse de la siguiente manera:
1. Triangúlese el polígono 2. Coloréese los vértices del grafo de triangulación 3. Poner a los guardianes en los vértices del color que menos
aparezca
En 1975 Chvátal demostró que n/3 guardianes son suficientes y ocasionalmente necesarios
El polígono tiene n vértices y 3 colores. Por el principio del palomar, alguno de los tres colores se utiliza a lo más en n/3 vértices
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
El problema de la galería de arte Y la respuesta es
En 1978 Fisk dio una demostración concisa y elegante que puede resumirse de la siguiente manera:
En 1975 Chvátal demostró que n/3 guardianes son suficientes y ocasionalmente necesarios
Polígono “Peine” de 12 vértices que necesita 4 guardias
1. Triangúlese el polígono 2. Coloréese los vértices del grafo de triangulación 3. Poner a los guardianes en los vértices del color que menos
aparezca 4. Necesidad de los n/3 guardianes
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
El problema de la galería de arte
Con esta demostración se da el nº máximo de guardianes que pueden necesitarse en un polígono cualquiera. Pero tiene sentido plantearse el siguiente problema:
Dado un polígono P, calcular el mínimo nº de guardias que lo vigilan
5 5 4 6 5 3 Lamentablemente no existe ningún algoritmo eficiente que resuelva este problema.
Comentarios
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
Triangulaciones de polígonos
Teorema: Todo polígono simple P de n lados admite una triangulacion y toda triangulación de dicho polígono contiene n-2 triángulos y n-3 diagonales.
Por inducción en n (nº de vértices) Si n=3, ya es un triángulo (n-2=1 triángulos, n-3=0 diagonales) Supongamos que la propiedad es cierta para cualquier polígono de n’
lados, con n’<n. Sea P un polígono de n lados (n>3).
Trazamos una diagonal, que divida a P en dos polígonos P1 y P2 con m1<n y m2<n vértices, respectivamente (n=m1+m2-2).
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
Triangulaciones de polígonos
Teorema: Todo polígono simple P de n lados admite una triangulacion y toda triangulación de dicho polígono contiene n-2 triángulos y n-3 diagonales.
Por inducción en n (nº de vértices) Si n=3, ya es un triángulo (n-2=1 triángulos, n-3=0 diagonales) Supongamos que la propiedad es cierta para cualquier polígono de n’
lados, con n’<n. Sea P un polígono de n lados (n>3).
Trazamos una diagonal, que divida a P en dos polígonos P1 y P2 con m1<n y m2<n vértices, respectivamente (n=m1+m2-2).
P1 P2
P1 (m1 vértices) P2 (m2 vértices)
Triangulación T1 m1-2 triángulos m1-3 diagonales
Triangulación T2 m2-2 triángulos m2-3 diagonales Triangulación T=T1∪T2
(m1-2)+(m2-2)=m1+m2-2-2=n-2 triángulos
(m1-3)+(m2-3)+1=m1+m2-2-3=n-3 diagonales
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
Triangulaciones de polígonos
Teorema: Todo polígono simple P de n lados admite una triangulacion y toda triangulación de dicho polígono contiene n-2 triángulos y n-3 diagonales.
Por inducción en n (nº de vértices) Si n=3, ya es un triángulo (n-2=1 triángulos, n-3=0 diagonales) Supongamos que la propiedad es cierta para cualquier polígono de n’
lados, con n’<n. Sea P un polígono de n lados (n>3).
Trazamos una diagonal, que divida a P en dos polígonos P1 y P2 con m1<n y m2<n vértices, respectivamente (n=m1+m2-2).
P1 P2
P1 (m1 vértices) P2 (m2 vértices)
Triangulación T1 m1-2 triángulos m1-3 diagonales
Triangulación T2 m2-2 triángulos m2-3 diagonales Triangulación T=T1∪T2
(m1-2)+(m2-2)=m1+m2-2-2=n-2 triángulos
(m1-3)+(m2-3)+1=m1+m2-2-3=n-3 diagonales
Se puede??
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
Triangulaciones de polígonos
Teorema: Todo polígono simple P de n lados admite una triangulacion y toda triangulación de dicho polígono contiene n-2 triángulos y n-3 diagonales.
Lema : Todo polígono de más de tres lados admite una diagonal.
X
B
C
Sea A el vértice más a la izquierda (abajo) del polígono
Sean B y C los vecinos de A.
Si BC está contenida en el polígono, BC es la diagonal.
En caso contrario, dentro de ABC hay vértices del polígono. Sea X el más alejado de BC. AX es la diagonal buscada.
A
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
Triangulaciones de polígonos
Teorema: Todo polígono simple P de n lados admite una triangulacion y toda triangulación de dicho polígono contiene n-2 triángulos y n-3 diagonales.
Lema : La suma de los ángulos internos de un polígono de n lados es (n-2)π.
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
Triangulaciones de polígonos
Triangulación por inserción de diagonales
1. Si n=3, devolver φ como T
(conjunto de diagonales de la triangulación).
2. Si n>3, a) Encontrar una diagonal
interna vw de P b) Dividir P en dos polígonos P1,
P2 “cortándolo” por vw. c) Obtener recursivamente T1 y
T2 y devolver T1∪T2∪{vw}
O(n)
T(n)=T(n-1)+O(n)
Teorema: El algoritmo de triangulación por inserción de diagonales encuentra una triangulación de un polígono simple de n lados en tiempo O(n2).
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
Proposición: El dual de una triangulación T de un polígono es un árbol de valencia máxima tres.
Cada diagonal de T da una arista del dual.
Todas las aristas del dual son aristas puente (y es conexo)
El dual es un árbol (con ∆ ≤ 3)
Triangulaciones de polígonos
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
Proposición: El dual de una triangulación T de un polígono es un árbol de valencia máxima tres.
Cada diagonal de T da una arista del dual.
Todas las aristas del dual son aristas puente (y es conexo)
El dual es un árbol (con ∆ ≤ 3)
Podemos recorrer sin ciclos los triángulos de la triangulación (por ejemplo mediante búsqueda en anchura en el dual) y coloreamos sus vértices con 3 colores.
Proposición: El grafo de la triangulación de un polígono es 3-coloreable.
Triangulaciones de polígonos
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
División en polígonos monótonos
Polígono monótono respecto de la dirección D: Si la intersección de cualquier recta perpendicular a D, si corta al polígono, lo hace en un intervalo cerrado.
D
P es un polígono monótono si lo es respecto de alguna dirección.
Polígono y-monótono: monótono respecto del eje OY (las rectas horizontales si cortan al polígono, lo hacen en un intervalo horizontal cerrado).
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
Lema: Todo polígono y-monótono se puede descomponer en dos cadenas y-monótonas.
División en polígonos monótonos
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
División en polígonos monótonos
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
División en polígonos monótonos
Vértice inicio: sus vecinos están por debajo y forman un ángulo interior de menos de 180 grados.
Vértice final: sus vecinos están por encima y forman un ángulo interior de menos de 180 grados.
Vértice división: sus vecinos están por debajo y forman un ángulo interior de más de 180 grados.
Vértice unión: sus vecinos están por encima y forman un ángulo interior de más de 180 grados.
El resto son vértices regulares.
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
División en polígonos monótonos
Lema: Un polígono es y-monótono si no tiene vértices unión ni división.
Trazaremos diagonales desde los puntos unión y división, dividiendo el polígono en subpolígonos donde estos vértices serán regulares.
Lógicamente estas diagonales no deben cruzarse e irán desde los puntos división (unión) a un vértice que esté por encima (por debajo) de él.
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
División en polígonos monótonos
Algoritmo de barrido plano
Vértice ayudante de la arista ei: El vértice, mas bajo por encima de la línea de barrido de forma que la diagonal desde él hasta la intersección de la arista con la línea de barrido queda dentro del polígono.
ei l
Ayudante de ei
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
División en polígonos monótonos
Algoritmo de barrido plano
Vértice ayudante de la arista ei: El vértice, mas bajo por encima de la línea de barrido de forma que la diagonal desde él hasta la intersección de la arista con la línea de barrido queda dentro del polígono.
ei l
Ayudante de ei
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
División en polígonos monótonos
Algoritmo de barrido plano
Cuando la línea de barrido alcanza un vértice división, añadimos una diagonal desde él hasta el vértice ayudante de la primera arista que intersecta a la izquierda con la línea de barrido. ei
l
Ayudante de ei
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
División en polígonos monótonos
Algoritmo de barrido plano
ei
l
Ayudante de ei
Cuando la línea de barrido alcanza un vértice división, añadimos una diagonal desde él hasta el vértice ayudante de la primera arista que intersecta a la izquierda con la línea de barrido.
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
División en polígonos monótonos
Algoritmo de barrido plano
ei
Cuando la línea de barrido alcanza un vértice unión, este pasa a ser el nuevo ayudante de dos aristas ei y ej.
l ej
Ayudante de ei y ej
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
División en polígonos monótonos
Algoritmo de barrido plano
ei
Cuando la línea de barrido alcanza un vértice unión, este pasa a ser el nuevo ayudante de dos aristas ei y ej.
l ej
Cuando cambie el ayudante de una de estas dos aristas a un nuevo vértice, trazaremos la diagonal desde el vértice unión a este nuevo vértice.
Ayudante de ei y ej
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
División en polígonos monótonos
Algoritmo de barrido plano
ei
Cuando la línea de barrido alcanza un vértice unión, este pasa a ser el nuevo ayudante de dos aristas ei y ej.
l ej
Cuando cambie el ayudante de una de estas dos aristas a un nuevo vértice, trazaremos la diagonal desde el vértice unión a este nuevo vértice.
Nuevo ayudante de ei
Ayudante de ei y ej
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos l
División en polígonos monótonos
Algoritmo de barrido plano
ei
Cuando la línea de barrido alcanza un vértice unión, este pasa a ser el nuevo ayudante de dos aristas ei y ej.
l
ej
Cuando cambie el ayudante de una de estas dos aristas a un nuevo vértice, trazaremos la diagonal desde el vértice unión a este nuevo vértice. Nuevo ayudante de ei
Éste nuevo vértice puede ser un vértice división y con una única diagonal eliminaríamos un vértice unión y uno división.
Ayudante de ei y ej
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
l
l
l
l
l
l
División en polígonos monótonos
Algoritmo de barrido plano l
Teorema: Un polígono simple cualquiera puede dividirse en polígonos y-monótonos, en tiempo O(n log n).
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
Triangulación de polígonos monótonos
v1
v2 v3
v4
v5 v6
v7
v8
v9 v10
v12
v13
v14
v11
Algoritmo de tipo incremental Entrada: Un polígono y-monótono de n vértices.
(Dos cadenas y-monótonas) Ordenar vértices según coordenada y-decreciente
PILA={u1,…us } contiene los vértices que han sido visitados pero no están aislados por triángulos. (u1 es la base de la pila y us es la cima)
PILA={v3,v5,v6,v7,v8}
Si el nuevo vértice (actual) es de la misma cadena que el vértice anterior (cima de la pila) se añaden las diagonales desde el nuevo vértice a todos los elementos de la pila que se vean desde el nuevo vértice (y se actualiza la pila)
vértice actual
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
Triangulación de polígonos monótonos
v1
v2 v3
v4
v5 v6
v7
v8
v9 v10
v12
v13
v14
v11
Algoritmo de tipo incremental Entrada: Un polígono y-monótono de n vértices.
(Dos cadenas y-monótonas) Ordenar vértices según coordenada y-decreciente
PILA={u1,…us } contiene los vértices que han sido visitados pero no están aislados por triángulos. (u1 es la base de la pila y us es la cima)
vértice actual
Si el nuevo vértice (actual) es de distina cadena que la cima de la pila (vértice anterior) se añaden las diagonales desde el nuevo vértice a todos los elementos de la pila excepto a la base de la misma (y se actualiza la pila)
PILA={v3,v5,v6,v7,v8}
PILA={v3,v5,v9}
Si el nuevo vértice (actual) es de la misma cadena que el vértice anterior (cima de la pila) se añaden las diagonales desde el nuevo vértice a todos los elementos de la pila que se vean desde el nuevo vértice (y se actualiza la pila)
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
Triangulación de polígonos monótonos
v1
v2 v3
v4
v5 v6
v7
v8
v9 v10
v12
v13
v14
v11
Algoritmo de tipo incremental Entrada: Un polígono y-monótono de n vértices.
(Dos cadenas y-monótonas) Ordenar vértices según coordenada y-decreciente
PILA={u1,…us } contiene los vértices que han sido visitados pero no están aislados por triángulos. (u1 es la base de la pila y us es la cima)
vértice actual
Si el nuevo vértice (actual) es de distina cadena que la cima de la pila (vértice anterior) se añaden las diagonales desde el nuevo vértice a todos los elementos de la pila excepto a la base de la misma (y se actualiza la pila)
PILA={v3,v5,v6,v7,v8}
PILA={v3,v5,v9}
Si el nuevo vértice (actual) es de la misma cadena que el vértice anterior (cima de la pila) se añaden las diagonales desde el nuevo vértice a todos los elementos de la pila que se vean desde el nuevo vértice (y se actualiza la pila)
Al llegar al último vértice se añaden las diagonales desde éste a los elementos de la pila, excepto la base y la cima.
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
Triangulación de polígonos monótonos
v1
v2 v3
v4
v5 v6
v7
v8
v9 v10
v12
v13
v14
v11
Algoritmo de tipo incremental Entrada: Un polígono y-monótono de n vértices.
(Dos cadenas y-monótonas) Ordenar vértices según coordenada y-decreciente
PILA={v1,v2 }
Si el nuevo vértice (actual) es de distina cadena que la cima de la pila (vértice anterior) se añaden las diagonales desde el nuevo vértice a todos los elementos de la pila excepto a la base de la misma (y se actualiza la pila)
Si el nuevo vértice (actual) es de la misma cadena que el vértice anterior (cima de la pila) se añaden las diagonales desde el nuevo vértice a todos los elementos de la pila que se vean desde el nuevo vértice (y se actualiza la pila)
Al llegar al último vértice se añaden las diagonales desde éste a los elementos de la pila, excepto la base y la cima.
for i=3 to n-1
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
Triangulación de polígonos monótonos
v1
v2 v3
v4
v5 v6
v7
v8
v9 v10
v12
v13
v14
v11
Algoritmo de tipo incremental Entrada: Un polígono y-monótono de n vértices.
(Dos cadenas y-monótonas) Ordenar vértices según coordenada y-decreciente
PILA={v1,v2 }
Si el nuevo vértice (actual) es de distina cadena que la cima de la pila (vértice anterior) se añaden las diagonales desde el nuevo vértice a todos los elementos de la pila excepto a la base de la misma (y se actualiza la pila)
Si el nuevo vértice (actual) es de la misma cadena que el vértice anterior (cima de la pila) se añaden las diagonales desde el nuevo vértice a todos los elementos de la pila que se vean desde el nuevo vértice (y se actualiza la pila)
Al llegar al último vértice se añaden las diagonales desde éste a los elementos de la pila, excepto la base y la cima.
for i=3 to n-1
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
Triangulación de polígonos monótonos
v1
v2 v3
v4
v5 v6
v7
v8
v9 v10
v12
v13
v14
v11
Algoritmo de tipo incremental Entrada: Un polígono y-monótono de n vértices.
(Dos cadenas y-monótonas) Ordenar vértices según coordenada y-decreciente
PILA={v1,v2 }
Si el nuevo vértice (actual) es de distina cadena que la cima de la pila (vértice anterior) se añaden las diagonales desde el nuevo vértice a todos los elementos de la pila excepto a la base de la misma (y se actualiza la pila)
Si el nuevo vértice (actual) es de la misma cadena que el vértice anterior (cima de la pila) se añaden las diagonales desde el nuevo vértice a todos los elementos de la pila que se vean desde el nuevo vértice (y se actualiza la pila)
Al llegar al último vértice se añaden las diagonales desde éste a los elementos de la pila, excepto la base y la cima.
for i=3 to n-1
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
Triangulación de polígonos monótonos
v1
v2 v3
v4
v5 v6
v7
v8
v9 v10
v12
v13
v14
v11
Algoritmo de tipo incremental Entrada: Un polígono y-monótono de n vértices.
(Dos cadenas y-monótonas) Ordenar vértices según coordenada y-decreciente
PILA={v1,v2 }
Si el nuevo vértice (actual) es de distina cadena que la cima de la pila (vértice anterior) se añaden las diagonales desde el nuevo vértice a todos los elementos de la pila excepto a la base de la misma (y se actualiza la pila)
Si el nuevo vértice (actual) es de la misma cadena que el vértice anterior (cima de la pila) se añaden las diagonales desde el nuevo vértice a todos los elementos de la pila que se vean desde el nuevo vértice (y se actualiza la pila)
Al llegar al último vértice se añaden las diagonales desde éste a los elementos de la pila, excepto la base y la cima.
for i=3 to n-1
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
Triangulación de polígonos monótonos
v1
v2 v3
v4
v5 v6
v7
v8
v9 v10
v12
v13
v14
v11
Algoritmo de tipo incremental Entrada: Un polígono y-monótono de n vértices.
(Dos cadenas y-monótonas) Ordenar vértices según coordenada y-decreciente
PILA={v1,v2 }
Si el nuevo vértice (actual) es de distina cadena que la cima de la pila (vértice anterior) se añaden las diagonales desde el nuevo vértice a todos los elementos de la pila excepto a la base de la misma (y se actualiza la pila)
Si el nuevo vértice (actual) es de la misma cadena que el vértice anterior (cima de la pila) se añaden las diagonales desde el nuevo vértice a todos los elementos de la pila que se vean desde el nuevo vértice (y se actualiza la pila)
Al llegar al último vértice se añaden las diagonales desde éste a los elementos de la pila, excepto la base y la cima.
for i=3 to n-1
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
Triangulación de polígonos monótonos
v1
v2 v3
v4
v5 v6
v7
v8
v9 v10
v12
v13
v14
v11
Algoritmo de tipo incremental Entrada: Un polígono y-monótono de n vértices.
(Dos cadenas y-monótonas) Ordenar vértices según coordenada y-decreciente
PILA={v1,v2 }
Si el nuevo vértice (actual) es de distina cadena que la cima de la pila (vértice anterior) se añaden las diagonales desde el nuevo vértice a todos los elementos de la pila excepto a la base de la misma (y se actualiza la pila)
Si el nuevo vértice (actual) es de la misma cadena que el vértice anterior (cima de la pila) se añaden las diagonales desde el nuevo vértice a todos los elementos de la pila que se vean desde el nuevo vértice (y se actualiza la pila)
Al llegar al último vértice se añaden las diagonales desde éste a los elementos de la pila, excepto la base y la cima.
for i=3 to n-1
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
Triangulación de polígonos monótonos
v1
v2 v3
v4
v5 v6
v7
v8
v9 v10
v12
v13
v14
v11
Algoritmo de tipo incremental Entrada: Un polígono y-monótono de n vértices.
(Dos cadenas y-monótonas) Ordenar vértices según coordenada y-decreciente
PILA={v1,v2 }
Si el nuevo vértice (actual) es de distina cadena que la cima de la pila (vértice anterior) se añaden las diagonales desde el nuevo vértice a todos los elementos de la pila excepto a la base de la misma (y se actualiza la pila)
Si el nuevo vértice (actual) es de la misma cadena que el vértice anterior (cima de la pila) se añaden las diagonales desde el nuevo vértice a todos los elementos de la pila que se vean desde el nuevo vértice (y se actualiza la pila)
Al llegar al último vértice se añaden las diagonales desde éste a los elementos de la pila, excepto la base y la cima.
for i=3 to n-1
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
Triangulación de polígonos monótonos
v1
v2 v3
v4
v5 v6
v7
v8
v9 v10
v12
v13
v14
v11
Algoritmo de tipo incremental Entrada: Un polígono y-monótono de n vértices.
(Dos cadenas y-monótonas) Ordenar vértices según coordenada y-decreciente
PILA={v1,v2 }
Si el nuevo vértice (actual) es de distina cadena que la cima de la pila (vértice anterior) se añaden las diagonales desde el nuevo vértice a todos los elementos de la pila excepto a la base de la misma (y se actualiza la pila)
Si el nuevo vértice (actual) es de la misma cadena que el vértice anterior (cima de la pila) se añaden las diagonales desde el nuevo vértice a todos los elementos de la pila que se vean desde el nuevo vértice (y se actualiza la pila)
Al llegar al último vértice se añaden las diagonales desde éste a los elementos de la pila, excepto la base y la cima.
for i=3 to n-1
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
Triangulación de polígonos monótonos
v1
v2 v3
v4
v5 v6
v7
v8
v9 v10
v12
v13
v14
v11
Algoritmo de tipo incremental Entrada: Un polígono y-monótono de n vértices.
(Dos cadenas y-monótonas) Ordenar vértices según coordenada y-decreciente
PILA={v1,v2 }
Si el nuevo vértice (actual) es de distina cadena que la cima de la pila (vértice anterior) se añaden las diagonales desde el nuevo vértice a todos los elementos de la pila excepto a la base de la misma (y se actualiza la pila)
Si el nuevo vértice (actual) es de la misma cadena que el vértice anterior (cima de la pila) se añaden las diagonales desde el nuevo vértice a todos los elementos de la pila que se vean desde el nuevo vértice (y se actualiza la pila)
Al llegar al último vértice se añaden las diagonales desde éste a los elementos de la pila, excepto la base y la cima.
for i=3 to n-1
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
Triangulación de polígonos monótonos
v1
v2 v3
v4
v5 v6
v7
v8
v9 v10
v12
v13
v14
v11
Algoritmo de tipo incremental Entrada: Un polígono y-monótono de n vértices.
(Dos cadenas y-monótonas) Ordenar vértices según coordenada y-decreciente
PILA={v1,v2 }
Si el nuevo vértice (actual) es de distina cadena que la cima de la pila (vértice anterior) se añaden las diagonales desde el nuevo vértice a todos los elementos de la pila excepto a la base de la misma (y se actualiza la pila)
Si el nuevo vértice (actual) es de la misma cadena que el vértice anterior (cima de la pila) se añaden las diagonales desde el nuevo vértice a todos los elementos de la pila que se vean desde el nuevo vértice (y se actualiza la pila)
Al llegar al último vértice se añaden las diagonales desde éste a los elementos de la pila, excepto la base y la cima.
for i=3 to n-1
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
Triangulación de polígonos monótonos
v1
v2 v3
v4
v5 v6
v7
v8
v9 v10
v12
v13
v14
v11
Algoritmo de tipo incremental Entrada: Un polígono y-monótono de n vértices.
(Dos cadenas y-monótonas) Ordenar vértices según coordenada y-decreciente
PILA={v1,v2 }
Si el nuevo vértice (actual) es de distina cadena que la cima de la pila (vértice anterior) se añaden las diagonales desde el nuevo vértice a todos los elementos de la pila excepto a la base de la misma (y se actualiza la pila)
Si el nuevo vértice (actual) es de la misma cadena que el vértice anterior (cima de la pila) se añaden las diagonales desde el nuevo vértice a todos los elementos de la pila que se vean desde el nuevo vértice (y se actualiza la pila)
Al llegar al último vértice se añaden las diagonales desde éste a los elementos de la pila, excepto la base y la cima.
for i=3 to n-1
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
Triangulación de polígonos monótonos
v1
v2 v3
v4
v5 v6
v7
v8
v9 v10
v12
v13
v14
v11
Algoritmo de tipo incremental Entrada: Un polígono y-monótono de n vértices.
(Dos cadenas y-monótonas) Ordenar vértices según coordenada y-decreciente
PILA={v1,v2 }
Si el nuevo vértice (actual) es de distina cadena que la cima de la pila (vértice anterior) se añaden las diagonales desde el nuevo vértice a todos los elementos de la pila excepto a la base de la misma (y se actualiza la pila)
Si el nuevo vértice (actual) es de la misma cadena que el vértice anterior (cima de la pila) se añaden las diagonales desde el nuevo vértice a todos los elementos de la pila que se vean desde el nuevo vértice (y se actualiza la pila)
Al llegar al último vértice se añaden las diagonales desde éste a los elementos de la pila, excepto la base y la cima.
for i=3 to n-1
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
Triangulación de polígonos monótonos
v1
v2 v3
v4
v5 v6
v7
v8
v9 v10
v12
v13
v14
v11
Algoritmo de tipo incremental Entrada: Un polígono y-monótono de n vértices.
(Dos cadenas y-monótonas) Ordenar vértices según coordenada y-decreciente
PILA={v1,v2 }
Si el nuevo vértice (actual) es de distina cadena que la cima de la pila (vértice anterior) se añaden las diagonales desde el nuevo vértice a todos los elementos de la pila excepto a la base de la misma (y se actualiza la pila)
Si el nuevo vértice (actual) es de la misma cadena que el vértice anterior (cima de la pila) se añaden las diagonales desde el nuevo vértice a todos los elementos de la pila que se vean desde el nuevo vértice (y se actualiza la pila)
Al llegar al último vértice se añaden las diagonales desde éste a los elementos de la pila, excepto la base y la cima.
for i=3 to n-1
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
Triangulación de polígonos monótonos
Algoritmo de tipo incremental Entrada: Un polígono y-monótono de n vértices.
(Dos cadenas y-monótonas) Ordenar vértices según coordenada y-decreciente
PILA={v1,v2 }
Si el nuevo vértice (actual) es de distina cadena que la cima de la pila (vértice anterior) se añaden las diagonales desde el nuevo vértice a todos los elementos de la pila excepto a la base de la misma (y se actualiza la pila)
Si el nuevo vértice (actual) es de la misma cadena que el vértice anterior (cima de la pila) se añaden las diagonales desde el nuevo vértice a todos los elementos de la pila que se vean desde el nuevo vértice (y se actualiza la pila)
Al llegar al último vértice se añaden las diagonales desde éste a los elementos de la pila, excepto la base y la cima.
for i=3 to n-1
O(n)
O(n), pues cada vértice se visita una única vez y se añade un número lineal de diagonales.
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
Triangulación de polígonos
Teorema: Un polígono y-monótono de n lados se puede triangular en tiempo O(n).
Teorema: Un polígono simple cualquiera puede dividirse en polígonos y-monótonos, en tiempo O(n log n).
Teorema: Un polígono simple cualquiera puede triangularse en tiempo O(n log n).
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
Triangulación de polígonos
Bibliografía
Computational Geometry: Algorithms and Applications. M. de Berg et al. Springer-Verlag, 1997. Computational Geometry: an introduction. F. P. Preparata y M. I. Shamos. Springer-Verlag, 1985.
Fundamentos de Geometría
Computacional I.T.I. Gestión
Tema 5 Triangulaciones
Triangulaciones de nubes de puntos
Triangulaciones de polígonos
Ejercicios
1.¿Cuál es la suma de los ángulos exteriores de un polígono? 2.Probar o dar un contraejemplo: todo árbol binario es el dual de la triangulación de un polígono. 3.Cuántas triangulaciones tiene el siguiente polígono:
4.Probar que toda triangulación de un polígono tiene al menos dos orejas, donde una oreja es un triángulo que sólo comparte una arista con otro triángulo. ¿Ocurre lo mismo con triangulaciones de nubes de puntos?