Arquitectura Agentes Reactivos Agentes con estado Agentes lógicos Agentes y metas Agentes y utilidad Inteligencia Artificial II Arquitecturas y Programas Agente Dr. Alejandro Guerra-Hernández Departamento de Inteligencia Artificial Facultad de Fı́sica e Inteligencia Artificial Universidad Veracruzana aguerra@uv.mx http://www.uv.mx/aguerra Maestrı́a en Inteligencia Artificial 2013 Referencias Arquitectura Agentes Reactivos Agentes con estado Agentes lógicos Agentes y metas Agentes y utilidad Referencias Arquitectura abstracta (Wooldridge, 2002) I El ambiente puede caracterizarse por medio de un conjunto finito de estados discretos posibles, definido como: E = {e, e 0 , . . . } I La competencia de un agente, se define como el conjunto finito de acciones que éste puede ejecutar: Ac = {α, α0 , . . . } I Una corrida de un agente en un ambiente se define como una secuencia finita de estados y acciones intercalados: α α α α αu−1 0 1 2 3 r = e0 −→ e1 −→ e2 −→ e3 −→ · · · −→ eu Arquitectura Agentes Reactivos Agentes con estado Agentes lógicos Agentes y metas Agentes y utilidad Referencias Corridas I Sea R el conjunto de todas las posibles secuencias finitas sobre E y Ac. I Definimos R Ac como el subconjunto de las corridas que terminan en una acción I y R E como el subconjunto de las corridas que terminan en un estado del ambiente. I Para modelar el efecto de una acción en el ambiente, usamos una función de transición (Fagin et al., 1995): τ : R Ac → ℘(E ) I Si τ (r ) = ∅ para todo r ∈ R Ac , se dice que el sistema ha terminado su corrida. Arquitectura Agentes Reactivos Agentes con estado Agentes lógicos Agentes y metas Agentes y utilidad Referencias Ambiente y Agentes I Un ambiente se define como una tripleta Env = hE , e0 , τ i donde E es el conjunto de los posibles estados del ambiente, e0 ∈ E es un estado inicial y τ es la función de transición de estados. I Los agentes se modelan como funciones que mapean corridas que terminan en un estado del ambiente, a acciones: Ag : R E → Ac Arquitectura Agentes Reactivos Agentes con estado Agentes lógicos Agentes y metas Agentes y utilidad Referencias Sistema Agente I Un sistema agente es una tupla conformada por un agente y un ambiente. I El conjunto de posibles corridas del agente Ag en el ambiente Env se denota como R(Ag , Env ) I Una secuencia de la forma: (e0 , α0 , e1 , α1 , e2 , . . . ) representa una corrida del agente Ag en el ambiente Env si y sólo si Env = hE , e0 , τ i; α0 = Ag (e0 ); y para u > 0: eu ∈ τ ((e0 , α0 , . . . , αu−1 )) y αu = Ag ((e0 , α0 , . . . , eu )) Arquitectura Agentes Reactivos Agentes con estado Agentes lógicos Agentes y metas Agentes y utilidad Referencias Programa de agente I Puesto que nuestra tarea es implementar programas de agente, podemos usar la formalización propuesta para definir un programa de agente que acepte percepciones de su ambiente y regrese acciones sobre éste. Agente basado en mapeo ideal 1: function Agente-Mapeo-Ideal(p) 2: percepciones ← percepciones ∪ p 3: acci ón ← busca(percepciones, mapeo) 4: return acci ón 5: end function . p es una percepción. . mapeo predefinido. Arquitectura Agentes Reactivos Agentes con estado Agentes lógicos Agentes y metas Agentes y utilidad Referencias Programa de ambiente I Un programa básico de ambiente ilustra la relación entre éste y los agentes situados en él. Ambiente 1: procedure Ambiente(e, τ, ags, fin) . e Estado incial del ambiente. 2: repeat 3: for all ag ∈ ags do . ags Conjunto de agentes. 4: p(ag ) ← percibir (ag , e) 5: end for 6: for all ag ∈ ags do 7: acci ón(ag ) ← ag (p(ag )) 8: end forS 9: e ← τ ( ag ∈ags acci ón(ag )) . τ Función de transición. 10: until fin(e) . fin Predicado de fin de corrida. 11: end procedure Arquitectura Agentes Reactivos Agentes con estado Agentes lógicos Agentes y metas Agentes y utilidad Referencias Percepción y acción I Sea Per un conjunto no vacı́o de percepciones, la función percibir/2 se define como el mapeo del conjunto de estados del ambiente E al conjunto de percepciones posibles Per : percibir : E → Per I La función acción/1 se define entonces como el mapeo entre conjuntos de percepciones y el conjunto de acciones posibles del agente: acci ón : Per → Ac I Un agente puede definirse ahora como la tupla: Ag = hpercibir , acci óni Arquitectura Agentes Reactivos Agentes con estado Agentes lógicos Agentes y metas Agentes y utilidad Referencias Propiedades de la percepción I Sean e ∈ E y e 0 ∈ E , tal que e 6= e 0 pero percibir (e) = percibir (e 0 ). Desde el punto de vista del agente, e y e 0 son indistinguibles. I Dados dos estados del ambiente e, e 0 ∈ E , percibir (e) = percibir (e 0 ) será denotado como e ∼ e 0 . I El ambiente es accesible para el agente, si y sólo si |E | = | ∼ | y entonces se dice que el agente es omnisciente. I Si | ∼ | = 1 entonces se dice que el agente no tiene capacidad de percepción, es decir, el ambiente es percibido por el agente como si tuviera un estado único. Arquitectura Agentes Reactivos Agentes con estado Agentes lógicos Agentes y metas Agentes y utilidad Agentes reactivos I Los agentes reactivos, o reflex, seleccionan sus acciones basados en su percepción actual del ambiente, ignorando el resto de su historia perceptual. Agente percepción sensado acción actuación Ambiente Referencias Arquitectura Agentes Reactivos Agentes con estado Agentes lógicos Agentes y metas Agentes y utilidad Agentes reactivos I Basados en reglas percepción - acción. Programa de agente reactivo 1: function Agente-Reactivo(e) 2: estado ← percibir (e) 3: regla ← selecci ónAcci ón(estado, reglas) 4: acci ón ← acci ónRegla(regla) 5: return acci ón 6: end function . reglas predefinidas. Referencias Arquitectura Agentes Reactivos Agentes con estado Agentes lógicos Agentes y metas Agentes y utilidad Referencias Limitaciones de los agentes reactivos I Aunque hay otras maneras de implementar agentes reactivos (arquitectura subsumida, redes de comportamiento, etc.), todos comparten una limitación formal: producen un comportamiento racional, sólo si la decisión correcta puede obtenerse a partir de la percepción actual del agente. I Esto es, su comportamiento es correcto si, y sólo si, el ambiente es observable o efectivamente observable. Arquitectura Agentes Reactivos Agentes con estado Agentes lógicos Agentes y metas Agentes y utilidad Referencias Estado interno I La forma más eficiente de enfrentar un ambiente inaccesible es llevando un registro de lo percibido, de forma que el agente tenga acceso mediante este registro, a lo que en cierto momento ya no puede percibir. I Sea I el conjunto de estados internos posibles de un agente. Redefinimos la función acción para mapear estados internos a acciones posibles: acci ón : I → Ac I Una nueva función siguiente/2, mapea estados internos y percepciones a estados internos. Se usa para actualizar el estado interno del agente: siguiente : I × Per → I Arquitectura Agentes Reactivos Agentes con estado Agentes lógicos Agentes y metas Agentes y utilidad Agentes con estado interno I Un agente con estado interno interactua con su ambiente como se muestra. Ambiente actuación sensado Agente percepción Siguiente acción Estado Referencias Arquitectura Agentes Reactivos Agentes con estado Agentes lógicos Agentes y metas Agentes y utilidad Programa de agente con estado I El programa de un agente con estado es muy parecido al de un agente reactivo: Programa de agente con estado 1: function Agente-Con-Estado(e) 2: p ← percibir (e) 3: estado ← siguiente(estado, p) 4: regla ← selecci ónAcci ón(estado, reglas) 5: acci ón ← Acci ónRegla(regla) 6: return acci ón 7: end function .e∈E . reglas predefinidas. Referencias Arquitectura Agentes Reactivos Agentes con estado Agentes lógicos Agentes y metas Agentes y utilidad Referencias Enfoque IA tradicional I El comportamiento racional puede obtenerse a partir de una representación simbólica del ambiente y el comportamiento deseado. I El agente manipulará sintácticamente esta representación para actuar. I Llevada al extremo, esta aproximación nos lleva a formular el estado de un agente como un conjunto fórmulas lógicas y la selección de acción como demostración de teoremas o deducción lógica. Arquitectura Agentes Reactivos Agentes con estado Agentes lógicos Agentes y metas Agentes y utilidad Referencias Agentes e inferencia I Sea L el conjunto de fórmulas bien formadas en la lógica de primer orden clásica. I El conjunto de bases de conocimiento en L se define como D = ℘(L), es decir, el conjunto de conjuntos de fbf en L. Los elementos de D se denotan ∆, ∆1 , . . . I El estado interno del agente es siempre un miembro de D. El proceso de decisión del agente especifica mediante un conjunto de reglas de inferencia ρ. I Escribimos ∆ `ρ ψ si la fbf ψ puede ser validada en ∆. I Definimos la función siguiente/2 del agente como: siguiente : D × Per → D Arquitectura Agentes Reactivos Agentes con estado Agentes lógicos Agentes y metas Agentes y utilidad Referencias Selección de acción como inferencia I La inferencia se usa para computar la selección de acción de los agentes lógicos: Selección de acción para agente lógico 1: function Selección-Acción(∆ : D, Ac) 2: for all a ∈ Ac do 3: if ∆ `ρ ejecuta(a) then 4: return a 5: end if 6: end for 7: for all a ∈ Ac do 8: if ∆ 6`ρ ¬ejecuta(a) then 9: return a 10: end if 11: end for 12: return null 13: end function . Ac Acciones. . ρ predefinida. Arquitectura Agentes Reactivos Agentes con estado Agentes lógicos Agentes y metas Agentes y utilidad Referencias Metas I Las metas describen situaciones deseables para un agente, y se definen como cuerpos de conocimiento. I Esta concepción de las metas está relacionada con el concepto de espacio de estados de un problema compuesto por un estado inicial del ambiente, e0 ∈ E ; por un conjunto de operadores o acciones que el agente puede ejecutar para cambiar de estado; y un espacio de estados deseables. I Implı́cita en la arquitectura del agente, está su “intención” de ejecutar las acciones que el “cree” le garantizan satisfacer cualquiera de sus metas. Esto se conoce en filosofı́a como silogismo práctico. Arquitectura Agentes Reactivos Agentes con estado Agentes lógicos Agentes y metas Agentes y utilidad Las metas de un agente I Especificación basada en predicados: Ψ : R → {0, 1} I Una corrida r ∈ R satisface la especificación ssi Ψ(r ) = 1. I Un ambiente de tareas se define entonces como el par hEnv , Ψi. I Dado un ambiente de tareas, la siguiente expresión: RΨ (Ag , Env ) = {r |r ∈ R(Ag , Env ) ∧ Ψ(r )} denota el conjunto de todas las corridas del agente Ag en el ambiente Env que satisfacen la tarea especificada por Ψ. Referencias Arquitectura Agentes Reactivos Agentes con estado Agentes lógicos Agentes y metas Agentes y utilidad Referencias Metas y éxito I Podemos expresar que un agente Ag tiene éxito en el ambiente de tareas hEnv , Ψi de dos maneras diferentes: I I ∀r ∈ R(Ag , Env ) tenemos que Ψ(r ), lo que puede verse como una especificación pesimista de éxito, puesto que el agente tiene éxito únicamente si todas sus corridas satisfacen Ψ; ∃r ∈ R(Ag , Env ) tal que Ψ(r ), lo cual es una versión optimista de la definición de éxito, puesto que especifica que el agente tiene éxito si al menos una de sus corridas safisface Ψ. Arquitectura Agentes Reactivos Agentes con estado Agentes lógicos Agentes y metas Agentes y utilidad Referencias Utilidad I Una utilidad es un valor numérico que denota la bondad de un estado del ambiente. I Implı́citamente, un agente tiene la “intención” de alcanzar aquellos estados que maximizan su utilidad a largo término. I La especificación de una tarea en este enfoque corresponde simplemente a una función utilidad u : E → < la cual asocia valores reales a cada estado del ambiente. I Por ejemplo, la utilidad para una corrida r de un agente filtro de spam, puede definirse como: u(r ) = SpamFiltrado(r ) SpamRecibido(r ) Arquitectura Agentes Reactivos Agentes con estado Agentes lógicos Agentes y metas Agentes y utilidad Referencias Agentes óptimos I Si la función de utilidad u tiene algún lı́mite superior, por ej., ∃k k ∈ < tal que ∀r ∈ R.u(r ) ≤ k, entonces es posible hablar de agentes que maximizan la utilidad esperada. I Definamos P(r |Ag , Env ), es evidente que: X P(r |Ag , Env ) = 1 r ∈R(Ag ,Env ) I Entonces el agente óptimo Agopt entre el conjunto de agentes posibles AG en el ambiente Env está definido como: Agopt = arg máx Ag ∈AG X r ∈R(Ag ,Env ) u(r )P(r |Ag , Env ) Arquitectura Agentes Reactivos Agentes con estado Agentes lógicos Agentes y metas Agentes y utilidad Referencias Racionalidad acotada I Los agentes enfrentan limitaciones temporales y tienen capacidades limitadas de deliberación, por lo que propone el estudio de una racionalidad acotada. I Stuart Russell et al., introducen el concepto de agente óptimo acotado, donde AGm representa el conjunto de agentes que pueden ser implementados en una máquina m. I Esta conceptualización de agente racional nos dice las propiedades del agente deseable Agopt , pero no nos dice cómo implementar tal agente. Arquitectura Agentes Reactivos Agentes con estado Agentes lógicos Agentes y metas Agentes y utilidad Referencias Fagin, R., Halpern, J. Y., Moses, Y., & Vardi, M. Y. (1995). Reasoning about Knowledge. Cambridge, MA., USA: MIT Press. Wooldridge, M. (2002). An Introduction to MultiAgent Systems. West Sussex, England: John Wiley & Sons, LTD. Referencias