1.05k likes | 1.39k Views
Agentes Inteligentes. M.C. Juan Carlos Olivares Rojas. jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares http://antares.itmorelia.edu.mx/~jcolivar Febrero, 2010. Competencia Específica. Conoce los fundamentos teóricos de la teoría de agentes y poderla aplicar en la práctica.
E N D
Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares http://antares.itmorelia.edu.mx/~jcolivar Febrero, 2010
Competencia Específica Conoce los fundamentos teóricos de la teoría de agentes y poderla aplicar en la práctica.
Agentes Es un software (que puede incluir hardware) que trabaja de manera autónoma y es capaz de realizar una serie de problemas de forma razonada. Los agentes se caracterizan por tener bien delimitados sus alcances. Generalmente reciben entrada a través de estímulos y realizan acciones hacia el exterior.
Agentes Inteligentes Un agente es algo que razona (agente viene del latín agere, hacer). Aparte de la autonomía y la racionalidad un agente debe de ser adaptable y en muchos casos “sociable”; es decir, poderse comunicar con otros agentes e incluso con el hombre mismo. Algunos autores a los agentes les llaman softbot.
Aplicación de los Agentes Robótica Móvil Coordinación y Sincronización Robótica de Manipuladores Inteligencia y Conocimiento Agentes Procesamiento de Imágenes Patrones Redes Neuronales
Agentes Inteligentes Aprendizaje Memoria Abstracción Razonamiento Solución de problemas Medio ambiente Percepción Imaginación Libre albedrio Actuación Conciencia Creatividad Se trata de emular la inteligencia natural
Áreas de la Teoría de Agentes Ingeniería de software IA Distribuida Sistemas distribuidos y redes POO NOCION DE AGENCIA
Cerebro Humano como Máquina • 1011 Neuronas (procesadores) • Poder desconocido • 1000 – 10000 conexiones por neurona • Capacidad basada en las conexiones. • Cada neurona es muy compleja. • Almacenamiento redundante. • No binario, no estable y no asíncrono. ¿Una computadora biológica?
“Sensores Humanos” Neuronas Sonido información Conexiones Color Sabor Olor Tersura acciones
“Sensores Humanos” 104 Hz 102 Hz Sonido 102 Hz, 104 Hz Color 1015 Hz Sabor ¿es una onda? Olor ¿es una reacción química? Tersura ¿es una onda?
MAS Multi-Agent System (Sistemas Multi Agentes) son una colección de agentes generalmente distribuidos geográficamente y que pueden trabajar en conjunto para el logro de objetivos. Se caracterizan por que no hay un control global del sistema (recordar que cada agente es autónomo), por lo que los datos están descentralizados y la comunicación es asíncrona.
MAS Los agentes pueden ser reactivos o proactivos. Se dice que es un agente es reactivo cuando dado un estímulo es capaz de procesar la respuesta. Un agente es proactivo cuando antes de percibir estímulos se encuentra trabajando.
MAS Algunos ejemplos de agentes: Un demonio en unix (poca racionalidad) Un sistema de calefacción/aire acondicionado automatizado (poca racionalidad) Un agente planificador de vuelos Un agente para recomendaciones en sistemas de comercio electrónico.
MAS Se considera que para que un agente inteligente esté realmente completo se necesita de las siguientes actitudes: Conocimientos Creencias Intenciones Obligaciones Emociones
MAS COLABORATIVOS/ APRENDEN COOPERATIVOS AGENTES INTELIGENTES COLABORATIVOS AGENTES DE INTERFAZ AUTONOMOS APRENDEN En los sistemas multiagente se hace sumamente necesario la movilidad. Existen diversas clasificaciones de MAS:
Actividad • Para un Taxi con piloto automático (taximetro reemplazado por un agente inteligente ) • Determine lo siguiente: • Percepciones • Acciones • Metas • Ambiente
Ambientes Dependiendo del tipo de ambiente, la inteligencia del agente varía. Actualmente se maneja el concepto de AMI (Ambientes Inteligentes) para describir el cómputo generalmente ubicuo que puede interactuar con su entorno. Es una variante de la domótica y del cómputo automatizado. A continuación se muestran los diferentes tipos de ambientes.
Cómputo Ubicuo y AMI Inteligencia Ambiental
¿Qué se necesita para AMI? ¿Qué? WHAT ¿Donde? WHERE Consciencia del dispositivo Realizar servicios solos Realizar servicios coordinados ¿Quién? WHO ¿Cómo? HOW ¿Cuándo? WHEN Context-Aware y SOA
Ambientes Accesible/Inaccesible: Si los sensores proporcionan todo lo que hay que saber sobre el estado completo del ambiente. Determinístico/No-determinístico (estocástico): Si el estado siguiente del ambiente está determinado plenamente por el estado presente del mismo, y por la acción del agente.
Ambientes Episódico/No-episódico: Un ambiente episódico implica que los episodios siguientes no dependen de las acciones que ocurrían en episodios previos. Estático/Dinámico: Será estático todo ambiente que no cambie mientras el agente está pensando.
Ambientes Discreto/Continuo: se es discreto cuando existe un escaso número de percepciones y acciones en el ambiente. Continuo en el otro caso. Sin adversario/con adversarios racionales: los ambientes de estudio generalmente son contrincarios, aunque la realidad es más compleja, como la bolsa o los juegos deportivos.
Tipos de Ambientes De acuerdo con Russell & Norving se tienen los siguientes tipos de agentes: De reflejo simple: se basan en reglas condición/acción. Carecen de memoria referente a estados pasados del mundo. Bien informado de lo que pasa: con un estado interno usado para almacanar estados pasados del mundo.
Tipos de Ambientes Basados en meta (proactivos): además de disponer de información sobre el estado, tienen una meta que describe situaciones deseables. Basados en Utilidad: basan su decisión en la teoría de la utilidad para actuar racionalmente.
BDI Es una forma de representar agentes: Belief (creencias), Desire (deseos), Intentions (intenciones). Las creencias representan la base de conocimientos, los deseos los logros a obtener y las intenciones son la serie de acciones a realizar para lograr los objetivos. Todo esto se debe explicitar de alguna forma.
Ejemplo de BDI Ejemplo: TERMOSTATO D = mantener temperatura en T B = { t (A), OK(T) } I = { Calentar, Enfriar, nada} Filtro: - Si A > T entonces I = Enfriar - Si A < T entonces I = Calentar - Si A = T entonces I = Nada
Ejemplo de BDI Acción: Case I de Enfriar Acción = bajar temp Calentar Acción = subir temp Nada Acción = nada Después de todo esto el principal reto en teoría de agentes es el lenguaje de comunicación entre los agentes y su entorno.
Lenguajes de Agentes • Existen diversos lenguajes de comunicación entre agentes la gran mayoría propietarios aunque en los últimos años se han estandarizado dos: • KQML • FIPA ACL • En este curso se trabajará con la plataforma de agentes JADE. • Los agentes se han hecho tan populares que ha surgido el paradigma de programación orientado a agentes AOP por sus siglas en inglés.
AOP Programación Orientada a Agentes Nuevo paradigma computacional Especialización de la OOP Elemento central: Agentes BDI Agente: creencias + capacidades + compromisos
AOP Modelado de Agentes
Plataformas de Agentes Existen muchas plataformas MAS como: Concordia FIPA-OS Zeus Gossip JATLite Odyssey Aglets Voyager
JADE Java Agent DEvelopment Framework fue desarrollado en Italia por Telecom (formalmente CSELT) junto con la Universidad de Parma en Julio de 1998. El objetivo fue crear una implementación concreta de la especificación FIPA. Actualmente es la plataforma de agentes más utilizada en el mundo.
FIPA Es un estándar para el manejo de agentes para poderlos hacer interoperables define una arquitectura básica así como un lenguaje de agentes: ACL basado en KQML. En el caso de JADE se tiene la característica de manejar agentes móviles donde si no se le define “inteligencia” simplemente funcionan como un middleware de aplicaciones distribuidas.
JADE Es un marco de trabajo de software para facilitar el desarrollo de sistemas multiagentes inteligentes e interoperables. Constituye un midelware para el desarrollo y un ambiente de ejecución para aplicaciones punto a punto que siguen el paradigma de agentes. Jade está basado en Java.
Arquitectura JADE Cada instancia del ambiente de ejecución se llama Contenedor, dado que puede contener varios agentes. El conjunto de contenedores activos se llama Plataforma. Debe existir un contenedor denominado como principal (Main Container), en el cual todos los demás contenedores deben registrarse tan pronto inicien su ejecución en el sistema.
Arquitectura JADE El primer contenedor en iniciar en una plataforma debe ser el principal. Los demás contenedores deben saber dónde localizar al principal (host:port) Si existe otro contenedor principal, entonces este constituye otra plataforma. Los contenedores puede registrarse en cualquiera de las plataformas disponibles.
Arquitectura JADE • El contenedor principal maneja dos agentes especiales: • AMS (Agent Management System) • Provee el servicio de nombres y representa la autoridad en el sistema (crear o eliminar agentes en un contenedor remoto). • DF (Directory facilitator) • Provee las páginas amarillas de servicios a través del cuál un agente puede encontrar a otros que proveen los servicios que requiere para completar sus metas.
Arquitectura JADE JADE cuenta con una interfaz gráfica para el manejo de los agentes. Para poder ejecutar JADE se requiere actualizar la variable de entorno classpath. En sistemas *X a través de export CLASSPATH=$CLASSPATH:/rutabibliotecas/jade.jar:/rutabibliotecas/otrosarchivos.jar
Arquitectura JADE En el caso de sistemas Windows puede hacer a través de línea de comandos o a través de la opción de variable de entorno dentro de la configuración principal del equipo. Una vez instalada la máquina virtual de Java se ejecuta: java jade.Boot para correr en modo texto JADE o bien java jade.Boot –gui para correrlo en modo gráfico.
Arquitectura JADE Interfaz Gráfica RMA (Remote Agent Management)