viernes, 23 de noviembre de 2012

PUNTOS EXTRA


Sistemas multiagentes


¿Qué es un agente?
Un agente inteligente percibe su entorno por medio de sensores y actúa racionalmente sobre ese entorno por medio de actuadores.

¿ Cómo se programa un agente?
Existen diferentes plataformas  que son muy utllizadas como JACK, JADE, JAFMAS, MADKit y ZEUS.

¿Cuáles son las funciones básicas de la tecnología de agentes?

                    Ejecución de Tareas: La capacidad de realizar tareas son las destrezas que el agente posee para lograr sus objetivos.
                    Conocimiento de su entorno: El conocimiento del entorno debe de ser introducido o construido por el desarrollador. Algunos agentes además adquieren su conocimiento por aprendizaje.
                    Capacidad de Comunicación: Se distingue dos tipos de comunicación, la interacción con el usuario, y la que se refiere a comunicación inter-agente.




¿Cómo se contruye un agente?






¿Cuál es la plataforma más utilizada en la actualidad?
 JADE

¿ QUE ES JADE?
Java Agent Development Framework
Programar un agente JADE consiste en:
                     Definir una clase Java que representa al agente.
                     Implementar los comportamientos que va a manisfestar.

¿ Características de JADE?

                     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.


Ejemplo Sencillo

El esqueleto de la creación de un agente es bastante simple. El siguiente código muestra un ejemplo de creación de un agente que lo único que hace es visualizar el texto "El agente se ha iniciado.".


Referencias




Un Vídeo  de interés:


http://www.youtube.com/watch?v=j1emME7wmg0&feature=related






PUNTOS EXTRA REDES NEURONALES


UN POCO DE INFORMACIÓN

REDES NEURONALES

¿Qué es una red neuronal?

Son modelos bastante simplificados de las redes de neuronas que forman el cerebro. Y, al igual que este, intentan "aprender" a partir de los datos que se le suministran.

¿Aplicaciones de las redes neuronales?


Algunas de las aplicaciones más destacadas son:
                      Reconocimiento de patrones de clasificación:
                      Reconocimiento de voz, de caracteres manuscritos,...
                      Análisis y reconocimiento de imágenes, formas,...
                      Diagnostico clínico.
                      ...
                      Análisis de series temporales y predicción:
                      Modelos meteorológicos.
                      Predicción del comportamiento.
                      Predicción de series temporales.

                      Robótica

¿Cómo se implementa en aplicaciones?

A la hora de implementar una red neuronal como parte de un programa o sistema informático, se pueden distinguir 3 fases básicas:
                      Diseño: en esta fase se elige el tipo de red neuronal a usar (la arquitectura o topología), el número de neuronas que la compondrán.
                      Entrenamiento: en esta fase se le presentan a la red neuronal una serie de datos de entrada y datos de salida (resultados), para que a partir de ellos pueda aprender.
                      Uso: se le suministran las entradas pertinentes a la red, y esta genera las salidas en función de lo que ha aprendido en la fase de entrenamiento.

¿Tipos de aprendizajes básicos?
Generalmente los datos que se usan para entrenar la red se le suministran de manera aleatoria y secuencial.

Los tipos de aprendizaje pueden dividirse básicamente en tres, atendiendo a como esta guiado este aprendizaje:
                      Aprendizaje supervisado: se introducen unos valores de entrada a la red, y los valores de salida generados por esta se comparan con los valores de salida correctos. Si hay diferencias, se ajusta la red en consecuencia.
                      Aprendizaje de refuerzo: se introducen valores de entrada, y lo único que se le indica a la red si las salidas que ha generado son correctas o incorrectas.
Aprendizaje no supervisado: no existe ningún tipo de guía. De esta manera lo único que puede hacer la red es reconocer patrones en los datos de entrada y crear categorías a partir de estos patrones. Así cuando se le entre algún dato, después del entrenamiento, la red será capaz de clasificarlo e indicará en que categoría lo ha clasificado.


¿Cómo funcionan las redes neuronales?
Las redes neuronales están formadas por un conjunto de neuronas artificiales interconectadas.

Las neuronas de la red se encuentran distribuidas en diferentes capas de neuronas, de manera que las neuronas de una capa están conectadas con las neuronas de la capa siguiente, a las que pueden enviar información.




Ejemplo de un Perceptron Simple

código:






lunes, 5 de noviembre de 2012

Reporte 1

Replicar el programa del ventilador 


Instrucciones:

Replica el programa del ventilador. Muestra corridas donde se vea el auto-ajuste. Muestra los fragmentos más importantes de código y explícalos.

Aquí tenemos que hacer la replica de un programa que la maestra nos enseño en la clase, nosotros solo pudimos apreciar la GUI pero no sabemos como fue programado.

el ventilador iba ajustando sus parámetros según la temperatura que iba teniendo el medio ambiente.

nosotros usamos los siguientes colores:


  • Celeste.- Para cuando el abanico esta Helado.
  • Azul.- Para cuando el abanico arroja aire frío.
  • Gris.- Para cuando el abanico arrojara aire del medio ambiente.
  • Negro.- Para cuando esta apagado

Como esta formado la GUI:

En el titulo se mostrara la temperatura que tiene el medio ambiente, por otra parte el cuadro azul es el aire que esta arrojando en este momento el abanico y el botón es para que empiece a variar la temperatura.


Explicación del código:

Las partes mas importantes del código se mostraran a en esta parte y aun que son pocas son importantes para la realización del programa.

Una de las partes importantes fue este método ya que en este es donde sabrá que color pondrá el ventilador además claro esta que también nos muestra la temperatura como titulo de nuestra ventana.


public void temperatura(int x){
  if (x<=15){//Ventilador apagado

   panel.setBackground(new java.awt.Color (0,0,0));

   this.setTitle(""+x);

  }

  if(x<=25 && x>=21){//helado

   panel.setBackground(new java.awt.Color (32,137,159));

   this.setTitle(""+x);

  }

  if(x<=30 && x>=26){//frio

   panel.setBackground(new java.awt.Color(50,185,214));

   this.setTitle(""+x);

  }

  if(x<=20 && x>=16){//normal

   panel.setBackground(new java.awt.Color(159,159,159));

   this.setTitle(""+x);

  }
 }

Y la otra que nos genera la temperatura, aquí usamos un timer en lugar de usar hilos pero igual nos da el mismo resultado cada cierto tiempo va a estar generando números random donde nuestro programa podra decidir que soplara nuestro abanico.




public void el_timer(){

Timer timer = new Timer (850, new ActionListener ()
{

   public void actionPerformed(ActionEvent e)
   {
    int x=(int)(Math.random()*30+1);
    temperatura(x);
   
   }
 
});


timer.start();

}







Vídeo:

http://www.youtube.com/watch?v=W097ky_Hkpk&feature=youtu.be