miércoles, 22 de mayo de 2013

Evidencia 10: Caos

Introducción

Los sistemas caóticos modifican en gran medida su salida variando minimamente sus datos de entrada. Se les llama caóticos porque sus resultados aparentar ser aleatorios.

Sistema caótico: El Mar


El movimiento de los mares es aparentemente aleatorio. Las olas de mar siempre lucen distintas y a pesar de que las corrientes marítimas siguen un curso determinado estas no son totalmente definidas. El mar reacciona a distintos factores como lo son la temperatura, la presión atmosférica, las tormentas, la rotación de la tierra. Unos pequeños cambios en alguno de estos factores puede afectar al comportamiento final del mar en alguna zona específica .

Justificación

Presenta esta conducta debido a los muchas variables que controlan el comportamiento de los mares. Una pequeña modificación conlleva a un gran cambio, Es un sistema inmenso y es muy difícil predecir su comportamiento al 100%. Los sistemas tan grandes y con muchas variables de por medio pueden presentar comportamientos caóticos.

Conclusión

Los sistemas caóticos no presentan conductas necesariamente aleatorias como muchas veces se piensa. Son mas bien sistemas demasiado sensibles a los cambios de sus variables iniciales. Nos demuestra la gran gama de posibilidades que se pueden alcanzar con unas pequeñas modificaciones. Son difíciles de comprender y por eso mismo hay un gran campo de estudio sobre ellos.

jueves, 16 de mayo de 2013

Evidencia 12: Sistemas Multiagente | JADE

1. ¿Que significa "JADE"?

Un agente JADE consiste en: - Definir una clase Java que representa al agente (la cual debe heredar de la clase jade.core.Agent). - Implementar los comportamientos que va a manifestar. Un agente JADE cumple las siguientes características:
  • Tiene un nombre único en el entorno de ejecución. 
  • Se implementa como un único hilo de ejecución (single-threaded). 
  • Tiene un metodo de inicio (setup) y otro de fin (takeDown). 
  • El método protegido setup() sirve para inicializar el agente incluyendo instrucciones que especificarán la ontología a utilizar y los comportamientos asociados al agente. Se invoca al comenzar la ejecución del agente. 
  • El método protegido takeDown() sirve para liberar recursos antes de la eliminación del agente. Este método es invocado cuando se realiza una llamada al método doDelete(), que es el que realmente da por finalizada la ejecución del agente. 
  • Ambos métodos deben ser sobreescritos.
  • En su implementación se define una clase interna por cada uno de los comportamientos asociados al agente. Estos comportamientos se utilizan básicamente para el envío y recepción de mensajes, aunque también se pueden utilizar para realizar otras tareas.
2. ¿Para que sirve "JADE"?

Proporciona un conjunto de agentes que realmente actúan a modo de plataforma, de manera que a partir de ellos podemos ver como nuestros programas agentes escritos en Java interactúan, se mandan mensajes, facilitando también la funcionalidad de mandar mensajes entre dichos programas a través de uno de estos agentes especiales. Los agentes de los que hablamos son el agente RMA, el agente Dummy, el agente Sniffer y la DF GUI.

La idea que tiene que quedar clara es que para ejecutar un programa agente en JADE basta con hacerlo desde la línea de comandos sin tener que utilizar los agentes que acabamos de mencionar (RMA, Dummy y Sniffer). Estos agentes auxiliares son una funcionalidad que JADE nos facilita de manera que podamos controlar todos los mensajes que los distintos agentes se mandan entre sí y componer y mandar a su vez mensajes nuevos.



3. ¿De donde se puede descargar?

El software de JADE se debe descargar del sitio web http://jade.tilab.com . Para poder acceder a la zona de descargas debe registrarse.

4. ¿Que otras plataformas existen?

Existen también: 

LALO: Una herramienta bastante conocida para el desarrollo de agentes en C++, este es un lenguaje de programación orientado a objetos para agentes, todo el código desarrollado en este lenguaje es convertido a C++. Esta herramienta ofrece características para desarrollo de agentes que puedan comunicarse entre sí, aceptar o rechazar tareas o colaborarse entre sí. En este lenguaje la comunicación entre agentes es desarrollada con un lenguaje llamada KQML (Knowledge Query Manipulation Language).

IBM Agent Building Environment: Es una herramienta que facilita el desarrollo de agentes, en esta herramienta los agentes se toman sus decisiones basados en reglas de implicación, posee una interfaz que le permite interactuar con la web para hacer desarrollo de agentes para Internet.

Aglets: Es una herramienta para desarrollo de agentes basada en JAVA, que implementa facilidades para desarrollo de agentes móviles independientes de la plataforma para Internet y sistemas distribuidos, debido a esto se dará una mayor profundidad a la presentación de esta herramienta.

Autores:

Miguel Angel Coronado Alonso       Mat: 1484644
Alejandro Cabriales Escareño         Mat:  1479221

jueves, 9 de mayo de 2013

Introducción al proyecto final

Nombre: Jugador autómata

Objetivo

Elegimos este proyecto porque es un área de oportunidad en nuestra carrera, el desarrollo de videojuegos es cada vez más aceptable en el mundo, y podemos usar esta herramienta para analizar, estructurar y crear un juego con los conocimientos aprendidos en esta materia de sistemas adaptativos.

El juego que desarrollaremos podrá aportar funciones que hemos aprendido en clase, y así demostrar cómo funciona un sistema que se adapta a su entorno y con un comportamiento autónomo.

Descripción

El juego en el que se colocará el sistema es un videojuego sencillo de scroll lateral en 2D. Los obstáculos aparecen en la pantalla por la derecha moviéndose hacia al jugador que está del lado derecho de la pantalla, el jugador solo tiene que esquivar dicho obstáculo.

El sistema debe de jugar el nivel sin ayuda alguna, detectando los obstáculos que vayan apareciendo y esquivando cada uno hasta el final del nivel.

Bosquejo

Captura preliminar del juego sin el sistema aplicado.



1. La bola: Debe de esquivar todos los obstáculos que vayan apareciendo en la pantalla. De lo contrario se pierde el juego. En nuestro caso para el proyecto este jugador debe de ser autónomo y tomar la decisión de cuando hará saltar la bola.

2. Obstáculo: aparece en pantalla moviéndose de izquierda a derecha hasta salir por el lado derecho de la pantalla.

Herramientas a utilizar

IDEs: Eclipse y Notepad++
Lenguaje de programación: JAVA

Equipo:

1479221 Alejandro Cabriales Escareño
1477355 Hector Miguel Cortes Ramos
_______ Katia Giselle López Sanmiguel
1484644 Miguel Angel Coronado Alonso