Tema: Agentes en la Inteligencia Artificial. · 2016-02-04 · Implementar agentes simples...

15
Sistemas Expertos e Inteligencia Artificial. Guía No. 3 1 Tema: Agentes en la Inteligencia Artificial. 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#. Guía Número 3. Computadora con programa Microsoft Visual C#. 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. Facultad: Ingeniería Escuela: Computación Asignatura: Sistemas Expertos e Inteligencia Artificial Objetivos Específicos Materiales y Equipo Introducción Teórica

Transcript of Tema: Agentes en la Inteligencia Artificial. · 2016-02-04 · Implementar agentes simples...

Page 1: Tema: Agentes en la Inteligencia Artificial. · 2016-02-04 · Implementar agentes simples utilizando Windows Forms de Microsoft Visual C#. Materiales y Equipo Guía Número 3. ...

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

1

Tema: Agentes en la Inteligencia Artificial.

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

Guía Número 3.

Computadora con programa Microsoft Visual C#.

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.

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

Objetivos Específicos

Materiales y Equipo

Introducción Teórica

Page 2: Tema: Agentes en la Inteligencia Artificial. · 2016-02-04 · Implementar agentes simples utilizando Windows Forms de Microsoft Visual C#. Materiales y Equipo Guía Número 3. ...

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

2

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.

Page 3: Tema: Agentes en la Inteligencia Artificial. · 2016-02-04 · Implementar agentes simples utilizando Windows Forms de Microsoft Visual C#. Materiales y Equipo Guía Número 3. ...

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.

Page 4: Tema: Agentes en la Inteligencia Artificial. · 2016-02-04 · Implementar agentes simples utilizando Windows Forms de Microsoft Visual C#. Materiales y Equipo Guía Número 3. ...

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

4

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.

Page 5: Tema: Agentes en la Inteligencia Artificial. · 2016-02-04 · Implementar agentes simples utilizando Windows Forms de Microsoft Visual C#. Materiales y Equipo Guía Número 3. ...

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.

Page 6: Tema: Agentes en la Inteligencia Artificial. · 2016-02-04 · Implementar agentes simples utilizando Windows Forms de Microsoft Visual C#. Materiales y Equipo Guía Número 3. ...

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

6

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

Page 7: Tema: Agentes en la Inteligencia Artificial. · 2016-02-04 · Implementar agentes simples utilizando Windows Forms de Microsoft Visual C#. Materiales y Equipo Guía Número 3. ...

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:

Page 8: Tema: Agentes en la Inteligencia Artificial. · 2016-02-04 · Implementar agentes simples utilizando Windows Forms de Microsoft Visual C#. Materiales y Equipo Guía Número 3. ...

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

8

Lo que conoce.

La capacidad de proceso.

La habilidad requerida.

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:

Procedimiento

Page 9: Tema: Agentes en la Inteligencia Artificial. · 2016-02-04 · Implementar agentes simples utilizando Windows Forms de Microsoft Visual C#. Materiales y Equipo Guía Número 3. ...

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:

Page 10: Tema: Agentes en la Inteligencia Artificial. · 2016-02-04 · Implementar agentes simples utilizando Windows Forms de Microsoft Visual C#. Materiales y Equipo Guía Número 3. ...

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

10

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.

Page 11: Tema: Agentes en la Inteligencia Artificial. · 2016-02-04 · Implementar agentes simples utilizando Windows Forms de Microsoft Visual C#. Materiales y Equipo Guía Número 3. ...

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:

Page 12: Tema: Agentes en la Inteligencia Artificial. · 2016-02-04 · Implementar agentes simples utilizando Windows Forms de Microsoft Visual C#. Materiales y Equipo Guía Número 3. ...

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

12

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.

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:

Análisis de resultados

Page 13: Tema: Agentes en la Inteligencia Artificial. · 2016-02-04 · Implementar agentes simples utilizando Windows Forms de Microsoft Visual C#. Materiales y Equipo Guía Número 3. ...

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

Page 14: Tema: Agentes en la Inteligencia Artificial. · 2016-02-04 · Implementar agentes simples utilizando Windows Forms de Microsoft Visual C#. Materiales y Equipo Guía Número 3. ...

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

14

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

ambiente.

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.

Investigación Complementaria

Page 15: Tema: Agentes en la Inteligencia Artificial. · 2016-02-04 · Implementar agentes simples utilizando Windows Forms de Microsoft Visual C#. Materiales y Equipo Guía Número 3. ...

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

15

EVALUACIÓN

% 1-4 5-7 8-10 Nota

CONOCIMIENTO

Del 20

al 30%

Conocimiento

deficiente

de los

fundamentos

teóricos

Conocimiento

y explicación

incompleta de

los

fundamentos

teóricos

Conocimiento

completo y

explicación

clara de los

fundamentos

teóricos

APLICACIÓN

DEL

CONOCIMIENTO

Del 40%

al 60%

ACTITUD

Del 15%

al 30%

No tiene

actitud

proactiva.

Actitud

propositiva y

con

propuestas no

aplicables al

contenido de

la guía.

Tiene actitud

proactiva y

sus propuestas

son concretas.

TOTAL 100%

Guía 3: Agentes en la Inteligencia

Artificial.

Hoja de cotejo: 3

Máquina No: Alumno:

Docente: GL: Fecha: