You are on page 1of 10

Utilización de Agentes Inteligentes para la Construcción

de Sistemas de Información Aplicados al Turismo


Pedro Cuesta Morales1, Juan M. Corchado Rodríguez1

Dpto. Lenguajes y Sistemas Informáticos, E.U.I.T. en Informática de Gestión


Universidad de Vigo
{pcuesta,corchado}@ei.uvigo.es

Resumen: Internet y las Tecnologías de la Información se están convirtiendo en


herramientas básicas. Los agentes inteligentes facilitan la construcción de sistemas de
información distribuidos que ayudan al usuario en la realización de tareas complejas. En este
artículo se presentan los aspectos básicos que caracterizan a los agentes inteligentes y se
muestra un ejemplo concreto, un agente meteorológico, encargado de la captura en tiempo
real de datos meteorológicos y su publicación para que cualquier usuario tenga acceso a
ellos. Se describe la arquitectura empleada para su implementación y su utilidad para el
sector turístico.

Palabras Clave: Internet, tecnologías de la información, sistemas de información


distribuidos, web, agentes inteligentes, sistemas multiagente, meteorología.

1. Introducción

Hoy en día estamos asistiendo a una auténtica revolución. Los avances en las
comunicaciones y en las tecnologías de la información están acercando la información al
usuario final, así como facilitando su procesamiento. Este hecho hace que se estén
convirtiendo en herramientas básicas, que hacen que cada vez cobre más fuerza la idea de que
nos encontramos inmersos en una "sociedad de la información".

Uno de los cambios radicales, tiene que ver con el soporte y canal de transmisión de la
información. Internet y la Tecnología Web, han conseguido que el usuario esté familiarizado
con información hipermedia, incluyendo texto, imágenes, sonido, animaciones, etc. Además
cualquier ordenador conectado a la red constituye una fuente fácil de entrada de información
(para planificar unas vacaciones ya no es necesario acudir a la oficina de una agencia de
viajes), que hace que ésta llegue "al instante" al destinatario (en cuanto una compañía aérea
informa que quedan plazas disponibles en un vuelo, cabe la posibilidad de realizar la reserva).
Pero no todo son ventajas, asociado al gran volumen de información disponible ha surgido
el problema de la dificultad de localización de la información. Aunque la utilización de los
buscadores (Yahoo!, AltaVista, etc.) suple en parte esta deficiencia, la cantidad de
información es tal, que se necesitan sistemas que permitan una comunicación fácil con el
usuario y que ayuden en su filtrado para obtener los resultados deseados. Con este objetivo
han surgido los denominados Agentes Inteligentes (uno de los campos en el que se aplican es
éste), que se encargan de asistir al usuario de Internet en la realización de tareas concretas,
como pueden ser la navegación, búsqueda y filtrado de información, o la organización del
correo electrónico. Un ejemplo típico de los cuales sería un agente dedicado a buscar en la red
la mejor oferta para comprar un billete de avión determinado, cuyo funcionamiento consiste
en acceder a diferentes compañías aéreas para comprobar el precio del billete en cuestión.

En general los agentes inteligentes se están utilizando en una gran variedad de


aplicaciones, debido a las ventajas sustanciales que ofrecen, entre las que destaca la
naturalidad del modelo para conceptualizar diferentes tipos de software.

De la misma manera, también están tomando relevancia los Sistemas Multiagente, que
representan una nueva forma de analizar, diseñar e implementar sistemas software complejos.
Un sistema multiagente está formado por diferentes agentes autónomos que interactúan entre
sí, para de este modo lograr la funcionalidad deseada. Cada agente realiza una serie de tareas,
y se comunica con otros agentes para intercambiar información o demandar algún servicio.
Tanto los agentes como los sistemas multiagente constituyen actualmente campos de
investigación en pleno desarrollo, a los que cada vez se dedican más recursos.

