• No se han encontrado resultados

Planificaci ´on Autom ´atica

N/A
N/A
Protected

Academic year: 2019

Share "Planificaci ´on Autom ´atica"

Copied!
56
0
0

Texto completo

(1)

Planificaci ´on Autom ´atica

Grupo PLG

Universidad Carlos III de Madrid

(2)

Indice

1

Introducci ´on

2

Planificaci ´on cl ´asica

3

Planificaci ´on neocl ´asica

4

Heur´ıstica

Planificaci ´on heur´ıstica

Redes de tareas jer ´arquicas

Conocimiento de control

Aprendizaje autom ´atico

(3)

Indice

1

Introducci ´on

2

Planificaci ´on cl ´asica

3

Planificaci ´on neocl ´asica

4

Heur´ıstica

Planificaci ´on heur´ıstica

Redes de tareas jer ´arquicas

Conocimiento de control

Aprendizaje autom ´atico

(4)

Indice

1

Introducci ´on

2

Planificaci ´on cl ´asica

3

Planificaci ´on neocl ´asica

4

Heur´ıstica

Planificaci ´on heur´ıstica

Redes de tareas jer ´arquicas

Conocimiento de control

Aprendizaje autom ´atico

(5)

Indice

1

Introducci ´on

2

Planificaci ´on cl ´asica

3

Planificaci ´on neocl ´asica

4

Heur´ıstica

Planificaci ´on heur´ıstica

Redes de tareas jer ´arquicas

Conocimiento de control

Aprendizaje autom ´atico

(6)

Indice

1

Introducci ´on

2

Planificaci ´on cl ´asica

3

Planificaci ´on neocl ´asica

4

Heur´ıstica

Planificaci ´on heur´ıstica

Redes de tareas jer ´arquicas

Conocimiento de control

Aprendizaje autom ´atico

(7)

Indice

1

Introducci ´on

2

Planificaci ´on cl ´asica

3

Planificaci ´on neocl ´asica

4

Heur´ıstica

Planificaci ´on heur´ıstica

Redes de tareas jer ´arquicas

Conocimiento de control

Aprendizaje autom ´atico

(8)

Indice

1

Introducci ´on

2

Planificaci ´on cl ´asica

3

Planificaci ´on neocl ´asica

4

Heur´ıstica

Planificaci ´on heur´ıstica

Redes de tareas jer ´arquicas

Conocimiento de control

Aprendizaje autom ´atico

(9)

Indice

1

Introducci ´on

2

Planificaci ´on cl ´asica

3

Planificaci ´on neocl ´asica

4

Heur´ıstica

Planificaci ´on heur´ıstica

Redes de tareas jer ´arquicas

Conocimiento de control

Aprendizaje autom ´atico

(10)

Indice

1

Introducci ´on

2

Planificaci ´on cl ´asica

3

Planificaci ´on neocl ´asica

4

Heur´ıstica

Planificaci ´on heur´ıstica

Redes de tareas jer ´arquicas

Conocimiento de control

Aprendizaje autom ´atico

(11)

Planificaci ´on jer ´arquica

Se distingue de la planificaci ´on cl ´asica en:

Qu ´e planifica: en vez de un conjunto de metas

G, el

conjunto de acciones que llevan a cabo una actividad o

tarea

C ´omo planifica: descomponiendo

tareas

en

subtareas

de

acuerdo con la definici ´on de varios

m ´etodos

Se diferencian:

Simple Task Networks (STNs): la descomposici ´on se aplica

en cumplimiento de unas precondiciones seg ´un una

jerarqu´ıa

Hierarchical Task Networks (HTNs): la descomposici ´on se

realiza en un conjunto de tareas que cumplen ciertas

restricciones

(12)

Tipos de planificaci ´on jer ´arquica

Los planes se van generando gradualmente de

operadores m ´as generales a m ´as concretos:

Estableciendo niveles de abstracci ´on 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 qu ´e se divide cada operador:

(13)

No lineal y jer ´arquica.

NOAH

Debido a Sacerdoti [Sacerdoti, 1977]

Mezcla planificaci ´on no lineal y jer ´arquica

T ´ecnica empleada

detalla cada operador del plan construido hasta ese

momento

por cada meta que no se consigue por ning ´un operador,

genera uno, sin tener en cuenta el orden respecto a los

dem ´as

analiza y cambia el plan utilizando un conjunto de cr´ıticos

