You are on page 1of 3

Experimento en NetLogo desde R: Robot recolector

de “Materiales” en zona focalizada ¿Es más


importante la cantidad o la calidad del robot?
Autor: Wilder Alex Inga López.

Resumen- La simulación basada en agentes tiene muchas


aplicaciones en el ámbito social y en sistemas complejos con NetLogo es una herramienta de fácil aprendizaje para
varios actores involucrados. Por otro lado, lo modelos que se realizar simulaciones basadas en agentes sin demasiada
construyen tienen muchos supuestos que deben ser probados
para llegar a cierto grado de confianza, además de poder sacar complejidad, así mismo existe el lenguaje R que es muy útil
conclusiones infiriendo o experimentando en base a dichos para trabajos estadísticos. Para el estudio que presentamos
modelos. Con el apoyo computacional hemos realizado este vamos a realizar el análisis de sensibilidad utilizando R con su
experimento utilizando un modelo basado en agentes y aplicando librería pse integrado con NetLogo, “ver [2]”. El objetivo es
el método de Latin Hypercube Sampling para analizar los identificar qué elementos impactan más en la búsqueda de
resultados del experimento. materiales en una zona específica como puede ser una
urbanización o complejo habitacional. En el modelo, se tienen
I. INTRODUCCIÓN como variables de ingreso:
Muchas veces nos encontramos ante situaciones que • Robots: cantidad de robots que se utiliza para la búsqueda
creemos obvias. Como puede ser el caso de esta situación en • Eficiencia: Asociada a la efectividad del robot al
la que anticipadamente podemos estar tentados a creer que en reconocer el material buscado.
una situación de búsqueda, si colocamos más agentes • no_of_samples: cantidad de materiales que se deben
buscadores entonces podremos resolver la situación en menor recolectar
tiempo. La pregunta ¿Es más importante la cantidad o la • no_of_obstacles: cantidad de obstáculos esparcidos en la
calidad del robot? se planteó cuando revisamos el modelo del zona de búsqueda
explorador de marte basado en una máquina de estados, El modelo, elaborado tomando como base el trabajo del Dr.
trabajado por el Dr. Ilias Sakellariou (Department of Applied Ilias Sakellariou “Communicating MARS Explorer”
Informatics, University of Macedonia). (Sakellariou, 2012), funciona en base a una máquina de
Planteado el problema a resolver, con el apoyo de estados elaborada para el robot-agente, en la figura 1 se
bibliografía del tema, se diseñó el experimento que finalmente presenta la máquina de estado adaptado al recolector-agente.
nos llevó a una respuesta interesante, que espero también el Al inicio todos los robots parten de cualquiera de los estados,
lector encuentre interesante. Para el experimento se utilizó el es decir el estado inicial puede ser el que este transportando
método de Latin Hypercube Sampling y el coeficiente de una muestra hallada, sin que esto afecte el número de muestras
correlación parcial para realizar el análisis de sensibilidad de que se debe hallar. Se considera una base en la cual se
los resultados. Pasamos a realizar una descripción detallada de recolectan todas las muestras, es decir luego que un robot halla
todo lo actuado. el material, debe transportarlo a la base, ubicada dentro de la
zona de búsqueda. En el código original en NetLogo se
considera una efectividad del 100% en el reconocimiento
II. DESCRIPCIÓN DEL MODELO cuando el robot ubica una muestra; para el estudio se ha
considerado que este debe ser parte de las variables de estudio,
de esta manera el código adicional es el siguiente:

to pick-samples
;;;
with-local-randomness [ if (random 100) < Eficiencia
[set color red
ask samples-here [die]] ]
end
Es decir, solo si la eficiencia del robot es alta el tiempo de
búsqueda será menor.

Fig 1.- Diagrama de estados del robot recolector. Modificado respecto al


diagrama original presentado por el Dr. Ilias Sakellariou (Department of
Applied Informatics, University of Macedonia).
III. PLANTEAMIENTO EXPERIMENTAL CON DESCRIPCIÓN NLCommand("setup") # call the setup routine
DE LA METODOLOGÍA Y EL LHS / PRCC for (i in 0:200) {
NLDoCommandWhile("any? samples", "run-experiment");
ret <- NLReport("ticks")
La interacción entre R y NetLogo lo trabajamos tomando }
como base los ejemplos que trae la librería RNetLogo del return (ret)
lenguaje R, y para el análisis de sensibilidad del experimento }
se utilizó Latin Hypercube Sampling/Partial Rank Correlation
Coefficient (LHS/PRCC) que muestra ser una herramienta Las primeras pruebas con hasta 10 muestras tomaron
muy útil para analizar situaciones inciertas y explorar el aproximadamente entre 20 y 25 minutos, en una PC con un
comportamiento de parámetros dentro de un modelo, “ver CPU con procesador i5 y 8Gb de RAM, lo cual nos daba una
[3]”. R, como lenguaje estadístico, tiene facilidades para idea de la cantidad de horas que se debía esperar al trabajar las
realizar diversos tipos de análisis, en este caso en particular iteraciones necesarias para llegar a resultados confiables.
también para el análisis LHS/PRCC a través del uso de la Finalmente trabajamos con 200 como el tamaño de la muestra
librería pse, que nos ayuda a focalizar nuestros esfuerzos en el para nuestro experimento, con un tiempo final de
modelo, el experimento y los resultados. aproximadamente 4 horas de ejecución.
Para el uso de las dos librerías se debe incluir dentro del
código en lenguaje R los siguientes comandos: IV. RESULTADOS

library(rJava) En la figura 2 se presenta un extracto de los resultados de


