Sie sind auf Seite 1von 15

Sistemas Expertos e Inteligencia Artificial. Guía No.

3 1

Facultad: Ingeniería
Escuela: Computación
Asignatura: Sistemas Expertos e
Inteligencia Artificial

Tema: Agentes en la 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

Un agente inteligente tiene un objetivo abstracto (ejemplo: "ofrecer a un usuario información


interesante"), tiene una forma de evaluar si esa información es interesante (ejemplo: "el usuario
lee la información sugerida"), tiene unos actuadores (ejemplo: "una caja html donde presenta
enlaces interesantes") y tiene unos sensores (ejemplo: "un conjunto de sitios web para recoger
información y filtrar la que sea interesante y el conjunto de clics que puede hacer o no el usuario
de todos esos sitios web").
La pregunta ahora es ¿cómo mejorar ese rendimiento?

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).

 Movilidad: capacidad de un agente de trasladarse a través de una red telemática.

 Veracidad: asunción de que un agente no comunica información falsa a propósito.

 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.

 Pro-actividad: un agente es pro-activo cuando es capaz de controlar sus propios objetivos a


pesar de cambios en el 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

 Sistema de planificación determina que pasos se deben de llevar a cabo para


conseguir sus objetivos.
 Como una descripción simbólica adecuada del problema.
 Integrarla en el agente.
 Problema: INTERACCION CON EL ENTORNO.

 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).

Agentes y Sistemas Multiagente.


Un sistema basado en agentes, es aquel que utiliza el concepto de agente como mecanismo de
abstracción.
Un sistema multiagente es aquel que se diseña e implementa pensando en que estará compuesto
por varios agentes que interactuarán entre sí.

¿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

 La utilización de agentes y técnicas multiagente permite la gestión inteligente de un


sistema complejo, coordinando los distintos subsistemas que lo componen e integrando
objetivos particulares de cada subsistema en un objetivo común.

¿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.

Características de los Sistemas Multiagentes.


 Existe una colección de agentes, definido cada uno de ellos por sus propias habilidades:
 Adquisición de datos.
 Comunicación.
 Planificación.
 Actuación.

 El conjunto de todos los agentes tiene asignada una misión.


 La misión puede descomponerse en diferentes tareas independientes, de forma que
se puedan ejecutar en paralelo.
 El conjunto de agentes debe ser capaz de asignarse las tareas apropiadas a cada
uno en función de la adecuación del agente a esa tarea y la realización de la misión
en común.

 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

Ejemplo 1. En esta sesión de laboratorio simularemos el funcionamiento de un agente reactivo


simple: el agente aspiradora en Microsoft Visual C#.

Recordemos que este es el tipo de agente más sencillo.


Las acciones del agente se establecen en función a una tabla de percepción → acción
Seleccionan las acciones sobre la base de las percepciones actuales, ignorando el resto de las
percepciones históricas.
Para nuestro ejemplo, el agente aspiradora, es un agente reactivo simple porque toma sus
decisiones sólo con base en la localización actual y si ésta está sucia.

La función de este agente aparece en la siguiente tabla:


Sistemas Expertos e Inteligencia Artificial. Guía No. 3 9

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

Las cuadrículas de color verde indican la basura en el ambiente, el agente se ha representado


con la letra “A” y se colocará siempre en la cuadricula (1,1).
La funcionalidad para los botones titulados “Mover Agente” y “Completo” la realizará el estudiante
como ejercicio.
El código propuesto es un ejemplo de cómo podría resolverse. Pero también puede elaborarse
con un arreglo de botones, de textbox, u otra forma creativa que defina cada estudiante.

Análisis de resultados

Tomando como referencia el código de ejemplo proporcionado, se les pide implementar un


Simulador para el agente simple “Aspiradora” con la siguiente funcionalidad:
a) Agregar ambiente (considerando la cuadrícula de 8x8 y la colocación de basura de forma
aleatoria. A continuación se observan unas imágenes que muestran la funcionalidad
solicitada:
Sistemas Expertos e Inteligencia Artificial. Guía No. 3 13

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:

En las imágenes anteriores observamos el proceso de recorrido de la cuadrícula que realiza


el agente aspiradora, considerando que si la casilla actual está sucia, la limpia y se mueve
hacia la siguiente casilla hacia la izquierda o hacia la derecha, según corresponda. La forma
en que se desplaza el agente aspiradora se muestra en la primera imagen de la izquierda,
y la secuencia del movimiento lo observamos en el resto de imágenes en el orden de
izquierda a derecha y de arriba hacia abajo.

c) Con el botón “Completo”, implementar la simulación del agente aspiradora en forma


14 Sistemas Expertos e Inteligencia Artificial. Guía No. 3

automática, es decir, que al dar clic a este botón, el agente realice el recorrido de todo el
ambiente.

Investigación Complementaria

Para la siguiente semana:


Aplicar las modificaciones necesarias, para agregar mayor funcionalidad al programa simulador
del agente aspiradora.
Deben implementarse las siguientes opciones:
a. El usuario debe indicar la posición inicial del agente en la cuadrícula.

b. El usuario debe decidir la forma en que se desplazará el agente en el ambiente:


i. De izquierda a derecha y de derecha a izquierda, por filas.
ii. De arriba hacia abajo y de abajo hacia arriba por columnas.

c. Con el botón “Completo”, implementar la simulación del agente aspiradora en forma


automática, es decir, que al dar clic a este botón, el agente realice el recorrido de todo el
ambiente, considerando las condiciones seleccionadas por el usuario, de acuerdo a lo indicado
en los literales a y b.
Sistemas Expertos e Inteligencia Artificial. Guía No. 3 15

Guía 3: Agentes en la Inteligencia Hoja de cotejo: 3


Artificial.

Alumno: Máquina No:

Docente: GL: Fecha:

EVALUACIÓN

% 1-4 5-7 8-10 Nota

CONOCIMIENTO Del 20 Conocimiento Conocimiento Conocimiento


al 30% deficiente y explicación completo y
de los incompleta de explicación
fundamentos los clara de los
teóricos fundamentos fundamentos
teóricos teóricos

APLICACIÓN Del 40%


DEL al 60%
CONOCIMIENTO

ACTITUD Del 15% No tiene Actitud Tiene actitud


al 30% actitud propositiva y proactiva y
proactiva. con sus propuestas
propuestas no son concretas.
aplicables al
contenido de
la guía.
TOTAL 100%

Das könnte Ihnen auch gefallen