Tema 1 - asignatura.us.esasignatura.us.es/fgcitig/presentaciones/Tema 1-Envolvente convexa(1... ·...

Post on 27-Sep-2018

238 views 0 download

Transcript of Tema 1 - asignatura.us.esasignatura.us.es/fgcitig/presentaciones/Tema 1-Envolvente convexa(1... ·...

Fundamentos de Geometría

Computacional I.T.I. Gestión

Envolvente convexa

Tema 1

Algoritmos:

• Quickhull • Ptos. extremos

Definiciones

Tema 1 Envolvente convexa

• Scan de Graham • Marcha de Jarvis

Aplicaciones:

• Otros • Cota inferior

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

Definiciones

Un conjunto es convexo si el segmento uniendo cualesquiera dos de sus puntos está contenido en él.

La intersección de convexos es un convexo.

Algoritmos:

• Quickhull • Ptos. extremos

Definiciones

Tema 1 Envolvente convexa

• Scan de Graham • Marcha de Jarvis

Aplicaciones:

• Otros • Cota inferior

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

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:

• Otros • Cota inferior

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

Definiciones

Aplicaciones: • Lo interesante suele ocurrir dentro de la

envolvente.

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

Algoritmos:

• Quickhull • Ptos. extremos

Definiciones

Tema 1 Envolvente convexa

• Scan de Graham • Marcha de Jarvis

Aplicaciones:

• Otros • Cota inferior

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

Definiciones

S una nube de puntos, S=p1,p2,…,pn

CH(S) es un polígono

arista extrema

punto extremo

Algoritmos:

• Quickhull • Ptos. extremos

Tema 1 Envolvente convexa

Definiciones

• Scan de Graham • Marcha de Jarvis

Aplicaciones:

• Otros • Cota inferior

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

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:

• Otros • Cota inferior

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

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:

• Otros • Cota inferior

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

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:

• Otros • Cota inferior

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

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:

• Otros • Cota inferior

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

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:

• Otros • Cota inferior

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

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:

• Otros • Cota inferior

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

Algoritmos: Puntos extremos

¿A qué lado de la recta PQ está R?

P R

Q A 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:

• Otros • Cota inferior

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

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:

• Otros • Cota inferior

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

Algoritmos: Quickhull

Este (menor x)

Oeste (mayor x)

c c

c

Algoritmos:

• Quickhull • Ptos. extremos

Tema 1 Envolvente convexa

Definiciones

• Scan de Graham • Marcha de Jarvis

Aplicaciones:

• Otros • Cota inferior

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

???

O(n)

Algoritmos: Quickhull

Function QuickHull(a,b,C) if C es vacío then return() else c punto de C más alejado de ab A puntos a la derecha de ac B puntos a la derecha de cb return QuickHull(a,c,A)+( c )+QuickHull(c,b,B) b

a

(1) Encontrar dos puntos extremos iniciales x,y

Dividir S en S1 (puntos por encima de xy) y S2 (puntos por debajo de xy)

(2)

(3) CH(S)=(x)+QuickHull(x,y,S1)+(y)+QuickHull(y,x,S2)

c

Algoritmos:

• Quickhull • Ptos. extremos

Tema 1 Envolvente convexa

Definiciones

• Scan de Graham • Marcha de Jarvis

Aplicaciones:

• Otros • Cota inferior

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

Algoritmos: Quickhull

b

a

T(m) es el tiempo de ejecución de QuickHull(a,b,C), con |C|=m

Function QuickHull(a,b,C) if C es vacío then return() else c punto de C más alejado de ab A puntos a la derecha de ac B puntos a la derecha de cb return QuickHull(a,c,A)+( c )+QuickHull(c,b,B)

T(n)=O(n)+T(α)+T(β), siendo α=|A| y β=|B|, α+β≤n-1

Caso más desfavorable: α=0, β=n-1

T(n)=T(n-1)+O(n) T(n)=O(n2)

c

Algoritmos:

• Quickhull • Ptos. extremos

Tema 1 Envolvente convexa

Definiciones

• Scan de Graham • Marcha de Jarvis

Aplicaciones:

• Otros • Cota inferior

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

O(n2)

O(n)

Algoritmos: Quickhull

Function QuickHull(a,b,C) if C es vacío then return() else c punto de C más alejado de ab A puntos a la derecha de ac B puntos a la derecha de cb return QuickHull(a,c,A)+( c )+QuickHull(c,b,B) b

a

(1) Encontrar dos puntos extremos iniciales x,y

Dividir S en S1 (puntos por encima de xy) y S2 (puntos por debajo de xy)

(2)

(3) CH(S)=(x)+QuickHull(x,y,S1)+(y)+QuickHull(y,x,S2)

c

Algoritmos:

• Quickhull

• Scan de Graham • Marcha de Jarvis

• Ptos. extremos

Tema 1 Envolvente convexa

Definiciones

Aplicaciones:

• Otros • Cota inferior

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

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:

• Otros • Cota inferior

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

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:

• Otros • Cota inferior

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

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:

• Otros • Cota inferior

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

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:

• Otros • Cota inferior

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

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:

• Otros • Cota inferior

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

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:

• Otros • Cota inferior

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

Algoritmos: Scan de Graham

Encontrar p0 el mas abajo-derecha

0

Ordenar el resto por sus ángulos con el vértice p0 (si hay empates eliminar los más cercanos a p0)

Algoritmos:

• Quickhull

• Scan de Graham • Marcha de Jarvis

• Ptos. extremos

Tema 1 Envolvente convexa

Definiciones

Aplicaciones:

• Otros • Cota inferior

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

Algoritmos: Scan de Graham

Encontrar p0 el mas abajo-derecha

0

Ordenar el resto por sus ángulos con el vértice p0 (si hay empates eliminar los más cercanos a p0)

1

2

3

4 5

6 7 8

9

10

11

12

Algoritmos:

• Quickhull

• Scan de Graham • Marcha de Jarvis

• Ptos. extremos

Tema 1 Envolvente convexa

Definiciones

Aplicaciones:

• Otros • Cota inferior

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

Algoritmos: Scan de Graham

0

Encontrar p0 el mas abajo-derecha

Ordenar el resto por sus ángulos con el vértice p0 (si hay empates eliminar los más cercanos a p0)

Iniciar la pila S=(0,1); i=2; while i<n do s=penúltimo de la pila; t=último de la pila; if pi está a la izquierda de pspt then añade i a la pila; i=i+1; else quita t de la pila;

1

2

3

4 5

6 7 8

9

11

12

10

Algoritmos:

• Quickhull

• Scan de Graham • Marcha de Jarvis

• Ptos. extremos

Tema 1 Envolvente convexa

Definiciones

Aplicaciones:

• Otros • Cota inferior

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

Algoritmos: Scan de Graham

0

1

2

3

4 5

6 7 8

9

11

12

10

Encontrar p0 el mas abajo-derecha

Ordenar el resto por sus ángulos con el vértice p0 (si hay empates eliminar los más cercanos a p0)

Iniciar la pila S=(0,1); i=2; while i<n do s=penúltimo de la pila; t=último de la pila; if pi está a la izquierda de pspt then añade i a la pila; i=i+1; else quita t de la pila;

Algoritmos:

• Quickhull

• Scan de Graham • Marcha de Jarvis

• Ptos. extremos

Tema 1 Envolvente convexa

Definiciones

Aplicaciones:

• Otros • Cota inferior

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

Algoritmos: Scan de Graham

0

1

2

3

4 5

6 7 8

9

11

12

10

Encontrar p0 el mas abajo-derecha

Ordenar el resto por sus ángulos con el vértice p0 (si hay empates eliminar los más cercanos a p0)

Iniciar la pila S=(0,1); i=2; while i<n do s=penúltimo de la pila; t=último de la pila; if pi está a la izquierda de pspt then añade i a la pila; i=i+1; else quita t de la pila;

Algoritmos:

• Quickhull

• Scan de Graham • Marcha de Jarvis

• Ptos. extremos

Tema 1 Envolvente convexa

Definiciones

Aplicaciones:

• Otros • Cota inferior

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

Algoritmos: Scan de Graham

0

1

2

3

4 5

6 7 8

9

11

12

10

Encontrar p0 el mas abajo-derecha

Ordenar el resto por sus ángulos con el vértice p0 (si hay empates eliminar los más cercanos a p0)

Iniciar la pila S=(0,1); i=2; while i<n do s=penúltimo de la pila; t=último de la pila; if pi está a la izquierda de pspt then añade i a la pila; i=i+1; else quita t de la pila;

Algoritmos:

• Quickhull

• Scan de Graham • Marcha de Jarvis

• Ptos. extremos

Tema 1 Envolvente convexa

Definiciones

Aplicaciones:

• Otros • Cota inferior

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

Algoritmos: Scan de Graham

0

1

2

3

4 5

6 7 8

9

11

12

10

Encontrar p0 el mas abajo-derecha

Ordenar el resto por sus ángulos con el vértice p0 (si hay empates eliminar los más cercanos a p0)

Iniciar la pila S=(0,1); i=2; while i<n do s=penúltimo de la pila; t=último de la pila; if pi está a la izquierda de pspt then añade i a la pila; i=i+1; else quita t de la pila;

Algoritmos:

• Quickhull

• Scan de Graham • Marcha de Jarvis

• Ptos. extremos

Tema 1 Envolvente convexa

Definiciones

Aplicaciones:

• Otros • Cota inferior

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

Algoritmos: Scan de Graham

0

1

2

3

4 5

6 7 8

9

11

12

10

Encontrar p0 el mas abajo-derecha

Ordenar el resto por sus ángulos con el vértice p0 (si hay empates eliminar los más cercanos a p0)

Iniciar la pila S=(0,1); i=2; while i<n do s=penúltimo de la pila; t=último de la pila; if pi está a la izquierda de pspt then añade i a la pila; i=i+1; else quita t de la pila;

Algoritmos:

• Quickhull

• Scan de Graham • Marcha de Jarvis

• Ptos. extremos

Tema 1 Envolvente convexa

Definiciones

Aplicaciones:

• Otros • Cota inferior

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

Algoritmos: Scan de Graham

0

1

2

3

4 5

6 7 8

9

11

12

10

Encontrar p0 el mas abajo-derecha

Ordenar el resto por sus ángulos con el vértice p0 (si hay empates eliminar los más cercanos a p0)

Iniciar la pila S=(0,1); i=2; while i<n do s=penúltimo de la pila; t=último de la pila; if pi está a la izquierda de pspt then añade i a la pila; i=i+1; else quita t de la pila;

Algoritmos:

• Quickhull

• Scan de Graham • Marcha de Jarvis

• Ptos. extremos

Tema 1 Envolvente convexa

Definiciones

Aplicaciones:

• Otros • Cota inferior

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

Algoritmos: Scan de Graham

0

1

2

3

4 5

6 7 8

9

11

12

10

Encontrar p0 el mas abajo-derecha

Ordenar el resto por sus ángulos con el vértice p0 (si hay empates eliminar los más cercanos a p0)

Iniciar la pila S=(0,1); i=2; while i<n do s=penúltimo de la pila; t=último de la pila; if pi está a la izquierda de pspt then añade i a la pila; i=i+1; else quita t de la pila;

Algoritmos:

• Quickhull

• Scan de Graham • Marcha de Jarvis

• Ptos. extremos

Tema 1 Envolvente convexa

Definiciones

Aplicaciones:

• Otros • Cota inferior

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

Algoritmos: Scan de Graham

0

1

2

3

4 5

6 7 8

9

11

12

10

Encontrar p0 el mas abajo-derecha

Ordenar el resto por sus ángulos con el vértice p0 (si hay empates eliminar los más cercanos a p0)

Iniciar la pila S=(0,1); i=2; while i<n do s=penúltimo de la pila; t=último de la pila; if pi está a la izquierda de pspt then añade i a la pila; i=i+1; else quita t de la pila;

Algoritmos:

• Quickhull

• Scan de Graham • Marcha de Jarvis

• Ptos. extremos

Tema 1 Envolvente convexa

Definiciones

Aplicaciones:

• Otros • Cota inferior

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

Algoritmos: Scan de Graham

Encontrar p0 el mas abajo-derecha

0

1

2

3

4 5

6 7 8

9

11

12

10

Encontrar p0 el mas abajo-derecha

Ordenar el resto por sus ángulos con el vértice p0 (si hay empates eliminar los más cercanos a p0)

Iniciar la pila S=(0,1); i=2; while i<n do s=penúltimo de la pila; t=último de la pila; if pi está a la izquierda de pspt then añade i a la pila; i=i+1; else quita t de la pila;

Algoritmos:

• Quickhull

• Scan de Graham • Marcha de Jarvis

• Ptos. extremos

Tema 1 Envolvente convexa

Definiciones

Aplicaciones:

• Otros • Cota inferior

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

Algoritmos: Scan de Graham

0

1

2

3

4 5

6 7 8

9

11

12

10

Encontrar p0 el mas abajo-derecha

Ordenar el resto por sus ángulos con el vértice p0 (si hay empates eliminar los más cercanos a p0)

Iniciar la pila S=(0,1); i=2; while i<n do s=penúltimo de la pila; t=último de la pila; if pi está a la izquierda de pspt then añade i a la pila; i=i+1; else quita t de la pila;

Algoritmos:

• Quickhull

• Scan de Graham • Marcha de Jarvis

• Ptos. extremos

Tema 1 Envolvente convexa

Definiciones

Aplicaciones:

• Otros • Cota inferior

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

Algoritmos: Scan de Graham

0

1

2

3

4 5

6 7 8

9

11

12

10

Encontrar p0 el mas abajo-derecha

Ordenar el resto por sus ángulos con el vértice p0 (si hay empates eliminar los más cercanos a p0)

Iniciar la pila S=(0,1); i=2; while i<n do s=penúltimo de la pila; t=último de la pila; if pi está a la izquierda de pspt then añade i a la pila; i=i+1; else quita t de la pila;

Algoritmos:

• Quickhull

• Scan de Graham • Marcha de Jarvis

• Ptos. extremos

Tema 1 Envolvente convexa

Definiciones

Aplicaciones:

• Otros • Cota inferior

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

Algoritmos: Scan de Graham

0

1

2

3

4 5

6 7 8

9

11

12

10

Encontrar p0 el mas abajo-derecha

Ordenar el resto por sus ángulos con el vértice p0 (si hay empates eliminar los más cercanos a p0)

Iniciar la pila S=(0,1); i=2; while i<n do s=penúltimo de la pila; t=último de la pila; if pi está a la izquierda de pspt then añade i a la pila; i=i+1; else quita t de la pila;

Algoritmos:

• Quickhull

• Scan de Graham • Marcha de Jarvis

• Ptos. extremos

Tema 1 Envolvente convexa

Definiciones

Aplicaciones:

• Otros • Cota inferior

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

Algoritmos: Scan de Graham

0

1

2

3

4 5

6 7 8

9

11

12

10

Encontrar p0 el mas abajo-derecha

Ordenar el resto por sus ángulos con el vértice p0 (si hay empates eliminar los más cercanos a p0)

Iniciar la pila S=(0,1); i=2; while i<n do s=penúltimo de la pila; t=último de la pila; if pi está a la izquierda de pspt then añade i a la pila; i=i+1; else quita t de la pila;

Algoritmos:

• Quickhull

• Scan de Graham • Marcha de Jarvis

• Ptos. extremos

Tema 1 Envolvente convexa

Definiciones

Aplicaciones:

• Otros • Cota inferior

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

Algoritmos: Scan de Graham

0

1

2

3

4 5

6 7 8

9

11

12

10

Encontrar p0 el mas abajo-derecha

Ordenar el resto por sus ángulos con el vértice p0 (si hay empates eliminar los más cercanos a p0)

Iniciar la pila S=(0,1); i=2; while i<n do s=penúltimo de la pila; t=último de la pila; if pi está a la izquierda de pspt then añade i a la pila; i=i+1; else quita t de la pila;

Algoritmos:

• Quickhull

• Scan de Graham • Marcha de Jarvis

• Ptos. extremos

Tema 1 Envolvente convexa

Definiciones

Aplicaciones:

• Otros • Cota inferior

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

Algoritmos: Scan de Graham

0

1

2

3

4 5

6 7 8

9

11

12

10

Encontrar p0 el mas abajo-derecha

Ordenar el resto por sus ángulos con el vértice p0 (si hay empates eliminar los más cercanos a p0)

Iniciar la pila S=(0,1); i=2; while i<n do s=penúltimo de la pila; t=último de la pila; if pi está a la izquierda de pspt then añade i a la pila; i=i+1; else quita t de la pila;

Algoritmos:

• Quickhull

• Scan de Graham • Marcha de Jarvis

• Ptos. extremos

Tema 1 Envolvente convexa

Definiciones

Aplicaciones:

• Otros • Cota inferior

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

Algoritmos: Scan de Graham

0

1

2

3

4 5

6 7 8

9

11

12

10

Encontrar p0 el mas abajo-derecha

Ordenar el resto por sus ángulos con el vértice p0 (si hay empates eliminar los más cercanos a p0)

Iniciar la pila S=(0,1); i=2; while i<n do s=penúltimo de la pila; t=último de la pila; if pi está a la izquierda de pspt then añade i a la pila; i=i+1; else quita t de la pila;

Algoritmos:

• Quickhull

• Scan de Graham • Marcha de Jarvis

• Ptos. extremos

Tema 1 Envolvente convexa

Definiciones

Aplicaciones:

• Otros • Cota inferior

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

Algoritmos: Scan de Graham

0

1

2

3

4 5

6 7 8

9

11

12

10

O(n log n)

O(n)

O(n)

Teorema: El Scan de Graham computa la envolvente convexa de n puntos en un tiempo O(n log n).

Encontrar p0 el mas abajo-derecha

Ordenar el resto por sus ángulos con el vértice p0 (si hay empates eliminar los más cercanos a p0)

Iniciar la pila S=(0,1); i=2; while i<n do s=penúltimo de la pila; t=último de la pila; if pi está a la izquierda de pspt then añade i a la pila; i=i+1; else quita t de la pila;

Algoritmos:

• Quickhull • Marcha de Jarvis

• Ptos. extremos

Tema 1 Envolvente convexa

Definiciones

Aplicaciones:

• Otros • Cota inferior

• Scan de Graham

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

Algoritmos: Divide y Vencerás

1) Ordenar los puntos por abscisa

Algoritmos:

• Quickhull • Marcha de Jarvis

• Ptos. extremos

Tema 1 Envolvente convexa

Definiciones

Aplicaciones:

• Otros • Cota inferior

• Scan de Graham

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

Algoritmos: Divide y Vencerás

1) Ordenar los puntos por abscisa

