miércoles, 14 de abril de 2010

Simulación con agentes

Los estímulos que llevan a desarrollar e investigar este tema y que fueron presentados en la clase de apertura del caso 11 son los siguientes: video 1, video 2, video 3 y video 4.
El diagrama desarrollado a partir de la lluvia de ideas es el siguiente

Las metas establecidas se describen a continuación:

Modelos basados en agentes (Agent-based models)

¿ Qué son los agentes ?


El termino agente describe un software de abstracción, una idea o un concepto. El concepto de agente proporciona una herramienta para describir una ente animado que es capaz de actuar con cierto grado de autonomía con el fin de realizar tareas.
Esta definición se extiende a seres humanos, animales, robots informatizados y softbots. Un agente se puede definir de acuerdo a su comportamiento y este a su vez se determina de acuerdo a reglas simples y básicas de interacción con el medio ambiente y con otros agentes.

¿Qué son los modelos basados en agentes?

Son modelos computacionales usados para simular las acciones e interacciones de agentes autónomos con el fin de evaluar su efecto sobre el sistema completo.
Estos modelos simulan las acciones e interacciones simultaneas de multiples agentes con el fin de recrear y predecir la aparición de fenómenos complejos. La idea clave es que reglas de comportamiento simples generan comportamientos complejos.

Las tres ideas centrales de los modelos basados en agentes son los agentes sociales como objetos, aparición y complejidad.

Los sistemas en los que interactuan pueden crear complejidad como en el mundo real. Los agentes son:
  • inteligentes y con propósitos.
  • están situados en el espacio tiempo. Su ubicación, comportamiento y respuesta están confinados en algoritmos. El modelador hace los supuestos pensamientos más relevantes y luego observa los fenómenos que surgen de las interacciones de los agentes. a veces se observa un equilibrio, en ocasiones se encuentra un patrón.
¿Cuando hacer simulación basada en agentes?

Cuando se quiere capturar el comportamiento de agentes individuales y sus interconexiones.
Cuando se quiere probar como los cambios en el comportamiento individual afectan a la aparición de comportamientos del sistema completo.
Cuando se quiere explicar la aparición de sistemas con alto grado de patrones.
Cuando se quieren identificar momentos en el tiempo en el que algunas intervenciones han desarrollado extremas consecuencias.

Inteligencia artificial

La inteligencia artificial es la disciplina que se encarga de construir procesos que al ser ejecutados producen acciones o resultados que maximizan una medida de rendimiento determinada, lo cual implica tomar la mejor decisión, basándose en la secuencia de entradas percibidas y en el conocimiento almacenado.
El conocimiento puede ser cargado en el agente por su diseñador o puede ser aprendido por el mismo agente utilizando técnicas de aprendizaje.
Existen varios tipos de procesos válidos para obtener resultados racionales, que determinan el tipo de agente inteligente. Los principales tipos de procesos son:

Farid Fleifel Tapia describe a la IA como: "la rama de la ciencia de la computación que estudia la resolución de problemas no algorítmicos mediante el uso de cualquier técnica de computación disponible, sin tener en cuenta la forma de razonamiento subyacente a los métodos que se apliquen para lograr esa resolución.
Para completar esa definición, algunas definiciones no tan formales emitidas por diferentes investigadores de la IA que consideran otros puntos de vista son:
  • La IA es el arte de crear maquinas con capacidad de realizar funciones que realizadas por personas requieren de inteligencia. ( Kurzweil, 1990)
  • La IA es el estudio de cómo lograr que las computadoras realicen tareas que, por el momento, los humanos hacen mejor. (Rich, Knight, 1991).
  • La IA es la rama de la ciencia de la computación que se ocupa de la automatización de la conducta inteligente. (Lugar y Stubblefied, 1993).
  • La IA es el campo de estudio que se enfoca a la explicación y emulación de la conducta inteligente en función de procesos computacionales. (Schalkoff, 1990).
