Blog para documentar el trabajo de programación realizado en la clase de Aprendizaje Automático del Tec de Monterrey, Campus Estado de México. Enero-Mayo 2010.

Thursday, January 28, 2010

Descripción detallada del medio ambiente

Aprendizaje Automático

Grupo 1

Alejandro Morales A01161376

Jonathan Valle A01161110

Rafael Santos A01161734

26 de enero de 2010

Equipo 1: ./42

Actividad 1

Ambiente: Cuerpo de un ser vivo (sistema inmunológico ).


1. Descripción detallada del medio ambiente.

Todo se desarrolla en el momento en el que un virus, o conjunto de virus intenta infectar el cuerpo de un ser vivo. Dentro del cuerpo se encuentra un sistema inmunológico, basado en anticuerpos.

Puede haber diferentes escenarios, que involucren multiagentes reproduciéndose, o un ambiente centralizado en el que un agente controla la estrategia de todos los demás, o un solo agente que debe encontrar el camino para infectar la célula principal.

La construcción física de los escenarios dependerá de los conceptos que se deseen enfatizar con esa actividad de programación, sin embargo las bases del funcionamiento serían siempre las mismas, tal y como se describen en el párrafo anterior.

Cada tipo de agente puede tener diferentes propiedades o comportamientos, así como definir una estrategia de ataque o defensa para cada tipo de agente.

2. Plataforma en la que se programara el medio ambiente y lenguaje de programación a ser utilizado. ¿Por qué?

El desarrollo se realizará de forma local en una aplicación de escritorio. Se utilizará el lenguaje de programación: Python (2.6), combinado con GTK a través del binding de pyGTK para la interfaz gráfica.

Decidimos utilizar este lenguaje por su facilidad de uso, lo cual nos permitirá concentrarnos más en la parte de resolver los problemas y hacer los algoritmos, en lugar de lidiar con problemas sintácticos o morfológicos.

Además, algunos miembros del equipo contamos con cierta experiencia utilizando python+pygtk, lo cual facilita el proceso de desarrollo.

3. ¿Qué actividades o acciones puede aprender tu agente en ese medio? Describe al menos 2 lo más detallado posible incluyendo ejemplos.

Estrategias de infección o defensa

Desde la perspectiva de los virus, se pueden establecer estrategias para determinar cómo se realizará la infección dependiendo del escenario.

Si en el escenario existen células propensas a infectarse, entonces se planea una estrategia que maximice la cantidad de células infectadas y/o su nivel de infección.

Si el escenario carece de células sanas, se pueden establecer estrategias a partir de la cantidad de población viral vs. inmunológica.

El escenario se conforma por Zonas definidas con anticuerpos, el virus debe navegar a través de esas zonas de tal forma que se pueda infiltrar hasta la célula sana para infectarla, logrando conservar el mayor número de agentes posible.

--

Mutar propiedades para ganar inmunidad

Los virus poseen diferentes propiedades que son detectadas por el sistema inmunológico. Entonces, el virus detecta que su población está siendo disminuida, de tal forma que modifica algunas de sus características, bien al azar o en base a alguna estrategia, para generar confusión en los anticuerpos de tal forma que pueda pasar desapercibido.

Un ejemplo, sería un virus X, con características como rapidez alta (movimiento), pero poca efectividad de infección, alta resistencia a los anticuerpos y baja velocidad de reproducción. Entonces, se da cuenta de que es presa fácil de los anticuerpos, y decide sacrificar alguna característica como su rapidez, e intenta aumentar su capacidad de reproducción.

Tuesday, January 26, 2010

Seleccion de Medio Ambiente

Medio ambiente

Nuestro medio ambiente será como un tipo calabozo con forma de laberinto (el cuál será dinámico), constará de una entrada y una salida Y tres tipos de agentes principales: buscador, guardián y espía. El agente buscador se encargará de buscar un objeto y huir hacia la salida, evitando lo más que pueda al agente guardián. El agente guardián se encargará de hacer rondas en el calabozo en diferentes zonas (mientras las va conociendo y aprendiendo) y en cuanto encuentre al agente buscador, seguirlo para capturarlo. El agente espía se encargará de ayudar al agente buscador para encontrar el objeto verdadero, indicándole dónde hay atajos e interfiriendo en las comunicaciones de los agentes guardianes (solo en el caso que exista más de un agente guardián). Puede que existan más buscadores y de ésta forma los agentes guardianes se confundirán.

