AGENTES DE SISTEMAS EVOLUTIVOS INTRODUCCION Actualmente con el aumento en la complejidad de los sistemas de información es necesario contar con elementos de software a manera de aliados que apoyen al usuario en el manejo de su información. Se han desarrollado algunos sistemas basados en agentes que heredan del usuario su autoridad para actuar en su nombre y entonces tomar cierto tipo de decisiones de manera autónoma y productiva (sin intervención explicita del usuario). 1 ANTECEDENTES Los agentes tienen sus antecedentes en los intentos de obtener comportamientos inteligentes a partir de componentes no inteligentes y por otra parte como evolución normal del aumento en la complejidad de los sistemas de información existentes y su necesidad de cooperar. En algunos casos a los agentes de software se les intenta mostrar con características antropomórficas, como EMOCIONES, PERSONALIDAD, CREATIVIDAD, con esto los investigadores pretenden acercarse a los usuarios de una forma amigable y de ayuda en los sistemas de información. La comunicación entre agentes se ha estudiado siguiendo dos enfoques: Lenguajes imperativos. Lenguajes declarativos. LENGUAJES IMPERATIVOS: En los que el usuario le especifica al agente lo que debe hacer. LENGUAJES DECLARATIVOS: Se utilizan como intercambio de la información, en este sentido se ha desarrollado principalmente el lenguaje KQML. 2 MODELO DE INTERACCIONES ENTRE AGENTES Los agentes cuentan con propósitos que alcanzan mediante la interacción con otros agentes, en interacciones en donde cuentan con elementos para participar, y cuando no cuenta con estos el mismo decide no participar. El usuario externo es quien crea los ambientes de interacción indicando las propiedades tanto de las interacciones como de los agentes, hecho esto, las interacciones se llevan a cabo sin su intervención. Un agente tiene varios propósitos que intenta alcanzar, los cuales él únicamente los puede cambiar llevando a cabo los papeles que toma de las interacciones en las que puede participar. Las interacciones en las que participa únicamente hacen que el agente logre o no su propósito de acuerdo con los valores internos de cada agente. Una interacción tiene varios papeles que toman los agentes para ejecutarlos y propiciar el alcance de sus propósitos. Para que un agente tome un papel, debe de satisfacer los requerimientos que se especifican para cada uno, heredando las variables que ayudarán en la comunicación entre agentes. Al igual que los agentes, se generan instancias de interacciones mediante un comando de creación y la especificación de sus propiedades. 3 AREA DE AGENTES Una de las áreas de la inteligencia artificial distribuida (IAD) que más auge ha tomado en los últimos años es sin duda alguna el área de agentes. Dentro de la misma han emergido 3 campos de investigación importantes: teoría, arquitecturas y lenguajes. La teoría de agentes trata principalmente de determinar que propiedades deben de tener los agentes, cómo representarlas y razonar con ellas. También es importante explicar cómo se relacionan aspectos de obligaciones, deseos, intenciones, etc. con la información que posee el agente, o bien, cómo cambia el estado cognitivo del agente en el tiempo o cómo se ve afectado por el medio ambiente en el que se encuentra. PROPIEDADES Entre las diferentes propiedades que posee un agente quizá la más importante sea la de la autonomía. Esta propiedad es requisito para que se de otra propiedad igualmente importante, la adaptación, que tiene que ver con el comportamiento inteligente del agente. Otra clase de arquitecturas de agentes que ha tenido fuerte desarrollo es la de agentes de interacción, que trata de implantar las dinámicas de coordinación y cooperación entre agentes autónomos. Los tópicos más importantes son: comunicación, solución a problemas distribuidos, planeación multi-agente, solución a conflictos, cooperación y negociación. Los agentes de computación tienen sus orígenes en el área de IAD, heredando características muy particulares que los diferencian del software convencional. De este modo, los agentes se han beneficiado tanto de la parte de IA, conocidos como agentes inteligentes, como de la computación distribuida, llamados agentes no inteligentes. Un agente es un objeto con estado interno, que es capaz de comunicarse vía mensajes con otro objeto parecido. 4 Actualmente el área de agentes es uno de los campos con mayor potencial de desarrollo prácticamente en todos los campos de la computación. Por ejemplo, se ha observado un cambio, gradual pero significativo, de la IA basada en conocimiento (sistemas expertos) a la de agentes autónomos, o como también se le conoce IA basada en comportamiento. El auge que ha tenido esta área de agentes es debido a la demanda de contar con aplicaciones de toda clase, que puedan percibir el medio ambiente y tener el conocimiento suficiente para ejecutar acciones efectivas, realizando tareas simples o complejas, que de manera autónoma, realicen una toma de decisiones, control, planeación, análisis de diagnósticos, etc. LENGUAJES DE PROGRAMACIÓN PARA AGENTES El potencial de los agentes es producto de la tecnología de una nueva generación de lenguajes de programación, como por ejemplo, la Programación Orientada a Agentes (POA) que esta basada en lógica epistémico y en el acto de hablar. El lenguaje Java es utilizado para programar agentes, para hacer aplicaciones en Internet como, buscar, filtrar y recuperar información. Otro ejemplo de lenguaje es Telescript que se utiliza para construir agentes móviles. 5 UTILIDAD Las propiedades que poseen los agentes hacen que la utilidad de estos sea diferente al software tradicional. La utilidad esta en función de sus propiedades. Uno de los objetivos de programar agentes es apoyar al usuario a realizar un conjunto de acciones repetitivas que pueden ser automatizadas. Los agentes tienen múltiples capacidades simples y complejas, por ejemplo, cuando son intermediarios en una transacción de comercio electrónico o financiera importante y pueden además enviar un simple correo electrónico. La utilidad también se da cuando los agentes tienen la posibilidad de comunicarse y cooperar entre ellos para realizar una tarea en común de manera fácil y eficiente y si entran en conflicto, negocian para resolverlo. Dadas las características de los agentes se puede construir una gran cantidad de aplicaciones especificas de ellos, por ejemplo: agentes que recuperan y administran información, que hacen descubrimiento de conocimiento o minería de datos, que son asistentes personales, que envían y organizan correo electrónico, que controlan bibliotecas digitales y bases de datos inteligentes, etc. 6 APLICACIONES Y EJEMPLOS En este fin de siglo el desarrollo de la computación distribuida, las telecomunicaciones, las tecnologías de información y, sobre todo, la utilización masiva de Internet y del World Wide Web (WWW), han propiciado el desarrollo de una nueva clase de sistemas que contemplan la difusión del conocimiento, la comunicación. La coordinación y la colaboración entre grupos de personas, situadas en lugares geográficos diferentes. Los ambientes cooperativos de enseñanza utilizan la inteligencia artificial, las tecnologías de groupware, workflow y agentes, las redes de computadoras y las telecomunicaciones, para generar ambientes virtuales de enseñanza y, en general, de trabajo, en los que interactúan diversas personas (alumnos, profesores, investigadores, asesores, administrativos, como el Laboratorio de Agentes del CICIPN). EJEMPLOS SISTEMA DE APRENDIZAJE COOPERATIVO ( CSCL ) Se define como el uso de la computadora como un dispositivo de ayuda a los aprendices, para comunicarse y colaborar en actividades conjuntas mediante una red, asistiéndoles en la coordinación y aplicación del conocimiento en cierto dominio. Los sistemas Multi-Agentes (SMA), donde los agentes cooperan para llevar a cabo objetivos comunes, es una tecnología que promete la solución al problema de cooperación en general y en la educación en particular: En el campo de los CSCL se proponen distintas arquitecturas de los SMA (Sistema Multi-Agentes) para la creación de ambientes virtuales de aprendizaje. Un enfoque, es incluir los agentes autónomos reactivos (Similares a aprendices humanos) y agentes cognitivos (Quienes instruyen a los aprendices) en un sistema CSCL. 7 Otra tendencia en tecnología en educación cooperativa, es la de incluir un agente artificial (compañero) en el modelo del estudiante, el cual, por un lado, colabore o compita con el alumno y, por otro, que aconseje y aprenda del alumno humano. SISTEMA MULTI-AGENTES DE APRENDIZAJE Un sistema multi-agente de aprendizaje y enseñanza comprende un conjunto de agentes, que forman el entorno de educación personal de cada tutor y estudiante. El proyecto consta del desarrollo del ambiente multi-agente de asesoría y asistencia personal inteligente para el alumno que consta de agentes de los siguientes tipos: AGENTE DE BUSQUEDA EN INTERNET: Que busque en la red cursos que le interesen al alumno de acuerdo a su plan académico, que de todo lo encontrado sintetice la información de diversas fuentes. 8 AGENTE DE COLABORACION: Que compare su desarrollo académico con otros alumnos para formar grupos de asesoría y colaboración, solicite ayuda o información a otros asesores. AGENTE ASESOR PERSONAL: Selecciona, integra y ordena la información a estudiar; se comunica con el agente de búsqueda para encontrar la información relevante al tema de estudio, se comunica con el agente de colaboración para colaborar con otros miembros del grupo. AGENTE EVALUADOR: Compruebe periódicamente el aprendizaje y problemática del alumno, intenta encontrar las causas de incorrecta comprensión, se comunica con el agente asesor para reorganizar la información a estudiar, maneja el modelo de estudios AGENTE ASISTENTE PERSONAL: Que sugiera un plan personalizado de estudios al alumno de acuerdo a su formación académica, intereses, habilidades y avances, que modifique el plan de estudios del alumno si es necesario, que le diga donde encontrar material didáctico, y que le recuerde de eventos, conferencias, videoconferencias, cursos, tareas, exámenes, etc. 9