Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Agentes inteligentes

presentacion para la clase de AA
by

yoseph buitrago

on 12 February 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Agentes inteligentes

Tipos de Agentes
Que es un agente inteligente?
(cc) image by nuonsolarteam on Flickr
Agentes Inteligentes
“Un sistema informático, situado en un entorno, que es capaz de realizar acciones flexibles y autónomas para alcanzar sus objetivos”. [Jenn98]
Características de
un Agente
Arquitecturas de
Agentes
Las arquitecturas de agentes pueden ser divididas en cuatro grupos principales: basados en lógica, reactivos, BDI y arquitectura en capas.
logica
reactivos
BDI
layer
son arquitecturas que ponen en práctica la toma de decisiones como una asignación directa de la situación a la acción y se basan en un mecanismo de estimulo-respuesta.
es una de las arquitecturas de agentes más populares ya que, define actitudes mentales de creencia, el deseo y la intención de utilizar una lógica modal. Las creencias representan la información que un agente tienen sobre su entorno, que puede ser incompleta o incorrecta. El deseo representa las tareas asignadas al agente y por lo tanto corresponden a los objetivos o metas que se deben lograr. Las intenciones representan los objetivos (deseos) que el agente se ha comprometido a lograr.
esta arquitectura permite el comportamiento de la arquitectura reactiva y de la basada en lógica, esta flexibilidad es posible mediante la disposición en capas de ambos comportamientos. Hay dos tipos de flujo de control dentro de una arquitectura en capas, capas horizontales y la estratificación vertical.
 Un agente es Autónomo, porque opera sin intervención de los seres humanos u otros, y tiene control sobre sus acciones y estado interno.
Un agente es Social, ya que coopera con los seres humanos u otros agentes con el fin de alcanzar sus metas.
Un agente es Reactivo, ya que percibe su entorno y responde de manera oportuna a los cambios que ocurren en él.
Un agente es Proactivo, ya que no se limita a actuar de acuerdo al entorno sino que es capaz de actuar por iniciativa propia para cumplir con objetivos.
Agentes Colaborativos
son útiles en el desarrollo de tareas que envuelven la solución de problemas. Están enfocados a:
solucionar problemas muy grandes para un sólo agente centralizado.
Permite la interconexión de sistemas Legacy.
Provee solución a problemas inherentemente distriuidos.
Agentes de Interfaz
su objetivo es el de servir a las necesidades del usuario con base en el análisis de sus hábitos y comportamientos, ajustándose de acuerdo a las decisiones anteriormente ejecutadas. El proceso de aprendizaje está fundamentado en:
Observar e imitar las acciones del usuario.
La retroalimentación positiva o negativa del usuario sobre una acción tomada de manera autónoma por el agente.
La recepción explícita de instrucciones del usuario.
La indagación de comportamientos similar a otros agentes.
Agentes Móviles
Tienen la capacidad de salir de los límites de las redes y acceder a computadoras en redes remotas o incluso internet.
Permiten la ejecución de tareas en computadores remotos y así como la transmisión de los resultados al usuario.
Agentes de Información
Su objetivo es la recoleción, administración y clasificación de grandes volúmenes de información provenientes de fuentes distribuidas. El proceso de filtro de la información se realiza de manera autónoma y sin intervención del usuario.
Agentes Reactivos
Actúan de manera reactiva ante un evento o estímulo producido dentro del entorno del sistema. Por sí mismos no agregan mucha autonomía, por lo que, normalmente son otros conjuntos de agentes los que realizan labores autómatas.
Agentes Híbridos
Combinación de agentes reactivos (estímulos) y agentes deliberativos (con un modelo interno de razonamiento).
Facilitan una mayor adaptabilidad y mejor rendimiento.
Agentes Heterogeneos
Hacen referencia a la integración de un sistema de información con base en dos o más tipos distintos de los agentes descritos anteriormente, o a la interacción de varios agentes híbridos para la solución de un problema.
Arquitetura JADE
JADE
Jade es un software totalmente implemetado en Java.
El objetivo de este software es simplificar el desarrollo de sistemas multi-agentes a través del middle-ware, cumpliendo con las específicaciones FIPA
e incluye todos los componentes obligatorios que manejan la plataforma, es decir, el ACC, AMS y el DF.
1. Garantiza que cada agente en la plataforma tenga un único nombre.
2. Encargado de proporcionar los servicios de páginas blancas y ciclo de vida, y de mantener el directorio de los identificadores de agentes (AID: Agent Identifier) y su estado.
3. Cada agente debe registrarse con el AMS para obtener un AID válido, esta operación en JADE la realizan los agentes de manera automática en el agente AMS por defecto.
Permite a los agentes publicar los servicios que proporcionan, para que otros agentes puedan acceder a ellos.
Los agentes interactúan con el DF intercambiando mensajes ACL usando un lenguaje especial para darle formato a los mensajes y ontologías acordes a los estàndares propuestos por la FIPA-agent-management. Jade nos facilita esta tarea mediante los métodos implementados en la clase DFService.
Páginas blancas (DF Agent)
Páginas blancas (AMS Agent)
Agente Comunicación de Canales, ACC
Agente que controla los canales de comunicación.
La plataforma JADE se compone de contenedores de agentes que pueden ser distribuidos por la red. Los agentes viven en contenedores los cuales son precesos de Java que proveen al JADE run-time todos los servicios necesarios para alojar y ejecutar agentes. Hay un recipiente especial, llamado el contenedor principal, que representa el punto de arranque de una plataforma jade: es el primer contenedor que se pone en marcha y todos los otros contenedores deben unirse al contenedor principal mediante el registro de los mismos.
Programar un agente JADE consiste en:
1. Definir una clase Java que representa al agente (la cual debe heredar de la clase jade.core.Agent).
2. Implementar los comportamientos que va a manisfestar.
Qué es un comportamiento
Un comportamiento o behaviour hace referencia a una funcionalidad que incorpora el agente.
Los comportamientos especifican tareas o servicios que realiza un agente para lograr sus objetivos. Cada comportamiento puede realizar una tarea simple como "Envia este mensaje" o "compra X " aunque también se pueden crear comportamientos compuestos.
Un agente está sujeto a un ciclo de vida en el que se definen los estados en los cuales se puede encontrar el agente, así como los cambios que se pueden realizar entre los diferentes estados.
El ciclo de vida de un agente JADE sigue el ciclo propuesto por FIPA.
Ciclo de vida de un agente
Un agente puede estar en los siguientes estados:
Integrar JESS con JADE
import jade.core.Agent;
import jade.core.behaviours.*;
import jess.*;
public class pruebaJess extends Agent
{
protected void setup()
{
addBehaviour(new JessBehaviour());
}
class JessBehaviour extends Behavior
{
//AQUÍ SE INCLUYE EL CÓDIGO PARA USAR JESS
}
}
JESS
Una de las clases más importantes que tiene JAVA para comunicarse con JESS es jess.Rete. Con ella se genera el motor de reglas y cada objeto de esta clase tiene su propia memoria de trabajo. Para comunicarse con JESS se debe crear una instancia de esta clase:
class JessBehaviour extends OneShotBehaviour
{
public void action()
{
// Define el motor de JESS
Rete jess = new Rete();
}
}
Simulación de una vivienda inteligente, donde se pretende controlar:
Que la temperatura sea de 20 grados.
Que cuando la vivienda esté vacía la puerta de la entrada esté cerrada con llave.
Que cuando la vivienda esté vacía la alarma esté conectada.
Que cuando la vivienda esté vacía las luces estén apagadas.
Que cuando la alarma se active se haga una llamada a la policía.
Que cuando el horno esté funcionando tenga la puerta cerrada.

Para resolver el problema, se ha decidido realizar un programa con dos agentes inteligentes, Sensores y Controlador.
EJEMPLO IMPLEMENTACIÓN DE JESS EN JADE.
AGENTE SENSORES
Este agente se encarga de leer la información que reciben los sensores de la casa: horno, nevera, temperatura y la luz, alarma y puerta según haya o no gente en la vivienda. Para ello tiene un comportamiento cíclico, que se está ejecutando constantemente.
se encarga de comunicarse con el programa JESS cada vez que un sensor cambia de estado, por lo que va a tener siempre el valor actual de todos los sensores. Comprueba constantemente la información que recibe de Sensores para ejecutar las acciones (reglas) correspondientes según sea el caso.
AGENTE CONTROLADOR
puertaCerrada:
alarmaConectada:
apagarLuces:
llamarpolicia
hornoEncendido:
REGLAS
Jess es una herramienta para la construcción de un tipo de software inteligente llamado Sistemas Expertos. Un sistema experto basado en reglas que puede ser aplicado repetidas veces a una colección de hechos del mundo real. Jess utiliza un algoritmo especial que se llama Rete para que coincida las reglas con los hechos. Rete hace que Jess sea más rápido que un simple conjunto en cascada de IF... JESS Se puede usar de dos modos:
1. Por un lado se puede usar como un Sistema Experto (Sistema Basado en Conocimiento). Un Sistema Experto ejecuta ciertas reglas (definidas por el programador) sobre el conocimiento que se tiene.
2. Por otro lado, JESS se ha escrito en JAVA y se puede integrar perfectamente a él accediendo directamente en sus clases y librerías para conseguir un desarrollo más rápido de las aplicaciones.
¿Qué es Jess?
LA CLASE RETE
Lenguaje JESS
JESS como en cualquier otro lenguaje de programacion podemos encontrar elementos básicos como palabras reservadas, variables locales o globales, funciones y estructuras como if-then, while, for, entre otros.
GRACIAS
AUTORES:
Buitrago Yoseph
Gayón Michelangeli
Martinez Solange
Villamizar Julio
José López
JESS trabaja en base a 3 puntos clave:

Hechos: son la forma que utiliza JESS para representar el conocimiento.
Reglas: nos indican la acción que se debe llevar a cabo cuando surge una determinada condición. una regla sigue la estructura IF-THEN, se costruye a partir del constructor (defrule)
Preguntas: se utilizan para obtener respuestas.
Iniciado
Activo
Suspendido
En espera
Desconocido
Tránsito
Referencias
Videos
www.youtube.com/watch?v=qZkBD6tNPFg&feature=related
www.youtube.com/watch?v=tvNqLNVIhdc&feature=related
www.youtube.com/watch?v=nnbG2RewOzg&feature=related
jess-jade.wetpaint.com/page/Integrar+JADE+en+JESS
herzberg.ca.sandia.gov/
ciberconta.unizar.es/leccion/introduc/482.htm
jade.tilab.com/
www.davidam.com/docu/aplic-ia/agent-intel.html
programacionjade.wikispaces.com/
Full transcript