El objetivo básico de este artículo es presentar los aspectos básicos de los agentes
inteligentes como herramienta para la construcción de sistemas de información y su
aplicación al sector Turístico. Para ello, inicialmente se describen las bases teóricas de los
agentes (apartado 2), a continuación se muestra un ejemplo concreto, un agente
meteorológico (apartado 3), encargado de la captura en tiempo real de datos meteorológicos
(lluvia, temperatura, velocidad del viento, presión atmosférica, etc.) y su publicación, para
que cualquier usuario (por ejemplo el empleado de una agencia de viajes) tenga acceso a los
mismos. Se describe la arquitectura empleada para la construcción del agente (apartado 4) y
su aplicación al sector turístico (apartado 5), para finalizar con una serie de conclusiones al
respecto (apartado 6).
2. Agentes inteligentes

La definición de agente no es una tarea fácil, por el contrario, ha sido un aspecto que ha
suscitado un amplio debate en la comunidad científica (Franklin et al., 1996). Un agente es un
sistema informático, situado en algún entorno, dentro del cual es capaz de realizar acciones de
forma autónoma y flexible para así cumplir sus objetivos. Un agente recibe entradas sensibles
de su entorno y a la vez ejecuta acciones que pueden cambiar este entorno (Russell et al.,
1995).

Es ampliamente aceptada la caracterización de un agente (Woldridge et al., 1995) como


aquel sistema informático que satisface las siguientes propiedades (las cuatro primeras se
consideran básicas y el resto opcionales):
Autonomía: tiene la capacidad de actuar sin intervención humana directa o de otros
agentes.
Sociabilidad: capacidad de interaccionar con otros agentes, utilizando como medio
algún lenguaje de comunicación entre agentes.
Reactividad: un agente está inmerso en un determinado entorno del que percibe
estímulos y ante los que debe reaccionar en un tiempo preestablecido.
Iniciativa: un agente no sólo debe reaccionar a los cambios que se produzcan en su
entorno, sino que tiene que tener un carácter emprendedor y tomar la iniciativa para
actuar guiado por los objetivos que debe de satisfacer.
Movilidad: habilidad de un agente de trasladarse en una red de comunicación
informática.
Veracidad: propiedad por la que un agente no comunica información falsa
intencionadamente.
Benevolencia: un agente no tiene objetivos contradictorios y siempre intenta realizar
la tarea que se le solicita.
Racionalidad: un agente tiene unos objetivos específicos y siempre intenta llevarlos a
cabo.

Para algunos investigadores el término agente tiene una caracterización más estricta, para
que un sistema informático pueda considerarse como un agente tiene que modelarse e
implementarse usando aspectos que usualmente se aplican a los humanos. Así, Shoham define
un agente como una entidad cuyo estado está formado por componentes mentales como
creencias, capacidades, elecciones y compromisos. Estados que determina las acciones que
llevan a cabo los agentes y qué están afectados por los mensajes que reciben (Shoham, 1993).

Para otros autores un agente, en este sentido estricto, significaría un sistema que es capaz
de aprender de la experiencia (Russell et al., 1995). El diseño de un agente debe basarse en
especificar qué tipo de acción deberá emprender como respuesta a una determinada secuencia
de percepciones. Si las acciones que emprende el agente se basan exclusivamente en un
conocimiento integrado, con lo que se hace caso omiso de sus percepciones, el agente no tiene
autonomía. La conducta de un agente se basa tanto en su propia experiencia como en el
conocimiento integrado que sirve para construir el agente para el ambiente especifico en el
cual va a operar. Un sistema será autónomo en la medida en que su conducta está definida por
su propia experiencia. Es por tanto razonable dotar a un agente con ciertos conocimientos
iniciales y de capacidad para aprender.

Para la implementación de agentes se pueden utilizar lenguajes de propósito general, entre


los que cabe destacar los orientados a objetos, debido al cierto paralelismo entre objetos y
agentes, como C++ o Java, o lenguajes específicos de agentes, de los que han aparecido
numerosas propuestas en los últimos años, como Agent0, AgentK, Placa, Radl, Lalo, etc. Los
lenguajes de agentes han de permitir definir la estructura, estado y comportamiento de cada
agente.