En la IA se puede observar dos enfoques diferentes:
  1. La IA concebida como el intento por desarrollar una tecnología capaz de proveer al ordenador capacidades de razonamiento similares a los de la inteligencia humana.
  2. La IA en su concepción como investigación relativa a los mecanismos de la inteligencia humana que se emplean en la simulación de validación de teorías.
Una descripción mas detallada puede encontrarse aquí.

Autómata celular

Son modelos matemáticos para sistemas dinámicos que evolucionan en pasos discretos. Se compone de una colección masiva de objetos básicos que interactúan localmente entre ellos.
Se puede describir a un autómata celular como un conjunto ordenado de objetos caracterizado por los siguientes componentes:
  • Una rejilla o cuadriculado de enteros (conjunto \mathbb{Z}) infinitamente extendida, y con dimensión d \in \mathbb{Z}^+. Cada celda de la cuadrícula se conoce como célula.
  • Cada célula puede tomar un valor en \mathbb{Z} a partir de un conjunto finito de estados k.
  • Cada célula, además, se caracteriza por su vecindad, un conjunto finito de células en las cercanías de la misma.
  • De acuerdo con esto, se aplica a todas las células de la cuadrícula una función de transición ( f ) que toma como argumentos los valores de la célula en cuestión y los valores de sus vecinos, y regresa el nuevo valor que la célula tendrá en la siguiente etapa de tiempo. Esta función f se aplica, como ya se dijo, de forma homogénea a todas las células, por cada paso discreto de tiempo.
Aprendizaje automático

Es una de las ramas de la inteligencia artificial y se encarga de desarrollar algoritmos que permita el aprendizaje de las computadoras. trata de crear programas capaces de generalizar comportamientos a partir de ejemplos. Se centra en el estudio de la complejidad computacional por lo que típicamente busca dar solución a problemas considerados como NP-duros.
Puede ser visto como un intento por automatizar el método científico.

Los diferentes algoritmos de aprendizaje automático se agrupan de acuerdo a su salida. Estos algoritmos son:

  • Aprendizaje supervisado. El algoritmo produce una función que establece una correspondencia entre las entradas y las salidas deseadas del sistema. Un ejemplo de este tipo de algoritmo es el problema de clasificación, donde el sistema de aprendizaje trata de etiquetar (clasificar) una serie de vectores utilizando una entre varias categorías (clases). La base de conocimiento del sistema está formada por ejemplos de etiquetados anteriores.
  • Aprendizaje no supervisado. Todo el proceso de modelado se lleva a cabo sobre un conjunto de ejemplos formado tan sólo por entradas al sistema. No se tiene información sobre las categorías de esos ejemplos.
  • Aprendizaje por refuerzo.El algoritmo aprende observando el mundo que le rodea. Su información de entrada es el feedback o retroalimentación que obtiene del mundo exterior como respuesta a sus acciones.
  • Transducción. Similar al aprendizaje supervisado, pero no construye de forma explícita una función. Trata de predecir las categorías de los futuros ejemplos basándose en los ejemplos de entrada, sus respectivas categorías y los ejemplos nuevos al sistema.
  • Aprendizaje multi-tarea. Métodos de aprendizaje que usan conocimiento previamente aprendido por el sistema de cara a enfrentarse a problemas parecidos a los ya vistos.

REPAST (Recoursive porous agent simulation toolkit)

