martes, 26 de febrero de 2013

Agentes Inteligentes


La inteligencia artificial puede considerarse como una de las disciplinas más nuevas, la que trata de “desarrollar sistemas que piensen y actúen racionalmente”. En los últimos años la inteligencia artificial ha ido evolucionando, quizás con mayor celeridad que otras disciplinas. Todo esto ha llevado a que la inteligencia artificial abarque una gran cantidad de áreas, desde algunas muy generales como razonamiento, búsqueda, etc. a otras más específicas como los sistemas expertos, algoritmos genéticos, redes neuronales, sistemas de diagnóstico, etc. Podría indicarse, sin lugar a dudas, que la inteligencia artificial puede ser aplicada a infinidad de disciplinas científicas y es que la misma es susceptible de aparecer allí donde se requiera el intelecto humano. A fines del siglo pasado, al interior de la inteligencia artificial, ha surgido un nuevo paradigma conocido como el “paradigma de agentes”, el cual está tomando un gran auge entre los investigadores. Dicho paradigma aborda el desarrollo de entidades que puedan actuar de forma autónoma y razonada. Si se retoma la definición dada anteriormente donde se considera a la inteligencia artificial como un medio para el desarrollo de sistemas que piensen y actúen racionalmente, se puede pensar que la inteligencia artificial, en su conjunto, trata realmente de construir dichas entidades autónomas e inteligentes.

Un agente es todo aquello que puede considerarse que percibe su ambiente mediante sensores y que responde o actúa en tal ambiente por medio de efectores. Los agentes humanos tienen ojos, oídos y otros órganos que le sirven de sensores, así como manos, piernas, boca y otras partes de su cuerpo que le sirven de efectores. En el caso de agentes robóticos, los sensores son sustituidos por cámaras infrarrojas y los efectores son reemplazados mediante motores. En el caso de un agente de software, sus percepciones y acciones vienen a ser la cadena de bits codificados. En este contexto, un agente inteligente es un programa de computadora que es capaz de hacer lo que se haría si las personas tuvieran el suficiente tiempo para hacerlo, o de forma más adecuada “un tipo de programa computacional que, por encargo de un usuario u otro programa, realiza de forma autónoma tareas que requieren cierto grado de inteligencia y aprendizaje”.

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. En este contexto la racionalidad es la característica que posee una elección de ser correcta, más específicamente, que tiende a maximizar un resultado esperado. El concepto de racionalidad es más general y por ello más adecuado que inteligencia, para describir el comportamiento de los agentes inteligentes. Por este motivo es mayor el consenso en denominarlos 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 y al hombre. El significado del concepto “agente inteligente” es una cuestión muy discutida donde no se encuentra un acuerdo general. Sin embargo, existe una serie de características asociadas a los agentes inteligentes a partir de las cuales puede ofrecerse una definición que sería aceptada por la mayoría de los investigadores. Primero, se puede decir que un agente software es un programa con capacidad de actuar de forma autónoma en el entorno donde se encuentre, con la finalidad de conseguir los objetivos para los cuales fue diseñado. Por autonomía se entiende la capacidad de actuar de forma independiente y autosuficiente, sin la intervención humana o de otros agentes y teniendo su propio control. Sin embargo, los sistemas autónomos no son nuevos, existen muchos programas con esta característica que pueden clasificarse como agentes, aunque no como agentes inteligentes.

Para que un agente pueda llamarse inteligente además de autónomo tiene que ser flexible. El término flexible en la autonomía del agente engloba las siguientes características: (1) Sensible o reactivo. El agente tiene que percibir su entorno, el cual puede ser el mundo físico, un usuario, una colección de agentes, Internet, etc., además de responder en un tiempo adecuado ante los cambios que se produzcan en dicho entorno. (2) Oportunista o pro-activo. El agente no sólo ha de reaccionar frente a su entorno, sino que tiene que aprovechar aquellas situaciones que puedan darse en dicho entorno si éstas favorecen la consecución de sus objetivos, ofreciendo una conducta de iniciativa propia. (3) Social. El agente también tiene que ser capaz de interactuar, cuando lo considere oportuno, con otros agentes y humanos con el objetivo de completar sus actividades o ayudar a la realización de las tareas de los otros. Con estas características queda definido el concepto de agente inteligente. Sin embargo, estos agentes pueden poseer, además, otras características adicionales como son la movilidad y adaptabilidad. Por movilidad se entiende la capacidad del agente de moverse de un entorno a otro por decisión propia. La adaptabilidad o aprendizaje puede definirse como la capacidad del agente de reaccionar ante una misma situación de formas diferentes con el objetivo de encontrar los comportamientos óptimos orientados a la resolución de cada uno de los diferentes problemas.

