Upload
angel-ortiz-cano
View
248
Download
0
Embed Size (px)
Citation preview
Geometría ComputacionalIngeniería Informática
Envolvente convexaEnvolvente convexa
Parte 1: AlgoritmosParte 1: Algoritmos
Tema 1
Algoritmos:
• Quickhull• Ptos. extremos
Definiciones
Tema 1 Envolvente convexa
• Scan de Graham• Marcha de Jarvis
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
Definiciones
Un conjunto es convexo si el segmento uniendo cualquiera dos de sus puntos está contenido en él.
Algoritmos:
• Quickhull• Ptos. extremos
Definiciones
Tema 1 Envolvente convexa
• Scan de Graham• Marcha de Jarvis
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
Definiciones
Envolvente convexa de un conjunto: menor convexo que lo contiene.
O, equivalentemente, la intersección de todos los convexos que contienen al conjunto.
Algoritmos:
• Quickhull• Ptos. extremos
Definiciones
Tema 1 Envolvente convexa
• Scan de Graham• Marcha de Jarvis
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
Considere todos los conjuntos convexos que lo contienen y elija el menor de todos ellos.
Algoritmos:
• Quickhull• Ptos. extremos
Definiciones
Tema 1 Envolvente convexa
• Scan de Graham• Marcha de Jarvis
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
O bien, calculando la intersección de todos ellos.
Algoritmos:
• Quickhull• Ptos. extremos
Definiciones
Tema 1 Envolvente convexa
• Scan de Graham• Marcha de Jarvis
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
Pero, ningún ordenador puede manejar infinitos conjuntos....
Algoritmos:
• Quickhull• Ptos. extremos
Definiciones
Tema 1 Envolvente convexa
• Scan de Graham• Marcha de Jarvis
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
Eso se resuelve con puntillas y una goma elástica
Algoritmos:
• Quickhull• Ptos. extremos
Definiciones
Tema 1 Envolvente convexa
• Scan de Graham• Marcha de Jarvis
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
Observación 1: La envolvente convexa es un polígono convexo con vértices en puntos del conjunto.
Observación 2: Describir la secuencia en orden de los vértices es describir la envolvente.
Observación 3: Selección ordenada de subconjuntos.
Algoritmos:
• Quickhull• Ptos. extremos
Definiciones
Tema 1 Envolvente convexa
• Scan de Graham• Marcha de Jarvis
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
Definiciones
Aplicaciones:• Lo interesante suele ocurrir dentro de la
envolvente.• Es más fácil (rápido) mover un convexo.
Algoritmos:
• Quickhull• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
• Scan de Graham• Marcha de Jarvis
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
Algoritmos: Puntos extremos
Punto extremo de S: no está contenido en ningún triángulo con vértices en puntos de S.
Sea S un conjunto de n puntos.
Algoritmos:
• Quickhull• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
• Scan de Graham• Marcha de Jarvis
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
Algoritmos: Puntos extremos
Punto extremo de S: no está contenido en ningún triángulo con vértices en puntos de S.
Sea S un conjunto de n puntos.
Algoritmos:
• Quickhull• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
• Scan de Graham• Marcha de Jarvis
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
Algoritmos: Puntos extremos
Los puntos extremos son los vértices de la envolvente convexa.¿Cuánto nos cuesta encontrar todos los puntos extremos?
Algoritmos:
• Quickhull• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
• Scan de Graham• Marcha de Jarvis
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
Algoritmos: Puntos extremos
Para cada punto de S, comprobar si está dentro de algún triángulo con vértices puntos de S:
• SÍ: No es vértice de la envolvente.
• NO: Es vértice de la envolvente convexa.
Para cada punto de S
comprobar si está dentro de algún triángulo.
n puntos,
O(n3) triángulos,O(n4) operaciones.
Algoritmos:
• Quickhull• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
• Scan de Graham• Marcha de Jarvis
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
Algoritmos: Puntos extremos
También podemos buscar las aristas extremas (unen dos puntos de S y dejan a todo el conjunto a un mismo lado de la recta que definen).
Para cada par de puntos de S
ver si la arista es extrema.
O(n2) pares,
O(n) por comprobación
O(n3) operaciones.
Algoritmos:
• Quickhull• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
• Scan de Graham• Marcha de Jarvis
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
Algoritmos: Puntos extremos
Inciso: ¿Cómo sabemos si• un punto está dentro de un triángulo, o si• un punto está a un lado u otro de una recta?
Mediante un determinante
Algoritmos:
• Quickhull• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
• Scan de Graham• Marcha de Jarvis
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
Algoritmos: Puntos extremos
¿A qué lado de la recta PQ está R?
P R
QA partir de sus coordenadas construimos el determinante
p1 p2 1
|A|= q1 q2 1
r1 r2 1
Interpretación geométrica: Vamos de P a Q, y luego de Q a R. Si:
• |A|>0: Giro a la izquierda. • |A|<0: Giro a la derecha.
Algoritmos:
• Quickhull• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
• Scan de Graham• Marcha de Jarvis
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
R
Algoritmos: Puntos extremos
¿M está dentro o fuera del triángulo?
P
Q
¡Ojo! esto sólo vale para convexos .
M Si al recorrer el triángulo (en el sentido de las agujas del reloj) hacemos 3 giros a la derecha, entonces M está en el interior.
Algoritmos:
• Quickhull• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
• Scan de Graham• Marcha de Jarvis
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
Algoritmos: Quickhull
Punto Norte (mayor coordenada y)
Sur
Este Oeste
Algoritmos:
• Quickhull• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
• Scan de Graham• Marcha de Jarvis
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
Algoritmos: Quickhull
Los puntos en el rectángulo definido por estos cuatro puntos no son vértices de la envolvente.
Algoritmos:
• Quickhull• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
• Scan de Graham• Marcha de Jarvis
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
Algoritmos: Quickhull
Buscamos el punto más alejado a cada uno de los segmentos y lo incorporamos.
Algoritmos:
• Quickhull• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
• Scan de Graham• Marcha de Jarvis
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
Algoritmos: Quickhull
Buscamos el punto más alejado a cada uno de los segmentos y lo incorporamos.
Algoritmos:
• Quickhull• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
• Scan de Graham• Marcha de Jarvis
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
Algoritmos: Quickhull
Repetimos el proceso en cada nuevo segmento hasta completar la envolvente.
Algoritmos:
• Quickhull• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
• Scan de Graham• Marcha de Jarvis
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
Algoritmos: Quickhull
En el peor de los casos necesitaremos O(n2) operaciones.
Algoritmos:
• Quickhull
• Scan de Graham• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
Algoritmos: Marcha de Jarvis
Buscamos el punto Sur y a partir de él giramos una semirrecta
Algoritmos:
• Quickhull
• Scan de Graham• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
Algoritmos: Marcha de Jarvis
Buscamos el punto Sur y a partir de él giramos una semirrecta hasta encontrar el siguiente punto de la envolvente.
Algoritmos:
• Quickhull
• Scan de Graham• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
Algoritmos: Marcha de Jarvis
Repetimos el proceso hasta volver al punto de partida.
Algoritmos:
• Quickhull
• Scan de Graham• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
Algoritmos: Marcha de Jarvis
Repetimos el proceso hasta volver al punto de partida.
Algoritmos:
• Quickhull
• Scan de Graham• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
Algoritmos: Marcha de Jarvis
Coste:Buscar el siguiente punto: O(n)Hay que repetirlo n veces en el peor de los casos.Número de operaciones: O(n2)
Algoritmos:
• Quickhull
• Scan de Graham• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
Algoritmos: Marcha de Jarvis
En realidad el tiempo de ejecución es: O(nh), siendo h el número de puntos de la envolvente.Es un algoritmo output sensitive.
Algoritmos:
• Quickhull
• Scan de Graham• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
1.- Escogemos un punto cualquiera.
Algoritmos: Scan de Graham
Algoritmos:
• Quickhull
• Scan de Graham• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
1.- Escogemos un punto cualquiera.
Algoritmos: Scan de Graham
Algoritmos:
• Quickhull
• Scan de Graham• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
1.- Escogemos un punto cualquiera.2.- Ordenamos los demás puntos angularmente con respecto a dicho punto.
Algoritmos: Scan de Graham
Algoritmos:
• Quickhull
• Scan de Graham• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
1.- Escogemos un punto cualquiera.2.- Ordenamos los demás puntos angularmente con respecto a dicho punto:L1
2
34
56
7
8
9 10
11
12
13
Algoritmos: Scan de Graham
Algoritmos:
• Quickhull
• Scan de Graham• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
1.- Escogemos un punto cualquiera.2.- Ordenamos los demás puntos angularmente con respecto a dicho punto:L3.- A los tres primeros puntos les ponemos las etiquetas I M F
1
2
34
56
7
8
9 10
11
12
13
Algoritmos: Scan de Graham
Algoritmos:
• Quickhull
• Scan de Graham• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
1.- Escogemos un punto cualquiera.2.- Ordenamos los demás puntos angularmente con respecto a dicho punto:L3.- A los tres primeros puntos les ponemos las etiquetas I M F
I
M
F 1
2
34
56
7
8
9 10
11
12
13
Algoritmos: Scan de Graham
Algoritmos:
• Quickhull
• Scan de Graham• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
1.- Escogemos un punto cualquiera.2.- Ordenamos los demás puntos angularmente con respecto a dicho punto:L3.- A los tres primeros puntos les ponemos las etiquetas I M F4.- Si el ángulo IMF es positivo I=siguiente(I)M=siguiente(M)F=siguiente(F)
I
M
F 1
2
34
56
7
8
9 10
11
12
13
Algoritmos: Scan de Graham
Algoritmos:
• Quickhull
• Scan de Graham• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
1.- Escogemos un punto cualquiera.2.- Ordenamos los demás puntos angularmente con respecto a dicho punto:L3.- A los tres primeros puntos les ponemos las etiquetas I M F4.- Si el ángulo IMF es positivo I=siguiente(I)M=siguiente(M)F=siguiente(F)
I
MF
1
2
34
56
7
8
9 10
11
12
13
Algoritmos: Scan de Graham
Algoritmos:
• Quickhull
• Scan de Graham• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
1.- Escogemos un punto cualquiera.2.- Ordenamos los demás puntos angularmente con respecto a dicho punto:L3.- A los tres primeros puntos les ponemos las etiquetas I M F4.- Si el ángulo IMF es positivo I=siguiente(I)M=siguiente(M)F=siguiente(F)Si IMF es negativo: borramos M de LI=anterior(I)M=IF=F
I
MF
1
2
34
56
7
8
9 10
11
12
13
Algoritmos: Scan de Graham
Algoritmos:
• Quickhull
• Scan de Graham• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
1.- Escogemos un punto cualquiera.2.- Ordenamos los demás puntos angularmente con respecto a dicho punto:L3.- A los tres primeros puntos les ponemos las etiquetas I M F4.- Si el ángulo IMF es positivo I=siguiente(I)M=siguiente(M)F=siguiente(F)Si IMF es negativo: borramos M de LI=anterior(I)M=IF=F
I
M
F1
2
34
56
7
8
9 10
11
12
13
Algoritmos: Scan de Graham
Algoritmos:
• Quickhull
• Scan de Graham• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
1.- Escogemos un punto cualquiera.2.- Ordenamos los demás puntos angularmente con respecto a dicho punto:L3.- A los tres primeros puntos les ponemos las etiquetas I M F4.- Si el ángulo IMF es positivo I=siguiente(I)M=siguiente(M)F=siguiente(F)Si IMF es negativo: borramos M de LI=anterior(I)M=IF=F
I
M
F
1
2
34
56
7
8
9 10
11
12
13
Algoritmos: Scan de Graham
Algoritmos:
• Quickhull
• Scan de Graham• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
1.- Escogemos un punto cualquiera.2.- Ordenamos los demás puntos angularmente con respecto a dicho punto:L3.- A los tres primeros puntos les ponemos las etiquetas I M F4.- Si el ángulo IMF es positivo I=siguiente(I)M=siguiente(M)F=siguiente(F)Si IMF es negativo: borramos M de LI=anterior(I)M=IF=F
I
MF
1
2
34
56
7
8
9 10
11
12
13
Algoritmos: Scan de Graham
Algoritmos:
• Quickhull
• Scan de Graham• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
1.- Escogemos un punto cualquiera.2.- Ordenamos los demás puntos angularmente con respecto a dicho punto:L3.- A los tres primeros puntos les ponemos las etiquetas I M F4.- Si el ángulo IMF es positivo I=siguiente(I)M=siguiente(M)F=siguiente(F)Si IMF es negativo: borramos M de LI=anterior(I)M=IF=F
IM
F
1
2
34
56
7
8
9 10
11
12
13
Algoritmos: Scan de Graham
Algoritmos:
• Quickhull
• Scan de Graham• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
1.- Escogemos un punto cualquiera.2.- Ordenamos los demás puntos angularmente con respecto a dicho punto:L3.- A los tres primeros puntos les ponemos las etiquetas I M F4.- Si el ángulo IMF es positivo I=siguiente(I)M=siguiente(M)F=siguiente(F)Si IMF es negativo: borramos M de LI=anterior(I)M=IF=F
IM
F
1
2
34
56
7
8
9 10
11
12
13
Algoritmos: Scan de Graham
Algoritmos:
• Quickhull
• Scan de Graham• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
1.- Escogemos un punto cualquiera.2.- Ordenamos los demás puntos angularmente con respecto a dicho punto:L3.- A los tres primeros puntos les ponemos las etiquetas I M F4.- Si el ángulo IMF es positivo I=siguiente(I)M=siguiente(M)F=siguiente(F)Si IMF es negativo: borramos M de LI=anterior(I)M=IF=F
I
M
F
1
2
34
56
7
8
9 10
11
12
13
Algoritmos: Scan de Graham
Algoritmos:
• Quickhull
• Scan de Graham• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
1.- Escogemos un punto cualquiera.2.- Ordenamos los demás puntos angularmente con respecto a dicho punto:L3.- A los tres primeros puntos les ponemos las etiquetas I M F4.- Si el ángulo IMF es positivo I=siguiente(I)M=siguiente(M)F=siguiente(F)Si IMF es negativo: borramos M de LI=anterior(I)M=IF=F
I
M
F
1
2
34
56
7
8
9 10
11
12
13
Algoritmos: Scan de Graham
Algoritmos:
• Quickhull
• Scan de Graham• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
1.- Escogemos un punto cualquiera.2.- Ordenamos los demás puntos angularmente con respecto a dicho punto:L3.- A los tres primeros puntos les ponemos las etiquetas I M F4.- Si el ángulo IMF es positivo I=siguiente(I)M=siguiente(M)F=siguiente(F)Si IMF es negativo: borramos M de LI=anterior(I)M=IF=F
I
M
F
1
2
34
56
7
8
9 10
11
12
13
Algoritmos: Scan de Graham
Algoritmos:
• Quickhull
• Scan de Graham• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
1.- Escogemos un punto cualquiera.2.- Ordenamos los demás puntos angularmente con respecto a dicho punto:L3.- A los tres primeros puntos les ponemos las etiquetas I M F4.- Si el ángulo IMF es positivo I=siguiente(I)M=siguiente(M)F=siguiente(F)Si IMF es negativo: borramos M de LI=anterior(I)M=IF=F
I
M F
1
2
34
56
7
8
9 10
11
12
13
Algoritmos: Scan de Graham
Algoritmos:
• Quickhull
• Scan de Graham• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
1.- Escogemos un punto cualquiera.2.- Ordenamos los demás puntos angularmente con respecto a dicho punto:L3.- A los tres primeros puntos les ponemos las etiquetas I M F4.- Si el ángulo IMF es positivo I=siguiente(I)M=siguiente(M)F=siguiente(F)Si IMF es negativo: borramos M de LI=anterior(I)M=IF=F
I
M F
1
2
34
56
7
8
9 10
11
12
13
Algoritmos: Scan de Graham
Algoritmos:
• Quickhull
• Scan de Graham• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
1.- Escogemos un punto cualquiera.2.- Ordenamos los demás puntos angularmente con respecto a dicho punto:L3.- A los tres primeros puntos les ponemos las etiquetas I M F4.- Si el ángulo IMF es positivo I=siguiente(I)M=siguiente(M)F=siguiente(F)Si IMF es negativo: borramos M de LI=anterior(I)M=IF=F
I
M
F
1
2
34
56
7
8
9 10
11
12
13
Algoritmos: Scan de Graham
Algoritmos:
• Quickhull
• Scan de Graham• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
1.- Escogemos un punto cualquiera.2.- Ordenamos los demás puntos angularmente con respecto a dicho punto:L3.- A los tres primeros puntos les ponemos las etiquetas I M F4.- Si el ángulo IMF es positivo I=siguiente(I)M=siguiente(M)F=siguiente(F)Si IMF es negativo: borramos M de LI=anterior(I)M=IF=F
I
M
F
1
2
34
56
7
8
9 10
11
12
13
Algoritmos: Scan de Graham
Algoritmos:
• Quickhull
• Scan de Graham• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
1.- Escogemos un punto cualquiera.2.- Ordenamos los demás puntos angularmente con respecto a dicho punto:L3.- A los tres primeros puntos les ponemos las etiquetas I M F4.- Si el ángulo IMF es positivo I=siguiente(I)M=siguiente(M)F=siguiente(F)Si IMF es negativo: borramos M de LI=anterior(I)M=IF=F
I
M
F
1
2
34
56
7
8
9 10
11
12
13
Algoritmos: Scan de Graham
Algoritmos:
• Quickhull
• Scan de Graham• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
1.- Escogemos un punto cualquiera.2.- Ordenamos los demás puntos angularmente con respecto a dicho punto:L3.- A los tres primeros puntos les ponemos las etiquetas I M F4.- Si el ángulo IMF es positivo I=siguiente(I)M=siguiente(M)F=siguiente(F)Si IMF es negativo: borramos M de LI=anterior(I)M=IF=F
I
M
F
1
2
34
56
7
8
9 10
11
12
13
Algoritmos: Scan de Graham
Algoritmos:
• Quickhull
• Scan de Graham• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
1.- Escogemos un punto cualquiera.2.- Ordenamos los demás puntos angularmente con respecto a dicho punto:L3.- A los tres primeros puntos les ponemos las etiquetas I M F4.- Si el ángulo IMF es positivo I=siguiente(I)M=siguiente(M)F=siguiente(F)Si IMF es negativo: borramos M de LI=anterior(I)M=IF=F
I
M F
1
2
34
56
7
8
9 10
11
12
13
Algoritmos: Scan de Graham
Algoritmos:
• Quickhull
• Scan de Graham• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
1.- Escogemos un punto cualquiera.2.- Ordenamos los demás puntos angularmente con respecto a dicho punto:L3.- A los tres primeros puntos les ponemos las etiquetas I M F4.- Si el ángulo IMF es positivo I=siguiente(I)M=siguiente(M)F=siguiente(F)Si IMF es negativo: borramos M de LI=anterior(I)M=IF=F
I
M F
1
2
34
56
7
8
9 10
11
12
13
Algoritmos: Scan de Graham
Algoritmos:
• Quickhull
• Scan de Graham• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
1.- Escogemos un punto cualquiera.2.- Ordenamos los demás puntos angularmente con respecto a dicho punto:L3.- A los tres primeros puntos les ponemos las etiquetas I M F4.- Si el ángulo IMF es positivo I=siguiente(I)M=siguiente(M)F=siguiente(F)Si IMF es negativo: borramos M de LI=anterior(I)M=IF=F
I
M
F
1
2
34
56
7
8
9 10
11
12
13
Algoritmos: Scan de Graham
Algoritmos:
• Quickhull
• Scan de Graham• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
1.- Escogemos un punto cualquiera.2.- Ordenamos los demás puntos angularmente con respecto a dicho punto:L3.- A los tres primeros puntos les ponemos las etiquetas I M F4.- Si el ángulo IMF es positivo I=siguiente(I)M=siguiente(M)F=siguiente(F)Si IMF es negativo: borramos M de LI=anterior(I)M=IF=F
I
M
F
1
2
34
56
7
8
9 10
11
12
13
Algoritmos: Scan de Graham
Algoritmos:
• Quickhull
• Scan de Graham• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
1.- Escogemos un punto cualquiera.2.- Ordenamos los demás puntos angularmente con respecto a dicho punto:L3.- A los tres primeros puntos les ponemos las etiquetas I M F4.- Si el ángulo IMF es positivo I=siguiente(I)M=siguiente(M)F=siguiente(F)Si IMF es negativo: borramos M de LI=anterior(I)M=IF=F
I
M
F
1
2
34
56
7
8
9 10
11
12
13
Algoritmos: Scan de Graham
Algoritmos:
• Quickhull
• Scan de Graham• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
1.- Escogemos un punto cualquiera.2.- Ordenamos los demás puntos angularmente con respecto a dicho punto:L3.- A los tres primeros puntos les ponemos las etiquetas I M F4.- Si el ángulo IMF es positivo I=siguiente(I)M=siguiente(M)F=siguiente(F)Si IMF es negativo: borramos M de LI=anterior(I)M=IF=F
I
M
F1
2
34
56
7
8
9 10
11
12
13
Algoritmos: Scan de Graham
Algoritmos:
• Quickhull
• Scan de Graham• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
Geometría ComputacionalIngeniería Informática
1.- Escogemos un punto cualquiera.2.- Ordenamos los demás puntos angularmente con respecto a dicho punto:L3.- A los tres primeros puntos les ponemos las etiquetas I M F4.- Si el ángulo IMF es positivo I=siguiente(I)M=siguiente(M)F=siguiente(F)Si IMF es negativo: borramos M de LI=anterior(I)M=IF=F
I
MF
1
2
34
56
7
8
9 10
11
12
13
O(n)
Teorema: El Scan de Graham computa la envolvente convexa de n puntos en un tiempo óptimo O(n log n).
O(n log n)
Algoritmos: Scan de Graham
Algoritmos:
• Quickhull• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
• Scan de Graham
Geometría ComputacionalIngeniería Informática
Algoritmos: Otros
Divide y vencerás:
Dividimos el conjunto en dos subconjuntos de aproximadamente el mismo tamaño.
Algoritmos:
• Quickhull• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
• Scan de Graham
Geometría ComputacionalIngeniería Informática
Algoritmos: Otros
Divide y vencerás:
Dividimos el conjunto en dos subconjuntos de aproximadamente el mismo tamaño.
Algoritmos:
• Quickhull• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
• Scan de Graham
Geometría ComputacionalIngeniería Informática
Algoritmos: Otros
Divide y vencerás:
Dividimos el conjunto en dos subconjuntos de aproximadamente el mismo tamaño.
En cada uno de ellos repetimos la división hasta llegar a un tener uno o dos puntos.
Algoritmos:
• Quickhull• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
• Scan de Graham
Geometría ComputacionalIngeniería Informática
Algoritmos: Otros
Divide y vencerás:
Dividimos el conjunto en dos subconjuntos de aproximadamente el mismo tamaño.
En cada uno de ellos repetimos la división hasta llegar a un tener uno o dos puntos.
Algoritmos:
• Quickhull• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
• Scan de Graham
Geometría ComputacionalIngeniería Informática
Algoritmos: Otros
Divide y vencerás:
Dividimos el conjunto en dos subconjuntos de aproximadamente el mismo tamaño.
En cada uno de ellos repetimos la división hasta llegar a un tener uno o dos puntos.
Construimos las envolventes en cada subconjunto y vamos uniéndolas hasta hallar la del conjunto original.
Algoritmos:
• Quickhull• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
• Scan de Graham
Geometría ComputacionalIngeniería Informática
Algoritmos: Otros
Divide y vencerás:
Dividimos el conjunto en dos subconjuntos de aproximadamente el mismo tamaño.
En cada uno de ellos repetimos la división hasta llegar a un tener uno o dos puntos.
Construimos las envolventes en cada subconjunto y vamos uniéndolas hasta hallar la del conjunto original.
Algoritmos:
• Quickhull• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
• Scan de Graham
Geometría ComputacionalIngeniería Informática
Algoritmos: Otros
Divide y vencerás:
Dividimos el conjunto en dos subconjuntos de aproximadamente el mismo tamaño.
En cada uno de ellos repetimos la división hasta llegar a un tener uno o dos puntos.
Construimos las envolventes en cada subconjunto y vamos uniéndolas hasta hallar la del conjunto original.
Algoritmos:
• Quickhull• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
• Scan de Graham
Geometría ComputacionalIngeniería Informática
Algoritmos: Otros
Divide y vencerás:
Dividimos el conjunto en dos subconjuntos de aproximadamente el mismo tamaño.
En cada uno de ellos repetimos la división hasta llegar a un tener uno o dos puntos.
Construimos las envolventes en cada subconjunto y vamos uniéndolas hasta hallar la del conjunto original.
Algoritmos:
• Quickhull• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
• Scan de Graham
Geometría ComputacionalIngeniería Informática
Algoritmos: Otros
Divide y vencerás:
Dividimos el conjunto en dos subconjuntos de aproximadamente el mismo tamaño.
En cada uno de ellos repetimos la división hasta llegar a un tener uno o dos puntos.
Construimos las envolventes en cada subconjunto y vamos uniéndolas hasta hallar la del conjunto original.
Algoritmos:
• Quickhull• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
• Scan de Graham
Geometría ComputacionalIngeniería Informática
Algoritmos: Otros
Divide y vencerás:
Dividimos el conjunto en dos subconjuntos de aproximadamente el mismo tamaño.
En cada uno de ellos repetimos la división hasta llegar a un tener uno o dos puntos.
Construimos las envolventes en cada subconjunto y vamos uniéndolas hasta hallar la del conjunto original.
No es necesario que las envolventes sean disjuntas (conjuntos separados linealmente).
Algoritmos:
• Quickhull• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
• Scan de Graham
Geometría ComputacionalIngeniería Informática
Dividimos el conjunto en dos subconjuntos de aproximadamente el mismo tamaño.
En cada uno de ellos repetimos la división hasta llegar a un tener uno o dos puntos.
Construimos las envolventes en cada subconjunto y vamos uniéndolas hasta hallar la del conjunto original.
Algoritmos: Otros
Divide y vencerás:
La unión de dos convexos requiere O(n), luego el algoritmo corre en tiempo O(n log n).
Algoritmos:
• Quickhull• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
• Scan de Graham
Geometría ComputacionalIngeniería Informática
Algoritmos: Divide y vencerás
B
Tangente inferior
Tangente superior
A
Unión de dos convexos disjuntos
Algoritmos:
• Quickhull• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
• Scan de Graham
Geometría ComputacionalIngeniería Informática
Algoritmos: Divide y vencerás
BA
Tangente inferior
Tangente superior
0
1 2
3
4
5
67
8
0
12
3
4
5
6
7
8
9
10
Unión de dos convexos disjuntos
Algoritmos:
• Quickhull• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
• Scan de Graham
Geometría ComputacionalIngeniería Informática
Algoritmos: Divide y vencerás
B
0
12
3
4
5
6
7
8
9
10
TANGENTE INFERIOR
a=punto de A más a la dcha
b=punto de B más a la izda
While T=ab no sea tangente a A y a B do{
While T=ab no sea tangente a A do a=a-1; (mód |A|)
While T=ab no sea tangente a B do b=b+1; (mód |B|)
}
A
0
1 2
3
4
5
67
8
a b
Unión de dos convexos disjuntos
Algoritmos:
• Quickhull• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
• Scan de Graham
Geometría ComputacionalIngeniería Informática
Algoritmos: Divide y vencerás
B
0
12
3
4
5
6
7
8
9
10
TANGENTE INFERIOR
a=punto de A más a la dcha
b=punto de B más a la izda
While T=ab no sea tangente a A y a B do{
While T=ab no sea tangente a A do a=a-1; (mód |A|)
While T=ab no sea tangente a B do b=b+1; (mód |B|)
}
A
0
1 2
3
4
5
67
8
Unión de dos convexos disjuntos
Algoritmos:
• Quickhull• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
• Scan de Graham
Geometría ComputacionalIngeniería Informática
Algoritmos: Divide y vencerás
B
0
12
3
4
5
6
7
8
9
10
TANGENTE SUPERIOR
a=punto de A más a la dcha
b=punto de B más a la izda
While T=ab no sea tangente a A y a B do{
While T=ab no sea tangente a A do a=a+1; (mód |A|)
While T=ab no sea tangente a B do b=b-1; (mód |B|)
}
A
0
1 2
3
4
5
67
8
Unión de dos convexos disjuntos
Si los convexos no son disjuntos el algoritmo es ligeramente más complicado (ver libro de Preparata y Shamos)
Algoritmos:
• Quickhull• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
• Scan de Graham
Geometría ComputacionalIngeniería Informática
Algoritmos: Otros
Incremental:
Añadimos los puntos uno a uno.
En cada paso comprobamos si el nuevo punto está en el interior de la envolvente:
• SÍ: Lo ignoramos.
• NO: Lo incorporamos a la envolvente.
Algoritmos:
• Quickhull• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
• Scan de Graham
Geometría ComputacionalIngeniería Informática
Algoritmos: Otros
Incremental:
Añadimos los puntos uno a uno.
En cada paso comprobamos si el nuevo punto está en el interior de la envolvente:
• SÍ: Lo ignoramos.
• NO: Lo incorporamos a la envolvente.
Algoritmos:
• Quickhull• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
• Scan de Graham
Geometría ComputacionalIngeniería Informática
Algoritmos: Otros
Incremental:
Añadimos los puntos uno a uno.
En cada paso comprobamos si el nuevo punto está en el interior de la envolvente:
• SÍ: Lo ignoramos.
• NO: Lo incorporamos a la envolvente.
Algoritmos:
• Quickhull• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
• Scan de Graham
Geometría ComputacionalIngeniería Informática
Algoritmos: Otros
Incremental:
Añadimos los puntos uno a uno.
En cada paso comprobamos si el nuevo punto está en el interior de la envolvente:
• SÍ: Lo ignoramos.
• NO: Lo incorporamos a la envolvente.
Al añadir un nuevo punto puede que tengamos que eliminar alguno de la envolvente.
Algoritmos:
• Quickhull• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
• Scan de Graham
Geometría ComputacionalIngeniería Informática
Algoritmos: Otros
Incremental:
Añadimos los puntos uno a uno.
En cada paso comprobamos si el nuevo punto está en el interior de la envolvente:
• SÍ: Lo ignoramos.
• NO: Lo incorporamos a la envolvente.
Al añadir un nuevo punto puede que tengamos que eliminar alguno de la envolvente.
Algoritmos:
• Quickhull• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Otros• Cota inferior
• Scan de Graham
Geometría ComputacionalIngeniería Informática
Algoritmos: Otros
Incremental:
Añadimos los puntos uno a uno.
En cada paso comprobamos si el nuevo punto está en el interior de la envolvente:
• SÍ: Lo ignoramos.
• NO: Lo incorporamos a la envolvente.
Al añadir un nuevo punto puede que tengamos que eliminar alguno de la envolvente.
Cada inserción a lo bruto requiere O(n), por lo que serían necesarias O(n2) operaciones, pero puede mejorarse a O(log n), obteniendo O(n log n).
Algoritmos:
• Quickhull• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Cota inferior
• Scan de Graham• Otros
Geometría ComputacionalIngeniería Informática
Algoritmos: Cota inferior
Construir la envolvente convexa de n puntos requiere, al menos, (n log n) operaciones, ya que es equivalente a ordenar n números.
x-34-153
(x,x2)(-3,9)(4,16)(-1,1)(5,25)(3,9)
(-3,9) (-1,1) (3,9) (4,16) (5,25)
Algoritmos:
• Quickhull• Marcha de Jarvis
• Ptos. extremos
Tema 1 Envolvente convexa
Definiciones
Aplicaciones:
• Diámetro• Anchura
• Cota inferior
• Scan de Graham• Otros
Geometría ComputacionalIngeniería Informática
Algoritmos: Cota inferior
Construir la envolvente convexa de n puntos requiere, al menos, (n log n) operaciones, ya que es equivalente a ordenar n números.
x-34-153
(x,x2)(-3,9)(4,16)(-1,1)(5,25)(3,9)
(-3,9) (-1,1) (3,9) (4,16) (5,25)