PLANIFICACION AUTOM ATICA Daniel Borrajo · ¿Que tienen en com´ un?´ Busqueda en un espacio de...

Post on 12-Mar-2021

4 views 0 download

Transcript of PLANIFICACION AUTOM ATICA Daniel Borrajo · ¿Que tienen en com´ un?´ Busqueda en un espacio de...

PLANIFICACION AUTOMATICA

Daniel Borrajo

Universidad Carlos III de Madrid

Planificacion Automatica. Tekniker, 2012

Indice

1 IntroduccionConcepto de PlanificacionRepresentacionBusqueda

2 Planificacion clasica

3 Planificacion neoclasica

4 Heurıstica

5 Otras cuestiones

Indice

1 IntroduccionConcepto de PlanificacionRepresentacionBusqueda

2 Planificacion clasica

3 Planificacion neoclasica

4 Heurıstica

5 Otras cuestiones

Planificacion

¿Que es planificacion?

• Empresarios: planes de la empresa• Abogados: planes de defensa del cliente• Industriales: planes de movimiento de robots• Arquitectos: planes de diseno de edificios• Informaticos: planes de desarrollo del sistema• Telecomunicaciones: planes de conexion• Ejercito: planes de ataque/defensa• Logıstica: planes para transportar objetos

¿Que tienen en comun?

Busqueda en un espacio de problemas• Estado o situacion: descripcion instantanea• Accion u Operador: transformacion de un estado en otro• Estado inicial: situacion de partida• Objetivo o meta: descripcion de condiciones que se tienen

que dar para considerar por terminado el proceso• Plan: secuencia de operadores que permiten pasar del

estado inicial a un estado en el que se cumplan losobjetivos

• Heurısticas: conocimiento que permite obtenereficientemente el plan

¿Que es la planificacion?

Planificacion• Dados:

• un modelo del dominio (lenguaje PDDL): conjunto deacciones

• un problema: un estado inicial, un conjunto de metas, unametrica

• Obtener: un conjunto ordenado de acciones que consiguelas metas desde el estado inicial(intentando optimizar la metrica)

Acciones en el dominio de los Rovers

(:action navigate:parameters (?x - rover ?y - waypoint ?z - waypoint):precondition (and (can_traverse ?x ?y ?z)

(available ?x)(at ?x ?y)(visible ?y ?z)(>= (energy ?x) 8))

:effect (and (decrease (energy ?x) 8)(not (at ?x ?y))(at ?x ?z)))

Ejemplo de solucion

Solution:1: (navigate rover1 waypoint2 waypoint1) [1]2: (sample_soil rover0 rover0store waypoint3) [1]3: (sample_rock rover1 rover1store waypoint1) [1]4: (calibrate rover1 camera0 objective0 waypoint1) [1]5: (take_image rover1 waypoint1 objective0 camera0 high_res) [1]6: (communicate_soil_data rover0 general waypoint3

waypoint3 waypoint2) [1]7: (communicate_rock_data rover1 general waypoint1

waypoint1 waypoint2) [1]8: (communicate_image_data rover1 general objective0 high_res

waypoint1 waypoint2) [1]

¿Que es planificacion?

Scheduling• Dados:

• un conjunto de actividades (acciones)• algunas restricciones sobre la precedencia, aspectos

temporales o de utilizacion de recursos

• Obtener: una asignacion temporal y de recursos a lasactividades

Ejemplo de salida

[0,5] (navigate rover1 waypoint2 waypoint1) [10,40][10,45] (sample_soil rover0 rover0store waypoint3) [5,10][10,45] (sample_rock rover1 rover1store waypoint1) [10,20][20,65] (calibrate rover1 camera0 objective0 waypoint1) [2,5][22,70] (take_image rover1 waypoint1 objective0

camera0 high_res) [2,5][24,75] (communicate_soil_data rover0 general waypoint3

waypoint3 waypoint2) [5,20][24,75] (communicate_rock_data rover1 general waypoint1

waypoint1 waypoint2) [5,20][29,95] (communicate_image_data rover1 general objective0 high_res

waypoint1 waypoint2) [10,30]

Una historia de la planificacion

1950 1960 198019801970 1990 2000

Planners

Learning

Applications

¿Como planificamos?

De multiples formas• En funcion de los fines (metas) y los medios (operadores)• Descomponiendo problemas en subproblemas• Basado en la experiencia• Reactivamente• Entre varios agentes• Estableciendo prioridades

Aproximaciones a la planificacion

Aproximaciones a la planificacion

Aproximaciones a la planificacion

Aproximaciones a la planificacion

Arquitectura generica

Entorno

actuadoressensores

Controlador

Reacción

Planificación

Sentimientos

Comportamiento social

Aprendizaje

Localización yplanificación de

Comunicación

trayectorias

Arquitectura generica

Entorno

actuadoressensores

Controlador

Reacción

Planificación

Sentimientos

Comportamiento social

Aprendizaje

Localización yplanificación de

Comunicación

trayectorias

Arquitectura generica

Entorno

actuadoressensores

Controlador

Reacción

Planificación

Sentimientos

Comportamiento social

Aprendizaje

Localización yplanificación de

Comunicación

trayectorias

Arquitectura generica

Entorno

actuadoressensores

Controlador

Reacción

Planificación

Sentimientos

Comportamiento social

Aprendizaje

Localización yplanificación de

Comunicación

trayectorias

Arquitectura generica

Entorno

actuadoressensores

Controlador

Reacción

Planificación

Sentimientos

Comportamiento social

Aprendizaje

Localización yplanificación de

Comunicación

trayectorias

Suposiciones iniciales

• Conjunto de estados finito• Completamente observable• Determinista• Estatico• Metas restringidas• Planes secuenciales• Tiempo implıcito• Planificacion off-line

Clasificacion de tecnicas de planificacion

• Planificacion determinista:• entorno completamente conocido• no hay realimentacion sobre ejecucion de acciones• enfoques: planificacion clasica, con costes, optima

• Planificacion probabilıstica:• entorno completamente observable, donde las acciones

pueden producir diferentes estados determinados por unadistribucion de probabilidad

• enfoques: combinacion de planificacion determinista yreplanificacion, extender planificacion clasica y resolverMarkov Decision Processes (MDPs)

• Planificacion contingente: se pueden observar algunosaspectos del estado actual durante la ejecucion de lasacciones

• Planificacion conformante: no determinista y entorno noobservable

El mundo de los bloques

• Un conjunto de bloques, una mesa, y un brazo de un robot

• Todos los bloques son iguales de tamano, forma y color, diferenciandoseen el nombre

• La mesa tiene extension ilimitada

• Cada bloque puede estar encima de la mesa, encima de un solo bloque,o sujeto por el brazo del robot

• El brazo de robot solo puede sujetar un bloque cada vez

• Resolver problemas supone pasar de una configuracion (estado) inicial aun estado en el que sean ciertas unas metas

C

BC

B

A

D A

Estado inicial Metas

La logıstica de transportes

• Ciudades, con aeropuertos y oficinas de correos

• Aviones que pueden volar entre los aeropuertos

• Camiones que solo pueden llevar paquetes dentro de las ciudades

• Paquetes que deben ir de un sitio a otro, posiblemente situados endiferentes ciudades

Otros dominios

• Competiciones de planificacion: desde 1998:http://icaps-conference.org

• Aplicaciones reales:• DeepSpace One• Spirit+Opportunity• Gestion de incendios• Gestion de ascensores• UAV de vigilancia (WITAS)• Bridge

Maintenance of satellites. Hispasat

What else?

• Representation: functions (real ones) in thepreconditions+control knowledge

• Time: Allen primitives• Uncertainty: not considered• Sensors and actuators: parsing (GUI), Excel• Search:

• cost-based planning: easy (Prodigy). . .• once the right control knowledge was defined

• Reality check: it was developed with the users, never used

[AI Magazine, 2004]

Representation

(OPERATOR SOUTH-MANEUVER(params <s> <d> <t> <dend> <db>)(preconds ((<s> SATELLITE)

(<t> TIMES)(<d> (and DATE

(gen-from-pred (south-maneuver <s> <t> <d>))))(<dend> (and DATE (end-operation <d> 3 hours)))(<db> (and DATE (required-hour <d> Monday 0))))

(and (free)(south-maneuver <s> <t> <d>)))

(effects ()((add (south-m <s> <t>))(add (south-man <s> <t> <d>))(add (no-maneuver <s> <t> <db>)))))

Personalized city tourism. SAMAP

What else?

• Representation: real functions on preconditions• Time: linear, constrained• Uncertainty: replanning• Sensors and actuators:

• parsing (Web, maps, GUI, smartphone, ...)• oversubscription, user-based goals generation

• Search: two planning models• temporal HTN• cost-based planning

• Reality check:• started as a research project• now a product, Onmyplan

(http://www.iactiveit.com/soluciones/turismo/)

[ESWA, 2008]

Representation

(OPERATOR MOVE(params <u> <pu> <p> <day> <time> <new-time> <duration> <price> <utility>)(preconds ((<u> USER) (<day> DAY) (<p> PLACE)

(<pu> (and PLACE (is-user-there-p <u> <pu>)))(<time> (and TIME (gen-from-pred (current-time <u> <day> <time>))))(<duration> (and DURATION

(compute-move-time <pu> <p> <time> <day> nil <duration>)))(<money> (and MONEY (gen-from-pred (money-available <u> <money>))))(<price> (and MONEY (get-transport-cost <price>) (<= <price> <money>)))(<utility> (and UTILITY (get-transport-utility <utility>)))(<new-time> (and TIME (increase <time> <duration> <new-time>))))

(and (at <u> <pu>)))(effects ((<new-money> (and MONEY (decrease <money> <price> <new-money>))))

((del (money-available <u> <money>))(add (money-available <u> <new-money>))(del (at <u> <pu>))(add (at <u> <p>))(del (current-time <u> <day> <time>))(add (current-time <u> <day> <new-time>))))

(costs ()((PRICE <price> )(UTILITY <utility>)(MAKESPAN <duration>)(OTHER-METRIC (compute-metric <utility> <price>)))))

Social games. Planning and emotions

What else?

• Representation:• functions• numerical preconditions• state-dependent costs

• Time: linear, explicit• Uncertainty: replanning• Sensors and actuators: 3D simulator• Search: cost-based planning• Reality check: research project

[ICAART, 2011]

Representation

(:action PLAY:parameters (?leisure-object - leisure-object ?room - room):precondition (and (in ?room) (at ?leisure-object ?room) (not (time))):effect (and (time)

(decrease (boredom) 1)(assign (needs)

(+ (+ (+ (+ (boredom) (hunger)) (thirst)) (dirtiness))(tiredness)))

(increase (valence)(* (neuroticism)

(- (/ (+ (preference ?leisure-object) (play-preference)) 2)(/ (max-preference) 2))))

(increase (arousal)(* (neuroticism)

(- (/ (+ (activation ?leisure-object) (play-activation)) 2)(/ (max-activation) 2))))

(increase (v-valence)(* (neuroticism)

(- 1 (/ (/ (+ (preference ?leisure-object) (play-preference)) 2)(max-preference)))))

(increase (v-arousal)(* (neuroticism)

(- 1 (/ (/ (+ (activation ?leisure-object) (play-activation)) 2)(max-activation)))))))

e-Learning. Adaptaplan

What else?

• Representation: functions, numerical preconditions• Time: linear• Uncertainty:

• how to plan for failures?• can we change on-line a new plan?

• Sensors and actuators:• parsing (e-Learning standards)• oversubscription: clustered oversubscription

• Search: three different planning models (temporal, HTN andcost-based planning)

• Reality check: it was applied in its HTN version by acompany

[J. of Scheduling, 2010; ESWA, 2011; KERJ, In Press]

Representation

(:action designs-problem-space:parameters (?s - student):precondition (and (not (task_designs-problem-space_done ?s))

(task_reads-introduction_done ?s)(novice_level ?s)(user_role ?s learner))

:effect (and (is-part-of introduction)(task_designs-problem-space_done ?s)(increase (total_time_student ?s) 60)(when (active ?s strong)

(increase (reward_student ?s) 40))(when (reflective ?s strong)

(increase (reward_student ?s) 20))(when (intuitive ?s strong)

(increase (reward_student ?s) 20))(when (sensitive ?s strong)

(increase (reward_student ?s) 40))(when (visual ?s strong)

(increase (reward_student ?s) 20))(when (verbal ?s strong)

(increase (reward_student ?s) 40))))

Clustered oversubscription

Planning for data mining. Ericsson Research

Planning for data mining

What else?

• Representation: functions, numerical preconditions,state-dependent costs, new objects

• Time: not considered• Uncertainty:

• how to estimate the actions cost• how to estimate the results of executing actions

• Sensors and actuators:• PMML, databases and Weka• use of learning

• Search: cost-based planning• Reality check: developed with users (Ericsson), patent

application, unknown usage

[KERJ, In Press]

Representation

(:action train-classification:parameters (?mi - ModelInstance ?m - Model ?d - DataSet

?fi - FieldName ?dt - DataType ?t - TestMode):precondition (and (learnable ?mi)

(is-model ?mi ?m)(implements ?m classification)(is-field ?fi ?d)(dataField ?fi categorical ?dt)(eval-on ?d ?t))

:effect (and (is-classification-model ?mi ?d ?fi)(not (preprocess-on ?d))(not (learnable ?mi))(increase (reward) (reward-model ?m))(increase (understandability)

(understandability-model ?m))(increase (exec-time)

(* (model-time ?m)(numberOfFields)))))

Planning for data mining. Sensors

Logistics planning. Acciona

What else?

• Representation: MIP model, functions, numericalpreconditions, state-dependent costs

• Time: linear, explicit• Uncertainty: monitoring and replanning• Sensors and actuators: company databases (errors)• Search: problem size→ MIP+cost-based planning• Reality check: developed with users (Acciona), unknown

usage

[ICAPS’11]

Representation

(:action delivery-after-time:parameters (?p - load ?c - truck ?o - container ?l - place

?m - time ?s - time):precondition (and (loaded ?c ?o)

(inside ?p ?o)(at ?p ?l)(time ?p ?m)(after ?p ?m ?s)(> (time-truck ?c) (delivery-time ?p ?l))(> (container-load ?o) 0))

:effect (and (not (time ?p ?m))(time ?p ?s)(delivered ?p ?l ?m)(decrease (container-load ?o)

(unload-amount ?p ?l))(increase (plan-cost)

(* (- (time-truck ?c)(delivery-time ?p ?l))

(late-delivery-cost ?p ?l)))))

Robotic tasks. CMU

What else?

• Representation: two levels, functions, numericalpreconditions, state-dependent costs

• Time: defined as a cost, learned• Uncertainty: monitoring and replanning at the two levels• Sensors and actuators: noisy• Search: cost-based planning• Reality check: robots are moving

Representation

(:action move-stay-connected:parameters (?robot - robot ?cell1 - cell ?cell2 - cell):precondition (and (at-robot ?robot ?cell1)

(free ?cell2)(adjacent ?cell1 ?cell2)(connected-cell ?cell2)(< (uncertainty-obstacle ?cell2)

(uncertainty-threshold))):effect (and (not (at-robot ?robot ?cell1))

(not (free ?cell2))(free ?cell1)(at-robot ?robot ?cell2)(visited ?robot ?cell2)(increase (exec-time) 1)(increase (total-uncertainty)

(uncertainty-obstacle ?cell2))(increase (number-visited) 1)))

Robotic tasks

Robotic tasks

Multiple-sensors observation

User-centered tourist guides

User-centered tourist guides

Indice

1 IntroduccionConcepto de PlanificacionRepresentacionBusqueda

2 Planificacion clasica

3 Planificacion neoclasica

4 Heurıstica

5 Otras cuestiones

Representacion en planificacion

• Para que el ordenador pueda resolver problemas, hace faltadecirle que tiene que resolver en algun lenguaje (al igualque a nosotros)

• Existen muchas formas de suministrar esa informacion• La mas empleada en planificacion automatica es la logica

de predicados• Ası se representan los estados y los operadores• La logica de predicados permite representar las cuestiones

ciertas o falsas del mundo mediante: terminos, predicados,conectivas, y cuantificadores

• No hay una representacion unica y valida; cada personarepresenta los dominios de forma diferente

Representacion de los estados

• Los estados se representan definiendo un conjunto depredicados

en(objeto/vehıculo,lugar), dentro(objeto,vehıculo),

en-ciudad(lugar,ciudad)

• y tipos

objeto(x), vehıculo(x)={avion(x),camion(x)},lugar(x)={aeropuerto(x),oficina-correos(x)}, ciudad(x)

Representacion de los estados

• Cada estado se representa por una conjuncion depredicados instanciados

en(objeto1,aeropuerto1),en(avion1,aeropuerto1),

en(camion1,aeropuerto1),en(camion2,oficina-correos2),...

• Normalmente, se supone que lo que no apareceexplıcitamente representado en un estado es falso:suposicion del mundo cerrado

en(objeto1,x) ∀x 6=aeropuerto1

Estados en el mundo de los bloques

• Se podrıan utilizar los siguientes predicados:• encima(x,y): el bloque x esta encima del y• en-mesa(x): el bloque x esta encima de la mesa• libre(x): el bloque x no tiene ningun bloque encima• sujeto(x): el brazo del robot tiene cogido al bloque x• brazo-libre: el brazo del robot no tiene cogido a ningun

bloque

Estado inicial:encima(A,B),encima(B,D),en-mesa(D),en-mesa(C),libre(A),libre(C),brazo-libreMetas: en-mesa(A),encima(C,B)

C

BC

B

A

D A

Estado inicial Metas

Representacion de los operadores

• Se deben representar los cambios que ocurren en el mundopor la aplicacion del operador: suposicion STRIPS

• Se definen por tres listas:• precondiciones: condiciones que se tienen que cumplir en

un estado para poder ejecutar el operador• anadidos: cosas que pasan a ser ciertas por la ejecucion del

operador (hay que anadirlas al estado)• borrados: cosas que dejan de ser ciertas por la ejecucion

del operador (hay que borrarlas del estado)

cargar-avion(objeto,avion,aeropuerto)precondiciones: en(objeto,aeropuerto),en(avion,aeropuerto)anadidos: dentro(objeto,avion)borrados: en(objeto,aeropuerto)

Ejemplo: Mundo de los bloques

Operators

• pickup(?x): (ontable ?x) (clear ?x) (arm-empty)(holding ?x)¬(ontable ?x) ¬(clear ?x) ¬(arm-empty)

• putdown(?x): (holding ?x)(ontable ?x) (clear ?x) (arm-empty)¬(holding ?x)

• stack(?x ?y): (holding ?x) (clear ?y)(on ?x ?y) (clear ?x) (arm-empty) ¬(. . . ) ¬(. . . )

• unstack(?x ?y):(on ?x ?y) (clear ?x) (arm-empty)(holding ?x) (clear ?y) ¬(. . . ) ¬(. . . ) ¬(. . . )

C

BC

B

A

D A

Estado inicial Metas

Ejemplos de operadores en logıstica

cargar-avion(objeto,avion,aeropuerto)precondiciones: en(objeto,aeropuerto),en(avion,aeropuerto)anadidos: dentro(objeto,avion)borrados: en(objeto,aeropuerto)

descargar-avion(objeto,avion,aeropuerto)precondiciones: dentro(objeto,aeropuerto),en(avion,aeropuerto)anadidos: en(objeto,aeropuerto)borrados: dentro(objeto,avion)

cargar-camion(objeto,camion,lugar)precondiciones: en(objeto,lugar),en(camion,lugar)anadidos: dentro(objeto,camion)borrados: en(objeto,lugar)

descargar-camion(objeto,camion,lugar)

volar-avion(avion,aeropuerto1,aeropuerto2)precondiciones: en(avion,aeropuerto1)anadidos: en(avion,aeropuerto2)borrados: en(avion,aeropuerto1)

conducir-camion(camion,lugar1,lugar2,ciudad)precondiciones: en(camion,lugar1),en-ciudad(lugar1,ciudad),en-ciudad(lugar2,ciudad)anadidos: en(camion,lugar2)borrados: en(camion,lugar1)

Desde STRIPS hasta PDDL

• El lenguaje de STRIPS es muy simple• Se amplio el lenguaje, generando ADL, que incorpora, entre

otros:• cuantificacion universal y existencial• efectos condicionales

• Desde 1998 se ha venido organizando una competicion deplanificadores, IPC (“International Planning Competition”)

• Se necesitaba un lenguaje comun: PDDL

• Ha tenido varias versiones, que permiten, entre otros:• especificacion de costes de ejecucion de operadores• tipos para variables de operadores• modelos no conservativos de acciones

Lenguaje estandar PDDL. Dominio de la logıstica

(define (domain logistics)(:requirements :strips :typing)(:types truck airplane - vehicle

package vehicle - physobjairport location - placecity place physobj - object)

(:predicates (in-city ?loc - place ?city - city)(at ?obj - physobj ?loc - place)(in ?pkg - package ?veh - vehicle))

...)

Operadores

(:action load-truck ...)(:action load-airplane ...)(:action unload-truck ...)(:action unload-airplane ...)(:action drive-truck ...)(:action fly-airplane

:parameters (?p - airplane ?s - airport ?d - airport):precondition (and (at ?p ?s)

(not (= ?s ?d))):effect (and (at ?p ?d)

(not (at ?p ?s))))

Definicion del problema

(define (problem log1) (:domain logistics)(:objects (ob0 ob1 ob2 - package)

(c2 c1 c0 - city)(po2 po1 po0 - location)(a2 a1 a0 - airport)(tr2 tr1 tr0 - truck)(pl1 pl2 - airplane))

(:init (in-city a2 c2) (in-city po2 c2) (at tr2 po2)(in-city a1 c1) (in-city po1 c1) (at tr1 po1)(in-city a0 c0) (in-city po0 c0) (at tr0 po0)(at ob1 a1) (in ob0 pl0) (in ob2 tr1)(at pl2 a1) (at pl1 a2))

(:goal (at ob1 a2)))

Operadores mas complejos

(:action zoom:parameters (?a - aircraft ?c1 ?c2 - city):precondition (and (at ?a ?c1)

(>= (fuel ?a)(* (distance ?c1 ?c2) (fast-burn ?a)))

(<= (onboard ?a) (zoom-limit ?a))):effect (and (not (at ?a ?c1))

(at ?a ?c2)(increase (total-fuel-used)

(* (distance ?c1 ?c2) (fast-burn ?a)))(decrease (fuel ?a)

(* (distance ?c1 ?c2) (fast-burn ?a)))))

Problemas mas complejos

(define (problem strips-sat-x-1) (:domain satellite)(:objects satellite0 - satellite

instrument0 - instrumentimage1 spectrograph2 thermograph0 - modeStar0 Star5 GroundStation1 GroundStation2 Phenomenon3Phenomenon4 Phenomenon6 - direction)

(:init (supports instrument0 thermograph0)(= (calibration-target instrument0) GroundStation2)(= (calibration-time instrument0 GroundStation2) 5.9)(on-board instrument0 satellite0)(power-avail satellite0)(= (pointing satellite0) Phenomenon6)(= (slew-time GroundStation1 Star0) 18.17)(= (slew-time Star0 GroundStation1) 18.17)...)

(:goal (and (have-image Phenomenon4 thermograph0)(have-image Star5 thermograph0)(have-image Phenomenon6 thermograph0)))

(:metric minimize (total-time)))

PPDDL: dominios probabilısticos

(:action calibrate:parameters (?s - satellite ?i - instrument ?d - direction):precondition (and (on-board ?i ?s)

(pointing ?s ?d)(power-on ?i))

:effect (and (when (calibration-target ?i ?d) (calibrated ?i))(when (not (calibration-target ?i ?d))

(probabilistic 0.2 (and (calibrated ?i))))))

Preferencias (problema)

(:constraints (and (preference a0 (always (at rover0 waypoint0)))(preference e0 (sometime (at rover0 waypoint3)))(preference o0 (at-most-once (empty rover0store)))(preference o1 (at-most-once (full rover0store)))...))

(:metric minimize (+ (* (is-violated a0) 6.22222)(* (is-violated e0) 5.44444)(* (is-violated o0) 7)(* (is-violated o1) 5.44444)(* (is-violated sb1) 5.44444)

...))

Otras representaciones (dominio). SAS+

(:functions (city-of ?l - location) - city(location-of ?t - thing) - (either location vehicle))

(:action drive:parameters (?t - truck ?to - location):precondition (= (city-of (location-of ?t)) (city-of ?to)):effect (assign (location-of ?t) ?to))

(:action unload:parameters (?p - package ?v - vehicle):precondition (= (location-of ?p) ?v):effect (assign (location-of ?p) (location-of ?v)))

Indice

1 IntroduccionConcepto de PlanificacionRepresentacionBusqueda

2 Planificacion clasica

3 Planificacion neoclasica

4 Heurıstica

5 Otras cuestiones

Busqueda

• Busqueda hacia adelante (progresion): se ejecutanoperadores hasta que se encuentre la solucion

• Ejemplos: SOAR [Laird et al., 1986], FF [Hoffmann andNebel, 2001], TLPLAN [Bacchus and Kabanza, 2000]

• Busqueda hacia atras (regresion): se comienza desde lasmetas, se seleccionan operadores que las anadan y seanaden las precondiciones de los mismos al conjunto demetas

• Ejemplos: STRIPS [Fikes and Nilsson, 1971],UCPOP [Penberthy and Weld, 1992], PRODIGY [Veloso et al.,1995]

Busqueda

• Busqueda hacia adelante (progresion): se ejecutanoperadores hasta que se encuentre la solucion

• Ejemplos: SOAR [Laird et al., 1986], FF [Hoffmann andNebel, 2001], TLPLAN [Bacchus and Kabanza, 2000]

• Busqueda hacia atras (regresion): se comienza desde lasmetas, se seleccionan operadores que las anadan y seanaden las precondiciones de los mismos al conjunto demetas

• Ejemplos: STRIPS [Fikes and Nilsson, 1971],UCPOP [Penberthy and Weld, 1992], PRODIGY [Veloso et al.,1995]

Busqueda hacia adelante

Busqueda hacia adelante

Busqueda hacia adelante

Busqueda hacia adelante

Busqueda hacia adelante

Busqueda hacia adelante

Busqueda hacia adelante

Busqueda hacia adelante

Busqueda hacia adelante

Busqueda hacia adelante

Busqueda hacia atras

Busqueda hacia atras

Busqueda hacia atras

Busqueda hacia atras

Busqueda sin conocimiento

(:action a-1:parameters (?p - type-x ?s - type-y ?d - type-z):precondition (and (p-1 ?p ?s) (not (= ?s ?d))):effect (and (p-1 ?p ?d)

(not (p-1 ?p ?s))))(:action a-2

:parameters (?p - type-x ?s - type-y ?d - type-z):precondition (and (p-1 ?p ?d) (p-1 ?s ?d)):effect (and (p-2 ?p ?s)

(not (p-1 ?p ?d))))(:action a-3

:parameters (?p - type-x ?s - type-y ?d - type-z):precondition (and (p-2 ?p ?s) (p-1 ?s ?d)):effect (and (p-1 ?p ?d)

(not (p-2 ?p ?s))))

Busqueda

Sin conocimiento• Amplitud vs. Profundidad• Hacia adelante vs. hacia atras vs. bidireccional• Con costes vs. sin costes• Uno vs. multiples agentes

Busqueda con conocimiento• Busqueda local y avara (greedy) vs. busqueda global• Escalada, en Haz• A∗, IDA∗, . . .• Alfa-beta

Caracterısticas

• Complejidad en tiempo y espacio• Validez• Completud• Optimalidad• Incertidumbre

Mas informacion en

• Libro: [Ghallab et al., 2004]

• Otras referencias: [Nilsson, 1987,Borrajo et al., 1993,Rich and Knight, 1994,Russell and Norvig, 1995,Allen et al., 1990,Weld, 1994]

Indice

1 Introduccion

2 Planificacion clasicaEspacio de estadosPlanes de orden parcial

3 Planificacion neoclasica

4 Heurıstica

5 Otras cuestiones

Indice

1 Introduccion

2 Planificacion clasicaEspacio de estadosPlanes de orden parcial

3 Planificacion neoclasica

4 Heurıstica

5 Otras cuestiones

STRIPS

Objetivo: construccion de un sistema de control para el robot Shakey

Representacion de operadores

• Problema del marco: ¿que ocurre con el contexto delmundo cuando se ejecuta una accion?

• Solucion (hipotesis STRIPS): solo cambian las cosas queaparecen en las post-condiciones de cada operador [Fikesand Nilsson, 1971]

• Busqueda:• Nodos: estado actual y pila de metas-operadores• Nodo raız: estado inicial y conjuncion de metas• Heurıstica: seleccionar siempre alguno de los sucesores de

cada nodo• Idea:

• Meter en la pila las metas por conseguir y los operadoresque consiguen dichas metas

• Sacar de la pila las metas que sean ciertas en el estadoactual y los operadores que se ejecuten

Algoritmo de STRIPS

Repetir hasta que pila=φ OR no se puedan expandir mas nodos• Si la cima de la pila del nodo es una conjuncion de metas

Si la conjuncion es cierta en el estado Entonces se elimina de la pilaSi no, generar como sucesores todas las posibles combinaciones de las metas

seleccionar una de ellas• Si la cima de la pila del nodo es una meta

Si la meta es cierta en el estado Entonces se elimina de la pilaSi no, Si hay bucle de meta Entonces retroceder

Si no, generar un sucesor por cada instanciacion de operadorque anade dicha meta

Si hay sucesores Entonces elegir unoSi no, retroceder

• Si la cima de la pila del nodo es un operador instanciadoSi el operador instanciado se puede ejecutarEntonces ejecutar operador, quitarlo de la pila y anadirlo al planSi no, se introducen sus precondiciones en la pila

Representacion de operadores

QUITAR(x , y )precondiciones: encima(x , y ),libre(x),brazo-libreanadidos: sujeto(x),libre(y )borrados: encima(x , y ),brazo-libre,libre(x)

LEVANTAR(x)precondiciones: en-mesa(x),libre(x),brazo-libreanadidos: sujeto(x)borrados: en-mesa(x),brazo-libre,libre(x)

PONER(x , y )precondiciones: sujeto(x),libre(y )anadidos: encima(x , y ),libre(x),brazo-libreborrados: sujeto(x),libre(y )

DEJAR(x)precondiciones: sujeto(x)anadidos: en-mesa(x),libre(x),brazo-libreborrados: sujeto(x)

Ejemplo de STRIPS

A

AB

Estado inicial (E )0 Metas

en-mesa(A) E0

en-mesa(A)DEJAR(A) E0

sujeto(A)DEJAR(A)en-mesa(A)

E0

E0

en-mesa(A)

sujeto(A)DEJAR(A)

QUITAR(A,A)

QUITAR(A,B)

en-mesa(A)

sujeto(A)DEJAR(A)

E0E

sujeto(A)DEJAR(A)en-mesa(A)

0

LEVANTAR(A)

LEVANTAR(A)

en-mesa(A)DEJAR(A)sujeto(A) E0

LEVANTAR(A)

en-mesa(A)DEJAR(A)sujeto(A)

E0

metabucle de

X

brazo-libreen-mesa(A) libre(A)

en-mesa(A) libre(A)brazo-librebrazo-libre

X

X X

X X

en-mesa(A)libre(A)

...

libre(A) brazo-libre encima(A,B)QUITAR(A,B)sujeto(A)DEJAR(A)en-mesa(A)

E0

E1sujeto(A)DEJAR(A)en-mesa(A) B

A

E1E2en-mesa(A)

B A

E2

Ejemplo de STRIPS

A

AB

Estado inicial (E )0 Metas

en-mesa(A) E0

en-mesa(A)DEJAR(A) E0

sujeto(A)DEJAR(A)en-mesa(A)

E0

E0

en-mesa(A)

sujeto(A)DEJAR(A)

QUITAR(A,A)

QUITAR(A,B)

en-mesa(A)

sujeto(A)DEJAR(A)

E0E

sujeto(A)DEJAR(A)en-mesa(A)

0

LEVANTAR(A)

LEVANTAR(A)

en-mesa(A)DEJAR(A)sujeto(A) E0

LEVANTAR(A)

en-mesa(A)DEJAR(A)sujeto(A)

E0

metabucle de

X

brazo-libreen-mesa(A) libre(A)

en-mesa(A) libre(A)brazo-librebrazo-libre

X

X X

X X

en-mesa(A)libre(A)

...

libre(A) brazo-libre encima(A,B)QUITAR(A,B)sujeto(A)DEJAR(A)en-mesa(A)

E0

E1sujeto(A)DEJAR(A)en-mesa(A) B

A

E1E2en-mesa(A)

B A

E2

Ejemplo de STRIPS

A

AB

Estado inicial (E )0 Metas

en-mesa(A) E0

en-mesa(A)DEJAR(A) E0

sujeto(A)DEJAR(A)en-mesa(A)

E0

E0

en-mesa(A)

sujeto(A)DEJAR(A)

QUITAR(A,A)

QUITAR(A,B)

en-mesa(A)

sujeto(A)DEJAR(A)

E0E

sujeto(A)DEJAR(A)en-mesa(A)

0

LEVANTAR(A)

LEVANTAR(A)

en-mesa(A)DEJAR(A)sujeto(A) E0

LEVANTAR(A)

en-mesa(A)DEJAR(A)sujeto(A)

E0

metabucle de

X

brazo-libreen-mesa(A) libre(A)

en-mesa(A) libre(A)brazo-librebrazo-libre

X

X X

X X

en-mesa(A)libre(A)

...

libre(A) brazo-libre encima(A,B)QUITAR(A,B)sujeto(A)DEJAR(A)en-mesa(A)

E0

E1sujeto(A)DEJAR(A)en-mesa(A) B

A

E1E2en-mesa(A)

B A

E2

Ejemplo de STRIPS

A

AB

Estado inicial (E )0 Metas

en-mesa(A) E0

en-mesa(A)DEJAR(A) E0

sujeto(A)DEJAR(A)en-mesa(A)

E0

E0

en-mesa(A)

sujeto(A)DEJAR(A)

QUITAR(A,A)

QUITAR(A,B)

en-mesa(A)

sujeto(A)DEJAR(A)

E0E

sujeto(A)DEJAR(A)en-mesa(A)

0

LEVANTAR(A)

LEVANTAR(A)

en-mesa(A)DEJAR(A)sujeto(A) E0

LEVANTAR(A)

en-mesa(A)DEJAR(A)sujeto(A)

E0

metabucle de

X

brazo-libreen-mesa(A) libre(A)

en-mesa(A) libre(A)brazo-librebrazo-libre

X

X X

X X

en-mesa(A)libre(A)

...

libre(A) brazo-libre encima(A,B)QUITAR(A,B)sujeto(A)DEJAR(A)en-mesa(A)

E0

E1sujeto(A)DEJAR(A)en-mesa(A) B

A

E1E2en-mesa(A)

B A

E2

Ejemplo de STRIPS

A

AB

Estado inicial (E )0 Metas

en-mesa(A) E0

en-mesa(A)DEJAR(A) E0

sujeto(A)DEJAR(A)en-mesa(A)

E0

E0

en-mesa(A)

sujeto(A)DEJAR(A)

QUITAR(A,A)

QUITAR(A,B)

en-mesa(A)

sujeto(A)DEJAR(A)

E0E

sujeto(A)DEJAR(A)en-mesa(A)

0

LEVANTAR(A)

LEVANTAR(A)

en-mesa(A)DEJAR(A)sujeto(A) E0

LEVANTAR(A)

en-mesa(A)DEJAR(A)sujeto(A)

E0

metabucle de

X

brazo-libreen-mesa(A) libre(A)

en-mesa(A) libre(A)brazo-librebrazo-libre

X

X X

X X

en-mesa(A)libre(A)

...

libre(A) brazo-libre encima(A,B)QUITAR(A,B)sujeto(A)DEJAR(A)en-mesa(A)

E0

E1sujeto(A)DEJAR(A)en-mesa(A) B

A

E1E2en-mesa(A)

B A

E2

Ejemplo de STRIPS

A

AB

Estado inicial (E )0 Metas

en-mesa(A) E0

en-mesa(A)DEJAR(A) E0

sujeto(A)DEJAR(A)en-mesa(A)

E0

E0

en-mesa(A)

sujeto(A)DEJAR(A)

QUITAR(A,A)

QUITAR(A,B)

en-mesa(A)

sujeto(A)DEJAR(A)

E0E

sujeto(A)DEJAR(A)en-mesa(A)

0

LEVANTAR(A)

LEVANTAR(A)

en-mesa(A)DEJAR(A)sujeto(A) E0

LEVANTAR(A)

en-mesa(A)DEJAR(A)sujeto(A)

E0

metabucle de

X

brazo-libreen-mesa(A) libre(A)

en-mesa(A) libre(A)brazo-librebrazo-libre

X

X X

X X

en-mesa(A)libre(A)

...

libre(A) brazo-libre encima(A,B)QUITAR(A,B)sujeto(A)DEJAR(A)en-mesa(A)

E0

E1sujeto(A)DEJAR(A)en-mesa(A) B

A

E1E2en-mesa(A)

B A

E2

Ejemplo de STRIPS

A

AB

Estado inicial (E )0 Metas

en-mesa(A) E0

en-mesa(A)DEJAR(A) E0

sujeto(A)DEJAR(A)en-mesa(A)

E0

E0

en-mesa(A)

sujeto(A)DEJAR(A)

QUITAR(A,A)

QUITAR(A,B)

en-mesa(A)

sujeto(A)DEJAR(A)

E0E

sujeto(A)DEJAR(A)en-mesa(A)

0

LEVANTAR(A)

LEVANTAR(A)

en-mesa(A)DEJAR(A)sujeto(A) E0

LEVANTAR(A)

en-mesa(A)DEJAR(A)sujeto(A)

E0

metabucle de

X

brazo-libreen-mesa(A) libre(A)

en-mesa(A) libre(A)brazo-librebrazo-libre

X

X X

X X

en-mesa(A)libre(A)

...

libre(A) brazo-libre encima(A,B)QUITAR(A,B)sujeto(A)DEJAR(A)en-mesa(A)

E0

E1sujeto(A)DEJAR(A)en-mesa(A) B

A

E1

E2en-mesa(A)

B A

E2

Ejemplo de STRIPS

A

AB

Estado inicial (E )0 Metas

en-mesa(A) E0

en-mesa(A)DEJAR(A) E0

sujeto(A)DEJAR(A)en-mesa(A)

E0

E0

en-mesa(A)

sujeto(A)DEJAR(A)

QUITAR(A,A)

QUITAR(A,B)

en-mesa(A)

sujeto(A)DEJAR(A)

E0E

sujeto(A)DEJAR(A)en-mesa(A)

0

LEVANTAR(A)

LEVANTAR(A)

en-mesa(A)DEJAR(A)sujeto(A) E0

LEVANTAR(A)

en-mesa(A)DEJAR(A)sujeto(A)

E0

metabucle de

X

brazo-libreen-mesa(A) libre(A)

en-mesa(A) libre(A)brazo-librebrazo-libre

X

X X

X X

en-mesa(A)libre(A)

...

libre(A) brazo-libre encima(A,B)QUITAR(A,B)sujeto(A)DEJAR(A)en-mesa(A)

E0

E1sujeto(A)DEJAR(A)en-mesa(A) B

A

E1E2en-mesa(A)

B A

E2

Problema: linealidad

• STRIPS asume independencia entre las metas, por lo quelas trata linealmente: hasta que no encuentra un plan paraobtener una meta, no pasa a las siguientes metas

• No funciona cuando hay recursos limitados, por lo que es:• incompleta: existe solucion, pero no la encuentra

Problema del cohete chinoBA A B

C

MarteTierra

Estado inicial

Marte

Metas

• no optima: no encuentra la solucion optima

Anomalıa de SussmanEstado inicial Metas

A

C

B

A

B

C

Planificacion no lineal

• Consideracion de varias metas al mismo tiempo• Pensar con un conjunto de metas: no es necesario generar

completamente un plan de una meta para estudiar al mismotiempo el resto

...

en−aeropuerto(Pepe,Barajas)

coger−taxi(Pepe,Casa−Pepe,Barajas)

en−aeropuerto(Maletas−Pepe,Barajas)

descargar−maletas(Maletas−Pepe,x,Barajas)

• Expandir un grafo en el que las metas (y los operadores) sonnodos y se pueden seleccionar las metas en cualquier orden

en(Maletas−Pepe,Casa−Pepe)

en(Pepe,Casa−Pepe)

coger−taxi(Pepe,Casa−Pepe,Barajas)

descargar−maletas(Maletas−Pepe,x,Barajas)

en−aeropuerto(Maletas−Pepe,Barajas)

en−aeropuerto(Pepe,Barajas)Estado inicial Metas

PRODIGY

• Analisis medios-fines con busqueda hacia atras(bidireccional) [Veloso et al., 1995]

• Las metas se tratan como un conjunto• Decisiones:

• Meta: que meta escoger• Operador: que operador utilizar para obtener una meta• Instanciacion de operador: que valores asignar a las

variables del operador• Ejecutar un operador o trabajar en alguna submeta

• Se puede definir conocimiento de control explıcito paratomar las decisiones

Arbol de busqueda generico de PRODIGY

operador o trabajar enuna submeta

1 g

1

1 b

1 g

4 3

2

1

o

meta meta

meta meta

metaElige una

Elige unoperador

Elige unainstanciación

Decide si ejecutar un

ejecutar operador submeta

submetaejecutar operador

operador

instanciacióninstanciación

operador

Algunas definiciones

• Una meta esta pendiente si es una precondicion de unoperador seleccionado (incluyendo las metas iniciales) queno es cierta en el estado actual

• Un operador es aplicable cuando todas sus precondicionesson ciertas en el estado actual

• Operadores relevantes a una meta son aquellos que, si seejecutara una de sus instanciaciones, conseguirıa que lameta fuera cierta en el estado

• Camino sin salida• Bucle de meta• Todas las opciones han sido caminos sin salida• No hay ninguna opcion• Se ha sobrepasado el lımite de profundidad o tiempo

Algoritmo de planificacion de PRODIGY4.0

Prodigy (E ,M,O, C)

Mientras que las metasM no sean ciertas en el estado E Yno se hayan sobrepasado los recursos lımite (tiempo o nodos) Yno se hayan explorado todos los posibles nodos

Si hay un camino sin salida, entonces retrocederSi no, Calcular el conjunto de operadores aplicables, A

Elegir una meta M ∈M o un operador A ∈ A de acuerdo a CSi se ha seleccionado M, entonces:

Generar el conjunto O′ ∈ O de los operadores relevantesElegir un operador O ∈ O′, de acuerdo a CGenerar el conjunto de instanciaciones del operador O, Oi

Elegir un operador instanciado Oi ∈ Oi , de acuerdo a CSi no, (se ha seleccionado un A):

Asignar E al estado despues de Ejecutar ACalcular el conjunto de metas pendientesM

Ejemplo de PRODIGY

A

B

B

A

MetasEstado inicial

done

*finish*

en−mesa(A) encima(B,A)

dejar

dejar(A)

sujeto(A)

levantar

encima(B,A)

quitar

QUITAR(A,B)

encima(B,A)DEJAR(A)

encima(B,A)

poner

sujeto(B)

poner(B,A)libre(A)

quitarlevantar

LEVANTAR(B)

PONER(B,A)

*finish*()

*FINISH*()

encima(B,A)

levantar(A)

en−mesa(A)

brazo−librelibre(A),

encima(B,A)

quitar(A,B) brazo−libre

libre(B) levantar(B)

encima(A,B),libre(A),

en−mesa(B),brazo−libre,

Arquitectura de PRODIGY

Aprendizaje de conocimientode dominio

Aprendizaje de conocimientode control para mejorar la

calidad

Aprendizaje de conocimientode control para mejorar la eficiencia

Planificador

ApprenticeExperiment

Observe Hamlet

Quality

Prodigy/EBL Static Dynamic Alpine Prodigy/Analogy

Indice

1 Introduccion

2 Planificacion clasicaEspacio de estadosPlanes de orden parcial

3 Planificacion neoclasica

4 Heurıstica

5 Otras cuestiones

Definiciones

B A

B

D

Estado inicial

C

A

D

Metas: en−mesa(A), encima(B,D)

• Conjunto de operadores (acciones), Λ

quitar(x , y),poner(x , y),levantar(x),dejar(x)

• Conjunto no ordenado de operadores instanciados queintervienen en el plan, A

A ={A0,A∞,A1=levantar(B),A2=dejar(A),A3=quitar(A,C),A4=poner(B,D)}

• Operador inicial, A0, es aquel que tiene comopost-condiciones el estado inicial

• Operador final, A∞, es aquel que tiene como precondicioneslas metas del problema

Definiciones II

• Conjunto de restricciones de orden entre los operadores deun plan, O

O ={(A1 < A4), (A3 < A2)}

• Conjunto de enlaces causales entre operadores, L: li ∈ Les de la forma Ap

p−→ Ac , donde Ap es la accion productora,p es el predicado que anade, y Ac es la accion consumidora

L = {l1 = A1sujeto(x)−→ A4, l2 = A3

sujeto(y)−→ A2,

l3 = A2brazo-libre−→ A1, l4 = A4

brazo-libre−→ A3}

• Conjunto de asignaciones validas, B: bi = (u, v) y u es unavariable

B = {(x ,B), (y ,A), (z,C), (r ,D)}

Definiciones III

• Plan, < A,O,L,B >: orden parcial de operadoresinstanciados

• Agenda, AG: conjunto de pares < m,Ac >, donde m es unameta, y Ac es la accion que la necesita

UCPOP. Plan parcial

CBA

D

AB

B

C

A

CBA

PICK−UP(C)

UNSTACK(A,B)

STACK(C,B)

PUT−DOWN(A)

C

Amenazas (threats)

• Si existe un enlace causal li = App−→ Ac ∈ L, incluir un operador

instanciado Aa en el plan causa una amenaza a li cuando un literal raparece en la lista de borrados de Aa, r equipara con p de acuerdo conB y ok = (Ap < Aa < Ac) es consistente.

A5=levantar(t) amenaza a l3 y a l4 por borrar brazo-libre

• Formas de resolver la amenaza:

• Retrasar (demotion): O ← O∪ {(Aa < Ap)}Anadir (A5 < A2) y (A5 < A4) a O

• Adelantar (promotion): O ← O∪ {(Ac < Aa)}Anadir (A1 < A5) y (A3 < A5) a O

• Separar (separation): B ← B∪ {(u, v)} (no aplicable enUCPOP)

Inicializacion

• A ={A0,A∞}

A0precondiciones:anadidos: encima(A,C),libre(A),en-mesa(C),en-mesa(B),

libre(B),en-mesa(D),libre(D),brazo-libreborrados:A∞precondiciones: en-mesa(A),encima(B,D)anadidos:borrados:

Inicializacion

• O={(A0 < A∞)}• L,B = φ

• AG = {< mi ,A∞ >| mi ∈M}

AG = {< en −mesa(A),A∞ >,< encima(B,D),A∞ >}

Algoritmo UCPOP (< A,O,L,B >,AG,Λ)

1. Si AG = φ, devolver < A,O,L,B >2. Seleccionar un g =< m,Ac > de AG;

Si existe un enlace causal Ap∼m−→ Ac , devolver fallo

3. Si existe un operador Ap ∈ A o uno instanciado de Λ,que anada m′, y Ap < Ac sea consistente con O ym′ unifique con m mediante σ, teniendo en cuenta a B

Entonces L ← L∪{Apm−→ Ac}; B ← B ∪ σ; O ← O∪{(Ap < Ac)};

Si Ap 6∈ A Entonces A ← A∪{Ap};Para cada p precondicion de Ap

AG← AG∪{< pσ,Ap >};O ← O∪{(A0 < Ap), (Ap < A∞)}

Si no, devolver fallo4. Para cada lk = (Ai

p−→ Aj ) ∈ L y para cada Aa que amenace a lk , elegira) Adelantar: si es consistente, O ← O∪{(Aj < Aa)} ob) Retrasar: si es consistente, O ← O∪{(Aa < Ai )}

