Está en la página 1de 64

Introducción a la Inteligencia Artificial Curso 2006–2007

Tema 9: Planificación

Miguel A. Gutiérrez Naranjo


Dpto. de Ciencias de la Computación e Inteligencia Artificial

Universidad de Sevilla

IIA 2006–07 Planificación 1


Planificación en IA

B Planificar: encontrar una secuencia de acciones que alcanzan


un determinado objetivo si se ejecutan desde un determinado
estado inicial.
B Plan: secuencia de acciones que consiguen el objetivo.
B Aplicaciones del mundo real:
Robótica
Fabricación mediante ensamblado de componentes
...

IIA 2006–07 Planificación 2


El problema de la planificación en IA

B Cuestiones a abordar:
Representación del mundo y de las acciones que lo transfor-
man
Representación de planes
Algoritmos de búsqueda de planes
Minimizar los recursos consumidos por el plan
Tiempo en el que se realiza cada acción
Monitorizar la ejecución del plan, revisándolo en caso de erro-
res o contingencias

IIA 2006–07 Planificación 3


Planificación

B Agentes razonando sobre el tiempo


B Agentes razonando en el tiempo

B El tiempo pasa mientras que un agente actúa y razona


B Dado un objetivo, es útil para el agente pensar qué hará en el
futuro para determinar qué hacer ahora

IIA 2006–07 Planificación 4


Representación del tiempo

B Tiempo discreto: El tiempo se mide a saltos, de un instante a


otro.
B Tiempo continuo: El tiempo es denso, sin interrupciones.
B Tiempo basado en eventos: Los pasos no tienen que ser uni-
formes, consideramos el tiempo transcurrido entre eventos in-
teresantes.
B Espacios de estados: No consideramos el tiempo de manera ex-
plı́cita. Consideramos las acciones que nos llevan de un estado
a otro con una duración determinada.
B Podemos modelar el tiempo mediante instantes o intervalos

IIA 2006–07 Planificación 5


Planificación y búsqueda en espacios de estados

B Solucionar un problema de planificación usando los algoritmos


ya vistos de búsqueda en espacio de estados no funciona en un
problema de escala real, por los siguientes motivos:
Descripción de los estados en el mundo real extremadamente
compleja
Gran cantidad de posibles acciones, muchas de ellas irrele-
vantes para la consecución del objetivo final
Las acciones sólo cambian una pequeña porción del mundo
Necesitamos heurı́sticas independientes del dominio

B Idea: usar la lógica para representar estados, acciones y obje-


tivos.

IIA 2006–07 Planificación 6


Un formalismo lógico: STRIPS

B Un lenguaje para representar problemas de planificación:


Constantes: objetos del mundo
Variables para representar cualquier objeto
Sı́mbolos de predicados (para expresar propiedades de los
objetos)
Sı́mbolos de acciones (para representar operadores)

B Hipótesis del mundo cerrado: las condiciones que no se mencio-


nan se consideran falsas.

IIA 2006–07 Planificación 7


Ejemplo: El mundo de los bloques

B Elementos que intervienen:


Una superficie plana.
Una serie de bloques cúbicos.
Un brazo robotizado, que puede coger un bloque cada vez.
Un bloque puede estar sobre la mesa o apilado sobre otro
bloque.
Un bloque puede estar sobre la mesa o apilado sobre otro bloqu

B
C A D

IIA 2006–07 Planificación 8


Representación de estados

Un bloque puede estar sobre la mesa o apilado sobre otro bloqu

B
C A D

B Descripción de un estado:
DESPEJADO(B), DESPEJADO(C), DESPEJADO(D), BRAZOLIBRE,
SOBRE(B,A) SOBRELAMESA(C), SOBRELAMESA(D), SOBRELAMESA(A)
B Predicados en el mundo de los bloques:
DESPEJADO(x), el bloque x está despejado.
BRAZOLIBRE, el brazo no agarra ningún bloque.
SOBRELAMESA(x), el bloque x está sobre la mesa.
SOBRE(x,y), el bloque x está sobre el y.
AGARRADO(X), el bloque X está sujeto por el brazo.

IIA 2006–07 Planificación 9


Representación de objetivos en STRIPS

B Objetivos: descripción de los estados finales.


B Los objetivos se representan como conjunción de literales (con
posibilidad de usar variables)
B Las variables en los objetivos se interpretan como existencial-
mente cuantificadas
B Satisfacer un objetivo:
Un estado satisface un objetivo si es posible sustituir las vari-
ables del objetivo por objetos del mundo de manera que sus
literales están incluidos en la descripción del estado
Un estado es estado final si satisface el objetivo requerido

IIA 2006–07 Planificación 10


Ejemplo de objetivos en STRIPS

C
B D B
C A D A
Estado 1 Estado 2

B El objetivo SOBRE(B,A), SOBRELAMESA(A) es satisfecho por el es-


tado 1 y por el estado 2
B El objetivo SOBRE(x,A), DESPEJADO(x), BRAZOLIBRE es satisfecho
por el estado 1 pero no por el estado 2
B El objetivo SOBRE(x,A), SOBRE(y,x) no es satisfecho por el estado
1 pero sı́ por el estado 2.

IIA 2006–07 Planificación 11


Descripción de acciones en STRIPS

B Representación de operadores o acciones:


O(x1, . . . , xn) simboliza el operador O actuando sobre los
objetos x1, . . . , xn.

B Descripción de la acción de un operador:


Para intentar solucionar el problema sólo se especifica lo que
cambia por la acción del operador.
Usualmente, xi es variable: esquemas de operadores.

IIA 2006–07 Planificación 12


Descripción de acciones en STRIPS

B Descripción de la acción de un operador en estilo STRIPS, me-


diante tres listas:
Precondición: lista de literales que deben ser ciertos para que
el operador pueda ser aplicado.
Borrado: lista de átomos que dejan de ser ciertos una vez se
ha aplicado el operador.
Adición: lista de átomos que pasan a ser ciertos una vez se
ha aplicado el operador.
Es usual unir la lista de borrado y la de adición en lo que se
denomina una lista de efectos (en la que los elementos de la
lista de borrado aparecen negados).

IIA 2006–07 Planificación 13


Operadores en el mundo de los bloques

B Colocar un bloque sobre otro:


APILAR(x,y)
P: DESPEJADO(y), AGARRADO(x)
B: DESPEJADO(y), AGARRADO(x)
A: BRAZOLIBRE, SOBRE(x,y), DESPEJADO(x)
B Quitar un bloque que estaba sobre otro:
DESAPILAR(x,y)
P: SOBRE(x,y), DESPEJADO(x), BRAZOLIBRE
B: SOBRE(x,y), DESPEJADO(x), BRAZOLIBRE
A: AGARRADO(x), DESPEJADO(y)

IIA 2006–07 Planificación 14


Operadores en el mundo de los bloques

B Agarrar un bloque con el robot:


AGARRAR(x)
P: DESPEJADO(x), SOBRELAMESA(x), BRAZOLIBRE
B: DESPEJADO(x), SOBRELAMESA(x), BRAZOLIBRE
A: AGARRADO(x)
B Bajar un bloque hasta la superficie:
BAJAR(x)
P: AGARRADO(x)
B: AGARRADO(x)
A: SOBRELAMESA(x), BRAZOLIBRE, DESPEJADO(x)

IIA 2006–07 Planificación 15


Aplicabilidad y aplicación de operadores

B Un operador es aplicable a un estado si éste satisface su pre-


condición
Si aparecen variables en la precondición, la aplicabilidad se
define respecto de la sustitución usada para satisfacer la pre-
condición
Por abreviar, a veces la sustitución usada aparecerá implı́cita
al hablar del operador
Por ejemplo, hablaremos de DESAPILAR(B,A) para
referirnos a DESAPILAR(x,y) con la sustitución x/A,y/B

IIA 2006–07 Planificación 16


Aplicabilidad y aplicación de operadores

B El resultado de aplicar un operador aplicable (respecto de una


sustitución) a un estado E es el estado resultante de:
Eliminar de E los átomos, instanciados por la sustitución, de
la lista de borrado
Añadir a E los átomos instanciados de la lista de adición

B Plan: secuencia de operadores aplicables, completamente instan-


ciados.
B Solución: plan que a partir del estado inicial obtiene un estado
que satisface el objetivo

IIA 2006–07 Planificación 17


Ejemplo de aplicación de operador en STRIPS

DESAPILAR(B,A) B
B
C A D C A D
* Estado antes de aplicar DESAPILAR(B,A):

IIA 2006–07 Planificación 18