3. Agente meteorológico

La primera tarea del agente consiste en capturar en tiempo real una serie de datos
meteorológicos, para lo que utiliza un autómata que tiene conectados una serie de sensores,
uno por cada variable climática, y que está situado en el lugar determinado del cual vamos a
tener la correspondiente información climática, en nuestro caso el edificio en el que nos
encontramos. El sistema está configurado de tal forma que el autómata lee en intervalos de 5
minutos los datos suministrados por los sensores.

Además del control de entrada, el agente es el encargado de garantizar la integridad y


fiabilidad de los datos, ya que podría suceder que los sensores pierdan con el tiempo la
calibración y realicen capturas incorrectas, o se incorpore ruido en la transmisión. El agente
detecta cualquier situación anómala y actúa en consecuencia para intentar resolver el
problema. Por ejemplo si un sensor ha producido un valor fuera de rango, el agente actúa de
la manera más "oportuna" posible, que supone la comunicación con el supervisor del sistema
para informarle de la captura incorrecta (sensor que la producido, valor capturado, fecha y
hora en la que se ha tenido lugar). Lo ideal sería que el agente solicitase una nueva lectura de
ese dato para comprobar el error, o incluso que dispusiese de mecanismos para corregirlo de
manera autónoma, para lo que debería estar "capacitado" para calibrar el sensor.