5. Si B es consistente, devolver UCPOP(< A,O,L,B >,AG,Λ)Si no, devolver fallo

Ejemplo

B A

B

D

Estado inicial

C

A

D

Metas: en−mesa(A), encima(B,D)

Ejemplo

encima(A,C)libre(A)en−mesa(C)en−mesa(B)libre(B)en−mesa(D)libre(D)brazo−libre

A0 A 8

en−mesa(A)

encima(B,D)

Arbol de búsqueda

Ejemplo

• A ={A0,A∞}• O ={(A0 < A∞)}• L = φ

• B = φ

Ejemplo

encima(A,C)libre(A)en−mesa(C)en−mesa(B)libre(B)en−mesa(D)libre(D)brazo−libre

A0 A 8

en−mesa(A)

encima(B,D)

dejar(A)sujeto(A)

Arbol de búsqueda

dejar(A)

Ejemplo

• A ={A0,A∞,dejar(A)}• O ={(A0 < A∞), (dejar(A)< A∞), (A0 <dejar(A))}

• L ={(dejar(A)en-mesa(A)−→ A∞)}

• B = φ

Ejemplo

encima(A,C)libre(A)en−mesa(C)en−mesa(B)libre(B)en−mesa(D)libre(D)brazo−libre

A0

A 8

en−mesa(A)

encima(B,D)

Arbol de búsqueda

dejar(A)

dejar(A)sujeto(A)

poner(B,D)sujeto(B)

libre(D)

poner(B,D)

Ejemplo

• A ={A0,A∞,dejar(A),poner(B,D)}• O ={(A0 < A∞), (dejar(A)< A∞), (A0 <dejar(A)),

(poner(B,D)< A∞), (A0 <poner(B,D))}

• L ={(dejar(A)en-mesa(A)−→ A∞),(poner(B,D)

encima(B,D)−→ A∞)}

• B = φ

Ejemplo

A0 A 8

Arbol de búsqueda

dejar(A)

poner(B,D)

levantar(A) quitar(A,<y>)

dejar(A)sujeto(A)

poner(B,D)sujeto(B)

libre(D)

levantar(A)

en−mesa(A)

encima(B,D)

encima(A,C)libre(A)en−mesa(C)en−mesa(B)libre(B)en−mesa(D)libre(D)brazo−libre

libre(A)

brazo−libre

en−mesa(A)

Ejemplo

• A ={A0,A∞,dejar(A),poner(B,D),levantar(A)}• O ={(A0 < A∞), (dejar(A)< A∞), (A0 <dejar(A)),

(poner(B,D)< A∞), (A0 <poner(B,D)),(levantar(A)< A∞), (A0 <levantar(A)),(levantar(A)<dejar(A))}

• L ={(dejar(A)en-mesa(A)−→ A∞),(poner(B,D)

encima(B,D)−→ A∞),

(levantar(A)sujeto(A)−→ dejar(A))}

• B = φ

Ejemplo

A0 A 8

Arbol de búsqueda

dejar(A)

poner(B,D)

levantar(A) quitar(A,<y>)

dejar(A)sujeto(A)

poner(B,D)sujeto(B)

libre(D)

levantar(A)

en−mesa(A)

encima(B,D)

encima(A,C)libre(A)en−mesa(C)en−mesa(B)libre(B)en−mesa(D)libre(D)brazo−libre

libre(A)

brazo−libre

en−mesa(A)

La unica opcion para anadir en-mesa(A) para levantar(A) serıadejar(A) pero generarıa inconsistencia en O

Ejemplo

encima(A,C)libre(A)en−mesa(C)en−mesa(B)libre(B)en−mesa(D)libre(D)brazo−libre

A0

A 8

en−mesa(A)

encima(B,D)

dejar(A)sujeto(A)

poner(B,D)sujeto(B)

libre(D)

quitar(A,<y>)

encima(A,<y>)

libre(A)

brazo−libre

(<y>,C)A

0

A0

A0

poner(A,<z>)

Arbol de búsqueda

dejar(A)

poner(B,D)

levantar(A) quitar(A,<y>)

Ejemplo

• A ={A0,A∞,dejar(A),poner(B,D),quitar(A,< y >)}• O ={(A0 < A∞), (dejar(A)< A∞), (A0 <dejar(A)),

(poner(B,D)< A∞), (A0 <poner(B,D)),(quitar(A,< y >)< A∞), (A0 <quitar(A,< y >)),(quitar(A,< y >)<dejar(A))}

• L ={(dejar(A)en-mesa(A)−→ A∞),(poner(B,D)

encima(B,D)−→ A∞),

(quitar(A,< y >)sujeto(A)−→ dejar(A)),

(A0encima(A,<y>)

−→ quitar(A,< y >)),(A0libre(A)−→ quitar(A,< y >)),

(A0brazo-libre−→ quitar(A,< y >))}

• B ={(< y >,C)}

Ejemplo

A0

A0

A0

A0

A 8

poner(A,<z>)

dejar(A)

poner(B,D)

levantar(A) quitar(A,<y>)

quitar(B,<t>)levantar(B)

Arbol de búsqueda

quitar(A,<y>)

encima(A,<y>)

libre(A)

brazo−libre

(<y>,C)

levantar(B)

encima(A,C)libre(A)en−mesa(C)en−mesa(B)libre(B)en−mesa(D)libre(D)brazo−libre

libre(B)

brazo−libre

en−mesa(B)

dejar(A)sujeto(A)

poner(B,D)sujeto(B)

libre(D)

en−mesa(A)

encima(B,D)

Ejemplo

• A ={A0,A∞,dejar(A),poner(B,D),quitar(A,< y >),levantar(B)}• O ={(A0 < A∞), (dejar(A)< A∞), (A0 <dejar(A)),(poner(B,D)< A∞),

(A0 <poner(B,D)),(quitar(A,< y >)< A∞), (A0 <quitar(A,< y >)),(quitar(A,< y >)<dejar(A)),(levantar(B)< A∞), (A0 <levantar(B)),(levantar(B)<poner(B,D)),(quitar(A,< y >)<levantar(B))}

• L ={(dejar(A)en-mesa(A)−→ A∞),(poner(B,D)

encima(B,D)−→ A∞),

(quitar(A,< y >)sujeto(A)−→ dejar(A)),(A0

encima(A,<y>)−→ quitar(A,< y >)),

(A0libre(A)−→ quitar(A,< y >)),(A0

brazo-libre−→ quitar(A,< y >)),

(levantar(B)sujeto(B)−→ poner(B,D))}

• B ={(< y >,C)}

Amenazas: levantar(B) podrıa situarse entre A0 yquitar(A,< y >), borrando brazo-libreSolucion de amenaza: ordenar quitar(A,< y >) antes que levantar(B)

Ejemplo

A0

A0

A0

A0

A0

A0 A

0A 8

en−mesa(A)

encima(B,D)A0

poner(A,<z>)

dejar(A)

poner(B,D)

levantar(A) quitar(A,<y>)

quitar(B,<t>)levantar(B)

