Representación de Acciones y Cambio: STRIPS y Cálculo de Situaciones Inteligencia Artificial 2º cuatrimestre de 2008 Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Representación de Conocimiento Cualquier entidad inteligente que desea razonar acerca de su mundo/del mundo en el que se desenvuelve se enfrenta con una realidad inevitable: “El razonamiento es un proceso que se lleva a cabo internamente, mientras que la mayoría de las cosas sobre las que se razona existen solo en el exterior”. Una rep. de conocimiento funciona como un sustituto, dentro del razonador, de las cosas que existen en el mundo. El razonador puede realizar operaciones en esa representación, sustituyendo (simulando) la operación sobre el mundo real. De acuerdo a esta visión, el razonamiento es en parte una sustitución del accionar en el mundo, cuando no podemos, o (aún) no queremos, actuar efectivamente en el mundo. Representación enMesa(h) libre(a)de Conocimiento enMesa(o) libre(h) enMesa(l) libre(o) sobre(a,l) a l h o Rep. de Acciones y Cambio El entorno cambia al transcurrir el tiempo. Los cambios en el entorno son provocados por acciones del agente, por acciones de otros agentes y por acciones propias del entorno. Generalmente, un agente inteligente debe considerar (representar y razonar acerca de) el cambio/el tiempo para desenvoloverse con éxito. Es decir, debe poder analizar estados pasados y futuros del entorno, aparte del estado en el que está. Rep. de Acciones y Cambio El tiempo puede modelarse de varias formas: Tiempo Discreto: se modela como saltando de un punto en el tiempo a otro, separados entre sí de manera uniforme. Tiempo Continuo: se modela como una estructura lineal continua. Tiempo Basado en Eventos: Análogo a Tiempo Discreto, pero los puntos en el tiempo marcan eventos “interesantes”, y no necesitan estar separados entre sí de manera uniforme. Ej: Cálculo de Eventos. Espacio de Estados: en lugar de considerar el tiempo explícitamete, podemos considerar a las acciones como mapeando de un estado a otro del mundo. Ej: Cálculo de Situaciones y STRIPS. Rep. de Acciones y Cambio El tiempo pude incorporarse a un sistema de Rep. de Conoc. y Razonamiento de diferentes formas: El Tiempo (y acciones) son externas a la lógica. Se representa/describe en la lógica solo un estado (correspondiente a un determinado momento), y se utilizan sentencias fuera de la lógica para especificar cómo una acción mapea desde la descripción de un estado a la descripción del siguiente. STRIPS lo hace de esta forma. El Tiempo se encuentra reificado. Es decir, el tiempo es otro objeto más, que se representa y del que se puede hablar, en la lógica. Conretamente, se puede agregar un argumento a las relaciones para especificar cuando valen. Ej: pasa_autobus(516, cuadra(Mitre, 200), pm(15:35)) El Cálculo de Situaciones lo hace de esta forma. Mundo de Bloques: Definición del Dominio Objetos: bloques, mesa, colores. Acciones: • apilar un bloque sobre otro. a l • desapilar sobre la mesa un bloque que está sobre otro. h o Relaciones para representar: • el color de un bloque relación estática • que un bloque está libre. • que un bloque está sobre la mesa. primitivas • que un bloque está sobre otro. • que un bloque está (por) encima de otro. derivada relaciones dinámicas STRIPS El tiempo se modela de acuedo a la visión de espacio de estados, donde sólo un estado se representa en la lógica en un momento dado y las acciones son externas a la lógica. Para cada acción se establece cuándo puede llevarse a cabo y cuál es el efecto de dicha acción (es decir, qué relaciones primitivas son afectadas por la acción). Conjuntamente, se asume que todas las relac. primitivas no mencionadas en la descripción del efecto de la acción permanecen inalteradas luego de ser ejecutada (suposición STRIPS). De esta forma, se elude el Problema del Marco. La representación STRIPS se basa en la idea de que la ejecución de una acción solo afecta una pequeña porción de la descripción actual del mundo. Es decir, solo afecta unas pocas relaciones primitivas. STRIPS: Ejemplo Se representa en la lógica sólo un estado a l a l l h o o h “apilar o sobre h” o h “desapilar a que está sobre l ” a Representación Lógica color(a,rojo) color(l, verde) color(o, azul) color(h, gris) enMesa(h) libre(a) enMesa(o) libre(h) enMesa(l) libre(o) relac. dinámicas sobre(a,l) primitivas encima(X,Y)Å sobre(X,Y) encima(X,Y)Å sobre(X,Z) ∧ encima(Z,Y) STRIPS: Ejemplo Se representa en la lógica solo un estado a l a l l h o o h “apilar o sobre h” o h “desapilar a que está sobre l ” a Representación Lógica color(a,rojo) color(l, verde) color(o, azul) color(h, gris) enMesa(h) libre(a) enMesa(l) libre(o) sobre(a,l) sobre(o,h) relac. dinámicas primitivas encima(X,Y)Å sobre(X,Y) encima(X,Y)Å sobre(X,Z) ∧ encima(Z,Y) STRIPS: Ejemplo Se representa en la lógica solo un estado a l a l l h o o h “apilar o sobre h” o h “desapilar a que está sobre l ” a Representación Lógica color(a,rojo) color(l, verde) color(o, azul) color(h, gris) enMesa(h) libre(a) enMesa(l) libre(o) enMesa(a) libre(l) relac. dinámicas sobre(o,h) primitivas encima(X,Y)Å sobre(X,Y) encima(X,Y)Å sobre(X,Z) ∧ encima(Z,Y) STRIPS: Ejemplo La representación de las acciones es externa a la lógica. Descripción de la acción apilar X sobre Y Precondiciones: X enMesa(X) Y Z libre(X) libre(Y) Del-list: enMesa(X) libre(Y) Add-list: sobre(X,Y) “apilar X sobre Y” X Y Z Cálculo de Situaciones El tiempo se modela de acuedo a la visión de espacio de estados, donde las acciones y los estados (o situaciones) se reifican. Al decir que las acciones y estados se reifican, nos referimos concretamente a que se utilizan términos lógicos para denotar/ nombrar/ referirse a estados y acciones. De esta manera es posible representar, en la lógica, senencias que hablan de/ se refieren a acciones y estados particulares. CS: Rep. de acciones y situaciones términos para hacer referencia a acciones: • apilar(A,B) representa “apilar A sobre B” • desapilar(A,B) representa “desapilar A que está sobre B” CS: Rep. de acciones y situaciones términos para hacer referencia a situaciones: • la constante init representa la situación inicial. • res(A, S) denota la situación que resulta de realizar la acción A a partir de la situación S, a condición de que la acción A sea aplicable a partir de S. “apilar o sobre h” a l o h init a l “desapilar a que está sobre l” o h res(apilar(o,h), init) l o a h res(desapilar(a,l), res(apilar(o,h), init)) CS: Representación Lógica Representación Lógica Relaciones Estáticas Relaciones Dinámicas válidas en init caraterización de la situación inicial Descripción de Acciones (y Cambio o Evolución) descripción de la evolución de las relaciones dinámicas resultado de aplicar acciones. CS: Relaciones Estáticas Representación Lógica Relaciones Estáticas: color(a,rojo) color(l, verde) color(o, azul) color(h, gris) Relaciones Dinámicas válidas en init: a l o h init Descripción de Acciones (y Cambio o Evolución) Representación Lógica Relaciones Estáticas CS: Relaciones Dinámicas Relaciones Dinámicas válidas en init: enMesa(h,init) sobre(a,l, init) enMesa(o,init) libre(a, init) enMesa(l, init) libre(h, init) a l o h libre(o, init) encima(X,Y,S) Å sobre(X,Y,S) encima(X,Y,S) Å sobre(X,Z,S) ∧ encima(Z,Y,S) Descripción de Acciones (y Cambio o Evolución) init Relac. dinámicas primitivas CS: Descripción de Acciones Representación Lógica Relaciones Estáticas: Relaciones Dinámicas válidas en init: Descripción de Acciones (y Cambio o Evolución): Axiomas de Posibilidad Axiomas de Efecto + Axiomas de Marco o Axiomas de Estado Sucesor establecen cuándo es posible ejecutar una acción. permiten determinar qué relaciones valen en una situación a partir de las relaciones que valen en la anterior. CS: Axiomas de Posibilidad Establecen cuándo es posible ejecutar cada acción. El axioma de posibilidad para una acción a tiene la siguiente forma: <precond> Æ pos(a, S) donde: • <precond> describe las relaciones que deben valer en la situación S para que sea posible ejecutar a a partir de S. • la relación pos(a,S) denota que es posible ejecutar la acción a en la situación S. CS: Axiomas de Posibilidad Ejemplo: Axioma de Posibilidad para la acción apilar: enMesa(X, S) ∧ libre(X, S) ∧ libre(Y, S) Æ pos(apilar(X,Y), S) libre y en mesa X Y Z libre CS: Axiomas de Efecto Cada acción tiene asociado un axioma de efecto, que especifica el efecto de ejecutar la acción. El axioma de efecto asociado a una acción a tiene la siguiente forma: pos(a,S) Æ <cambios que resultan de realizar la acción> CS: Axiomas de Efecto Ejemplo: • Axioma de Efecto para la acción apilar: pos(apilar(X,Y), S) Æ sobre(X,Y, res(apilar(X,Y),S)) • Axioma de Efecto para la acción desapilar: pos(desapilar(X,Y), S) Æ enMesa(X, res(desapilar(X,Y),S))∧ libre(Y, res(desapilar(X,Y),S)) CS: Axiomas de Marco Los Axiomas de Efecto establecen qué cambia pero no dicen qué es lo que permanece igual. enMesa(h,init) sobre(a,l, init) a l h o enMesa(o,init) libre(a, init) enMesa(l, init) libre(h, init) libre(o, init) a l o h “apilar o sobre h” Aplicando axiomas de posibilidad y efecto para apilar puedo inferir: sobre(o,h, res(apilar(o,h),init)) Pero no tengo forma de inferir sobre(a,l, res(apilar(o,h),init)) ni enMesa(h, res(apilar(o,h),init)), por ejemplo. CS: Axiomas de Marco Los Axiomas de Marco expresan qué es lo que no cambia. Necesitaremos especificar un Axioma de Marco por cada par (relación dinámica, acción) Ejemplo: Axiomas de Marco para la acción apilar y la relación sobre: pos(apilar(X,Y),S)) Æ (sobre(Z, T, S) Æ sobre(Z ,T, res(apilar(X,Y),S))) la acción apilar y la relación libre: pos(apilar(X,Y),S)) Æ (libre(Z, S)∧Z<>Y Æ libre(Z, res(apilar(X,Y),S))) CS: Axiomas de Estado Sucesor Cada relación dinámica primitiva tiene asociado un axioma de estado sucesor. Este especifica como evoluciona la relación como resultado de la ejecución de una acción A partir de una dada situación S. El axioma de estado sucesor asociado a una relación r tiene la siguiente forma: pos(A, S) Æ (r es ⇔ verdadera en res(A,S) A es una acción cuya ejec. hace verdadera a r r ٧ ya es verdadera en S ∧ A no es una acción cuya ejecución la hace falsa) CS: Axiomas de Estado Sucesor Ejemplo: Axioma de estado sucesor para la relación dinámica sobre: pos(A, S)Æ (sobre(X,Y, res(A,S)) ⇔ A = apilar(X,Y) v sobre(X,Y,S) ∧ A<>desapilar(X,Y)) 1 paso de inferencia Representación Lógica Axiomas de Posibilidad y Estado Sucesor relaciones estáticas a 1, ... rel. dinámicas en s1=res(a1,init) po s(a 1.n 1 ,s 1) 2 pasos de inferencia pos( ini relaciones dinámicas válidas en init t) po s(a2, init) rel. dinámicas en s2=res(a2,init) a2. ,s 1 2) ... ) t i , in n a ( s o rel. p dinámicas en sn=res(an,init) . . . ... pos(a2.n2,s2) ... po s( . . . n. a ( s o p ) n s , 1 3 pasos de inferencia Para encontrar una plan que logre una meta, debería hallarse una situación S tal que la meta sea verdadera en S. Notar que la representación utilizada para denotar una situación S indica la secuencia de acciones a ejecutar desde la situación inicial, para llegar a S. Ejemplo: Supongamos que se desea hallar un plan para lograr una configuación determinada (meta), a partir de una dada situación inicial. estado situación meta inicial init S a a l h o … l o h Para este caso concreto, deberíamos hallar una situación S tal que enMesa(h,S)∧ sobre(o,h,S)∧ sobre(l,o,S)∧ sobre(a,l,S)∧ libre(a,S) se infiera a partir de la representación lógica. Una posible situación S podría ser: res(apilar(a,l), res(apilar(l,o), res(desapilar(a,l), res(apilar(o,h,init))))) a l init h o … a l o h S FIN