Sie sind auf Seite 1von 115

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Tema 8: Planicacin
Jos Luis Ruiz Reina
Departamento de Ciencias de la Computacin e Inteligencia Articial Universidad de Sevilla

Inteligencia Articial I, 2011

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

ndice
Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin de orden parcial: POP Grafo de planicacin: GRAPHPLAN

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Planicacin en IA
Planicar: encontrar una secuencia de acciones que

alcanzan un determinado objetivo si se ejecutan desde un determinado estado inicial.


Plan: secuencia de acciones que consiguen el objetivo Aplicaciones del mundo real:
Robtica Fabricacin mediante ensamblado de componentes Misiones espaciales

Planning vs Scheduling
Planning se reere a la secuenciacin de acciones para

conseguir un objetivo y Scheduling pone ms nfasis en la utilizacin eciente de los recursos disponibles, por parte de las acciones

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

El problema de la planicacin en IA
Posibles cuestiones a abordar:
Representacin del mundo y de las acciones que lo

transforman Algoritmos de bsqueda de planes Minimizar los recursos consumidos por el plan Tiempo en el que se realiza cada accin Monitorizar la ejecucin del plan, revisndolo en caso de errores o contingencias

Por simplicar, en este tema supondremos:


Un nmero nito de estados Completamente observables Acciones deterministas, totalmente denidas por su

especicacin
Tiempo implcito: los acciones actan sin duracin La planicacin se realiza a priori Hiptesis del mundo cerrado

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Planicacin y bsqueda en espacio de estados


Problema abordable con bsqueda en espacio de estados,

pero en problemas de escala real hay que abordar adems:


Descripcin de los estados en el mundo real

extremadamente compleja
Gran cantidad de posibles acciones, muchas de ellas

irrelevantes para la consecucin del objetivo nal


Las acciones slo cambian una pequea porcin del

mundo (el problema del marco)


Necesitamos heursticas independientes del dominio La necesidad de una accin puede detectarse sin

necesidad de que se haya decidido las acciones previas (compromiso mnimo) A veces es aconsejable descomponer en subproblemas ms simples Idea: usar la lgica para representar estados, acciones y

objetivos, y algoritmos que operan sobre esta representacin

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Ejemplo: el mundo de los bloques


Ejemplo clsico en planicacin. Elementos que intervienen:

Una supercie plana. Una serie de bloques cbicos. Un brazo robotizado, que puede coger un bloque cada vez. Un bloque puede estar sobre la mesa o apilado sobre otro bloque.

B C A D

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Formalismo lgico: el lenguaje PDDL


Un lenguaje para representar problemas de planicacin:
Constantes: objetos del mundo (en maysculas) Variables para representar cualquier objeto (en minsculas) Smbolos de predicados (para expresar propiedades de los

objetos)
Smbolos de acciones (para representar operadores)

Terminologa:
Atomos: frmulas de la forma P(o1 , . . . , on ), donde P es

un smbolo de predicado y cada oi es una constante o una variable (no hay smbolos de funcin) Literales: tomos o negacin de tomos (usaremos el smblo - para la negacin) Atomos y literales cerrados: sin variables Estados: conjuncin de tomos cerrados
Hiptesis del mundo cerrado: los tomos que no se

mencionan se suponen falsos

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Representacin de estados en el mundo de los bloques


Descripcin de un estado:

B C A D

DESPEJADO(B), DESPEJADO(C), DESPEJADO(D), BRAZOLIBRE(), SOBRE(B,A), SOBRELAMESA(C), SOBRELAMESA(D), SOBRELAMESA(A)

Predicados lgicos usados en esta representacin:


DESPEJADO(x), el bloque x est despejado. BRAZOLIBRE(), el brazo no agarra ningn 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.

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Representacin de objetivos
Objetivos: descripcin de los estados nales. Los objetivos se representan como conjuncin de literales

(con posibilidad de usar variables)


Las variables en los objetivos se interpretan como

existencialmente cuanticadas Satisfacer un objetivo:


Un estado satisface un objetivo si es posible sustituir las

variables del objetivo por constantes de manera que el estado contiene todos los literales positivos del objetivo instanciado y ninguno de los negativos Un estado es estado nal si satisface el objetivo requerido Importante: vericar si un estado satisface un objetivo es

un clculo meramente simblico

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Ejemplo de objetivos en el mundo de los bloques


C B C A
Estado 1

D D

B A
Estado 2

Ejemplos de objetivos:
SOBRE(B,A), SOBRELAMESA(A), -SOBRE(C,B) es

satisfecho por el estado 1 y por el estado 2


SOBRE(x,A), DESPEJADO(x), BRAZOLIBRE() es

satisfecho por el estado 1 pero no por el estado 2


SOBRE(x,A), SOBRE(y,x) no es satisfecho por el estado 1

pero s por el estado 2


El objetivo SOBRE(x,A), -SOBRE(C,x) es satisfecho por el

estado 1 pero no por el estado 2

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Descripcin de esquemas de acciones (operadores)

Para intentar solucionar el problema del marco, slo se

especica lo que cambia por la accin del operador.


Un operador se describe mediante:
Su nombre y todas las variables involucradas:

O(x1 , . . . , xn )
Precondicin: lista de literales que deben cumplirse para

poder aplicar la accin.


Efectos: lista de literales que indica los cambios que se

producirn cuando se aplique.

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Descripcin de esquemas de acciones (operadores)

En la lista de efectos distinguimos:


Efectos positivos (o lista de adicin): tomos que pasarn a

ser ciertos
Efectos negativos (o lista de borrado): tomos que dejarn

de ser ciertos El uso de variables hace que un operador usualmente

represente un esquema de accin:


Por cada manera de sustituir las variables de un operador

por constantes, tenemos una accin concreta (una instancia del operador)

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Ejemplo: operadores en el mundo de los bloques


Colocar un bloque sobre otro:
APILAR(x,y) Prec.: DESPEJADO(y), AGARRADO(x) Efec.: -DESPEJADO(y), -AGARRADO(x), BRAZOLIBRE(), SOBRE(x,y), DESPEJADO(x)

Quitar un bloque que estaba sobre otro:


DESAPILAR(x,y) Prec.: SOBRE(x,y), DESPEJADO(x), BRAZOLIBRE() Efec.: -SOBRE(x,y), -DESPEJADO(x), -BRAZOLIBRE(), AGARRADO(x), DESPEJADO(y),

Agarrar un bloque con el robot:


AGARRAR(x) Prec.: DESPEJADO(x), SOBRELAMESA(x), BRAZOLIBRE() Efec.: -DESPEJADO(x), -SOBRELAMESA(x), -BRAZOLIBRE(), AGARRADO(x)

Bajar un bloque hasta la supercie:


BAJAR(x) Prec.: AGARRADO(x) Efec.: -AGARRADO(x), SOBRELAMESA(x), BRAZOLIBRE(), DESPEJADO(x)

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Aplicabilidad de un operador

Un operador es aplicable a un estado si ste satisface su

precondicin
Si aparecen variables en la precondicin, la aplicabilidad se

dene respecto de la sustitucin usada para satisfacer la precondicin Por abreviar, a veces la sustitucin usada aparecer implcita al hablar del operador Por ejemplo, hablaremos de DESAPILAR(A,B) para referirnos a DESAPILAR(x,y) con la sustitucin [x/A,y/B] Un mismo operador puede dar lugar a distintas acciones que son aplicables al mismo estado

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Resultado de aplicar de un operador

El resultado de aplicar un operador aplicable (respecto de

una sustitucin ) a un estado E es el estado resultante de:


Eliminar de E los tomos, instanciados por ,

correspondiente a la lista de efectos negativos (si estuvieran) Aadir a E los tomos, instanciados por , correspondientes a la lista de efectos positivos (si no estuvieran)

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Ejemplo de aplicacin de operador (I)


DESAPILAR(B,A)

B C A D

B C A D

* Estado antes de aplicar DESAPILAR(B,A): E = {DESPEJADO(B), DESPEJADO(C), DESPEJADO(D), BRAZOLIBRE(), SOBRE(B,A), SOBRELAMESA(C), SOBRELAMESA(D), SOBRELAMESA(A)} * Precondiciones de DESAPILAR(B,A): Prec = {SOBRE(B,A), DESPEJADO(B), BRAZOLIBRE()} ------ Condiciones satisfechas en el estado -----------(operador aplicable) ------* Efectos de DESAPILAR(B,A): Efec- = {SOBRE(B,A), DESPEJADO(B), BRAZOLIBRE()} Efec+ = {AGARRADO(B), DESPEJADO(A)} * Estado despus de aplicar DESAPILAR(B,A): E = (E - Efec-) U Efec+ = {DESPEJADO(C), DESPEJADO(D), SOBRELAMESA(C), SOBRELAMESA(D), SOBRELAMESA(A), AGARRADO(B), DESPEJADO(A)}

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Ejemplo de aplicacin de operador (II)


