geometría computacional ingeniería informática envolvente convexa parte 1: algoritmos tema 1

83
Geometría Computacional Ingeniería Informática Envolvente Envolvente convexa convexa Parte 1: Algoritmos Parte 1: Algoritmos Tema 1

Upload: angel-ortiz-cano

Post on 24-Jan-2016

249 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

Geometría ComputacionalIngeniería Informática

Envolvente convexaEnvolvente convexa

Parte 1: AlgoritmosParte 1: Algoritmos

Tema 1

Page 2: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 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.

Page 3: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 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

Envolvente convexa de un conjunto: menor convexo que lo contiene.

O, equivalentemente, la intersección de todos los convexos que contienen al conjunto.

Page 4: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 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

Considere todos los conjuntos convexos que lo contienen y elija el menor de todos ellos.

Page 5: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 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

O bien, calculando la intersección de todos ellos.

Page 6: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 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

Pero, ningún ordenador puede manejar infinitos conjuntos....

Page 7: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 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

Eso se resuelve con puntillas y una goma elástica

Page 8: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 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

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.

Page 9: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 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

Aplicaciones:• Lo interesante suele ocurrir dentro de la

envolvente.• Es más fácil (rápido) mover un convexo.

Page 10: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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.

Page 11: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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.

Page 12: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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?

Page 13: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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.

Page 14: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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.

Page 15: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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

Page 16: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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.

Page 17: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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.

Page 18: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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

Page 19: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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.

Page 20: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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.

Page 21: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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.

Page 22: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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.

Page 23: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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.

Page 24: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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

Page 25: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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.

Page 26: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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.

Page 27: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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.

Page 28: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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)

Page 29: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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.

Page 30: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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

Page 31: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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

Page 32: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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

Page 33: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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

Page 34: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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

Page 35: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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

Page 36: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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

Page 37: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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

Page 38: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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

Page 39: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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

Page 40: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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

Page 41: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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

Page 42: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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

Page 43: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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

Page 44: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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

Page 45: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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

Page 46: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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

Page 47: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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

Page 48: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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

Page 49: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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

Page 50: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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

Page 51: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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

Page 52: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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

Page 53: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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

Page 54: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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

Page 55: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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

Page 56: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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

Page 57: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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

Page 58: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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

Page 59: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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

Page 60: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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.

Page 61: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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.

Page 62: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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.

Page 63: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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.

Page 64: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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.

Page 65: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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.

Page 66: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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.

Page 67: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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.

Page 68: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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.

Page 69: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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

Page 70: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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

Page 71: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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

Page 72: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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

Page 73: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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

Page 74: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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

Page 75: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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)

Page 76: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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.

Page 77: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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.

Page 78: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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.

Page 79: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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.

Page 80: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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.

Page 81: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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

Page 82: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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)

Page 83: Geometría Computacional Ingeniería Informática Envolvente convexa Parte 1: Algoritmos Tema 1

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)