Sie sind auf Seite 1von 12

MODELOS ESTOCSTICOS Y SIMULACIN EN

COMPUTACIN Y COMUNICACIONES

ALGORITMO INCREMENTAL ALEATORIZADO PARA EL


CLCULO DE ENVOLVENTES CONVEXAS

Integrantes:
Marcio Alexander Abreu Cano
Richar Orlando Contreras Caro

Profesora:
Dennis Elizabeth Jara

Universidad Nacional de Colombia


Sede Bogot

ndice
Resumen

(3)

1.

Introduccin

(4)

2.

Especificaciones de la investigacin

(5)

3.

mtodo y diseo investigativo

(6)

3.1. Construccin del pseudocdigo

(6)

3.2. Anlisis del algoritmo aleatorizado

(6)

4.

Aplicaciones de los algoritmos aleatorizados incrementales

(8)

5.

Notas sobre la implementacin del algoritmo para el caso bidimensional.

(9)

6.

Conclusiones

(11)

Bibliografa

ANEXOS

Implementacin del algoritmo para el caso bidimensional

(12)

RESUMEN
Este informe presenta el estudio, diseo e implementacin de un modelo particular de
algoritmos incrementales, los algoritmos incrementales aleatorizados de envolventes convexas.
La principal ventaja del motor de algoritmos incrementales aleatorizados implementado es su
potencialidad de ejecucin en entornos no dedicados, detectando la carga generada por los
usuarios del entorno y consumiendo de un modo inteligente los recursos computacionales
disponibles. Se presenta la descripcin terica del modelo de algoritmos incrementales
aleatorizados, los detalles de diseo e implementacin del motor desarrollado y su evaluacin
al aplicarse a la resolucin de un complejo problema de diseo de geometra computacional.
Palabras clave: algoritmos incrementales, algoritmos aleatorizados, envolvente convexa.
Geometra computacional.

1. INTRODUCCIN
Se presentar el estudio, diseo e implementacin de algoritmos incrementales aleatorizados,
haciendo nfasis en su aplicacin en el campo de la geometra computacional y exponiendo las
ventajas y desventajas de este tipo de algoritmos. De igual manera, se explicar el proceso de
construccin del algoritmo y se har el anlisis del tiempo de ejecucin, dando as una idea
clara sobre el rendimiento general de este tipo de algoritmo.
Al concluir este trabajo se podrn identificar las ventajas que ofrecen los algoritmos
incrementales aleatorizados en los diferentes campos de aplicacin, de tal forma que se puede
hacer una eleccin de trabajo de este algoritmo garantizando as la eficiencia absoluta y el
buen rendimiento y uso de los recursos disponibles de trabajo.

2. ESPECIFICACIONES DE LA INVESTIGACIN
DESCRIPCIN DEL ALGORITMO:
En su formulacin ms general, la entrada de un algoritmo incremental aleatorizado es un
conjunto de elementos (no necesariamente puntos), para los que debe calcularse una cierta
salida. El algoritmo procede de manera incremental, generalmente con un bucle que itera sobre
todos los elementos, y su principal caracterstica es que los elementos se van insertando segn
un orden aleatorio.
El algoritmo particular para el clculo de envolventes convexas funciona insertando lo puntos
del conjunto uno a la vez incrementalmente, actualizando la salida (envolvente) A continuacin
se describe una versin aleatorizado del algoritmo incremental, para el caso en 2 dimensiones.
Se calcular el tiempo de ejecucin esperado, que depende en principio de una permutacin
aleatoria y es independiente del conjunto de datos.
Se permuta el conjunto de puntos
de manera aleatoria; Sea
la
secuencia de punto obtenida del conjunto y
el tringulo nico formado
por los puntos
Se inserta el iterativamente el punto
,
calculando . Donde , representa el polgono que contiene los puntos
.
El clculo de , se realiza de la siguiente manera:
Primero que todo, la construccin de
depender del nuevo punto que ser agregado, dado
que hay que tomar en cuenta si este nuevo punto hace o no parte de la envolvente convexa
actual. Si el nuevo punto est dentro de la envolvente convexa no es necesario realizar ningn
otro procedimiento, pero si por el contrario est fuera de las fronteras de la envolvente convexa,
se debe seguir un procedimiento para adicionarlo al hull y as construir una nueva envolvente
convexa, este procedimiento consiste en reorganizar las fronteras del nuevo hull y crear las
aristas nuevas conectndolas con el nuevo punto y eliminar aquellas antiguas.

3. METODO Y DISEO INVESTIGATIVO


