estructuras de datos espaciales (topico especial)

Post on 26-Dec-2014

429 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

Esta fue la presentación final de mi tópico especial en estructuras de datos espaciales. Antes de que alguién lo mencione: Si, el ejemplo del B+ Tree tienen un error. El código está en: https://bitbucket.org/demiangutierrez/space Advertencia: No es una librería de estructuras de datos, no es estable, no tienen una buena API, tiene bugs, hay repetición, inconsistencias, etc. Es código que se escribió con fines académicos, no para producción. Algún día pretendo transformarlo en una librería (se acepta ayuda), pero es sucederá (si sucede) en un futuro muy lejano.

TRANSCRIPT

Estructuras de Datos EspacialesTópico Especial

Demián Gutierrez

Departamento de Computación

Septiembre 2013

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 1/119

introducción

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 2/119

¿qué tipos de datos vamos a manejar?

P1

P2

P3

P4

P5

L1

L2

L3

R1

R2

R3

R5

R6

R4

...generalmente en 2D, en 3D,y en algunos casos, también n-dimensionales

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 3/119

¿qué operaciones vamos a realizar?¿qué problemas vamos a resolver?

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 4/119

“construir” una estrucura de datos en base a un conjunto de datos(puntos, líneas, rectángulos, etc)

insertar/eliminar elementos en una estructura de datos(no aplica a todas)

realizar algún tipo de consulta

realizar algún tipo de combinación, división, etc

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 5/119

P1

P2

P3

P4

P5

L1

L2

L3

R1

R2

R3

R5

R6

R4

consultas:¿qué “formas” están contenidas en un área dada?

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 6/119

P1

P2

P3

P4

P5

L1

L2

L3

R1

R2

R3

R5

R6

R4

consultas:¿qué “formas” están contenidas en un área dada?

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 7/119

P1

P2

P3

P4

P5

L1

L2

L3

R1

R2

R3

R5

R6

R4

stabbing:¿qué “formas” son atravesadas por una recta dada?

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 8/119

P1

P2

P3

P4

P5

L1

L2

L3

R1

R2

R3

R5

R6

R4

stabbing:¿qué “formas” son atravesadas por una recta dada?

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 9/119

L1

L2

L3

L4

L5

L6

ordenamiento:¿qué “formas” están atrás (o adelante) de qué “formas”?

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 10/119

L1

L2

L3

L4

L5

L6

1

¿2 , 3?

4

5

6

ordenamiento:¿qué “formas” están atrás (o adelante) de qué “formas”?

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 11/119

P3

P2

P1

P4

P5

P6

P7

P8

P9

punto/objeto más cercano:¿cuál es el punto u objeto más cercano a un punto dado?

(no tratado en el presente tópico especial)

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 12/119

P3

P2

P1

P4

P5

P6

P7

P8

P9

¿se ve trivial?¿qué algoritmo se les ocurre?

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 13/119

P3

P2

P1

P4

P5

P6

P7

P8

P9

k=3

una variante:¿cuáles son los k-puntos más cercanos?(no tratado en el presente tópico especial)

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 14/119

P3

P2

P1

P4

P5

P6

P7

P8

P9

par de puntos más cercanos:dado un conjunto de puntos ¿cuál es el par de puntos más

cercanos entre si?(no tratado en el presente tópico especial)

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 15/119

P3

P2

P1

P4

P5

P6

P7

P8

P9

¿se ve trivial?¿qué algoritmo se les ocurre?

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 16/119

búsqueda de patrones y grupos / clasificación:¿qué patrones o grupos existen en un conjunto de puntos?

¿dado un nuevo punto ¿a qué grupo pertenece?

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 17/119

tomado de:https://onramps.instructure.com/courses/723227/wiki/classifying-data

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 18/119

clasificación / compresión:¿qué áreas o bloques contienen información

similar o del mismo tipo?

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 19/119

tomado de:http://ivrg.epfl.ch/supplementary_material/RK_SIGGRAPH_Asia09

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 20/119

pathfinding:¿camino óptimo del punto A al punto B? ¿hay un camino?

¿cómo explotar ciertas características espaciales para optimizaralgoritmos tradicionales de búsqueda?

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 21/119

muchas otrasen general, las estructuras de datos espaciales

tienen un campo de aplicación extremadamente ámplio

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 22/119

objetivos

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 23/119

implementar un conjunto de estructuras de datosespaciales para aprender lo más posible sobre el tema

sentar las bases de lo que puede ser en el futuro unabiblioteca de estructuras de datos espaciales y geometría

computacional escrita en Java

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 24/119

plan inicial de trabajo

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 25/119

basado principalmente en el libro deHanan Samet,

The Design and Analisys of Spatial Data Structures+ BSPs (binary space partition)

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 26/119