quitar(A,<y>)

encima(A,<y>)

libre(A)

brazo−libre

(<y>,C)

levantar(B)

encima(A,C)libre(A)en−mesa(C)en−mesa(B)libre(B)en−mesa(D)libre(D)brazo−libre

libre(B)

brazo−libre

en−mesa(B)

dejar(A)sujeto(A)

poner(B,D)sujeto(B)

libre(D)

Arbol de búsqueda

Amenazas: quitar(A,< y >) podrıa situarse entre A0 ylevantar(B), borrando brazo-libreSolucion de amenaza: no hay

Ejemplo

• A ={A0,A∞,dejar(A),poner(B,D),quitar(A,< y >),levantar(B)}• O ={(A0 < A∞), (dejar(A)< A∞), (A0 <dejar(A)), (poner(B,D)< A∞),

(A0 <poner(B,D)),(quitar(A,< y >)< A∞), (A0 <quitar(A,< y >)),(quitar(A,< y >)<dejar(A)),(levantar(B)< A∞), (A0 <levantar(B)),(levantar(B)<poner(B,D)),(quitar(A,< y >)<levantar(B))}

• L ={(dejar(A)en-mesa(A)−→ A∞),(poner(B,D)

encima(B,D)−→ A∞),

(quitar(A,< y >)sujeto(A)−→ dejar(A)),

(A0encima(A,<y>)

−→ quitar(A,< y >)),(A0libre(A)−→ quitar(A,< y >)),

(A0brazo-libre−→ quitar(A,< y >)),(levantar(B)

sujeto(B)−→ poner(B,D)),

(A0libre(D)−→ poner(B,D)),(A0

libre(B)−→ levantar(B)),

(A0en-mesa(B)−→ levantar(B)),(A0

brazo-libre−→ levantar(B))}• B ={(< y >,C)}

Ejemplo

A0

A0

A0

A0

A0

A0 A

0A 8

en−mesa(A)

encima(B,D)A0

poner(A,<z>)

dejar(A)

poner(B,D)

levantar(A) quitar(A,<y>)

quitar(B,<t>)levantar(B)

quitar(A,<y>)

encima(A,<y>)

libre(A)

brazo−libre

(<y>,C)

levantar(B)

encima(A,C)libre(A)en−mesa(C)en−mesa(B)libre(B)en−mesa(D)libre(D)brazo−libre

libre(B)

brazo−libre

en−mesa(B)

dejar(A)sujeto(A)

poner(B,D)sujeto(B)

libre(D)

Arbol de búsqueda

dejar(A)

Solucion del ejemplo

• A ={A0,A∞,dejar(A),poner(B,D),quitar(A,< y >),levantar(B)}• O ={(A0 < A∞), (dejar(A)< A∞), (A0 <dejar(A)),

(poner(B,D)< A∞), (A0 <poner(B,D)),(quitar(A,< y >)< A∞),(A0 <quitar(A,< y >)),(quitar(A,< y >)<dejar(A)),(levantar(B)< A∞), (A0 <levantar(B)),(levantar(B)<poner(B,D)),(quitar(A,< y >)<levantar(B)),(dejar(A)<levantar(B))}

• L ={(dejar(A)en-mesa(A)−→ A∞),(poner(B,D)

encima(B,D)−→ A∞),

(quitar(A,< y >)sujeto(A)−→ dejar(A)),(A0

encima(A,<y>)−→ quitar(A,< y >)),

(A0libre(A)−→ quitar(A,< y >)),(A0

brazo-libre−→ quitar(A,< y >)),

(levantar(B)sujeto(B)−→ poner(B,D)),(A0

libre(D)−→ poner(B,D)),

(A0libre(B)−→ levantar(B)),(A0

en-mesa(B)−→ levantar(B)),

(dejar(A)brazo-libre−→ levantar(B))}• B ={(< y >,C)}

Mas informacion en

• Libros: [Allen et al., 1990,Ghallab et al., 2004]

• Otras referencias: [Fikes and Nilsson, 1971,Newell et al., 1972,Veloso et al., 1995,Weld, 1994]

Indice

1 Introduccion

2 Planificacion clasica

3 Planificacion neoclasicaGrafos de planesPlanificacion SAT

4 Heurıstica

5 Otras cuestiones

Indice

1 Introduccion

2 Planificacion clasica

3 Planificacion neoclasicaGrafos de planesPlanificacion SAT

4 Heurıstica

5 Otras cuestiones

Grafos de planes. GRAPHPLAN

• A mediados de los 90, se produce una revolucion enplanificacion: GRAPHPLAN [Blum and Furst, 1995]

• Se basa en grafos de planificacion, que son estructuras querepresentan de forma completamente instanciada laresolucion del problema

• Dos fases:• Generacion de alcanzabilidad: niveles alternados de

proposicion y accion• Busqueda de plan valido: busqueda hacia atras de un

posible plan paralelo

Fases del algoritmo

Dos fases• Expansion del grafo: extiende un grafo del plan hasta que

las condiciones necesarias para existencia de plan secumplen• alterna niveles de proposicion y accion• se calculan restricciones binarias de “mutex”• termina cuando todas las metas aparecen como no mutex

en el mismo nivel de proposicion• Extraccion de la solucion: busqueda hacia atras

• Se comienza la busqueda de que acciones concretasasignar a cada meta / submeta

• Si no se logra una asignacion valida, se generan masniveles de proposiciones / acciones y se repite el proceso

Grafo de planificacion

0

at-truck-Aat-truck-Bat-package-Aat-package-Bin-package

load-truck-Aunload-truck-Aload-truck-Bunload-truck-Bdrive-truck-A-Bdrive-truck-B-A

P

0A

1P

1A PP

2 2 3PA

Grafo de planificacion

0

at-truck-Aat-truck-Bat-package-Aat-package-Bin-package

load-truck-Aunload-truck-Aload-truck-Bunload-truck-Bdrive-truck-A-Bdrive-truck-B-A

P0

A

1P

1A PP

2 2 3PA

Grafo de planificacion

0

at-truck-Aat-truck-Bat-package-Aat-package-Bin-package

load-truck-Aunload-truck-Aload-truck-Bunload-truck-Bdrive-truck-A-Bdrive-truck-B-A

P0

A1

P

1A PP

2 2 3PA

Grafo de planificacion

0

at-truck-Aat-truck-Bat-package-Aat-package-Bin-package

load-truck-Aunload-truck-Aload-truck-Bunload-truck-Bdrive-truck-A-Bdrive-truck-B-A

P0

A1

P1

A

PP2 2 3

PA

Grafo de planificacion

0

at-truck-Aat-truck-Bat-package-Aat-package-Bin-package

load-truck-Aunload-truck-Aload-truck-Bunload-truck-Bdrive-truck-A-Bdrive-truck-B-A

P0

A1

P1

A PP2

2 3PA

Grafo de planificacion

0

at-truck-Aat-truck-Bat-package-Aat-package-Bin-package

load-truck-Aunload-truck-Aload-truck-Bunload-truck-Bdrive-truck-A-Bdrive-truck-B-A

P0

A1

P1

A PP2 2 3

PA

Grafo de planificacion

0

at-truck-Aat-truck-Bat-package-Aat-package-Bin-package

load-truck-Aunload-truck-Aload-truck-Bunload-truck-Bdrive-truck-A-Bdrive-truck-B-A

P0

A1

P1

A PP2 2 3

PA

Mutex

• Dos acciones son mutex si:• una borra una precondicion o efecto positivo de la otra

levantar(A) y quitar(C,B)

• una precondicion de una accion es mutex con otraprecondicion de la otra accion

• Dos proposiciones son mutex si:• cada accion que consiga la primera proposicion es mutex

con alguna accion que consiga la segunda

Ejemplo de repeticion de expansion de grafo

9A

8A

7A

6A

A5

11A

10A

Accionesnivel k-1

P3

P6

P5

P4

P1

P2

Proposicionesnivel k-1

4A

3A

2A

1A

Accionesnivel k

G1

G2

G3

G4

Proposicionesnivel k

Ejemplo de repeticion de expansion de grafo

9A

8A

7A

6A

A5

11A

10A

Accionesnivel k-1

P3

P6

P5

P4

P1

P2

Proposicionesnivel k-1

4A

3A

2A

1A

Accionesnivel k

G1

G2

G3

G4

Proposicionesnivel k

Ejemplo de repeticion de expansion de grafo

9A

8A

7A

6A

A5

11A

10A

Accionesnivel k-1

P3

P6

P5

P4

P1

P2

Proposicionesnivel k-1

4A

3A

2A

1A

Accionesnivel k

G1

G2

G3

G4

Proposicionesnivel k

Ejemplo de repeticion de expansion de grafo

9A

8A

7A

6A

A5

11A

10A

Accionesnivel k-1

P3

P6

P5

P4

P1

P2

Proposicionesnivel k-1

4A

3A

2A

1A

Accionesnivel k

G1

G2

G3

G4

Proposicionesnivel k

Ejemplo de repeticion de expansion de grafo

9A

8A

7A

6A

A5

11A

10A

Accionesnivel k-1

P3

P6

P5

P4

P1

P2

Proposicionesnivel k-1

4A

3A

2A

1A

Accionesnivel k

G1

G2

G3

G4

Proposicionesnivel k

Ejemplo de repeticion de expansion de grafo

9A

8A

7A

6A

A5

11A

10A

Accionesnivel k-1

P3

P6

P5

P4

P1

P2

Proposicionesnivel k-1

4A

3A

2A

1A

Accionesnivel k

G1

G2

G3

G4

Proposicionesnivel k

Ejemplo de repeticion de expansion de grafo

9A

8A

7A

6A

A5

11A

10A

Accionesnivel k-1

P3

P6

P5

P4

P1

P2

Proposicionesnivel k-1

4A

3A

2A

1A

Accionesnivel k

G1

G2

G3

G4

Proposicionesnivel k

Ejemplo de repeticion de expansion de grafo

9A

8A

7A

6A

A5

11A

10A

Accionesnivel k-1

P3

P6

P5

P4

P1

P2

Proposicionesnivel k-1

4A

3A

2A

1A

Accionesnivel k

G1

G2

G3

G4

Proposicionesnivel k

Ejemplo de repeticion de expansion de grafo

9A

8A

7A

6A

A5

11A

10A

Accionesnivel k-1

P3

P6

P5

P4

P1

P2

Proposicionesnivel k-1

4A

3A

2A

1A

Accionesnivel k

G1

G2

G3

G4

Proposicionesnivel k

Otras cuestiones

• Es completo y sound (el plan generado es valido)• Obtiene el plan paralelo optimo en terminos de numero de

pasos de ejecucion paralelo• No asegura encontrar el optimo en terminos de numero de

operadores• Memos: se guarda la informacion de que ha fallado en ese

nivel para cuando vuelva• Tiempo: se puede mejorar el algoritmo para tener en cuenta

la duracion de las acciones

Eficiencia

• Se pueden implementar mecanismos que mejoran laeficiencia:• un vector de bits para cada estado• cuatro vectores de bits para cada accion instanciada (dos

para precondiciones y dos para efectos)• se puede guardar para cada proposicion y accion la primera

vez que aparecio en el grafo• se puede guardar para cada mutex el primer nivel donde

desaparecio• se pueden eliminar las proposiciones que no cambian su

valor

Otros planificadores

• IPP: [Koehler et al., 1997]

• STAN: [Long and Fox, 1999]

• LPG: [Gerevini et al., 2003]

• TGP [Smith and Weld, 1999]

• Como un CSP: [Kambhampati, 2000]

Mas informacion en

• Libro: [Ghallab et al., 2004]

• Otros sistemas: STAN [Long and Fox, 1999], IPP [Koehler etal., 1997], LPG [Gerevini et al., 2003]

• Visto como CSP dinamico: [Kambhampati, 2000]

• Mejorandolo con aprendizaje: [Kambhampati, 1999]

Indice

1 Introduccion

2 Planificacion clasica

3 Planificacion neoclasicaGrafos de planesPlanificacion SAT

4 Heurıstica

5 Otras cuestiones

SATPLAN

• El que la planificacion sea PSpace-Complete es ciertocuando la longitud de los planes puede serexponencialmente larga

• Sin embargo, si se trata de encontrar un plan que tengamenos de k pasos en la solucion, la dificultad se queda enNP-completo

• El problema se convierte en conocer “a priori” la longitud• Una solucion: busqueda binaria• Se convierte la planificacion a un problema de

satisfacibilidad de una formula logica (CNF) con unhorizonte n (longitud del plan)

• Se resuelve con una maquina SAT (WALKSAT, CHAFF, ...)• Si se encuentra la solucion, se para. Si no, se aumenta n y

se repite el proceso

Estados como formulas proposicionales

• Los estados se pueden representar como formulasproposicionales:

on-table(A)∧clear(B)

• Las formulas proposicionales tambien pueden representarconjuntos de estados:

(on-table(A)∧clear (B))∨(on-table (A)∧clear(C))

• La codificacion de los estados es directa. Sin embargo,algunos modelos no deseados pueden satisfacer lasformulas

• Ademas, las formulas no codifican la dinamica del sistema

Una posible codificacion

• A cada predicado instanciado se le anade el nivel en el que esta

en(obj1,aeropuerto1,1),en(obj1,aeropuerto1,2),...

• El estado inicial se representa como la conjuncion de todas lasproposiciones que son ciertas y todas las que son falsas en nivel 0

en(obj1,aeropuerto1,0),en(avion1,aeropuerto1,0),...

• Las metas se representan como la conjuncion de todas las proposicionesque deben ser ciertas y todas las que deben ser falsas en el instante n

en(obj1,oficina2,3),en(obj2,oficina1,3), ...

Estado inicial y metas

• El estado inicial se codifica como una conjuncion depredicados instanciados ciertos/falsos en en el momentoinicial ∧

f0 ∧∧∼ f0

• La meta se codifica como una conjuncion de predicadosinstanciados que deben ser ciertos en nivel n∧

f∈G

fn

Codificacion de acciones

• A cada accion instanciada se le anade el nivel en el que esta

cargar(obj1,avion1,aeropuerto1,1),cargar(obj1,avion1,aeropuerto1,2)

• Cada accion en el instante i necesita las precondiciones en el instante iy consigue los efectos en el instante i + 1

cargar(obj1,avion1,aeropuerto1,1) →en(obj1,aeropuerto1,1),en(avion1,aeropuerto1,1),dentro(obj1,avion1,2),∼en(obj1,aeropuerto1,2)

Transiciones de estado como formulas

• Por tanto, un modelo valido debe satisfacer esas formulasen todos los momentos de tiempo t :

µ={on-table(A,t)← true,clear(A,t)← true,arm-empty(t)← true,holding(A,t + 1)← true,on-table(A,t + 1)← false,clear(A,t + 1)← false,arm-empty(t + 1)← false}

• En general, por cada accion ai =< p+i ,p

−i ,e

+i ,e

−i >∈ A:∧

ai∈A

∧t∈[0,n−1]

ai,t → p+i,t ∧ p−i,t ∧ e+

i,t+1 ∧ e−i,t+1

Codificacion de acciones

• Se debe considerar tambien el problema de ejecutar dosacciones mutex al mismo tiempo• Solo se permite la ejecucion de una accion en cada

momento de tiempo (planes secuenciales)∧t=[0,n−1]

∧ai∈A

ai,t →∧

aj∈A,aj 6=ai

∼ aj,t

• Se calculan todos los mutexes entre acciones, M(ai ,aj ) y:∧t=[0,n−1]

∧ai∈A

ai,t →∧

aj∈A,M(aj ,ai )

∼ aj,t

Planificacion como satisfacibilidad

• Dos tipos de algoritmos:• basados en Davis-Putnam: completos y validos• estocasticos (como WALKSAT): validos, pero no completos

Problemas SAT

• SAT: problemas de satisfacibilidad logica• Dada: una formula arbitraria en logica proposicional (en

FNC)• Determinar: una asignacion de valor a las proposiciones

que haga cierta la formula• Algoritmo:

1 Estado-inicial es conjunto de asignaciones nula2 Seleccionar una proposicion y generar dos sucesores del

nodo actual: asignar verdadero a la proposicion y asignarfalso

3 Seleccionar por cual de los dos nodos seguir4 Sustituir el valor elegido por la proposicion en la formula

logica y simplificar5 Si la formula queda como verdadera, se termina6 Si la formula se hace falsa, se hace retroceso7 Si no, se vuelve a 2

Problemas SAT

v2-x( v ) 1-x x2 3-x( v ) 1-x x3 4-x( v v ) 1x 4x( v )v v v

1-x

1x4xx2 x3

