El problema de la galería de arte - asignatura.us.esasignatura.us.es/fgcitig/presentaciones/Tema...

53
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.

Transcript of El problema de la galería de arte - asignatura.us.esasignatura.us.es/fgcitig/presentaciones/Tema...

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?