inteligencia artificial ii: conocimiento, razonamiento y ... · pdf fileinteligencia...

26
- : , Facultad de Física e Inteligencia Artificial Departamento de Inteligencia Artificial http://www.uv.mx/dia/ 2013, Enero

Upload: hakhanh

Post on 30-Jan-2018

221 views

Category:

Documents


0 download

TRANSCRIPT

alejandro guerra-hernández

inteligencia artificial ii: conocimiento,razonamiento y planeación

notas de curso

Facultad de Física e Inteligencia ArtificialDepartamento de Inteligencia Artificialhttp://www.uv.mx/dia/

2013, Enero

Alejandro Guerra-Hernández. Inteligencia Artificial II: Conocimiento, Razonamiento y Pla-neación. Universidad Veracruzana, Facultad de Física e Inteligencia ArtificialDepartamento de Inteligencia Artificial, Xalapa, Ver., México, 2013.

website:http://www.uv.mx/aguerra/

e-mail:[email protected]

A B S T R A C T

Welcome to the notes for Artificial Intelligence II, a course about Knowledge, Reaso-ning and Planning. The contents correspond roughly to the part III of Artificial Inte-lligence, a modern approach, although they are also influenced by other texts aboutlogic in computer science, model checking and rational agency.

R E S U M E N

Bienvenidos a las notas del curso Inteligencia Artificial II: Conocimiento, Razonamien-to y Planeación. El contenido de este curso corresponde a la parte II del libro Inteligen-cia Artificial, un enfoque Moderno, aunque está influenciado por otros textos sobrela lógica en la ciencias de la computación, la verificación de modelos y los agentesracionales.

A G R A D E C I M I E N TO S

A V. Angélica García Vega y José Negrete Martínez

Xalapa, Ver., México AlejandroEnero 2013 Guerra-Hernández

iii

Í N D I C E G E N E R A L

1 agentes inteligentes 1

1.1 Comportamiento flexible y autónomo 4

1.2 Medio Ambiente 6

1.3 PEAS 8

1.4 Lecturas y ejercicios sugeridos 9

2 arquitectura y programa agente 11

2.1 Agentes reactivos 14

2.2 Agentes con estado 15

2.3 Agentes lógicos 16

2.4 Agentes basados en Metas 18

2.5 Agentes basados en funciones de utilidad 19

2.6 Lecturas y ejercicios sugeridos 20

bibliografía 21

iv

1 A G E N T E S I N T E L I G E N T E S

La Inteligencia Artificial tiene como objetivo el estudio de las entidades inteligentes;pero a diferencia de la filosofía, la psicología, las neurociencias, y demás disciplinascuyo objeto de estudio está relacionado con la inteligencia, su meta no tiene que verúnicamente con la comprensión de estas entidades, sino con su construcción. La cons-trucción de agentes racionales como concepto unificador dentro de la InteligenciaArtificial, constituye el curiosamente llamado, nuevo enfoque de la Inteligencia Arti-ficial, claramente definido en el texto introductorio de Russell y Norvig [19]. Inclusoantagonistas de las tecnologías basadas en agentes, como Lanier1, coinciden en que elconcepto de agente es inherente al de Inteligencia Artificial.

Ciencias Cognitivas

Inteligencia Artificial

Filosofía

Neuro Ciencias

Lingüistica

Psicología Cognitiva

Figura 1: La Inteligencia Artificial en el contexto de las Ciencias Cognitivas: la diferencia essu constructivismo inherente.

Varela [21] situa a la Inteligencia Artificial entre las Ciencias Cognitivas (Ver figura1), enfatizando su constructivismo inherente que la diferencia de otras disciplinas quecomparten objetivos similares: filosofía, neuro ciencias, lingüistica, filosofía cognitiva,etc. Esta geografía, cabe mencionar, es de suma utilidad para reflexionar acerca delcarácter científico e ingenieril de la Inteligencia Artificial.

Por tanto, no deja de ser sorprendente que no sea hasta finales de los años ochentaque el concepto de agente es incorporado a la Inteligencia Artificial, como un temaque se pretende unificador. Parte del problema, pudiera deberse a un distanciamien-to entre los intereses científicos y prácticos del área. Este capítulo espera ofrecer unacercamiento entre ambas perspectivas. Primero ¿Qué es un agente? ¿De donde adop-tamos este término?

1 Lanier [11] argumenta que la interacción de los agentes artificiales con los humanos, difícilmente puedencalificarse de inteligente. En su opinión nuestros actuales agentes resultan un verdadero peligro para lahumanidad – Estos agentes no se volverán inteligentes, pero los humanos ajustarán su comportamientoy sus expectativas al limitado comportamiento de algo que se les ha presentado como inteligente.

1

2 agentes inteligentes

Históricamente, fuera de la Inteligencia Artificial, el término agente ha sido usadocon dos acepciones. Primero, a partir de Aristóteles [1] y hasta nuestros días, en fi-losofía el término agente se ha referido a una entidad que actúa con un propósitodentro de un contexto social. Segundo, la noción legal de agente, como la personaque actúa en beneficio de otra con un propósito específico, bajo la delegación limitadade autoridad y responsabilidad, estaba ya presente en el derecho Romano y ha sidoampliamente utilizada en economía [14].

En el contexto de la computación [25], el concepto de agente se consolida como unasolución a las demandas actuales: ubicuidad, interconexión, inteligencia, delegacióny homocentrismo. Esto es, en entornos como el que se muestra en la figura 2,dondetenemos una diversidad de dispositivos de cómputo distribuidos en nuestro entornoe interconectados, los agentes inteligentes emergen como la herramienta para delegaradecuadamente nuestro trabajo y abordar esta problemática desde una perspectivamás familiar para usuarios, programadores y diseñadores.

InternetTelefonía

Cine/TV

Banca

Tiendas

Trabajo

Escuela

Figura 2: El entorno computacional actual: ubicuo, interconectado, social, ¿inteligente?

Franklin y Graesser [8] argumentan que todas las definiciones del término agenteen el contexto de la Inteligencia Artificial, se basan en alguna de estas dos acepcioneshistóricas. Una definición consensual de agente [19, 26] puede ser:

Un agente es un sistema computacional capaz de actuar de manera autó-noma para satisfacer sus objetivos y metas, mientras se encuentra situadopersistentemente en su medio ambiente.

Esta definición que puede parecer demasiado general, provee una abstracción delconcepto de agente basada en su presencia e interacción con el medio ambiente (Verla Figura 3). Russell y Subramanian [18] encuentran que esta abstracción presenta almenos tres ventajas:

1. Nos permite observar las las facultades cognitivas de los agentes al servicio deencontrar cómo hacer lo correcto.

agentes inteligentes 3

Ambiente

agentePercepción

Acción

Figura 3: Abstracción de un agente a partir de su interacción con el medio ambiente.

2. Permite considerar diferentes tipos de agente, incluyendo aquellos que no sesupone tengan tales facultades cognitivas.

3. Permite considerar diferentes especificaciones sobre los sub-sistemas que com-ponen los agentes.

Consideren el ejemplo 1. Es discutible concebir un daemon de sistema operativo co-mo un agente, pero tal sistema cumple con la definición consensual de agente. Es más,este agente se las arregla para identificar a su usuario, encontrar su buzón electrónicoen la red, buscar mensajes nuevos y comunicar al usuario la presencia de éstos. Lastres ventajas señaladas de tal definición, se aplican en este caso. El resultado inmediatoes que podemos aproximar la definición de xbiff de una manera más comprensiblepara el usuario, sin referenciar en lo absoluto a los protocolos propios del correo-ecomo POP, IMAP, MAPI, etc., ni a implementación particular alguna.

Ejemplo 1. El deamon de X Windows xbiff está situado en un ambiente UNIX, vigilandoconstantemente el buzón de su usuario para avisarle cuando llegan mensajes nuevos a travésde una interfaz gráfica.

Si bien hemos presentado al xbiff como un agente, no hemos dicho que se trate deuna entidad inteligente. Se dice que un agente es racional si hace lo correcto2. Unaprimera aproximación a la definición de lo “correcto” consiste en asumir que unaacción correcta es aquella que causa que el agente tenga un mayor éxito. Esto reduceel problema de la racionalidad a definir cómo y cuando se debe evaluar el “éxito” delagente.

El término medida de desempeño se refiere al criterio usado para determinar el éxi-to de un agente. Es preferible manejar una medida de desempeño objetiva impuestapor alguna forma de autoridad. Esto es, nosotros como observadores estableceremospara cada agente, un estándar de lo que significa ser exitoso en un ambiente dado, yusaremos ese estándar para medir el desempeño del agente. Bajo ninguna circunstan-cia, el agente puede manipular3 tal estándar. El ejemplo 2 nos muestra una medidade desempeño que cumple con las características mencionadas.

Ejemplo 2. En el Segundo Torneo Nacional de Robots Limpiadores 2005 (Xalapa, Ver., Mé-xico), el desempeño del agente es establecido por un estándar externo al agente, especificadomediante la formula de evaluación diseñada por los organizadores:

2 En su inglés original, la frase tiene mayor peso –Do the right thing.3 Un agente que manipula la medida de desempeño, suele llegar a razonamientos del tipo –Al fin y al

cabo, quién diablos quiere una maestría.

4 agentes inteligentes

PT =∑i

(CLi ×DAi)× (TMax/TOper)

donde: PT es el puntaje total. El segundo término evalúa la persistencia del agente: TMax esel tiempo máximo de la prueba y TOper es el tiempo que el robot se mantuvo en operación.Si el robot trabaja durante toda la prueba no es penalizado, si no la puede terminar, si lo es.El primer término evalúa la capacidad del agente. Para ello el piso a limpiar, rectangular, sedivide conceptualmente en celdas. CLi es la i-ésima celda limpiada con éxito, o si se prefieretoma valor 1 si la celda se limpio, y 0 en caso contrario. DAi es el valor de dificultad de accesoa la i-ésima celda limpiada.

Es necesario precisar que la racionalidad de un agente se define en relación con eléxito esperado dado lo que el agente ha percibido. Esto es, no podemos exigir a unagente que tome en cuenta lo que no puede percibir, o haga lo que sus efectores nopueden hacer. Por lo tanto, la racionalidad de un agente a un tiempo dado dependede:

• La medida de desempeño que define el estándar de éxito.

• La secuencia de percepciones del agente, esto es, todo lo que el agente hallapercibido hasta el tiempo dado.

• El conocimiento del agente sobre el medio ambiente en el que está situado.

• La habilidad del agente, esto es, las acciones que el agente puede llevar a cabocon cierta destreza.

Un agente racional ideal es aquel que para toda secuencia de percepciones posible,selecciona y ejecuta una acción que se espera maximice la medida de desempeño, conbase en la información que proveen su percepción y conocimiento sobre el ambiente.

Luego entonces, es posible describir un agente por medio de una tabla con lasacciones que el agente toma en respuesta a cada posible secuencia de percepciones.Esta tabla se conoce como el mapeo percepción-acción. Por lo tanto un mapeo idealdescribe a un agente ideal y define el diseño de un agente ideal. A la búsqueda deun mecanismo que aproxime este mapeo ideal, se le conoce como el problema deselección de acción. El ejemplo 3 muestra el mapeo ideal de xbiff.

Ejemplo 3. En el caso de xbiff el mapeo ideal es muy sencillo. Si el buzón contiene al menosun mensaje con la etiqueta “nuevo”, desplegar el icono de mensaje nuevo; en cualquier otrocaso, desplegar el icono de mensajes leídos.

1.1 comportamiento flexible y autónomo

Independientemente de la implementación usada para construir a xbiff, no resultanatural identificar a los daemons de UNIX como agentes y menos aún como agentesinteligentes. Foner [7] argumenta que para ser percibido como inteligente, un agentedebe exhibir cierto tipo de comportamiento, caracterizado más tarde por Wooldridge

1.1 comportamiento flexible y autónomo 5

y Jennings [26], como comportamiento flexible y autónomo. Este tipo comportamien-to se caracteriza por su:

• Reactividad. Los agentes inteligentes deben ser capaces de percibir su medioambiente y responder a tiempo a los cambios en él, a través de sus acciones.

• Iniciativa. Los agentes inteligentes deben exhibir un comportamiento orientadopor sus metas, tomando la iniciativa para satisfacer sus objetivos de diseño (pro-activeness).

• Sociabilidad. Los agentes inteligentes deben ser capaces de interaccionar conotros agentes, posiblemente tan complejos como los seres humanos, con miras ala satisfacción de sus objetivos.

Una caracterización más detallada de autonomía es presentada por Covrigaru y Lind-say [4]. Su desiderata, que incluye algunos de los aspectos ya mencionados, expresaque un agente se percibe como autónomo en la medida en que:

1. Su comportamiento está orientado por sus metas y es capaz de seleccionar quemeta va a procesar a cada instante.

2. Su existencia se da en un período relativamente mayor al necesario para satisfa-cer sus metas.

3. Es lo suficientemente robusto como para seguir siendo viable a pesar de loscambios en el ambiente.

4. Puede interaccionar con su ambiente en la modalidad de procesamiento de in-formación.

5. Es capaz de exhibir una variedad de respuestas, incluyendo movimientos deadaptación fluidos; y su atención a los estímulos es selectiva.

6. Ninguna de sus funciones, acciones o decisiones, está totalmente gobernada porun agente externo.

