Вы находитесь на странице: 1из 64

Planificacin

(Scheduling)
MSc. Edgar Taya Acosta
Universidad Nacional Jorge Basadre Grohmann


2
Planificacin
Empresarios: planes de la empresa
Abogados: planes de defensa del cliente
Industriales: planes de movimiento de robots
Arquitectos: planes de diseo de edificios
Informticos: planes de desarrollo del sistema
Telecomunicaciones: planes de conexin
Ejrcito: planes de ataque/defensa
Logstica de transportes: planes para llevar objetos
/sujetos de un sitio a otro

Qu es la planificacin?
3
Planificacin
Planificacin es el proceso de bsqueda y
articulacin de una secuencia de acciones que
permite alcanzar un objetivo.
Los entornos de aplicacin:
observables,
deterministas,
finitos,
estticos (los cambios suceden slo cuando acta
el agente) y
discretos (en tiempo, acciones, objetos y efectos)
PLANIFICACIN CLSICA
4
Algunas cuestiones difciles
Nuestra visin 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 vlidos: ejecucin y replanificacin
No todos los planes son buenos: calidad
Nos adaptamos al mundo: aprendizaje
Tardamos mucho en aprender: aprendizaje
La planificacin y la filosofa: creencias, intenciones y deseos
5
Referencias
[1] Nils Nilsson. Principios de Inteligencia Artificial.
Ediciones Daz de Santos, Madrid, 1987.

[2] Elaine Rich and Kevin Knight. Inteligencia Artificial.
McGraw-Hill, Inc., 1994. Segunda edicin.

[3] Stuart Russell and Peter Norvig. Inteligenci Artificial.
Un enfoque moderno.n (2 edicin) Prentice Hall,
2003.

6
ndice
1. Introduccin
2. Representacin
3. Orgenes de la planificacin
Anlisis de acciones y objetivos: STRIPS
4. Planificadores
Principio del menor compromiso. Planificacin de orden parcial
Razonamiento por fijacin de restricciones. TWEAK
Razonando sobre estados, hacia delante y hacia atrs.
PRODIGY
Planificacin con restricciones de tiempo y recursos
5. TRABAJOS
7
Agente de planificacin simple
Un agente percibe su ambiente y produce un
modelo del mismo. Dada una meta, llama a un
algoritmo adecuado Planificador ideal para
generar un plan de accin, el cual ejecuta cada
accin del plan una a una, y una a la vez.
Entorno
Modelo
Planificador
meta
Plan
Acciones
1. Introduccin
8
Agente de planificacin simple
Function SIMPLE-PLANNING-AGENT (percept) returns an action
static Knowledge base KB (incluye descripcin de acciones)
Plan p, inicialmente NoPlan,
Time t, inicialmente 0
local variables Goal G, StateDescription current
TELL( KB, MAKE-PERCEPT-SENTENCE (percept, t) )
current = STATE-DESCRIPTION(KB, t)
if p= NoPlan then
G = ASK( KB, MAKE-GOAL-QUERY(t ) )
p = IDEAL-PLANNER(current, G, KB)
end if
if p= NoPlan or p is empty then action = NoOP
else
action =FIRST(p)
p = REST(p)
TELL(KB, MAKE-ACTION-SENTENCE(action,t))
end if
t = t+1
return action
1. Introduccin
9
Solucionador de Problemas
basado en Bsqueda, SPB
Elementos representados en un SPB:
Acciones que generan descripciones de
estados nuevos
Estados completamente representados, usados
en heursticas, generar sucesores, probar
metas
Metas contra las cuales probar, como cajas
negras
Solucin o Plan como secuencia de acciones

1. Introduccin
10
Ejemplo con un SPB
Conseguir un litro de leche, pltanos y un taladro de
velocidades ajustables
Estado inicial: agente en casa, sin leche, sin pltanos y sin taladro
Conjunto de operaciones: todo lo que pueda hacer
Heurstica: nmero de cosas sin adquirir


Start
Ir al veterinario
Ir a la escuela
Ir a dormir
Ir al supermercado
Etc., etc.
Sentarse en una silla
Comprar atn
Comprar leche
Comprar platanos
Comprar perro
Hablar con loro
Seguir sentado
Leer un libro
End
1. Introduccin
11
Desventajas de SPB
Demasiadas acciones y estados que considerar
Solo evaluar estados no permite descartar acciones y
no se tiene idea de que intentar despus (adivinan)
Se fuerza al agente a decidir una accin inicial aunque
las acciones relevantes no obligan a ningn orden
No es posible trabajar en partes del problema ms
fciles de resolver
1. Introduccin
12
Cmo planificamos?
En funcin de los fines (metas) y los medios
(operadores)
Descomponiendo problemas en subproblemas
Jerrquicamente
Basado en la experiencia
Reactivamente
Entre varios agentes
Estableciendo prioridades

