Visual Bots

20
1 UNIVERSIDAD MAYOR DE SAN ANDRES Facultad de Ciencias Puras y Naturales Postgrado en Informática Agentes Inteligentes “VisualBots” Presentado a: Dr. Daniel Gálvez L. Presentado por: Roger Saravia A. La Paz, Bolivia - Julio de 2007

description

visualbots

Transcript of Visual Bots

Page 1: Visual Bots

1

UNIVERSIDAD MAYOR DE SAN ANDRES

Facultad de Ciencias Puras y Naturales

Postgrado en Informática

Agentes Inteligentes

““VViissuuaallBBoottss””

Presentado a: Dr. Daniel Gálvez L.

Presentado por: Roger Saravia A.

La Paz, Bolivia - Julio de 2007

Page 2: Visual Bots

2

Resumen

En este trabajo se desarrollará el cómo simular agentes inteligentes mediante un software denominado VisualBots que se instala en la plataforma Excel. Primero, se hará una introducción preliminar a lo que son los VisualBots y para qué sirven. Luego, se hará una revisión de la teoría que respalda a los agentes inteligentes; en esta parte se tendrá una introducción a un modelo de optimización mediante colonia de hormigas. Posteriormente, se expondrá paso a paso la simulación de una tarea mediante agentes usando la aplicación VisualBots y sus detalles. Se mostrarán ejemplos que vienen incluidos con el VisualBots pero también se propondrá uno nuevo. Finalmente, se harán algunas conclusiones con relación a la experiencia VisualBots y algunas recomendaciones para sacar provecho de la misma.

Page 3: Visual Bots

1

1 Introducción......................................................................................................................................... 2

2 Objetivos ............................................................................................................................................. 2

2.1 Objetivo General ......................................................................................................................... 2

2.2 Objetivos Específicos .................................................................................................................. 2

3 Marco Teórico (Síntesis) ..................................................................................................................... 3

3.1 Sistemas Multi-Agentes (MAS) ................................................................................................... 3

3.2 Swarm intelligence (SI) ............................................................................................................... 3

3.3 Colonia de Hormigas ................................................................................................................... 4

3.3.1 Hormigas Artificiales ............................................................................................................ 4

4 Desarrollo Teórico-Práctico ................................................................................................................. 5

4.1 El simulador VisualBots ............................................................................................................... 5

4.2 El modelo de objetos de VisualBots ............................................................................................ 5

4.3 Para Usar y Aprender .................................................................................................................. 6

4.4 Características del VisualBots ..................................................................................................... 7

4.5 Software ...................................................................................................................................... 7

4.5.1 Simulador VisualBots .......................................................................................................... 7

4.5.2 Documentación ................................................................................................................... 8

4.5.3 El Componente para Excel .................................................................................................. 8

4.5.4 Proyectos de Ejemplo ......................................................................................................... 8

4.5.5 Sobre la Instalación ............................................................................................................. 8

4.5.6 Sobre los Macros ................................................................................................................ 9

4.5.7 Sobre la Desinstalación ....................................................................................................... 9

4.6 Dos Cuestiones Típicas .............................................................................................................. 9

4.7 Empezando a trabajar con el VisualBots .................................................................................... 9

4.7.1 Insertando el VisualBots ...................................................................................................... 9

4.7.2 Usando el Simulador VisualBots ....................................................................................... 10

4.7.3 Creando una primera aplicación:....................................................................................... 11

4.8 Proyectos de muestra ............................................................................................................... 14

4.8.1 Árbol de Fractales (Categoría: Matemáticas y Física) ...................................................... 14

4.8.2 El hombre viajero vendedor (Categoría: Optimización) ..................................................... 15

4.8.3 Bandadas (Categoría: Biología) ....................................................................................... 16

5 Conclusiones..................................................................................................................................... 16

6 Referencias ....................................................................................................................................... 17

Apéndice A – Enlaces Complementarios .................................................................................................. 18

Page 4: Visual Bots

2

1 Introducción

VisualBots para Excel es una herramienta educacional para la exploración del mundo de los sistemas multi-agente y su correspondiente comportamiento. Sistemas del mundo real como las bandadas de pájaros, la formación de cristales, las tendencias de la moda y el modo de trabajo de las hormigas, son ejemplos de comportamiento de grupo resultante de interacciones colectivas entre muchos individuos que se dirigen a sí mismos, o agentes. Un aspecto impresionante de este fenómeno es cómo comportamientos muy complejos y patrones pueden surgir de la interacción de los agentes que a su vez solo siguen sencillas reglas o instrucciones. Estos agentes hacen las cosas estando desprevenidos de las consecuencias de sus acciones con relación al gran esquema o al cuadro que generan.

El estudio del comportamiento emergente se extiende a un amplio de diferentes campos incluyendo la biología molecular, la química, la termodinámica, las ciencias sociales y políticas, la economía, el arte, las ciencias de la computación y la educación. A causa de la importancia del gran impacto de estos sistemas y de cómo han venido moldeando el mundo que nos rodea, estos se han convertido en un gran cuerpo de conocimiento de investigación que se enfoca en como modelar estos sistemas en computadoras con el fin de entenderlos mejor.

2 Objetivos

2.1 Objetivo General

Simular el comportamiento colectivo multi-agente mediante la aplicación del software libre VisualBots.

2.2 Objetivos Específicos

Explicar las características y el funcionamiento de VisualBots.

Explorar algunos proyectos multi-agente en VisualBots.

Page 5: Visual Bots

3

3 Marco Teórico (Síntesis)

3.1 Sistemas Multi-Agentes (MAS)

Agentes autónomos trabajan juntos para resolver los problemas. Características:

Los agentes definen de forma dinámica las tareas que realizarán.

No hay un sistema de control global.

Computación asincrónica.

Datos descentralizados.

Pero: lo realmente interesante es el desarrollo de comunidades de agentes.

MAS - Una Definición en Computación: Es un sistema compuesto por varios agentes colectivamente capaces de alcanzar sus objetivos y difíciles de lograr por un agente individual o un sistema monolítico.

MAS - Una Definición en Computación: Un MAS puede manifestar una organización propia y complejos comportamientos aún cuando las estrategias individuales de los agentes que la conforman sean simples.

3.2 Swarm Intelligence (SI)

Es una técnica de inteligencia artificial basada en el estudio del comportamiento colectivo en sistemas descentralizados y autoorganizados.

La expresión "swarm intelligence" fue introducida por Beni & Wang en 1989 en el contexto de los sistemas robóticos celulares.

Los sistemas SI son comúnmente construidos con una población de agentes simples interactuando localmente con otros agentes y su entorno.

No hay una estructura centralizada de control dictando como los agentes individuales deben comportarse; las interacciones locales entre tales agentes hacen emerger el comportamiento global.

Un enjambre (swarm) puede ser definido como una colección estructurada de organismos (agentes) que interactúan.

La inteligencia no está en los individuos sino en el colectivo.

Page 6: Visual Bots

4

Ejemplos:

Colonias de Hormigas (Ant Colony Optimization)

Manada de pájaros (Bird flocks)

Optimización de enjambre de partículas (Particle swarm optimization)

Búsqueda estocástica de difusión (Stochastic Diffusion Search)

3.3 Colonia de Hormigas

Las colonias de hormigas, y más generalmente las sociedades de insectos, son sistemas distribuidos que, a pesar de la simplicidad de sus individuos, presentan una organización social altamente estructurada.

3.3.1 Hormigas Artificiales

El modelo ACO (Ant Colony Optimization) es un modelo computacional que ofrece las técnicas algorítmicas más exitosas y ampliamente reconocidas basadas en el comportamiento de las hormigas.

La idea básica del modelo ACO es usar una forma de comunicación indirecta (artificial stigmergy) para coordinar sociedades de agentes artificiales para resolver problemas de optimización discretos.

Este modelo asume que la cantidad de feromona sobre un camino es proporcional a la cantidad de hormigas que usaron el mismo en el pasado.

Expresa cuan deseado ha sido ese trayecto.

Cierta cantidad de feromona se evapora con el tiempo.

Aplicaciones de ACO:

TSP (problema del viajero vendedor)