7. Una vez en operación, el agente no necesita ser programado nuevamente por unagente externo.

De entre todos estos puntos, el sexto requiere una defensa rápida puesto que ladimensión social de los agentes no será abordada en este texto4. En filosofía políticaliberal, es aceptado que los agentes solo pueden llegar a ser autónomos si se da unconjunto de condiciones necesarias para ello. Diferentes condiciones son consideradas,por ejemplo Rawls [17] habla de bienes primarios, bienes que son medios necesariospara que el agente tenga mayor éxito para satisfacer sus “intenciones” y avanzar ensu plan de vida a largo término. Es necesaria una pluralidad de tales bienes paraconfigurar lo que él llama contexto de elección. Esta pluralidad es posible únicamentesi el agente tiene una relación cercana con su ambiente social y cultural. En el contextode Inteligencia Artificial, es Newell [16] en su Unified Theories of Cognition (p. 20),

4 Castelfranchi [3] presenta una excelente introducción a las interacciones sociales entre agentes.

6 agentes inteligentes

quien ofrece argumentos similares y señala la bimodailidad entre la autonomía y lapertenencia a una comunidad social.

Covrigaru y Lindsay argumentan que ser autónomo, depende no sólo de la habili-dad para seleccionar metas u objetivos de entre un conjunto de ellos, ni de la habilidadde formularse nuevas metas, sino de tener el tipo adecuado de metas. Los agentes ar-tificiales son usualmente diseñados para llevar a cabo tareas por nosotros, de formaque debemos comunicarles que es lo que esperamos que hagan. En un sistema compu-tacional tradicional esto se reduce a escribir el programa adecuado y ejecutarlo. Unagente puede ser instruido sobre que hacer usando un programa, con la ventaja co-lateral de que su comportamiento estará libre de incertidumbre. Pero programar unagente de esta forma, atenta contra su autonomía, teniendo como efecto colateral laincapacidad del agente para enfrentar situaciones imprevistas mientras ejecuta su pro-grama. Las metas y las funciones de utilidad son dos maneras de indicarle a un agentelo que hacer, sin decirle cómo hacerlo.

1.2 medio ambiente

Por medio ambiente, entendemos el espacio donde un agente, o un grupo de ellos, seencuentra situado. Brooks [2] argumenta que el medio ambiente por excelencia es elmundo real, y en su propuesta todo agente toma una forma robótica. Por el contrario,Etzioni [5], considera que no es necesario que los agentes tengan implementacionesrobóticas porque los ambientes virtuales, como los sistemas operativos y el web, sonigualmente válidos que el mundo real. En esta presentación asumimos la posición deEtzioni, resaltando que lo importante es que la interacción del agente con su ambientese de en los términos señalados en nuestra definición de agente, esto es, en formaautónoma bajo persistencia temporal. Russell y Norvig [19] señalan que, más allá deesta controversia, es importante identificar que existen diferentes tipos de ambientes:

• Observable vs. Parcialmente observable. Si los sensores de un agente le per-miten percibir el estado completo del ambiente en cada punto en el tiempo,decimos que el ambiente es observable. Un ambiente es efectivamente observa-ble si los sensores del agente detectan todos los aspectos relevantes para decidirque acción debe llevarse a cabo. Relevancia aquí depende de la definición defunción de desempeño. Los ambientes observables son convenientes debido aque en ellos, un agente no necesita mantener el historial de estados del ambien-te para ser efectivo. Un ambiente puede ser parcialmente observable debido ala imprecisión y el ruido en los sensores; o bien porque algunos aspectos delambiente caen fuera del rango de lectura de los sensores.

• Determinista vs. Estocástico. Si el próximo estado del ambiente está determina-do por la acción que ejecuta el agente, se dice que el ambiente es determinista. Siotros factores influyen en el próximo estado del ambiente, éste es estocástico. Siel ambiente es parcialmente observable, entones aparecerá como no estocástico.Esto es particularmente cierto en el caso de ambientes complejos, donde es di-fícil dar seguimiento a los aspectos no observables del ambiente. Generalmente

1.2 medio ambiente 7

es mejor considerar estas propiedades del ambiente, desde el punto de vista delagente. El carácter estocástico del ambiente captura dos nociones importantes:

1. El hecho de que los agentes tienen una esfera de influencia limitada, esdecir, en el mejor de los casos tienen un control parcial de su ambiente;

2. y el hecho de que las acciones de un agente puede fallar y no lograr elresultado deseado por el agente.

Por ello, es más sencillo construir agentes en ambientes deterministas. Si el am-biente es determinista, excepto para las acciones de otros agentes, se dice que elambiente es estratégico.

• Episódico vs. Secuencial. En un ambiente episódico, la experiencia de un agen-te puede evaluarse en rondas. Las acciones se evalúan en cada episodio o ronda, esto es, la calidad de la acción en los episodios subsecuentes, no depende delas acciones ocurridas en episodios previos. Por ejemplo, el detector de basuraen las botellas de una cervecería es episódico: la decisión de si una botella estasucia o no, no depende de los casos anteriores. Dada la persistencia temporal delos agentes, estos tienen que hacer continuamente decisiones locales que tienenconsecuencias globales. Los episodios reducen el impacto de estas consecuen-cias, y por lo tanto es más fácil construir agentes en ambientes episódicos. Unprograma que juega ajedrez está en un ambiente secuencial.

• Estático vs. Dinámico. Si el ambiente puede cambiar mientras el agente se en-cuentra deliberando, se dice que es dinámico; de otra forma, se dice estático. Siel ambiente no cambia con el paso del tiempo, pero si lo hace con las accionesdel agente si lo hace, se dice que el ambiente es semi-dinámico. Los ambientesdinámicos tienen dos consecuencias importantes: Un agente debe percibir con-tinuamente, porque aún si no ha ejecutado ninguna acción entre los tiempos t0y t1, el agente no puede asumir que el estado del ambiente sea el mismo en t0que en t1; Otros procesos en el ambiente pueden interferir con las acciones delagente, incluyendo las acciones de otros agentes. Por lo tanto, es más sencillodiseñar agentes en ambientes estáticos.

• Discreto vs. Continuo. Si hay un número limitado de posibles estados del am-biente, distintos y claramente definidos, se dice que el ambiente es discreto; deotra forma se dice que es continuo. Esta propiedad puede aplicarse al estado delambiente; a la forma en que se registra el tiempo y; a las percepciones y accionesde los agentes.Es más fácil construir agentes en ambientes discretos, porque lascomputadoras también son sistemas discretos y aunque es posible simular siste-mas continuos con el grado de precisión deseado, una parte de la informacióndisponible se pierde al hacer esta aproximación. Por lo tanto, la informaciónque manejan los agentes discretos en ambientes continuos es inherentementeaproximada.

