You are on page 1of 14

Trabajo Matemticas II: Ingeniera Multimedia

Estudio de los algoritmos de evacuacin / algoritmo del camino ms


cortos Dijkstra

Jaume Lloret Enrquez

Jaume Lloret Enrquez

Matemticas II

Introduccin
El siguiente trabajo esta pensado para el estudio de posibles mtodos para el desarrollo de
software para la evacuacin de lugares en caso de emergencia y el estudio de como deberan
construir los edificios para reducir los posibles riesgos de peligros por aglomeracin de gente.
En la actualidad existen diferentes software que realizan esta funcin uno de los mas conocidos
es Simulex que se usa para calcular los riesgos en edificios cuando se dan casos de
evacuaciones masivas.

El modelo SIMULEX
Se trata de un programa para la simulacin de la evacuacin de edificios desarrollado por P.
Thompson en la compaa Integrated Environmental Solutions, el cual simula el movimiento
individual de las personas travs de unos espacios geomtricamente definidos y complejos.

Una primera parte del programa permite definir minuciosamente la geometra del edificio, a
partir de datos numricos del mismo, o bien mediante diferentes rutinas es posible incorporar la
geometra directamente desde programas de CAD, una vez se han definido todos los datos se
efecta el clculo de las distancias mnimas, las anchuras y las capacidades de paso.
A los ocupantes es posible asignarles una velocidad de circulacin aleatoria segn una
2

Jaume Lloret Enrquez

Matemticas II

distribucin uniforme o bien una distribucin normal. Esta velocidad se ve afectada por la
proximidad de otras personas y por la densidad de ocupacin. El programa representa a las
personas mediante tres crculos. El modelo tambin considera la rotacin del cuerpo, la
posibilidad de dar pasos laterales, y pequeos pasos de espaldas.

El modelo tiene una estructura de red fina. El plano y la escalera se dividen en una cuadrcula
de bloques. El programa tiene un algoritmo que permite calcular la distancia de cada bloque en

el que esta dividi el plano a la salida ms cercana. Este algoritmo guarda la informacin que
3

Jaume Lloret Enrquez

Matemticas II

obtiene en una tabla de distancias. Esto permite que el software disponga de diferentes
herramientas, por ejemplo ofrece la posibilidad de realizar el denominado mapa distancias en
el cual se representan con un mismo color los puntos situados a una cierta distancia de cada
salida. Otra posibilidad consiste en determinar la ruta ms corta desde cualquier punto de la
planta mediante una lnea se representa el recorrido que debera efectuar un ocupante situado
en dicha dependencia. Y todo esto lo consigue mediante la utilizacin de la mencionada tabla
de distancias y su algoritmo.
En este programa considera individualmente a cada persona dentro del edificio. La salida del
modelo rastrea las posiciones de los individuos a travs de la evacuacin y los ocupantes tienen
una visin individual del edificio porque la eleccin de la ruta puede consistir en la ruta ms
corta calculada por el mapa de distancias predefinido o una ruta definida por el usuario.
Simulex modela una conducta implcita del ocupante, y el movimiento viene dado por una
combinacin de los resultados de varios estudios en base a videos que analizan el movimiento
individual, as como de resultados adicionales proporcionados por investigadores de
conductismo humano. La empresa considera que su programa es el nico que modela
exactamente la posicin coordinada de cada persona a una fraccin de un milmetro y tambin
la relacin entre la distancia entre-personas y cambios en la velocidad de marcha.
El programa usa para marcar la velocidad de marcha de cada ocupante la distancia entre las
personas que pueda tener delante el ocupante y dice que la distancia entre personas es la
distancia entre los centros de los cuerpos de dos individuos. Para esta funcin usan esta
formula:

V =V nsin(90(

v=v n

db
))
t db

Cuando b<d<td
Cuando d>td

Ademas el programa permite introducir parmetros que definen el tipo de ocupante haciendo
4

Jaume Lloret Enrquez

Matemticas II

que la velocidades de cada ocupante cambien segn estos parmetros.


Mediante este programa se simula el movimiento de las personas y la visualizacin se realiza en
intervalos de 0,1 segundos, puede observarse toda la planta en la cual se opera o bien
mediante un zoom pueden observarse las zonas de inters. Tambin es posible estudiar
alternativas de evacuacin de forma detallada y contemplar el efecto de las colas como
consecuencia de diferentes velocidades de circulacin y de la congestin de las salidas.