Point Data

Nonhierarchical Data Structures

Point Quadtrees

K-D Trees

Range Trees

Region Based Quadtrees

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 27/119

Collection of Small Rectangles

Plane-Sweep Methods and the Rectangle Intersection Problem

Multiple Quadtree Block Representations

R-Trees

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 28/119

Volume Data

Region Octrees

PM Octrees

BSP (Binary Space Partition)

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 29/119

Algunos Extras/Aplicaciones

Hierarchical A*

Marching Squares

Convex Hull (Polígono/Casco Convexo)

Algoritmo de Douglas-Peucker (Suavizado de Polígonos)

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 30/119

point quadtrees

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 31/119

son el equivalente, en 2D de un árbol binario de búsqueda

1 3

2

4

5

6

8

7 9

10

11

12

14

13 15

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 32/119

cada punto en un Point Quadtreedivide el espacio en cuatro cuadrantes

P1

NW NE

SESW

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 33/119

la división del espacio se hace recursivamentepor cada punto que se inserta

P1

NE

SESW

P2

NW

NW NE

SESW

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 34/119

el resultado es una estructura “arborea”,donde cada nodo tiene cuatro hijos

NW NE SW SENW NE SW SE NW NE SW SE NW NE SW SE

NW NE SW SE

...

esta “forma” es bastante común y se verátambién en otras estructuras

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 35/119

la estrategia de búsqueda consiste en encontrar característicasgeométricas que permitan descartar caminos completos para así

“podar” ramas completas

NW NE SW SENW NE SW SE NW NE SW SE NW NE SW SE

NW NE SW SE

...

esta estrategia es usada también en otras estructuras “arboreas”

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 36/119

la eliminación, es una operación más compleja que en un árbolbinario de búsqueda (1/3)

1 3

2

4

5

6

8

7 9

10

11

12

14

13 15

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 37/119

la eliminación, es una operación más compleja que en un árbolbinario de búsqueda (2/3)

1 3

2

5

4

6

8

7 9

10

11

12

14

13 15

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 38/119

la eliminación, es una operación más compleja que en un árbolbinario de búsqueda (3/3)

1 3

2

5

6

8

7 9

10

11

12

14

13 15

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 39/119

si se analiza el siguiente point quadtree

P1

P2

P3

P4

P5

P6

P7

P8

P9

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 40/119

se obtiene el siguiente árbol

... ... P7 ...... ... ... P6 ... P8 ... ... P9 ... ... ...

P2 P3 P4 P5

P1

si queremos eliminar P1, ¿quién es el sucesor o el predecesor?¿con quién se intercambia el nodo que queremos eliminar?

¿hay un orden natural en los datos?

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 41/119

en este caso, ¿con quién intercambiamos P1?

P1

P6

P7

P8

P9

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 42/119

¿y en este caso? ¿con quién intercambiamos P1?

P1

P6 P

7

P8

P9

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 43/119

¿y en este otro caso? ¿con quién intercambiamos P1?

P1

P6 P

7

P8

P9

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 44/119

buscar un nodo e insertar un hijo tiene un costo promedio deO(log4N)

el peor caso en la búsqueda de un rango es de O(2N1/2)

eliminación (algoritmo simple): se busca el nodo a eliminar(O(log4N)) y se reinsertan los nodos que están por debajo delnodo eliminado (¿O((M +1)log4N), donde M es el número de

hijos del nodo eliminado?)

eliminación (algoritmo complejo): hay algoritmos más complejos ydifíciles de implementar que reducen la cantidad de nodos que es

necesario reinsertar

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 45/119

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 46/119

10.000 nodos (ver la barra de estado de la captura de pantalla)

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 47/119

k-d-trees

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 48/119

cada punto divide el espacio en dos “semiespacios”

P1

x<=Px1

x> Px1

la división se hace usando sólo una de las coordenadas del puntoy una línea paralela a uno de los ejes

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 49/119

la coordenada y el eje seleccionados para hacer la divisióndependen del nivel del punto dentro del árbol que conforma la

estructura de datos

P1

x<=Px1

x> Px1

y<=Py2

y> Py2

P2

P3

y<=Py3

y> Py3

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 50/119

para niveles impares se utiliza la coordenada X del punto y ladivisión se hace paralela al eje Y, de lo contrario, se utiliza la

coordenada Y y la división se hace paralela al eje X

P1

P2 P3

... ...

P4

... ...

P5

... ...

P6

... ...

P7

x<=Px1

x> Px1

y<=Py2

y> Py2

y<=Py3

y> Py3

x <= > <= > <= > <= >

L1: XL2: YL3: XL4: Y

...

esta idea puede fácilmente extenderse a datosmultidimensionales

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 51/119