Ejemplo de aplicación de operador en STRIPS

B Estado antes de aplicar DESAPILAR(B,A):


E = {DESPEJADO(B), DESPEJADO(C), DESPEJADO(D), BRAZOLIBRE,
SOBRE(B,A) SOBRELAMESA(C), SOBRELAMESA(D), SOBRELAMESA(A)}
B Precondiciones de DESAPILAR(B,A):
P = { SOBRE(B,A), DESPEJADO(B), BRAZOLIBRE}
B Listas de borrado y adición de DESAPILAR(B,A):
B = {SOBRE(B,A), DESPEJADO(B), BRAZOLIBRE}
A = {AGARRADO(B), DESPEJADO(A)}
B Estado después de aplicar DESAPILAR(B,A):
E = (E-B)+A = { DESPEJADO(C), DESPEJADO(D), SOBRELAMESA(C),
SOBRELAMESA(D), SOBRELAMESA(A), AGARRADO(B), DESPEJADO(A)}

IIA 2006–07 Planificación 19


Ejemplo de aplicación de operador en STRIPS

BAJAR(B)

C A D B C A D

IIA 2006–07 Planificación 20


Ejemplo de aplicación de operador en STRIPS

B Estado antes de aplicar BAJAR(B):


E = {DESPEJADO(C), DESPEJADO(A), DESPEJADO(D), SOBRELAMESA(C),
SOBRELAMESA(A), SOBRELAMESA(D), AGARRADO(B)}.

B Precondiciones de BAJAR(B): P = {AGARRADO(B)}

B Lista de borrado de BAJAR(B): B = {AGARRADO(B)}


B Lista de adición de DESAPILAR(B,A):
A = {SOBRELAMESA(B), BRAZOLIBRE, DESPEJADO(B)}
B Estado después de aplicar DESAPILAR(B,A):
E = (E-B)+A = { DESPEJADO(C), DESPEJADO(A), DESPEJADO(D),
SOBRELAMESA(C), SOBRELAMESA(A), SOBRELAMESA(D),SOBRELAMESA(B),
BRAZOLIBRE, DESPEJADO(B)}

IIA 2006–07 Planificación 21


Extensiones al formalismo STRIPS

B Existen sistemas de planificación que usan un lenguaje de re-


presentación más expresivo
B Ejemplo:
Uso de sı́mbolos de función
Manejo del sı́mbolo de igualdad
Disyunciones
Variables con tipos

B En general existe un compromiso entre expresividad del lengua-


je y simplicidad de los algoritmos que manejan la representación.

IIA 2006–07 Planificación 22


Búsqueda de planes hacia adelante

B Un problema de planificación se puede plantear como un pro-


blema de espacio de estados:
Estados descritos mediante listas de literales.
Operadores como listas de precondiciones, adición y borrado.
Función es-estado-final descrita por un objetivo.

B La búsqueda de planes podrı́a hacerse usando los algoritmos de


búsqueda ya vistos en los temas anteriores: anchura, profundi-
dad, A∗,. . .
B El uso de la representación STRIPS permite el uso de heurı́sticas
independientes del dominio, por ejemplo, el número de literales
en el objetivo que quedan por satisfacer en un estado.

IIA 2006–07 Planificación 23


Cálculo de sucesores

B
C A D
APILAR(x,y)
[x=B,y=C]

APILAR(x,y)
[x=B,y=A] B
B C A D

C A D
APILAR(x,y)
[x=B,y=D] B
C A D
BAJAR(x)
[x=B]

B C A D

IIA 2006–07 Planificación 24


Ineficiencia de la búsqueda hacia adelante

B La búsqueda hacia adelante en un problema de planificación:


Es completa (si el conjunto de objetos es finito)
Es ineficiente en la práctica

B El formalismo lógico para representar los estados, resuelve en


cierta medida la obtención de heurı́sticas independientes del do-
minio

IIA 2006–07 Planificación 25


Ineficiencia de la búsqueda hacia adelante

B Sin embargo, persisten algunos problemas:


El gran factor de ramificación (consideración de acciones irre-
levantes)
La búsqueda del plan de manera secuencial
Planes no jerárquicos

B Para intentar resolver el primer punto, se puede realizar una


búsqueda hacia atrás, dirigida por el objetivo.

IIA 2006–07 Planificación 26