Mi programa en Geogebra
Mi intencin en este estudio es intentar desarrollar mediante el programa Geogebra una
funcin o programa que me sirviese para el estudio de las condiciones de evacuacin de
edificios o lugares pblicos para poder reducir los posibles riesgos que estas situaciones
provocan en lugares como en convenciones o fiestas.

Al estudiar software como es el caso del comentado en el punto anterior el programa Simulex
de IES podemos observar este tipo de software para el estudio de desalojo de gente dispone
de diferentes capas. Estas son diferentes algoritmos que realizan la funciones necesarias para
poder realizar los movimientos de las personas en esas circunstancias.
5

Jaume Lloret Enrquez

Matemticas II

Podemos observar tres claros algoritmos en el caso de Simulex uno de ellos seria los
algoritmos que dividen en mapa o plano en el cual los ocupantes van a estar en el caso de este
programa estudiado divide el plano en cuadrados de 20cm 2 para poder usar su algoritmo de
calculo de distancias ms cortas. Yo en este caso he pensado que mediante los diagramas de
Voronoi podra dividir el plano que un usuario quisiese que estudiramos y utilizar el punto
central de cada uno de las diferentes celdas creadas mediante Voronoi como punto de un grafo
y calcular la distancia que hay desde cada punto del grafo a otro.
En mi caso otro punto importante sera construir el grafo aunque mediante los diagramas de
Voronoi ya haya separado el mapa me faltara marcar cuales vrtices de los grafos no son
accesible entre ellos aunque estn prximos debido por ejemplo a la existencia de paredes y
tambin deber encontrar o marcar cual seria el vrtice final o de salida evidentemente me
estoy refriendo en donde esta ubicada la salida o salidas del edificio o zona.
Como ya he comentado en pargrafos anteriores otro de los algoritmos ms importantes que
usan los software de evacuacin son los de calculo de distancias en mi coso creo interesante
usar un algoritmo del camino ms corto como es por ejemplo el algoritmo de Dijkstra. Con este
algoritmo calculare cual es el camino mas cercano a la posible salida del edificio o salidas.

Tambin podemos observar que uno de los focos en el cual se centran los programas de
escape es en la velocidad de los ocupantes de los edificios as como se debe modificar la
velocidad de estos segn el espacio que haya entre dos o ms personas. En mi caso creo que
esto podra calcularlo mediante la distancia entre dos objetos que se movieran dentro del plano
6

Jaume Lloret Enrquez

Matemticas II

pero las velocidades en mi caso serian ficticias ya que no dispongo de estudios de velocidades
de personas en situaciones de desalojo as que utilizare la velocidad estndar de paseo de un
adulto.
Por ultimo hay un punto muy importante que es el estudio del comportamiento de las personas
en situaciones de riesgo y este estudio solo es posible observarlo mediante la recopilacin de
datos y el estudio estadstico de estos. Por desgracia yo no dispongo de estos datos por lo
tanto mi modelo obviara los posibles comportamientos que pudieran hacer los humanos en
estas situaciones y mis objetos se comportaran ms como posibles robots.
Por lo tanto quiero marcar que mi objetivo es desarrollar mediante el uso de diagramas de
Voronoi, el uso de grafos y del algoritmo de Dijkstra un software que intente emular lo que
ocurrir en el caso de una evacuacin de un edificio. O mejor dicho cual seria el camino que los
ocupantes del edificio realizacin o seria el ms optimo si no hubiese un plan de evacuacin
para si poder realizar nuestro propio plan o estudiar el riesgo de este.

Diagramas de Voronoi
Un diagrama de Voronoi es uno de los mtodos de interpolacin ms sencillos y que puede ser
una de las herramientas matemticas ms verstiles despus de la suma y la resta. Consiste en
la subdivisin de un plano en regiones formadas por los lugares ms prximos a cada uno de
los puntos, es una construccin geomtrica que nos permite asignar a cada punto una regin,
de forma que todo lo que contiene esa regin est ms cerca de este punto que de cualquier
otro. Estn basados en la distancia euclidiana y son realmente interesantes cuando representan
datos cualitativos. La distancia entre dos puntos se obtiene mediante la frmula deducida a
partir del teorema de Pitgoras descrita ms abajo. Como dato representativo, al colocar sobre
un plano dos puntos, la lnea que equidista de ambos sera el lmite que separa ambas regiones.

Jaume Lloret Enrquez

Matemticas II

Por estas caractersticas, es una estructura fundamental dentro de la Geometra Computacional.