Repeticiones

(14)

Simple Task Networks.

STN

s

Una

STN

es un grafo dirigido ac´ıclico

w

= (U

,

E

)

donde:

Cada nodo

u

U

tiene asociada una

tarea:

Instanciada

o no: si tiene o no t ´erminos variables

Primitiva

o no: si puede descomponerse o no

Cada arco

e

E

establece una relaci ´on de orden entre dos

tareas:

u

v

si y s ´olo si hay un camino desde

u

hasta

v

C

B B

C

invertir−pila (B)

dejar (B)

quitar (B,C) invertir−sobre−pila (C,B)

(15)

Simple Task Networks.

STN

s

C

B B

C

invertir−pila (B)

dejar (B)

quitar (B,C) invertir−sobre−pila (C,B)

(16)

M ´etodos

STN

Un

m ´etodo

STN

es una tupla

m

= (

name

(m)

,

task

(m)

,

precond

(m)

,

network

(m))

donde:

name

(

m

)

es el nombre del m ´etodo

task(

m

)

es una tarea no primitiva

precond(

m

)

son las

precondiciones

del m ´etodo

network(

m

)

son las

subtareas

del m ´etodo

Un problema de planificaci ´on

STN

es una tupla

P

= (s

0

,

w

,

O

,

M)

donde:

s

0

es el estado inicial

w

es una jerarqu´ıa de tareas

(17)

Ejemplo

STN

m ´etodo:

iniciar-inversi´

on (b1, b2)

tarea:

invertir-pila (b1)

preconds:

libre (b1), encima (b1, b2)

subtareas:

quitar (b1, b2), dejar (b1),

invertir-sobre-pila (b2, b1)

m ´etodo:

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)

m ´etodo:

finalizar-inversi´

on (b1, b2)

tarea:

invertir-sobre-pila (b1, b2)

preconds:

libre (b1), libre (b2), en-mesa (b1)

(18)

Ejemplo

STN

(cont.)

quitar (A,B) dejar (A) invertir−sobre−pila (B,A)

poner (B,A)

quitar (B,C) invertir−sobre−pila (C,B)

(19)

Resoluci ´on

Un plan

π

=

h

a

1

, . . . ,

a

n

i

es una soluci ´on del problema

P

= (s

0

,

w

,

O

,

M)

si y s ´olo si:

w

=

y

π

=

Dada una tarea no primitiva

u

w,

π

es una soluci ´on de

P

si

a

1

es aplicable en

s

0

y

π

=

h

a

2

, . . . ,

a

n

i

es una soluci ´on

de

P

0

= (

γ

(

s

0

,

a

1

)

,

w

u

,

O

,

M

)

Dada una tarea no primitiva

u

w,

π

es una soluci ´on de

P

si existe una jerarqu´ıa

w

0

a la que se llega con un m ´etodo

m

de modo que

π

es una soluci ´on de

(

s

0

,

w

0

,

O

,

M

)

Los modelos jer ´arquicos recorren los estados

expl´ıcitamente

Generan planes secuenciales

(20)

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 (m ´etodos y

acciones)

M ´etodos: est ´an formados por

tarea compuestas

precondiciones para poder realizar la descomposici ´on

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 planificaci ´on

STRIPS

(21)

M ´as sobre

HTN

s

Una

HTN

se define como

w

= (U

,

C)

donde

C

es un

conjunto de restricciones:

de precedencia:

u

v

antes-de:

before (

U

0

,

l

)

establece que en cualquier plan

π

soluci ´on de

P

,

l

debe ser cierto antes de

U

0

despu ´es-de:

after (

U

0

,

l

)

establece que en cualquier

plan

π

soluci ´on de

P

,

l

debe ser cierto despu ´es de

U

0

en-medio-de:

between (

U

0

,

U

00

,

l

)

establece que

l

debe

ser cierto despu ´es de

U

0

y mantenerse as´ı al menos hasta

el estado anterior a

U

00

Los m ´etodos

HTN

se describen entonces como:

(22)

Ejemplo

HTN

m ´etodo: iniciar-inversi´on (b1, b2)

tarea: invertir-pila (b1)

subtareas: u1=quitar (b1, b2), u2= dejar (b1),

u3= invertir-sobre-pila (b2, b1) restriccs: u1≺u2,u2≺u3,before ({u1}, libre (b1)),