buscar un nodo e insertar un hijo tiene un costo promedio deO(log2N)

el peor caso en la búsqueda de un rango es de O(kN1−1/k),donde k es el número de claves o dimensión del árbol

eliminación: la eliminación es un algoritmo complejo, tienesimilitud con la eliminación en un árbol binario.

la cota máxima de eliminar un nodo seleccionado aleatoriamentees O(log2N), siendo el peor caso eliminar la raiz, que es

linealmente acotado

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 52/119

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 53/119

10.000 nodos (ver la barra de estado de la captura de pantalla)

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 54/119

point region quadtree

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 55/119

dada una región bien definida

usualmente un rectángulo cuyos lados miden 2n

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 56/119

el espacio se divide recursivamente en cuatro partes según seanecesario, de tal forma que cada parte tenga 1/4 del área del

rectángulo inicialmente definido

P1

el rectángulo inicial corresponde al nodo raiz del árbol,cada división corresponde a un nodo hijo

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 57/119

en algunos casos no es necesario hacer ninguna división, porqueel punto insertado corresponde a un nodo vacío

P1

P2

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 58/119

las divisiones se hacen recursivamente a medida que se insertanpuntos. . .

P1

P2

P3

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 59/119

garantizando que siempre haya sólo un punto por nodo

P1

P2

P3

P4

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 60/119

esto puede traer algunos problemas

¿cómo se resuelven?

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 61/119

Plane-Sweep Methods and the RectangleIntersection Problem

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 62/119

PROBLEMA:¿Qué rectángulos se intersectan con qué rectángulos?

R1

R2

R3

R4

R5

R6

R7

R8

Solución ingenua, todos contra todos (muy poco eficiente)

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 63/119

Dada una línea, alineada con el eje X se puede “barrer” el planode izquierda a derecha

R1

R2

R3

R4

R5

R6

R7

R8

Las coordenadas de inicio y de fin en X de cada rectángulo sepueden almacenar en un árbol binario de búsqueda (o alguna

otra estructura similar) para mantener un orden

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 64/119

Cuando se encuentra un rectángulo, se añade a una estructurade datos adicional, pero esta vez, ordenada por el inicio y el fin

en Y de cada rectángulo

R1

R2

R3

R4

R5

R6

R7

R8

R1

Por la naturaleza del barrido en X se sabe que cada rectánguloen la estructura de datos adicional se intersectan al menos en X

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 65/119

Cada vez que se añade un elemento a la estructura de datosadicional se verifica si el rectángulo nuevo se intersecta con

alguno de los rectángulos previamente insertados

R1

R2

R3

R4

R5

R6

R7

R8

R1, R

2

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 66/119

Si se encuentra una intersección en Y, entonces se sabe queambos rectángulos se intersectan en el espacio

R1

R2

R3

R4

R5

R6

R7

R8

R1, R

2, R

3

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 67/119

Cuando el barrido en X llega al final de un rectángulo, lo remuevede la estructura de datos adicional

R1

R2

R3

R4

R5

R6

R7

R8

R2, R

3

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 68/119

etc. . .

R1

R2

R3

R4

R5

R6

R7

R8

R3

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 69/119

etc. . .

R1

R2

R3

R4

R5

R6

R7

R8

R3, R

4

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 70/119

etc. . .

R1

R2

R3

R4

R5

R6

R7

R8

R4

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 71/119

Multiple Quadtree Block Representations

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 72/119

. . .

dada una región bien definida,usualmente rectangular

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 73/119

. . .

R1

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 74/119

. . .

R1

R2

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 75/119

. . .

R3

R1

R2

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 76/119

. . .

R3

R4

R1

R2

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 77/119

. . .

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 78/119

R-Trees

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 79/119

para entender un R-Tree, es necesario entender un B+ Tree

5 5 7 5 7 97 9

11 5 7 9 11 Oops... 5 7 9 11

5 7 9 11

9...

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 80/119

5 7 9 11

9

5 7 8 9 11

98

5 7 86 9 11

96

5 6 7 8

7 9...

9 11

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 81/119

5 6 7 8

7 9

9 11

4 653 7 8

7 9

9 11

3, 4

43 7 8

5 7 9

9 11

...

5 6

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 82/119

eventualmente, no sólo se desborda un nodo hoja sino quetambién se desborda un nódo interno

43 7 8

5 7 9

9 115 6

43 7 8

5 7 9

9 11 12 13

12, 13

5 6

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 83/119

en ese momento, el árbol crece un nively al mismo tiempo se mantiene balanceado

43 7 8

5 7 9 12

9 11

...

5 6 12 13

43 7 8

9 12

9 11

...

5 6 12 13

5

7

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 84/119