1. Introduccin
13
Ideas clave de la planificacin
Clave 1: la representacin de estados, objetivos y
acciones es abierta.
Lenguaje formal (ej: lgica de primer orden)

Estados y metas (objetivos) se representan por conjuntos
de sentencias lgicas
ej: en(super), tener(leche)

Las acciones se representan por descripciones lgicas de
precondiciones y efectos
ej: Op(ACTION: Comprar(leche),
PRECOND: en(supermercado),
EFECTO: tener(leche))
1. Introduccin
14
Clave 2: el planificador es libre de aadir acciones.
Aaden acciones donde se necesitan y no necesariamente en
una secuencia incremental desde el estado inicial, reduciendo
el factor de ramificacin

Clave 3: partes del mundo son independientes entre s.
Pueden usar estrategia divide y vencers cuando partes del
problema son independientes. Un Plan se divide en subplanes,
un subplan puede dividirse a su vez, y despus se combinan
soluciones para resolver todo el problema
1. Introduccin
Ideas clave de la planificacin
15
ndice
1. Introduccin
2. Representacin de estados, objetivo y operadores
3. Orgenes de la planificacin
Anlisis de acciones y objetivos: STRIPS
4. Planificadores
Principio del menor compromiso.Planificacin de orden parcial
Razonamiento por fijacin de restricciones. TWEAK
Razonando sobre estados, hacia delante y hacia atrs.
PRODIGY
Planificacin con restricciones de tiempo y recursos
5. TRABAJOS
16
2. Representacin
La mas utilizada en planificacin automtica es la
lgica de predicados.
La lgica permite expresar informacin mediante:
trminos, predicados, conectivas y cuantificadores.
x, y es_alumno(x) . es_asignatura(y) . [
aprobado(x, y) v matriculado(x, y)]
se_matricula(x, y)
No hay una representacin nica. Cada persona
representa los dominios de forma diferente.
17
Lenguajes de planificacin


Uno de los lenguajes desarrollados ha sido el de
STRIPS*.
Para ciertos problemas reales se ha demostrado
que STRIPS no posee suficiente expresividad.
Han surgido muchos lenguajes. Por ejemplo el
lenguaje ADL: Action Description Language
Las notaciones STRIPS y ADL son adecuadas para
muchos dominio reales.
2. Representacin
* STandford Research
Institude Problem Solver
18
Caractersticas STRIPS- ADL


Lenguaje STRIPS Lenguaje ADL
Los objetivos son conjunciones:
Pobre . desconocido
Se permite conjunciones y
disyunciones en objetivos:
Pobre . (famoso v inteligente)
Los efectos son conjunciones

Se permiten efectos condicionales:
cuando P: E, E es efecto slo
cuando P es satisfecho.
No tiene infraestructura para
soportar igualdades
Predicados de igualdad admisible
(x=y)
No tiene infraestructura para
soportar tipos
Las variables pueden tener tipos
como (a: avin)
2. Representacin
19
Caractersticas STRIPS- ADL


Lenguaje STRIPS Lenguaje ADL
Slo literales positivos en
estados: pobre, desconocido
Literales positivos y negativos:
rico, generoso
Hiptesis del mundo cerrado: los
literales no mencionados son
falsos
Hiptesis del mundo abierto: los
literales no mencionados son
desconocidos
El efecto P . Q, significa insertar
P y eliminar Q
El efecto P . Q, significa insertar
P y Q, y eliminar P . Q
Slo literales simples en objetivos Variables cuantificadas:
-x (en(P, x) . en(Q, x)), indica que
P y Q estn en el mismo sitio
2. Representacin
20
Representacin de los estados
Los estados se expresan definiendo un conjunto de predicados:
tiene_dinero(x, y), vuelo_reservado(x, vuelo, dia),
Vuelo(vuelo, origen, destino, hora_salida, hora_llegada), ...

Cada estado se representa por un conjunto de predicados
instanciados.
tiene_dinero(Pepe, 1.000), vuelo_reservado(Pepe, IB304, 3Abr06),
vuelo(IB304, Madrid, New_York, 12:05, 12:30),
vuelo(TWA2001, New_York, San_Francisco, 13:55, 17:20), ...

Es habitual en algunos planificadores que lo que no aparece
explcitamente representado en un estado es falso: suposicin del
mundo cerrado.
2. Representacin
21
Metodologa de diseo
1. De qu vamos a hablar?
El mundo de los bloques, un brazo de robot puede colocar un bloque
sobre otro o moverlo a otra posicin.
La meta es hacer una o ms pilas de bloques.

2. Vocabulario
Objetos representados por constantes
On(b,x)- bloque b sobre x, x es un bloque o la mesa
Move(b,x,y)- mover bloque b de x a y
Restriccin Clear(x)-
hay un espacio libre en x para poner un bloque
2. Representacin
22
Metodologa
3. Codificar operadores
Op(ACTION: Move(b,x,y),
PRECOND: On(b,x) .Clear(b) . Clear(y),
EFFECT: On(b,y) . Clear(x) . On(b,x) . Clear(y))

Op(ACTION: MoveToTable(b,x),
PRECOND: On(b,x) . Clear(b),
EFFECT: On(b,Table) . Clear(x) . On(b,x))

Otras restricciones: b =x=y

4. Codificar descripcin especfica del problema

5. Dar problemas al planificador para obtener planes
2. Representacin
23
Ejemplo 1- El mundo de bloques
Un conjunto de bloques, una mesa y un brazo de un robot.
Todos los bloques son iguales de tamao, forma y color. Se
diferencian en el nombre,
La mesa tiene extensin ilimitada
Cada bloque puede estar encima de la mesa, encima de un solo
bloque o sujeto por el brazo del robot.
La mano del robot slo puede sujetar un bloque cada vez.
Resolver problemas supone pasar de una configuracin (estado)
inicial a un estado en el que sean ciertas unas metas.

A
B
D
C
Estado inicial
A
Objetivo/ meta
C
B
2. Representacin
24
Ejemplo 1 objetos y restricciones
Se podran utilizar los siguientes predicados:
sobre(x, y) : el bloque x est encima del y.
en_mesa(x) : el bloque x est encima de la mesa.
libre(x) : el bloque x no tiene ningn bloque encima.
en_mano(x) : el robot tiene en su mano el bloque x
mano_libre : el robot no tiene ningn bloque en su mano





Estado inicial
sobre(A, B), sobre(B, D), en_mesa(D), en_mesa(C), libre(A),
libre(C), mano_libre
Metas: en_mesa(A), sobre(C, B)
A
B
D
C
Estado inicial
C
B
A
Objetivo/ meta
2. Representacin
25
Ejemplo1- operadores
DESAPILAR(x, y)
precondicin: sobre(x,y), libre(x), mano_libre
aadido: en_mano(x), libre(y)
borrado: sobre(x, y), mano_libre, libre(x)
COGER(x)
precondicin: en_mesa(x), libre(x), mano_libre
aadido: en_mano(x)
borrado: en_mesa(x), mano_libre, libre(x)
APILAR(x, y)
precondicin: en_mano(x), libre(y)
aadido: sobre(x, y), libre(x), mano_libre
borrado: en_mano(x), libre(y)
DEJAR(x)
precondicin: en_mano(x)
aadido: en_mesa(x), libre(x), mano_libre
borrado: en_mano(x)
2. Representacin
efecto: en_mano(x) . libre(y) . sobre(x, y)
. mano_libre . libre(x)
26
Ejemplo2- El mundo de Shakey
habitacin 1
P
A
S
I
L
L
O
habitacin 2
habitacin 3
habitacin 4
Shakey es un robot que se
puede mover entre varias
habitaciones,
empujar objetos, trepar a
objetos rgidos, encender y
apagar las luces.


Estado Inicial
Caja 1
Caja 2
Caja 3
Shakey
Interruptor 1
Interruptor 2
Interruptor 3
Interruptor 4
Puerta 1
Puerta 2
Puerta 3
Puerta 4
2. Representacin
27
Ejemplo 2- El mundo de Shakey
Operadores
Ir(x, y) - ir de locacin x a locacin y. La precondicin es
en(Shakey,x). x e y estn en la misma habitacin,
en(x,r).en(y,r). Por convencin, una puerta entre 2
habitaciones est en ambas.
Empujar(b, x, y) - empujar objeto b de ubicacin x a y.
Predicado caja y constantes para las cajas
Subir(b) - subir a una caja, y Bajar(b) - bajar de caja
Predicado: sobre(Shakey, suelo) , constante suelo
Precondicines: caja(b), en(Shakey,x) y en(b,x)
Encender(ls) - encender luz, y Apagar(ls)- apagar la luz.
Shakey debe estar sobre la caja en la posicin del interruptor.
2. Representacin
28
ndice
1. Introduccin
2. Representacin de estados, objetivo y operadores
3. Orgenes de la planificacin
Anlisis de acciones y objetivos: STRIPS
4. Planificadores
Principio del menor compromiso.Planificacin de orden parcial
Razonamiento por fijacin de restricciones. TWEAK
Razonando sobre estados, hacia delante y hacia atrs.
PRODIGY
Planificacin con restricciones de tiempo y recursos
5. TRABAJOS
29
Planificacin mediante pila de
objetivos. STRIPS


Una de las primeras tcnicas que se usaron para
componer objetivos, pila de objetivos. STRIPS*

La pila contiene objetivos y acciones.

En cada momento se conoce la descripcin del estado
actual.

Un conjunto de acciones con sus listas precondicin,
aadido y borrado.

Inicializar la pila con el estado final
3. Orgenes ...
* STandford Research
Institude Problem Solver
30
Algoritmo de STRIPS
Repetir hasta que pila= C OR no se puedan expandir ms nodos
Si la cima de la pila del nodo es un operador instanciado,
Si el operador instanciado se puede ejecutar,
ejecutar operador
quitarlo de la pila
aadirlo al plan
Si no, se introducen sus precondiciones en la pila
Si la cima de la pila del nodo es una conjuncin de metas
Si la conjuncin es cierta en el estado, 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, se elimina de la pila
Si no, Si hay bucle ciclo? de meta, retroceder
Si no generar un sucesor por cada instanciacin de operador que aade la meta
Si hay sucesores, elegir uno
Si no retroceder

3. Orgenes ...
31
Ejemplo STRIPS
COGER(A)
en_mano(A)
DEJAR(A)
en_mesa(A) E
0
E
0
en_mesa(A), libre(A), mano_libre
COGER(A)
en_mano(A)
DEJAR(a)
en_mesa(A)
ciclo
en_mesa(A)
E
0
DEJAR(A)
en_mesa(A)
E
0
en_mano(A)
DEJAR(A)
en_mesa(A)
E
0
DESAPLAR(A, B)
en_mano(A)
DEJAR(A)
en_mesa(A)
E
0
E
1
en_mano(A)
DEJAR(A)
en_mesa(A)
A
B
Estado inicial
A
Objetivo/ meta
DESAPILAR(x, y)
precondicin: sobre(x,y), libre(x), mano_libre
aadido: en_mano(x), libre(y)
borrado: sobre(x, y), mano_libre, libre(x)
COGER(x)
precondicin: en_mesa(x), libre(x), mano_libre
aadido: en_mano(x)
borrado: en_mesa(x), mano_libre, libre(x)
APILAR(x, y)
precondicin: en_mano(x), libre(y)
aadido: sobre(x, y), libre(x), mano_libre
borrado: en_mano(x), libre(y)
DEJAR(x)
precondicin: en_mano(x)
aadido: en_mesa(x), libre(x), mano_libre
borrado: en_mano(x)
DESAPILAR(x, y)
precondicin: sobre(x,y), libre(x), mano_libre
aadido: en_mano(x), libre(y)
borrado: sobre(x, y), mano_libre, libre(x)
COGER(x)
precondicin: en_mesa(x), libre(x), mano_libre
aadido: en_mano(x)
borrado: en_mesa(x), mano_libre, libre(x)
APILAR(x, y)
precondicin: en_mano(x), libre(y)
aadido: sobre(x, y), libre(x), mano_libre
borrado: en_mano(x), libre(y)
DEJAR(x)
precondicin: en_mano(x)
aadido: en_mesa(x), libre(x), mano_libre
borrado: en_mano(x)
DESAPILAR(x, y)
precondicin: sobre(x,y), libre(x), mano_libre
aadido: en_mano(x), libre(y)
borrado: sobre(x, y), mano_libre, libre(x)
COGER(x)
precondicin: en_mesa(x), libre(x), mano_libre
aadido: en_mano(x)
borrado: en_mesa(x), mano_libre, libre(x)
APILAR(x, y)
precondicin: en_mano(x), libre(y)
aadido: sobre(x, y), libre(x), mano_libre
borrado: en_mano(x), libre(y)
DEJAR(x)
precondicin: en_mano(x)
aadido: en_mesa(x), libre(x), mano_libre
borrado: en_mano(x)
DESAPILAR(x, y)
precondicin: sobre(x,y), libre(x), mano_libre
aadido: en_mano(x), libre(y)
borrado: sobre(x, y), mano_libre, libre(x)
COGER(x)
precondicin: en_mesa(x), libre(x), mano_libre
aadido: en_mano(x)
borrado: en_mesa(x), mano_libre, libre(x)
APILAR(x, y)
precondicin: en_mano(x), libre(y)
aadido: sobre(x, y), libre(x), mano_libre
borrado: en_mano(x), libre(y)
DEJAR(x)
precondicin: en_mano(x)
aadido: en_mesa(x), libre(x), mano_libre
borrado: en_mano(x)
E
0

B
E
1

A
B
E
2
A
3. Orgenes ...
E
1
DEJAR(A)
en_mesa(A)
E
2
en_mesa(A)
E
2
32
Ejemplo STRIPS
3. Orgenes ...
COGER(A)
en_mano(A)
DEJAR(A)
en_mesa(A) E
0
E
0
en_mesa(A), libre(A), mano_libre
COGER(A)
en_mano(A)
DEJAR(a)
en_mesa(A)
ciclo
en_mesa(A)
E
0
DEJAR(A)
en_mesa(A) E
0
en_mano(A)
DEJAR(A)
en_mesa(A)
E
0
DESAPILAR(A, B)
en_mano(A)
DEJAR(A)
en_mesa(A)
E
0
en_mano(A)
DEJAR(A)
en_mesa(A) E
1
DEJAR(A)
en_mesa(A)
E
1
E
2
A
B
Estado inicial
A
Objetivo/ meta
E
0

B
E
1

A
B
E
2
A
en_mesa(A)
E
2
33
Tablas Triangulares
Los planes se ejecutan en un mundo
real.
Las acciones no producen los efectos
deseados.
Tolerancias mecnicas y fallos de los
dispositivos.

ERRORES EN LA EJECUCIN DEL
PLAN
3. Orgenes ...
34
Tablas Triangulares
SOLUCIONES
Generar un nuevo plan, basado en la
nueva descripcin del estado despus
de cada paso. MUY COSTOSO
Control inteligente del progreso del plan,
basado en la propia informacin del
plan. COSTE EQUILIBRADO

3. Orgenes ...
35
Tablas Triangulares
Creacin de una tabla triangular
Dado un plan de n acciones se crea una
matriz triangular de n+1 (1..n+1) filas y n+1
(0..n) columnas


0
1
n -1
n
1
2
n
n + 1
3. Orgenes ...
36
Tablas Triangulares
Ejemplo

C
A B
E.I.
A
B
C E.F.
Plan: {desapilar(C, A), dejar(C),
coger(B), apilar(B, C), coger(A),
apilar(A, B) }
0
1
2
3
4
5
6
1
2
3
4
5
6
7
E. I.
E. F.
3. Orgenes ...
37
Tablas Triangulares
En la columna 0, se distribuye entre sus celdas los
predicados del Estado Inicial.
La fila n+1, incluye entre sus celdas los predicados del
Estado Final.
Cada columna i: 1..n, incluye en la parte superior la i-
sima accin del plan.
Cada accin i-sima del plan contiene en la i-sima
fila, las pre de la accin y en la i-sima columna las
post.
La distribucin de predicados del E.I. y de las post de
las acciones, se realiza en diferentes filas. en las que
son precondicin de la accin
3. Orgenes ...
38
Tablas Triangulares
Plan: {desapilar(C, A), dejar(C),
coger(B), apilar(B, C), coger(A),
apilar(A, B) }
sobre(C,A) .
libre(C) .
mano_libre
libre(B) .
en_mesa(B)
En_mesa(A)
0: E. I.
1: desapilar(C,A)
2: dejar(C)
3: coger(B)
4: apilar(B, C)
5: coger(A)
6: apilar(A, B)
1
2
3
4
5
6
7
C
A B
E.I.
E. I.= {en_mesa(A), en_mesa(B),
sobre(C,A), libre(C), libre(B), mano_libre}
7: E.F.
DESAPILAR(x, y)
precondicin: sobre(x,y), libre(x), mano_libre
aadido: en_mano(x), libre(y)
borrado: sobre(x, y), mano_libre, libre(x)
COGER(x)
precondicin: en_mesa(x), libre(x), mano_libre
aadido: en_mano(x)
borrado: en_mesa(x), mano_libre, libre(x)
APILAR(x, y)
precondicin: en_mano(x), libre(y)
aadido: sobre(x, y), libre(x), mano_libre
borrado: en_mano(x), libre(y)
DEJAR(x)
precondicin: en_mano(x)
aadido: en_mesa(x), libre(x), mano_libre
borrado: en_mano(x)
3. Orgenes ...
39
Tablas Triangulares
Ejecucin del Plan
Obtencin del estado actual del
entorno.
Bsqueda del ncleo concordante, i
si i= n+1 entonces FIN
sino ejecutar accin i-sima
3. Orgenes ...
40
Tablas Triangulares
Bsqueda del ncleo concordante
encontrado=falso, i= n+1, tope=i
mientras no encontrado y i/=0 hacer
j=0, seguir=cierto,
mientras j/=tope and seguir hacer
si TT(i, j) e EstadoActual entonces
tope=j-1, seguir=falso
sino j= j+1 finsi
finmientras
si i = tope and j=tope entonces encontrado cierto finsi
i=i-1
Finmientras i=tope
3. Orgenes ...
41
Tablas Triangulares
sobre(C,A) .
libre(C) .
mano_libre
en_mano(C)
libre(B) .
en_mesa(B)
mano_libre
libre(C) en_mano(B)
en_mesa(A) libre(A) mano_libre
libre(B) en_mano(A)
en_mesa(C) sobre(B, C) sobre(A, B)
0: E. I.
1: desapilar(C,A)
2: dejar(C)
3: coger(B)
4: apilar(B, C)
5: coger(A)
6: apilar(A, B)
1
2
3
4
5
6
7
7: E.F.
Ncleos de la tabla triangular, contiene
la informacin que se necesita para la
ejecucin del plan. En particular, para la
ejecucin de cada accin del plan.
3. Orgenes ...
encontrado=falso, i= n+1, tope= i
mientras no encontrado y i/=0 hacer
j=0, seguir=cierto
mientras j/=tope and seguir hacer
si TT(i, j) e EstadoActual entonces
tope:= j-1, seguir=falso
sino j:= j+1
finsi
finmientras
si i=tope and j=tope entonces encontrado cierto finsi
i:= i-1
Finmientras i=tope
42
Planificacin lineal. Problemas
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 (problema del cohete chino): existe solucin
pero no la encuentra; y
No ptima (anomala de Susman): no encuentra la
solucin ptima
C
A
B
Estado inicial
A
B
C
Objetivo/ meta
3. Orgenes ...
43
ndice
1. Introduccin
2. Representacin
3. Orgenes de la planificacin
Anlisis de acciones y objetivos: STRIPS
4. Planificadores
Principio del menor compromiso. Planificacin de orden
parcial
Razonamiento por fijacin de restricciones. TWEAK
Razonando sobre estados, hacia delante y hacia atrs.
PRODIGY
Planificacin con restricciones de tiempo y recursos
5. TRABAJOS
44
Clasificacin de Planificadores
Segn espacio de problemas:
+ Estados (STRIPS, PRODIGY): nodos del rbol representan
estados.
+ Planes (NOAH, TWEAK, UCPOP, SNLP, O-PLAN): nodos del
rbol representan planes.
Segn plan generado:
+ Orden total, secuencia nica de operadores.
+ Orden parcial: expresa mltiples secuencias posibles
Segn toma de decisiones:
+ Compromiso casual: se toman decisiones continuamente.
+ Mnimo compromiso: slo se toman decisiones cuando se ven
forzados.
NO HAY UNA TCNICA MEJOR QUE OTRA
4. Planificadores
45
Planificadores segn Espacio del
Problema
Movimientos en el espacio:
Modificar el estado del mundo mediante operador
Modelo del tiempo:
La profundidad del nodo en el espacio de bsqueda.
Plan almacenado en:
Series de transiciones de estados
Plan
1
Plan
2
Movimientos en el espacio:
Aadir operadores
Ordenar operadores
Ligar variables
O, en caso contrario, restringir el plan.
Modelo del tiempo:
Conjunto parcialmente ordenado de operadores.
Plan almacenado en:
Un nico nodo
Estados
Planes
Plan
0
4. Planificadores
46
Planificadores. Algunas propuestas
Algunas referencias*
HACKER (Sussman, 1975), sistema de propagacin automtica.
NOAH (Sacerdoti, 1975), primer planificador no lineal.
NONLIN (Tate, 1977), mejor
STRIPS, Algoritmo de Pila, en algoritmo de conjunto de objetivos
(Nilsson, 1980).
SNLP (Soderland y Weld)
MOLGEN (Stefik, 1981) y TWEAK (Chapman, 1987), tcnica fijacin
de restricciones.
PRODIGY (Fink & Veloso)
UCPOP (Penberthy & Weld)
WARPLAN, O-PLAN, SATPLAN, GRAPHPLAN, ...
*: pg. 466. Russell & Norvig
NOTAS BIBLIOGRFICAS
4. Planificadores
47
ndice
1. Introduccin
2. Representacin
3. Orgenes de la planificacin
Anlisis de acciones y objetivos: STRIPS
4. Planificadores
Principio del menor compromiso. Planificacin de
orden parcial
Razonamiento por fijacin de restricciones. TWEAK
Razonando sobre estados, hacia delante y hacia atrs.
PRODIGY
Programacin con restricciones de recursos
5. TRABAJOS
48
Principio del menor compromiso
Problema del calzado de los pies
Op(ACTION: ZapatoDerecho,
PRECOND:CalcetinDerechoPuesto,
EFECTO: ZapatoDerechoPuesto)

Op(ACTION: CalcetinDerecho,
EFECTO: CalcetinDerechoPuesto)

Op(ACTION: ZapatoIzquierdo,
PRECOND:CalcetinIzquierdoPuesto,
EFECTO: ZapatoIzquierdo Puesto)

Op(ACTION: CalcetinIzquierdo,
EFECTO: CalcetinIzquierdoPuesto)

Qu paso
va primero?
4. Planificadores
49
Principio del menor compromiso
Slo hay que hacer elecciones de lo que
interesa en cada momento, dejando las otras
elecciones para ms tarde

Planificador de orden parcial- algoritmo que puede
representar algunas acciones ordenadas entre s, y otras
quedan sin ordenar

Planificador de orden total- genera una lista de
pasos, conocido como linealizacin de un plan P al
aadir restricciones de orden a P.
4. Planificadores
50
Soluciones al problema de los
zapatos
Plan de orden parcial
Planes de orden total
start
CDer
CIzq
ZDer
ZIzq
finish
start
CDer
CIzq
ZIzq
ZDer
finish
start
CIzq
CDer
ZDer
ZIzq
finish
start
CIzq
CDer
ZIzq
ZDer
finish
start
CDer
ZDer
CIzq
ZIzq
finish
start
CIzq
ZIzq
CDer
ZDer
finish
start
CDer CIzq
ZDer ZIzq
finish
4. Planificadores
51
Definicin formal de Plan
Es una estructura de datos que consiste en conjuntos:
Acciones o Pasos: los operadores del problema
Restricciones de ordenamiento S
i
< S
j
,
Restricciones de instanciamiento de variables, de la
forma v=x, donde v es una variable y x una
constante u otra variable
Enlaces causales de la forma S
i

c
S
j
, que registran
el propsito de los planes, S
i
alcanza S
j
a travs de
c


4. Planificadores
52
Definicin formal de Plan
El plan inicial describe el problema sin resolver,
Pasos: Start y Finish
Ordenamiento: Start < Finish
Start no tiene precondiciones, y su efecto es aadir todas
las proposiciones verdaderas al estado inicial
Finish tiene la meta como precondicin y ningn efecto
Plan (STEPS: {S1: Op(ACTION: Start,
EFECTO: En(casa).Vender(SM,platno) .Vender(SM,leche). ...),
S2: Op(ACTION: Finish,
PRECOND: En(casa) . Tener(platno) .Tener(leche) .
Tener(taladro)))},
ORDERINGS. { S1<S2},
BINDINGS {}, LINKS {})
4. Planificadores
53
Definicin de Plan
Start
Finish
Estado Inicial
Estado Meta
Start
Finish
4. Planificadores
En(casa).Vender(SM,platno)
.Vender(SM,leche). ...
En(casa) . Tener(platno)
.Tener(leche) . Tener(taladro)
54
Soluciones
Cando tenemos una solucin?
Planes totalmente ordenados e instanciados
O con un plan completo y consistente
Cada precondicin se logra por otro paso.
S
i
logra precondicin c de S
j
si S
i
< S
j
y c e
Effects(S
i
) y No hay paso S
k
tal que c e
Effects(S
k
) donde S
i
< S
k
< S
j

No hay contradicciones en ordenacin o
instanciaciones de restricciones
Contradiccin: si S
i
< S
k
y S
k
< S
i
o v=A, v=B y
A=B, donde = y < son transitivas
4. Planificadores
55
Un plan es vlido si las precondiciones de todos los
operadores se satisfacen antes de ejecutar dicho
operador.
Un plan vlido que alcanza el objetivo G se dice que
es un plan correcto.
Un plan de orden parcial es un conjunto parcialmente
ordenado de operadores.
Una linearizacin de un plan de orden parcial es una
ordenacin total de los operadores consistente con el
plan de orden parcial.
4. Planificadores
Soluciones
56
Ejemplo de planificacin de
orden parcial
Finish
Start
En(casa), Vender(SM,platno)
Vender(SM,leche) Vender(FRR,taladro)
Tener(taladro), Tener(leche)
Tener(platno),En(casa)
Op(ACCIN:Start,
EFECTO: En(casa).Vender(SM,platno) .
Vender(SM,leche) . Vender(FRR,taladro))

Op(ACCIN:Finish,
PRECOND :En(casa) . Tener(platno) .
Tener(leche) . Tener(taladro))
Op(ACCIN:Ir(all), PRECOND: En(aqu), EFECTO:En(all) . En(aqu))
Op(ACCIN:Comprar(x), PRECOND: En(tienda) . Vender(tienda,x),
EFECTO:Tener(x))
4. Planificadores
57
Ejemplo de POP
1. El planificador solo aadir
acciones que logren una
precondicin no cumplida

Enlaces causales
tener(taladro),
tener(platanos),
tener(leche)

2. Refinamiento:
Buy(drill)
start
Buy(milk) buy(bananas)
At(s),
Sells(s,milk)
At(s),
Sells(s,drill)
At(s),
Sells(s,bananal)
have(milk),have(drill),have(bananas),at(home)
finish
Comprar
(taladro)
Comprar
(platanos)
Comprar
(leche)
Buy(drill)
start
Buy(milk) buy(bananas)
At(SM),
Sells(SM,milk)
At(HWS),
Sells(HWS,drill)
At(SM),
Sells(SM,bananal)
have(milk),have(drill),have(bananas),at(home)
finish
Comprar
(taladro)
Comprar
(platanos)
Comprar
(leche)
Op(ACCIN:Comprar(x),
PRECOND: en(tienda) . vender(tienda,x)
EFECTO:Tener(x))
4. Planificadores
Op(ACCIN:Start,
EFECTO: En(casa).Vender(SM,platno) .Vender(SM,leche) . Vender(FRR,taladro))

Op(ACCIN:Finish,
PRECOND: En(casa) . Tener(platno) .Tener(leche) . Tener(taladro))
tener(taladro)
tener(platanos)
Vender(SM, leche)
tener(platanos)
Vender(SM, platanos)
Vender(FRR, taladro)
58
Ejemplo de planificacin de
orden parcial
Buy(drill)
start
Buy(milk) buy(bananas)
At(SM),
Sells(SM,milk)
At(HWS),
Sells(HWS,drill)
At(SM),
Sells(SM,bananal)
have(milk),have(drill),have(bananas),at(home)
finish
Go(SM) Go(HWS)
At(x)
At(x)
Conflicto:
Ir(FRR) aade la condicin en(FRR) y borra en(casa)
Los vnculos causales de los planes parciales son vnculos protegidos.
Amenazas (pasos que podran eliminar o destruir las condicin protegida)
Las amenazas estn ordenas de forma que aparecen antes o despus del vnculo protegido.

Comprar
(taladro)
Comprar
(platanos)
Comprar
(leche)
Ir(FRR) Ir(SM)
Buy(drill)
start
Buy(milk) buy(bananas)
At(SM),
Sells(SM,milk)
At(HWS),
Sells(HWS,drill)
At(SM),
Sells(SM,bananal)
have(milk),have(drill),have(bananas),at(home)
finish
Go(SM) Go(HWS)
At(home) At(home)
Comprar
(taladro)
Comprar
(platanos)
Comprar
(leche)
Ir(FRR) Ir(SM)
Op(ACCIN:Ir(all),
PRECOND: En(aqu),
EFECTO:En(all) . En(aqu))
4. Planificadores
59
Resolucin de conflictos
Ante una amenaza, los pasos que pueden borrar la
condicin son ordenados antes o despus del enlace
protegido.
S1
S3
S2
c c
S3
c
S1
S2
c
Democin Promocin
S3
c
S1
S2
c
S1 logra c para S2
4. Planificadores
60
Amenazas posibles
Es el efecto en(aqui) del operador ir(FRR) una amenaza
para la precondicin en(casa) del otro operador ir(SM)?
Enfoques:
Resolver con una restriccin de igualdad: aqui=FRR
Resolver con una desigualdad, aqui = casa
Posponer hasta que sea necesario

Cmo asegurar qu instanciacin parcial logra la meta?
Un paso Si cumple una precondicin c del paso Sj si
1. Si<Sj y Si tiene un efecto que necesariamente unifica con c
2. No hay paso Sk tal que Si< Sk<Sj en alguna linearizacin
del plan, y Sk tiene un efecto que posiblemente unifica con
c
4. Planificadores
61
Solucin final
Buy(drill)
start
Buy(milk) buy(bananas)
At(SM),
Sells(SM,milk)
At(HWS),
Sells(HWS,drill)
At(SM),
Sells(SM,banana)
have(milk),have(drill),have(bananas),at(home)
finish
Go(SM)
Go(HWS)
At(home)
At(HW)
Go(home)
At(SM)
Menor compromiso: solo busca donde los planes interactan
Links causales permiten identificar un plan que deben abandonar
Comprar
(taladro)
Comprar
(platanos)
Comprar
(leche)
Ir(FRR)
Ir(SM)
Ir(casa)
en(casa)
en(FRR)
en(SM)
en(FRR)
vender(FRR, taladro)
en(SM)
vender(SM, platano)
en(SM)
vender(SM, leche)
tener(taladro), tener(platanos), tener(leche), en(casa)
4. Planificadores
62
Solucin final
Finish
Start
Ir(FRR)
Comprar (taladro)
Ir(SM)
Comprar(leche) Comprar(pltanos)
Ir(casa)
En(casa)
En(casa)
En(SM)
En(SM)
En(SM)
En(FRR)
En(FRR) Vender(FRR,taladro)
Vender(SM,leche)
Vender(SM,platno)
Tener(taladro)
Tener(platno)
Tener(leche)
4. Planificadores
63
Algoritmo Planificacin Orden
Parcial (POP)
Function POP (initial, goal, operators) returns plan
plan = MAKE_MINIMAL_PLAN(initial, goal)
loop do
if SOLUTION?(plan) then return plan
Sneed, c = SELECT_SUBGOAL(plan)
CHOOSE_OPERATOR(plan, operators, Sneed, c)
RESOLVE_THREATS(plan)
end
Function SELECT_SUBGOAL (plan) returns Sneed,c
pick a plan step Sneed from STEPS(plan) with precondition c not achieved
return Sneed,c
Procedure CHOOSE_OPERATOR (plan, operators, Sneed, c)
choose a step Sadd from operators or STEPS(plan) with effect c
if no such step then fail
add the causal link Sadd
c
Sneed a LINKS(plan)
add the ordering Sadd < Sneed to ORDERINGS(plan)
if Sadd is newly added step from operators then add Sadd to STEPS(plan)
add Start < Sadd < Finish to ORDERINGS(plan)
4. Planificadores
64
Algoritmo Planificacin Orden
Parcial (POP)
Procedure RESOLVE_THREATS (plan)
for each Sthreat that threatens link Si
c
Sj in LINKS(plan) do
choose either
Promotion: Add Sthreat < Si to ORDERINGS (plan)
Demotion: Add Sj < Sthreat to ORDERINGS (plan)
if not CONSISTENT(plan) then fail
end
4. Planificadores

Вам также может понравиться