3.1 CONSTRUCCIN DEL PSEUDOCDIGO
A continuacin se presenta a modo de pseudocdigo el proceso del clculo de la envolvente:
ConvexHull(P):
ENTRADA: Conjunto P de n puntos en plano
SALIDA: Una lista de aristas, como parejas
- Genera la lista como una secuencia aleatoria de los elementos de
<- el tringulo nico formado por los puntos
,
- <- Centroide de
- Encuentra la arista l <que intercepta con
para todo ,
que intercepta con
, tal que
y
no tocan
ninguna arista.
Si Pi est dentro de
Descarte el punto
Sino:
Si
no pertenece a :
Buscar una ruta entre y :
........
que contenga la arista asociada, destruir todas las
aristas en la ruta y agregar
.
Agregar las aristas;
Actualizar las referencias de los puntos no procesados que apuntaban a
aristas destruidas en el paso anterior.
- return
NOTA: Alternativamente, para agregar un nuevo punto es posible partir de la arista asociada al
punto a agregar y agregar las 2 aristas nuevas, en caso de que se induzca una concavidad se
destruyen las aristas adyacentes y se crean 2 nuevas cada vez, hasta que se elimine la
concavidad en ambos extremos. Este mtodo resulta ms eficiente (aunque del mismo orden)
si la estructura de datos facilita los clculos en tiempo constante.

3.2 ANLISIS
Para encontrar el tiempo de ejecucin esperado del algoritmo, hay que tener en cuenta las 3
operaciones que puede realizar el algoritmo en un paso: Estas son:
Destruccin: Destruir una arista
Creacin: Crea 2 aristas nuevas
Reclasificacin: Reclasifica los puntos que se estaban referenciando por una arista destruida

Observe que por cada arista que es destruida por el algoritmo, debi haber sido creada al
mismo tiempo en un pasado, as el tiempo total gastado destruyendo aristas no puede ser

asintticamente diferente del tiempo total gastado creando aristas

en cada paso son creadas

2 aristas, luego el total de tiempo gastado creando y por lo tanto destruyendo, aristas est
acotado por
As slo queda por determinar el tiempo de ejecucin de la reclasificacin. Aseguramos que el
tiempo de ejecucin de la reclasificacin ser de
en el caso esperado (En otras
palabras cada punto es reclasificado en promedio en
La reclasificacin puede resultar
en un punto etiquetado como adentro. Sin embargo observe que esto solo pasa una vez por
cada punto dentro de la envolvente final, entonces el costo total para algunos tipos de
reclasificacin no pueden ser mayores a n. As que solo tenemos que preocuparnos por el
nmero esperado de reclasificacin de puntos que quedaron fuera del casco actual.
Considerando el ltimo punto adicionado a

. Con probabilidad igual a

para cada punto

adicionado ltimamente. Sea este punto, si est dentro del casco actual,
entonces no es necesario hacer una reclasificacin. Por otra parte estar en el casco .
Sean y las dos aristas relacionadas con p en . Observe que los puntos sin insertar que
tendran que ser reclasificados son los puntos que estn actualmente in
y
As el
costo de la reclasificacin debera ser
si fuera el ltimo en ser insertado. Para
determinar el costo esperado, sumamos cada uno de estos valores en todos los
puntos,
y lo multiplicamos por la probabilidad

que era la del ltimo punto agregado.

Observe que en la sumatoria, para cada arista ,


es adicionado 2 veces (Una por el punto
de la izquierda y otro por el de la derecha). As el costo esperado de la reclasificacin in la
construccin de Hi est dado por:

Desde la suma de
contando cada uno de los restantes
puntos a lo sumo dos veces
(exactamente dos veces si este est fuera del casco actual), as la sumatoria corresponde a
y as el costo esperado de la reclasificacin es:

Ahora, para obtener el tiempo total gastado en la reclasificacin, sumamos cada una de las
etapas, obteniendo:

Este costo domina el tiempo de ejecucin del algoritmo, esto completa el anlisis. El mismo
algoritmo puede ser generalizado en un espacio tridimensional sin mucha dificultad (Aunque
hay que notar que cada punto ser agregado no por dos tangentes sino por un cono poligonal
cuyo vrtice es el nuevo punto. El anlisis es ms complicado, porque el nmero de caras de
este cono podra no ser constante).

4. APLICACIONES
Los algoritmos aleatorizados, han sido ampliamente estudiados desde reas como la geometra
computacional y la programacin lineal, el uso de estos algoritmos ha permitido desarrollar
algoritmos simples, fciles de implementar y eficientes para una gran variedad de problemas de
diferentes reas, as como problemas de la vida real, entre los que podemos citar la
interseccin de segmentos rectilneos, los diagramas de Voronoi, las triangulaciones de
polgonos simples, la programacin lineal y muchos otros.
Tanto en la programacin lineal como en la geometra computacional, el uso de algoritmos
aleatorizados incrementales funciona bsicamente de la misma manera, teniendo en cuenta
que la idea principal est basada es en la expectativa sobre la secuencia de los nmeros
aleatorios, lo cual lo hace totalmente independiente de cualquier suposicin probabilstica
sobre la distribucin de los datos de entrada. Haciendo luego la insercin de los semiplanos en
orden aleatorio, actualizando cada vez la respuesta de acuerdo a los semiplanos existentes.
En el contexto de la Geometra Computacional, los algoritmos incrementales aleatorizados son
claros candidatos tcnicas de programacin en paralelo para algoritmos que en principio son
secuenciales, dando as un mayor rendimiento frente a otros algoritmos que en cada paso
hacen un nuevo clculo de todo el procedimiento. Mientras que en el caso de los algoritmos
incrementales este se basa en el clculo anterior, creando as una dependencia en las
secuencias de ejecucin.
En todos los casos, la generalizacin para el caso n-dimensional es aplicable, sin embargo,
tanto el anlisis terico como la implementacin se vuelven exponencialmente ms complejas,
en este caso, se hace ineficiente el recorrido de los vrtices y la deteccin de concavidades,
siendo necesario la implementacin de modelos matemticos que permitan la deteccin del
campo de visin desde un punto arbitrario

Mtodo, que tambin es vlido para el caso bidimensional, y puede ser aplicado calculando el
ngulo relativo entre cada vrtice y un punto arbitrario en el interior de la envolvente, siento el
mayor y el menor ngulo los puntos extremos del campo de visin.

Se sabe que para un subconjunto de puntos n en


visibles dador r puntos en la envolvente es:

5. NOTAS SOBRE
BIDIMENSIONAL

LA

IMPLEMENTACIN

el tiempo la cantidad esperada de caras

DEL

ALGORITMO

PARA

EL

CASO

Se realiz la implementacin de una variante del algoritmo randomized convex hull, para la
realizacin del mismo, se utiliz el concepto de campo de visin para detectar los vrtices
extremos de la envolvente en lugar de la deteccin de concavidades, por lo cual, si bien existe
una referencia de cada vrtice a la arista asociada, este no permite la deteccin de aristas
destruidas. De esta manera la reclasificacin tiene un peor caso de
. No obstante se
sabe experimentalmente que esta tcnica tambin tiene un caso medio de orden logartmico
(aunque con una constante mayor) para la el nmero de veces que un vrtice arbitrario es
reclasificado. El mtodo resulta ser ms eficiente a medida que se aumenta la dimensin del
problema en .
9

La dificultad en la implementacin se dio cuando el algoritmo realiza la adicin de un nuevo


elemento al Hull existente, ya que este procedimiento requera una reclasificacin de los
vrtices implicados para la nueva insercin y modificar como irian conectado estos ahora.
Cabe resaltar la importancia de una estructura de datos apropiada que permita realizar ciertas
operaciones (Bsqueda de nodos adyacentes, clculo de intersecciones entre segmentos de
recta, clculo de ngulos, insercin de aristas entre nodos arbitrarios) en un tiempo constante.
A continuacin se muestra la ejecucin de la aplicacin desarrollada donde se muestran
algunos pasos de la construccin incremental de la envolvente para una nube aleatoria y una
permutacin aleatoria:

La aplicacin se presenta como anexo al presente documento en varios tipos de ejecutable, as


como el cdigo fuente.
10

6. CONCLUSIONES
En este informe hemos mostrado el anlisis de los algoritmos aleatorizados incrementales y
que uso tienen estos en la vida real, adems de las ventajas del usos de estos algoritmos
frente a otros algoritmos aleatorizados o determinsticos, segn lo cual, se puede afirmar que
los algoritmos incrementales resultan muy eficientes en problemas en los que se requiere
agregar incrementalmente nuevos valores a la entrada y recalcular la salida eficientemente.
Existen 2 ventajas principales de los algoritmos incrementales aleatorizados respecto a otros
algoritmos conocidos:
- La aleatorizacin elimina la dependencia existente entre el conjunto de datos y el tiempo de
ejecucin, siendo el tiempo esperado el mismo para cualquier conjunto de datos.
- El algoritmo incremental permite la insercin de nuevos puntos, sin la necesidad de repetir
procesos previos, mientras que otros algoritmos deben recalcular la salida desde el comienzo.
Dado que cada iteracin del algoritmo es dependiente del resultado anterior, la ejecucin en
paralelo del algoritmo es compleja, pues slo es posible la ejecucin paralela del proceso de
reclasificacin, asignando la reclasificacin de cada nodo a un hilo diferente.

11

BIBLIOGRAFA
Raimund Seidel Constructing higher-dimensional convex hulls at logarithmic cost per face In
Proceedings of the eighteenth annual ACM symposium on Theory of computing, 1986.
Kenneth L Clarkson, Kurt Mehlhorn, and Raimund Seidel, Four results on randomized
incremental constructions In Computational Geometry: Theory and Applications, September
1993.
Kurt Mehlhorn, Seidels Randomized Linear Programming Algorithm, 2010
Amber Stillings, Pankaj K. Agarwa, CPS234 Computational Geometry - Lecture 4: Convex Hulls
in Higher Dimension, 2005
SamirKhuller, Randomized incremental convex hull algorithm, 1996
John Augustine, Topics in Design and Analysis of Algorithms: Convex Hull, 2012

12

Das könnte Ihnen auch gefallen