Pero no slo se limita su uso en la Geometra Computacional. Este sencillo tipo de diagrama
tiene infinidad de usos que repasaremos a continuacin, desde su uso en geografa, pasando
por qumica y biologa, e incluso en el arte de la animacin digital y los videojuegos.
Este es un ejemplo de diagrama de Voronoi realizado mediante puntos puestos aleatoriamente
y utilizando la herramienta Geogebra mediante su funcin Voronoi[Lista de puntos]. Como se
puede ver se calcula obteniendo las mediatices entre los diferentes puntos.

Jaume Lloret Enrquez

Matemticas II

Tambin podemos observar que al trazar una circunferencia entre tres puntos se forma un
tringulo. Pero cmo podemos conseguir Voronoi? Hay algn tipo de algoritmo que nos
lleve a l de forma fcil? Si existen diferentes algoritmos que nos pueden ayudar a calcular el
diagrama de Voronoi como son:

Interseccin de semiplanos: Podemos construir cada regin de Voronoi por


separado mediante la interseccin de n-1 semiplanos.

Algoritmo Incremental: mediante una red de tringulos que cumplen la condicin


de Delaunay.

Divide y Vencers: el algoritmo sigue estas pautas del artculo La estrategia


divide-y-vencers

El Algoritmo de Fortune: Es el algoritmo ms complicado de todos pero tiene un


gran uso en la informtica. El creador Fortune hizo la inteligente observacin de
que poda calcularse el diagrama de Voronoi mediante barrido del plano
construyendo una versin distorsionada de ste pero que es topolgicamente
equivalente. Esta versin distorsionada del diagrama se basa en una
transformacin que modifica la forma en que las distancias son medidas en el
plano. El diagrama resultante tiene la misma estructura topolgica que el
9

Jaume Lloret Enrquez

Matemticas II

diagrama de Voronoi, pero sus aristas son arcos parablicos, en vez de


segmentos de lnea recta. Estas despus son corregidas.

ALGORITMO DE DIJKSTRA
El algoritmo de Dijkstra consiste en ir explorando todos los caminos ms cortos que parten del
vrtice origen y que llevan a todos los dems vrtices. Cuando se obtiene el camino ms corto
desde el vrtice origen, al resto de vrtices que componen el grafo, el algoritmo se detiene. Por
lo tanto el algoritmo determina la ruta ms corta desde un nodo origen hacia los dems nodos
para ello es requerido como entrada un grafo cuyas aristas posean pesos. Como observacin
hay que sealar que los pesos de las aristas no pueden ser negativos si queremos usar el
algoritmo de Dijkstra.
Para trabajar con el primero creamos una tabla habr tantas columnas como vrtices haya y
comenzamos marcando todos los vrtices como no utilizados. El algoritmo parte de un vrtice
origen que ser ingresado (en nuestro caso sera donde digamos que esta ubicado el ocupante
del edificio que debera ser aleatorio), a partir de ese vrtices evaluaremos sus adyacentes,
como Dijkstra usa una tcnica greedy (La tcnica greedy utiliza el principio de que para que un
camino sea ptimo, todos los caminos que contiene tambin deben ser ptimos) entre todos
los vrtices adyacentes, buscamos el que est ms cerca de nuestro punto origen, lo tomamos
como punto intermedio y vemos si podemos llegar ms rpido a travs de este vrtice a los
dems. Despus escogemos al siguiente ms cercano (con las distancias ya actualizadas) y
repetimos el proceso. Esto lo hacemos hasta que el vrtice no utilizado ms cercano sea
nuestro destino. Al proceso de actualizar las distancias tomando como punto intermedio al
nuevo vrtice se le conoce como relajacin. Para realizar Dijkstra usaremos una Cola de
Prioridad o Heap, este Heap debe tener la propiedad de Min-Heap es decir cada vez que
extraiga un elemento del Heap me debe devolver el de menor valor, en nuestro caso dicho
valor ser el peso acumulado en los nodos.

10

Jaume Lloret Enrquez

Matemticas II

El modelo de uso del algoritmo de Dijkstra sera este como entrada utilizaremos un Grafo
ponderado dirigido de N vrtices con pesos positivos. Todos los vrtices (o - f) son distintos
tales que existe algn camino entre los distintos vrtices desde el origen hasta el final . Y como
salida obtendremos el peso de un camino de coste mnimo entre el punto de origen y el final
del recorrido.
Como primer paso definimos S0=0, T0=V . Asignamos a cada vrtice v en V una etiqueta L(v)=0
si v=a y L(v)= para va. Para el segundo paso cuando i=1, 2, . . . , n. Suponiendo que hemos
construido los conjuntos S0, S1, ..., Si1. Hacemos