2) Dividir los puntos de S en dos subconjuntos: S1 con los n/2 puntos más a la izquierda y S2 con n/2 puntos más a la derecha

3) Calcular, recursivamente CH(A) y CH(B)

4) Unir CH(A) y CH(B) para obtener CH(S).

Algoritmos:

• Quickhull • Marcha de Jarvis

• Ptos. extremos

Tema 1 Envolvente convexa

Definiciones

Aplicaciones:

• Otros • Cota inferior

• Scan de Graham

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

Algoritmos: Divide y Vencerás

1) Ordenar los puntos por abscisa

2) Dividir los puntos de S en dos subconjuntos: S1 con los n/2 puntos más a la izquierda y S2 con n/2 puntos más a la derecha

3) Calcular, recursivamente CH(A) y CH(B)

4) Unir CH(A) y CH(B) para obtener CH(S).

Algoritmos:

• Quickhull • Marcha de Jarvis

• Ptos. extremos

Tema 1 Envolvente convexa

Definiciones

Aplicaciones:

• Otros • Cota inferior

• Scan de Graham

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

Algoritmos: Divide y Vencerás

1) Ordenar los puntos por abscisa

2) Dividir los puntos de S en dos subconjuntos: S1 con los n/2 puntos más a la izquierda y S2 con n/2 puntos más a la derecha