B C A
BAJAR(B)

* Estado antes de aplicar BAJAR(B): E = {DESPEJADO(C), DESPEJADO(A), DESPEJADO(D), SOBRELAMESA(C), SOBRELAMESA(A), SOBRELAMESA(D), AGARRADO(B)} * Precondiciones de BAJAR(B): Prec = {AGARRADO(B)} ------ Condiciones satisfechas en el estado -----------(operador aplicable) ------* Efectos de BAJAR(B): Efec- = {AGARRADO(B)} Efec+ = {SOBRELAMESA(B), BRAZOLIBRE(), DESPEJADO(B)} * Estado despus de aplicar BAJAR(B): E = (E - Efec-) U Efec+ = {DESPEJADO(C), DESPEJADO(A), DESPEJADO(D), SOBRELAMESA(C), SOBRELAMESA(A), SOBRELAMESA(D),SOBRELAMESA(B), BRAZOLIBRE(), DESPEJADO(B)}

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Planes y soluciones

Plan: secuencia de acciones


La primera aplicable al estado inicial y cada una de ellas

aplicable al resultado de la anterior Solucin: plan que a partir del estado inicial obtiene un

estado que satisface el objetivo

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Ejemplo: cambio de rueda pinchada

Lenguaje:
Objetos: RUEDA-REPUESTO, RUEDA-PINCHADA, EJE, MALETERO, SUELO Predicado: EN(-,-)

Estado inicial:
EN(RUEDA-PINCHADA,EJE),EN(RUEDA-REPUESTO,MALETERO)

Estado nal:
EN(RUEDA-REPUESTO,EJE)

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Acciones en el cambio de rueda pinchada


Sacar la rueda de repuesto del maletero:
QUITAR(RUEDA-REPUESTO,MALETERO) Prec.: EN(RUEDA-REPUESTO,MALETERO) Efec.: EN(RUEDA-REPUESTO,SUELO), -EN(RUEDA-REPUESTO,MALETERO)

Quitar la rueda pinchada del eje:


QUITAR(RUEDA-PINCHADA,EJE) Prec.: EN(RUEDA-PINCHADA,EJE) Efec.: -EN(RUEDA-PINCHADA,EJE), EN(RUEDA-PINCHADA,SUELO)

Colocar la rueda de repuesto en el eje:


PONER(RUEDA-REPUESTO,EJE) Prec.: -EN(RUEDA-PINCHADA,EJE), EN(RUEDA-REPUESTO,SUELO) Efec.: -EN(RUEDA-REPUESTO,SUELO), EN(RUEDA-REPUESTO,EJE)

Dejar el coche solo hasta la maana siguiente:


DEJARSOLO() Prec.: {} Efec.: -EN(RUEDA-REPUESTO,SUELO), -EN(RUEDA-REPUESTO,EJE), -EN(RUEDA-REPUESTO,MALETERO) -EN(RUEDA-PINCHADA,EJE), -EN(RUEDA-PINCHADA,SUELO)

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Ejemplo: movimiento de robot por una rejilla


Un robot ha de desplazarse por una rejilla, desde una

posicin inicial a una nal


8 movimientos posibles: N, S,E,O,NO,NE,SO,SE En algunas de las rejillas existen obstculos no

franqueables
Objetivo

Situacion inicial del robot

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Representacin del problema del movimiento de robot


Lenguaje:
Constantes: nmeros que indican coordenas horizontales y

verticales
Predicados: ROBOT-EN(-,-) y LIBRE(-,-)

Estado inicial (casillas sin obstculos y posicin del robot):


LIBRE(1,1),...,LIBRE(6,2),LIBRE(11,2),...,LIBRE(12,12), ROBOT-EN(2,3).

Objetivo: ROBOT-EN(10,11) Acciones (slo una, las siete restantes son anlogos):
MOVER-SE(x,y) Prec.: ROBOT-EN(x,y), LIBRE(x+1,y-1) Efec.: -ROBOT-EN(x,y), -LIBRE(x+1,y-1), ROBOT-EN(x+1,y-1), LIBRE(x,y)

En este caso, necesitamos smbolos de funcin (+ y ), y

que el test de satisfacibilidad maneje las nociones de numero siguiente y anterior (extendemos la semntica)

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Extensiones al formalismo PDDL


Existen sistemas de planicacin que usan un lenguaje de

representacin ms expresivo
Por ejemplo:
Variables con tipos (no es una extensin que aumente la

capacidad expresiva) Uso de smbolos de funcin Manejo del smbolo de igualdad Evaluacin de funciones al aplicar acciones Disyunciones en las precondiciones

En general existe un compromiso entre expresividad del

lenguaje y simplicidad de los algoritmos que manejan la representacin

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Bsqueda en el espacio de estados


Un problema de planicacin se puede plantear como un

problema de espacio de estados:


Estados descritos mediante listas de tomos cerrados. Operadores como listas de precondiciones y efectos. Funcin es-estado-final descrita por un objetivo.

La bsqueda de planes podra hacerse usando los

algoritmos de bsqueda ya vistos en los temas anteriores: anchura, profundidad, primero el mejor, A*,. . .
El uso del formalismo lgico permite el uso de heursticas

independientes del dominio


Por ejemplo, el nmero de literales en el objetivo que

quedan por satisfacer en un estado

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Clculo de sucesores
B C
APILAR(x,y) [x=B,y=C]

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

B C A D

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

B C A D

BAJAR(x) [x=B]

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Clculo de sucesores
Ejemplo:
E = {DESPEJADO(C), DESPEJADO(A), DESPEJADO(D), SOBRELAMESA(C), SOBRELAMESA(A), SOBRELAMESA(D), AGARRADO(B)} Cuatro posibles acciones aplicables: 1), 2) y 3): O=APILAR(x,y) con THETA=[x=B,y=C], THETA=[x=B,y=A] y THETA=[x=B,y=D], resp. 4): O=DEJAR(x) con sustitucin THETA=[x=B]. Sucesores: E1= { DESPEJADO(A), DESPEJADO(D), SOBRELAMESA(C), SOBRELAMESA(A), SOBRELAMESA(D), BRAZOLIBRE(), DESPEJADO(B), SOBRE(B,C)} E2= { DESPEJADO(C), DESPEJADO(D), SOBRELAMESA(C), SOBRELAMESA(A), SOBRELAMESA(D), BRAZOLIBRE(), DESPEJADO(B), SOBRE(B,A)} E3= { DESPEJADO(A), DESPEJADO(C), SOBRELAMESA(C), SOBRELAMESA(A), SOBRELAMESA(D), BRAZOLIBRE(), DESPEJADO(B), SOBRE(B,D)} E4= { DESPEJADO(A), DESPEJADO(C), DESPEJADO(D), SOBRELAMESA(C), SOBRELAMESA(A), SOBRELAMESA(D), BRAZOLIBRE(), DESPEJADO(B), SOBRELAMESA(B)}

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Bsqueda hacia adelante en profundidad con heurstica


FUNCION BUSQUEDA-EN-PROFUNDIDAD-H(ESTADO-INICIAL,OBJETIVO,OPERADORES) Devolver BEP-H-REC({},{},ESTADO-INICIAL,OBJETIVO,OPERADORES) FUNCION BEP-H-REC(PLAN,VISITADOS,ACTUAL,OBJ,OPERADORES) 1. Si ACTUAL satisface OBJ, devolver PLAN 2. Hacer APLICABLES igual a la lista de acciones que sean instancias de un operador de OPERADORES, que sean aplicables a ACTUAL y cuya aplicacin no resulte en un estado de VISITADOS 3. Hacer ORD-APLICABLES igual a ORDENA-POR-HEURISTICA(APLICABLES) 4. Para cada ACCION en ORD-APLICABLES 4.1 Hacer E el resultado de aplicar ACCION a ACTUAL 4.2 Hacer RES igual a BEP-H-REC(PLANACCION,VISITADOS U {E},E,OBJ,OPERADORES) 4.3 Si RES no es FALLO, devolver RES y terminar 5. Devolver FALLO

En el algoritmo anterior, queda por especicar la funcin


ORDENA-POR-HEURISTICA En general, se dene a traves de una heurstica H sobre los

estados, que estima el nmero de pasos hasta el objetivo

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Bsqueda hacia adelante en profundidad (propiedades)


Es un algoritmo tipo Backtracking en el que se ordenan

por heurstica los sucesores del estado actual


Propiedades:
Correcto, completo y siempre termina. No se garantiza la

solucin ms corta
Complejidad en tiempo: exponencial La complejidad en espacio es lineal respecto de la mxima