En caso de que solo existiera una entrada, se tendría que conseguir el objeto único que podrá convertir la entrada en la salida, para esto, nuestro agente tendría que recordar el camino por el que vino, siempre tratando de evitar al agente guardia.

Existirán agentes guardias, los cuales estarán recorriendo todo el calabozo para conocer el terreno y estar haciendo guardia en algunas de las zonas del mismo. Dentro del calabozo existen diversos objetos, de los cuales hay uno que es el que le abrirá la puerta a la salida, pero hay objetos falsos, copias, que tratarán de confundir al agente buscador.

Plataforma y lenguaje de programación

El ambiente se desarrollará sobre Dev C++, utilización C++ con el API grafico de GLUT que usa OpenGL pera su operación

Actividades que puede aprender el agente

Identificar objeto. La actividad de identificar objeto será llevada a cabo por el agente buscador. Consistirá en recorrer el calabozo y buscar objetos, aplicando el reconocimiento de patrones, para diferenciar los objetos entre sí y las copias falsas del original. Lo que es necesario para elegir el verdadero objeto y continuar con su camino hacia la salida. Como se mencionaba en la descripción del medio ambiente, se puede llegar a contar con solo una salida y una entrada, por lo que deberá recordar el camino que siguió(o si aprendió un camino mejor) para llegar a la salida. Si llegase a identificar un objeto falso como verdadero los agentes guardianes irían inmediatamente por él y el agente buscador perdería. Sin embargo si logra alcanzar el objeto verdadero, los agentes guardianes empezarían la persecución.

Conocer calabozo. Ésta actividad puede ser realizada por los 3 agentes que se encontrarían en el medio ambiente (buscador, guardián y espía). Consiste simplemente en ir reconociendo el calabozo y guardar dicha información. El agente buscador usará esta información para conocer donde se encuentra la salida y dirigirse a ella una vez que encuentre el objeto verdadero y a su vez saber donde se encuentran algunos atajos (aprendidos gracias al agente espía). El agente guardia deberá conocer el terreno para que cuando el agente buscador encuentre y agarre el objeto verdadero o agarre un objeto falso algún comience a perseguirlo. Finalmente el agente espía se encargará de buscar o encontrar atajos para ayudar al agente buscador en la tarea de encontrar el objeto verdadero y evadir al agente guardia cuando sea necesario.

Si el agente buscador encuentra y agarra un objeto falso, (si hay más de un agente guardián) se comunicarán entre ellos para rodear al agente buscador, sin embargo el agente espía hará su aparición y se interpondrá en dicha negociación para dar datos falsos y darle tiempo al agente buscador de buscar un lugar seguro.

Monday, January 25, 2010

Selección del medio ambiente

Gato 3D
Descripción del medio ambiente.
Hay tres tableros de gato formando un cubo. Cada panel vertical y horizontal es un gato de modo que hay más formas de ganar. Existen 27 espacios donde se puede tirar. El ambiente es accesible, no determinista, no episódico, estático y discreto.
Plataforma y lenguaje a ser utilizado.
Usaremos C y C++ con OpenGL. Porque OpenGL es un lenguaje que estamos aprendiendo y queremos aprovecharlo. Además de que conocemos los otros lenguajes lo que nos ayudará en el desarrollo del proyecto.
Actividades que aprende el agente.
El objetivo del agente es aprender la estrategia del contrincante y ganarle. Es autónomo y reacciona según los tiros del otro jugador. El agente aprende la estrategia del oponente para poder contrarrestarla y ganarle.
El agente aprenderá a bloquear tiros y a tirar de manera que tenga oportunidad de ganar.
1. Bloquear tiros. A partir de la estrategia del usuario el agente aprenderá que posición del tablero utilizar para su siguiente jugada para así impedir que el otro jugador gane.
2. Tirar. De acuerdo al desempeño del jugador el agente elige la mejor jugada posible.

Tuesday, January 19, 2010

Instrucciones del blog

Este es el blog de Aprendizaje Automático TC3020. El objetivo es que vayan documentando sus actividades de programación y que vayan compartiendo con sus compañeros su trabajo.

Por favor, cuando suban una actividad, pongan en el titulo el titulo de la actividad y en la etiqueta pongan su numero de equipo y nombre del equipo. En este caso, yo estoy poniendo el titulo de "Instrucciones del blog" y la etiqueta "0-Lecturers".

Si desean usar más etiquetas para clasificar mejor su contribución, por favor háganlo.

Cualquier pregunta, por favor mándenme un correo electrónico, preguntenme en clase, o simplemente den de alta un post y yo lo contesto.

Gracias.