3) Calcular, recursivamente CH(A) y CH(B)

4) Unir CH(A) y CH(B) para obtener CH(S).

Algoritmos:

• Quickhull • Marcha de Jarvis

• Ptos. extremos

Tema 1 Envolvente convexa

Definiciones

Aplicaciones:

• Otros • Cota inferior

• Scan de Graham

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

Algoritmos: Divide y Vencerás

1) Ordenar los puntos por abscisa

2) Dividir los puntos de S en dos subconjuntos: S1 con los n/2 puntos más a la izquierda y S2 con n/2 puntos más a la derecha

3) Calcular, recursivamente CH(A) y CH(B)

4) Unir CH(A) y CH(B) para obtener CH(S).

Algoritmos:

• Quickhull • Marcha de Jarvis

• Ptos. extremos

Tema 1 Envolvente convexa

Definiciones

Aplicaciones:

• Otros • Cota inferior

• Scan de Graham

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

Algoritmos: Divide y Vencerás

1) Ordenar los puntos por abscisa

2) Dividir los puntos de S en dos subconjuntos: S1 con los n/2 puntos más a la izquierda y S2 con n/2 puntos más a la derecha

3) Calcular, recursivamente CH(A) y CH(B)

4) Unir CH(A) y CH(B) para obtener CH(S).