T i1=

Si1
v

. Si z Si1, definimos S = Si1 y

detenemos la construccin. En caso contrario, escogemos el primer vrtice u en T i1 con la


menor

etiqueta,

es

decir,

S i=Si1{u i1 }={u0 , u1 ,... , ui 1 }

en

Ti

adyacente

L(u)=min {L( v)vT i1} Definimos

(decimos que u entra),

cambiamos

su

etiqueta

T i1=
L(v)

Si1
v
por

ui1

u,

y para cada vrtice v


la

nueva

etiqueta

L(v )min {L(v) , L(u)+ p(u , v)} , es decir, actualizamos la etiqueta de los adyacentes de u
por fuera de Si . Por ultimo el paso seria si i=n, definimos S=S n y nos detenemos. Si i<n,
11

Jaume Lloret Enrquez

Matemticas II

hacemos i=i+1 y volvemos al segundo paso. El algoritmo de Dijkstra termina en el momento en


que encontramos el primer indice m para el cual z Sm.

Cmo lo he hecho?
Primero de nada he puesto en el rea de trabajo grfica de Geogebra el plano sobre el cual
quera estudiar el proceso de rutas de evacuacin ms prximas al ocupante del lugar. En este
mapa he puesto una serie de puntos aleatorios que simulan el espacio que ocupa cada persona
que estuviese en el edificio en mi modelo realmente he puesto muchas menos personas que las
que realmente ocuparan el edificio. Creo que para realizar una estimacin lo ms prxima a la
realidad abra que saber el numero exacto de ocupantes que pueden haber as como clculos
proporcionales del volumen que ocuparan las diferentes tipos de personas.
Para dividir el espacio que tenemos en el plano para poder as dibujar un grafo con el
obtenemos una matriz de adyacencia entre espacios utilizo el diagrama de Voronoi partiendo la
superficie mediante la interseccin de semiplanos que esta actualmente bien desenrollada en la
biblioteca de Geogebra y mediante la introduccin de una serie de puntos esta te realiza el
diagrama automticamente.

12

Jaume Lloret Enrquez

Matemticas II

Como ya he comentado mediante la matriz de Voronoi puedo obtener que celdas son
adyacentes entre ellas para poder hacer as mi matriz de adyaciencia. Por otro lado tambin
gracias a Voronoi y a los puntos puedo calcular la distancia entre el centro de dos celdas
adyacentes esto lo hay creando utilizando los puntos unindolos mediante un segmento de
punto a punto. Una vez que tengo ya estas distancias puedo hacer mi matriz de distancias entre
nodos adyacentes.
Estas dos matrices las he construido ya que me sern necesarias para poder calcular luego el
camino ms corto hasta la salida mediante el algoritmo de Dijkstra.

Para realizar la ruta utilizo el algoritmo de Dijkstra este va dando iteraciones hasta llegar al
objetivo yendo siempre por el camino ms corto posible. Para realizar esto he tenido que
programar una pequea funcin en la que se van guardando las distancias y los nodos
previamente visitados. Se ha programado en Java.
La aplicacin funciona pulsando el botn [Hacer Camino] una vez que se pulsa este boton
primero se marca el vector de la direccin del camino y a volver a pulsarlo es cundo se hace el
camino siguiendo los nodos.

13

Jaume Lloret Enrquez

Matemticas II

Conclusiones
Por concluir me gustara sealar que este proyecto es muy interesante ya que mediante el
podemos hacer una gran cantidad de estudios sobre posibles problemas. Pero como me he
dado cuenta para realizar el proyecto en una ndole ms profesional y as poder obtener de
verdad

resultados

interesantes

seria

necesario

poder

implementar

algoritmos

de

comportamiento humano (inteligencia artificial) ya que en mi aplicacin solo se encuentra la


ruta ms cercana segn los nodos que yo haya decidido marcar.
Otra cosa importante a comentar trata de que al trabajar con Geogebra con gran cantidad de
datos este tiende a ralentizarse mucho incluso al punto de bloquearse y morir provocandote
perdidas en los datos almacenados que no hayas guardado he incluso en mi caso me ha
corrompido un archivo guardado.
En un futuro espero poder desarrollar ms funciones para este software ya que lo encuentro
muy til e interesante.

14

You might also like