QAP (problema de asignación cuadrática)

Ruteo en redes de comunicación

Selección de atributos

Page 7: Visual Bots

5

4 Desarrollo Teórico-Práctico

4.1 El simulador VisualBots

El simulador VisualBots puede ser usado para crear mundos virtuales a partir de agentes programables que interactúan entre ellos a través del tiempo. El simulador es un control ActiveX que expone objetos, métodos y propiedades del VisualBots pero que son usados dentro el Visual Basic para Aplicaciones (VBA) incluido en el Excel. El simulador consiste en una ventana gráfica que sirve para ver como evoluciona la simulación a través del tiempo. La interfaz es fácil de usar para activar, monitorear o parar las simulaciones.

4.2 El modelo de objetos de VisualBots

VisualBots emplea un diseño orientado a objetos. El modelo de objetos de VisualBots es jerárquico estando en el nivel más alto el objeto “World”. El segundo nivel a continuación del objeto World viene a ser una colección de agentes. Cada una de esas colecciones expone un tercer nivel consistente en agentes individuales. Existen dos tipos de agentes: Uno de ellos es el objeto movible llamado “Bot”. Cualquier número de Bots puede existir e interactuar dentro la simulación. El otro tipo es el “Cell” (celda) que es un objeto del tipo estacionario que ocupa un área rectangular. Los “Cells” están organizados en un patrón regular y tipo red y cubren todo el espacio de simulación. Las características (propiedades) de los Bots y Cells, y las acciones (métodos) pueden ser controladas en la colección y a nivel individual. El modelo de objetos también incluye una funcionalidad para el control de simulación, la definición del sistema de coordenadas y propiedades definidas por el usuario para los agentes, además de soporte para operaciones matemáticas, generación de números aleatorios y administración del color.

A continuación, el diagrama de la jerarquía de objetos de VisualBots.

Page 8: Visual Bots

6

4.3 Para Usar y Aprender

Una de las ventajas de tener el modelo de objeto del VisualBots en Visual Basic radica en la facilidad con la cual los agentes pueden ser manipulados dentro de un ambiente orientado a la programación de objetos. El editor del Visual Basic, el explorador de objetos y otras tecnologías propias pueden hacer que la experiencia de aprendizaje y uso con el modelo de objetos VisualBots sea realmente provechosa.

Page 9: Visual Bots

7

4.4 Características del VisualBots

El VisualBots para Excel incluye las siguientes características:

Interfaz gráfica fácil de usar para controlar y ver simulaciones.

Buena disponibilidad de recursos – más de 200 objetos, métodos y propiedades.

Sintaxis de programación orientada a objetos (así como la del Visual Basic).

Documentación entendible y a la mano.

Manipulación de colecciones de agentes.

Sistema de coordenadas definido por el usuario.

Topologías de simulación rectangulares, tipo toroide y sin frontera.

Algoritmo internos rápidos.

Poderosa administración de color.

Propiedades definidas por el usuario.

Herramientas para probar y monitorear la simulación.

Posibilidad de uso de las funcionalidades heredadas por el Excel.

4.5 Software

El paquete VisualBots para Excel se compone de lo siguiente:

4.5.1 Simulador VisualBots

Es el simulador VisualBots programable. Debe ser insertado en la hoja de cálculo antes de que pueda ser usado para crear y correr simulaciones. Este simulador ha sido programado en el Visual Basic que viene junto al Excel.

Page 10: Visual Bots

8

4.5.2 Documentación

Incluye una extensa referencia del modelo de objetos y una guía del simulador VisualBots. La ayuda puede ser accedida desde el simulador y también está enlazada al explorador de objetos del editor del Visual Basic.

4.5.3 El Componente para Excel

El Componente para Excel provee una manera fácil de insertar el simulador VisualBots en la hoja de cálculo. Este componente crea un menú sobre la barra estándar. Este componente puede ser activado o desactivado mediante el menú Herramientas/Componentes. La instalación del componente es opcional.

4.5.4 Proyectos de Ejemplo

Se trata de un conjunto de ejemplos de proyectos de simulación para demostrar las características del simulador VisualBots. Se ha establecido que los ejemplos son muchas veces la vía más rápida de aprender a programar el VisualBots.