Búsqueda de planes hacia atrás

B Búsqueda hacia atrás:


Comienzo en un objetivo
En cada estado se generan todos los posibles predecesores
Finalizar cuando se alcanza un objetivo que es cierto en el
estado inicial

IIA 2006–07 Planificación 27


Búsqueda de planes hacia atrás

B Predecesor de un objetivo G:
mediante operador O y sustitución θ
es cualquier estado E cuyo sucesor al aplicar O y θ satisface
G.

B Ventajas:
Generalmente más eficiente: menos ramificación
Posibilidad de aplicar heurı́sticas independientes del dominio

IIA 2006–07 Planificación 28


Cálculo de predecesores

C A D

APILAR(x,y)
[x=B,y=C]

A
B DEJAR(x)
[x=A]
B
C D
C A D
DEJAR(x)
[x=D]
D
B
C A

IIA 2006–07 Planificación 29


Algoritmo de planificación STRIPS

B Primer algoritmo especı́fico de planificación


Stanford Research Institute Problem Solver
Disenado en los anos 70 para controlar el robot Shakey
El formalismo que se usó para representar estados, objetivos,
y acciones tuvo un fuerte impacto en desarrollos posteriores
Sin embargo, hoy dı́a hay técnicas más eficientes.

B Planificación lineal y hacia atrás


Hacia atrás: pila de objetivos por conseguir
Lineal: La búsqueda se realiza sobre secuencias de acciones
conectadas con el objetivo

IIA 2006–07 Planificación 30


Algoritmo de planificación STRIPS

B La idea en el planificador STRIPS es que en cada momento se


mantiene:
Una pila con objetivos y con operadores.
Un estado actual.

B Pila de objetivos y operadores:


Objetivos a alcanzar.
Operadores: Acciones a aplicar.

IIA 2006–07 Planificación 31


Algoritmo de planificación STRIPS

B Procedimiento:
Inicialmente, se coloca en la pila el objetivo a conseguir.
Los operadores se colocan en la pila para conseguir objetivos.
Las precondiciones de los operadores son nuevos objetivos.
Si un objetivo en la cima de la pila se verifica, se desapila
Si hay un operador en la cima de la pila se aplica al estado
actual
Si la pila se vacı́a, el objetivo se ha conseguido.

IIA 2006–07 Planificación 32


Ejemplo de planificación STRIPS

B El El
problema:
problema:

A C
B C B A
Estado inicial Estado final

IIA 2006–07 Planificación 33


Ejemplo de planificación STRIPS

B Estados:
B Estado inicial = {SOBRELAMESA(B), SOBRELAMESA(C).
DESPEJADO(A), DESPEJADO(C), BRAZOLIBRE, SOBRE(A,B)}

B Estado final = { SOBRELAMESA(B), SOBRELAMESA(A). DESPEJADO(A),


DESPEJADO(C), BRAZOLIBRE, SOBRE(C,B)}
B Llamaremos R a lo que tienen en común ambos estados:
R = { SOBRELAMESA(B), BRAZOLIBRE, DESPEJADO(A),
DESPEJADO(C)}
B En cada momento, mantenemos una pila de objetivos y oper-
adores y un estado actual.

IIA 2006–07 Planificación 34


Ejemplo de planificación STRIPS

B Estado inicial
El problema:

A C
B C B A
Estado inicial Estado final

B Pila actual: Inicialmente la conjunción de los literales del estado


final son
SOBRE(C,B), SOBRELAMESA(A), R

IIA 2006–07 Planificación 35


Ejemplo de planificación STRIPS

B En la cima de la pila hay una conjunción de objetivos:


Comprobar si la cima de la pila es cierta en el estado actual.
Nuevo objetivo: satisfacer los literales que no sean ciertos.

B Hay que satisfacer dos literales: se apilan.


B Dos posibilidades, dependiendo del orden:
SOBRE(C,B) SOBRELAMESA(A)
SOBRELAMESA(A) SOBRE(C,B)
SOBRE(C,B), SOBRELAMESA(A), R SOBRE(C,B), SOBRELAMESA(A), R

IIA 2006–07 Planificación 36


Ejemplo de planificación STRIPS

B Optamos por la primera, pudiendo reconsiderar mas tarde la


segunda.
B Pila actual:
SOBRE(C,B)
SOBRELAMESA(A)
SOBRE(C,B), SOBRELAMESA(A), R

