Planificaci´
on
Grupo de Planificaci´on y Aprendizaje (PLG) Departamento de Inform´atica
Escuela Polit´ecnica Superior Universidad Carlos III de Madrid
Resumen de las Sesiones de Planificaci´on
Planificaci´
on
Grupo de Planificaci´on y Aprendizaje (PLG) Departamento de Inform´atica
Escuela Polit´ecnica Superior Universidad Carlos III de Madrid
En Esta Secci´
on:
Representaci´on y Modelizaci´on M´etodos de Planificaci´on
Representaci´
on y Modelizaci´
on de Problemas de
Planificaci´
on
1 Introducci´on a la Planificaci´on de Tareas
Definici´on de Planificaci´on Autom´atica de Tareas M´etodos de Planificaci´on
Modelo Formal del Problema de Planificaci´on
Arquitectura de un Sistema de Planificaci´on Autom´atica Planificaci´on Cl´asica
2 Representaci´on y B´usqueda Representaci´on
Representaci´
on y Modelizaci´
on de Problemas de
Planificaci´
on
1 Introducci´on a la Planificaci´on de Tareas
Definici´on de Planificaci´on Autom´atica de Tareas M´etodos de Planificaci´on
Modelo Formal del Problema de Planificaci´on
Arquitectura de un Sistema de Planificaci´on Autom´atica Planificaci´on Cl´asica
2 Representaci´on y B´usqueda Representaci´on
M´
etodos de Planificaci´
on
3 Planificaci´on Lineal y No Lineal Planificaci´on Lineal: STRIPS Planificaci´on No Lineal
M´
etodos de Planificaci´
on
3 Planificaci´on Lineal y No Lineal Planificaci´on Lineal: STRIPS Planificaci´on No Lineal
Parte I
Representaci´
on y Modelizaci´
on de Problemas de
Introducci´on a la Planificaci´on de Tareas
Planificaci´
on
Grupo de Planificaci´on y Aprendizaje (PLG) Departamento de Inform´atica
Escuela Polit´ecnica Superior Universidad Carlos III de Madrid
En Esta Secci´
on:
1 Introducci´on a la Planificaci´on de Tareas
Definici´on de Planificaci´on Autom´atica de Tareas M´etodos de Planificaci´on
Modelo Formal del Problema de Planificaci´on
Arquitectura de un Sistema de Planificaci´on Autom´atica Planificaci´on Cl´asica
2 Representaci´on y B´usqueda
Representaci´on B´usqueda
¿Qu´
e es planificaci´
on?
Empresarios: establecimiento de planes de la empresa Abogados: establecimiento de planes de defensa del cliente Industriales: establecimiento de planes de movimiento de robots
Arquitectos: establecimiento de planes de dise˜no de edificios Inform´aticos: establecimiento de planes de desarrollo del sistema
Telecomunicaciones: establecimiento de planes de conexi´on Ej´ercito: establecimiento de planes de ataque/defensa
Log´ıstica de transportes: establecimiento de planes para llevar objetos/sujetos de un sitio a otro
¿Qu´
e tienen en com´
un?
B´usqueda en un espacio de problemas
Estado o situaci´on: descripci´on instant´anea
Acci´on u Operador: transformaci´on de un estado en otro Estado inicial: situaci´on de partida
Objetivo o meta: descripci´on 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 los objetivos
Heur´ısticas: conocimiento que permite obtener eficientemente el plan
Ejemplo en turismo
Estado:
situaci´on de una persona, restricciones de precio, tiempo, . . . precios, horarios y disponibilidad de los billetes de avi´on, tren, barco, autob´us, hoteles, etc. . . de diferentes compa˜n´ıas, Operadores: volar en un determinado vuelo, viajar en un determinado tren, coger un taxi, ir en coche, alojarse en un hotel, alojarse en una casa rural,. . .
Estado inicial: estamos en Madrid (nuestra casa) Meta: quiero pasar una semana en San Francisco
Ejemplo en turismo
Plan: coger taxi(Casa,AeropuertoBarajas) coger un vuelo(Mad,JFK,. . . ) coger un vuelo(JFK,SFO,. . . ) coger limusina(Aeropuerto,SFO,HotelSheraton) estar en hotel(HotelSheraton,. . . )Heur´ısticas: para ir a San Francisco utilizar avi´on, utilizar las compa˜n´ıas a´ereas en las que se tienen millas,. . .
¿C´
omo planificamos?
De m´ultiples formas
En funci´on de los fines (metas) y los medios (operadores) Descomponiendo problemas en subproblemas
Jer´arquicamente
Basado en la experiencia Reactivamente
Entre varios agentes Estableciendo prioridades
Aproximaciones a la planificaci´
on
Manual: herramientas que facilitan la labor (Imendio, Project)
Dependiente del dominio: programar para cada dominio un planificador
Independiente del dominio: funcionan en todos los dominios Ventajas e inconvenientes
Sistemas de transici´
on de estados
Σ = (S , A, E , γ) donde
S es el conjunto finito (o recursivamente enumerable) de estados
A es el conjunto finito (o recursivamente enumerable) de acciones
E es el conjunto finito (o recursivamente enumerable) de eventos
Algunas consideraciones
Son representables por un grafo: estados como nodos, acciones y eventos como arcos
Pueden ser deterministas o no deterministas Formas de definir objetivos
subconjunto de metas
metas que no pueden ser ciertas en ning´un momento y otras que deben ser ciertas siempre
funci´on de utilidad con recompensas y pagos (maximizaci´on o minimizaci´on)
tareas que debe conseguir el sistema (se pueden definir recursivamente)
Arquitectura cl´
asica
Entorno actuadores sensores Controlador ReacciónArquitectura cl´
asica
Entorno actuadores sensores Controlador Reacción PlanificaciónArquitectura cl´
asica
Entorno actuadores sensores Controlador Reacción Planificación SentimientosArquitectura cl´
asica
Entorno actuadores sensores Controlador Reacción Planificación Sentimientos Comportamiento socialArquitectura cl´
asica
Entorno actuadores sensores Controlador Reacción Planificación Sentimientos Comportamiento social Aprendizaje Localización y planificación de Comunicación trayectoriasSuposiciones iniciales
Conjunto de estados finito Completamente observable Determinista Est´atico Metas restringidas Planes secuenciales Tiempo impl´ıcito Planificaci´on off-line
Algunas cuestiones dif´ıciles
Nuestra visi´on del mundo es incompleta: racionalidad limitada El mundo cambia constantemente: dinamismo
Las acciones tardan en ejecutarse: razonamiento temporal Nuestras metas son contradictorias: dependencia entre metas Nuestro modelo del mundo falla muchas veces: incertidumbre Los planes no siempre son v´alidos: ejecuci´on y replanificaci´on No todos los planes son buenos: calidad
Nos adaptamos al mundo: aprendizaje Tardamos mucho en aprender: aprendizaje
El mundo de los bloques
Un conjunto de bloques, una mesa, y un brazo de un robot Todos los bloques son iguales de tama˜no, forma y color, diferenci´andose en el nombre
La mesa tiene extensi´on ilimitada
Cada bloque puede estar encima de la mesa, encima de un s´olo bloque, o sujeto por el brazo del robot
El brazo de robot s´olo puede sujetar un bloque cada vez Resolver problemas supone pasar de una configuraci´on (estado) inicial a un estado en el que sean ciertas unas metas
C B C B A D A
La log´ıstica de transportes
Conjunto de ciudades, con aeropuertos y oficinas de correos Conjunto de aviones que pueden volar entre los aeropuertos Conjunto de camiones que s´olo pueden llevar paquetes dentro de las ciudades
Conjunto de paquetes que deben ir de un sitio a otro, posiblemente situados en diferentes ciudades
Otros dominios
Competiciones de planificaci´on (1998, 2000, 2002, 2004, 2006)
http://icaps-conference.org
Aplicaciones reales: DeepSpace One, Spirit+Opportunity, Gesti´on de ascensores, UAV de vigilancia (WITAS), Bridge, Gesti´on de viajes, Proveedores de informaci´on
Representaci´on y B´usqueda
Planificaci´
on
Grupo de Planificaci´on y Aprendizaje (PLG) Departamento de Inform´atica
Escuela Polit´ecnica Superior Universidad Carlos III de Madrid
En Esta Secci´
on:
1 Introducci´on a la Planificaci´on de Tareas
Definici´on de Planificaci´on Autom´atica de Tareas M´etodos de Planificaci´on
Modelo Formal del Problema de Planificaci´on
Arquitectura de un Sistema de Planificaci´on Autom´atica Planificaci´on Cl´asica
2 Representaci´on y B´usqueda Representaci´on
Representaci´
on en planificaci´
on
Para que el ordenador pueda resolver problemas, hace falta decirle qu´e tiene que resolver en alg´unlenguaje(al igual que a nosotros)
Existen muchas formas de suministrar esa informaci´on La m´as empleada en planificaci´on autom´atica es lal´ogica de predicados
As´ı se representan los estados y los operadores
La l´ogica de predicados permite representar las cuestiones ciertas o falsas del mundo mediante:t´erminos,predicados,
conectivas, ycuantificadores
No hay una representaci´on ´unica y v´alida; cada persona representa los dominios de forma diferente
Representaci´
on de los estados
Los estados se representan definiendo un conjunto de predicados en(objeto/veh´ıculo,lugar), dentro(objeto,veh´ıculo),
en-ciudad(lugar,ciudad) y tipos
objeto(x), veh´ıculo(x)={avi´on(x),cami´on(x)},
lugar(x)={aeropuerto(x),oficina-correos(x)}, ciudad(x) Cada estado se representa por una conjunci´on de predicados instanciados
en(objeto1,aeropuerto1),en(avi´on1,aeropuerto1),
en(cami´on1,aeropuerto1),en(cami´on2,oficina-correos2),. . . Normalmente, se supone que lo que no aparece expl´ıcitamente representado en un estado es falso:suposici´on del mundo cerrado en(objeto1,x) ∀x 6=aeropuerto1
Representaci´
on de los operadores
Se deben representar los cambios que ocurren en el mundo por la aplicaci´on del operador:suposici´on strips
Se definen por tres listas:
precondiciones: condiciones que se tienen que cumplir en un estado para poder ejecutar el operador
a˜nadidos: cosas que pasan a ser ciertas por la ejecuci´on del operador
(hay que a˜nadirlas al estado)
borrados: cosas que dejan de ser ciertas por la ejecuci´on del operador
(hay que borrarlas del estado)
cargar-avi´on(objeto,avi´on,aeropuerto)
precondiciones: en(objeto,aeropuerto),en(avi´on,aeropuerto) a˜nadidos: dentro(objeto,avi´on)
Representaci´
on de los operadores
Se deben representar los cambios que ocurren en el mundo por la aplicaci´on del operador:suposici´on strips
Se definen por tres listas:
precondiciones: condiciones que se tienen que cumplir en un estado para poder ejecutar el operador
a˜nadidos: cosas que pasan a ser ciertas por la ejecuci´on del operador
(hay que a˜nadirlas al estado)
borrados: cosas que dejan de ser ciertas por la ejecuci´on del operador
(hay que borrarlas del estado)
cargar-avi´on(objeto,avi´on,aeropuerto)
precondiciones: en(objeto,aeropuerto),en(avi´on,aeropuerto) a˜nadidos: dentro(objeto,avi´on)
Estados en el mundo de los bloques
Se podr´ıan utilizar los siguientes predicados: encima(x,y): el bloque x est´a encima del y en-mesa(x): el bloque x est´a encima de la mesa libre(x): el bloque x no tiene ning´un bloque encima sujeto(x): el brazo del robot tiene cogido al bloque x
brazo-libre: el brazo del robot no tiene cogido a ning´un bloque Ejemplo: Estado inicial: encima(A,B),encima(B,D),en-mesa(D), en-mesa(C),libre(A),libre(C),brazo-libre C B C B A D A
Estado inicial Metas
Representaci´
on de operadores
QUITAR(x , y )
precondiciones: encima(x , y ),libre(x ),brazo-libre a˜nadidos: sujeto(x ),libre(y )
borrados: encima(x , y ),brazo-libre,libre(x ) LEVANTAR(x )
precondiciones: en-mesa(x ),libre(x ),brazo-libre a˜nadidos: sujeto(x )
Representaci´
on de operadores
PONER(x , y )
precondiciones: sujeto(x ),libre(y )
a˜nadidos: encima(x , y ),libre(x ),brazo-libre borrados: sujeto(x ),libre(y )
DEJAR(x )
precondiciones: sujeto(x )
a˜nadidos: en-mesa(x ),libre(x ),brazo-libre borrados: sujeto(x )
Ejemplos de operadores en log´ıstica
cargar-avi´on(objeto,avi´on,aeropuerto)
precondiciones: en(objeto,aeropuerto),en(avi´on,aeropuerto) a˜nadidos: dentro(objeto,avi´on)
borrados: en(objeto,aeropuerto)
descargar-avi´on(objeto,avi´on,aeropuerto)
precondiciones: dentro(objeto,aeropuerto),en(avi´on,aeropuerto) a˜nadidos: en(objeto,aeropuerto)
borrados: dentro(objeto,avi´on)
cargar-cami´on(objeto,cami´on,lugar)
precondiciones: en(objeto,lugar),en(cami´on,lugar) a˜nadidos: dentro(objeto,cami´on)
Ejemplos de operadores en log´ıstica
volar-avi´on(avi´on,aeropuerto1,aeropuerto2)
precondiciones: en(avi´on,aeropuerto1) a˜nadidos: en(avi´on,aeropuerto2) borrados: en(avi´on,aeropuerto1)
conducir-cami´on(cami´on,lugar1,lugar2,ciudad)
precondiciones: en(cami´on,lugar1),en-ciudad(lugar1,ciudad),en-ciudad(lugar2,ciudad) a˜nadidos: en(cami´on,lugar2)
Desde strips hasta pddl
El lenguaje de strips es muy simple
Se ampli´o el lenguaje, generando adl, que incorpora, entre otros: cuantificaci´on universal y existencial
efectos condicionales
Se necesitaba un lenguaje com´un para poder especificar dominios y problemas de forma com´un para todos los planificadores y se cre´o pddl
Ha tenido varias versiones hasta pddl2.1 (hay posteriores), que permite, entre otros:
especificaci´on de costes de ejecuci´on de operadores tipos para variables de operadores
Lenguaje est´
andar pddl. Dominio de la log´ıstica
(define (domain logistics)
(:requirements :strips :typing) (:types truck airplane - vehicle
package vehicle - physobj airport location - place city place physobj - object)
(:predicates (in-city ?loc - place ?city - city) (at ?obj - physobj ?loc - place) (in ?pkg - package ?veh - vehicle)) ...)
Dominio del mundo de los bloques
(create-problem-space ’bloques :current t) (ptype-of BLOQUE :top-type)
(OPERATOR levantar
(params <bloque1>)
(preconds ((<bloque1> BLOQUE)) (and (libre <bloque1>)
(en-mesa <bloque1>) (brazo-libre))) (effects ()
((del (en-mesa <bloque1>)) (del (libre <bloque1>)) (del (brazo-libre))
Dominio del mundo de los bloques
(OPERATOR dejar ...)(OPERATOR quitar
(params <bloque1> <bloque2>) (preconds ((<bloque1> BLOQUE)
(<bloque2> (and BLOQUE (diff <bloque1> <bloque2>)))) (and (libre <bloque1>)
(encima <bloque1> <bloque2>) (brazo-libre)))
(effects ()
((del (encima <bloque1> <bloque2>)) (del (libre <bloque1>))
(del (brazo-libre)) (add (sujeto <bloque1>)) (add (libre <bloque2>))))) (OPERATOR poner ...)
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)
Definici´
on 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-obj ob1 a2)))
Descripci´
on del problema
(setf (current-problem)
(create-problem (name cambia-torres)
(objects (A B C D bloque)) (state (and (en-mesa A)
(en-mesa B) (encima C A) (encima D B) (libre C) (libre D) (brazo-libre))) (goal (and (encima C B) (encima D A)))))
Operadores m´
as ricos
(: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)
B´
usqueda
B´usqueda hacia adelante (progresi´on): se ejecutan operadores hasta que se encuentre la soluci´on
Ejemplos: soar, ff, TlPlan
B´usqueda hacia atr´as (regresi´on): se comienza desde las metas, se seleccionan operadores que las a˜nadan y se a˜naden las precondiciones de los mismos al conjunto de metas Ejemplos: strips, ucpop, prodigy
B´
usqueda
B´usqueda hacia adelante (progresi´on): se ejecutan operadores hasta que se encuentre la soluci´on
Ejemplos: soar, ff, TlPlan
B´usqueda hacia atr´as (regresi´on): se comienza desde las metas, se seleccionan operadores que las a˜nadan y se a˜naden las precondiciones de los mismos al conjunto de metas Ejemplos: strips, ucpop, prodigy
B´
usqueda hacia adelante
C B A D B C C B A D C B A A D Metas: QUITAR(A,B) LEVANTAR(C)B´
usqueda hacia adelante
C B A D B C C B A D C B A A D Metas: QUITAR(A,B) LEVANTAR(C) C B C B C B A A A D D D DEJAR(A) PONER(A,C) PONER(A,B) ...B´
usqueda hacia atr´
as
B C B A D C B ... A C Estado inicial: A DEJAR(A) PONER(C,B)B´
usqueda hacia atr´
as
B C B A D C B ... A C Estado inicial: A DEJAR(A) PONER(C,B) A D ... A B ... A C ... A QUITAR(A,D) QUITAR(A,C) QUITAR(A,B) LEVANTAR(A)B´
usqueda 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)
B´
usqueda sin conocimiento
Amplitud vs. Profundidad
Hacia adelante vs. hacia atr´as vs. bidireccional Con costes vs. sin costes
B´
usqueda con conocimiento
Escalada, en Haz A∗, IDA∗, . . . Alfa-beta
Caracter´ısticas
Complejidad en tiempo y espacio Completud
Optimalidad Decidibilidad
Parte II
Planificaci´on Lineal y No Lineal
Planificaci´
on
Grupo de Planificaci´on y Aprendizaje (PLG) Departamento de Inform´atica
Escuela Polit´ecnica Superior Universidad Carlos III de Madrid
En Esta Secci´
on:
3 Planificaci´on Lineal y No Lineal Planificaci´on Lineal: STRIPS Planificaci´on No Lineal
strips
Representaci´
on de operadores
Problema del marco: ¿qu´e ocurre con el contexto del mundo cuando se ejecuta una acci´on?
Soluci´on(hip´otesis strips): s´olo cambian las cosas que aparecen en las post-condiciones de cada operador
B´usqueda:
Nodos: estado actual y pila de metas-operadores Nodo ra´ız: estado inicial y conjunci´on de metas
Heur´ıstica: seleccionar siempre alguno de los sucesores de cada nodo
Idea:
Meter en la pila las metas por conseguir y los operadores que consiguen dichas metas
Sacar de la pila las metas que sean ciertas en el estado actual y los operadores que se ejecuten
Algoritmo de strips
Repetir hasta que pila=φ OR no se puedan expandir m´as nodos
• Si la cima de la pila del nodo es una conjunci´on de metas
Si la conjunci´on es cierta en el estado Entonces se elimina de la pila
Si 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 pila Si no, Si hay bucle de meta Entonces retroceder
Si no, generar un sucesor por cada instanciaci´on de operador
que a˜nade dicha meta
Si hay sucesores Entonces elegir uno Si no, retroceder
• Si la cima de la pila del nodo es un operador instanciado Si el operador instanciado se puede ejecutar
Entonces ejecutar operador, quitarlo de la pila y a˜nadirlo al plan
Representaci´
on de operadores
QUITAR(x , y )
precondiciones: encima(x , y ),libre(x ),brazo-libre a˜nadidos: sujeto(x ),libre(y )
borrados: encima(x , y ),brazo-libre,libre(x )
LEVANTAR(x )
precondiciones: en-mesa(x ),libre(x ),brazo-libre a˜nadidos: sujeto(x )
borrados: en-mesa(x ),brazo-libre,libre(x )
PONER(x , y )
precondiciones: sujeto(x ),libre(y ) a˜nadidos: encima(x , y ),libre(x ),brazo-libre borrados: sujeto(x ),libre(y )
DEJAR(x )
precondiciones: sujeto(x )
a˜nadidos: en-mesa(x ),libre(x ),brazo-libre borrados: sujeto(x )
Ejemplo de strips
A
A B
Estado inicial (E )0 Metas
Ejemplo de strips
A
A B
Estado inicial (E )0 Metas
en−mesa(A) E0
en−mesa(A) DEJAR(A) E0
Ejemplo de strips
A
A B
Estado inicial (E )0 Metas
en−mesa(A) E0 en−mesa(A) DEJAR(A) E0 sujeto(A) DEJAR(A) en−mesa(A) E0
Ejemplo de strips
A
A B
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) E0 E sujeto(A) DEJAR(A) en−mesa(A) 0 LEVANTAR(A)
Ejemplo de strips
A
A B
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) E0 E 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 meta bucle de X brazo−libre en−mesa(A) libre(A)
en−mesa(A) libre(A)brazo−libre brazo−libre X X X X X en−mesa(A) libre(A) ...
Ejemplo de strips
A
A B
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) E0 E 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 meta bucle de X brazo−libre en−mesa(A) libre(A)
en−mesa(A) libre(A)brazo−libre brazo−libre X X X X X en−mesa(A) libre(A) ... libre(A) brazo−libreencima(A,B) QUITAR(A,B) sujeto(A) DEJAR(A) en−mesa(A) E0
Ejemplo de strips
A
A B
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) E0 E 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 meta bucle de X brazo−libre en−mesa(A) libre(A)
en−mesa(A) libre(A)brazo−libre brazo−libre X X X X X en−mesa(A) libre(A) ... libre(A) brazo−libreencima(A,B) QUITAR(A,B) sujeto(A) DEJAR(A) en−mesa(A) E0 E1 sujeto(A) DEJAR(A) en−mesa(A) B A E1
Ejemplo de strips
A
A B
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) E0 E 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 meta bucle de X brazo−libre en−mesa(A) libre(A)
en−mesa(A) libre(A)brazo−libre brazo−libre X X X X X en−mesa(A) libre(A) ... libre(A) brazo−libreencima(A,B) QUITAR(A,B) sujeto(A) DEJAR(A) en−mesa(A) E0 E1 sujeto(A) DEJAR(A) en−mesa(A) B A E1 E2 en−mesa(A) B A E 2
Problema: linealidad
strips asume independencia entre las metas, por lo que las trata linealmente: hasta que no encuentra un plan para obtener una meta, no pasa a las siguientes metas
No funciona cuando hay recursos limitados, por lo que es: incompleta: existe soluci´on, pero no la encuentra
Problema del cohete chino
B A A B C Marte Tierra Estado inicial Marte Metas
no ´optima: no encuentra la soluci´on ´optima
Anomal´ıa de Sussman
Estado inicial Metas
A C B A B C
Planificaci´
on no lineal
Consideraci´on de varias metas al mismo tiempo
Pensar con unconjunto de metas: no es necesario generar completamente un plan de una meta para estudiar al mismo tiempo 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 grafoen el que las metas (y los operadores) son nodos 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)
Planificaci´
on no lineal
Seg´un espacio de problemas:
Estados (strips, prodigy): nodos del ´arbol representan estados
Planes (noah, tweak, ucpop, snlp, o-plan): nodos del ´
arbol representan planes Seg´un plan generado:
Orden total: secuencia ´unica de operadores Orden parcial: m´ultiples secuencias posibles Seg´un toma de decisiones:
Compromiso casual: toman decisiones cont´ınuamente M´ınimo compromiso: s´olo toman decisiones cuando se ven forzados
Planificaci´on Basada en Estados
Planificaci´
on
Grupo de Planificaci´on y Aprendizaje (PLG) Departamento de Inform´atica
Escuela Polit´ecnica Superior Universidad Carlos III de Madrid
En Esta Secci´
on:
3 Planificaci´on Lineal y No Lineal
Planificaci´on Lineal: STRIPS Planificaci´on No Lineal
prodigy
An´alisis medios-fines con b´usqueda hacia atr´as (bidireccional) Las metas se tratan como un conjunto
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
Se puede definir conocimiento de control expl´ıcito para tomar las decisiones
´
Arbol de b´
usqueda gen´
erico de prodigy
operador o trabajar en una submeta 1 g 1 1 b 1 g 2 1 o meta meta meta meta meta Elige una Elige un operador Elige una instanciación Decide si ejecutar un ejecutar operador submeta
submeta ejecutar operador operador instanciación instanciación operador
Algunas definiciones
Una meta est´a pendiente si es una precondici´on de un operador seleccionado (incluyendo las metas iniciales) que no es cierta en el estado actual
Un operador es aplicable cuando todas sus precondiciones son ciertas en el estado actual
Operadores relevantes a una meta son aquellos que, si se ejecutara una de sus instanciaciones, conseguir´ıa que la meta fuera cierta en el estado
Camino sin salida
Bucle de meta
Todas las opciones han sido caminos sin salida No hay ninguna opci´on
Algoritmo de planificaci´
on de Prodigy4.0
Prodigy(E , M, O, C)
Mientras que las metas M no sean ciertas en el estado E Y
no se hayan sobrepasado los recursos l´ımite (tiempo o nodos) Y no se hayan explorado todos los posibles nodos
Si hay un camino sin salida, entonces retroceder Si no, Calcular el conjunto de operadores aplicables, A
Elegir una meta M ∈ M o un operador A ∈ A de acuerdo a C Si se ha seleccionado M, entonces:
Generar el conjunto O0∈ O de los operadores relevantes Elegir un operador O ∈ O0, de acuerdo a C
Generar el conjunto de instanciaciones del operador O, Oi
Elegir un operador instanciado Oi∈ Oi, de acuerdo a C
Si no, (se ha seleccionado un A):
Asignar E al estado despu´es de Ejecutar A Calcular el conjunto de metas pendientes M
Ejemplo de prodigy
A B B A Metas Estado 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) quitar levantar LEVANTAR(B) PONER(B,A) *finish*() *FINISH*() encima(B,A) levantar(A) en−mesa(A) brazo−libre libre(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 conocimiento de dominio
Aprendizaje de conocimiento de control para mejorar la
calidad Aprendizaje de conocimiento
de control para mejorar la eficiencia
Planificador
Apprentice Experiment
Observe Hamlet
Quality Prodigy/EBL Static Dynamic Alpine Prodigy/Analogy