4.5.5 Sobre la Instalación

Para instalar el VisualBots para Excel solo hay que ejecutar el archivo de instalación y seguir las instrucciones. Los requerimientos de sistema son:

Microsoft Excel 2000, 2002 (XP), 2003 (XP) o 2007.

MS Internet Explorer 4 o posteriores

Procesador Pentium equivalente o superiores

Al menos 128 MB de memoria RAM.

Un adaptador de video y un monitor con al menos 800x600 de resolución.

Page 11: Visual Bots

9

4.5.6 Sobre los Macros

Para ejecutar VisualBots se deben habilitar completamente los macros en el Excel. Así:

Ir al menú Herramientas/Opciones

Elegir la ficha Seguridad

Apretar botón Seguridad de Macros

En la ficha Nivel de Seguridad elegir Bajo

En la ficha Editores de Confianza activar todas las casillas “Confiar en...”

4.5.7 Sobre la Desinstalación

Ir al Control Panel

Elegir Añadir/Quitar Programas

Seleccionar VisualBots

4.6 Dos Cuestiones Típicas

¿Qué se puede hacer con VisualBots?

VisualBots puede ser usado para mostrar o enseñar sobre los conceptos del comportamiento grupal. El VisualBots es una herramienta para que los investigadores puedan rápidamente explorar los conceptos del comportamiento grupal.

¿VisualBots puede ser usado como parte de otro programa en Visual Basic?

No. El simulador VisualBots ha diseñado para funcionar en Microsoft Excel solamente.

4.7 Empezando a trabajar con el VisualBots

4.7.1 Insertando el VisualBots

Antes de empezar a trabajar con el simulador VisualBots, este debe ser insertado en la hoja de cálculo de la siguiente manera: En el menú VisualBots seleccione “Insert Simulator” y el simulador VisualBots aparecerá sobre la hoja de cálculo.

Page 12: Visual Bots

10

4.7.2 Usando el Simulador VisualBots

El simulador VisualBots consiste en una ventana gráfica para ver la evolución del proceso a través del tiempo y también de una interfaz fácil de operar para arrancar, monitorear o parar las simulaciones. La ventana es la siguiente:

Page 13: Visual Bots

11

4.7.3 Creando una primera aplicación:

Paso 1: Insertar el simulador VisualBots (vea más arriba).

Paso 2: Creando un nuevo proyecto de simulación.

Apretar el botón “New Project” de la ventana del simulador:

Page 14: Visual Bots

12

El editor del Visual Basic emergerá y mostrará el siguiente código a manera de plantilla:

Paso 3: Insertando Código de Simulación

El procedimiento del evento OnSimBegin es ejecutado una sola vez al principio de cada simulación.

El procedimiento del evento OnSimStep se ejecuta en cada paso de la simulación.

El procedimiento del evento OnSimEnd es ejecutado al final de la simulación.

El siguiente código de prueba hace que el simulador cree 10 objetos Bot, ajusta algunas de sus propiedades de apariencia e instruye al simulador que mueva tales objetos Bot de manera aleatoria durante cada paso de ejecución del simulador:

Private Sub World1_OnSimBegin(ByVal World As World, ByVal Bots As Bots, ByVal Cells As Cells)

Dim Bot As Bot, Cell As Cell

World.Screen.FadeMode = True

Bots.Create 10

Bots.Shape = vbtArrowhead

Bots.Size = 4

Bots.Pen.ColorRand

Page 15: Visual Bots

13

Bots.Pen.Down

End Sub

Private Sub World1_OnSimStep(ByVal World As World, ByVal Bots As Bots, ByVal Cells As Cells)

Dim Bot As Bot, Cell As Cell

Bots.TurnRand -15, 15

Bots.Step 1

End Sub

Private Sub World1_OnSimEnd(ByVal World As World, ByVal Bots As Bots, ByVal Cells As Cells)

Dim Bot As Bot, Cell As Cell

End Sub

Paso 4: Corriendo la simulación

Una vez se retorne a la ventana del simulador debe apretarse la flecha verde a la derecha denominada “Play Simulation”:

Page 16: Visual Bots

14

Paso 5: Finalizando la simulación

Para finalizar la simulación pulse el botón del cuadrado verde denominado “End Simulation”.

4.8 Proyectos de muestra

Ya se dijo que una de las maneras más rápidas para aprender el simulador VisualBots es por medio de la inspección de los proyectos de muestra. A continuación una descripción de los proyectos de muestra más importantes que se incluyen con el simulador.

4.8.1 Árbol de Fractales (Categoría: Matemáticas y Física)

Genera un árbol de fractales. El código es relativamente sencillo pese a que los resultados son realmente complejos.

Page 17: Visual Bots

15

4.8.2 El hombre viajero vendedor (Categoría: Optimización)

Este proyecto explora el problema del viajero vendedor (TSP en inglés). Hay un algoritmo en base a la optimización mediante la colonia de hormigas o ACO.

Page 18: Visual Bots

16

4.8.3 Bandadas (Categoría: Biología)

Esta es una simulación basada en el modelo “Boids” de bandadas de Craig Reynolds. Este proyecto en VisualBots es un ejemplo del trabajo de interacción de espacios.

5 Conclusiones

El VisualBots confirma la teoría de que los agentes individuales (los cuales no tienen una tarea concreta que resolver) pueden crear interesantes desarrollos cooperativos que a su vez pueden ser muy útiles en el estudio de otras ciencias.

Page 19: Visual Bots

17

El VisualBots es una prueba de la posibilidad de simulación de los agentes individuales; no obstante, esta simulación involucra algunas pequeñas diferencias con la realidad que deben mencionarse:

Tienen alguna memoria.

No son completamente ciegas.

Viven en un ambiente donde el tiempo es discreto.

El hecho de que el VisualBots tenga modelados los agentes individuales en una jerarquía de objetos con propiedades, métodos y otros, permite su fácil programación en Visual Basic y por consiguiente su rápida aplicación profesional. Además, su inclusión en Excel podría abrir las puertas para la generación de grandes simulaciones que podrían intercambiar información con las celdas de las hojas de Excel.

6 Referencias

MICHAEL WAITE “VisualBots for Excel” - Visual Programming for Agent-Based Simulation. [En red]. Disponible en: http://www.visualbots.com; 2006

DANIEL GÁLVEZ L. "Agentes Inteligentes". Presentación PowerPoint. Postgrado en Informática. UMSA. LP-BOL. 2007.

PETER NORTON "New Inside The PC". Second Edition. SAMS. Indiana-USA. 2002.

Page 20: Visual Bots

18

Apéndice A – Enlaces Complementarios

http://www.red3d.com/cwr/boids/

Un sitio Internet para explorar conductas emergentes, autómatas celulares y sistemas multi-agente. Craig Reynolds era el creador de Boids, un simulador famoso. Su modelo de Boids ha sido la base para los efectos especiales en las películas como en 1992 Batman Returns dónde mueven enjambres y bandadas o el pingüino era simulado. El Boids en Internet tiene muchos enlaces otros sitios interesantes, libros y papeles.

http://serendip.brynmawr.edu/

Un lugar de recreo interactivo para aprender y compartir el conocimiento sobre los asuntos del Cerebro y Conducta, Sistemas Complejos, Genes y Conducta, la Ciencia y Cultura, y Educación de la Ciencia. Cada una de estas áreas contiene las exhibiciones interactivas, artículos, enlaces a otros recursos, y un área del foro para los comentarios y discusión.

http://www.casos.cs.cmu.edu/index.html

El Análisis Computacional de Sistemas Sociales y Orgánicos de Carnegie Mellon, es un grupo de investigación enfocado en desarrollar un entendiendo bueno de los principios fundamentales de organizar, coordinar, manejar y desestabilizar sistemas de agentes adaptables inteligentes (humanos y artificiales).

http://www.calresco.org/

Complexity & Artificial Life Research Concept es un sitio dedicado a promover los aspectos más amplios de las complejidades en las ciencias de la educación. Se consideran las síntesis y la integración de las teorías en los puntos de vista de la corriente principal de artes, filosofía y ciencia.