library(rNetLogo)
la matriz LHS,
library(pse)
library(Rarity)
Nro Resultado robots no_of_samples no_of_obstacles Eficiencia
Para los que desean realizar experimentos similares, los 1 2580 50 60 30 86.875
inconvenientes pueden estar con la versión de Java y si se está 2 8177 41 99 5 70.125
trabajando con una máquina de 64 bits, es importante revisar. 3 3863 34 63 5 73.625
Para el experimento, se definieron como variables de 4 2697 37 59 6 97.125
estudio: 5 8030 43 81 4 61.125
. . . . . .
• Robots: cantidad de robots que se utiliza para la búsqueda . . . . . .
• Eficiencia: Asociada a la efectividad del robot al . . . . . .
reconocer una muestra de metal. 197 6483 44 95 36 93.375
Adicionalmente se añadieron el número de muestras y la 198 7327 48 82 38 59.625
cantidad de obstáculos para establecer cuan relacionado están 199 5245 42 54 25 56.875
200 4083 34 64 14 72.875
las variables de estudio con el modelo:
Fig 2.- tabla de la matriz LHS y sus resultados.
• no_of_samples: cantidad de materiales que se deben
recolectar Para cada experimento se controla el número de iteraciones
• no_of_obstacles: cantidad de obstáculos esparcidos en la que debe ejecutar el modelo hasta encontrar los materiales
zona de búsqueda buscados, que finalmente nos da una idea directa respecto al
tiempo que puede tomar este tipo de búsquedas.
El uso del método LHS/PRCC requiere que se defina la
distribución de probabilidad para cada uno de las variables; en
el estudio cada uno de las variables tiene un comportamiento
de distribución uniforme, con diferencias en los límites:

Robots: min=20, max=50


Eficiencia: min=50,max=100
no_of_samples: min=40, max=100
no_of_obstacles: min=0,max=40

El uso de la librería pse nos facilita el uso del método


LHS/PRCC, para su uso debemos establecer claramente la
secuencia de pasos que se deben realizar para cada una de los
muestreos LHS que se va a ejecutar como parte del
procedimiento. En el código en lenguaje R se realiza la Fig 3.- Gráfica empírica de la distribución de las iteraciones que toma el
ejecución del modelo en Netlogo, hasta que todas las muestras modelo hasta que se encuentren todos los metales.
se hayan encontrado. Para el experimento el código utilizado
es: La distribución de probabilidad del tiempo que puede
oneRun2 <- function (robots,no_of_samples, no_of_obstacles, tomar la búsqueda se gráfica en la figura 3, expresada en ticks
Probabilidad ) { según la terminología de NetLogo. Los rangos van desde
NLCommand("setup") # call the setup routine 1,600 hasta 14,000 ticks.
NLCommand("set robots ", robots, "setup")
NLCommand("set no-of-samples ", no_of_samples)
NLCommand("set no-of-obstacles ", no_of_obstacles)
NLCommand("set Probabilidad ", Probabilidad)
REFERENCIAS
[1] Ilias Sakellariou, " Turtles as State Machines", in Proceedings of the 4th
International Conference on Agents and Artificial Intelligence (
ICAART 2012), Volume 2, pages 373-378 Villamoura Portugal, Feb
2012
[2] Chalom, A.; Mandai, C.Y. & Prado, P.I.K.L.. “Sensitivity analyses: a
brief tutorial with R package pse”, version 0.1.2. October 15, 2013
[3] Gomero, Boloye, "Latin Hypercube Sampling and Partial Rank
Correlation Coefficient Analysis Applied to an Optimal Control
Problem. " Master's Thesis, University of Tennessee, 2012.
Fig 4.- Coeficiente de correlación parcial entre el nro de iteraciones y [4] Nuñez. Jorge & Barón Jorge, “Técnicas avanzadas en el análisis de
cada una de las siguientes variables: nro. de robots, nro de metales, nro de grandes modelos computacionales” Instituto CEDIAC, Facultad de
obstáculos y la eficiencia del robot Ingeniería, Universidad del Cuyo, Mendoza, Argentina. 1999
[5] A. Chalom and P.I.K.L. Prado, Parameter space exploration of ecological
El coeficiente de correlación parcial nos da la medida de models, arXiv:1210.6278 [q-bio.QM], 2012.
relación lineal entre la variable de estudio y la variable
resultado (tiempo que los robots se demoran en encontrar
todas las muestras). La fórmula matemática es la siguiente:

Cov(xj, y)
𝑟xj, y =
√Var(xj)Var(y)

Los resultados se muestran gráficamente en la figura 4 para


las cuatro variables de estudio. Adicionalmente los
Coeficientes de inclinación parcial hallados son:

robots 0.51812901
no_of_samples 0.91474563
no_of_obstacles -0.01657464
eficiencia -0.93478058

Corroborando lo que se muestra en la figura 4. Los


resultados arrojan que en una búsqueda focalizada la cantidad
de robots y la cantidad de obstáculos son secundarios para el
tiempo que puede tomar la búsqueda de materiales o muestras.

V. CONCLUSIONES
El método LHS se enfoca en escoger correctamente las
muestras que finalmente incide en tener menos iteraciones en
los experimentos con resultados confiables, para ello es
importante definir la distribución de probabilidades de las
variables de estudio. Con ello, la cantidad de ejecuciones del
modelo se reduce en comparación al método de Montecarlo.
Respecto al experimento, en una zona focalizada la
cantidad de robots no influye considerablemente en el tiempo
de búsqueda, es mejor invertir en un buen robot, confiable a la
hora de detectar una muestra, antes que en la cantidad.
Finalmente, como era de esperar, la cantidad de muestras
a encontrar influye directamente en el tiempo que va a
tomar la búsqueda, más no así la cantidad de obstáculos
que se deben eludir.

You might also like