Algoritmos:

• Quickhull • Marcha de Jarvis

• Ptos. extremos

Tema 1 Envolvente convexa

Definiciones

Aplicaciones:

• Otros • Cota inferior

• Scan de Graham

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

Algoritmos: Divide y Vencerás

1) Ordenar los puntos por abscisa

2) Dividir los puntos de S en dos subconjuntos: S1 con los n/2 puntos más a la izquierda y S2 con n/2 puntos más a la derecha

3) Calcular, recursivamente CH(A) y CH(B)

4) Unir CH(A) y CH(B) para obtener CH(S).

Algoritmos:

• Quickhull • Marcha de Jarvis

• Ptos. extremos

Tema 1 Envolvente convexa

Definiciones

Aplicaciones:

• Otros • Cota inferior

• Scan de Graham

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

Algoritmos: Divide y Vencerás

1) Ordenar los puntos por abscisa

2) Dividir los puntos de S en dos subconjuntos: S1 con los n/2 puntos más a la izquierda y S2 con n/2 puntos más a la derecha

3) Calcular, recursivamente CH(A) y CH(B)

4) Unir CH(A) y CH(B) para obtener CH(S).

Algoritmos:

• Quickhull • Marcha de Jarvis

• Ptos. extremos

Tema 1 Envolvente convexa