3v )( x3 4-x( v )v v

FV

2-x x2 -x

2

X

V F

x x3 4x

F

4-x

X

V F

V

4x

4

v-x3 )v( -x43x

V

X

xx3

Problemas SAT

v2-x( v ) 1-x x2 3-x( v ) 1-x x3 4-x( v v ) 1x 4x( v )v v v

1-x

1x4xx2 x3

3v )( x3 4-x( v )v v

FV

2-x x2 -x

2

X

V F

x x3 4x

F

4-x

X

V F

V

4x

4

v-x3 )v( -x43x

V

X

xx3

Problemas SAT

v2-x( v ) 1-x x2 3-x( v ) 1-x x3 4-x( v v ) 1x 4x( v )v v v

1-x

1x4xx2 x3

3v )( x3 4-x( v )v v

FV

2-x x2 -x

2

X

V F

x x3 4x

F

4-x

X

V F

V

4x

4

v-x3 )v( -x43x

V

X

xx3

Problemas SAT

v2-x( v ) 1-x x2 3-x( v ) 1-x x3 4-x( v v ) 1x 4x( v )v v v

1-x

1x4xx2 x3

3v )( x3 4-x( v )v v

FV

2-x x2 -x

2

X

V F

x x3 4x

F

4-x

X

V F

V

4x

4

v-x3 )v( -x43x

V

X

xx3

Problemas SAT

v2-x( v ) 1-x x2 3-x( v ) 1-x x3 4-x( v v ) 1x 4x( v )v v v

1-x

1x4xx2 x3

3v )( x3 4-x( v )v v

FV

2-x x2 -x

2

X

V F

x x3 4x

F

4-x

X

V F

V

4x

4

v-x3 )v( -x43x

V

X

xx3

Mas informacion en

• Idea inicial: [Kautz and Selman, 1992]

• Tecnicas: SATPLAN [Kautz and Selman, 1996],BLACKBOX [Kautz and Selman, 1999]

Indice

1 Introduccion

2 Planificacion clasica

3 Planificacion neoclasica

4 HeurısticaPlanificacion heurısticaRedes de tareas jerarquicasConocimiento de controlAprendizaje automatico

5 Otras cuestiones

Indice

1 Introduccion

2 Planificacion clasica

3 Planificacion neoclasica

4 HeurısticaPlanificacion heurısticaRedes de tareas jerarquicasConocimiento de controlAprendizaje automatico

5 Otras cuestiones

Heurısticas

• Tipos de heurısticas• Independientes de dominio: validas para cada dominio• Independientes de dominio: disenadas especialmente para

un determinado dominio

• Las aplicaciones reales tienen una mezcla de ambas• Ideal general: definir heurısticas independientes del dominio

en lugar de funciones dependientes de dominio ad-hoc(como en N-puzzle o Sokoban)

Heurısticas como problemas relajados

• Origen de las heurısticas: soluciones optimas a problemasrelajados [Pearl, 1983]

• La relajacion se obtiene eliminando las listas deborrados [Bonet and Geffner, 2001]:

P = (O, I,G)→ P ′ = (O′, I,G)

O′ = {(pre(o),add(o), ∅)|(pre(o),add(o),del(o)) ∈ O}

• Una secuencia de acciones es un plan relajado si es unasolucion del problema relajado P ′ del problema original P:• Cuanto mas parecido sea P ′ a P, mas informada sera la

funcion heurıstica, h(· )• Cuanto mas simplificado sea P ′, mas facil sera computar

h(· )

Relajacion sobre la alcanzabilidad

• Distancia mınima del estado s al literal p: numero mınimode acciones requeridas para transitar de s a un estado quecontenga p

gs(p) =

{0 si p ∈ smın

o∈O(p)[1 + gs(pre(o))] en otro caso

• El coste gs(C) de un conjunto de literales puede definirsecomo:• Costes aditivos: g+

s (C) =∑r∈C

gs(r)

• Costes max: gmaxs (C) = max

r∈Cgs(r)

Ejemplo

encima(B,C)libre(B)brazo−libre

libre(B)brazo−libre

en−mesa(B)

libre(B)sujeto(C)

libre(C)en−mesa(C)brazo−libre

brazo−librelibre(B)encima(B,C)

sujeto(C)libre(B)

C

B

B

C

g(en−mesa(B)) = 2g(encima(C,B)) = 3

g+ = 2+3 = 5gmax = max {2,3} = 3

B

C

DEJAR(B)

LEVANTAR(B)QUITAR(B,C)

en−mesa(B) encima(C,B)

PONER(C,B)

sujeto(B)

QUITAR(C,x) LEVANTAR(C)

libre(C)

brazo−libreencima(C,x)

DEJAR(C) QUITAR(B,C)DEJAR(C,B)

sujeto(C)Estado inicial

Estado final

Estado inicial

Heuristic Search Planning (HSP) [Bonet and Geffner, 2001]

• HSP: emplea la funcion heurıstica hadd = g+s con un

algoritmo de escalada hacia adelante• HSP2: emplea la funcion heurıstica hadd con un algoritmo

BFS hacia adelante• Inconvenientes:

• El algoritmo consume el 80 % del tiempo en computar h(· )• No considera la interaccion entre operadores, es decir,

busca ordenaciones secuenciales suboptimas encontraposicion con las ordenaciones paralelas optimas

• Alternativas:• HSPr (empleando regresion), GRT (busqueda bidireccional),

HSP∗ (optimo)• Utilizar GRAPHPLAN para capturar la interaccion entre

operadores

GRAPHPLAN como heurıstica

• Sea P ′ = (O′, I,G) un problema relajado. GRAPHPLAN nomarcara ningun par de hechos o acciones comoexcluyentes, puesto que no existen eliminados

• GRAPHPLAN encuentra una solucion a P ′ en un tiempopolinomial en l (la mayor lista de anadidos), |I| y |O′|:〈O0,O1, . . . ,Om−1〉 donde Oi es el conjunto de operadoreselegidos en paralelo en el nivel i y m el primer nivel quecontiene todas las soluciones

• FF emplea la funcion heurıstica:

h(S) =∑

i=0,...,m−1

|Oi |

• Tıpicamente h(S) ≤ hadd

Fast-Forward (FF) [Hoffmann and Nebel, 2001]

• Tecnica de busqueda: EHC, un tipo de tecnica en escalada• Usa una funcion heurıstica h(S): GRAPHPLAN relajado• Prefiere las acciones que ayudan (helpful actions)• El computo de la heurıstica se mejora prefiriendo los

NO-OPs y las acciones con menor dificultad• En plateaux, elige una variante de busqueda en amplitud• Si falla y tiene mas tiempo, llama a un A∗

Ejemplo

Nivel 3

QUITAR (B,C)

LEVANTAR (C)

DEJAR (B)

B

C

encima(B,C)en−mesa(C)

libre(B)brazo−libre sujeto(B)

libre(C)

encima(B,C)en−mesa(C)

libre(B)brazo−libre sujeto(B)

libre(C)

encima(B,C)en−mesa(C)

libre(B)brazo−libre

encima(B,C)en−mesa(C)

libre(B)brazo−libre

libre(C)

sujeto(C)

sujeto(B)

libre(C)

en−mesa(B)libre(B)encima(C,B)

C

B

PONER (C,B)

Solucion = {QUITAR(B,C), <LEVANTAR(C),DEJAR(B)>, PONER(C,B)}

h(S) = 1 + 2 + 1 = 4

Nivel 0 Nivel 1

sujeto(C)

Nivel 2

en−mesa(B)

libre(B)

LPG [Gerevini et al., 2003]

• Construye un grafo de acciones• Niveles de proposicion y accion• Las metas y el estado inicial estan• Si una accion aparece, esta ligada a sus efectos y a sus

precondiciones• Tipos

• lineal: luego se puede transformar a un plan paralelo• paralelo

• Trata progresivamente los fallos• acciones mutex (si planes paralelos)• una accion con precondiciones no conseguidas• metas pendientes

Busqueda en LPG

• Heurıstica con parametros

h(n) = αhc(n) + βht (n) + γhs(n)

donde• hc(n): coste estimado hasta meta (coste solucion)• ht (n): tiempo estimado hasta meta (tiempo de ejecucion)• hs(n): busqueda estimada hasta meta (nodos)

• Busqueda estocastica en el espacio de planes con restart• Vecindad:

• anadir una accion• borrar una accion• (cambiar de orden dos acciones)

• Permite replanificacion: LPG-ADAPT [Fox et al., 2006]

Ejemplo de grafo de acciones temporal

Otros planificadores estocasticos

• Basados en RRT [LaValle and Kuffner, 2001]:RRTPLAN [Burfoot et al., 2006], BRT [Alcazar et al., 2011]

• Basados en busqueda local estocastica: Arvand [Nakhostand Muller, 2009]

Nueva generacion. Fast-Downward (FD)

• FAST-DOWNWARD [Helmert, 2006]

• Representacion: SAS+ (traducido desde PDDL)• Heurısticas: grafo causal+FF+. . .• Busqueda

• busqueda heurıstica con multiples colas (cada estado seevalua una vez por cada heurıstica y se inserta en la colacorrespondiente)

• evaluacion heurıstica diferida (se crean con el valor de supadre, se evaluan cuando se expanden)

• operadores preferidos (por cada heurıstica)

Landmarks

Landmarks

Landmarks

Landmarks

Landmarks

Landmarks

Landmarks

Portfolios

• No hay un planificador mejor que todos en todos losdominios

• Aprender un conjunto de pesos para parametrizar:• un conjunto de planificadores: portfolio• un planificador: auto-tuning

• Tipos• Dependiente de dominio: PbP• Independiente de dominio: Fast-Downward Stone Soup

(FDSS)• Ejemplos:

• aprender que planificador es el mejor• aprender un conjunto de pesos para los parametros• aprender un conjunto de valores para los parametros• aprender el tiempo a dedicar a cada planificador

Bases de datos de patrones (PDBs)

• Calcular solucion (optima) para un conjunto deabstracciones

• Valor heurıstico para cada estado es:• simple: el correspondiente de su abstraccion• max: maximo del conjunto de abstracciones• aditivas: suma del conjunto de abstracciones

• Alternativa: alternar un proceso de mezcla y reduccionPDBs (merge&shrink)

Ejemplo de una PDB1

• Un paquete: L, R, A, B• Camion A: L, R• Camion B: L, R1Malte Helmert y Gabrielle Rogers

Ejemplo de una PDB. Abstrayendo un paquete2

2Malte Helmert y Gabrielle Rogers

Ejemplo de una PDB. Abstrayendo un paquete y el camion A3

3Malte Helmert y Gabrielle Rogers

Estado del arte (2011)

• Optimal: Fast-Downward Stone Soup• No-optima: Lama2011• Multi-core: Arvand Herd• Temporal: DAEYAHSP• Aprendizaje: PbP

Indice

1 Introduccion

2 Planificacion clasica

3 Planificacion neoclasica

4 HeurısticaPlanificacion heurısticaRedes de tareas jerarquicasConocimiento de controlAprendizaje automatico

5 Otras cuestiones

Planificacion jerarquica

• Se distingue de la planificacion clasica en:• Que planifica: en vez de un conjunto de metas G, el conjunto

de acciones que llevan a cabo una actividad o tarea• Como planifica: descomponiendo tareas en subtareas de

acuerdo con la definicion de varios metodos

• Se diferencian:• Simple Task Networks (STNs): la descomposicion se aplica

en cumplimiento de unas precondiciones segun unajerarquıa

• Hierarchical Task Networks (HTNs): la descomposicion serealiza en un conjunto de tareas que cumplen ciertasrestricciones

• Muy eficiente si se define bien el conocimiento• Los dominios son mas complicados de definir

Tipos de planificacion jerarquica

• Los planes se van generando gradualmente de operadoresmas generales a mas concretos:• Estableciendo niveles de abstraccion en las precondiciones

de 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]

Metodos STN

• Un metodo STN es una tupla m = (name(m), task(m),precond(m), network(m)) donde:• name(m) es el nombre del metodo• task(m) es una tarea no primitiva• precond(m) son las precondiciones del metodo• network(m) son las subtareas del metodo

• Un problema de planificacion STN es una tuplaP = (s0,w ,O,M) donde:• s0 es el estado inicial• w es una jerarquıa de tareas• D = (O,M) es el dominio de planificacion —operadores y

metodos

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)

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)

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)

Hierarchical Task Networks (HTN)

• Tipos de tareas: compuestas o primitivas• Entradas: estado inicial, tareas compuestas, orden en el

que se deben conseguir y teorıa del dominio (metodos yacciones)

• Metodos: estan formados por• tarea compuestas• precondiciones para poder realizar la descomposicion• conjunto de subtareas en las que se puede descomponer• restricciones que se deben cumplir en esas subtareas

• Acciones:• consiguen las tareas primitivas• son semejantes a los operadores de planificacion STRIPS• formadas por: tarea primitiva, precondiciones y efectos

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))). . .))

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)))

Resolucion de problemas con HTN

• Proceso: descomposicion de tareas compuestas en tareasmas sencillas hasta que todas sean tareas primitivas

• Plan: composicion de todas las acciones relativas a lastareas primitivas, conservando restricciones de orden

Variantes

• SIPE, O-PLAN, UMCP• permiten ordenes parciales entre subtareas• difieren en el tipo de restricciones que pueden definir

• SHOP• orden total en las subtareas• mas eficiente, menos rico en representacion

SHOP2

• SHOP2 es un planificador HTN independiente del dominiocuyos metodos deben ser especializados en cada dominio

• Como otros planificadores HTN, SHOP2 planifica las tareasen el orden en que seran ejecutadas

• Ademas de tareas, metodos y operadores, SHOP2 aceptaaxiomas como clausulas de Horn e invocaciones afunciones externas

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 cuyas

precondiciones se cumplan en s• Actualizar 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 subtareas segunθ

• Eliminar t de T y anadir las subtareas de m propagando lasrestricciones

4 Volver al principio

Aplicaciones

• SIPE: fabrica de cerveza• O-PLAN: operaciones militares• BRIDGE-BARON: campeon del mundo de bridge

computacional 1997• SIADEX: gestion de incendios

Indice

1 Introduccion

2 Planificacion clasica

3 Planificacion neoclasica

4 HeurısticaPlanificacion heurısticaRedes de tareas jerarquicasConocimiento de controlAprendizaje automatico

5 Otras cuestiones

Conocimiento de control

• Planificacion necesita heurısticas• Tipos

• Independientes del dominio: HSP, FF, LPG, . . .• Dependientes del dominio

• Formas de codificar conocimiento de control• reglas de control o de reescritura• jerarquıa de tareas• precondiciones de operadores (funciones, nuevos

predicados, . . . )• macro-operadores, casos, polıticas, . . .

Indice

1 Introduccion

2 Planificacion clasica

3 Planificacion neoclasica

4 HeurısticaPlanificacion heurısticaRedes de tareas jerarquicasConocimiento de controlAprendizaje automatico

5 Otras cuestiones

Motivacion

• Los algoritmos de planificacion actuales permiten resolvermuchos problemas eficientemente, utilizando:• heurısticas independientes del dominio con busquedas

eficientes• heurısticas dependientes del dominio creadas a mano

• Todavıa hay sitio para mejorar• Solucion:

• aprendizaje automatico integrado con planificacion paraextraer conocimiento automaticamente de uno o variosproblemas y ası mejorar el rendimiento en futuros problemas

Aplicacion de aprendizaje a planificacion

Planificador

Aprendizajemodelo

DominioPDDL

Ingeniero

Aprendizajeheurísticas

Tipos de tecnicas de aprendizaje

• Metodos inductivos (neuronas, geneticos, ID3, ILP, . . . )• intensivos en datos: extraen descripciones generales de un

concepto a partir de muchos ejemplos• Metodos deductivos (macro-operadores, EBL, . . . )

• intensivos en conocimiento: explican y analizan un soloejemplo de un concepto

• Enfoques hıbridos (EBL+ILP, analogy, Q-RRL, EVOCK, . . . )• metodo deductivo para extraer informacion de un episodio

de planificacion• metodo inductivo para generalizar/especializar el

conocimiento adquirido

¿Que podemos hacer?

Aprendizaje de heurısticas• ¿Como?

• Observando las decisiones realizadas por el planificadordurante la busqueda

• Observando las secuencias de decisiones realizadas• Guardando y reutilizando planes previos• Generando conocimiento pseudo-aleatoriamente• Por demostracion

• ¿Que?• Reglas de control [De la Rosa et al., 2011]• Macro-operadores• Polıticas• Casos [De la Rosa et al., 2007]

Macro-Operadores

• Una de las primeras ideas de aplicar aprendizaje a planificacion

• Se utilizo para mejorar la eficiencia del planificador STRIPS [Fikeset al., 1972]

• Concebido con un doble objetivo:• Aprendizaje de secuencias de acciones• Monitorizacion de ejecucion de planes

• Idea clave: crear nuevos operadores juntando las descripcionesde los operadores individuales que formaban un plan

• Se crean construyendo tablas triangulares y parametrizando

• Ejemplos: cubo de Rubik [Korf, 1985], ACT∗ [Anderson, 1983],MORRIS [Minton, 1985], MACRO-FF [Botea et al., 2005] . . .

• Tambien hay macro-operadores iterativos y condicionales [Chengand Carbonell, 1986,Shell and Carbonell, 1989]

Ejemplo de STRIPS

A

AB

Estado inicial (E )0 Metas

en-mesa(A) E0

en-mesa(A)DEJAR(A) E0

sujeto(A)DEJAR(A)en-mesa(A)

E0

QUITAR(A,B)

en-mesa(A)

sujeto(A)DEJAR(A)

EE

LEVANTAR(A)sujeto(A)DEJAR(A)en-mesa(A)

00

metabucle de

X

X

LEVANTAR(A)

en-mesa(A)DEJAR(A)sujeto(A)

en-mesa(A) brazo-libre

E0

libre(A) brazo-libre encima(A,B)QUITAR(A,B)sujeto(A)DEJAR(A)en-mesa(A)

E0

E1sujeto(A)DEJAR(A)en-mesa(A)

B

A

E1

E2en-mesa(A) B A

E2

Ejemplo de STRIPS

A

AB

Estado inicial (E )0 Metas

en-mesa(A) E0

en-mesa(A)DEJAR(A) E0

sujeto(A)DEJAR(A)en-mesa(A)

E0

QUITAR(A,B)

en-mesa(A)

sujeto(A)DEJAR(A)

EE

LEVANTAR(A)sujeto(A)DEJAR(A)en-mesa(A)

00

metabucle de

X

X

LEVANTAR(A)

en-mesa(A)DEJAR(A)sujeto(A)

en-mesa(A) brazo-libre

E0

libre(A) brazo-libre encima(A,B)QUITAR(A,B)sujeto(A)DEJAR(A)en-mesa(A)

E0

E1sujeto(A)DEJAR(A)en-mesa(A)

B

A

E1

E2en-mesa(A) B A

E2

Ejemplo de STRIPS

A

AB

Estado inicial (E )0 Metas

en-mesa(A) E0

en-mesa(A)DEJAR(A) E0

sujeto(A)DEJAR(A)en-mesa(A)

E0

QUITAR(A,B)

en-mesa(A)

sujeto(A)DEJAR(A)

EE

LEVANTAR(A)sujeto(A)DEJAR(A)en-mesa(A)

00

metabucle de

X

X

LEVANTAR(A)

en-mesa(A)DEJAR(A)sujeto(A)

en-mesa(A) brazo-libre

E0

libre(A) brazo-libre encima(A,B)QUITAR(A,B)sujeto(A)DEJAR(A)en-mesa(A)

E0

E1sujeto(A)DEJAR(A)en-mesa(A)

B

A

E1

E2en-mesa(A) B A

E2

Ejemplo de STRIPS

A

AB

Estado inicial (E )0 Metas

en-mesa(A) E0

en-mesa(A)DEJAR(A) E0

sujeto(A)DEJAR(A)en-mesa(A)

E0

QUITAR(A,B)

en-mesa(A)

sujeto(A)DEJAR(A)

EE

LEVANTAR(A)sujeto(A)DEJAR(A)en-mesa(A)

00

metabucle de

X

X

LEVANTAR(A)

en-mesa(A)DEJAR(A)sujeto(A)

en-mesa(A) brazo-libre

E0

libre(A) brazo-libre encima(A,B)QUITAR(A,B)sujeto(A)DEJAR(A)en-mesa(A)

E0

E1sujeto(A)DEJAR(A)en-mesa(A)

B

A

E1

E2en-mesa(A) B A

E2

Ejemplo de STRIPS

A

AB

Estado inicial (E )0 Metas

en-mesa(A) E0

en-mesa(A)DEJAR(A) E0

sujeto(A)DEJAR(A)en-mesa(A)

E0

QUITAR(A,B)

en-mesa(A)

sujeto(A)DEJAR(A)

EE

LEVANTAR(A)sujeto(A)DEJAR(A)en-mesa(A)

00

metabucle de

X

X

LEVANTAR(A)

en-mesa(A)DEJAR(A)sujeto(A)

en-mesa(A) brazo-libre

E0

libre(A) brazo-libre encima(A,B)QUITAR(A,B)sujeto(A)DEJAR(A)en-mesa(A)

E0

E1sujeto(A)DEJAR(A)en-mesa(A)

B

A

E1

E2en-mesa(A) B A

E2

Ejemplo de STRIPS

A

AB

Estado inicial (E )0 Metas

en-mesa(A) E0

en-mesa(A)DEJAR(A) E0

sujeto(A)DEJAR(A)en-mesa(A)

E0

QUITAR(A,B)

en-mesa(A)

sujeto(A)DEJAR(A)

EE

LEVANTAR(A)sujeto(A)DEJAR(A)en-mesa(A)

00

metabucle de

X

X

LEVANTAR(A)

en-mesa(A)DEJAR(A)sujeto(A)

en-mesa(A) brazo-libre

E0

libre(A) brazo-libre encima(A,B)QUITAR(A,B)sujeto(A)DEJAR(A)en-mesa(A)

E0

E1sujeto(A)DEJAR(A)en-mesa(A)

B

A

E1

E2en-mesa(A) B A

E2

Ejemplo de STRIPS

A

AB

Estado inicial (E )0 Metas

en-mesa(A) E0

en-mesa(A)DEJAR(A) E0

sujeto(A)DEJAR(A)en-mesa(A)

E0

QUITAR(A,B)

en-mesa(A)

sujeto(A)DEJAR(A)

EE

LEVANTAR(A)sujeto(A)DEJAR(A)en-mesa(A)

00

metabucle de

X

X

LEVANTAR(A)

en-mesa(A)DEJAR(A)sujeto(A)

en-mesa(A) brazo-libre

E0

libre(A) brazo-libre encima(A,B)QUITAR(A,B)sujeto(A)DEJAR(A)en-mesa(A)

E0

E1sujeto(A)DEJAR(A)en-mesa(A)

B

A

E1

E2en-mesa(A) B A

E2

Ejemplo de STRIPS

A

AB

Estado inicial (E )0 Metas

en-mesa(A) E0

en-mesa(A)DEJAR(A) E0

sujeto(A)DEJAR(A)en-mesa(A)

E0

QUITAR(A,B)

en-mesa(A)

sujeto(A)DEJAR(A)

EE

LEVANTAR(A)sujeto(A)DEJAR(A)en-mesa(A)

00

metabucle de

X

X

LEVANTAR(A)

en-mesa(A)DEJAR(A)sujeto(A)

en-mesa(A) brazo-libre

E0

libre(A) brazo-libre encima(A,B)QUITAR(A,B)sujeto(A)DEJAR(A)en-mesa(A)

E0

E1sujeto(A)DEJAR(A)en-mesa(A)

B

A

E1

E2en-mesa(A) B A

E2

Macro-operador

∗ encima(A,B)∗ libre(A)∗ brazo-libre QUITAR(A,B)

sujeto(A)libre(B)

Macro-operador

∗ encima(A,B)∗ libre(A)∗ brazo-libre QUITAR(A,B)

∗ sujeto(A)libre(B) DEJAR(A)libre(B) brazo-libre

en-mesa(A)libre(A)

Parametrizacion de macro-operador

∗ encima(x ,y )∗ libre(x)∗ brazo-libre QUITAR(x ,y )

∗ sujeto(x)libre(y ) DEJAR(x)libre(y ) brazo-libre

en-mesa(x)libre(x)

Otro ejemplo de parametrizacion

∗ en-mesa(x)∗ libre(x)∗ brazo-libre levantar(x)∗ libre(y) ∗ sujeto(x)

poner(x,y)∗ libre(z) libre(x)∗ encima(z,w) encima(x,y)

∗ brazo-libre quitar(z,w)libre(x) sujeto(z)encima(x,y) libre(w)

Ejemplo de STRIPS

A

B

ABE0

E0on-table(B)on-table(A)

E0C

GoalsInitial state

on-table(A)on-table(B)on-table(B)on-table(A)

on-table(B)on-table(A)on-table(B)on-table(A)

E0E0

E0

UNSTACK-AND-PUT-DOWN(A,B)on-table(A)on-table(B)on-table(B)on-table(A)

on-table(A) on-table(B)on-table(B)on-table(A)

PUT-DOWN(A)

UNSTACK-AND-PUT-DOWN(A,C)on-table(A)on-table(B)on-table(B)on-table(A)

E0

clear(A) arm-empty on(A,B)UNSTACK-AND-PUT-DOWN(A,B)

on-table(A)on-table(B)on-table(B)on-table(A)

E 1

A

B

C

E1E1

E1

UNSTACK-AND-PUT-DOWN(B,A)on-table(B)on-table(B)on-table(A)

UNSTACK-AND-PUT-DOWN(B,C)

on-table(A) on-table(B)on-table(B)

on-table(B)on-table(B)

on-table(A)

PUT-DOWN(B)

loopgoal

X

X

E1AB

E 2

C

clear(B) arm-empty on(B,C)UNSTACK-AND-PUT-DOWN(B,C)

on-table(B)on-table(A) on-table(B)

Ejemplo de STRIPS

A

B

ABE0

E0on-table(B)on-table(A)

E0C

GoalsInitial state

on-table(A)on-table(B)on-table(B)on-table(A)

on-table(B)on-table(A)on-table(B)on-table(A)

E0E0

E0

UNSTACK-AND-PUT-DOWN(A,B)on-table(A)on-table(B)on-table(B)on-table(A)

on-table(A) on-table(B)on-table(B)on-table(A)

PUT-DOWN(A)

UNSTACK-AND-PUT-DOWN(A,C)on-table(A)on-table(B)on-table(B)on-table(A)

E0

clear(A) arm-empty on(A,B)UNSTACK-AND-PUT-DOWN(A,B)

on-table(A)on-table(B)on-table(B)on-table(A)

E 1

A

B

C

E1E1

E1

UNSTACK-AND-PUT-DOWN(B,A)on-table(B)on-table(B)on-table(A)

UNSTACK-AND-PUT-DOWN(B,C)

on-table(A) on-table(B)on-table(B)

on-table(B)on-table(B)

on-table(A)

PUT-DOWN(B)

loopgoal

X

X

E1AB

E 2

C

clear(B) arm-empty on(B,C)UNSTACK-AND-PUT-DOWN(B,C)

on-table(B)on-table(A) on-table(B)

Ejemplo de STRIPS

A

B

ABE0

E0on-table(B)on-table(A)

E0C

GoalsInitial state

on-table(A)on-table(B)on-table(B)on-table(A)

on-table(B)on-table(A)on-table(B)on-table(A)

E0E0

E0

UNSTACK-AND-PUT-DOWN(A,B)on-table(A)on-table(B)on-table(B)on-table(A)

on-table(A) on-table(B)on-table(B)on-table(A)

PUT-DOWN(A)

UNSTACK-AND-PUT-DOWN(A,C)on-table(A)on-table(B)on-table(B)on-table(A)

E0

clear(A) arm-empty on(A,B)UNSTACK-AND-PUT-DOWN(A,B)

on-table(A)on-table(B)on-table(B)on-table(A)

E 1

A

B

C

E1E1

E1

UNSTACK-AND-PUT-DOWN(B,A)on-table(B)on-table(B)on-table(A)

UNSTACK-AND-PUT-DOWN(B,C)

on-table(A) on-table(B)on-table(B)

on-table(B)on-table(B)

on-table(A)

PUT-DOWN(B)

loopgoal

X

X

E1AB

E 2

C

clear(B) arm-empty on(B,C)UNSTACK-AND-PUT-DOWN(B,C)

on-table(B)on-table(A) on-table(B)

Ejemplo de STRIPS

A

B

ABE0

E0on-table(B)on-table(A)

E0C

GoalsInitial state

on-table(A)on-table(B)on-table(B)on-table(A)

on-table(B)on-table(A)on-table(B)on-table(A)

E0E0

E0

UNSTACK-AND-PUT-DOWN(A,B)on-table(A)on-table(B)on-table(B)on-table(A)

on-table(A) on-table(B)on-table(B)on-table(A)

PUT-DOWN(A)

UNSTACK-AND-PUT-DOWN(A,C)on-table(A)on-table(B)on-table(B)on-table(A)

E0

clear(A) arm-empty on(A,B)UNSTACK-AND-PUT-DOWN(A,B)

on-table(A)on-table(B)on-table(B)on-table(A)

E 1

A

B

C

E1E1

E1

UNSTACK-AND-PUT-DOWN(B,A)on-table(B)on-table(B)on-table(A)

UNSTACK-AND-PUT-DOWN(B,C)

on-table(A) on-table(B)on-table(B)

on-table(B)on-table(B)

on-table(A)

PUT-DOWN(B)

loopgoal

X

X

E1AB

E 2

C

clear(B) arm-empty on(B,C)UNSTACK-AND-PUT-DOWN(B,C)

on-table(B)on-table(A) on-table(B)

Ejemplo de STRIPS

A

B

ABE0

E0on-table(B)on-table(A)

E0C

GoalsInitial state

on-table(A)on-table(B)on-table(B)on-table(A)

on-table(B)on-table(A)on-table(B)on-table(A)

E0E0

E0

UNSTACK-AND-PUT-DOWN(A,B)on-table(A)on-table(B)on-table(B)on-table(A)

on-table(A) on-table(B)on-table(B)on-table(A)

PUT-DOWN(A)

UNSTACK-AND-PUT-DOWN(A,C)on-table(A)on-table(B)on-table(B)on-table(A)

E0

clear(A) arm-empty on(A,B)UNSTACK-AND-PUT-DOWN(A,B)

on-table(A)on-table(B)on-table(B)on-table(A)

E 1

A

B

C

E1E1

E1

UNSTACK-AND-PUT-DOWN(B,A)on-table(B)on-table(B)on-table(A)

UNSTACK-AND-PUT-DOWN(B,C)

on-table(A) on-table(B)on-table(B)

on-table(B)on-table(B)

on-table(A)

PUT-DOWN(B)

loopgoal

X

X

E1AB

E 2

C

clear(B) arm-empty on(B,C)UNSTACK-AND-PUT-DOWN(B,C)

on-table(B)on-table(A) on-table(B)

Ejemplo de STRIPS

A

B

ABE0

E0on-table(B)on-table(A)

E0C

GoalsInitial state

on-table(A)on-table(B)on-table(B)on-table(A)

on-table(B)on-table(A)on-table(B)on-table(A)

E0E0

E0

UNSTACK-AND-PUT-DOWN(A,B)on-table(A)on-table(B)on-table(B)on-table(A)

on-table(A) on-table(B)on-table(B)on-table(A)

PUT-DOWN(A)

UNSTACK-AND-PUT-DOWN(A,C)on-table(A)on-table(B)on-table(B)on-table(A)

E0

clear(A) arm-empty on(A,B)UNSTACK-AND-PUT-DOWN(A,B)

on-table(A)on-table(B)on-table(B)on-table(A)

E 1

A

B

C

E1E1

E1

UNSTACK-AND-PUT-DOWN(B,A)on-table(B)on-table(B)on-table(A)

UNSTACK-AND-PUT-DOWN(B,C)

on-table(A) on-table(B)on-table(B)

on-table(B)on-table(B)

on-table(A)

PUT-DOWN(B)

loopgoal

X

X

E1AB

E 2

C

clear(B) arm-empty on(B,C)UNSTACK-AND-PUT-DOWN(B,C)

on-table(B)on-table(A) on-table(B)

Generacion de macro-operadores

• Se recogen las soluciones a N problemas de entrenamiento

• s1 : a11,a21, . . . ,an1• s1 : a12,a22, . . . ,an2• . . .• sm : a1m,a2m, . . . ,anm

• Se calculan todas las subsecuencias de 2 acciones, 3acciones, . . . , K acciones

• Se realiza algun analisis de utilidad• se filtran aquellas que no superan un umbral de frecuencia• se utilizan para resolver otros P problemas

Discusion: Macro-Operadores

• Ventajas:• Reutilizacion de experiencias pasadas• Replanificacion despues de fallos• Menor profundidad de busqueda• Menor tiempo de equiparacion• Efecto secundario: aprendizaje de subsecuencias de

operadores• Desventajas:

• Incremento del factor de ramificacion

• Necesidad de considerar la utilidad

Busqueda

Busqueda

Busqueda

Busqueda

Busqueda

Busqueda

Busqueda

Busqueda

Busqueda

Aprendizaje clasico

EBL [Minton, 1988], EBL+ILP [Veloso et al., 1995]

Reglas de control

If meta(en-mesa(A)),meta(encima(C,B)),estado(encima(A,B)),estado(encima(B,D)),. . .

Then selecciona(quitar(A,B))

Aprendizaje con contextos utiles

Roller [De la Rosa et al., 2011]

Reglas de control

If meta(en-mesa(A)),meta(encima(C,B)),candidato(levantar(C)),candidato(quitar(A,B))

Then selecciona(quitar(A,B))

Resultados

DEPTH-FIRST BEST-FIRST HELPFUL BEST-FIRSTDomains roller gr-ha df-ha roller-bfs lh-bfs bfs roller-bfs-ha lh-bfs-ha bfs-ha

Blocksworld (30) 30 1 0 8 0 0 8 0 0Depots (22) 21 18 18 20 19 13 20 20 20

Gold-miner (30) 30 0 0 17 17 16 30 0 0Matching-BW (30) 21 0 0 14 7 14 19 10 17

Parking (30) 30 25 1 30 11 7 30 11 9Rovers (30) 28 30 30 26 28 11 30 30 30

Satellite (30) 30 23 22 25 22 15 30 23 23Storage (30) 15 9 10 19 18 20 19 10 10

Thoughtful(30) 12 15 0 20 14 11 23 16 12TPP (30) 30 30 30 16 24 9 19 26 14

Total 247 151 111 195 160 116 228 146 135

Razonamiento basado en casos

[De la Rosa et al., 2007]

SAYPHI-CBR

Planificador

Algoritmo debúsqueda

Heurística

Razonamiento basadoen casos

Reutilización

Base decasos

Razonamiento basado en casos

(at crate0 depot0) (on crate0 pallet0) (clear crate0)

LIFT HOIST0 CRATE0 PALLET0 DEPOT0

(lifting crate0 hoist0)

at1on1 clear1

lifting1

1: LIFT (HOIST0 CRATE1 CRATE0 DEPOT0)2: LOAD (HOIST0 CRATE1 TRUCK0 DEPOT0)3: LIFT (HOIST0 CRATE0 PALLET0 DEPOT0)4: LOAD (HOIST0 CRATE0 TRUCK0 DEPOT0)5: DRIVE (TRUCK0 DEPOT0 DIST0)6: UNLOAD (HOIST1 CRATE0 TRUCK0 DIST0)7: DROP (HOIST1 CRATE0 PALLET1 DIST0)

[(at1 on1 on2),][(at1 on1 clear1) , LIFT][(at1 on1 clear1), (NO-OP 1)][(lifting1) , LIFT][(in1), LOAD][(in1), (NO-OP 1)][(lifting1), UNLOAD][(at1 on1 clear1), DROP]

Secuencia de tiposPlan

Planificador

Dominio Problema

Casos

Construccion de los casos

estado inicial

meta

Sub-estado de Objeto(at object0 depot0) (at hoist0 depot0)(on object0 pallet0) (at hoist1 depot1)(clear object0) (at pallet0 depot0)(at pallet1 depot1) (clear pallet1)(available hoist0) (available hoist1)

Propiedades del Objeto(at1) propiedad de object0 en (at object0 depot0)(at2) propiedad de depot0 en (at object0 depot0)

Sub-estado de tipoobjecto0: (at1 on1 clear1)

hoist0: (at1 available1)

Casos: Secuencias de tipo

object0 sub-estado

(at obectj0 depot0) (on object0 pallet0) (clear object0)

LIFT OBJECT0 HOIST0 PALLET0 DEPOT0

(lifting object0 hoist0)

at1on1 clear1

lifting1

Transición de sub-estados de tipo

Secuencias de Tipo

1: LIFT (HOIST0 CRATE1 CRATE0 DEPOT0)2: LOAD (HOIST0 CRATE1 TRUCK0 DEPOT0)3: LIFT (HOIST0 CRATE0 PALLET0 DEPOT0)4: LOAD (HOIST0 CRATE0 TRUCK0 DEPOT0)5: DRIVE (TRUCK0 DEPOT0 DIST0)6: UNLOAD (HOIST1 CRATE0 TRUCK0 DIST0)7: DROP (HOIST1 CRATE0 PALLET1 DIST0)

[(at1 on1 on2),][(at1 on1 clear1) , LIFT][(at1 on1 clear1), (NO-OP 1)][(lifting1) , LIFT][(in1), LOAD][(in1), (NO-OP 1)][(lifting1), UNLOAD][(at1 on1 clear1), DROP]

Plan

Reutilizacion

[(at1 on1 on2),][(at1 on1 clear1) , LIFT][(at1 on1 clear1), (NO-OP 1)][(lifting1) , LIFT][(in1), LOAD][(in1), (NO-OP 1)][(lifting1), UNLOAD][(at1 on1 clear1), DROP]

Casos

Contenedores

[(at1)][(at1), NO-OP 4][(at1), (DRIVE)][(at1), NO-OP 2]

Camiones

Grúas Pallets

Árbol de búsqueda

Resultados en el dominio de Satelite

Y algo mas...

• Aprendizaje de reglas de control [Borrajo and Veloso, 1997]

• Programacion genetica [Aler et al., 2002]

• Transferencia de aprendizaje [Fernandez et al., 2007]

• Aprendizaje de modelos reactivos [Ledezma et al., 2005,Garcıa-Martınez and Borrajo, 2000]

• Aprendizaje por refuerzo [Fernandez and Borrajo, 2008]

• Aprendizaje activo [Fuentetaja and Borrajo, 2006]

• Mezcla de tecnicas [Garcıa et al., 2006]

Aplicacion de aprendizaje a planificacion

Planner

Model learning

PDDLdomain

Engineer

Heuristics learning

¿Que podemos hacer?

Aprendizaje de modelos de acciones• ¿Como?

• Observando otro agente realizar las tareas• Ejecutando acciones y analizando los resultados• Ayudando al sistema cuando se equivoca• Interactuando con el experto

• ¿Que?• Modelos deliberativos: PDDL, PPDDL• Modelos reactivos: habilidades, MDPs• Precondiciones y efectos• Conocimiento probabilıstico• Informacion sobre la calidad

Acciones probabilısticas en los Rovers

(:action navigate:parameters (?x - rover ?y - waypoint ?z - waypoint):precondition (and (can_traverse ?x ?y ?z)

(available ?x)(at ?x ?y)(visible ?y ?z)(>= (energy ?x) 8))

:effect (and (decrease (energy ?x) 8)(when (rocky-terrain ?y ?z)

(probabilistic 0.8(not (at ?x ?y))(at ?x ?z)))

(when (sandy-terrain ?y ?z)(probabilistic 0.6

(not (at ?x ?y))(at ?x ?z)))))

Aprendizaje de modelos. PELA

[Jimenez et al., In Press], [Jimenez et al., 2008], [Lanchas et al., 2007]

Planificación

Ejecución

Aprendizaje

Ingenierio

Plan

Observaciones

Modelos deacción

Dominiodeterminista

MundorealAcción

Nuevoestado

Dominio Tireworld

Dominio Tireworld

Plan:mover(n1,n5)mover(n5,n6)

Dominio Tireworld

Dominio Tireworld

Plan:mover(n1,n5)mover(n5,n6)

Ejecucion: mover(n1,n5)Nuevo plan: ningunoDead-endEstado: coche-en(n5),pinchado

Dominio Tireworld

Dominio Tireworld

Plan: mover(n1,n2), mover(n2,n3),mover(n3,n4), mover(n4,n6)

Ejecucion: mover(n1,n2)Nuevo plan: arreglar(n2), mover(n2,n3),

mover(n3,n4), mover(n4,n6)FalloEstado: coche-en(n2), pinchado,

llanta-en(n2)

Dominio Tireworld

Dominio Tireworld

Plan: mover(n1,n2), mover(n2,n3),mover(n3,n4), mover(n4,n6)

Ejecucion: mover(n1,n2)ExitoEstado: coche-en(n2)

Ejemplos de entrenamiento

% Example1move(e0,n1,n5,dead-end).tire-at(e0,n2). tire-at(e0,n3). tire-at(e0,n4). flat-tire(e0,n5).at(e0,n5). road(e0,n1,n2). road(e0,n2,n3).road(e0,n3,n4). road(e0,n4,n6). road(e0,n1,n5).road(e0,n5,n6).

% Example2move(e0,n1,n2,failure).tire-at(e0,n2). tire-at(e0,n3). tire-at(e0,n4). flat-tire(e0,n2).at(e0,n2). road(e0,n1,n2). road(e0,n2,n3).road(e0,n3,n4). road(e0,n4,n6). road(e0,n1,n5).road(e0,n5,n6).

% Example3move(e0,n1,n2,success).tire-at(e0,n2). tire-at(e0,n3). tire-at(e0,n4).at(e0,n2). road(e0,n1,n2). road(e0,n2,n3).road(e0,n3,n4). road(e0,n4,n6). road(e0,n1,n5).road(e0,n5,n6).

Arbol de decision relacional

Arbol de decision relacional

Compilacion en costes