profundidad del rbol de bsqueda (esto lo hace preferible a primero el mejor y a A , salvo que se busque la solucin ms corta y se disponga de una H admisible) En la prctica, su eciencia depende de la bondad de la

heurstica
Comentaremos ms sobre heursticas posteriormente

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Bsqueda hacia atrs


Si la heurstica no es buena, la bsqueda hacia adelante

tiene el problema de la excesiva ramicacin


Muchas acciones aplicables, pero la mayora de ellas

irrelevante para el objetivo Alternativa a la bsqueda hacia adelante: buscar hacia

atrs, dirigidos por el objetivo


Se empieza en el objetivo, se aplican las acciones a la

inversa y se trata de llegar al estado inicial


Nodos del rbol de bsqueda: objetivos

La clave: slo aplicar hacia atrs las acciones relevantes

para el objetivo

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Accin relevante para un objetivo

Sea G un objetivo sin variables (ms adelante trataremos

el caso con variables). Decimos que una accin A es relevante para G si:
Al menos, uno de los efectos (positivo o negativo) de la

accin est en G con el mismo "signo"


Ninguno de los efectos negativos de la accin aparece en

G como positivo
Ninguno de los efectos positivos de la accin aparece en G

como negativo Intuitivamente: una accin es relevante si podra ser la

ltima de un plan que llevara al objetivo

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Acciones relevantes: ejemplo


Objetivo: {DESPEJADO(A), DESPEJADO(B), DESPEJADO(D),
SOBRE(B,C)} Acciones relevantes: APILAR(B,C), DEJAR(A) y DEJAR(D)
B C A D
APILAR(x,y) [x=B,y=C]

B C

A
DEJAR(x) [x=A]

B C A D

D B C A

DEJAR(x) [x=D]

Ejemplo de accin no relevante para el mismo objetivo: APILAR(A,D) (aunque tiene a DESPEJADO(A) como efecto

positivo sin embargo tiene como efecto negativo -DESPEJADO(D))

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Clculo de predecesores
Si A es una accin relevante para un objetivo G (sin

variables), entonces el objetivo predecesor de G respecto a A es (G efectos(A)) precond(A)


Ejemplo:
G = {DESPEJADO(A), DESPEJADO(B), DESPEJADO(D), SOBRE(B,C)} Predecesor respecto de la accin relevante APILAR(B,C) G = (G - {-DESPEJADO(C), -AGARRADO(B), BRAZOLIBRE(), SOBRE(B,C), DESPEJADO(B)}) U {DESPEJADO(C), AGARRADO(B)} = {DESPEJADO(A), DESPEJADO(D), DESPEJADO(C), AGARRADO(B)}

Ntese que el formalismo lgico nos permite calcular

predecesores de manera sencilla

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Bsqueda hacia atrs con heurstica (sin variables)


FUNCION BUSQUEDA-HACIA-ATRS-H(ESTADO-INICIAL,OBJ,OPERADORES) Devolver BHA-H-REC({},{},ESTADO-INICIAL,OBJ,OPERADORES) FUNCION BHA-H-REC(PLAN,VISITADOS,ESTADO-INICIAL,G-ACTUAL,OPERADORES) 1. Si ESTADO-INICIAL satisface G-ACTUAL, devolver PLAN 2. Hacer RELEVANTES igual a la lista de acciones que sean instancias de un operador de OPERADORES, que sean relevantes para ESTADO y tal que el predecesor de G-ACTUAL respecto de la accin no sea un objetivo que contiene a alguno de VISITADOS 3. Hacer RELEVANTES-ORDENADOS igual a ORDENA-POR-HEURISTICA(RELEVANTES) 4. Para cada ACCION en RELEVANTES-ORDENADOS 4.1 Hacer G el objetivo predecesor de G-ACTUAL respecto a ACCION 4.2 Hacer RES igual a BHA-H-REC(ACCIONPLAN,VISITADOS U {G}, ESTADO-INICIAL,G,OPERADORES) 4.4 Si RES no es FALLO, devolver RES y terminar 5. Devolver FALLO

En el algoritmo anterior, queda por especicar la funcin

ORDENA-POR-HEURISTICA
Se va a denir a traves de una heurstica H sobre los

objetivos, que estima el nmero de pasos desde el estado inicial al objetivo

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Bsqueda hacia atrs con heurstica (propiedades)


Es un algoritmo de bsqueda en profundidad en un

espacio de estados (el de los objetivos)


Incorpora heurstica para ordenar objetivos

Propiedades
Correcto, completo y siempre termina. No se garantiza la

solucin ms corta
Complejidad terica: como en la bsqueda hacia adelante

En la prctica, y nuevamente debido a la elevada

ramicacin, su eciencia depende de la heurstica usada


Comentaremos ms sobre esto, ms adelante

Adems, en el caso de la bsqueda hacia atrs podemos

reducir la ramicacin, instanciando slo parcialmente las acciones


Para ello, usaremos unicacin (similar a PROLOG)

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Ejemplo de la conveniencia de no instanciar completamente


Supongamos el siguiente problema:
n + 2 bloques: A,A1,A2,..,An,B Estado inicial:
{DESPEJADO(A),SOBRE(A,A1),SOBRE(A1,A2),...,SOBRE(A(n-1),An), DESPEJADO(B), BRAZOLIBRE()}

Objetivo: -DESPEJADO(B), BRAZOLIBRE()}

Si aplicamos el procedimiento anterior, tenemos entre

otras las siguientes n + 2 acciones relevantes:


{APILAR(A,B), APILAR(A1,B), ...,APILAR(An,B),APILAR(B,B)}

Idea: podramos dejar el primer argumento de APILAR sin

especicar, para reducir la ramicacin en la bsqueda


Pero nos obligar a tratar con objetivos en los que

aparecen variables
Para ello, usaremos unicadores de mxima generalidad

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Unicacin de mxima generalidad


Unicador de dos trminos s y t de la lgica de primer

orden:
Sustitucin (de las variables de s y de t) tales que

(s) = (t) Unicador de mxima generalidad (umg)


Un unicador ms general que cualquier otro unicador Intuitivamente, por ms general entendemos que las

variables se concretan lo mnimo necesario para hacer iguales los dos trminos Ejemplo: unicacin de P(x1,A,x2,x3) y de Q(x4,x5,B,x5)
[x1/B, x2/B, x3/A, x4/B, x5/A] es unicador pero no

es el ms general
[x1/x4, x2/B, x3/A, x5/A] es un umg

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Ejemplo de bsqueda hacia atrs con unicacin (I)


Apliquemos esta idea al problema anterior Hacia atrs con unicacin, paso 1:
El efecto -DESPEJADO(y1) del operador APILAR(x1,y1) unica con el literal -DESPEJADO(B) del objetivo (y es

relevante para G)
Un umg es la sustitucin 1 =[y1/B] (es decir, x1 no se

instancia)
Por tanto se obtiene un esquema de accin relevante: APILAR(x1,B) Nuevo objetivo G1 :
(G - efectos(APILAR(x1,B))) U precond(APILAR(x1,B))= {DESPEJADO(B), AGARRADO(x1)}

El estado inicial no satisface G1 , as que seguimos

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Ejemplo de bsqueda hacia atrs con unicacin (II)


Hacia atrs con unicacin, paso 2:
El efecto AGARRADO(x2) del operador DESAPILAR(x2,y2) unica con el literal AGARRADO(x1) del objetivo (y es

relevante para G1 )
Un umg es la sustitucin 2 =[x2/x1] Por tanto, un esquema de accin relevante sera: DESAPILAR(x1,y2) Nuevo objetivo G2 :
(G1 - efectos(DESAPILAR(x1,y2)) U precond(DESAPILAR(x1,y2))= {DESPEJADO(B), SOBRE(x1,y2), DESPEJADO(x1),BRAZOLIBRE()}

El estado inicial satisface G2 (con la sustitucin [x1/A,y2/A1])

Componiendo todas las sustituciones obtenemos el plan:

DESAPILAR(A,A1), APILAR(A,B)
Nota: cada vez que se considera una accin, es necesario

renombrarla con variables nuevas (estandarizacin)

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Bsqueda hacia atrs con heurstica (con unicacin)


FUNCION BUSQUEDA-HACIA-ATRS-H-U(ESTADO-INICIAL,OBJ,OPERADORES) Devolver BHA-H-U-REC({},{},ESTADO-INICIAL,OBJ,OPERADORES)

FUNCION BHA-H-U-REC(PLAN,VISITADOS,ESTADO-INICIAL,G-ACTUAL,OPERADORES) 1. Si ESTADO-INICIAL satisface G-ACTUAL, devolver PLAN 2. Hacer RELEVANTES igual a la lista de pares (O,SIGMA) tales que: * O es un operador (estandarizado) de OPERADORES, relevante para ESTADO * SIGMA es umg entre los efectos de O que hacen relevante al operador y los correspondientes literales de G-ACTUAL * El predecesor de ACTUAL respecto del operador no es un objetivo con un subconjunto de literales que unifica con alguno de los objetivos VISITADOS 3. Hacer RELEVANTES-ORDENADOS igual a ORDENA-POR-HEURISTICA(RELEVANTES) 4. Para cada (O,SIGMA) en RELEVANTES-ORDENADOS 4.1 Hacer G el objetivo predecesor de G-ACTUAL respecto a (O,SIGMA); es decir, G=(SIGMA(G-ACTUAL) - Efectos(SIGMA(O))) U Precondiciones(SIGMA(O)) 4.2 Hacer RES igual a BHA-H-U-REC((O,SIGMA)SIGMA(PLAN),VISITADOS U {G}, ESTADO-INICIAL,G,OPERADORES) 4.3 Si RES no es FALLO, devolver RES y terminar 5. Devolver FALLO

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Heursticas para planicacin basada en espacios de estados


Una componente fundamental para la eciencia prctica

de los anteriores algoritmos es la heurstica usada para ordenar los estados o los objetivos
Esta heurstica debe estimar distancia entre estados y

objetivos (nmero de acciones necesarias)


En bsqueda hacia adelante: para cada estado, distancia

hasta el objetivo
En bsqueda hacia atrs: para cada objetivo, distancia

hasta el estado inicial Si esta estimacin est por debajo del mnimo nmero de

acciones real, diremos que la heurstica es admisible


Buscamos heursticas independientes del dominio
Basadas en la representacin lgica de estados, objetivos

y operadores

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Heursticas basadas en relajar del problema


Heursticas obtenidas relajando algunas restricciones del

problema y calculando el nmero de acciones necesarias en ese problema relajado


Algunas ideas para relajar el problema:
Ignorar las precondiciones y/o efectos negativos de los

operadores
Suponer que cada literal de un objetivo se alcanza de

manera independiente: como si el nmero de acciones necesarias para alcanzar un objetivo fuera la suma del nmero de pasos necesario para alcanzar cada literal del objetivo Suponer que el nmero de acciones necesarias para alcanzar un objetivo es el nmero de pasos mximo necesario para alcanzar uno de sus literales Ignorar todas las precondiciones de los operadores Ignorar determinados predicados

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

La heurstica 0
Vamos a denir a continuacin una heurstica 0 basada

en las dos primeras ideas anteriores


Dado un estado e, un tomo p y un objetivo g que slo

tiene literales positivos sin variables, denimos recursivamente 0 (e, p) y 0 (e, g) de la siguiente manera:
Si p aparece en e, 0 (e, p) = 0 Si p no aparece en e ni en los efectos positivos de ninguna

accin, 0 (e, p) = +
En otro caso, 0 (e, p) =

minA {1 + 0 (e, g) =

qprecond + (A)

0 (e, q)|p efectos+ (A)} pg 0 (e, p)

Notacin: precond + (A) y efectos+ (A) denotan

respectivamente los literales positivos de la precondicin y de los efectos de una accin A

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

La heurstica 0 (propiedades)
Intuitivamente:
0 (e, p) cuenta el menor nmero de pasos necesarios

para que se verique p a partir de e, suponiendo que las acciones no tienen precondiciones negativas ni efectos negativos 0 (e, g) es la suma de las anteriores estimaciones para cada tomo p g Ntese que en general, la estimacin que realiza 0 no es

admisible
Aunque en cualquier caso puede funcionar bien en la

prctica
Y adems no la usaremos con A , sino con bsqueda en

profundidad Dado un e, los valores 0 (e, p) para cada tomo p se

pueden calcular con un algoritmo similar al algoritmo de caminos mnimos de Dijkstra

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Usando la heurstica 0 en las bsquedas (I)


En la bsqueda hacia adelante:
A cada accin A aplicable al estado actual se le asigna el

valor heurstico 0 (e, g+), donde g+ es el conjunto de literales positivos del objetivo y e el estado que resulta al aplicar la accin A
e0

e
0

(e,g+)

g+

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Usando la heurstica 0 en las bsquedas (II)


En la bsqueda hacia atrs:
A cada accin A relevante respecto del objetivo actual se le

asigna el valor 0 (e0 , g+), donde e0 es el estado inicial, g es el predecesor correspondiente a la accin A y g+ es el conjunto de literales positivos de g
g0

g
0

(e 0,g+)

e0

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Usando la heurstica 0 en las bsquedas (III)

En el caso de que haya variables en los objetivos:


Si p es un tomo con variables, 0 (e, p) se dene como el

mnimo de entre todos los 0 (e, (p)), siendo (p) instancia sin variables de p Si g es un objetivo con variables, 0 (e, g) es la suma de 0 (e, p) para cada literal positivo p de g

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Planes parcialmente ordenados


Recordar: en el tema anterior se han visto algoritmos para

resolver problemas de planicacin que hacen bsqueda en el espacio de los estados


Vemos ahora una aproximacin a la bsqueda de planes

totalmente diferente a las bsqueda en el espacio de los estados:


En lugar de buscar en el espacio de estados o de objetivos,

se busca en un espacio de planes, no completamente especicados (planes parcialmente ordenados) Plan parcialmente ordenado: un plan en el que slo se

especican algunas de las precedencias entre sus acciones

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Ejemplo: aprobar IA1


Lenguaje:
Objetos: IA1, ETSII, CASA Predicado: EN(-), ESTUDIADO(-), APROBADO(-)

Estado inicial:
EN(CASA)

Objetivo:
EN(CASA), APROBADO(IA1)

Acciones:
IR(x,y) ESTUDIAR(x) EXAMINARSE-CON-EXITO(x) P: EN(x) P: {} P: EN(ETSII), ESTUDIADO(x) E: -EN(x),EN(Y) E: ESTUDIADO(x) E: APROBADO(x) Descartaremos acciones del tipo IR(x,x)

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Ejemplo de plan parcial

ECE(IA1)

APROBADO(IA1)

INICIO

FIN

IR(ETSII,CASA)

EN(CASA)

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Planes parcialmente ordenados: componentes (I)


Nodos: Acciones, que constituyen los pasos que el plan

lleva a cabo, de entre los operadores del problema, cada una con sus precondiciones y efectos
Dos acciones especiales: INICIO (sin precondiciones y

cuyo efecto es el estado inicial) y FIN (sin efectos y cuyas precondiciones son el objetivo nal) Arcos: restricciones de orden A B entre acciones del

plan

(contina...)

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Planes parcialmente ordenados: componentes (II)

Un caso particular de arcos: enlaces causales, A B,

especicando la consecucin, por parte de una accin, de una de las precondiciones de otra accin del plan (lleva implcita una restriccin de orden)
AGARRADO(A) AGARRAR(A) APILAR(A,B)

Un conjunto de precondiciones abiertas: aquellas que an

no tienen enlaces causales que las consigan

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Planes parciales inicial y nal

Plan parcial inicial: plan cuyas nicas acciones son INICIO

y FIN, con la restriccin INICIO FIN, sin enlaces causales y con todas las precondiciones de FIN abiertas
Planes parciales nales: planes parciales sin conictos

entre los enlaces causales, sin ciclos entre las restricciones de orden y sin precondiciones abiertas
Una accin C entra en conicto con (o amenaza) un enlace

causal A B, si C tiene a p en su lista de efectos y segn las restricciones de orden, C podra ir despus de A y antes que B

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Ejemplos de planes parciales


Ejemplo de plan parcial inicial:

INICIO
Ejemplo de plan parcial nal:
ESTUDIADO(IA1)

FIN

ESTUDIAR(IA1) EN(ETSII) EN(CASA) INICIO EN(ETSII) IR(CASA,ETSII)

ECE(IA1)

APROBADO(IA1)

FIN

IR(ETSII,CASA)

EN(CASA)

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Secuenciaciones de planes parciales solucin


Secuenciacin de un plan parcial: colocar las acciones

una detrs de otra, sin contradecir ninguna restriccin de orden que se deduzca del plan parcial
Punto clave: cualquier secuenciacin de un plan parcial

solucin supone una solucin al problema original


En el ejemplo, dos posibilidades (ambas soluciones al

problema original):
ESTUDIAR(IA1) IR(CASA,ETSII) ECE(IA1) IR(ETSII,CASA)

IR(CASA,ETSII)

ESTUDIAR(IA1)

ECE(IA1)

IR(ETSII,CASA)

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Planicacin como bsqueda en el espacio de planes


Cmo disear un algoritmo para encontrar planes

parciales nales?
Idea POP: comenzar en el plan inicial y aplicar

transformaciones u operadores a los planes parciales, renndolos Bsicamente, estas transformaciones consisten en resolver precondiciones abiertas o resolver amenazas En cada punto habr varias alternativas de renamiento, y

no todas conducen hacia un plan parcial nal Problema: encontrar la secuencia de renamiento que partiendo del plan parcial inicial, llegue a un plan parcial solucin (es decir, sin ciclos, sin amenazas y sin precondiciones abiertas)
Es una bsqueda en espacios de estados!

Pero ahora los estados son los planes parciales y los

operdores son los renamientos

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Algoritmo POP para el ejemplo de aprobar IA1


Convenios en la representacin grca del ejemplo, por

claridad en la misma:
Algunas restricciones de orden no aparecern, en

particular la asociadas a enlaces causales


Las precondiciones y efectos no aparecern. En particular,

no aparecern las precondiciones abiertas


Cuando una accin no tenga precondiciones abiertas, sta

aparecer sombreada Paso 1: plan inicial


INICIO FIN

Precondiciones abiertas: APROBADO(IA1), EN(CASA); vamos a resolver primero APROBADO(IA1) Una nica posibilidad: accin nueva

EXAMINARSE-CON-EXITO(IA1)

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Algoritmo POP para el ejemplo de aprobar IA1

Paso 2:
INICIO
APROBADO(IA1)

ECE(IA1)

FIN

Resolvemos ahora la precondicin EN(CASA) de FIN Dos posibilidades: INICIO accin nueva IR(ETSII,CASA) Consideraremos la primera de ella en primer lugar,

intentando la segunda en caso de fallo


Cuando se usa (para cerrar una precondicin) una accin

que ya est en el plan, se denomina establecimiento simple

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Algoritmo POP para el ejemplo de aprobar IA1


Paso 3:

ECE(IA1)
APROBADO(IA1)

INICIO

EN(CASA)

FIN

Resolvemos ahora la precondicin EN(ETSII) de

EXAMINARSE-CON-EXITO(IA1)
Slo una posibilidad: accin nueva IR(CASA,ETSII)

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Algoritmo POP para el ejemplo de aprobar IA1


Paso 4:
EN(ETSII) IR(CASA,ETSII)

ECE(IA1)
APROBADO(IA1)

EN(CASA)

INICIO

FIN

Aparece una amenaza: de IR(CASA,ETSII) sobre el enlace

causal entre INICIO y FIN


Intentamos resolver la amenaza obligando a que IR(CASA,ETSII) vaya despus de FIN (promocin), o bien obligando a que IR(CASA,ETSII) vaya antes que INICIO (degradacin)

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Algoritmo POP para el ejemplo de aprobar IA1


Pero en ambos casos, se creara un ciclo:
Promocin:
EN(ETSII) IR(CASA,ETSII)

ECE(IA1)
APROBADO(IA1)

EN(CASA)

INICIO

FIN

Degradacin:
EN(ETSII) IR(CASA,ETSII)

ECE(IA1)
APROBADO(IA1)

EN(CASA)

INICIO

FIN

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Algoritmo POP para el ejemplo de aprobar IA1


Por tanto, hay FALLO y hemos de retroceder al anterior

punto de alternativa, que estaba en el paso 2


Y elegir la otra alternativa: accin nueva IR(ETSII,CASA)

para resolver la precondicin EN(CASA) de FIN Paso 5:


ECE(IA1) APROBADO(IA1)

INICIO

FIN

IR(ETSII,CASA)

EN(CASA)

Elegimos ahora la precondicin ESTUDIADO(IA1) de

EXAMINARSE-CON-EXITO(IA1)
La nica posibilidad para resolverla es accin nueva

ESTUDIAR(IA1)

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Algoritmo POP para el ejemplo de aprobar IA1


Paso 6:
ESTUDIADO(IA1) ESTUDIAR(IA1) ECE(IA1)

APROBADO(IA1)

INICIO

FIN

IR(ETSII,CASA)

EN(CASA)

Elegimos ahora la precondicin EN(ETSII) de

EXAMINARSE-CON-EXITO(IA1)
La nica posibilidad para resolverla es accin nueva

IR(CASA,ETSII)

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Algoritmo POP para el ejemplo de aprobar IA1


Paso 7:
ESTUDIADO(IA1)

ESTUDIAR(IA1)

ECE(IA1)

APROBADO(IA1) IR(CASA,ETSII) INICIO EN(ETSII) FIN

IR(ETSII,CASA)

EN(CASA)

Ahora existen amenazas : por ejemplo, de IR(ETSII,CASA)

sobre el enlace causal entre IR(CASA,ETSII) y EXAMINARSE-CON-EXITO(IA1) Intentamos resolver esa amenaza por degradacin; si no diera resultado, intentamos promocin

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Algoritmo POP para el ejemplo de aprobar IA1


Paso 8 (degradacin):
ESTUDIADO(IA1)

ESTUDIAR(IA1)

ECE(IA1)

APROBADO(IA1) IR(CASA,ETSII) INICIO EN(ETSII) FIN

IR(ETSII,CASA)

EN(CASA)

Otra amenaza: de IR(CASA,ETSII) sobre el enlace causal

entre IR(ETSII,CASA) y FIN


Intentamos resolver la amenaza por promocin o por

degradacin

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Algoritmo POP para el ejemplo de aprobar IA1


Pero en ambos casos, se creara un ciclo:
Promocin:
ESTUDIADO(IA1)

ESTUDIAR(IA1)

ECE(IA1)

APROBADO(IA1) IR(CASA,ETSII) INICIO EN(ETSII) FIN

IR(ETSII,CASA)

EN(CASA)

Degradacin:
ESTUDIADO(IA1)

ESTUDIAR(IA1)

ECE(IA1)

APROBADO(IA1) IR(CASA,ETSII) INICIO EN(ETSII) FIN

IR(ETSII,CASA)

EN(CASA)

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Algoritmo POP para el ejemplo de aprobar IA1


Por tanto, hay FALLO
Hemos de retroceder al anterior punto de ramicacin

(paso 7), y elegir la otra alternativa: resolver la amenaza de IR(ETSII,CASA) sobre el enlace causal entre IR(CASA,ETSII) y EXAMINARSE-CON-EXITO(IA1), mediante promocin Paso 9:
ESTUDIADO(IA1)

ESTUDIAR(IA1) EN(ETSII) IR(CASA,ETSII) INICIO

ECE(IA1)

APROBADO(IA1)

FIN

IR(ETSII,CASA)

EN(CASA)

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Algoritmo POP para el ejemplo de aprobar IA1


Elegimos ahora la precondicin EN(ETSII) de

IR(ETSII,CASA)
Dos alternativas: establecimiento simple con

IR(CASA,ETSII) o accin nueva con IR(CASA,ETSII).


Elegimos la primera, reconsiderndolo si fuera necesario

Paso 10:
ESTUDIADO(IA1)

ESTUDIAR(IA1) EN(ETSII) IR(CASA,ETSII) INICIO EN(ETSII)

ECE(IA1)

APROBADO(IA1)

FIN

IR(ETSII,CASA)

EN(CASA)

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Algoritmo POP para el ejemplo de aprobar IA1


Elegimos la precondicin EN(CASA) de IR(CASA,ETSII)
Tres alternativas: establecimiento simple con INICIO,

establecimiento simple con IR(ETSII,CASA) o accin nueva con IR(ETSII,CASA). Elegimos la primera, reconsiderndolo si fuera necesario Paso 11 (Plan parcial nal):
ESTUDIADO(IA1)

ESTUDIAR(IA1) EN(ETSII) EN(CASA) INICIO EN(ETSII) IR(CASA,ETSII)

ECE(IA1)

APROBADO(IA1)

FIN

IR(ETSII,CASA)

EN(CASA)

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Algoritmo POP para el ejemplo de aprobar IA1

Finalmente, secuenciamos (dos posibilidades):


IR(CASA,ETSII) IR(ETSII,CASA)

ESTUDIAR(IA1)

ECE(IA1)

IR(CASA,ETSII)

ESTUDIAR(IA1)

ECE(IA1)

IR(ETSII,CASA)

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Planicacin de orden parcial: bsqueda

Como se ha visto en el ejemplo anterior, es posible

plantear un algoritmo de planicacin como una bsqueda


Es decir, como bsqueda de una secuencia de operadores

de renamiento de planes que a partir del plan inicial obtiene un plan parcial nal Un algoritmo POP es simplemente un algoritmo que aplica

un algoritmo de bsqueda (en profundidad, por ejemplo) en el espacio de los planes parciales

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Bsqueda POP para el ejemplo de aprobar IA1


1 2 3
INICIO INICIO ECE(IA1)
APROBADO(IA1) EN(CASA)

INICIO

FIN

APROBADO(IA1)

ECE(IA1)

FIN

5
ECE(IA1) APROBADO(IA1) INICIO FIN IR(ETSII,CASA) EN(CASA)

FIN

4
INICIO

EN(ETSII) IR(CASA,ETSII)

ESTUDIADO(IA1) ECE(IA1) ESTUDIAR(IA1)


APROBADO(IA1)

ECE(IA1)

6
APROBADO(IA1) FIN

EN(CASA)

FIN

INICIO

IR(ETSII,CASA)

EN(CASA)

FALLO
ESTUDIADO(IA1)

7
ECE(IA1) APROBADO(IA1) FIN EN(CASA)

ESTUDIAR(IA1)

IR(CASA,ETSII) INICIO

EN(ETSII)

IR(ETSII,CASA)

8
ESTUDIAR(IA1) INICIO

ESTUDIADO(IA1)

ESTUDIADO(IA1)

ECE(IA1)

ESTUDIAR(IA1) EN(ETSII) APROBADO(IA1)

ECE(IA1)

9
APROBADO(IA1) FIN

IR(CASA,ETSII)

EN(ETSII) FIN INICIO

IR(CASA,ETSII)

IR(ETSII,CASA)

EN(CASA)

IR(ETSII,CASA)

EN(CASA)

FALLO
ESTUDIAR(IA1) INICIO

ESTUDIADO(IA1)

ECE(IA1) EN(ETSII)

10
APROBADO(IA1) FIN

IR(CASA,ETSII) EN(ETSII) EN(CASA)

IR(ETSII,CASA)

ESTUDIADO(IA1)

ESTUDIAR(IA1) EN(ETSII) EN(CASA) INICIO EN(ETSII) IR(CASA,ETSII)

ECE(IA1)

11
APROBADO(IA1) FIN

IR(ETSII,CASA)

EN(CASA)

SOLUCION

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Operadores en la bsqueda (renamiento de planes parciales)


Resolucin de precondiciones abiertas: dada una

precondicin abierta p de una accin B del plan, por cada accin A que tiene a p como efecto, se puede obtener un plan sucesor (renar) aplicando alguno de los siguientes pasos (siempre que el plan resultante no tenga ciclos):
Establecimiento simple: si la accin A ya aparece en el

plan, aadir la restriccin A B y el enlace causal A B Accin nueva: si la accin A no aparece ya en el plan, aadir la accin al plan, las restricciones A B, INICIO p A y A FIN, y el enlace causal A B (es posible incluso introducir como nueva una accin igual a una que ya estuviera)

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Operadores (renamiento de planes parciales)

Resolucin de conictos: dado un conicto entre el enlace

causal A B y la accin C, se puede obtener un plan sucesor aplicando alguno de los siguientes pasos (siempre que el plan resultante no tenga ciclos):
Aadir la restriccin B C (promocin) O aadir la restriccin C A (degradacin)

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

POP como bsqueda


Arbol de bsqueda:
Nodos: planes parciales Ramicacin por la eleccin de acciones que resuelven

precondiciones abiertas
Ramicacin por las dos maneras de resolver las

amenazas (promocin y degradacin) No es necesario considerar un sucesor por cada

precondicin abierta del plan, ni por cada amenaza existente, basta considerarlas en pasos posteriores, siguiendo un orden dado
Aunque el orden en que se haga esto s inuye en la

eciencia de la bsqueda La bsqueda en profundidad podra entrar en una rama

innita
Por eso hemos de hacer una bsqueda acotada (por un

nmero mximo de acciones en el plan)

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Algoritmo POP (versin recursiva)


FUNCION POP(ESTADO-INICIAL,OBJ,OPERADORES,COTA) 1. Hacer POP-REC(PLAN-INICIAL(ESTADO-INICIAL,OBJ),OPERADORES,COTA) FUNCION POP-REC(PLAN,OPERADORES,COTA) 1. Si PLAN es final, devolver SECUENCIACION(PLAN) y terminar. 2. Si existe en PLAN una amenaza de la accin C sobre A --p-->B, entonces 2.1 Sean PLANPR obtenido de PLAN mediante promocin en la amenaza anterior 2.2 Si PLANPR tiene ciclos, sea RESULTADO igual a FALLO; en caso contrario, sea RESULTADO igual a POP-REC(PLANPR,COTA). 2.3 Si RESULTADO no es FALLO, devolver RESULTADO y terminar; en otro caso: 2.3.1 Sea PLANDEG obtenido de PLAN mediante degradacin en la amenaza anterior 2.3.2 Si PLANDEG tiene ciclos, sea RESULTADO igual a FALLO; en caso contrario, sea RESULTADO igual a POP-REC(PLANDEG,COTA). 2.3.3 Devolver RESULTADO y terminar.

(contina...)

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Algoritmo POP (versin recursiva, cont.)

3. Sea P una precondicin abierta en PLAN 4. Para cada accin A de OPERADORES (nueva o ya existente) que tiene a P como efecto, hacer: 4.1 Hacer PLANEXT el resultado de cerrar la precondicin P en PLAN mediante un enlace causal con A (si fueran accin nueva, aadir tambin la accin al PLAN) 4.2 Si PLANEXT no tiene ciclos y un nmero de acciones menor o igual que COTA, entonces: 4.2.1 Sea RESULTADO igual POP-REC(PLANEXT,OPERADORES,COTA) 4.2.2 Si RESULTADO no es FALLO, devolver RESULTADO y terminar 5. Devolver FALLO

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

POP: algunas consideraciones


Hemos presentado una versin simplicada del algoritmo.

Falta:
Uso de unicacin Algunas variables podran quedar sin instanciar (principio

de mnimo compromiso)
Restricciones de desigualdad

El algoritmo es correcto y completo (siempre que se tome

una cota sucientemente grande)


El pseudocdigo presentado resuelve primero las

amenazas que las precondiciones abiertas, pero no necesariamente tiene que ser as
Ni tampoco necesariamente hay que intentar primero

promocin y luego degradacin

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

POP: uso de heursticas

Es difcil estimar la cercana de un plan parcial a una

solucin
Hay determinadas elecciones en el algoritmo que, bien

tomadas, pueden inuir positivamente en la eciencia:


En cada paso, qu amenaza o qu precondicin abierta

se rena?
Si se elige cerrar una precondicin en qu orden se

intentan las acciones que la cierran?


Si se elige arreglar una amenaza en qu orden se intenta

promocin y degradacin?

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

POP: algunas heursticas


Heurstica para seleccionar el siguiente paso de

renamiento
Seleccionar la amenza o precondicin abierta que puede

ser resuelta con el menor nmero de alternativas


Recurdese que una amenaza tiene dos posibles

alternativas de renamiento
Y una precondicin abierta, tantas como acciones (nuevas

o ya existentes) la tengan como efecto Heurstica para el orden de las acciones que cierran una

precondicin abierta
Ordenarla por el tamao de sus listas de precondicin (no

muy buena)
Usar el grafo de planicacin

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

La anomala de Sussman
Problema de planicacin que mostraba las carencias de

los primeros algoritmos de planicacin (aos 70):

A C A
Estado inicial

B B C
Estado final

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

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

La anomala de Sussman
La anomala de Sussman fue un ejemplo pionero que

mostraba que planicar no era una tarea trivial


Por ejemplo, un planicador que primero buscara un

subplan solucin para el primer literal del objetivo SOBRE(A,B) y a continuacin le concatenara una solucin para SOBRE(B,C) sera fallido
Ya que el segundo subplan deshara lo conseguido por el

primero Fue un ejemplo que sealaba la no conveniencia de los

planicadores no entrelazados (como el planicador STRIPS)

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Anomala de Sussman en POP

Veremos cmo la planicacin de orden parcial resuelve la

anomala de Sussman
Nota importante: por simplicar la presentacin, en cada

momento escogeremos los operadores de renamiento adecuados Es decir, nuestra bsqueda no tendr fallos, aunque en la prctica esto es irreal Tambin por simplicar, a veces se aplicarn varios pasos de una vez

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Anomala de Sussman en POP

Plan inicial:

INICIO

FIN

Resolver la precondicin sobre(A,B) de FIN mediante la

accin nueva APILAR(A,B) (es la nica opcin):


sobre(A,B)

INICIO

APILAR(A,B)

FIN

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Anomala de Sussman en POP

Resolver la precondicin sobre(B,C) de FIN mediante la

accin nueva APILAR(B,C) (es la nica opcin):


sobre(A,B) APILAR(A,B)

FIN

INICIO
sobre(B,C) APILAR(B,C)

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Anomala de Sussman en POP


Resolver la precondicin agarrado(B) de APILAR(B,C)

mediante la accin nueva AGARRAR(B)


Tambin se podra usar DESAPILAR, opcin que habra

que considerar si la eleccin realizada fallara (bsqueda)


sobre(A,B) APILAR(A,B)

FIN

INICIO
sobre(B,C)

AGARRAR(B)

agarrado(B)

APILAR(B,C)

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Anomala de Sussman en POP


Resolver la precondicin agarrado(A) de APILAR(A,B)

mediante la accin nueva AGARRAR(A)


Como en el caso anterior, tambin se podra usar

DESAPILAR (explorar mediante bsqueda)


AGARRAR(A) agarrado(A) APILAR(A,B) sobre(A,B)

FIN

INICIO
sobre(B,C)

AGARRAR(B)

agarrado(B)

APILAR(B,C)

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Anomala de Sussman en POP


Resolver la precondicin despejado(A) de AGARRAR(A)

mediante la accin nueva desapilar(C,A):


agarrado(A) APILAR(A,B) sobre(A,B)

despejado(A)

AGARRAR(A)

FIN

DESAPILAR(C,A) sobre(B,C)

INICIO
AGARRAR(B) agarrado(B) APILAR(B,C)

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Anomala de Sussman en POP

Resolver la precondicin brazolibre de AGARRAR(B)

mediante la accin nueva bajar(C) (existen ms opciones):


despejado(A) AGARRAR(A) agarrado(A) APILAR(A,B) sobre(A,B)

FIN

DESAPILAR(C,A)

INICIO

sobre(B,C)

brazolibre BAJAR(C) AGARRAR(B)

agarrado(B) APILAR(B,C)

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Anomala de Sussman en POP


Usar la accin INICIO para, mediante establecimiento

simple, resolver todas las precondiciones de DESAPILAR(C,A) (existen otras opciones):


El enlace causal entre INICIO y DESAPILAR(C,A) que

asegura despejado(C), se ve amenazado por APILAR(B,C): resolver mediante promocin (nica opcin), colocando la restriccin de que APILAR(B,C) debe ir tras DESAPILAR(C,A)
despejado(A) AGARRAR(A) agarrado(A) APILAR(A,B) sobre(A,B)

1111111111 0000000000 1111111111 0000000000 1111111111 0000000000 1111111111 0000000000 DESAPILAR(C,A) 1111111111 0000000000 1111111111 0000000000 1111111111 0000000000 1111111111 0000000000 despejado(C) sobre(C,A) brazolibre 11111111 00000000 11111111 00000000 11111111 00000000 INICIO 11111111 00000000 11111111 00000000 11111111 00000000 11111111 00000000
brazolibre BAJAR(C) AGARRAR(B) agarrado(B) APILAR(B,C)

1111111 0000000 1111111 0000000 1111111 0000000 FIN 1111111 0000000 1111111 0000000 1111111 0000000 1111111 0000000

sobre(B,C)

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Anomala de Sussman en POP


Usar la accin INICIO para, mediante establecimiento

simple, resolver las restantes precondiciones de AGARRAR(B); igualmente mediante establecimiento simple, usar DESAPILAR(C,A) para resolver la precondicin agarrado(C) de BAJAR(C)
El enlace causal entre BAJAR(C) y AGARRAR(B) que

asegura brazolibre, se ve amenazado por AGARRAR(A): resolver mediante promocin, colocando la restriccin de que AGARRAR(A) debe ir tras AGARRAR(B) De esta manera, tambin se resuelve la amenaza de APILAR(A,B) al enlace causal entre INICIO y AGARRAR(B), ya que la anterior restriccin implica que APILAR(A,B) ocurre despus de AGARRAR(B)

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Anomala de Sussman en POP

despejado(A)

AGARRAR(A)

agarrado(A) APILAR(A,B)

sobre(A,B)

FIN

DESAPILAR(C,A) despejado(C) sobre(C,A) brazolibre

agarrado(C) sobre(B,C) sobrelamesa(B) despejado(B) brazolibre

INICIO

agarrado(B) AGARRAR(B) APILAR(B,C)

BAJAR(C)

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Anomala de Sussman en POP


Las restantes condiciones abiertas se pueden resolver

mediante establecimiento simple, como indica la gura


sobrelamesa(A) despejado(A) AGARRAR(A) agarrado(A) APILAR(A,B) sobre(A,B)

FIN

DESAPILAR(C,A) brazolibre despejado(C) sobre(C,A) brazolibre agarrado(C)

despejado(B)

sobre(B,C) sobrelamesa(B) despejado(B) brazolibre

INICIO

agarrado(B) AGARRAR(B) APILAR(B,C)

BAJAR(C)

despejado(C)

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Anomala de Sussman en POP

El plan parcial resultante es una solucin: no tiene

conictos, no tiene ciclos y no hay precondiciones abiertas


Secuenciacin del plan:

C A

C B A B A
BAJAR(C)

B C
AGARRAR(B)

A C
APILAR(B,C)

B A C

B C
APILAR(A,B)

A B C

DESAPILAR(C,A)

AGARRAR(A)

Ntese que se intercalan los pasos necesarios para

solucionar los dos objetivos originales

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Grafo de planicacin (introduccin)

Vemos ahora una tcnica distinta de las anteriores,

basada en lo que llamamos el grafo de planicacin de un problema


A medio camino entre la bsqueda en espacio de estados

y la bsqueda en el espacio de planes El grafo de planicacin es un grafo por niveles


En cierto modo representa un espacio de estados obtenido

relajando alguna restricciones del problema original


Unin de los estados de un rbol de bsqueda que estn

en el mismo nivel

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Grafo de planicacin (introduccin)

Es un grafo dividido en niveles. En cada nivel hay dos

capas: una capa para acciones y otra para literales


En cada nivel adems se marcarn una serie de

emparejamientos entre acciones y emparejamientos entre literales indicando exclusin mutua


Lo que llamamos enlaces mutex: no pueden ocurrir a la

vez

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Grafo de planicacin (representacin grca)


estado inicial enlaces mutex literales acciones precondiciones persistencias efectos

L(0)

L(i1)

A(i)

L(i)

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Grafo de planicacin
En el nivel 0 del grafo, se encuentran los literales que son

ciertos en el estado inicial En el nivel i, en la capa de acciones, las acciones que podran realizarse gracias a que sus precondiciones estn en el nivel i 1 (sin ser excluyentes entre s) En el nivel i, en la capa de literales , los literales que podran ser ciertos en ese momento, ya que son efectos de las acciones de ese nivel Adems, todo literal que aparezca en el nivel i 1, aparece tambin en el nivel i, para tener en cuenta que un literal podra persistir, si no se ejecuta ninguna accin que lo cambie
Esto encaja mejor dentro del marco general si admitimos

acciones cticias de persistencia: la accin de persistencia de un literal es una accin que lo tiene como nica precondicin y como nico efecto

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Ejemplo: problema de la cena (D. Weld)


Supongamos que una persona quiere preparar una cena

de aniversario a su esposa, que est dormida


Predicados: MANOSLIMPIAS, CENA, REGALO, SILENCIO,
BASURA

Estado inicial:
BASURA, MANOSLIMPIAS, SILENCIO

Objetivo:
CENA, REGALO, -BASURA

Acciones:
COCINAR() ENVOLVER() SACARBASURA() TRITURADORA() P: MANOSLIMPIAS P: SILENCIO P: {} P: {} E: CENA E: REGALO E: -BASURA,-MANOSLIMPIAS E: -BASURA,-SILENCIO

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Grafo para el problema de la cena: primer nivel


basura sacarbasura triturar manoslimpias cocinar silencio envolver basura manoslimpias manoslimpias silencio silencio cena regalo cena regalo L(0) A(1) cena regalo L(1) basura

Faltan los enlaces mutex: qu acciones no pueden

hacerse a la vez?

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Exclusiones mutuas entre acciones y entre literales


Casos de exclusin mutua entre dos acciones
Interferencia: Un efecto de una niega una precondicin de

la otra
Efectos inconsistentes: un efecto de una es la negacin de

un efecto de otra
Necesidades que compiten: tienen precondiciones que se

exluyen mutuamente Casos de exclusin mutua entre dos literales


Soporte inconsistente: uno es la negacin del otro Efectos excluyentes: cualquier par de acciones que los

producen son mutuamente excluyentes Ntese la denicin mutuamente recursiva, que nos sirve

para propagar los enlaces mutex desde la capa de literales a la de acciones del siguiente nivel y de ah a la de literales de ese nivel, etc.

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Grafo problema de la cena: enlaces mutex del primer nivel


En el nivel 1 de acciones:
COCINAR es mutex con SACARBASURA, por interferencia TRITURAR es mutex con ENVOLVER, por interferencia Los dems enlaces mutex son por efectos inconsistentes

entre una accin ordinaria y otra de persistencia En el nivel 1 de literales:


-SILENCIO es mutex con REGALO, debido al mutex entre TRITURAR y ENVOLVER -MANOSLIMPIAS es mutex con CENA, debido al mutex entre COCINAR y SACARBASURA El resto de enlaces mutex son entre literales opuestos Nota: por ejemplo, -BASURA no es mutex con CENA, ya que

aunque hay una pareja de acciones mutex que las produce (SACARBASURA y COCINAR), hay otra pareja de acciones que no son mutex que tambin las produce (TRITURAR y COCINAR)

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Grafo problema de la cena: primer nivel y enlaces mutex


basura sacarbasura triturar manoslimpias cocinar silencio envolver basura manoslimpias manoslimpias silencio silencio cena regalo cena regalo L(0) A(1) cena regalo L(1) basura

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

El algoritmo GRAPHPLAN: descripcin informal


El grafo del problema de planicacin proporciona una

herramienta fundamental para disear un nuevo algoritmo de planicacin. Idea:


Desarrollar el grafo del problema incrementalmente (en

cada iteracin, expandir al nivel siguiente)


Para cada nivel, se comprueba si todos los literales del

objetivo aparecen en el ltimo nivel (sin enlaces mutex entre ellos) Si no aparecen, pasar a la siguiente iteracin (siguiente nivel) Si aparecen, intentar extraer una solucin a partir del grafo; si se tiene xito, se devuelve el plan extraido y se termina Si no se tiene xito en la extraccin, pasar al siguiente nivel El algoritmo termina cuando se extrae un plan con xito o bien cuando se obtiene un nivel del grafo en el que no aparece nada nuevo respecto del anterior

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

El algoritmo GRAPHPLAN: pseudocdigo


FUNCION GRAPHPLAN(ESTADO-INICIAL,OBJETIVO,OPERADORES) 1. Crear L(0), la capa 0 de literales del grafo, formada con el ESTADO-INICIAL 2. Hacer i=0 3. REPETIR 3.1 Si en L(i) estn los literales de OBJETIVO sin enlaces mutex entre ellos: 3.1.1 Sea RES el resultado de extraer un plan del grafo de planificacin. 3.1.2 Si RES no es FALLO, devolver RES y terminar 3.2 Hacer i=i+1 3.3 Crear A(i), la capa i-sima de acciones del grafo, con las acciones (incluyendo persistencias) cuyas precondiciones estn en L(i-1) sin enlaces mutex entre ellas. Crear tambin los enlaces mutex de A(i). 3.4 Crear L(i), la capa i-sima de literales del grafo, con los efectos de las acciones de A(i). Crear tambin los enlaces mutex de L(i) 3.5 Conectar con enlaces cada accin de A(i) con sus precondiciones en L(i-1) y con sus efectos en L(i) HASTA que A(i), L(i) es igual a A(i-1),L(i-1) (incluyendo mutex) 5. Devolver FALLO

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Extraccin de planes en el algoritmo GRAPHPLAN


Es el proceso que se realiza en cada iteracin en la que

aparecen en el ltimo nivel todos los literales del objetivo (sin mutex)
Para ello se hace una bsqueda hacia atrs en el grafo:
Para cada subconjunto de literales en un nivel, buscar en

su capa de acciones un subconjunto de acciones (reales o de persistencia) que los tienen como efectos, con la restriccin de que entre esas acciones no puede haber enlaces mutex Para cada subconjunto de acciones en un nivel, buscar en la capa de literales del nivel anterior un subconjunto de literales que cumplen sus precondiciones, con la restriccin de que entre esos literales no puede haber enlaces mutex Esta bsqueda hacia atrs requiere backtracking, ya que

para cada nivel hay que intentar todas las posibles subconjuntos, tanto de acciones como de literales

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Problema de la cena: intento de extrer solucin, nivel 1


En el nivel 1 del grafo anterior aparecen los literales del

objetivo: CENA, REGALO, -BASURA, sin enlaces mutex Hay dos subconjuntos de acciones que los tiene como efectos: {SACARBASURA, COCINAR, ENVOLVER} y {TRITURAR, COCINAR, ENVOLVER}
basura sacarbasura triturar manoslimpias cocinar silencio envolver basura manoslimpias manoslimpias silencio silencio cena regalo cena regalo L(0) A(1) cena regalo L(1) cena regalo L(0) A(1) silencio envolver manoslimpias cocinar basura basura sacarbasura triturar basura manoslimpias manoslimpias silencio silencio cena regalo cena regalo L(1) basura

Pero ambos tienen un par de acciones mutex Por tanto, no es posible extraer una solucin en este nivel y hay que expandir grafo

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Grafo problema de la cena: segundo nivel

basura sacarbasura triturar manoslimpias cocinar silencio envolver

basura sacarbasura basura triturar manoslimpias manoslimpias cocinar silencio envolver silencio cena regalo

basura basura manoslimpias manoslimpias silencio silencio cena regalo cena regalo

cena regalo L(0) A(1)

cena regalo L(1)

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Problema de la cena: extraccin de una solucin, nivel 2


basura sacarbasura triturar manoslimpias cocinar silencio envolver basura triturar manoslimpias manoslimpias cocinar silencio envolver silencio cena regalo cena regalo L(0) A(1) cena regalo L(1) silencio cena regalo cena regalo silencio manoslimpias manoslimpias basura sacarbasura basura basura

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Problema de la cena: extraccin de una solucin

Importante: la solucin obtenida es el resultado de un

proceso de bsqueda entre las distintas alternativas de subconjuntos (de acciones y literales) en cada capa
Solucin extraida:
Nivel 1: COCINAR y persistencia de SILENCIO Nivel 2: SACARBASURA, ENVOLVER y persistencia de CENA

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Problema de la cena: extraccin de una solucin

Ntese que:
Una vez extraida la solucin, las acciones de persistencia

se pueden ignorar
Dentro de cada nivel, las acciones se pueden efectuar en

cualquier orden (ya que no son mutex)


En realidad, se trata de un plan parcial, ya que no se

especica el orden entre las acciones de un mismo nivel Soluciones al problema original:
COCINAR, SACARBASURA, ENVOLVER COCINAR, ENVOLVER, SACARBASURA

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Propiedades de GRAPHPLAN (I)

Propiedad 1: si hay una solucin al problema de nivel k ,

todos los literales del objetivo aparecen en el nivel k del grafo


Es una propiedad necesaria pero no suciente: por eso la

extraccin de la solucin puede fallar y hay que seguir iterando Propiedad 2: el proceso de expansin siempre alcanza un

punto jo
Conclusin: GRAPHPLAN es correcto, completo y siempre

termina

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Propiedades de GRAPHPLAN (II)

Complejidad: Importante: el grafo se puede construir en tiempo polinomial La exponencialidad la aporta la extraccin de soluciones (es una bsqueda) Pero como slo se busca en el grafo, el espacio de los

estados suele ser ms pequeo que en las bsquedas en el espacio de los estados, y por tanto funciona mejor en la prctica

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

El grafo de planicacin como heurstica


La informacin generada en la construccin del grafo de

planicacin (sin extraer solucin), puede ser usada para heursticas que se usen en algoritmos de bsqueda en el espacio de estados
El primer nivel del grafo en el que aparece un literal es una

estimacin de la distancia entre el estado incial y el literal


Lo llamamos coste de nivel del literal

Para objetivos con varios literales, varias posibilidades:


El mximo de sus costes de nivel: admisible pero no muy

informada
La suma de sus costes de nivel: en general no admisible,

pero ms precisa
El primer nivel en el que aparecen todos sin enlaces mutex:

admisible

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Otras aproximaciones a la planicacin


SATPLAN, uso de tcnicas basadas en lgica

proposicional
Planicacin como PSR Planicacin con recursos limitados Planicacin con tiempo explcito Planicacin mediante descomposicin jerrquica Planicacin en entornos con incertidumbre Ejecucin del plan: vigilancia y replanicacin Planicacin continua Planicacin multiagente

Introduccin El formalismo PDDL Bsqueda hacia adelante Bsqueda hacia atrs Heursticas para planicacin Planicacin d

Bibliografa
Russell, S. y Norvig, P. Articial Intelligence (A Modern

Approach) (PrenticeHall, 2010). Third Edition


Cap. 10: Planning.

Russell, S. y Norvig, P. Inteligencia Articial (un enfoque

moderno) (Pearson Educacin, 2004). Segunda edicin)


Cap. 11: Planicacin.

Ghallab M., Nau D. y Traverso P. Automated Planning:

theory and practice (Elsevier, 2004)


Sec. 2.3 Classical representation. Cap. 4 State space planning. Cap. 5 Plan space planning. Cap. 6 Planning-graph techniques. Cap. 9 Heuristics in planning.

Das könnte Ihnen auch gefallen