Documentos de Académico
Documentos de Profesional
Documentos de Cultura
3 1
Facultad: Ingeniería
Escuela: Computación
Asignatura: Sistemas Expertos e
Inteligencia Artificial
Objetivos Específicos
Identificar la importancia de los agentes en la Inteligencia Artificial, como estos interactúan con
las redes neuronales.
Comprender que los agentes son sensores que se usan para verificar objetos o sentir
proximidad a objetos.
Implementar agentes simples utilizando Windows Forms de Microsoft Visual C#.
Materiales y Equipo
Guía Número 3.
Computadora con programa Microsoft Visual C#.
Introducción Teórica
Se puede considerar a la Inteligencia Artificial (IA) como una disciplina orientada a la construcción de
agentes inteligentes donde se integran las diferentes áreas que está comprende. Desde hace
relativamente poco tiempo esta idea está siendo ya adoptada por investigadores en la materia; el
propio Stuart Russell ha remodelado su conocido libro Inteligencia Artificial, un enfoque moderno
[Russell 1996] para dar un enfoque de la Inteligencia Artificial orientado totalmente al desarrollo de
agentes.
De momento, se puede asegurar que, hoy en día, existe una idea generalizada dentro de la IA que
nos encontramos ante el nacimiento de una nueva tecnología, la de agentes inteligentes, que permite
abordar de una manera más apropiada la construcción de sistemas inteligentes más complejos
aplicados a muy diversos campos.
Los orígenes de la tecnología de agentes comienzan con la Inteligencia Artificial Distribuida: la
resolución de problemas (computación inteligente) de forma distribuida.
2 Sistemas Expertos e Inteligencia Artificial. Guía No. 3
El concepto de agente como entidad computacional aislada evoluciona desde la IAD debido al influjo
de la Ingeniería del Software.
El desarrollo práctico de los agentes se ha visto potenciado por el enorme crecimiento de internet:
Teoría de interfaces de usuario.
Interacción hombre-máquina
Acceso inteligente a las fuentes de información en Web.
Necesidad de programas en los que el usuario sea capaz de delegar el trabajo y la toma de
decisiones (e-commerce).
Definición de Agente.
Un agente es un sistema situado en algún entorno, dentro del cual percibe y actúa de forma
autónoma y flexible alcanzando el conjunto de objetivos para el que fue diseñado.
Es una entidad capaz de percibir el entorno y de actuar sobre él.
Es un sistema que está situado y que forma parte de un determinado entorno, que percibe este
entorno y que actúa en él continuamente y con su propia planificación, persiguiendo el objetivo
de cambiar su propia percepción.
Todo agente tiene una función u objetivo. Por ejemplo, un agente humano de bolsa tiene el
objetivo de comprar y vender acciones respondiendo a los estímulos iniciados por su cliente y
captados por sus sentidos. Una aspiradora tiene la función de aspirar cuando capta que ha sido
encendida y no aspirar cuando es apagada.
Un agente inteligente o racional trata de maximizar el valor de una medida de rendimiento, dada
la secuencia de percepciones que ha observado hasta el momento. Repitamos lo dicho
ejemplificándolo.
Sistemas Expertos e Inteligencia Artificial. Guía No. 3 3
Para Peter Norvig la programación estructurada tiene asociadas las aplicaciones basadas en
entrada/salida, la programación orientada a objetos las aplicaciones basadas en eventos y la
programación adaptativa las aplicaciones basadas en agentes inteligentes. Es decir, la respuesta a
nuestra pregunta es usamos aprendizaje automático para mejorar el rendimiento.
No obstante, el deseo de desarrollar software adaptativo no es la única razón para utilizar una
metodología de programación orientada a agentes. Los agentes tienen su campo de cultivo en la
Inteligencia Artificial Distribuida (IAD) que, como su nombre indica, es la rama de la Inteligencia
Artificial que trata de resolver de manera distribuida sus problemas, aprovechando así las ventajas
propias de la programación distribuida: robustez, paralelismo y escalabilidad.
Desde un punto de vista de ingeniería de software este paradigma también supone una evolución a
las necesidades de reutilización y encapsulamiento del código. Partiendo de la programación
orientada a objetos, el mundo está compuesto por elementos llamados objetos que tienen atributos a
los que es posible aplicarles métodos y estos pueden abstraerse a clases y estas clases pueden
abstraerse en otras clases de las que heredan métodos y/o atributos o de las que se componen. Sin
embargo, este modelo del mundo es incompleto, pues en el mundo también existen agentes con
capacidades de aprendizaje y autonomía.
También podemos usar agentes inteligentes para entender mejor el conocimiento o para poder hacer
simulación.
Propiedades Básicas.
Autonomía: un agente es completamente autónomo si es capaz de actuar basándose en su
experiencia. El agente es capaz de adaptarse aunque el entorno cambie severamente. Por otra
parte, una definición menos estricta de autonomía sería cuando el agente percibe el entorno.
Sociabilidad: este atributo permite a un agente comunicar con otros agentes o incluso con otras
entidades.
4 Sistemas Expertos e Inteligencia Artificial. Guía No. 3
Reactividad: un agente actúa como resultado de cambios en su entorno. En este caso, un agente
percibe el entorno y esos cambios dirigen el comportamiento del agente.
Iniciativa: Los agentes inteligentes deben exhibir un comportamiento orientado por sus metas,
tomando la iniciativa para satisfacer sus objetivos de diseño (proactiveness).
Benevolencia: asunción de que un agente está dispuesto a ayudar a otros agentes si esto no
entra en conflicto con sus propios objetivos.
Racionalidad: el agente siempre realiza “lo correcto” a partir de los datos que percibe del entorno.
Adaptatividad: está relacionado con el aprendizaje que un agente es capaz de realizar y si puede
cambiar su comportamiento basándose en ese aprendizaje.
Arquitectura de un agente.
Define los mecanismos que permiten interconectar los componentes tanto software como
hardware, que hacen que un agente se comporte como tal.
Especifican como se descomponen los agentes en un conjunto de módulos que interactúan entre
sí para lograr la funcionalidad requerida.
Tipos de arquitecturas.
Deliberativa.
Representación simbólica del conocimiento.
Basadas en la teoría clásica de planificación.
Parte de un estado inicial de partida, existen un conjunto de planes y un estado
objetivo a satisfacer.
Sistemas Expertos e Inteligencia Artificial. Guía No. 3 5
Reactiva.
No tener como elemento central de razonamiento un modelo simbólico.
No utilizar razonamiento simbólico complejo.
Ejemplo: arquitectura de subsunción de Roodney Brooks.
Las arquitecturas de subsunción manejan jerarquías de tareas que definen un
comportamiento.
Híbridas.
Estructuración por capas:
Vertical, sólo una capa tiene acceso a los sensores y actuadores.
Horizontal, todas las capas tienen acceso a los sensores y a los actuadores.
Las capas se organizan jerárquicamente con información sobre el entorno a
diferentes niveles de abstracción.
Tres niveles o capas:
Reactivo (bajo nivel), decisiones en base a los estímulos recibidos del entorno en
tiempo real.
Conocimiento (nivel intermedio), se centra en el conocimiento que el agente posee
del medio (representación simbólica).
Social (alto nivel), maneja aspectos sociales del entorno, incluyendo tanto información
de otros agentes, como deseos, intenciones, etc.
Un agente puede verse como un sistema capaz de definirse mediante posturas intencionales:
Actitudes que proporcionan información (actitudes de información).
Creencias.
Conocimiento.
Pro-actitudes.
Deseo.
6 Sistemas Expertos e Inteligencia Artificial. Guía No. 3
Intención.
Obligación.
Compromiso.
Elección.
Las actitudes de información están relacionadas con el conocimiento que un agente tiene sobre
su entorno.
Las pro-actitudes son aquellas que guían de algún modo las acciones del agente.
Tipos de Agentes.
Los cuatro tipos básicos de agentes adoptan los principios que subyacen en casi todos los
sistemas inteligentes, estos son:
Agentes reactivos simples.
Agentes reactivos basados en modelos.
Agentes basados en objetivos y metas.
Agentes basados en utilidad.
En la mayoría de las ocasiones, los agentes no son desarrollados de forma independiente sino
como entidades que constituyen un sistema. A este sistema se le denomina multi-agente.
En este caso los agentes no pueden interactuar entre ellos. Las interacciones más habituales
como son informar o consultar a otros agentes permiten a los agentes “hablar” entre ellos, tener
en cuenta lo que realiza cada uno de ellos y razonar acerca del papel jugado por los diferentes
agentes que constituyen el sistema. La comunicación entre agentes se realiza por medio de un
lenguaje de comunicación de agentes (ACL – Agent Communication Language).
¿Por qué?
Necesidad de construir aplicaciones complejas compuestas de multitud de subsistemas
que interaccionan entre sí.
Sistemas Expertos e Inteligencia Artificial. Guía No. 3 7
¿Para qué?
Problemas físicamente distribuidos.
Cuando la complejidad de la solución requiere de experiencia muy heterogénea.
Cuando el problema a resolver está definido sobre una red de computadoras.
La complejidad del problema es tal que se requiere plantear la solución desde distintos
puntos de vista.
El sistema debe adaptarse a cambios en la estructura o en el entorno.
La propia metodología de construcción de aplicaciones está evolucionando hacia la
consideración de unidades autómatas.
Cada agente tiene un conocimiento limitado. Esta limitación puede ser tanto:
Del conocimiento del entorno.
De la misma del grupo.
De las intenciones de los demás agentes a la hora de realizar sus propias tareas.
Cada agente tiene una mayor facilidad para hacer determinadas tareas, en función de:
8 Sistemas Expertos e Inteligencia Artificial. Guía No. 3
Lo que conoce.
La capacidad de proceso.
La habilidad requerida.
Procedimiento
Hay que tener en cuenta que el programa requerido para este agente aspiradora es muy pequeño
comparado con su tabla correspondiente. La reducción más clara se obtiene al ignorar la historia
de la percepción. Otra reducción se basa en el hecho de que cuando la cuadrícula actual está
sucia, la acción no depende de la localización.
Para ello, podemos utilizar una regla de condición-acción.
Regla de condición-acción: se lleva a cabo algún tipo de procesamiento sobre las señales
visuales para establecer la condición.
Imagínese que es el conductor de un taxi automático. Si el coche que circula delante frena
(condición), y las luces de freno se encienden, entonces lo advertiría y comenzaría a frenar
(acción).
Para nuestro agente aspiradora, tenemos el siguiente algoritmo:
Los agentes reactivos simples tienen la gran propiedad de ser simples, pero poseen una
inteligencia muy limitada.
A continuación procederemos a diseñar el simulador del agente Aspiradora.
1. Crear un proyecto de tipo Windows Forms Application, se sugiere darle el nombre de “Agente
Simple”.
2. Diseñar el formulario de tal manera que luzca similar al mostrado en la figura:
10 Sistemas Expertos e Inteligencia Artificial. Guía No. 3
3. Al dar clic al botón con la leyenda “Crear Ambiente” la aplicación debe cargar el ambiente, el
cual será una cuadrícula de 8x8 y se agregará la basura de forma aleatoria. El código para realizar
esto se muestra a continuación.
Sistemas Expertos e Inteligencia Artificial. Guía No. 3 11
Al dar clic al botón con la leyenda “Crear Ambiente”, la aplicación muestra lo que observamos en
la figura siguiente:
12 Sistemas Expertos e Inteligencia Artificial. Guía No. 3
Análisis de resultados
b) Mover el agente, considerando como posición inicial la cuadrícula (1,1). Al dar clic al botón
“Mover agente”, el agente aspiradora se moverá hacia la izquierda hasta recorrer toda la fila
1. Al llegar al final de la fila 1 podrá moverse al final de la fila 2. Es decir que podrá tener
movimientos a la izquierda, derecha y abajo. A continuación se observan unas imágenes que
muestran la funcionalidad solicitada:
automática, es decir, que al dar clic a este botón, el agente realice el recorrido de todo el
ambiente.
Investigación Complementaria
EVALUACIÓN