IIA 2006–07 Planificación 37


Ejemplo de planificación STRIPS

B En la cima de la pila hay un sólo objetivo:


Comprobar si es cierto en el estado actual.
Si no, buscar operadores que lo tengan en su lista de adición
y tratar de aplicarlos.

B Buscando operadores: El único operador que añade algo de la


forma SOBRE(x,y) es APILAR(x,y):
P: DESPEJADO(y), AGARRADO(x)
B: DESPEJADO(y), AGARRADO(x)
A: BRAZOLIBRE, SOBRE(x,y), DESPEJADO(x)
... (con sustitución [x=C,y=B])

IIA 2006–07 Planificación 38


Ejemplo de planificación STRIPS

B Apilamos el operador, obteniendo la siguiente pila actual:


APILAR(C,B)
SOBRE(C,B)
SOBRELAMESA(A)
SOBRE(C,B), SOBRELAMESA(A), R

IIA 2006–07 Planificación 39


Ejemplo de planificación STRIPS

B El operador se ha podido aplicar.


B Apilamos sus precondiciones y serán el nuevo objetivo a satis-
facer.
B Pila actual:
DESPEJADO(B), AGARRADO(C)
APILAR(C,B)
SOBRE(C,B)
SOBRELAMESA(A)
SOBRE(C,B), SOBRELAMESA(A), R

B El objetivo de la cima de la pila no es cierto en el estado actual.


B Apilamos, en un determinado orden, los literales que necesita-
mos satisfacer.
IIA 2006–07 Planificación 40
Ejemplo de planificación STRIPS

B Dos posibilidades:
DESPEJADO(B) AGARRADO(C)
AGARRADO(C) DESPEJADO(B)
DESPEJADO(B), AGARRADO(C) DESPEJADO(B), AGARRADO(C)
APILAR(C,B) APILAR(C,B)
SOBRE(C,B) SOBRE(C,B)
SOBRELAMESA(A) SOBRELAMESA(A)
SOBRE(C,B), SOBRELAMESA(A), R SOBRE(C,B), SOBRELAMESA(A), R

B Optamos por la primera, pudiendo reconsiderar mas tarde la


segunda.

IIA 2006–07 Planificación 41


Ejemplo de planificación STRIPS

B Pila actual:
DESPEJADO(B)
AGARRADO(C)
DESPEJADO(B), AGARRADO(C)
APILAR(C,B)
SOBRE(C,B)
SOBRELAMESA(A)
SOBRE(C,B), SOBRELAMESA(A), R

B El literal de la cima de la pila no es cierto en el estado actual.


B Debemos buscar un operador que lo tenga en su lista de adición.

IIA 2006–07 Planificación 42


Ejemplo de planificación STRIPS

B Buscando operadores: Operadores que añaden DESPEJA-


DO(..):
DESAPILAR(x, y) (con sustitución [y=B])
BAJAR(x) (con sustitución [x=B])
APILAR(x,y), (con sustitución [x=B]).

IIA 2006–07 Planificación 43


Ejemplo de planificación STRIPS

B Problema: Variables que pueden ser sustituidas por cualquier


bloque. Por ejemplo, DESAPILAR(x,y) se puede instanciar de
tres maneras diferentes.
B Posibilidades (entre otras):
DESAPILAR(A,B) DESAPILAR(B,B) DESAPILAR(C,B)
DESPEJADO(B) DESPEJADO(B) DESPEJADO(B)
AGARRADO(C) AGARRADO(C) AGARRADO(C)
DESPEJADO(B), AGARRADO(C) DESPEJADO(B), AGARRADO(C) DESPEJADO(B), AGARRADO(C)
APILAR(C,B) APILAR(C,B) APILAR(C,B)
SOBRE(C,B) SOBRE(C,B) SOBRE(C,B)
SOBRELAMESA(A) SOBRELAMESA(A) SOBRELAMESA(A)
SOBRE(C,B), SOBRELAMESA(A), R SOBRE(C,B), SOBRELAMESA(A), R SOBRE(C,B), SOBRELAMESA(A), R

B Optamos por la primera posibilidad ([x=A,y=B], reconsiderable).

IIA 2006–07 Planificación 44


Ejemplo de planificación STRIPS

B Pila actual (apilando también sus precondiciones):