before ({u1}, encima (b1,b2)),before ({u1}, brazo-libre),

before ({u3}, libre (b1))

m ´etodo: invertir (b1, b2, b3)

tarea: invertir-sobre-pila (b1, b2)

subtareas: u1= quitar (b1, b3),u2= poner (b1, b2),

u3= invertir-sobre-pila (b3, b1) restriccs: u1≺u2,u2≺u3,before ({u3}, libre (b1))

before ({u1}, encima (b1,b3)),before ({u1}, brazo-libre),

before ({u3}, libre (b1))

m ´etodo: finalizar-inversi´on (b1, b2)

tarea: invertir-sobre-pila (b1, b2)

(23)

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

(24)

M ´etodos (

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)

(25)

Resoluci ´on de problemas con

HTN

(26)

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

(27)

SHOP

2

SHOP

2 es un planificador

HTN

independiente del dominio

cuyos m ´etodos deben ser especializados en cada dominio

Como otros planificadores

HTN

,

SHOP

2 planifica las tareas

en el orden en que ser ´an ejecutadas

Adem ´as de

tareas

,

m ´etodos

y

operadores

,

SHOP

2 acepta

(28)

Algoritmo

SHOP

2 (

s

,

T

,

D

)

1

Escoger una tarea

t

T

que no tenga predecesoras de

acuerdo con las restricciones

2

Si

t

es una tarea primitiva:

Elegir una acci ´on

a

que unifique con

t

mediante

θ

y cuyas

precondiciones se cumplan en

s

Actualizar

s

borrando

del

(

a

)

y a ˜nadiendo

add

(

a

)

Eliminar

t

de

T

y aplicar

θ

3

Si

t

es una tarea no primitiva (o

compuesta

):

Elegir un m ´etodo

m

que descomponga

t

en subtareas

seg ´un

θ

Eliminar

t

de

T

y a ˜nadir las subtareas de

m

propagando las

restricciones

(29)

Aplicaciones

SIPE

: f ´abrica de cerveza

O

-

PLAN

: operaciones militares

(30)

Conocimiento de control

Planificaci ´on 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, . . . )

(31)

Reglas de control

Representaci ´on declarativa del conocimiento de control

Si

Condiciones

Entonces

Decisi ´

on

Condiciones

: sobre el meta-estado de la b ´usqueda

Decisiones

: sobre las alternativas en la b ´usqueda

(32)

Ejemplo de regla de control