• Mono vs. Multi-Agente A pesar de que esta categorización de los ambientesparece obvia, esconde una cuestión en extremo relevante: ¿Qué entidades en elsistema son considerados por el agente como agentes? En general, un agente

8 agentes inteligentes

considerara a otra entidad como un agente si su desempeño depende del com-portamiento de esa entidad. La clave aquí es el concepto de interacción que dalugar a ambientes competitivos y cooperativos.

Esta categorización sugiere que es posible encontrar diferentes clases de ambientes.Russell y Norvig [19] presentan algunos ejemplos de ambientes bien estudiados enInteligencia Artificial y sus propiedades (ver Cuadro 1). Cada ambiente, o clase de am-bientes, requiere de alguna forma agentes diferentes para que estos tengan éxito. Laclase más compleja de ambientes corresponde a aquellos que son inaccesibles, no epi-sódicos, dinámicos, continuos y multi-agente, lo que desgraciadamente correspondea nuestro ambiente cotidiano.

Ambiente Observable Determinista Episódico Estático Discreto SMACrucigrama si si no si si monoAjedrez con reloj si estratégico no semi si multiBackgammon si estocástico no si si multiPoker parcial estocástico no si si multiTutor inglés parcial estocástico no no si multiBrazo robótico efectivo estocástico si no no monoControl refinería parcial estocástico no no no monoRobot navegador parcial estocástico no no no monoAnálisis imágenes si si si semi no monoManejo de autos parcial estocástico no no no multiDiagnóstico parcial estocástico no no no mono

Cuadro 1: Ejemplos de ambientes estudiados en Inteligencia Artificial y sus propiedades se-gún Russell y Norvig [19].

Con los elementos discutidos hasta ahora, es posible definir a un agente racionalcomo aquel que exhibe un comportamiento flexible y autónomo, mientras está situadoen un sistema de información, por ej., un sistema operativo o el web. Esto constituye loque Wooldridge y Jennings [26] llaman la noción débil de agente, como contra partede una noción fuerte que además de las propiedades mencionadas hasta ahora, utilizatérminos que hacen referencia a propiedades que solemos aplicar exclusivamente alos seres humanos y que he entrecomillado hasta ahora en el texto: creencias, deseos,intenciones. Si descartamos que el medio ambiente sea un sistema de informaciónnecesariamente, los robots pueden ser caracterizados como agentes racionales.

1.3 peas

Hasta el momento hemos hablado de los agentes en términos de su comportamiento.En algún momento tendremos que discutir los detalles internos de los agentes. Nues-tro trabajo consistirá en diseñar un programa de agente: una función que implemente laselección de acción. Asumimos que tal programa se ejecutará en algún dispositivo decómputo, identificado como la arquitectura del agente. La arquitectura de un agentepuede ser una simple computadora, o puede incluir dispositivos hardware especiales,como cámaras de vídeo, sonares, etc. Además, la arquitectura puede proveer software

1.4 lecturas y ejercicios sugeridos 9

Agente Desempeño Ambiente Actuadores SensoresSistema salud paciente, paciente, hospital, preguntas, lecturas,diagnóstico minimizar costos y persona, pruebas reportes,médico demandas tratamientos diagnósticos, respuestas

Cuadro 2: Ejemplos de agentes y su descripción PAGE según Russell y Norvig [19].

que funcione como el sistema operativo del agente, por ejemplo, que facilite la inter-acción del programa de agente con la computadora donde se ejecuta, de forma que elagente pueda ser programado a un nivel más alto. La siguiente expresión resume larelación entre agente, arquitectura y programa:

agente = arquitectura+ programa

Antes de diseñar al programa de un agente, debemos tener una idea clara de lasposibles percepciones, acciones, medida de desempeño a satisfacer y la clase de am-biente en la que el agente estará situado. Por sus siglas en inglés, a esta descripción sele conoce como PEAS (performance, environment, actuators, sensors). El Cuadro 2 mues-tra un caso de estudio.

1.4 lecturas y ejercicios sugeridos

Se sugiere una lectura rápida de los capítulos uno y dos del libro de Russell y Nor-vig [19] para una panorámica del tema de los agentes racionales con respecto a laInteligencia Artificial. Huns y Singh [10] ofrecen una colección de artículos funda-mentales en el área, algunos de los cuales serán revisados en las tareas del curso.Weiß [23] estructuró el primer texto completo y coherente sobre el estudio de los Sis-temas Multi-Agentes. Su introducción al libro es altamente recomendable como unarevisión de los problemas propios del área. Finalmente Wooldridge [25] nos ofreceun texto de introducción básico a los Sistemas Multi-Agentes, imprescindible por sucobertura y complejidad moderada.

Problema 1. Describa un ejemplo de agente y su medio ambiente. Base su descripción enel esquema PEAS ¿Existe un mapeo ideal para su agente? ¿Puede definir una medida dedesempeño para su agente?

Problema 2. Describa un agente financiero que opera en un mercado de valores, en los térmi-nos utilizados en este capítulo.

2 A R Q U I T E C T U R A Y P R O G R A M A A G E N T E

Es posible formalizar la definición abstracta de agente que hemos presentado (p. 3),en la forma de una arquitectura abstracta de agentes Wooldridge [24]. Primero asu-miremos que el ambiente puede caracterizarse por medio de un conjunto finito deestados discretos posibles, definido como:

E = {e, e ′, . . . }

Como hemos visto, no todos los ambientes son discretos, en el sentido estricto deltérmino. Sin embargo, asumir que el ambiente es discreto facilitará esta primera apro-ximación formal al concepto de agente. Por otra parte, este supuesto se justifica porel hecho de que aún cuando el ambiente no fuese discreto, éste puede ser modeladocomo un ambiente discreto con cierto nivel deseable de precisión.

Definamos la competencia de un agente, como el conjunto finito de acciones queéste puede ejecutar:

Ac = {α,α ′, . . . }

Ahora, supongamos que el ambiente se encuentra en algún estado inicial e0 y que elagente comienza su actividad eligiendo una acción α0 en ese estado. Como resultadode esta acción, el ambiente puede responder con cierto número de estados posibles.Eventualmente, uno de estos estados posibles resulta de esta interacción, digamos e1.Inmerso en este nuevo estado del ambiente, el agente selecciona otra acción a ejecutar,y así continua. Una corrida r de un agente en un ambiente es, por lo tanto, unasecuencia finita de estados y acciones intercalados:

r = e0α0−→ e1

α1−→ e2α2−→ e3

α3−→ · · · αu−1−→ eu

Sea R el conjunto de todas las posibles secuencias finitas sobre E y Ac. DefinimosRAc como el subconjunto de las corridas que terminan en una acción y RE como elsubconjunto de las corridas que terminan en un estado del ambiente.