SOBRE(A,B), DESPEJADO(A), BRAZOLIBRE
DESAPILAR(A,B)
DESPEJADO(B)
AGARRADO(C)
DESPEJADO(B), AGARRADO(C)
APILAR(C,B)
SOBRE(C,B)
SOBRELAMESA(A)
SOBRE(C,B), SOBRELAMESA(A), R

IIA 2006–07 Planificación 45


Ejemplo de planificación STRIPS

B Como el objetivo de la pila es cierto en el estado actual, se


desapila.
B Pila actual:
DESAPILAR(A,B)
DESPEJADO(B)
AGARRADO(C)
DESPEJADO(B), AGARRADO(C)
APILAR(C,B)
SOBRE(C,B)
SOBRELAMESA(A)
SOBRE(C,B), SOBRELAMESA(A), R

IIA 2006–07 Planificación 46


Ejemplo de planificación STRIPS

B El operador en la cima de la pila se puede aplicar.


B Nuevo estado actual:
Nuevo estado actual:

B C
Estado actual

B Nótese cómo el apilar todas las precondiciones del operador so-


bre el mismo operador actúa como un mecanismo que asegura
que la aplicación del operador es correcta en el estado actual.
IIA 2006–07 Planificación 47
Ejemplo de planificación STRIPS

B Pila actual:
DESPEJADO(B)
AGARRADO(C)
DESPEJADO(B), AGARRADO(C)
APILAR(C,B)
SOBRE(C,B)
SOBRELAMESA(A)
SOBRE(C,B), SOBRELAMESA(A), R

IIA 2006–07 Planificación 48


Ejemplo de planificación STRIPS

B El objetivo de la cima de la pila es cierto ahora en el estado


actual: lo desapilamos.
B Pila actual:
AGARRADO(C)
DESPEJADO(B), AGARRADO(C)
APILAR(C,B)
SOBRE(C,B)
SOBRELAMESA(A)
SOBRE(C,B), SOBRELAMESA(A), R

IIA 2006–07 Planificación 49


Ejemplo de planificación STRIPS
B Buscando operadores: Los operadores que añaden AGARRADO(x)
son:
B AGARRAR(x)
P: DESPEJADO(x), SOBRELAMESA(x), BRAZOLIBRE
B: DESPEJADO(x), SOBRELAMESA(x), BRAZOLIBRE
A: AGARRADO(x)
(con sustituticion [x=C])

B DESAPILAR(x,y)
P: SOBRE(x,y), DESPEJADO(x), BRAZOLIBRE
B: SOBRE(x,y), DESPEJADO(x), BRAZOLIBRE
A: AGARRADO(x), DESPEJADO(y)
(con sustitución [x=C], y tres posibilidades para la y)
IIA 2006–07 Planificación 50
Ejemplo de planificación STRIPS

B De las cuatro opciones posibles escogemos la primera (reconsid-


erable).

B Pila actual (con las precondiciones):


DESPEJADO(C), SOBRELAMESA(C), BRAZOLIBRE
AGARRAR(C)
AGARRADO(C)
DESPEJADO(B), AGARRADO(C)
APILAR(C,B)
SOBRE(C,B)
SOBRELAMESA(A)
SOBRE(C,B), SOBRELAMESA(A), R

B El objetivo de la cima no es cierto, ya que el brazo no está libre.


IIA 2006–07 Planificación 51
Ejemplo de planificación STRIPS

B Pila actual:
BRAZOLIBRE
DESPEJADO(C), SOBRELAMESA(C), BRAZOLIBRE
AGARRAR(C)
AGARRADO(C)
DESPEJADO(B), AGARRADO(C)
APILAR(C,B)
SOBRE(C,B)
SOBRELAMESA(A)
SOBRE(C,B), SOBRELAMESA(A), R

IIA 2006–07 Planificación 52


Ejemplo de planificación STRIPS
B Buscando operadores: Los operadores que dejan el brazo libre
son:
B BAJAR(x)
P: AGARRADO(x)
B: AGARRADO(x)
A: SOBRELAMESA(x), BRAZOLIBRE, DESPEJADO(x)
(con cualquier sustitutición)