Definiciones

Aplicaciones:

• Otros • Cota inferior

• Scan de Graham

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

Algoritmos: Divide y Vencerás

1) Ordenar los puntos por abscisa

2) Dividir los puntos de S en dos subconjuntos: S1 con los n/2 puntos más a la izquierda y S2 con n/2 puntos más a la derecha

3) Calcular, recursivamente CH(A) y CH(B)

4) Unir CH(A) y CH(B) para obtener CH(S).

Algoritmos:

• Quickhull • Marcha de Jarvis

• Ptos. extremos

Tema 1 Envolvente convexa

Definiciones

Aplicaciones:

• Otros • Cota inferior

• Scan de Graham

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

Algoritmos: Divide y Vencerás

1) Ordenar los puntos por abscisa

2) Dividir los puntos de S en dos subconjuntos: S1 con los n/2 puntos más a la izquierda y S2 con n/2 puntos más a la derecha

3) Calcular, recursivamente CH(A) y CH(B)

4) Unir CH(A) y CH(B) para obtener CH(S).

Algoritmos:

• Quickhull • Marcha de Jarvis

• Ptos. extremos

Tema 1 Envolvente convexa

Definiciones

Aplicaciones:

• Otros • Cota inferior

• Scan de Graham

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

Algoritmos: Divide y vencerás