(:action mover:parameters (?v1 - lugar ?v2 - lugar):precondition (and (coche-en ?v1)

(camino ?v1 ?v2)(not (pinchado))

:effect (and (when (and (llanta ?v2))(and (coche-en ?v2)

(not (coche-en ?v1))(increase (fragility) 0.22)))

(when (and (not (llanta ?v2)))(and (coche-en ?v2)

(not (coche-en ?v1))(increase (fragility) 999999999)))))

Compilacion en PPDDL

(:action mover:parameters (?v1 - lugar ?v2 - lugar):precondition (and (coche-en ?v1)

(camino ?v1 ?v2)(not (pinchado))

:effect (and (when (and (llanta ?v2))(probabilistic 0.8

(and (coche-en ?v2)(not (coche-en ?v1)))))

(when (and (not (llanta ?v2)))(probabilistic 0.001

(and (coche-en ?v2)(not (coche-en ?v1)))))))

Modelado de costes

(:action sample-rock:parameters (?x -rover ?s -store ?p -waypoint):precondition (and (at ?x ?p)

(at ?r ?p)(>= (energy ?x) 5)(empty ?x ?s))

:effect (and (increase (total-time) ?)(decrease (energy ?x) ?)(not (empty ?s))(full ?s)(have-rock-analysis ?x ?p)(not (at-rock-sample ?p))))

Aprendizaje de duraciones

(:action sample-rock:parameters (?x -rover ?s -store ?p -waypoint ?r - rock):precondition (and (at ?x ?p)

(at ?r ?p)(>= (energy ?x) 5)(empty ?x ?s))

:effect (and (not (empty ?s))(full ?s)(have-rock-analysis ?x ?p)(not (at-rock-sample ?p))(when (and (is-heavy ?r))

(probabilistic0.75 (increase (spent-time) 30)0.25 (increase (spent-time) 20)))

(when (and (not (is-heavy ?r)))(probabilistic

0.6 (increase (spent-time) 2)0.4 (increase (spent-time) 1)))...

Resultados

Trabajo actual. Robots

[Quintero et al., 2011b]

Indice

1 Introduccion

2 Planificacion clasica

3 Planificacion neoclasica

4 Heurıstica

5 Otras cuestionesPlanificacion con tiempo y recursosIncertidumbreOversubscriptionReplanificacionRobotica

Indice

1 Introduccion

2 Planificacion clasica

3 Planificacion neoclasica

4 Heurıstica

5 Otras cuestionesPlanificacion con tiempo y recursosIncertidumbreOversubscriptionReplanificacionRobotica

Planificacion temporal

• Las acciones tienen duracion• Las precondiciones y efectos pueden (des)aparecer:

• al principio de la ejecucion• durante toda la ejecucion• al final de la ejecucion

• Los literales pueden ser ciertos/falsos a partir de undeterminado momento

• Se puede compilar a planificacion con funciones en muchoscasos

• Complejidad: EXPSPACE-complete [Rintanen, 2007]

• Planificadores: LPG-td, OPTIC, CPT4, . . .

Accion durativa y literales temporales

(:durative-action load-truck:parameters (?t - truck ?l - location ?o - cargo ?c - crane):duration (= ?duration 5):condition (and (at start (at ?t ?l))

(at start (at ?o ?l))(at start (empty ?c))(over all (at ?t ?l))(at end (holding ?c ?o)))

:effect (and (at end (in ?o ?t))(at start (holding ?c ?o))(at start (not (at ?o ?l)))(at end (not (holding ?c ?o)))))

(:init (at 10 (see sensor1 object1))(at 20 (not (see sensor1 object1)))...)

Planificacion con tiempo y recursos (scheduling)

• Las acciones llevan su tiempo y utilizan recursos• Se parte de un conjunto de actividades ordenadas (salida

de un planificador o manual), y un conjunto de recursos consus capacidades

• Se desea obtener una asignacion temporal a cada actividadsin violar las restricciones temporales (entre actividades) yde recursos

• Aproximacion estandar: busqueda heurıstica• Tecnicas: A∗, escalada, CSP, algoritmos geneticos, . . .• Muchas aplicaciones reales con este tipo de tecnicas:

logıstica, horarios, manufactura, espacio, . . .

Indice

1 Introduccion

2 Planificacion clasica

3 Planificacion neoclasica

4 Heurıstica

5 Otras cuestionesPlanificacion con tiempo y recursosIncertidumbreOversubscriptionReplanificacionRobotica

Incertidumbre

• Fuentes de incertidumbre• Estado inicial• Metas• Acciones

• Formas de tratarla• planificacion probabilıstica• planificacion condicional• planificacion conformante• MDP• model checking

Modelos de incertidumbre

Modelo de accionesObservabilidad Determinista Estocastico

Completa Clasica ProbabilısticaParcial Contingente Contingente Probabilıstica

Ninguna Conformante Conformante Probabilıstica

Indice

1 Introduccion

2 Planificacion clasica

3 Planificacion neoclasica

4 Heurıstica

5 Otras cuestionesPlanificacion con tiempo y recursosIncertidumbreOversubscriptionReplanificacionRobotica

Goal and state preferences

• Both goals and constraints must be accomplished for theplan being valid

• But, what if we have goals we would like to be accomplishedbut do not want the plan to be invalid if not?

• PDDL3.0 introduces preferences• Applicable to goals or constraints• Can appear:• Can appear:

• domain: actions preconditions• problem: :goals or :constraints

Preferencias

• Syntax: preference [name] <GD>• Name is optional• Different preferences can share same name• Examples at problem file:

(:constraints(and (preference a0 (always (at rover0 waypoint0)))

(preference e0 (sometime (at rover0 waypoint3)))(preference e1 (sometime (at rover0 waypoint2)))(preference e2 (sometime (calibrated camera0 rover0)))))

(:constraints(and (forall (?g - goods)

(preference p5A(at end (forall (?m - market ?t - truck)

(and (= (ready-to-load ?g ?m) 0)(= (loaded ?g ?t) 0))))))))

Preferencias

Examples: precondition

(:durative-action drive:parameters (?t - truck ?from ?to - place):duration (= ?duration (drive-time ?from ?to)):condition (and (preference p-drive

(at start (forall (?g - goods)(< (ready-to-load ?g ?from) 1))))

(at start (at ?t ?from))(over all (connected ?from ?to)))

:effect (and (at start (not (at ?t ?from)))(at end (at ?t ?to))(at end (increase (total-cost) (drive-cost ?from ?to)))))

More examples

• We would like that the energy of every rover should alwaysbe above the threshold of 5 units

(:constraints(and (preference (always (forall (?r - rover)

(> (energy ?r) 5))))))

• Whenever the energy of a rover is below 5, it should be atthe recharging location within 10 time units

(:constraints(and (forall (?r - rover)

(always-within 10 (< (energy ?r) 5)(at ?r recharging-point)))))

Plan quality and preferences

• Preferences can be given a weight to establish which ismore important• Only applicable to named preferences• If no name is given, weight is set to 1• Done in metric part of the problem:

(:metric minimize(+ (* (is-violated sb10) 6.22222)

(* (is-violated sb9) 5.44444)(* (is-violated sb8) 7)))

Strategies for dealing with oversubscription

• Assessing if we are facing an OSP is generally as difficultas trying to solve it

• Expressing the OSP as a Markov decision problem (MDP)yields always to an optimal solution

• . . . but, except for very simple ones, these problems areintractable

• Two different strategies for solving OSP• Searching in goals space: goal preselection

Planner only plans for a predefined subset of goals• Combined search in goals and plans spaces: on-the-fly goal

selectionPlanner plans taking into account all goals

• Another alternative: compiling soft goals away

Indice

1 Introduccion

2 Planificacion clasica

3 Planificacion neoclasica

4 Heurıstica

5 Otras cuestionesPlanificacion con tiempo y recursosIncertidumbreOversubscriptionReplanificacionRobotica

Planning paradigms

Planningfrom

scratch-P-D

?

DomainIndependent

Heuristics

Planning paradigms

Planningfrom

scratch-P-D

?

DomainIndependent

Heuristics

Planningwith

learning-P-D

?

DomainIndependent

Heuristics

6LearnedHeuristics

Experience

Planning paradigms

Planningfrom

scratch-P-D

?

DomainIndependent

Heuristics

Planningwith

learning-P-D

?

DomainIndependent

Heuristics

6LearnedHeuristics

Experience

Planningwith

reuse-P-D

?

DomainIndependent

Heuristics

6PastPlan(s)

Experience

Motivation

• State of the art:• planners: eager commitment to a (set of) heuristic(s)• replanners+learning systems eager commitment to a plan

(learned knowledge)

• Alternative: stochastic use of knowledge

Motivation

• State of the art:• planners: eager commitment to a (set of) heuristic(s)• replanners+learning systems eager commitment to a plan

(learned knowledge)

• Alternative: stochastic use of knowledge

New grid domain

Dead-end

Solution

New problem

“Balancing” heuristics and previous plan

Plan not necessarily always right

RRT [LaValle and Kuffner, 2001]

p: probability of choosing G1-p: probability of choosing some other random goal

RRT

RRT

RRT

New problem

ERRT [Bruce and Veloso, 2002]

ERRT

p: probability of choosing Gr : probability of choosing a previous node as goal1-p-r : probability of choosing some other random goal

ERRT

ERRT

ERRT-PLAN(I,G,A,p, ra,W ): plan

I: initial state, G: goals, A: actionsp: probability of selecting EHC

ra: probability of action-reuserg = 1− (p + ra): probability of goal-reuseW = [(a0,wp0), (a1,wp1), . . . , (ak ,wpk )]: plan

tree = {I}while not(solution(tree,G)) do

i: UniformRandom in [0.0 .. 1.0]if 0 < i < pthen tree = expand-tree(EHC ,I,G,A, φ,tree)else if p < i < p + ra

then tree = expand-tree(action-reuse,I,G,A,W ,tree)else tree = expand-tree(goal-reuse,I,G,A,W ,tree)

return extract-plan(tree)

Expand-tree

EHC

• ChooseTarget: select G• Nearest: closest open node• Extend: EHC expansion

Action reuse• ChooseTarget: select G• Nearest: open node with greatest action pointer• Extend: apply as many actions as possible. Otherwise, EHC

Goal reuse• ChooseTarget: randomly select a past wpi

• Nearest: closest open node• Extend: expand it with EHC

Expand-tree

EHC

• ChooseTarget: select G• Nearest: closest open node• Extend: EHC expansion

Action reuse• ChooseTarget: select G• Nearest: open node with greatest action pointer• Extend: apply as many actions as possible. Otherwise, EHC

Goal reuse• ChooseTarget: randomly select a past wpi

• Nearest: closest open node• Extend: expand it with EHC

Expand-tree

EHC

• ChooseTarget: select G• Nearest: closest open node• Extend: EHC expansion

Action reuse• ChooseTarget: select G• Nearest: open node with greatest action pointer• Extend: apply as many actions as possible. Otherwise, EHC

Goal reuse• ChooseTarget: randomly select a past wpi

• Nearest: closest open node• Extend: expand it with EHC

Discussion

• Deterministic commitment to reuse• e.g., Prodigy/Analogy• adapts past greedily - no optimality guarantees

• Heuristic-based choice to reuse• e.g., LPG-Adapt• uses and adapts past, if heuristic decides so

• Probabilistic reuse• e.g., ERRT-Plan• balance between reuse or not - probabilistic optimal

Blocksworld. Time to solve (600s time-bound)

#blocks FF ERRT-PLAN

p = 0,3ra = 0,3

6 0.32 0.027 8.58 0.128 505.36 0.379 - 0.68

10 - 3.5511 - 24.5612 - 424.06(*)

Experiments. Rovers

Indice

1 Introduccion

2 Planificacion clasica

3 Planificacion neoclasica

4 Heurıstica

5 Otras cuestionesPlanificacion con tiempo y recursosIncertidumbreOversubscriptionReplanificacionRobotica

T-Rex. Arquitectura

• Constraint-based temporal planner• Hierarchy of reactors• Each reactor takes as input a set of goals and a state and

returns a timeline• Reactors are usually state machines• States have: name, parameters, duration, start, end• Time information in the form of intervals• Goals:At (work) [8:30-9:30] [8-9] [16:30-18:30]

• Execution is synchronous

T-Rex. Definitions

• Timeline: temporal representation of the evolution of a statemachine

• Token: each of the states in a timeline• Token (states) are represented using predicates• Constraints: (temporal) relations among tokens• Flaws: constraints not met (yet) by the plan• Planning process: find a sequence of tokens going from the

initial state to the goals

Arquitectura de PELEA

Items de conocimiento

• domainH• domainL• problemH: stateH, goals, metric• problemL: stateL, planH• infoMonitoring

XML

<?xml version=”1.0” encoding=”UTF-8”?> <define xmlns=”http://www.example.org/xPddl”...> <domain name=” driverlog-temporal “> <requirements> <require-key name=”:typing :durative-actions”/> </requirements> <types> <term name=”location” type=“object”/> <term name=”truck” type=“locatable”/> <term name=”obj” type=“locatable”/> ... </types> <predicates> <atom predicate=”at”> <term type=”locatable” name=”?obj”/> <term type=”location” name=”?loc”/> </atom> ... </predicates> ... </domain> </define>

Arquitectura. Ejecucion

Interfaces implementados

• Simuladores:• MDPSim [Younes and Littman, 2004]• Simulador probabilıstico temporal• Virtual Robot Simulator

• Plataformas roboticas• ROS• Stage/Player• Microsoft Robotics Studio

• Robots (a traves de las plataformas):• Pioneer• NAO• iRobot Create

• Juegos:• AI-LIVE [Fernandez et al., 2008]• ORTS [Alcazar et al., 2008]• Starcraft

Arquitectura. Monitorizacion, LowToHigh

Arquitectura. Metas & Metricas

Metas & Metricas

• Permite a PELEA cambiar metas y metricas dinamicamente:• Oversubscription [Garcıa-Olaya et al., 2011,

Fernandez and Borrajo, 2012]• Tareas complejas a traves de automatas• Multi-agente

Automata

Arquitectura. Soporte a las decisiones

Arquitectura. (Re)planificacion

Planificadores y replanificadores

• Temporal: LPG-TD [Gerevini et al., 2003], SGPLAN [Hsu etal., 2007], CRIKEY [Coles et al., 2009] and TFD [Eyerich etal., 2009]

• Strips: CBP [Fuentetaja et al., 2010], Sayphi [De la Rosa etal., 2007]

• HTN: Siadex [Fdez-Olivares et al., 2006]

• Replanificadores: LPG-Adapt [Fox et al., 2006],ERRTPlan [Borrajo and Veloso, 2012]

Arquitectura. Planificacion bajo nivel

Planificacion bajo nivel

• Tareas difıciles de resolver con planificacion deliberativa:path planning, razonamiento numerico, . . .

• Hemos utilizado• Traduccion directa• Decomposicion jerarquica a tareas de bajo nivel• Reinforcement learning• Instance-based policies

Arquitectura. Aprendizaje automatico

Aprendizaje automatico

• Modelo de dominio (domainH): [Jimenez et al.,2008], [Quintero et al., 2011a]

• Modelo de dominio (domainL):• reinforcement learning [Kaebling et al., 1996]• instance-based policies [Garcıa-Duran et al., 2012]

• Heurısticas: [De la Rosa et al., 2011], [de la Rosa et al.,2009]

Independencia de dominio y entorno

Independencia de dominio y dependencia de entorno

Demo

Trabajo relacionado

• Arquitecturas previas: APSI [Cesta et al., 2009],PRS [Georgeff and Lansky, 1987], IxTeT [Ghallab andLaruelle, 1994], IDEA [Aschwanden et al., 2006],TCA [Simmons, 1992], T-Rex [McGann et al., 2007]

• Mas componentes integrados: Goals & Metrics, Learning• Enfasis en estandares: PDDL• Multi-paradigma: Strips, temporal, HTN• Clara separacion de tareas• Comunicacion estandarizada: XML• Muchos interfaces• Pre-soporte para multi-agentes

Nuestro trabajo

• iRoomba: videos• Pioneer: videos• Nao: videos

Referencias

Vidal Alcazar, Daniel Borrajo, and Carlos Linares Lopez.Modelling a RTS planning domain with cost conversion and rewards.In Artificial Intelligence in Games. Workshop of the 18th European Conference onArtificial Intelligence, pages 50–54, Patras (Greece), July 2008.

Vidal Alcazar, Manuela Veloso, and Daniel Borrajo.Adapting an RRT for automated planning.In Daniel Borrajo, Carlos Linares Lopez, and Max Likhachev, editors,Proceedings of the Fourth International Symposium on Combinatorial Search(SoCS-2011), pages 2–9, Cardona (Spain), 2011. AAAI Press.

Ricardo Aler, Daniel Borrajo, and Pedro Isasi.Using genetic programming to learn and improve control knowledge.Artificial Intelligence Journal, 141(1-2):29–56, October 2002.

James F. Allen, James Hendler, and Austin Tate (eds.).Readings in Planning.Morgan Kaufmann, 1990.

John R. Anderson.The Architecture of Cognition.Harvard University Press, Cambridge, Mass, 1983.

P. Aschwanden, V. Baskaran, S. Bernardini, M. Moreno C. Fry, N. Muscettola,C. Plaunt, D. Rijsman, and P. Tompkins.Model-unified planning and execution for distributed autonomous system control.In Workshop on Spacecraft Autonomy: Using AI to Expand Human SpaceExploration. AAAI Press, 2006.

Fahiem Bacchus and Froduald Kabanza.Using temporal logics to express search control knowledge for planning.Artificial Intelligence, 116:123–191, 2000.

Avrim L. Blum and Merrick L. Furst.Fast planning through planning graph analysis.In Chris S. Mellish, editor, Proceedings of the 14th International Joint Conferenceon Artificial Intelligence, IJCAI-95, volume 2, pages 1636–1642, Montreal,Canada, August 1995. Morgan Kaufmann.

Blai Bonet and Hector Geffner.Planning as heuristic search.Artificial Intelligence, 129(1-2):5–33, 2001.

Daniel Borrajo and Manuela Veloso.Lazy incremental learning of control knowledge for efficiently obtaining qualityplans.AI Review Journal. Special Issue on Lazy Learning, 11(1-5):371–405, February1997.Also in the book ”Lazy Learning”, David Aha (ed.), Kluwer Academic Publishers,May 1997, ISBN 0-7923-4584-3.

Daniel Borrajo and Manuela Veloso.Probabilistically reusing plans in deterministic planning.In Proceedings of ICAPS’12 workshop on Heuristics and Search forDomain-Independent Planning, pages 17–25, Atibaia (Brazil), 2012.

Daniel Borrajo, Natalia Juristo, Vicente Martınez, and Juan Pazos.Inteligencia Artificial. Metodos y Tecnicas.Centro de Estudios Ramon Areces, Madrid, 1993.

Adi Botea, Martin Mueller, and Jonathan Schaeffer.Learning partial-order macros from solutions.In Proceedings of ICAPS’05, Monterrey (USA), June 2005.

James Bruce and Manuela Veloso.Real-time randomized path planning for robot navigation.In Proceedings of IROS-2002, Switzerland, October 2002.

Daniel Burfoot, Joelle Pineau, and Gregory Dudek.RRT-Plan: A Randomized Algorithm for STRIPS Planning.In Proceedings of ICAPS’06, pages 362–365, Ambleside (UK), June 2006. AAAIPress.

A. Cesta, G. Cortellessa, S. Fratini, and A. Oddi.Developing an End-to-End Planning Application from a Timeline RepresentationFramework.In IAAI-09. Proceedings of the 21st Innovative Applications of ArtificialIntelligence Conference, Pasadena, CA, USA, 2009.

Pat W. Cheng and Jaime G. Carbonell.The FERMI system: Inducing iterative rules from experience.In Proceedings of AAAI-86, pages 490–495, Philadelphia, PA, 1986.

Andrew Coles, Maria Fox, Keith Halsey, Derek Long, and Amanda Smith.Managing concurrency in temporal planning using planner-scheduler interaction.Artificial Intelligence Journal, 173(1):1–44, 2009.

Ken Currie and Austin Tate.O-Plan: the open planning architecture.Artificial Intelligence, 52(1):49–86, 1991.

Tomas De la Rosa, Angel Garcıa-Olaya, and Daniel Borrajo.Using cases utility for heuristic planning improvement.In Rosina Weber and Michael Richter, editors, Case-Based Reasoning Researchand Development: Proceedings of the 7th International Conference onCase-Based Reasoning, volume 4626 of Lecture Notes on Artificial Intelligence,pages 137–148, Belfast, Northern Ireland, UK, August 2007. Springer Verlag.

Tomas de la Rosa, Rocıo Garcıa-Duran, Sergio Jimenez, Fernando Fernandez,Angel Garcıa-Olaya, and Daniel Borrajo.Three relational learning approaches for lookahead heuristic search.In Proceedings of the Workshop on Planning and Learning of ICAPS09,Thessaloniki (Greece), September 2009.

Tomas De la Rosa, Sergio Jimenez, Raquel Fuentetaja, and Daniel Borrajo.Scaling up heuristic planning with relational decision trees.Journal of Artificial Intelligence Research, 40:767–813, 2011.http://dx.doi.org/10.1613/jair.3231.

P. Eyerich, R. Mattmuller, and G. Roger.Using the context-enhanced additive heuristic for temporal and numeric planning.In Proceedings of the 19th International Conference on Automated Planning andScheduling (ICAPS), 2009.

J. Fdez-Olivares, L. Castillo, O. Garcıa-Perez, and F. Palao.Bringing users and planning technology together. experiences in SIADEX.In Proc. ICAPS 2006, 2006.Awarded as the Best Application Paper of this edition.

Fernando Fernandez and Daniel Borrajo.Two steps reinforcement learning.

International Journal of Intelligent Systems, 23(2):213–245, February 2008.

Susana Fernandez and Daniel Borrajo.Using linear programming to solve clustered oversubscription planning problemsfor designing e-courses.Expert Systems with Applications, 39:5178–5188, 2012.doi:10.1016/j.eswa.2011.11.021.

Susana Fernandez, Ricardo Aler, and Daniel Borrajo.Transferring learned control-knowledge between planners.In Manuela Veloso, editor, Proceedings of IJCAI’07, Hyderabad (India), 2007.IJCAI Press.Poster.

Susana Fernandez, Javier Asensio, Marta Jimenez, and Daniel Borrajo.A social and emotional model for obtaining believable emergent behavior.In Paolo Traverso and Marco Pistore, editors, Artificial Intelligence: Methodology,Systems, and Applications, volume 5253/2008 of Lecture Notes in ComputerScience, pages 395–399, Varna, Bulgaria, September 2008. Springer Verlag.

Richard E. Fikes and Nils J. Nilsson.Strips: A new approach to the application of theorem proving to problem solving.Artificial Intelligence, 2:189–208, 1971.

Richard E. Fikes, P. E. Hart, and Nils J. Nilsson.Learning and executing generalized robot plans.Artificial Intelligence, 3:251–288, 1972.

Maria Fox, Alfonso Gerevini, Derek Long, and Ivan Serina.Plan stability: Replanning versus plan repair.In Proceedings of ICAPS’06, pages 212–221, 2006.

Raquel Fuentetaja and Daniel Borrajo.Improving control-knowledge acquisition for planning by active learning.In Johannes Fuernkranz Tobias Scheffer and Myra Spiliopoulou, editors,Proceedings of 17th European Conference on Machine Learning (ECML’06),volume 4212 of Lecture Notes in Computer Science, pages 138–149, Berlin(Germany), 2006. Springer Verlag.

Raquel Fuentetaja, Daniel Borrajo, and Carlos Linares Lopez.A look-ahead B&B search for cost-based planning.In Pedro Meseguer, Lawrence Mandow, and Rafael Martınez-Gasca, editors,Current Topics in Artficial Intelligence, CAEPIA 2009 Selected Papers, volumeLNAI 5988 of Lecture Notes on Artificial Intelligence, pages 201–211, Sevilla(Spain), 2010. Springer Verlag.

Rocıo Garcıa, Fernando Fernandez, and Daniel Borrajo.Combining macro-operators with control knowledge.In Ramon Otero, editor, Proceedings of International Conference on InductiveLogic Programming (ILP’06), volume 4455 of Lecture Notes on ArtificialIntelligence, pages 229–243, Santiago de Compostela (Spain), 2006. SpringerVerlag.

Rocıo Garcıa-Duran, Fernando Fernandez, and Daniel Borrajo.A prototype-based method for classification with time constraints: A case studyon automated planning.Pattern Analysis and Applications Journal, 15(3):261–277, 2012.

Ramon Garcıa-Martınez and Daniel Borrajo.An integrated approach of learning, planning, and execution.Journal of Intelligent and Robotic Systems, 29(1):47–78, September 2000.

Angel Garcıa-Olaya, Tomas de la Rosa, and Daniel Borrajo.Using relaxed plan heuristic to select goals in oversubscription planning problems.

In Jose A. Lozano, Jose A. Gamez, and Jose A. Moreno, editors, Advances inArtificial Intelligence, volume 7023/2011 of Lecture Notes on Computer Science,pages 183–192, La Laguna (Spain), November 2011. Springer Verlag.Best paper award. ISBN 978-3-642-25273-0.

Michael P. Georgeff and Amy L. Lansky.Reactive reasoning and planning.In Proceedings of AAAI-87 Sixth National Conference on Artificial Intelligence,pages 677–682, Seattle, WA (USA), July 1987.

Alfonso Gerevini, Alessandro Saetti, and Ivan Serina.Planning through stochastic local search and temporal action graphs.Journal of Artificial Intelligence Research, 20:239–290, 2003.

M. Ghallab and H. Laruelle.Representation and control in IxTeT, a temporal planner.In Proceedings of the 2nd International Conference on AI Planning Systems,1994.

Malik Ghallab, Dana Nau, and Paolo Traverso.Automated Planning. Theory & Practice.Morgan Kaufmann, 2004.

Malte Helmert.The Fast Downward planning system.JAIR, 26:191–246, 2006.

Jorg Hoffmann and Bernhard Nebel.The FF planning system: Fast plan generation through heuristic search.Journal of Artificial Intelligence Research, 14:253–302, 2001.

Chih-Wei Hsu, Benjamin W. Wah, Ruoyun Huang, and Yixin Chen.Constraint partitioning for solving planning problems with trajectory constraintsand goal preferences.In Proceedings of IJCAI’07, Hyderabad, India, 2007.

Sergio Jimenez, Fernando Fernandez, and Daniel Borrajo.The PELA architecture: integrating planning and learning to improve execution.In Proceedings of the AAAI’08, Chicago, IL (USA), July 2008. AAAI, AAAI Press.

Sergio Jimenez, Fernando Fernandez, and Daniel Borrajo.Integrating planning, execution and learning to improve plan execution.Computational Intelligence Journal, In Press.

Leslie Pack Kaebling, Michael L. Littman, and Andrew W. Moore.Reinforcement learning: A survey.International Journal of Artificial Intelligence Research, pages 237–285, 1996.

Subbarao Kambhampati.Improving graphplan’s search with ebl & ddb techniques.In Thomas Dean, editor, Proceedings of the IJCAI’99, pages 982–987,Stockholm, Sweden, July-August 1999. Morgan Kaufmann Publishers.

Subbarao Kambhampati.Planning graph as a (dynamic) CSP: Exploiting EBL, DDB and other CSP searchtechniques in Graphplan.Journal of Artificial Intelligence Research, 12:1–34, 2000.

Henry Kautz and Bart Selman.Planning as satisfiability.In Proceedings of ECAI’92, 1992.

Henry Kautz and Bart Selman.Pushing the envelope: Planning, propositional logic, and stochastic search.In Proceedings of AAAI-96, pages 1194–1201, 1996.

Henry Kautz and Bart Selman.Unifying sat-based and graph-based planning.In Proceedings of IJCAI-99, Stockholm (Sweden), 1999.

Craig A. Knoblock.Automatically generating abstractions for planning.Artificial Intelligence, 68, 1994.

Jana Koehler, Bernhard Nebel, Jorg Hoffmann, and Yannis Dimopoulos.Extending planning graphs to an ADL subset.In S. Steel and R. Alami, editors, Proceedings of the 4th European Conference onPlanning, ECP’97, volume 1348 of Lecture Notes in Computer Science, pages273–285. Springer-Verlag, 1997.

Richard E. Korf.Macro-operators: A weak method for learning.Artificial Intelligence, 26:35–77, 1985.

John E. Laird, Paul S. Rosenbloom, and Allen Newell.Chunking in SOAR: The anatomy of a general learning mechanism.Machine Learning, 1:11–46, 1986.

Jesus Lanchas, Sergio Jimenez, Fernando Fernandez, and Daniel Borrajo.

Learning action durations from executions.In Proceedings of the ICAPS’07 Workshop on Planning and Learning,Providence, Rhode Island (USA), 2007.

S. M. LaValle and J. James J. Kuffner.Randomized kinodynamic planning.In Proceedings of the International Journal of Robotics Research, volume 20,pages 378–400, May 2001.

Agapito Ledezma, Ricardo Aler, Araceli Sanchis, and Daniel Borrajo.Predicting opponent actions by observation.In Daniele Nardi, Martin Riedmiller, and Claude Sammut, editors, RoboCup 2004:Robot Soccer World Cup VIII, volume 3276 of Lecture Notes in ComputerScience, pages 286–296, Lisbon (Portugal), 2005. Springer Verlag.

Derek Long and Maria Fox.Efficient implementation of the plan graph in STAN.Journal of Artificial Intelligence Research, 10:87–115, 1999.

C. McGann, F. Py, K. Rajan, H. Thomas, R. Henthorn, and R. McEwen.T-REX: A Deliberative System for AUV Control.In 3rd Workshop on Planning and Plan Execution for Real-World Systems,ICAPS, Providence, RI, 2007.

Steven Minton.Selectively generalizing plans for problem solving.In Proceedings of AAAI-85, pages 596–599, 1985.

Steven Minton.Learning Effective Search Control Knowledge: An Explanation-Based Approach.

Kluwer Academic Publishers, Boston, MA, 1988.

H. Nakhost and M. Muller.Monte-carlo exploration for deterministic planning.In Proceedings of IJCAI’09, 2009.

Dana Nau, Tsz-Chiu Au, Okhtay Ilghami, Ugur Kuter, J. William Mur, and Dan Wu.

SHOP2: An HTN planning system.Journal of Artificial Intelligence Research, 20:379–404, 2003.

Allen Newell, Herbert A. Simon, and J. Shaw.Human Problem Solving.Prentice-Hall, Englewood Cliffs, NJ, 1972.

Nils Nilsson.Principios de Inteligencia Artificial.Ediciones Dıaz de Santos, Madrid, 1987.

Judea Pearl.Heuristics: Intelligent Search Strategies for Computer Problem Solving.Addison-Wesley, 1983.

J. S. Penberthy and D. S. Weld.UCPOP: A sound, complete, partial order planner for ADL.In Proceedings of KR-92, pages 103–114, 1992.

Ezequiel Quintero, Vidal Alcazar, Daniel Borrajo, Juan Fdez-Olivares, FernandoFernandez, Angel Garcıa-Olaya, Cesar Guzman, Eva Onaindıa, and David Prior.Autonomous mobile robot control and learning with pelea architecture.

In Sanem Sariel-Talay, Stephen Smith, and Nilufer Onder, editors, Working Notesof the AAAI’11 Workshop on Automated Action Planning for Autonomous MobileRobots (PAMR’11), pages 51–56, San Francisco (USA), August 2011. AAAI,AAAI Press.Technical Report WS-11-04.

Ezequiel Quintero, Angel Garcıa-Olaya, Daniel Borrajo, and Fernando Fernandez.

Control of autonomous mobile robots with automated planning.Journal of Physical Agents, 5(1):3–13, 2011.

Elaine Rich and Kevin Knight.Inteligencia Artificial.McGraw-Hill, Inc., 1994.Segunda edicion.

Jussi Rintanen.Complexity of concurrent temporal planning.In Proceedings of ICAPS’07, pages 280–287, 2007.

Stuart Russell and Peter Norvig.Artificial Intelligence: A Modern Approach.Prentice Hall, 1995.

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.

Peter Shell and Jaime G. Carbonell.Towards a general framework for composing disjunctive and iterativemacro-operators.In Proceedings of the Eleventh International Joint Conference on ArtificialIntelligence, 1989.

Reid Simmons.Concurrent planning and execution for autonomous robots.In IEEE International Conference on Robotics and Automation, pages 46–50,1992.

David E. Smith and Daniel S. Weld.Temporal planning with mutual exclusion reasoning.In Proceedings of IJCA’99, pages 326–337, 1999.

Mark Stefik.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, andJim Blythe.Integrating planning and learning: The PRODIGY architecture.Journal of Experimental and Theoretical AI, 7:81–120, 1995.

Daniel S. Weld.

An introduction to least commitment planning.AI Magazine, 15(4):27–61, 1994.

Hakan L. S. Younes and Michael L. Littman.PPDDL1.0: An extension to pddl for expressing planning domains withprobabilistic effects.Technical Report CMU-CS-04-167, 2004.