Planificacion Autom´ atica´ocw.uc3m.es/cursos-archivados/planificacion... · 1 Introduccion´ 2...
Transcript of Planificacion Autom´ atica´ocw.uc3m.es/cursos-archivados/planificacion... · 1 Introduccion´ 2...
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Planificacion Automatica
Grupo PLG
Universidad Carlos III de Madrid
IA. 2008-09
Planificacion Automatica 1
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Indice
1 Introduccion
2 Planificacion clasica
3 Planificacion neoclasica
4 HeurısticaPlanificacion heurısticaRedes de tareas jerarquicasConocimiento de controlAprendizaje automatico
5 Planificacion en el mundo real
Planificacion Automatica 2
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Indice
1 Introduccion
2 Planificacion clasica
3 Planificacion neoclasica
4 HeurısticaPlanificacion heurısticaRedes de tareas jerarquicasConocimiento de controlAprendizaje automatico
5 Planificacion en el mundo real
Planificacion Automatica 3
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Indice
1 Introduccion
2 Planificacion clasica
3 Planificacion neoclasica
4 HeurısticaPlanificacion heurısticaRedes de tareas jerarquicasConocimiento de controlAprendizaje automatico
5 Planificacion en el mundo real
Planificacion Automatica 4
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Indice
1 Introduccion
2 Planificacion clasica
3 Planificacion neoclasica
4 HeurısticaPlanificacion heurısticaRedes de tareas jerarquicasConocimiento de controlAprendizaje automatico
5 Planificacion en el mundo real
Planificacion Automatica 5
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Indice
1 Introduccion
2 Planificacion clasica
3 Planificacion neoclasica
4 HeurısticaPlanificacion heurısticaRedes de tareas jerarquicasConocimiento de controlAprendizaje automatico
5 Planificacion en el mundo real
Planificacion Automatica 6
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Indice
1 Introduccion
2 Planificacion clasica
3 Planificacion neoclasica
4 HeurısticaPlanificacion heurısticaRedes de tareas jerarquicasConocimiento de controlAprendizaje automatico
5 Planificacion en el mundo real
Planificacion Automatica 7
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Indice
1 Introduccion
2 Planificacion clasica
3 Planificacion neoclasica
4 HeurısticaPlanificacion heurısticaRedes de tareas jerarquicasConocimiento de controlAprendizaje automatico
5 Planificacion en el mundo real
Planificacion Automatica 8
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Indice
1 Introduccion
2 Planificacion clasica
3 Planificacion neoclasica
4 HeurısticaPlanificacion heurısticaRedes de tareas jerarquicasConocimiento de controlAprendizaje automatico
5 Planificacion en el mundo real
Planificacion Automatica 9
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Indice
1 Introduccion
2 Planificacion clasica
3 Planificacion neoclasica
4 HeurısticaPlanificacion heurısticaRedes de tareas jerarquicasConocimiento de controlAprendizaje automatico
5 Planificacion en el mundo real
Planificacion Automatica 10
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Redes de tareas jerarquicas
Planificacion jerarquica
Se distingue de la planificacion clasica en:Que planifica: en vez de un conjunto de metas G, elconjunto de acciones que llevan a cabo una actividad otareaComo planifica: descomponiendo tareas en subtareas deacuerdo con la definicion de varios metodos
Se diferencian:Simple Task Networks (STNs): la descomposicion se aplicaen cumplimiento de unas precondiciones segun unajerarquıaHierarchical Task Networks (HTNs): la descomposicion serealiza en un conjunto de tareas que cumplen ciertasrestricciones
Muy eficiente si se define bien el conocimientoLos dominios son mas complicados de definir
Planificacion Automatica 11
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Redes de tareas jerarquicas
Tipos de planificacion jerarquica
Los planes se van generando gradualmente deoperadores mas generales a mas concretos:
Estableciendo niveles de abstraccion en las precondicionesde los operadores: ABSTRIPS [Sacerdoti, 1974],ALPINE [Knoblock, 1994]Refinando los operadores sucesivamente:NOAH [Sacerdoti, 1977], MOLGEN [Stefik, 1981b,Stefik, 1981a]Preprogramando en que se divide cada operador:O-PLAN [Currie and Tate, 1991], SHOP2 [Nau et al., 2003]
Planificacion Automatica 12
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Redes de tareas jerarquicas
No lineal y jerarquica. NOAH
Debido a Sacerdoti [Sacerdoti, 1977]
Mezcla planificacion no lineal y jerarquicaTecnica empleada
detalla cada operador del plan construido hasta esemomentopor cada meta que no se consigue por ningun operador,genera uno, sin tener en cuenta el orden respecto a losdemasanaliza y cambia el plan utilizando un conjunto de crıticos
RepeticionesInconsistenciasConflictos
Planificacion Automatica 13
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Redes de tareas jerarquicas
Simple Task Networks. STNs
Una STN es un grafo dirigido acıclico w = (U, E) donde:
Cada nodo u ∈ U tiene asociada una tarea:
Instanciada o no: si tiene o no terminos variablesPrimitiva o no: si puede descomponerse o no
Cada arco e ∈ E establece una relacion de orden entre dostareas: u ≺ v si y solo si hay un camino desde u hasta v
C
B
B
C
invertir−pila (B)
dejar (B)quitar (B,C) invertir−sobre−pila (C,B)
poner (C,B) levantar(C)
Planificacion Automatica 14
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Redes de tareas jerarquicas
Simple Task Networks. STNs
C
B
B
C
invertir−pila (B)
dejar (B)quitar (B,C) invertir−sobre−pila (C,B)
poner (C,B) levantar(C)
Planificacion Automatica 15
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Redes de tareas jerarquicas
Metodos STN
Un metodo STN es una tupla m = (name(m), task(m),precond(m), network(m)) donde:
name(m) es el nombre del metodotask(m) es una tarea no primitivaprecond(m) son las precondiciones del metodonetwork(m) son las subtareas del metodo
Un problema de planificacion STN es una tuplaP = (s0, w , O, M) donde:
s0 es el estado inicialw es una jerarquıa de tareasD = (O, M) es el dominio de planificacion —operadores ymetodos
Planificacion Automatica 16
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Redes de tareas jerarquicas
Ejemplo STN
metodo: iniciar-inversion (b1, b2)tarea: invertir-pila (b1)preconds: libre (b1), encima (b1, b2)subtareas: quitar (b1, b2), dejar (b1),
invertir-sobre-pila (b2, b1)
metodo: invertir (b1, b2, b3)tarea: invertir-sobre-pila (b1, b2)preconds: libre (b1), libre (b2), encima (b1, b3)subtareas: quitar (b1, b3), poner (b1, b2),
invertir-sobre-pila (b3, b1)
metodo: finalizar-inversion (b1, b2)tarea: invertir-sobre-pila (b1, b2)preconds: libre (b1), libre (b2), en-mesa (b1)subtareas: levantar (b1), poner (b1, b2)
Planificacion Automatica 17
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Redes de tareas jerarquicas
Ejemplo STN (cont.)
quitar (A,B) dejar (A) invertir−sobre−pila (B,A)
poner (B,A)quitar (B,C) invertir−sobre−pila (C,B)
B
C
A
B
C A
poner (C,B)levantar (C)
C A
B
A
B
C
iniciar−inversion (A,B)
invertir−pila (A)
invertir (B,A,C)
finalizar−inversion (C,B)
Planificacion Automatica 18
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Redes de tareas jerarquicas
Resolucion
Un plan π = 〈a1, . . . , an〉 es una solucion del problemaP = (s0, w , O, M) si y solo si:
w = ∅ y π = ∅Dada una tarea no primitiva u ∈ w , π es una solucion de Psi a1 es aplicable en s0 y π = 〈a2, . . . , an〉 es una solucionde P ′ = (γ(s0, a1), w − u, O, M)Dada una tarea no primitiva u ∈ w , π es una solucion de Psi existe una jerarquıa w ′ a la que se llega con un metodom de modo que π es una solucion de (s0, w ′, O, M)
Los modelos jerarquicos recorren los estadosexplıcitamenteGeneran planes secuencialesDe la definicion de los metodos pueden derivarse planesen orden total o parcial
Planificacion Automatica 19
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Redes de tareas jerarquicas
Hierarchical Task Networks (HTN)
Tipos de tareas: compuestas o primitivasEntradas: estado inicial, tareas compuestas, orden en elque se deben conseguir y teorıa del dominio (metodos yacciones)Metodos: estan formados por
tarea compuestasprecondiciones para poder realizar la descomposicionconjunto de subtareas en las que se puede descomponerrestricciones que se deben cumplir en esas subtareas
Acciones:consiguen las tareas primitivasson semejantes a los operadores de planificacion STRIPSformadas por: tarea primitiva, precondiciones y efectos
Planificacion Automatica 20
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Redes de tareas jerarquicas
Mas sobre HTNs
Una HTN se define como w = (U, C) donde C es unconjunto de restricciones:
de precedencia: u ≺ vantes-de: before (U ′,l) establece que en cualquier planπ solucion de P, l debe ser cierto antes de U ′
despues-de: after (U ′,l) establece que en cualquierplan π solucion de P, l debe ser cierto despues de U ′
en-medio-de: between (U ′,U ′′,l) establece que l debeser cierto despues de U ′ y mantenerse ası al menos hastael estado anterior a U ′′
Los metodos HTN se describen entonces como:m = (name(m), task(m), precond(m), network(m))
Planificacion Automatica 21
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Redes de tareas jerarquicas
Ejemplo HTN
metodo: iniciar-inversion (b1, b2)tarea: invertir-pila (b1)subtareas: u1 =quitar (b1, b2), u2 = dejar (b1),
u3 = invertir-sobre-pila (b2, b1)restriccs: u1 ≺ u2, u2 ≺ u3, before ({u1}, libre (b1)),
before ({u1}, encima (b1,b2)), before ({u1}, brazo-libre),before ({u3}, libre (b1))
metodo: invertir (b1, b2, b3)tarea: invertir-sobre-pila (b1, b2)subtareas: u1 = quitar (b1, b3), u2 = poner (b1, b2),
u3 = invertir-sobre-pila (b3, b1)restriccs: u1 ≺ u2, u2 ≺ u3, before ({u3}, libre (b1))
before ({u1}, encima (b1,b3)), before ({u1}, brazo-libre),before ({u3}, libre (b1))
metodo: finalizar-inversion (b1, b2)tarea: invertir-sobre-pila (b1, b2)subtareas: u1 = levantar (b1), u2 = poner (b1, b2)restriccs: u1 ≺ u2
Planificacion Automatica 22
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Redes de tareas jerarquicas
Ejemplo de teorıa del dominio (acciones)
(defdomain logistics((:operator (!load-truck ?obj ?truck ?loc)
((obj-at ?obj ?loc)(:protection (truck-at ?truck ?loc)))((in-truck ?obj ?truck)))
(:operator (!unload-truck ?obj ?truck ?loc)((in-truck ?obj ?truck)(:protection (truck-at ?truck ?loc)))((obj-at ?obj ?loc)))
. . .))
Planificacion Automatica 23
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Redes de tareas jerarquicas
Metodos (same-city-deliver)
(:method (obj-at ?obj ?loc-goal) same-city-deliver((in-city ?loc-goal ?city-goal) (obj-at ?obj ?loc-now)(in-city ?loc-now ?city-goal) (truck ?truck ?city-goal))((:task in-city-delivery ?truck ?obj ?loc-now ?loc-goal))different-city-deliver((in-city ?loc-goal ?city-goal) (obj-at ?obj ?loc-now)(in-city ?loc-now ?city-now) (different ?city-goal ?city-now)(truck ?truck-now ?city-now) (truck ?truck-goal ?city-goal)(airport ?airport-now) (in-city ?airport-now ?city-now)(airport ?airport-goal) (in-city ?airport-goal ?city-goal))(:ordered (:task in-city-delivery ?truck-now ?obj ?loc-now ?airport-now)
(:task air-deliver-obj ?obj ?airport-now ?airport-goal)(:task in-city-delivery ?truck-goal ?obj ?airport-goal ?loc-goal)))
Planificacion Automatica 24
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Redes de tareas jerarquicas
Resolucion de problemas con HTN
Proceso: descomposicion de tareas compuestas en tareasmas sencillas hasta que todas sean tareas primitivasPlan: composicion de todas las acciones relativas a lastareas primitivas, conservando restricciones de orden
Planificacion Automatica 25
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Redes de tareas jerarquicas
Variantes
SIPE, O-PLAN, UMCP
permiten ordenes parciales entre subtareasdifieren en el tipo de restricciones que pueden definir
SHOP
orden total en las subtareasmas eficiente, menos rico en representacion
Planificacion Automatica 26
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Redes de tareas jerarquicas
SHOP2
SHOP2 es un planificador HTN independiente del dominiocuyos metodos deben ser especializados en cada dominioComo otros planificadores HTN, SHOP2 planifica las tareasen el orden en que seran ejecutadasAdemas de tareas, metodos y operadores, SHOP2 aceptaaxiomas como clausulas de Horn e invocaciones afunciones externas
Planificacion Automatica 27
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Redes de tareas jerarquicas
Algoritmo SHOP2 (s, T , D)
1 Escoger una tarea t ∈ T que no tenga predecesoras deacuerdo con las restricciones
2 Si t es una tarea primitiva:
Elegir una accion a que unifique con t mediante θ y cuyasprecondiciones se cumplan en sActualizar s borrando del(a) y anadiendo add(a)Eliminar t de T y aplicar θ
3 Si t es una tarea no primitiva (o compuesta):
Elegir un metodo m que descomponga t en subtareassegun θEliminar t de T y anadir las subtareas de m propagando lasrestricciones
4 Volver al principio
Planificacion Automatica 28
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Redes de tareas jerarquicas
Aplicaciones
SIPE: fabrica de cervezaO-PLAN: operaciones militaresBRIDGE-BARON: campeon del mundo de bridgecomputacional 1997
Planificacion Automatica 29
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Conocimiento de control
Conocimiento de control
Planificacion necesita heurısticasTipos
Independientes del dominio: HSP, FF, LPG, . . .Dependientes del dominio
Formas de codificar conocimiento de controlreglas de control o de reescriturajerarquıa de tareasprecondiciones de operadores (funciones, nuevospredicados, . . . )macro-operadores, casos, polıticas, . . .
Planificacion Automatica 30
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Conocimiento de control
Reglas de control
Representacion declarativa del conocimiento de controlSi Condiciones Entonces DecisionCondiciones: sobre el meta-estado de la busquedaDecisiones: sobre las alternativas en la busquedaTipos de decision: seleccion, rechazo, preferenciaPRODIGY [Veloso et al., 1995] fue la primera arquitecturaen definir un lenguaje para las reglas de control
Planificacion Automatica 31
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Conocimiento de control
Ejemplo de regla de control
(control-rule selecciona-unload-airplane(if (and (current-goal (en <objeto> <sitio1>))
(true-in-state (en <objeto> <sitio2>))(true-in-state (localizada-en <sitio1> <ciudad1>))(true-in-state (localizada-en <sitio2> <ciudad2>))(different-vars-p)(type-of-object <objeto> OBJECT)(type-of-object <sitio1> AEROPUERTO))
(then select operator unload-airplane)))
Planificacion Automatica 32
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Conocimiento de control
Condiciones (meta-predicados)
que cosas son ciertas sobre el estado(true-in-state (dentro <objeto> <avion>))
que (sub)meta se intenta conseguir(current-goal (en <objeto> <aeropuerto>))
que operador se ha seleccionado(current-operator descargar-avion)
que metas hay pendientes(some-candidate-goals ((en <objeto1> <aeropuerto>)))
de que tipo es un objeto(type-of-object <objeto> OBJETO)
Planificacion Automatica 33
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Conocimiento de control
Puntos de decision (no deterministas)
planificacion en espacio de estados: metas, operador,instanciacionplanificacion en espacio de planes: operador, amenaza,forma de solucionar amenazasplanificacion jerarquica (HTN): metodo a utilizarplanificacion heurıstica: instanciacion de operador(progresion) o meta (regresion)planificacion basada en grafos de planes: instanciacion deoperador, terminacion de primera fase
Planificacion Automatica 34
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Conocimiento de control
Tipos de reglas en PRODIGY
DecisionesMeta: que meta escogerOperador: que operador utilizar para obtener una metaInstanciacion de operador: que valores asignar a lasvariables del operadorEjecutar un operador o trabajar en alguna submeta
Forma de tomar la decision: seleccion, rechazo ypreferencia
Planificacion Automatica 35
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Conocimiento de control
Ejemplos en mundo de los bloques
(CONTROL-RULE SELECT-OP-UNSTACK-FOR-HOLDING(if (and (current-goal (holding <x>))
(true-in-state (on <x> <y>))))(then select operator UNSTACK))
(CONTROL-RULE SELECT-BINDINGS-UNSTACK-HOLDING(if (and (current-goal (holding <x>))
(current-operator UNSTACK)(true-in-state (on <x> <y>))))
(then select bindings ((<ob> . <x>) (<underob> . <y>))))
(CONTROL-RULE SELECT-OP-PUTDOWN-FOR-ARMEMPTY(if (and (current-goal (arm-empty))
(true-in-state (holding <ob>))))(then select operator PUT-DOWN))
Planificacion Automatica 36
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Conocimiento de control
Ejemplo de arbol sin reglas
Planificacion Automatica 37
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Conocimiento de control
Ejemplo de arbol con reglas
Planificacion Automatica 38
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Conocimiento de control
Logicas temporales simples
Extienden la logica de predicados con operadoresmodales:
φ1 ∪ φ2: φ1 debe ser cierto hasta que lo es φ2φ: φ debe ser cierto siempre desde este momento
�φ: φ debe ser cierto en algun estado desde este momento◦φ: φ debe ser cierto en el siguiente estado
Luego, propagan este conocimiento de control de unestado al siguiente mediante progresionEjemplos: TLPLAN [Bacchus and Kabanza, 2000],TALPLANNER [Kvarnstrom, 2002]
Planificacion Automatica 39
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Conocimiento de control
Formulas temporales
Lenguaje natural: “siempre es cierto que si un objeto estadentro de un avion en un estado y el avion no esta en laciudad destino del objeto, entonces en el siguiente estadoel objeto debe quedarse en el avion”Formalmente:
(∀[p : airplane(p)]∃[l :at(p, l)]∀ [o : in-wrong-city(o, l)]in(o, p) ⇒ ◦ in(o, p))
Planificacion Automatica 40
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Conocimiento de control
Programa
(always (forall (?p) (airplane ?p)(exists (?l) (at ?p ?l)
(forall (?o) (in-wrong-city ?o ?l)(implies (in ?o ?p)
(next (in ?o ?p)))))))
Planificacion Automatica 41
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Conocimiento de control
Ejemplo en el mundo de los bloques
(def-defined-predicate (above ?x ?y)(or (on ?x ?y)
(exists (?z) (on ?z ?y) (above ?x ?z))))
(def-defined-predicate (in-final-position ?x)(or (and (on-table ?x)
(not (exists (?y) (goal (on ?x ?y)))))(exists (?y) (on ?x ?y)
(and (not (goal (on-table ?x)))(forall (?z) (goal (on ?x ?z))
(= ?z ?y))(forall (?z) (goal (on ?z ?y))
(= ?z ?x))(in-final-position ?y)))))
Planificacion Automatica 42
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Conocimiento de control
Conocimiento de control
(always (forall (?x) (clear ?x)(and (implies
(in-final-position ?x)(next (and (not (holding ?x))
(forall (?y) (on ?y ?x)(in-final-position ?y)))))
(implies(bad-tower ?x)(next (not (exists (?y) (on ?y ?x)))))
(implies(and (on-table ?x)
(not (exists (?y) (goal (on ?x ?y))(good-tower ?y))))
(next (not (holding ?x)))))))
Planificacion Automatica 43
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Conocimiento de control
Tambien en precondiciones
(def-adl-operator (fly ?p ?from ?to)(pre (?p) (airplane ?p) (?from) (at ?p ?from)
(?to) (airport ?to)(and (not (= ?from ?to))
(not (exists (?obj) (at ?obj ?from)(move-by-plane ?obj ?from)))
(not (exists (?obj) (in ?obj ?p)(unload-from-plane ?obj ?from)))
(or (goal ?obj ?to)(exists (?obj) (at ?obj ?to)
(move-by-plane ?obj ?to))(exists (?obj) (in ?obj ?p)
(unload-from-plane ?obj ?to)))))(add (at ?p ?to))(del (at ?p ?from)))
Planificacion Automatica 44
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Conocimiento de control
Reglas de reescritura
(define-rule :name avoid-move-twice:if (:operators ((?n1 (unstack ?b1 ?b2))
(?n2 (stack ?b1 ?b3 Table))):links (?n1 (on ?b1 Table) ?n2):constrains ((possibly-adjacent ?n1 ?n2)
(:neq ?b2 ?b3))):replace (:operators (?n1 ?n2)):with (:operators (?n3 (stack ?b1 ?b3 ?b2))))
(define-rule :name avoid-undo:if (:operators ((?n1 (unstack ?b1 ?b2))
(?n2 (stack ?b1 ?b2 Table))):constrains ((possibly-adjacent ?n1 ?n2)))
:replace (:operators (?n1 ?n2)):with nil)
Planificacion Automatica 45
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Conocimiento de control
Conocimiento de control en funciones
(OPERATOR LOAD-TRUCK(params <obj> <truck> <loc>)(preconds ((<obj> OBJECT)
(<truck> TRUCK)(<loc> (and LOCATION
(in-truck-city-p <truck> <loc>))))(and (at-obj <obj> <loc>)
(at-truck <truck> <loc>)))(effects ()((add (inside-truck <obj> <truck>))(del (at-obj <obj> <loc>)))))
Planificacion Automatica 46
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Conocimiento de control
Conocimiento de control en precondiciones
(OPERATOR STACK(params <ob> <underob>)(preconds ((<ob> OBJECT)
(<underob> (and OBJECT(diff <ob> <underob>))))
(and (good-tower <underob>)(clear <underob>)(holding <ob>)))
(effects ()((del (holding <ob>))(del (clear <underob>))(add (arm-empty))(add (clear <ob> ))(add (on <ob> <underob>)))))
Planificacion Automatica 47
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Conocimiento de control
Macro-operadores
Secuencias de operadores
(:action load*fly-airplane*unload:parameters (?p - airplane ?s - airport
?d - airport ?o - package):precondition (and (at ?p ?s)
(at ?o ?s)(not (= ?s ?d)))
:effect (and (at ?p ?d)(at ?o ?d)(not (at ?o ?s))(not (at ?p ?s))))
Planificacion Automatica 48
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Conocimiento de control
Casos de plan
(inside−truck ob4 tr9)
(load−truck ob4 tr9 p3) (load−truck ob4 tr9 a3)
(at−truck tr9 p3)
(drive−truck tr9 a3 p3)
APPLY(drive−truck tr9 a3 p3)
(load−truck ob4 tr9 p3)APPLY
(at−obj ob4 a3)
(unload−airplane ob4 pl1 a3)
(inside−airplane ob4 pl1)
(load−airplane ob4 pl1 a3)
(at−obj ob4 a3)
(unload−truck ob4 tr9 a3)
(inside−truck ob4 tr9)
Failuregoal loop
Failuregoal loop
n1
n8
n9
n10
n11
n12
n2
n3
n4
n5
n6
n7
(load−truck ob4 tr9 p3)
((load−truck ob4 tr9 a3)
(inside−truck ob4 tr9)(at−obj ob4 a3)))
(at−truck tr9 p3)
(inside−truck ob4 tr9):precond−of user
:relevant−to:sibling−ops
cn1
(goal−loop
cn2:precond−of
(drive−truck tr9 a3 p3):relevant−to
APPLY(drive−truck tr9 a3 p3)
APPLY(load−truck ob4 tr9 p3)
cn1
cn2
cn3
cn4
cn5
cn6
cn3
(state (and (at-obj ob4 p3) (at-obj ob7 a3) (at-truck tr9 a3)(at-airplane pl1 a3) (same-city a3 p3)))
(goal (inside-truck ob4 tr9))
Planificacion Automatica 49
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Conocimiento de control
Aprender planificadores
Reescribir el planificador: DSPLANNER [Winner andVeloso, 2002,Winner and Veloso, 2003]
Ejemplo de plan en el dominio GripperIf (in-goal(at(?3:ball ?1:room)) and
true-in-state(at(?3:ball ?2:room)) andtrue-in-state(at-robby(?1:room))) Then
Move(?1 ?2)If (in-goal(at(?3:ball ?1:room)) and
true-in-state(at(?3:ball ?2:room)) andtrue-in-state(at-robby(?2:room)) andtrue-in-state(free-arm)) Then
Pick(?3 ?2)Move(?2 ?1)Drop(?3 ?1)
Planificacion Automatica 50
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Conocimiento de control
Polıticas (MDP)
Tabla-Q: el refuerzo esperado en el tiempode aplicar accion a en el estado s
AccionesEstados A1 . . . An
S1 0.7 . . . 0.2. . . . . . . . . . . .Sm 0.5 . . . 0.3
Planificacion Automatica 51
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Indice
1 Introduccion
2 Planificacion clasica
3 Planificacion neoclasica
4 HeurısticaPlanificacion heurısticaRedes de tareas jerarquicasConocimiento de controlAprendizaje automatico
5 Planificacion en el mundo real
Planificacion Automatica 52
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Referencias
Fahiem Bacchus and Froduald Kabanza.
Using temporal logics to express search control knowledge forplanning.
Artificial Intelligence, 116:123–191, 2000.
Ken Currie and Austin Tate.
O-Plan: the open planning architecture.
Artificial Intelligence, 52(1):49–86, 1991.
Craig A. Knoblock.
Automatically generating abstractions for planning.
Artificial Intelligence, 68, 1994.
Jonas Kvarnstrom.
Applying domain analysis techniques for domain-dependentcontrol in TALplanner.
Planificacion Automatica 53
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
In Proceedings of the Sixth International Conference onAutomated Planning and Scheduling, pages 101–110. AAAI,AAAI Press, 2002.
Dana Nau, Tsz-Chiu Au, Okhtay Ilghami, Ugur Kuter, J. WilliamMur, and Dan Wu.
SHOP2: An HTN planning system.
Journal of Artificial Intelligence Research, 20:379–404, 2003.
Earl D. Sacerdoti.
Planning in a hierarchy of abstraction spaces.
Artificial Intelligence, 5:115–135, 1974.
Earl D. Sacerdoti.
A Structure for Plans and Behavior.
American Elsevier, New York, 1977.
Mark Stefik.Planificacion Automatica 54
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
Planning and meta-planning (MOLGEN: Part 2).Artificial Intelligence, 16:141–169, 1981.
Mark Stefik.Planning with constraints (MOLGEN: Part 1).Artificial Intelligence, 16:111–140, 1981.
Manuela Veloso, Jaime Carbonell, Alicia Perez, Daniel Borrajo,Eugene Fink, and Jim Blythe.Integrating planning and learning: The PRODIGY architecture.Journal of Experimental and Theoretical AI, 7:81–120, 1995.
Elly Winner and Manuela Veloso.Analyzing plans with conditional effects.In Proceedings of the Sixth International Conference on ArtificialIntelligence Planning Systems, Toulouse, France, April 2002.
Elly Winner and Manuela Veloso.Planificacion Automatica 55
Introduccion Planificacion clasica Planificacion neoclasica Heurıstica Planificacion en el mundo real
DISTILL: Towards learning domain-specific planners by example.
In Proceedings of ICML’03, Washington, DC, August 2003.
Planificacion Automatica 56