Otra tarea importante del agente es comunicarse con el usuario para proporcionarle la
información climática que este demanda. En este sentido el agente dispone de los últimos
datos capturados (se renuevan cada 5 minutos), así como cualquier otro valor anterior. La
comunicación con el usuario se establece utilizando como interface páginas web
(http://www.ei.uvigo.es/sicome/), desde donde se realiza una petición al agente para que éste
suministre la información deseada.

Por último, y no por ello menos importante, es misión del agente controlar el correcto
funcionamiento del sistema, dentro de sus capacidades de actuación. Por ejemplo si se
produce un fallo en la energía eléctrica y el autómata que captura los datos no se restaura
adecuadamente, el agente tiene que actuar en consecuencia, aunque ésta esté limitada a
informar al supervisor que no esta recibiendo los datos.

Si repasamos algunas de las propiedades que caracterizan a cualquier agente, podemos


comprobar como el agente meteorológico:


Es autónomo, funciona independientemente guiado por sus objetivos diseño, dispone


de un control sobre sus acciones y su estado interno.


Es sociable, se comunica con el usuario a través de una interface web.




Es reactivo, recibe datos meteorológicos y reacciona ante eventos que cambian su


entorno, como valores fuera de rango o errores físicos como una caída de tensión.


Es racional, en el sentido de que incorpora conocimiento, que le permite actuar guiado


por sus objetivos y así controlar la captura de datos, la comunicación con el usuario y
el correcto funcionamiento del sistema (el agente sería interesante que tuviera la
capacidad de aprender de su experiencia.).
4. Arquitectura

La arquitectura de un agente define los mecanismos que permiten interconectar los


componentes tanto software como hardware, que hacen que el agente se comporte como tal.
Un hecho evidente hoy en día, en este sentido, es que existen infinidad de propuestas, casi
tantas como equipos de investigación trabajando en el tema. Cada arquitectura particular para
construir agentes, especifica como se descompone en un conjunto de módulos que interactúan
entre sí para lograr la funcionalidad requerida. Un aspecto básico que diferencia una
arquitectura de otra es el método de descomposición del agente en tareas particulares.

Las arquitecturas se puede clasificar en función del modelo de razonamiento que utilicen
(Wooldridge et al. 1995):


Deliberativas: utilizan modelos de representación simbólica del conocimiento y suelen


estar basadas en la teoría clásica de planificación. Un ejemplo lo constituyen los
agentes intencionales, como los basados en el modelo BDI (Rao et al., 1995), que
utilizan sus creencias, deseos e intenciones para razonar.


Reactivas: caracterizadas por no tener como modelo central de razonamiento un


modelo simbólico. Como por ejemplo las arquitecturas de subsunción (Brooks 1991),
que manejan jerarquías de tareas que definen el comportamiento del agente.


Híbridas: basadas en la opinión de que para la construcción de agentes no es del todo


acertado utilizar una arquitectura totalmente deliberativa o totalmente reactiva, y
proponen combinar aspectos de ambos modelos, ejemplos de estas arquitecturas son
TouringMachines (Ferguson, 1992) e Interrap (Müller, 1997).

El agente que aquí se presenta mantiene una estructura muy simple que incorpora
elementos típicos de un modelo reactivo. El agente está provisto de cuatro módulos que
realizan unas tareas prefijadas en forma de reglas (Russell et al., 1995). Cada módulo realiza
una serie de operaciones en función de estímulos procedentes de otros módulos o del medio.
Cada módulo tiene definidas una serie de tareas que determinan su comportamiento y la
relación de subordinación o dependencia que tienen con otros módulos. Por ejemplo, si el
módulo de control de entrada detecta un error en los valores recibidos, ejecuta un proceso de
auto recuperación y se comunica con el módulo de control para informarle de que existe un
error en la captura de datos, éste a su vez a través del módulo de comunicación se lo transmite
al supervisor del sistema. Los cuatro módulos en los que se divide el agente son los
encargados de las tareas siguientes:

Control de entrada:
- Captura de datos meteorológicos.
- Validación.


Organización de datos:
- Generar página con últimas capturas realizadas.
- Almacenamiento de la información en la Base de datos.


Comunicación:
- Atender petición usuario.
- Resolver demandas de información.
- Informar administrador de errores.


Control:
- Gestión de errores.
- Garantizar el correcto funcionamiento del sistema.

Agente Meteorológico

Control Organización
de Entrada de Datos

CONTROL

Meteo-
Comunicación rología

Internet

Figura 1. Arquitectura global del agente

Para la implementación de los diferentes módulos se ha utilizado el lenguaje de


programación C. El agente funciona en un servidor web Unix y utiliza el gestor de base de
datos MiniSQL (Hughes Technologies Pty. Ltd.). La comunicación con el usuario es a través
de páginas web, desde donde se lanzan scripts CGI (implementados en C) encargados de
recoger su demanda, procesar la consulta sobre la Base de Datos y devolver la información
resultante (de nuevo al usuario) en forma de páginas web.

5. Aplicación al sector turístico

Es obvio que los avances tecnológicos están cambiando la forma en la que se realizan los
negocios. Asociado a Internet esta surgiendo una fructífera industria que trata de explotar al
máximo sus capacidades. Aunque aún la cantidad de operaciones de negocio realizadas a
través de la red no ha alcanzado los niveles previstos, si es cierto que crece día a día.

En cualquier caso no hay que olvidar que una de las ventajas básicas de Internet y de los
agentes inteligentes de cara al Turismo es que la información adecuada esta disponible de una
manera fácil y cómoda. Nuestro agente meteorológico tiene en este sentido una gran utilidad
ya que los datos meteorológicos que suministra pueden constituir un recurso estratégico de
cara a la organización de actividades turísticas.

La posibilidad de conocer la situación actual del tiempo meteorológico, así como valores
de días anteriores, permite la planificación de actividades que necesitan unas condiciones
climáticas favorables para su realización. Sin olvidar que el agente ofrece información local,
del lugar en el que están situados los sensores. Esto no supone ninguna limitación ya que se
podrían poner en funcionamiento diferentes agentes en determinados lugares que necesiten de
un conocimiento meteorológico preciso.

Es de destacar que al disponer de datos procedentes de diferentes variables climáticas su


utilización puede ser variada. Por ejemplo la lluvia y la temperatura se pueden utilizar para
organizar excursiones en catamarán a lo largo del río Miño, o la velocidad y dirección del
viento para saber si se puede practicar deportes como el ala delta, el parapente o el vuelo en
ultraligero. Pueden incluso tener utilidad médica, en el sentido de que en ciertas estaciones el
incremento de temperatura y la ausencia de lluvias pueden favorecer la subida de los niveles
de polen en el aire, que debido al número creciente de personas que padecen procesos
alérgicos constituye una información de una tremenda utilidad.
6. Conclusiones

La principal contribución de este artículo ha consistido en la justificación de la utilidad de


Internet y de los agentes inteligentes para desarrollar sistemas de información distribuidos que
sirvan de herramienta al sector turístico. Tanto la disponibilidad de información que ofrece
Internet, como la ayuda en la realización de tareas complejas que ofrecen los agentes
inteligentes, demuestran la utilidad de los sistemas de información como herramienta básica
en cualquier sector de la sociedad.

Los agentes inteligentes suponen un paso adelante en la construcción de software, ya que


añaden un carácter de autonomía, iniciativa y comportamiento racional que permite "delegar"
en ellos tareas básicas, a la vez que ofrecen al usuario una serie de servicios útiles.

También, es posible construir sistemas en los que se utilicen diferentes agentes que se
comunican entre sí. Los sistemas multiagente pueden facilitar el desarrollo de aplicaciones
típicas del sector turístico, como por ejemplo completar un paquete turístico, en donde es
necesario que se realicen diferentes tareas (reserva avión, hoteles, etc.), cada una de las cuales
se realiza por un agente independiente. El eje central del sistema desarrollado sería la
comunicación (negociación) entre los diferentes agentes autónomos, para conseguir completar
la mejor oferta que se ajuste a las características deseadas. Cada uno de estos agentes
renovaría su conocimiento, para en todo momento contener información precisa y actualizada.
Incluso, sería interesante que de la comunicación con el usuario final el agente extrajera
conocimiento, que le permitiera "conocer" mejor a éste, y poder tenerlo en cuenta para futuras
colaboraciones.

Nuestro trabajo futuro se centra en la aplicación del agente meteorológico en la


construcción de sistemas que precisen la información que este suministra. En concreto
estamos desarrollando un sistema multiagente que combina los datos meteorológicos con
datos de niveles de polen para controlar que no se superan unos niveles de riesgo que puedan
incidir en los procesos alérgicos tan habituales hoy en día, así como para predecir los periodos
de floración, información de gran interés, debido a que son en estos periodos en donde se
alcanzan los niveles máximos.
Bibliografía

Brooks, R.A. (1991). Intelligence without representation. Artificial Intelligence, vol. 47,
pp.139-159.

Ferguson, I.A., (1992). TouringMachines: An Architecture for Dynamic, Rational, Mobile


Agents. PhD thesis, clare Hall, University of Cambridge, UK.

Franklin, S., Graesser A. (1996). Is it an Agent, or just a Program?: A Taxonomy for


Autonomous Agents. Proceedings of the Third International Workshop on Agent Theories,
Architectures, and Languages. Springer-Verlag.

Jennings, N.R. , et al. (1998). A Roadmap of Agent Research and Development. Autonomous
Agents and Multi-Agent Systems, 1, 7-38.

Müller, J.P. (1997). The Design of Intelligence Agents (LNAI 1037). Springer-Verlag: Berlin,
Germany.

Rao, A.S., Georgeoff M.P. (1995). BDI Agents: From Theory to Practice. Proceedings of the
First International Conference on Multi-Agent Systems (ICMAS-95).

Russell, S., Norvig, P. (1995). Artificial Intelligence: A Modern Approach. Prentice-Hall.

Shoham, Y. (1993). Agent-Oriented Programming. Artificial Intelligence, 60(1): 51-92.

Wooldrige M., Jennings N.R. (1995). Intelligent Agents: Theory and Practice. The
Knowledge Engineering Review, vol. 10(2) pp. 115-152.

You might also like