Agentes Inteligentes
Un agente inteligente, es una entidad capaz de percibir su
entorno, procesar tales percepciones y responder o actuar en su entorno
de manera racional, es decir, de manera correcta y tendiendo a maximizar
un resultado esperado. Es capaz de percibir su medioambiente con la
ayuda de sensores y actuar en ese medio utilizando actuadores (elementos
que reaccionan a un estímulo realizando una acción).
En este contexto la racionalidad es la característica que posee una elección de ser correcta, más específicamente, de tender a maximizar un resultado esperado. Este concepto de racionalidad es más general y por ello más adecuado que inteligencia (la cual sugiere entendimiento) para describir el comportamiento de los agentes inteligentes. Por este motivo es mayor el consenso en llamarlos agentes racionales.
Un agente inteligente puede ser una entidad física o virtual. Si bien el término agente racional se refiere a agentes artificiales en el campo de la Inteligencia Artificial, también puede considerarse agentes racionales a los animales incluido el hombre.
Los agentes inteligentes se describen esquemáticamente como un sistema funcional abstracto. Por esta razón, los agentes inteligentes son a veces llamado Agentes Inteligentes Abstractos (AIA) para distinguirlos de sus implementaciones del mundo real como sistemas informáticos, los sistemas biológicos, o de organizaciones. Algunas definiciones de agentes inteligentes hacen énfasis en su autonomía por lo que prefieren el término agente inteligente autónomo. Y otros (en particular, Russell y Norvig (2003)) considera conducta dirigida a objetivos como la esencia de lo inteligente y prefieren un término tomado de la economía "Agente Racional".
En Ciencias de la Computación el término agente inteligente puede ser
usado para referirse a un agente de software que tiene algo de
inteligencia, independientemente de si no es un agente racional por
definición de Russell y Norvig. Por ejemplo, programas autónomos
utilizados para asistencia de un operador o de minería de datos (a veces
denominado robots) son también llamados "agentes inteligentes".
Definiciones sobre Agentes Inteligentes
Los agentes inteligentes se han definido de diferentes maneras. [2]
Según Nikola Kasabov [3] los sistemas de IA deben exhibir las siguientes
características:
- Aprender nuevos problemas e incrementar normas de solución.
- Capacidad de adaptación en línea y en tiempo real.
- Ser capaz de analizar condiciones en términos de comportamiento, el error y el éxito.
- Aprender y mejorar a través de la interacción con el medio ambiente (realización).
- Aprender rápidamente de grandes cantidades de datos.
- Deben estar basados en memoria de almacenamiento masivo y la recuperación de dicha capacidad.
Ejemplos
Como ejemplos de entidades físicas pueden nombrarse:
- un robot de comportamiento variable autoregulado (ya sea que su comportamiento sea determinado por software o incorporado directamente en la electrónica),
- una computadora que ejecuta un software de diagnóstico médico y muestra resultados en una pantalla para ayudar a decidir a un médico,
- una computadora especializada que controla un helicóptero en maniobras peligrosas para un hombre.
Ejemplos de entidad puramente virtual serían:
- un software de descubrimiento de patrones en Internet que sólo interactúa con otros software.
- un software softbot que simula a una persona en un juego de computadora, tal como un jugador de ajedrez, un jugador de fútbol contrincante o un conductor de carreras de automóviles, etc.
Clasificación
Es posible clasificar los agentes inteligentes en 6 categorías principales:
- agentes reactivos
- agentes reactivos basados en modelo
- agentes basados en objetivos
- agentes basados en utilidad
- agentes que aprenden
- agentes de consultas
La racionalidad es necesaria
En muchos textos se define agente inteligente como todo agente capaz
de tener conciencia de su entorno y actuar sobre él. No obstante es
necesario exigir que estas decisiones sean racionales en el sentido de
que persigan algún fin.
Vamos a mostrarlo con un contraejemplo: cuando un fotón con la
suficiente energía incide sobre un átomo, puede arrancar de él un
electrón. Podríamos considerar al átomo inteligente puesto que percibe
su entorno (la incidencia del fotón) y actúa sobre su entorno (emite un
electrón). La ausencia de relación entre la emisión del electrón y
cualquier hipotético interés del átomo muestra que este no es un agente
inteligente pese a verificar la definición de Bertrand Russell.
Sin ese término no tendría sentido la palabra racionalidad.
La conducta de un agente no suele ser la óptima
Paradójicamente la conducta de un agente rara vez es la óptima. La
razón es sencilla: calcular el óptimo de un criterio de un modo
suficientemente bueno como para ser considerado razonable es muy difícil
cuando en el problema planteado concurren múltiples restricciones. Un
ejemplo sería el cálculo de la mejor ala para un avión, donde el agente
tendría que ser capaz de tener en cuenta criterios tan dispares como la
aerodinámica, la compatibilidad con el resto de componentes de la
aeronave, o criterios económicos, y restricciones tales como
limitaciones en peso de la propia ala, el peso total de la aeronave, las
normativas aplicables, etc. En el otro extremo se encuentran problemas
como el cálculo del máximo de un polinomio de segundo grado, en los que
el criterio es muy sencillo -es un polinomio de segundo grado- y no
concurre ninguna restricción.
Cuando el criterio es una función real de muchas variables y las
restricciones también, los cálculos son mucho más complicados. Algunas
veces se puede lograr una buena aproximación, pero si el agente ha de
tomar la decisión en muy poco tiempo, deberá conformarse con la mejor
aproximación que pueda calcular en el escaso tiempo de que dispone.
Por otra parte, no es tan fácil inducir el criterio que permite
comparar las distintas estrategias: ¿cómo se puede expresar con una
ecuación simple lo que más le conviene a un lagarto que está cazando
bajo el sol?
SOFTWARE
ZEUS (http://www.labs.bt.com/projects/agents/zeus/index.htm)
Software libre que contiene un conjunto de herramientas para ayudar en la creación de sistemas de agentes colaborativos (limitados en competencias y recursos, por lo que deben compartir sus habilidades con otros para realizar un problema más complejo).
SOFTWARE
ZEUS (http://www.labs.bt.com/projects/agents/zeus/index.htm)
Software libre que contiene un conjunto de herramientas para ayudar en la creación de sistemas de agentes colaborativos (limitados en competencias y recursos, por lo que deben compartir sus habilidades con otros para realizar un problema más complejo).
Java Agent DEvelopment framework Soporta la implementación de MAS (FIPA compliant), posee una Librería de paquetes para programar agentes, además herramientas para la depuración y la ejecución de agentes. Es adicional una plataforma distribuida para la ejecución de agentes (heterogéneos como Zeus): middle-ware para MAS con servicios para agentes como directorios, codificación y transporte de mensajes, herramientas como monitor remoto de agentes, sniffer agent, dummy agent este software está completamente desarrollado en JAVA y es de Libre distribución bajo licencia LPGL.
AgentBuilder - un conjunto de herramientas de software integrado que permite a los desarrolladores de software para desarrollar rápidamente los agentes de software inteligentes y aplicaciones basadas en agentes. Compatible con cualquier JRE de Java, Soporta KQML, CORBA y TCP / IP Communications.
Versiones disponibles para Windows 98/ME/NT/2000/XP, Solaris y Linux.