Tema 8
Tema 8
Sistemas basados en
STRIP
Índice
Esquema 3
Ideas clave 4
8.1. ¿Cómo estudiar este tema? 4
© Universidad Internacional de La Rioja (UNIR)
8.2. STRIPS 4
8.3. PDDL 15
8.4. GOAP 17
8.5. Referencias bibliográficas 24
A fondo 25
Test 28
© Universidad Internacional de La Rioja (UNIR)
Planificación clásica
Operadores y
Definición Aplicación
propiedades
Aplicaciones Diferencias
Planificación
frente a
hacia delante
STRIPS
Planificación
hacia atrás
Heurística de
STRIPS
Tema 8. Esquema
3
Ideas clave
Por último, presentaremos una adaptación de los sistemas STRIPS pensada para
sistemas con reacción en tiempo real, para poder crear sistemas que puedan
reaccionar a entornos cambiantes de modo eficiente. El sistema GOAP, ideado por
Jeff Orkin, adapta los estándares de STRIPS para estos entornos.
8.2. STRIPS
Definición y Base
modo racional.
Proposiciones
Operadores
Proposiciones
Operadores
Expresan las acciones que el agente contempla en el problema y por las cuales
desea resolver el estado actual y transformar el entorno para alcanzar la meta o
estado final.
<nombre>(<PC>,<A>,>E>)
Conjunto de proposiciones que deben estar presentes en un
PC Precondición estado para poder aplicar dicho operador.
Conjunto de proposiciones que se añadirán al estado tras aplicar el
A Lista de añadir operador.
S’ ← S – E(Op) ∪ A(Op)
aquellos operadores que sean aplicables en el estado. Una vez identificamos todos
los operadores aplicamos la función de expansión (S, a) para todo a que
pertenezcan a los operadores. Generando de esta manera nuevos estados S’ que
serán los nodos hijos del estado S.
Hay que tener cuidado porque en este proceso de aplicación no todos los estados
que se obtienen de la regresión son consistentes.
Figura 8. Ejemplo de regresión en el mundo de los bloques. Eliminación de los estados inconsistentes.
© Universidad Internacional de La Rioja (UNIR)
La heurística STRIPS consiste en encontrar los planes parciales para alcanzar cada
una de las proposiciones que se encuentran en el estado objetivo o meta. Para
construir el plan final, concatenaremos todos los subplanes parciales que tengamos
que construir.
La heurística STRIPS es una heurística fuerte que implica que las metas son
independientes, pero para conseguir alguna propiedad o proposición se puede estar
destruyendo de modo cíclico otra proposición, quedando atrapado en un bucle de
destrucción de proposiciones. De este modo, no se podría alcanzar un plan global
óptimo a partir de los subplanes parciales debido a que, por diseño, la linealización
de la heurística de STRIPS no permite intercalar acciones de dos submetas
independientes. Para poder solucionarlo, deberíamos poder intercalar operadores
de los distintos subplanes.
© Universidad Internacional de La Rioja (UNIR)
Figura 13. El plan óptimo para un caso del mundo de los cubos.
8.3. PDDL
El Planning Domain Description Language (PDDL) fue creado por Drew McDermott y
su equipo. Se basaba en los estándares especificados de STRIPS y ADL (McDermott,
1998). El objetivo inicial era crear un lenguaje común y estándar de creación de
planes para emplear como benchmark entre planificadores, y así poder comparar
agentes de planificación en competiciones o estudios. En la actualidad, es un
estándar que presenta varias versiones, desde la 1.0 a la 3.1, cada una de ellas con
diferentes niveles de expresividad (si bien es cierto que actualmente no hay ningún
planificador que soporte la versión 3.1 completa).
Al igual que en la descripción de STRIPS, la hipótesis del mundo cerrado hace que
los fluents que no sean nombrados explícitamente en una descripción sean
considerados como falsos.
8.4. GOAP
El sistema Goal - Oriented Action Planning (GOAP) fue creado por Jeff Orkin en 2004
© Universidad Internacional de La Rioja (UNIR)
Establece costes a las acciones con el fin de poder asignar prioridad a unas
acciones frente a otras, que es una consideración necesaria para el diseño de
agentes en videojuegos.
Elimina las listas de añadir y eliminar objetos y las convierte en una única lista de
modificaciones del estado en la que las proposiciones pueden ser modificadas de
manera más flexible que por simple operación booleana.
Añade precondiciones procedurales que permiten mayor flexibilidad a la hora de
© Universidad Internacional de La Rioja (UNIR)
Ejemplo:
(AtLocation, Wearing) = (Home, Tie)
El resto de elementos de definición del dominio del problema y del entorno siguen
las especificaciones de STRIPS. Contamos con precondiciones necesarias en una
acción (operador) que produce cambios en las proposiciones del entorno para
alcanzar una meta.
© Universidad Internacional de La Rioja (UNIR)
Figura 22. Varios agentes con el mismo problema, pero varios conjuntos de acciones distintas.
Entenderemos en GOAP que las acciones son clases y, como tales, representan las
precondiciones como un array de variables de estado del mundo. Estas
precondiciones serán como una función para permitir filtros adicionales. Esta
© Universidad Internacional de La Rioja (UNIR)
Sucede lo mismo con las acciones que se podrán programar como un efecto
procedural. Esto nos permite delegar el proceso de cambio en el entorno y
gestionar interrupciones que se puedan producir del plan en tiempo real.
Orkin, J. (2006). Three states and a plan: the AI of FEAR. Proceedings of the 2006
Game Developers Conference (GDC ’06). San José, California.
Accede al vídeo a través del aula virtual o desde la siguiente dirección web:
[Link]
GOAP C++
GOAP
Accede a la página web a través del aula virtual o desde la siguiente dirección web:
[Link]
© Universidad Internacional de La Rioja (UNIR)
Página web de Jeff Orking en la que puedes encontrar información sobre el GOAP.
Accede a la página web a través del aula virtual o desde la siguiente dirección web:
[Link]
Bibliografía adicional
5. PDDL es:
A. Un lenguaje estándar para la definición de problemas de planificación.
B. Un algoritmo de tareas jerárquicas.
© Universidad Internacional de La Rioja (UNIR)
7. La heurística de STRIPS:
A. Descompone el problema en subplanes que concatena para resolver cada
una de las proposiciones abiertas en el estado meta.
B. No usa operadores.
C. Emplea planificación hacia delante.
9. La anomalía de Sussman:
A. Deriva de las acciones que se concatenan en orden inverso.
B. Presenta el problema de destruir y construir de modo infinito submetas.
C. No se da en STRIPS.
10. En GOAP:
A. Existe una lista de añadir y otra de eliminar en los operadores.
B. Todas las acciones deben tener el mismo coste.
C. Existe una única lista de modificación de proposiciones en los operadores.
© Universidad Internacional de La Rioja (UNIR)