Para modelar el efecto de una acción en el ambiente, usamos una función de tran-sición entre estados1 que mapea una corrida terminando en acción a un conjunto deposibles estados del ambiente:

τ : RAc → ℘(E)

En esta forma, el ambiente se asume como sensible a su historia, esto es, su próximoestado no está determinado exclusivamente por la acción ejecutada por el agente en

1 Véase Fagin, Halpern, Moses y col. [6], p. 154, pero aquí τ es aplicada a un solo agente.

11

12 arquitectura y programa agente

el estado actual. Las acciones ejecutadas por el agente en el pasado, también afectanesta transición. Esta definición introduce un grado de indeterminismo en el ambiente,y por lo tanto, incertidumbre sobre el resultado de una acción ejecutada en ciertoestado. Como vimos, considerar que el ambiente es no determinista, es importantepara entender las limitaciones de los agentes.

Si τ(r) = ∅ para todo r ∈ RAc, entonces no hay posibles estados sucesores para ry se dice que el sistema ha terminado su corrida. Asumimos que todas las corridasterminan eventualmente.

Un ambiente se define como una tripleta Env = 〈E, e0, τ〉 donde E es el conjuntode los posibles estados del ambiente, e0 ∈ E es un estado inicial y τ es la función detransición de estados.

Los agentes se modelan como funciones que mapean corridas que terminan en unestado del ambiente, a acciones:

Ag : RE → Ac

Observen que mientras los ambientes se asumen no deterministas, asumimos quelos agentes son deterministas.

Un Sistema agente es una tupla conformada por un agente y un ambiente. Elconjunto de posibles corridas del agente Ag en el ambiente Env se denota comoR(Ag,Env). Por simplicidad, consideraremos por ahora solo corridas finitas. Una se-cuencia de la forma:

(e0,α0, e1,α1, e2, . . . )

representa una corrida del agente Ag en el ambiente Env = 〈E, e0, τ〉 si y sólo si e0 esel estado inicial del ambiente Env; α0 = Ag(e0); y para u > 0:

eu ∈ τ((e0,α0, . . . ,αu−1))

y

αu = Ag((e0,α0, . . . , eu))

Puesto que nuestra tarea es implementar programas de agente, podemos usar laformalización propuesta para definir un programa de agente que acepte percepcionesde su ambiente y regrese acciones sobre éste. Como habíamos mencionado, la formamás sencilla de implementar un programa de agente es a través de su mapeo ideal. Elalgoritmo 1 muestra la función que implementa un agente de este tipo.

Aunque ésta es también la forma más sencilla de fracasar en la construcción deun agente inteligente. Aún para agentes en ambientes controlados como el ajedrez, latabla del mapeo alcanza ordenes de 10150 entradas. Si consideramos que el númerode átomos en el universo observable es menor que 1080, entenderemos las razonesdel fracaso ineludible de esta estrategia.

arquitectura y programa agente 13

Algorithm 1 Agente basado en mapeo ideal1: function Agente-Mapeo-Ideal(p) . p es una percepción del ambiente.2: push(p,perceps) . perceps es una cola de percepciones.3: accion← tabla(perceps) . tabla : perceps→ acciones predefinida.4: return accion5: end function

Algorithm 2 Ambiente1: procedure Ambiente(e, τ,ags, fin) . e es el estado inicial del ambiente.2: repeat3: for all ag ∈ ags do . ags es un conjunto de agentes.4: p(ag)← percibir(ag, e)5: end for6: for all ag ∈ ags do7: accion(ag)← ag(p(ag))

8: end for9: e← τ(

⋃ag∈ags accion(ag)) . τ es una función de transición del ambiente.

10: until fin(e) . fin es un predicado de fin de corrida.11: end procedure

Podemos también implementar un programa básico de ambiente que ilustre la re-lación entre éste y los agentes situados en él. El algoritmo 2 muestra el programaAmbiente. La historicidad del ambiente queda oculta en las percepciones del agente.

La función percibir/2 mapea estados del ambiente a alguna entrada perceptiva. Losagentes con formas robóticas, pueden implementar percibir/2 usando hardware, porejemplo, cámaras de vídeo, sensores infrarrojos, sonares, etc. Los agentes softwarepueden implementar esta función usando comandos del sistema operativo. El ejem-plo 4 muestra diferentes opciones de percepción para el agente xbiff.

Ejemplo 4. Un agente del estilo de xbiff puede usar el comando de UNIX whoami paradeterminar la identidad de su usuario y encontrar así su buzón de correo. Luego puede usarel comando grep para contar el número total de mensajes, el número de mensajes leídos, y elnúmero de mensajes abiertos pero no leídos2.

Sea Per un conjunto no vacío de percepciones, la función de percibir/2 se definecomo el mapeo del conjunto de estados del ambiente E al conjunto de percepcionesposibles Per:

percibir : E→ Per

El ejemplo 5 muestra la diferencia entre percepción y estados posibles del ambiente,en el caso del agente xbiff.

Ejemplo 5. Para el agente de estilo xbiff, podemos definir es conjunto de percepciones posi-bles como Per = {mensajesNuevos,noMensajesNuevos}, mientras que los estados posi-bles del ambiente en E son más complejos, incluyendo como mencioné, el login del usuario, elnúmero de cada tipo de mensaje en el buzón, etc.