Es una de las herramientas para simulación de agentes que esta disponible libremente. Toma muchoas conceptos del modelado de enjambres, parbadas, bancos dependiendo del caso.
Repast busca apoyar el desarrollo de modelos extremadamente flexibles de la vida los agentes sociales, pero no se limita a modelar las entidades sociales que viven solos.
En la pagina principal de repast dice:
"Our goal with Repast is to move beyond the representation of agents as discrete, self-contained entities in favor of a view of social actors as permeable, interleaved, and mutually defining; with cascading and recombinant motives. We intend to support the modeling of belief systems, agents, organizations, and institutions as recursive social constructions."
Repast 3 tiene una variedad de características incluyendo las siguientes:
  • Repast incluye una variedad de agente de plantillas y ejemplos. Sin embargo, la guía ofrece a los usuarios una flexibilidad total en cuanto a cómo especificar las propiedades y comportamientos de los agentes.
  • Repast está totalmente orientado a objetos.
  • Repast incluye un planificador de eventos discretos plenamente concurrente. Este programador es compatible tanto secuenciales y paralelos operaciones discretas evento.
  • Repast ofrece incorporado en los resultados de simulación de la tala y herramientas de representación gráfica.
  • Repast ha automatizado Monte Carlo marco de simulación.
  • Repast proporciona una gama de entornos de agente de dos dimensiones y visualizaciones.
  • Repast permite a los usuarios acceder de forma dinámica y modificar las propiedades de agente, ecuaciones de comportamiento de los agentes y propiedades del modelo en tiempo de ejecución.
  • Repast incluye librerías para algoritmos genéticos, redes neuronales, generación de números aleatorios, y matemáticas avanzadas.
  • Repast incluye funciones de sistemas de modelización dinámica.
  • Repast ha modelado harramientas de apoyo a redes sociales.
  • Repast ha integrado los sistemas de información geográfica (SIG) de apoyo.
  • Repast esta totalmente implementado en una variedad de lenguajes como Java y C #.
  • Repast modelos se pueden desarrollar en muchos lenguajes, incluyendo Java, C #, C++, Visual Basic.Net, Managed Lisp, Managed Prolog y Python scripting.
  • Repast está disponible en prácticamente todas las plataformas modernas, incluyendo Windows, Mac OS y Linux. La plataforma de apoyo incluye tanto los ordenadores personales y los grandes clusters de computadoras.
Se descargo repast y se ejecutaron los demos que están incluidos en la instalación.

  1. Se descaro repast 3, es decir, el archivo repast_3.0_installer.jar
  2. Se instaló en el sistema ubuntu mediante linea de comandos con la instrucción java -jar repast_3.0.installer.jar
  3. En el directorio "repast 3/repastj/ " se ejecuto la instrucción java -jar repastj.jar
  4. Abriendose la ventana principal de repast

















El ejemplo que se ejecuto es precisamente el marcado en la imagen, el llamado Heatbugs.




La siguiente imagen es de la ejecución marcado con los parámetros de la imagen a la derecha.


Otras imágenes sucesivas pero esta vez con modificando la constante de difusión de calor a 1.4 y el tamaño de la región de 100x100.























Otra corrida de la simulación.

























Mecánica estadística

Es la parte de la física que trata de determinar el comportamiento de un sistema formado por muchas partículas. La física estadística permite predecir el comportamiento termodinámico de sistemas macroscópicos a partir de consideraciones microscópicas de las partículas formantes, utilizando para ello herramientas estadísticas junto a leyes mecánicas.
La física estadística puede describir numerosos campos con una naturaleza estocástica (reacciones nucleares, sistemas biológicos, químicos, neurológicos, etc.).
En principio podríamos obtener toda la información necesaria sobre el comportamiento del sistema construyendo e integrando las ecuaciones del movimiento para todos los grados de libertad del sistema, sin embargo y debido al orden de magnitud del número de partículas en los sistemas macroscópicos (1025 partículas) tal enfoque es impracticable, ya que requeriría la resolución de un número increíblemente grande de ecuaciones diferenciales; no sólo eso, sino que introducir las condiciones iniciales de tal sistema sería imposible.

Entropía

El concepto de entropía fue introducido por primera vez por R. J. Clausius a mediados del siglo XIX. Clausius, ingeniero francés, también formuló un principio para la Segunda ley: "No es posible proceso alguno cuyo único resultado sea la transferencia de calor desde un cuerpo frío a otro más caliente". En base a este principio, Clausius introdujo el concepto de entropía, la cual es una medición de la cantidad de restricciones que existen para que un proceso se lleve a cabo y nos determina también la dirección de dicho proceso. Vamos ahora a hablar de las tres acepciones más importantes de la palabra entropía.

Una explicacion más detallada de entropía se encuentra aquí.

No hay comentarios:

Publicar un comentario