(control-rule selecciona-unload-airplane

(if (and (current-goal (en <objeto> <sitio1>))

(true-in-state (en <objeto> <sitio2>))

(true-in-state (localizada-en <sitio1> <ciudad1>))

(true-in-state (localizada-en <sitio2> <ciudad2>))

(different-vars-p)

(33)

Condiciones (meta-predicados)

qu ´e cosas son ciertas sobre el estado

(true-in-state (dentro

<

objeto

> <

avi´

on

>

))

qu ´e (sub)meta se intenta conseguir

(current-goal (en

<

objeto

> <

aeropuerto

>

))

qu ´e operador se ha seleccionado

(current-operator descargar-avi´

on)

qu ´e metas hay pendientes

(some-candidate-goals ((en

<

objeto1

> <

aeropuerto

>

)))

de qu ´e tipo es un objeto

(34)

Puntos de decisi ´on (no deterministas)

planificaci ´on en espacio de estados: metas, operador,

instanciaci ´on

planificaci ´on en espacio de planes: operador, amenaza,

forma de solucionar amenazas

planificaci ´on jer ´arquica (HTN): m ´etodo a utilizar

planificaci ´on heur´ıstica: instanciaci ´on de operador

(progresi ´on) o meta (regresi ´on)

(35)

Tipos de reglas en

PRODIGY

Decisiones

Meta: qu ´e meta escoger

Operador: qu ´e operador utilizar para obtener una meta

Instanciaci ´on de operador: qu ´e valores asignar a las

variables del operador

Ejecutar un operador o trabajar en alguna submeta

(36)

Ejemplos en mundo de los bloques

(CONTROL-RULE SELECT-OP-UNSTACK-FOR-HOLDING

(if (and (current-goal (holding

<

x

>

))

(true-in-state (on

<

x

> <

y

>

))))

(then select operator UNSTACK))

(CONTROL-RULE SELECT-BINDINGS-UNSTACK-HOLDING

(if (and (current-goal (holding

<

x

>

))

(current-operator UNSTACK)

(true-in-state (on

<

x

> <

y

>

))))

(then select bindings ((

<

ob

>

.

<

x

>

) (

<

underob

>

.

<

y

>

))))

(CONTROL-RULE SELECT-OP-PUTDOWN-FOR-ARMEMPTY

(if (and (current-goal (arm-empty))

(37)
(38)
(39)

L ´ogicas temporales simples

Extienden la l ´ogica de predicados con operadores

modales:

φ

1

φ

2

:

φ

1

debe ser cierto hasta que lo es

φ

2

φ

:

φ

debe ser cierto siempre desde este momento

φ

:

φ

debe ser cierto en alg ´un estado desde este momento

φ

:

φ

debe ser cierto en el siguiente estado

Luego, propagan este conocimiento de control de un

estado al siguiente mediante progresi ´on

(40)

F ´ormulas temporales

Lenguaje natural:

“siempre es cierto que si un objeto est ´a

dentro de un avi ´on en un estado y el avi ´on no est ´a en la

ciudad destino del objeto, entonces en el siguiente estado

el objeto debe quedarse en el avi ´on”

Formalmente:

(

[p

:

airplane

(p)]

[l

:

at

(p

,

l)]

[o

:

in-wrong-city

(o

,

l)]

(41)

Programa

(always (forall (?p) (airplane ?p)

(exists (?l) (at ?p ?l)

(forall (?o) (in-wrong-city ?o ?l)

(implies (in ?o ?p)

(42)

Ejemplo en el mundo de los bloques

(def-defined-predicate (above ?x ?y)

(or (on ?x ?y)

(exists (?z) (on ?z ?y) (above ?x ?z))))

(def-defined-predicate (in-final-position ?x)

(or (and (on-table ?x)

(not (exists (?y) (goal (on ?x ?y)))))

(exists (?y) (on ?x ?y)

(and (not (goal (on-table ?x)))

(forall (?z) (goal (on ?x ?z))

(= ?z ?y))

(forall (?z) (goal (on ?z ?y))

(= ?z ?x))

(43)

Conocimiento de control

(always (forall (?x) (clear ?x)

(and (implies

(in-final-position ?x)

(next (and (not (holding ?x))

(forall (?y) (on ?y ?x)

(in-final-position ?y)))))

(implies

(bad-tower ?x)

(next (not (exists (?y) (on ?y ?x)))))

(implies

(and (on-table ?x)

(44)

Tambi ´en en precondiciones

(def-adl-operator (fly ?p ?from ?to)

(pre (?p) (airplane ?p) (?from) (at ?p ?from)

(?to) (airport ?to)

(and

(not (= ?from ?to))

(not (exists (?obj) (at ?obj ?from)

(move-by-plane ?obj ?from)))

(not (exists (?obj) (in ?obj ?p)

(unload-from-plane ?obj ?from)))

(or (goal ?obj ?to)

(exists (?obj) (at ?obj ?to)

(move-by-plane ?obj ?to))

(exists (?obj) (in ?obj ?p)

(unload-from-plane ?obj ?to)))))

(45)

Reglas de reescritura

(define-rule :name avoid-move-twice

:if (:operators ((?n1 (unstack ?b1 ?b2))

(?n2 (stack ?b1 ?b3 Table)))

:links (?n1 (on ?b1 Table) ?n2)

:constrains ((possibly-adjacent ?n1 ?n2)

(:neq ?b2 ?b3)))

:replace (:operators (?n1 ?n2))

:with (:operators (?n3 (stack ?b1 ?b3 ?b2))))

(define-rule :name avoid-undo

:if (:operators ((?n1 (unstack ?b1 ?b2))

(?n2 (stack ?b1 ?b2 Table)))

:constrains ((possibly-adjacent ?n1 ?n2)))

:replace (:operators (?n1 ?n2))

(46)

Conocimiento de control en funciones

(OPERATOR LOAD-TRUCK

(params <obj> <truck> <loc>)

(preconds ((<obj> OBJECT)

(<truck> TRUCK)

(<loc> (and LOCATION

(in-truck-city-p

<truck> <loc>))))

(and (at-obj <obj> <loc>)

(at-truck <truck> <loc>)))

(effects ()

(47)

Conocimiento de control en precondiciones

(OPERATOR STACK

(params <ob> <underob>)

(preconds ((<ob> OBJECT)

(<underob> (and OBJECT

(diff <ob> <underob>))))

(and (good-tower <underob>)

(clear <underob>)

(holding <ob>)))

(effects ()

((del (holding <ob>))

(del (clear <underob>))

(add (arm-empty))

(add (clear <ob> ))

(48)

Macro-operadores

Secuencias de operadores

(:action

load*fly-airplane*unload

:parameters (?p - airplane ?s - airport

?d - airport ?o - package)

:precondition (and (at ?p ?s)

(at ?o ?s)

(not (= ?s ?d)))

:effect (and (at ?p ?d)

(at ?o ?d)

(49)

Casos de plan

(inside−truck ob4 tr9)

(load−truck ob4 tr9 p3) (load−truck ob4 tr9 a3)

(at−truck tr9 p3)

(drive−truck tr9 a3 p3)

APPLY (drive−truck tr9 a3 p3)

(load−truck ob4 tr9 p3) APPLY

(at−obj ob4 a3)

(unload−airplane ob4 pl1 a3) (inside−airplane ob4 pl1)

(load−airplane ob4 pl1 a3)

(at−obj ob4 a3)

(unload−truck ob4 tr9 a3)

(inside−truck ob4 tr9)

Failure goal loop Failure goal loop n1 n8 n9 n10 n11 n12 n2 n3 n4 n5 n6 n7

(load−truck ob4 tr9 p3) ((load−truck ob4 tr9 a3)

(inside−truck ob4 tr9) (at−obj ob4 a3)))

(at−truck tr9 p3)

(inside−truck ob4 tr9)

:precond−of user :relevant−to :sibling−opscn1 (goal−loop cn2 :precond−of

(drive−truck tr9 a3 p3) :relevant−to

APPLY (drive−truck tr9 a3 p3)

APPLY (load−truck ob4 tr9 p3) cn1 cn2 cn3 cn4 cn5 cn6 cn3

(50)

Aprender planificadores

Reescribir el planificador: D

S

P

LANNER

[Winner and

Veloso, 2002,

Winner and Veloso, 2003]

Ejemplo de plan en el dominio Gripper

If (in-goal(at(?3:ball ?1:room)) and

true-in-state(at(?3:ball ?2:room)) and

true-in-state(at-robby(?1:room))) Then

Move(?1 ?2)

If (in-goal(at(?3:ball ?1:room)) and

true-in-state(at(?3:ball ?2:room)) and

true-in-state(at-robby(?2:room)) and

true-in-state(free-arm)) Then

Pick(?3 ?2)

Move(?2 ?1)

(51)

Pol´ıticas (MDP)

Tabla-

Q

: el refuerzo esperado en el tiempo

de aplicar acci ´

on

a

en el estado

s

Acciones

Estados

A

1

. . .

A

n

S

1

0.7

. . .

0.2

. . .

. . .

. . .

. . .

(52)

Indice

1

Introducci ´on

2

Planificaci ´on cl ´asica

3

Planificaci ´on neocl ´asica

4

Heur´ıstica

Planificaci ´on heur´ıstica

Redes de tareas jer ´arquicas

Conocimiento de control

Aprendizaje autom ´atico

(53)

Referencias

Fahiem Bacchus and Froduald Kabanza.

Using temporal logics to express search control knowledge for

planning.

Artificial Intelligence

, 116:123–191, 2000.

Ken Currie and Austin Tate.

O-Plan: the open planning architecture.

Artificial Intelligence

, 52(1):49–86, 1991.

Craig A. Knoblock.

Automatically generating abstractions for planning.

Artificial Intelligence

, 68, 1994.

Jonas Kvarnstr ¨om.

(54)

In

Proceedings of the Sixth International Conference on

Automated Planning and Scheduling

, pages 101–110. AAAI,

AAAI Press, 2002.

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.

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.

(55)

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 P ´erez, Daniel Borrajo,

Eugene Fink, and Jim Blythe.

Integrating planning and learning: The

PRODIGY

architecture.

Journal of Experimental and Theoretical AI

, 7:81–120, 1995.

Elly Winner and Manuela Veloso.

Analyzing plans with conditional effects.

In

Proceedings of the Sixth International Conference on Artificial

Intelligence Planning Systems

, Toulouse, France, April 2002.

(56)

DISTILL: Towards learning domain-specific planners by example.

Referencias

Documento similar