un R-Tree funciona de forma similar, salvo por el hecho de que noexiste un orden absoluto en los datos a almacenar

a b c

a

b

c

a

b

c

d

w x

a c b d

a

b

c

d

e

f

w x

a c e b d f

es perfectamente válido que los rectángulos se solapen entre sí

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 85/119

a medida que se insertan nodos, estos se van agrupando enzonas rectangulares, que a su vez se agrupan en zonas

rectangulares y así de forma recursiva.

w y x

c e b d fa g w y

c e b fa g d h

x z

u v

a

b

c

d

e

f

g

w

y x

a

b

c

d

e

f

g h

y x vu

wz

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 86/119

dos de las heurísticas principales usadas para agruparrectángulos

a

c e

g

a

c e

g

a

c e

g

a

c e

g

(1)

(2)

(1) minimizar el área de los rectángulos y (2) minimizar el área ola cantidad de intersecciones de los rectángulos

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 87/119

también es posible tener r-trees en 3D(tomado de wikipedia)

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 88/119

Octrees

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 89/119

son estructuras muy similares a los quadtrees, pero en 3D

en lugar de dividir el plano en 4 partes como en los quadtrees,el espacio se divide en 8 partes

(http://en.wikipedia.org/wiki/File:Octree2.svg)

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 90/119

los órdenes de ejecución son similares a los de los respectivosquadtrees, sólo que en lugar de usar log4 se usa log8

(por razones evidentes)

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 91/119

Binary Space PartitioningBSP

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 92/119

en un mundo plano, desde el punto de vista de la cámara,tenemos que “dibujar” los siguientes segmentos

L1

L2

L2 , L

1

L1 , L

2

dependiendo del orden en que se dibujen se obtienendistintos resultados, sólo hay un orden correcto

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 93/119

sin embargo, aquí tenemos un problema:

L1

L2

L2 , L

1

L1 , L

2

correcto

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 94/119

para resolverlo, es necesario “cortar” uno de los segmentos,transformándolo en dos segmentos distintos

L1

L2

L3

Correcto: L3 , L

2 , L

1

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 95/119

BSP 2D: Prestar atención al punto amarillo (1/2)

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 96/119

BSP 2D: Prestar atención al punto amarillo (2/2)

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 97/119

BSP 3D

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 98/119

Algunos “Extras"

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 99/119

desde hace algún tiempo, me interesa mucho el problema de labúsqueda de caminos

después de todo, si se desea implementar un “ambiente virtual” oun buen juego masivo multijugador de rol es importante tener una

buena IA, y para esto es muchas veces es crítico tener unabuena búsqueda de caminos

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 100/119

con mapas pequeños, es fácil y eficiente buscar caminos entredos puntos usando Dijkstra, una búsqueda por amplitud o A*

Tomado de:http://theory.stanford.edu/ amitp/GameProgramming/

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 101/119

con un mapa grande tenemos problemas de rendimientocada pixel es un nodo: 1024 nodos por 1024 nodos = 1048576

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 102/119

Dijkstra: 6.9 segundos

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 103/119

A*: 3.6 segundos

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 104/119

una posible solución. . .

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 105/119

A* jerárquico: 0.15 segundos

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 106/119

el problema también se puede atacar desde otro punto de vista

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 107/119

el mapa originalTomado de: http://www.ai-blog.net/archives/000152.html

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 108/119

una posibilidad es usando waypoints,pero esta estrategia trae muchos problemas

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 109/119

la mejor solución es usando mallas de navegación,pero el problema es construir las mallas para cada mapa

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 110/119

recast: genera automáticamente mallas de navegacióndetour: calcula caminos en función de las mallas de navegación

http://www.mooncollider.com/recast-and-detour/

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 111/119

mi intento:En 2D y es un trabajo en progreso. . .

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 112/119

calcular los contornos de las paredes y obstáculos(usando marching squares)

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 113/119

marching squares: casos posibles

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 114/119

marching squares: detalle de la imagen

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 115/119

bien, pero: ¿cual es el problema con el “marching squares”?ver la imagen a detalle:

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 116/119

para resolver el problema, se implementó el algoritmo de DouglasPeucker, que básicamente sirve para simplificar polígonos

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 117/119

aún quedan algunos problemas que resolver

pero la idea es, una vez que se resuelva el problema de loscontornos, aplicar una Triangulación Delaunay y usar el resultado

como malla de navegación

to be continued. . .

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 118/119

¿Futuro?

Continuar desarrollando la colección de estructuras de datos yalgoritmos para transformarla en una biblioteca de estructuras de

datos espaciales y algoritmos de geometría computacional

Demián Gutierrez Universidad de Los Andes

Estructuras de Datos Espaciales 119/119

top related