B APILAR(x,y)
P: DESPEJADO(y), AGARRADO(x)
B: DESPEJADO(y), AGARRADO(x)
A: BRAZOLIBRE, SOBRE(x,y), DESPEJADO(x)
(con cualquier sustitución
IIA 2006–07 Planificación 53
Ejemplo de planificación STRIPS

B Escojemos BAJAR(A) (heurı́stica).

B Pila actual, con precondiciones:


AGARRADO(A)
BAJAR(A)
BRAZOLIBRE
DESPEJADO(C), SOBRELAMESA(C), BRAZOLIBRE
AGARRAR(C)
AGARRADO(C)
DESPEJADO(B), AGARRADO(C)
APILAR(C,B)
SOBRE(C,B)
SOBRELAMESA(A)
SOBRE(C,B), SOBRELAMESA(A), R

IIA 2006–07 Planificación 54


Ejemplo de planificación STRIPS

B Objetivo de la cima de la pila cierto, desapilamos:


BAJAR(A)
BRAZOLIBRE
DESPEJADO(C), SOBRELAMESA(C), BRAZOLIBRE
AGARRAR(C)
AGARRADO(C)
DESPEJADO(B), AGARRADO(C)
APILAR(C,B)
SOBRE(C,B)
SOBRELAMESA(A)
SOBRE(C,B), SOBRELAMESA(A), R

B Operador en la cima de la pila: se puede aplicar

IIA 2006–07 Planificación 55


Ejemplo de planificación STRIPS

B Nuevo estado actual:

B C A
Estado actual

IIA 2006–07 Planificación 56


Ejemplo de planificación STRIPS

B Pila actual (desapilamos el operador):


BRAZOLIBRE
DESPEJADO(C), SOBRELAMESA(C), BRAZOLIBRE
AGARRAR(C)
AGARRADO(C)
DESPEJADO(B), AGARRADO(C)
APILAR(C,B)
SOBRE(C,B)
SOBRELAMESA(A)
SOBRE(C,B), SOBRELAMESA(A), R

IIA 2006–07 Planificación 57


Ejemplo de planificación STRIPS

B Pila actual (desapilamos dos veces al ser ciertos los objetivos de


la cima):
AGARRAR(C)
AGARRADO(C)
DESPEJADO(B), AGARRADO(C)
APILAR(C,B)
SOBRE(C,B)
SOBRELAMESA(A)
SOBRE(C,B), SOBRELAMESA(A), R

IIA 2006–07 Planificación 58


Ejemplo de planificación STRIPS

B Operador en la cima de la pila: Se aplica y se desapila.


B Estado actual:

B A
Estado actual

IIA 2006–07 Planificación 59


Ejemplo de planificación STRIPS

B Pila actual:
AGARRADO(C)
DESPEJADO(B), AGARRADO(C)
APILAR(C,B)
SOBRE(C,B)
SOBRELAMESA(A)
SOBRE(C,B), SOBRELAMESA(A), R

IIA 2006–07 Planificación 60


Ejemplo de planificación STRIPS

B Pila actual (desapilamos dos veces al ser ciertos los objetivos de


la cima):
APILAR(C,B)
SOBRE(C,B)
SOBRELAMESA(A)
SOBRE(C,B), SOBRELAMESA(A), R

B Operador en la cima de la pila, se puede aplicar y desapilar

IIA 2006–07 Planificación 61


Ejemplo de planificación STRIPS

B Estado actual:

C
B A
Estado actual

IIA 2006–07 Planificación 62


Ejemplo de planificación STRIPS

B Pila actual:
SOBRE(C,B)
SOBRELAMESA(A)
SOBRE(C,B), SOBRELAMESA(A), R

B Se desapilan sucesivamente los objetivos, por ser ciertos en el


estado actual.
B En particular, es cierto el último objetivo, porque se ha llegado
al estado final buscado
B La pila queda vacı́a y acaba la búsqueda.
B Plan encontrado: DESAPILAR(A,B), BAJAR(A), AGARRAR(C),
APILAR(A,B)

IIA 2006–07 Planificación 63


Bibiliografı́a

B Russell, S. y Norvig, P. Artificial Intelligence: A Modern Ap-


proach Prentice Hall International, 1995.
B Poole, D., Mackworth, A. y Goebel, R. Computational Intelli-
gence A Logical Approach. Oxford University Press, New York,
1998.
B Inteligencia Artificial I. Universidad de Sevilla.
http://www.cs.us.es/cursos/ia1/

IIA 2006–07 Planificación 64

También podría gustarte