2 Todas estas etiquetas para los mensajes de correo electrónico se encuentran especificadas por el el están-dar de formato para mensajes de texto en ARPA Internet (RFC# 822).

14 arquitectura y programa agente

Levitin [12], en su libro sobre nuestro cerebro y la música, ilustra esta diferencia.La palabra tono se refiere a la representación mental que un organismo tiene de lafrecuencia fundamental de un sonido. Un fenómeno enteramente psicológico relacio-nado con la frecuencia de las moléculas de aire vibrando a nuestro alrededor. Porpsicológico entendemos que es resultado de una serie de procesos físico químicos enel agente que percibe el tono; que dan lugar a esa representación interna enteramen-te subjetiva. Isaac Newton fue el primero en darse cuenta que el color se percibe demanera similar –la luz no tiene color, éste es una construcción de nuestro cerebro. Elfilósofo Georges Berkeley planteo esta curiosa pregunta: Si un árbol cae en el bosquey nadie está ahí para escucharlo caer ¿Produjo algún sonido? La respuesta es no.

La función accion/1 se define entonces como el mapeo entre conjuntos de percep-ciones Per y el conjunto de acciones posibles Acc del agente:

accion : Per→ Acc

Un agente puede definirse ahora como la tupla Ag = 〈percibir,accion〉. Usandoesta extensión, es posible expresar interesantes propiedades sobre la percepción delos agentes. Supongamos dos diferentes estados del mismo ambiente, e1 ∈ E y e2 ∈ E,tal que e1 6= e2 pero percibir(e1) = percibir(e2). Entonces tenemos dos estadosdiferentes del ambiente que mapean a la misma percepción, y desde el punto de vistadel agente e1 y e2 son indistinguibles.

Ejemplo 6. Observe que la definición de Per para el agente estilo xbiff, oculta al agente laidentidad del usuario! Todo lo que el agente “cree” es que hay un buzón con o sin mensajesnuevos. Si son mis mensajes o los mensajes del usuario que entró más tarde al sistema, resultaindistinguible para nuestro agente.

Dados dos estados del ambiente e, e ′ ∈ E, percibir(e) = percibir(e ′) será abreviadocomo e ∼ e ′. Observen que “∼” es una relación de equivalencia sobre E. El ambientees accesible para el agente, si y sólo si |E| = | ∼ | y entonces se dice que el agentees omnisciente. Si | ∼ | = 1 entonces se dice que el agente no tiene capacidad depercepción, es decir, el ambiente es percibido por el agente como si tuviera un estadoúnico, porque todos los estados de éste son idénticos desde la perspectiva del agente.

2.1 agentes reactivos

Consideremos ahora nuestro primer programa de agente concreto. Los agentes reac-tivos [2], o reflex [9, 19], seleccionan sus acciones basados en su percepción actual delambiente, ignorando el resto de su historia perceptiva. La figura 4 ilustra la interac-ción de estos agentes con su ambiente. El ejemplo 7 nos muestra la formulación delprograma xbiff como si fuese un agente reactivo.

Ejemplo 7. Los estados posibles del ambiente, las acciones y la función de selección de acciónpara xbiff:

E = {correoNuevo}

2.2 agentes con estado 15

Agente

percepción acción

Ambiente

sensado actuación

Figura 4: Abstracción de un agente reactivo.

Ac = {despliegaIconoCorreoNuevo,despliegaIconoCorreoViejo}

Ag(e) =

{despliegaIconoCorreoNuevo Si e = correoNuevodespliegaIconoCorreoViejo En otro caso

La manera más sencilla de implementar este tipo de programa de agente es median-te reglas condición-acción. El algoritmo 3 muestra la forma general de un programade agente reactivo.

Algorithm 3 Agente reactivo o reflex1: function Agente-Reactivo(e)2: estado← percibir(e)

3: regla← seleccionAccion(estado, reglas) . reglas condición-acción predefinidas.4: accion← cons(regla) . cons, el consecuente de la regla.5: return accion6: end function

De manera que la formulación de xbiff puede transformarse, utilizando reglascondición-acción, en:

1. If p = correoNuevo Then despliegaIconoCorreoNuevo.

2. If true Then despliegaIconoCorreoViejo.

Aunque hay otras maneras de implementar agentes reactivos, todas comparten unalimitación formal: producen un comportamiento racional, sólo si la decisión correctapuede obtenerse a partir de la percepción actual del agente. Esto es, su comportamien-to es correcto si, y sólo si, el ambiente es accesible o efectivamente accesible.

2.2 agentes con estado

La forma más eficiente de enfrentar un ambiente inaccesible es llevando un registrode lo percibido, de forma que el agente tenga acceso mediante este registro, a lo queen cierto momento ya no puede percibir. Esto es, el agente debe mantener una formade estado interno que depende de su historia de percepciones y por lo tanto reflejaal menos algunos de los aspectos del ambiente no observados en la percepción actual

16 arquitectura y programa agente

Agente

percepción acción

Ambiente

EstadoSiguiente

sensado actuación

Figura 5: Agente con un estado interno.

del agente. Sea I el conjunto de estados internos posibles de un agente. Redefinimosla función acción para mapear estados internos a acciones posibles:

accion : I→ Ac

Una nueva función siguiente/2, mapea estados internos y percepciones a estadosinternos. Se usa para actualizar el estado interno del agente:

siguiente : I× Per→ I

Un agente inicia con algún estado interno i0 ∈ I, observa entonces el estado delambiente e generando así un percepto p ← percibir(e). El estado interno del agentese actualiza, i1 ← siguiente(i0,p). La acción seleccionada por el agente es entoncesejecutada y el agente repite este ciclo.

El algoritmo 4 nos muestra el programa de un agente con estado (Figura 5). Ladiferencia con el agente puramente reactivo, es que la función siguiente/2 (línea 2,algoritmo 4) modifica el estado interno del agente interpretando su entrada percepti-va, usando el conocimiento que el agente tenía sobre el ambiente.

Algorithm 4 Un programa de agente con estado1: function Agente-Con-Estado(e)2: p← percibir(e)

3: estado← siguiente(estado,p)4: regla← seleccionAccion(estado, reglas)5: accion← AccionRegla(regla)

6: return accion7: end function

2.3 agentes lógicos

La aproximación tradicional de la Inteligencia Artificial a los sistemas inteligentes,nos dice que el comportamiento racional puede obtenerse a partir de una represen-tación simbólica del ambiente y el comportamiento deseado. El agente manipulará

2.3 agentes lógicos 17

sintácticamente esta representación para actuar. Llevada al extremo, esta aproxima-ción nos lleva a formular el estado de un agente como un conjunto fórmulas lógicasy la selección de acción como demostración de teoremas o deducción lógica.

El concepto de agente como un demostrador de teoremas es extremadamente seduc-tor. Supongamos que disponemos de una teoría que establece como debe comportarseun agente racional. Tal teoría debe explicar como un agente genera sus metas, como ex-plota su comportamiento orientado por las metas y su reactividad, etc. Lo importantees que esta teoría φ puede considerarse como una especificación del comportamientoracional de un agente.

La manera tradicional de implementar un agente que cumpla con la especificaciónde la teoría φ es refinar paso a paso la teoría, concretando sus conceptos en estructurasde datos y procedimientos computacionales ejecutables. Sin embargo, en el enfoquebasado en demostración de teoremas, tal refinamiento no se lleva a cabo. La teoría φse concibe como una es’pecificación ejecutable directamente por el agente.

Sea L el conjunto de fórmulas bien formadas en la lógica de primer orden clásica. Elconjunto de bases de conocimiento en L se define como D = ℘(L), es decir, el conjuntode conjuntos de fbf en L. Los elementos de D se denotan ∆,∆1, . . . El estado internodel agente es siempre un miembro de D. El proceso de decisión del agente especificamediante un conjunto de reglas de inferencia ρ. Escribimos ∆ `ρ ψ si la fbf ψ puedeser probada en ∆. Definimos la función siguiente/2 del agente como:

siguiente : D× Per→ D

El algoritmo 5 muestra una función de selección de acción para un agente lógico.La primera parte de esta función (líneas 2 a 6) iteran sobre las acciones del agentepara encontrar una acción a que valide ejecuta(a). Si tal acción no se encuentra, sebusca una acción a (líneas 7 a 11) que al menos sea consistente con el estado internodel agente. Si no se encuentra ninguna acción, se regresa null para indicar el fallo.

Algorithm 5 Selección de acción en un agente lógico1: function Selección-Acción(∆ : D,Ac) . Ac Acciones.2: for all a ∈ Ac do3: if ∆ `ρ ejecuta(a) then . ρ predefinida, ∆ base de conocimientos.4: return a5: end if6: end for7: for all a ∈ Ac do8: if ∆ 6`ρ ¬ejecuta(a) then9: return a

10: end if11: end for12: return null13: end function

18 arquitectura y programa agente

2.4 agentes basados en metas

En la tradición de Inteligencia Artificial, las metas describen situaciones que sondeseables para un agente, y son definidas como cuerpos de conocimiento acerca de losestados del medio ambiente que el agente desea ver realizados [15]. Esta concepciónde las metas está relacionada con el concepto de espacio de estados de un problemacompuesto por un estado inicial del ambiente, e0 ∈ E; por un conjunto de operadoreso acciones que el agente puede ejecutar para cambiar de estado; un espacio de estadosalcanzables a partir del estado inicial e0 al aplicar cualquier secuencia de operadores;y un test para verificar si el estado alcanzado es una meta, por ej., pertenece a un sub-conjunto de E que incluye los estados meta o cumple con determinadas propiedadesespecificadas en algún lenguaje lógico.

Implícita en la arquitectura del agente, está su “intención” de ejecutar las accionesque el “cree” le garantizan satisfacer cualquiera de sus metas. Esto se conoce en fi-losofía como silogismo práctico y constituye la definición de racionalidad usada enInteligencia Artificial [13, 15].

Es posible especificar las metas que el agente debe satisfacer usando una especi-ficación basada en predicados. Un predicado en este contexto es definido como lafunción:

Ψ : R→ {0, 1}

esto es, una función de las corridas del agente a 1 (verdadero) o 0 (falso). Se con-siderará que una corrida r ∈ R satisface la especificación si y sólo si Ψ(r) = 1. Unambiente de tareas se define entonces como el par 〈Env,Ψ〉. Dado un ambiente detareas:

RΨ(Ag,Env) = {r|r ∈ R(Ag,Env)∧Ψ(r)}

denota el conjunto de todas las corridas del agente Ag en el ambiente Env que satis-facen la tarea especificada por Ψ. Podemos expresar que un agente Ag tiene éxito enel ambiente de tareas 〈Env,Ψ〉 de dos maneras diferentes: i) ∀r ∈ R(Ag,Env) tenemosque Ψ(r), lo que puede verse como una especificación pesimista de éxito, puesto queel agente tiene éxito únicamente si todas sus corridas satisfacen Ψ; ii) ∃r ∈ R(Ag,Env)tal que Ψ(r), lo cual es una versión optimista de la definición de éxito, puesto queespecifica que el agente tiene éxito si al menos una de sus corridas satisface Ψ.

Observe que Ψ opera sobre corridas del agente, de forma que si queremos especifi-car un test de meta, como se define en el espacio de estados de un problema, algunoscambios son necesarios. Recuerde que el ambiente se define como Env = 〈E, e0, τ〉donde E es el conjunto finito de estados discretos del ambiente, y que el agente esdefinido como Ag = RE → Ac, un mapeo de corridas que terminan en un estado delambiente a acciones. El conjunto E corresponde al espacio de estados en la definicióndel espacio de estados del problema. Es posible identificar un subconjunto G ⊂ E deestados finales, tal que Ψ(r) es verdadera solo si uno o más e ∈ G ocurren en r ∈ R. Ψespecifica la prueba de meta y el conjunto de acciones Ac define los operadores..

2.5 agentes basados en funciones de utilidad 19

Una vez que un agente alcanza un estado que satisface el test de meta, se dice queésta ha sido satisfecha. Las metas definidas de esta forma, constituyen un subconjuntode las metas que un agente puede enfrentar. Como ya lo comentamos, Covrigaruy Lindsay [4] concluyen que un sistema se percibe más fácilmente como autónomosi tiene un conjunto de metas de alto nivel (aquellas que no son submetas de otrameta) y algunas de ellas son homeostáticas (la satisfacción de la meta no termina alalcanzar el estado que la define, el sistema verifica continuamente si ese estado hasido abandonado, para buscar satisfacerlo nuevamente).

Ejemplo 8. La meta de xbiff, comunicar que hay mensajes en el buzón, es homeostática.Cada vez que el estado del medio ambiente le indica al agente la presencia de mensajes, esteejecutará la acción de cambiar su icono. Sin embargo, xbiff tiene una única meta.

2.5 agentes basados en funciones de utilidad

Otra forma de comunicarle al agente que hacer, sin decirle como hacerlo, es definien-do sus metas indirectamente, por medio de alguna medida de desempeño, por ej.,utilidades. Una utilidad es un valor numérico que denota la bondad de un estadodel ambiente. Implícitamente, un agente tiene la “intención” de alcanzar aquellos es-tados que maximizan su utilidad a largo término. Por lo tanto, la especificación deuna tarea en este enfoque corresponde simplemente a una función u : E → < la cualasocia valores reales a cada estado del ambiente. Para poder especificar una visión alargo plazo del desempeño del agente, algunas veces las utilidades no se asignan alos estados del ambiente, sino a las corridas del agente.

Ejemplo 9. Pensemos en un agente de correo electrónico más complejo que el programa xbiff,uno que filtre el spam en el correo recibido. La utilidad para una corrida r de este agente, puededefinirse como:

u(r) =SpamFiltrado(r)

SpamRecibido(r)

Esto da una medida normalizada del desempeño del agente en el rango de 0 (el agente nologró filtrar ningún mensaje spam) a 1 (el agente filtró todo el spam recibido) durante la corridar.

Asumiendo que la función de utilidad u tiene algún límite superior en los valoresque asigna, por ej., existe un k ∈ < tal que ∀r ∈ R.u(r) 6 k, entonces es posiblehablar de agentes óptimos, agentes que maximizan la utilidad esperada. DefinamosP(r|Ag,Env) como la probabilidad de que una corrida r ocurra cuando el agente Agestá situado en el ambiente Env, y sea R el conjunto de todas las posibles corridas deAg en Env. Es evidente que:

∑r∈R(Ag,Env)

P(r|Ag,Env) = 1

20 arquitectura y programa agente

Entonces el agente óptimo Agopt entre el conjunto de agentes posibles AG en elambiente Env está definido como:

Agopt = arg maxAg∈AG

∑r∈R(Ag,Env)

u(r)P(r|Ag,Env)

Esta ecuación es idéntica a la noción de maximizar la utilidad esperada, tal y comolo expresan Von Neumann y Morgesten [22] en su libro sobre Teoría de la Decisión.La utilidad esperada se toma conforme a las “creencias” del agente, por lo que la ra-cionalidad perfecta no requiere omnisciencia. De cualquier forma, como señala Simon[20], los agentes enfrentan limitaciones temporales y tienen capacidades limitadas dedeliberación, por lo que propone el estudio de una racionalidad acotada.

Russell y Subramanian [18], introducen el concepto de agente óptimo acotado,donde el conjunto de agentes posibles AG es remplazado por un subconjunto deél, identificado como AGm, que representa el conjunto de agentes que pueden serimplementados en una máquina m con características específicas, por ej., memoria,almacenamiento, velocidad de procesador, etc., de forma que las restricciones de opti-mización se imponen en el programa del agente y no en las funciones del agente, susdeliberaciones o su comportamiento.

Esta concepción de agente racional nos dice las propiedades del agente deseableAgopt, pero no nos dice cómo implementar tal agente. En la práctica normalmenteresulta difícil derivar la función de utilidad u apropiada para un agente. Para unadescripción más detallada del uso de funciones de utilidad en la programación de losagentes, véase el Capítulo 16 del texto de Russell y Norvig [19].

2.6 lecturas y ejercicios sugeridos

La formalización del concepto de agente está basada en el texto de Wooldridge [24],aunque una fuente más accesible a este material se encuentra en su libro introductorioa los Sistemas Multi-Agente [25]. La clasificación de los agentes y sus programasestá basada en el texto de Russell y Norvig [19]. El artículo de Covrigaru y Lindsay[4] ofrece una discusión profunda sobre la autonomía en los agentes artificiales. Elantecedente directo al uso de funciones de utilidad en agentes se encuentra en eltrabajo de Von Neumann y Morgesten [22], donde queda de manifiesto una de lasprincipales ventajas de este enfoque: su formalización. El concepto de racionalidadacotada fue introducido por Simon [20] siendo uno de sus temas preferidos. Unadiscusión más reciente sobre el tema de la racionalidad acotada, puede encontrarse elartículo de Russell y Subramanian [18].

B I B L I O G R A F Í A

[1] Aristóteles, “Prior analytics no 391”, en Loeb Classical Library, Harvard Univer-sity Press, 1960 (vid. pág. 2).

[2] R. Brooks, Cambrian Intelligence: the Early History of the New AI. Cambridge, MA.,USA: MIT Press, 1999 (vid. págs. 6, 14).

[3] C. Castelfranchi, “Modelling social action for AI agents”, Artificial Intelligence,vol. 103, n.o 1998, págs. 157-182, 1998 (vid. pág. 5).

[4] A. Covrigaru y R. Lindsay, “Deterministic autonomous systems”, AI Magazine,vol. Fall, págs. 110-117, 1991 (vid. págs. 5, 19, 20).

[5] O. Etzioni, “Intelligence without robots”, AI Magazine, vol. 14, n.o 4, 1993 (vid.pág. 6).

[6] R. Fagin, J. Y. Halpern, Y. Moses y M. Y. Vardi, Reasoning about Knowledge. Cam-bridge, MA., USA: MIT Press, 1995 (vid. pág. 11).

[7] L. Foner, “What’s an agent, anyway? a sociological case study”, MIT Media Lab,Cambridge, MA., USA, inf. téc. Agents Memo 93-01, 1993 (vid. pág. 4).

[8] S. Franklin y A. Graesser, “Is it an agent, or just a program?”, en IntelligentAgents III, ép. Lecture Notes in Artificial Intelligence 1193, J. P. Muller, M. Wool-dridge y N. Jennings, eds., Berlin, Germany: Springer-Verlag, 1997, págs. 21-36

(vid. pág. 2).

[9] M. Genesereth y N. Nilsson, Logical Foundations for Artificial Intelligence. PaloAlto, CA., USA: Morgan Kauffman Publishers, Inc., 1987 (vid. pág. 14).

[10] M. Huns y M. Singh, eds., Readings in Agents. San Mateo, CA., USA: MorganKauffman Publisher, 1998 (vid. pág. 9).

[11] J. Lanier, “Agents of alienation”, Interactions, vol. 2, n.o 3, págs. 66 -72, 1995,First published at the beginning of the 90’s in Voyager e-zine (vid. pág. 1).

[12] D. J. Levitin, This is Your Brain on Music: The Science of a Human Obsesion. NewYork, NY., USA: A Plume Book, 2006 (vid. pág. 14).

[13] J. McCarthy, “Programs with common sense”, en Proceedings of the Symposium onthe Mechanization of Thought Processes, Teddington, England, 1959 (vid. pág. 18).

[14] W. Muller-Freienfels, “Agency”, en Encyclopedia Britannica, Internet version, Ency-clopedia Britannica, Inc., 1999 (vid. pág. 2).

[15] A. Newell, “The knowledge level”, AI Magazine, vol. 2, págs. 1-20, 1981 (vid.pág. 18).

[16] ——, Unified Theories of Cognition. Cambridge, MA., USA: Harvard UniversityPress, 1990 (vid. pág. 5).

[17] J. Rawls, A Theory of Justice. New York, NJ., USA: Oxford University Press, 1973

(vid. pág. 5).

21

22 bibliografía

[18] S. Russell y D. Subramanian, “Provably bounded-optimal agents”, Journal ofArtificial Intelligence Research, vol. 2, págs. 575-609, 1995 (vid. págs. 2, 20).

[19] S. Russell y P. Norvig, Artificial Intelligence: A Modern Approach, Segunda, ép.Prentice Hall Series in Artificial Intelligence. USA: Prentice Hall, 2003 (vid.págs. 1, 2, 6, 8, 9, 14, 20).

[20] H. Simon, Models of Bounded Rationality. Cambridge, MA., USA: MIT Press, 1982,vol. 2 (vid. pág. 20).

[21] F. Varela, Invitation aux Science Cognitives. Paris, France.: Editions du Seuil, 1989

(vid. pág. 1).

[22] J. Von Neumann y O. Morgesten, Theory of Games and Economic Behavior. Prince-ton, USA.: Princeton University Press, 1947 (vid. pág. 20).

[23] G. Weiß, ed., Multiagent Systems, a modern approach to Distributed Artificial Intelli-gence. Cambridge, MA., USA: MIT Press, 1999 (vid. pág. 9).

[24] M. Wooldridge, Reasoning about Rational Agents. Cambridge, MA., USA: MITPress, 2000 (vid. págs. 11, 20).

[25] ——, An Introduction to MultiAgent Systems. West Sussex, England: John Wiley& Sons, LTD, 2002 (vid. págs. 2, 9, 20).

[26] M. Wooldridge y N. Jennings, “Intelligent agents: theory and practice”, TheKnowledge Engineering Review, vol. 10, n.o 2, págs. 115-152, 1995 (vid. págs. 2, 4,8).