B

4) Unir CH(A) y CH(B) para obtener CH(S).

Tangente inferior

Tangente superior

A

Algoritmos:

• Quickhull • Marcha de Jarvis

• Ptos. extremos

Tema 1 Envolvente convexa

Definiciones

Aplicaciones:

• Otros • Cota inferior

• Scan de Graham

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

Algoritmos: Divide y vencerás

B A

4) Unir CH(A) y CH(B) para obtener CH(S).

Tangente inferior

Tangente superior

0

1 2

3

4

5

6 7

8

0

1 2

3

4

5

6

7 8

9

10

Algoritmos:

• Quickhull • Marcha de Jarvis

• Ptos. extremos

Tema 1 Envolvente convexa

Definiciones

Aplicaciones:

• Otros • Cota inferior

• Scan de Graham

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

Algoritmos: Divide y vencerás

B

4) Unir CH(A) y CH(B) para obtener CH(S).

0

1 2

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

6 7

8

a b

Algoritmos:

• Quickhull • Marcha de Jarvis

• Ptos. extremos

Tema 1 Envolvente convexa

Definiciones

Aplicaciones:

• Otros • Cota inferior

• Scan de Graham

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

Algoritmos: Divide y vencerás

B

4) Unir CH(A) y CH(B) para obtener CH(S).

0

1 2

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

6 7

8

Algoritmos:

• Quickhull • Marcha de Jarvis

• Ptos. extremos

Tema 1 Envolvente convexa

Definiciones

Aplicaciones:

• Otros • Cota inferior

• Scan de Graham

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

Algoritmos: Divide y vencerás

B

4) Unir CH(A) y CH(B) para obtener CH(S).

0

1 2

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

6 7

8

Algoritmos:

• Quickhull • Marcha de Jarvis

• Ptos. extremos

Tema 1 Envolvente convexa

Definiciones

Aplicaciones:

• Otros • Cota inferior

• Scan de Graham

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

Algoritmos: Divide y vencerás

1) Ordenar los puntos por abscisa

2) Dividir los puntos de S en dos subconjuntos: S1 con los n/2 puntos más a la izquierda y S2 con n/2 puntos más a la derecha

3) Calcular, recursivamente CH(A) y CH(B)

4) Unir CH(A) y CH(B) para obtener CH(S).

O(n lg n) (preprocesamiento)

=

2 T(n/2)

T(n)

+

O(n)

T(n) = 2 T(n/2)+O(n) T(n) ∈ O(n lg n)

Algoritmos:

• Quickhull • Marcha de Jarvis

• Ptos. extremos

Tema 1 Envolvente convexa

Definiciones

Aplicaciones:

• Otros • Cota inferior

• Scan de Graham

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

Algoritmos: 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:

• Otros • Cota inferior

• Scan de Graham

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

Algoritmos: 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:

• Otros • Cota inferior

• Scan de Graham

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

Algoritmos: 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:

• Otros • Cota inferior

• Scan de Graham

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

Algoritmos: 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:

• Otros • Cota inferior

• Scan de Graham

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

Algoritmos: 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:

• Otros • Cota inferior

• Scan de Graham

Fundamentos de Geometría

Computacional I.T.I. Gestión

• Anchura • Diámetro

Algoritmos: 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:

• Anchura • Diámetro

• Cota inferior

• Scan de Graham

• Otros

Fundamentos de Geometría

Computacional I.T.I. Gestión

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 -3 4 -1 5 3

(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:

• Anchura • Diámetro

• Cota inferior

• Scan de Graham

• Otros

Fundamentos de Geometría

Computacional I.T.I. Gestión

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 -3 4 -1 5 3

(x,x2) (-3,9) (4,16) (-1,1) (5,25) (3,9)

(-3,9) (-1,1) (3,9) (4,16) (5,25)