• No se han encontrado resultados

4. Algoritmos de exploraci ´ on propuestos

4.2 Algoritmos para obst ´aculos no distinguibles

En el segundo enfoque abordado en este trabajo, los obst ´aculos no son distinguibles, esto puede interpretarse como si todos fueran de un mismo color.

An ´alogamente al enfoque anterior, contamos connrobots ri tal quei= 1, ..., n, se explora el

obst ´aculo y se almacenan las bitangentes a medida que se detectan. Inicialmente todos los robots se localizan en el v ´ertice de un obst ´aculo, como se trata de obst ´aculos no distinguibles, la ´unica informaci ´on disponible para los robots son las bitangentes. A medida que exploran los obst ´aculos se almacena las bitangentes en orden angular de acuerdo a como vayan apareciendo en cada v ´ertice.

Un aspecto a notar es que no es posible distinguir si dos o m ´as bitangentes pertenecen al mismo obst ´aculo, sin embargo, se distingue el v ´ertice y con eso se diferencian unas de otras en un mismo obst ´aculo. En la Figura 11 se puede apreciar las bitangentes detectadas en un obst ´aculo, cada una se almacena de la forma(x, y)dondexes el n ´umero del v ´ertice yyla bitangente.

{( 1, i ) | i = 1,...,5 }U{( 2, 1 ) } U {( 6, 1) }U{( 7, j ) | j = 1, 2 }U{(8, k ) | k = 1,2 }

Los robots tienen limitantes en la comunicaci ´on, ´unicamente lo hacen enrendezvous. La direc- ci ´on en la que se rodean los obst ´aculos se define antes de iniciar la estrategia. Los robots utilizan las bitangentes para viajar a trav ´es de los obst ´aculos. Cada robot tiene una pila que utiliza para visitar las bitangentes cuando superan el tama ˜no del equipo. El robot puede guardar y construir su propio ´arbol.

El robot no conoce su ubicaci ´on dentro del ambiente, no tiene acceso a sus coordenadas, por lo que para registrar el progreso de la exploraci ´on utiliza marcadores, estos pueden ser de dos tipos:

1. Marcador de inicio: es un marcador ´unico que posee el robot para identificar la posici ´on en la que inicia la exploraci ´on de un obst ´aculo. Este marcador contiene la informaci ´on del id del robot y est ´a disponible para otros robots.

2. Marcador gen ´erico: es un marcador ilimitado que el robot utiliza para etiquetar los obst ´aculos que ha visitado. Este marcador contiene la informaci ´on del robot que visit ´o el obst ´aculo.

La estrategia se representa por medio de un ´arbol, cada nodo contiene la lista de las bitangen- tes que son visibles desde los v ´ertices de los obst ´aculos. Las bitangentes representan las aristas del ´arbol, son el medio para llegar a los obst ´aculos y sirven para que el robot pueda regresar a los anteriores.

Para entender el algoritmo de exploraci ´on (ver Algoritmo 6) se describen las funciones que lo componen, como son la caracterizaci ´on de los obst ´aculos, la divisi ´on de los equipos y la asigna- ci ´on de los obst ´aculos a explorar.

La exploraci ´on de los obst ´aculos se realiza de la siguiente manera: se selecciona el robot con id menor de todo el equipo, coloca su marcador inicial y rodea el obst ´aculo, almacena posibles obst ´aculos por visitar, por medio de las bitangentes que detecta en cada v ´ertice denotado como

Nc.

Este proceso se nombra caracterizaci ´on del obst ´aculo (ver Algoritmo 4) y uno de los siguientes casos ocurre durante este proceso:

1. Si el robot no encuentra alg ´un marcador en el obst ´aculo o ´unicamente encuentra marca- dores iniciales con un id mayor al suyo, entonces Nc contiene las bitangentes hacia los

posibles obst ´aculos por explorar. Cuando el robot rodee el obst ´aculo recoge su marcador inicial y coloca uno gen ´erico indicando que todas las bitangentes asociados al obst ´aculo han sido detectadas. La informaci ´on deNcse comparte con otros robots en el v ´ertice inicial

provocando la actualizaci ´on del ´arbol en cada robot.

2. Si el robot encuentra un marcador gen ´erico o un marcador inicial con un id menor al suyo entonces el robot regresa al v ´ertice inicial y recoge su marcador inicial. Si el robot es el ´unico miembro del equipo y en su registro faltan obst ´aculos por explorar, sigue visit ´andolos, de otra forma, el robot se apaga o regresa al obst ´aculo inicial.

Algoritmo 4Caracterizaci ´on del obst ´aculo

Entrada: Un ambiente desconocidoE, un robotrs, una bitangente de llegadagp,nodo padreque

es el nodo del ´ultimo obst ´aculo visitado. SeaNcel nodo del obst ´aculo actual.

SeaδOsel borde del obst ´aculo actual.

sig6=N ILentonces

El robot marca la bitangentegp que conduce al obst ´aculo anterior visitado.

fin si

El robotrscoloca su marcador inicialps en el v ´ertice en el que se encuentra.

repetir

rssigue∂Osy a ˜nade un elemento aNcpor cada bitangente detectada.

hasta queEncuentre un marcador gen ´erico, un marcador inicial con un id menor al dersops

si psfue encontradoentonces

rsrecoge su marcador inicial y coloca un marcador gen ´erico.

si no

Nc←N IL

rsse dirige a la bitangente de partida y toma su marcador inicial.

fin si

regresar Nc

Una vez caracterizado el obst ´aculo, se sabe cuales son los posibles obst ´aculos que ser ´an explo- rados, la idea es distribuirlos entre los miembros del equipo. La regla para realizar la asignaci ´on de los elementos delNcse basa en lo siguiente:

1. Si el n ´umero de elementos deNc es menor a la cantidad de miembros del equipo, este se

distribuye por cada elemento deNctal quen=|Nc|k+ldondek >0y0≤l < n. El n ´umero

de nuevos equipos que se forman est ´a dado por la cardinalidad deNc. A cada equipo nuevo

se le asigna un elemento deNc.

2. En el caso contrario, los elementos deNc se dividen entre los miembros del equipo, por lo

le asigna un elemento deNc.

El Algortimo 5 describe la creaci ´on de los equipos y la asignaci ´on de los obst ´aculos a explorar. Como se observa, cada equipo repetir ´a recursivamente la exploraci ´on, Algoritmo 6.

Algoritmo 5Navegaci ´on del obst ´aculo

Entrada: Un ambiente desconocidoE, un equipoRconnrobots y una listaNcde obst ´aculos por

visitar.

Sea|Nc|el n ´umero de obst ´aculos por visitar.

si|Nc|< nentonces

Seak, l∈Z+tal quen=|N

c|k+ldonde k >0y0≤l < n

Los nuevos equipos son{Ri}

|Nc|

i=1 dondek≤ |Ri| ≤k+ 1y son una partici ´on deR

parai= 0to|Nc|hacer

El i- ´esimo elemento de|Nc|es asignado al equipoRi

Seages la bitangente para legar al i- ´esimo obst ´aculo enNc

El equipoRiviaja a trav ´es de la bitangenteg

Exploraci ´on obst ´aculos indistinguible(E,Ri,g,Nc)

fin para si no

Seak, l∈Z+tal que|N

c|=nk+ldonde k >0y0≤l <|Nc|

Los nuevos equipos sonR,{Ni}ni=1dondek≤ |Ni| ≤k+ 1y son una partici ´on deNc

para todori∈Rhacer Nise agrega a la pila deri

risaca un elemento de su pila y recorre la bitangenteghasta alacanzar el nuevo obst ´aculo.

Exploraci ´on obst ´aculos indistinguible(E,{ri},g,Nc)

fin para fin si

El algoritmo de exploraci ´on (ver Algoritmo 6), primeramente selecciona el robot con id m ´as peque ˜no del equipo, al inicio el robot se encuentra en un v ´ertice del obst ´aculo, por lo que deter- mina si este se encuentra marcado, si contiene una marca, agrega informaci ´on referente al nodo anterior, la bitangente para llegar al obst ´aculo y la lista de los posibles obst ´aculos que faltan por explorar. Si el equipo es solamente un robot este verifica si en la pila donde lleva el registro de los obst ´aculos que no ha visitado esta vac´ıa, si lo est ´a, no tiene nada mas que hacer y se apaga. De otro modo tiene que sacar un elemento de la pila y realizar la exploraci ´on sobre ese obst ´aculo.

Algoritmo 6Exploraci ´on obst ´aculos indistinguible

Entrada: Un ambiente desconocido E, un equipo R con n robots localizados en un v ´ertice del obst ´aculo, la bitangentegy elnodo padrey una listaNcde obst ´aculos por visitar.

Seleccionar el robotrs con el id menor deR

siEl v ´ertice esta marcadoentonces Agregar Nc(nodo padre, g, N IL)

sin= 1y la pila dersno est ´a vac´ıaentonces rssaca un elemento de su pila (q)

rsviaja al obst ´aculo que le corresponde aq rsrodea el obst ´aculo

rsviaja a trav ´es de la bitangente deq hasta alcanzar el siguiente obst ´aculo.

Seabla bitangente quers utiliz ´o para alcanzar un nuevo obst ´aculo

Exploraci ´on obst ´aculos indistinguible(E,{ri},b,nodo padredeq)

si no

Apagar todos los robots enR

fin si fin si

SeaNcel conjunto de bitangentes del obst ´aculo actual Nc←Caracterizaci ´on del obst ´aculo(E,rs,g,nodo padre)

Agregar Nc(nodo padre, g, Nc)

siNc6=N ILentonces

Navegaci ´on del obst ´aculo(E,R,Nc)

fin si

sin= 1y la pila dersno est ´a vac´ıaentonces rssaca un elemento de su pila (q)

rsviaja al obst ´aculo que le corresponde aq rsrodea el obst ´aculo

rsviaja a trav ´es de la bitangente deqhasta alcanzar el siguiente obst ´aculo.

Seabla bitangente quersutiliz ´o para alcanzar un nuevo obst ´aculo

Exploraci ´on obst ´aculos indistinguible(E,{ri},b,nodo padredeq)

fin si

Por otro lado si el v ´ertice en el que se encuentra el equipo no est ´a marcado significa que no ha sido explorado, por lo tanto, es necesario realizar la caracterizaci ´on (ver Algoritmo 4) y la informaci ´on resultante se agrega al nodo, junto con la bitangente de llegada y el nodo padre. La caracterizaci ´on del obst ´aculo puede dar una lista de bitangentes o una lista vac´ıa, si est ´a vac´ıa se entiende que el obst ´aculo ya ha sido explorado y lo que resta es verificar si s ´olo se trata de un robot para revisar los obst ´aculos de su pila hasta que esta quede vac´ıa, de otra manera navega hasta alcanzar un nuevo obst ´aculo (ver Algoritmo 5).

Un punto importante a resaltar es que los equipos una vez formados s ´olo comparten la infor- maci ´on con miembros del mismo equipo. Como no es posible distinguir los obst ´aculos entre s´ı, no puede efectuarse una estrategia debacktracking.

Documento similar