Las características que un programa computacional debe poseer para ser considerado un agente inteligente, en opinión de los expertos, son: (1) Autonomía. Se refiere a que el agente debe tener control sobre sus propias acciones y ser capaz de lanzar acciones independientemente del usuario. (2) Capacidad de reacción. Con la cual los agentes pueden detectar cambios en su entorno y reaccionar en función de éstos. (3) Comunicación. Con esta característica el agente es capaz de interactuar con los usuarios y otros agentes. (4) Logro de metas. Los agentes tienen un propósito determinado y actúan en consecuencia hasta conseguirlo. Otras características de los agentes inteligentes reseñadas en la mayoría de la literatura en este ámbito son: (1) Dinamismo. Con la cual, los agentes deberían ser capaces de funcionar independientemente del espacio y el tiempo. (2) Adaptabilidad. Referida a que los agentes aprenden y cambian su conducta basándose en las experiencias previas. (3) Continuidad temporal. Que se refiere a que los agentes no deberían parar o reanudar su actividad para ciertas tareas, más bien su funcionamiento debería ser un proceso continuo. (4) Movilidad. Los agentes se pueden transportar de una máquina a otra e, incluso, entre diferentes arquitecturas y plataformas.

Como consecuencia de una definición diáfana de agente inteligente, diferentes autores han propuesto una gran variedad de taxonomías o clasificaciones. A continuación se presenta una doble clasificación que pretende aclarar la tipología de agentes inteligentes basados tanto en el ámbito en el que actúan como en las tareas que llevan a cabo. Por una parte, en cuanto a su ámbito de actuación se clasifican en: (1) Agentes de escritorio, que son agentes de sistema operativo, agentes de aplicaciones y otros. (2) Agentes de Internet, referidos como agentes de búsqueda, agentes de filtrado y recuperación de información, agentes de notificación, agentes móviles y otros. (3) Agentes de Internet, que son los agentes cooperativos, agentes de bases de datos, agentes de automatización de procesos y otros. Por otra parte, en cuanto a su función se clasifica a los agentes en las siguientes tipologías: Agentes de interfaz, agentes de filtrado, agentes de navegación, agentes consejeros y otros.

Como cierre comentar que desafortunadamente muchas de las tecnologías existentes son inadecuadas para construir aplicaciones complejas y sistemas distribuidos. Se requieren nuevas herramientas para construir esos sistemas complejos, en ese sentido el software de agentes inteligentes representa una buena solución para implementar sistemas de procesamiento de información complejos, sin embargo no es apropiado para implementar todas las clases de aplicaciones. Teniendo en mente que los atributos de un agente inteligente son: (1) En el caso de un agente se necesita ejecución autónoma, comunicación con otros agentes y usuarios y supervisión del estado del entorno de ejecución. (2) En el caso de un agente Inteligente este debe ser capaz de utilizar símbolos y abstracciones, capaz de explorar cantidades significantes del dominio del conocimiento y capaz de adaptarse a un comportamiento orientado a objetivos. (3) Cuando se trata de un agente verdaderamente Inteligente este debe ser capaz de aprender de su entorno, capaz de tolerar errores y capaz de comunicarse usando un lenguaje natural. Un software verdaderamente inteligente posee las capacidades del software de agentes: autonomía, comunicabilidad y percepción, además de las capacidades del software inteligente: habilidad para explorar el conocimiento, tolerar errores, aprender y razonar en tiempo real y comunicarse en un lenguaje apropiado.

No hay comentarios: