Planificaci n

Anuncio
Inteligencia Artificial
Planificación
Ingeniería Informática, 4º
Curso académico: 2011/2012
Profesores: Ramón Hermoso y Matteo Vasirani
–1–
Inteligencia Artificial
4º Ing. Sup. Inf
Tema 2: Agentes basados en Búsqueda
Resumen:
2. Agentes basados en búsqueda
2.1. Búsqueda en espacios de estados
2.2 Búsqueda no-informada
2.3. Búsqueda heurística
2.4. Búsqueda multiagente
2.5. Búsqueda con espacios estructurados
–  Planificación
–  Satisfacción de Restricciones
–2–
Inteligencia Artificial
4º Ing. Sup. Inf
Problemas de representaciones monolíticas de estados
•  representación de los conocimientos a priori del agente
– 
– 
– 
– 
– 
estado inicial: símbolo (s0 )
estados sucesores: función expandir ( s7  {s8, s10, s12, s27, s112} )
estados meta: función meta? ( s112  true )
coste de operador: función ( c(s7 , s112)  5 )
heurísticas: función h* ( s7  235 )
•  se abstrae completamente de las características de los estados
–  ¿bloque A encima de bloque B?, ¿el agente se encuentra en Radovac?, …
•  Problema:
–  complejidad de la representación del conocimiento (p.e. expandir)
–  mantenibilidad del conocimiento
•  Solución:
–  tomar en cuenta la estructura de los estados
–  definir un estado no por su nombre sino por el conjunto de sus propiedades
–3–
Inteligencia Artificial
4º Ing. Sup. Inf
Planificación: Representación de estados tipo STRIPS
Representación básica tipo STRIPS:
•  Un estado se describe por el conjunto de propiedades relevantes que se dan en él
•  Propiedades relevantes para caracterizar estados en un mundo con 3 bloques
{ on(A,B), on(A,C), on(A,T), on(B,A), on(B,C), on(B,T), on
(C,A), on(C,B), on(C,T), clear(A), clear(B), clear(C) }
•  Ejemplo: propiedades del estado S de la derecha:
{ on(B,A), on(A,C), on(C,T), clear(B) }
B
A
C
•  No todas las combinaciones de propiedades son consistentes :
{ on(B,A), on(A,B) } no representa un estado válido
–4–
Inteligencia Artificial
4º Ing. Sup. Inf
Operadores STRIPS
Operador STRIPS: <nombre>(<PC>,<A>,>E>)
–  Precondición PC: conjunto de propiedades de un estado que han de darse antes
de poder aplicar el operador
–  Lista de adiciones A: conjunto de las nuevas propiedades del estado resultado de
aplicar el operador
–  Lista de eliminaciones E: conjunto de las propiedades del estado que dejan de
darse después de aplicar el operador (subconjunto de PC)
–  Ejemplos:
move(A,B,C)
PC: On(A,B), Clear(A), Clear(C)
E:
On(A,B), Clear(C)
A:
On(A,C), Clear(B)
move(B,A,T)
PC: On(B,A), Clear(B)
E:
On(B,A)
A:
On(B,T), Clear(A)
–  Operadores del mundo con 3 bloques:
{ move(A,B,C), move(A,B,T), move(A,C,B), move(A,C,T), move
(B,A,C), move(B,A,T), move(B,C,A), move(B,C,T), move
(C,B,A), move(C,B,T), move(C,A,B), move(C,A,T),
move(A,T,B), move(A,T,C), move(B,T,A), move(B,T,C),
move(C,T,A), move(C,T,B) }
–5–
Inteligencia Artificial
4º Ing. Sup. Inf
Ejecución de operadores STRIPS
•  Operadores aplicables:
–  un operador Op es aplicable en un estado S si se cumple su
PCOp en S, es decir si
PCOp ⊆ S
•  Ejecución de operadores:
–  al ejecutar un operador aplicable Op en un estado S, se
eliminan las propiedades de la lista E del estado S y se
añaden las propiedades de la lista A
S ← S - EOp ∪ AOp
–6–
Inteligencia Artificial
4º Ing. Sup. Inf
Ejemplo: ejecución de un operador STRIPS
B
A
C
move(B,A,T)
PC: On(B,A)
Clear(B)
Lista E de
eliminaciones
On(B,A)
On(A,C)
On(C,T)
Clear(B)
Lista A de
adiciones
Sin cambios
A
C B
On(B,T)
Clear(A)
On(A,C)
On(C,T)
Clear(B)
Asunción del mundo cerrado
–7–
Inteligencia Artificial
4º Ing. Sup. Inf
Algoritmos: Planificación progresiva
•  Espacio de búsqueda:
–  Partiendo del estado inicial, se van ejecutando los operadores aplicables
–  Los operadores sirven para implementar la función expandir
•  Expandir(S): Conjunto cuyos elementos son los conjuntos de propiedades
obtenidas al ejecutar los operadores aplicables en S
•  Algoritmos:
–  Búsqueda no informada: amplitud, profundidad, ...
–  Búsqueda heurística: A*, …
–8–
Inteligencia Artificial
4º Ing. Sup. Inf
Planificación progresiva
•  Ejemplo:
On(B,A)
Clear(T)
On(A,C)
On(C,T)
Clear(B)
...
Move(B,A,T)
...
On(B,T)
Clear(A)
Clear(T)
On(A,C)
On(C,T)
Clear(B)
•  Problemas: Factor de ramificación elevado
...
On(B,T)
On(A,T)
On(C,T)
Clear(C)
Clear(B)
Clear(A)
Clear(T)
...
...
...
On(A,B)
Clear(C)
On(B,T)
Clear(A)
Clear(T)
On(C,T)
...
...
–  El estado inicial se describe por todas las propiedades que podrían ser relevantes
(p.e. las posiciones de 10 bloques)
–  La descripción del estado meta suele ser parcial, es decir sólo contiene lo que
realmente importa ( p.e. las posiciones de 3 bloques)
–9–
Inteligencia Artificial
4º Ing. Sup. Inf
Planificación regresiva
•  Idea: aplicar operadores al revés
–  regresar conjuntos de propiedades meta por operadores, dando lugar a otros
conjuntos de propiedades meta
–  reducir la diferencia entre los conjuntos de propiedades meta y el estado inicial,
hasta que todas las propiedades meta se den en el estado inicial
•  Regresar un estado S por un operador Op: Calcular el conjunto de
propiedades más débil S para que la aplicación de Op lleve a S (precondición
más débil):
−  Eliminar la lista A de S y añadir los elementos de PC: S ← S - AOp ∪ PCOp
–  Aplicabilidad: ningún elemento de S es eliminado por Op (e.d.: S ∩ EOp = ∅)
On(C,T)
–  Ejemplo:
On(C,T)
PCOp
S
On(B,C)
Clear(B)
Clear(A)
On(A,T)
Move(A,T,B)
On(B,C)
On(A,B)
AOp
S
–  Cuidado: No todos los estados que resultan de la regresión son consistentes
– 10 –
Inteligencia Artificial
4º Ing. Sup. Inf
Planificación regresiva
...
...
...
Ej.: mundo con 3 bloques: A, B y C
Clear(B)
Clear(A)
On(A,C)
On(C,T)
Clear(B)
Clear(A)
On(A,T)
On(C,T)
On(A,B)
Clear(C)
On(C,A)
Move(A,C,B)
Move(A,T,B)
On(A,B)
On(C,T)
propiedades
meta
Move(C,A,T)
Move(C,B,T)
On(A,B)
Clear(C)
On(C,B)
– 11 –
Inteligencia Artificial
4º Ing. Sup. Inf
Planificación con la heurística STRIPS
¿Cómo combatir aún más la complejidad de la planificación?
•  Heurística STRIPS:
–  Generar subplanes para alcanzar cada una de las propiedades meta aparte
–  El plan final es una concatenación de estos subplanes
•  Planificación tipo STRIPS:
–  Elegir una propiedad Pi que no se cumple en S0
–  Generar un subplan para al propiedad meta Pi a partir del estado inicial S0
•  genera una secuencia de operadores de forma regresiva (si es posible)
•  ejecutar esta secuencia a S0, dando lugar a una nueva situación S1
–  Elegir propiedad Pj que no se cumple en S1
–  Generar un subplan para la propiedad meta Pj a partir del estado actual S1
•  genera una secuencia de operadores de forma regresiva (si es posible)
•  ejecutar esta secuencia a S1, dando lugar a una nueva situación S2
–  . . .
–  Si una propiedad meta Pk (alcanzada por un subplan anterior) ha sido destruida
al alcanzar posteriormente una propiedad meta Pl, entonces rehacer Pk
– 12 –
Inteligencia Artificial
4º Ing. Sup. Inf
Planificación con la heurística STRIPS
Estado inicial
B
A
C
B
A
C
move(B,A,T)
Estado meta
A
C B
move(A,C,T)
C
B
A
on (A, T)
on (B, A)
on (C, B)
Meta
on(A,T)
A C B
move(B,T,A)
C
Meta
B
on(C,B)
A
move(C,T,B)
– 13 –
B
Meta
C A on(B,A)
Inteligencia Artificial
4º Ing. Sup. Inf
Planificación con la heurística STRIPS: Problemas
B
A
C
move(B,A,T)
A
C B
Meta
on(A,T)
move(A,C,T)
A C B
Problema:
•  plan subóptimo
•  orden equívoco de submetas
Rehacer
Meta
on(C,B)
move(C,T,B)
C
Meta
A B on(C,B)
Meta
on(B,A)
C
B
A
B
A C
move(C,T,B)
move(C,B,T)
A C B
move(B,T,A)
– 14 –
Inteligencia Artificial
4º Ing. Sup. Inf
Planificación con la heurística STRIPS
Algoritmo recursivo no determinista:
•  Entradas:
•  Salidas:
–  El estado actual S
–  Estado meta Metas
–  Plan generado para llegar a S
•  Consulta: STRIPS(S0,Metas,[])
–  Un estado SMeta en el que se cumplen
todos los objetivos de Metas
–  Plan para transformar S en SMeta
–  Si no hay tal plan, devuelve false
STRIPS(S,Metas,Plan) devuelve (SMeta, PlanMeta) ó false
Mientras que Metas ⊆ S Hacer
% Mientras haya Metas no satisfechas en S
(1) Elegir M∈Meta tal que M∉S
% M no está satisfacha en S
(2) Elegir operador Op tal que M∈AOp
% Op puede alcanzar M
(3) (S,Plan) ← STRIPS(S,PCOp,Plan)
% Alcanzar precond. de Op
(4) Si STRIPS devuelve false Entonces falla
(5) S ← S - EOp ∪ AOp
% aplicar el Op al nuevo estado S (resultado de (3))
(6) Plan ← Plan + Op
% añadir el Op al final de nuevo Plan (resultado de (3))
Fin
Devolver(S,Plan)
– 15 –
Inteligencia Artificial
4º Ing. Sup. Inf
Planificación con la heurística STRIPS
Simulación a mano del la planificación con la heurística STRIPS
•  Generación de un Árbol y/o
–  Nodos y : propiedades
–  Nodos o : operadores
•  Ejemplo: Problema (simplificado) de las Torres de Hanoi
A
B
A
C
D1
D2
D3
B
?
Estado inicial
?
C
?
D3
Estado meta
– 16 –
Inteligencia Artificial
4º Ing. Sup. Inf
Ejemplo: Dominio de las Torres de Hanoi
•  3 discos (D1, D2, D3) y 3 agujas (A, B, C)
•  Conjunto de propiedades:
–  on(D1,D2), on(D1,D3), on(D1,A), on(D1,B), on(D1,C), on(D2,D3), on(D2,A), …
–  clear(D1), clear(D2), clear(D3): no hay nada encima del disco
–  clear(A), clear(B), clear(C): no hay ningún disco en la aguja
–  NO incluye propiedades no compatibles con el dominio:
•  on(D2,D1), on(D3,D1), on(D2,D1), on(D3,2), on(A,D1), on(B,D3), …
•  Conjunto de operadores:
–  P.e. : mover(D1,D2,D3)
PC: { clear(D1), clear(D3), on(D1,D2) }
E: { on(D1,D2), clear(D3) }
A: { on(D1,D3), clear(D2) }
– 17 –
Inteligencia Artificial
4º Ing. Sup. Inf
Ejemplo: Dominio de las Torres de Hanoi (más formal)
•  Individuos: I = {D1, D2, D3, A, B, C}
•  Predicados auxiliares:
–  menor(D1,D2), menor(D2,D3), menor(D3,A), menor(D3,B), menor(D3,C)
–  menor* es el cierre transitivo de menor
•  Conjunto de propiedades:
–  P = { on(x,y) : x,y∈I ∧ menor*(x,y) } ∪
{ clear(x) : x∈I }
•  Conjunto de operadores:
–  O = { mover(x,y,z) : x∈{D1, D2, D3} ∧ y,z ∈ I ∧ menor*(x,y) ∧ menor*(x,z) ∧ y≠z }
–  Plantilla para los efectos de los operadores:
mover( x , y , z )
PC: { clear( x ), clear( z ), on( x , y ) }
E: { on( x , y ), clear( z ) }
A: { on( x , z ), clear( y ) }
– 18 –
Inteligencia Artificial
4º Ing. Sup. Inf
Ejemplo: Torres de Hanoi
S0 = { on(D1,D2) ,
on(D2,D3) ,
on(D3,A) ,
clear(D1) ,
clear(B) ,
clear(C) }
Meta
On(D3,C)
Mover(D3,A,C)
On(D3,A)
Clear(D3)
A
Mover(D3,B,C)
B
C
D1
D2
D3
Clear(C)
S0
…
Mover(D2,D3,B)
Clear(D2)
On(D2,D3)
Mover(D1,D3,C)
Clear(B)
S1 = { on(D1,C) ,
on(D2,D3) ,
on(D3,A) ,
clear(D1) ,
clear(D2) ,
clear(B) }
S1
Mover(D1,D2,C)
Clear(D1)
S0
…
On(D1,D2)
S0
Mover(D1,D2,D3)
Clear(C)
S0
– 19 –
Inteligencia Artificial
4º Ing. Sup. Inf
Ejemplo: Torres de Hanoi
S1 = { on(D1,C) ,
on(D2,D3) ,
on(D3,A) ,
clear(D1) ,
clear(D2) ,
clear(B) }
On(D3,C)
Mover(D3,A,C)
On(D3,A)
Clear(D3)
S0
…
On(D2,D3)
S1
S1
Mover(D1,D2,C)
Clear(D1)
S0
Mover(D3,B,C)
D2
D3
B
C
D1
Clear(C)
S2
Mover(D2,D3,B)
Clear(D2)
A
…
Mover(D1,D3,C)
Clear(B)
S2 = { on(D1,C) ,
on(D2,B) ,
on(D3,A) ,
clear(D1) ,
clear(D2) ,
clear(D3) }
S1
Mover(D1,D2,D3)
On(D1,D2)
Clear(C)
S0
S0
– 20 –
Inteligencia Artificial
4º Ing. Sup. Inf
Ejemplo: Torres de Hanoi
S2 = { on(D1,C) ,
on(D2,B) ,
on(D3,A) ,
clear(D1) ,
clear(D2) ,
clear(D3) }
On(D3,C)
Mover(D3,A,C)
On(D3,A)
Clear(D3)
S0 S2
…
Clear(D2)
S1
Mover(D1,D2,C)
Clear(D1)
S0
D3
C
D1
D2
S3
Mover(D1,D3,C)
On(D2,D3)
Clear(B)
S1
S1
…
Mover(D3,B,C)
B
Clear(C)
S2
Mover(D2,D3,B)
A
Clear(D1)
S2
Clear(C)
S0
S0
On(D1,C)
Mover(D2,C,B)
Clear(D2)
S2
S2
S3 = { on(D1,D2) ,
on(D2,B) ,
on(D3,A) ,
clear(D1) ,
clear(D3) ,
clear(C) }
Mover(D1,D2,D3)
On(D1,D2)
…
Mover(D1,C,D2)
– 21 –
Inteligencia Artificial
4º Ing. Sup. Inf
Ejemplo: Torres de Hanoi
S3 = { on(D1,D2) ,
on(D2,B) ,
on(D3,A) ,
clear(D1) ,
clear(D3) ,
clear(C) }
On(D3,C)
Mover(D3,A,C)
On(D3,A)
Clear(D3)
S0 S2 S3
S2
…
Mover(D2,D3,B)
Clear(D2)
S1
Mover(D1,D2,C)
Clear(D1)
S0
A
B
C
S4
Mover(D3,B,C)
S3
S3
Mover(D1,D3,C)
Clear(D1)
S1
S1
S2
S0
S0
On(D1,C)
S2
Mover(D2,C,B)
Clear(D2)
S2
S4 = { on(D1,D2) ,
on(D2,B) ,
on(D3,C) ,
clear(D1) ,
clear(D3) ,
clear(A) }
Mover(D1,D2,D3)
Clear(C)
…
Mover(D1,C,D2)
Clear(B)
On(D1,D2)
D1
D2
Clear(C)
On(D2,D3)
…
D3
– 22 –
Inteligencia Artificial
4º Ing. Sup. Inf
Ejemplo: Torres de Hanoi
S4 = { on(D1,D2) ,
on(D2,B) ,
on(D3,C) ,
clear(D1) ,
clear(D3) ,
clear(A) }
On(D3,C)
Mover(D3,A,C)
On(D3,A)
Clear(D3)
S0 S2 S3
S2
…
Mover(D2,D3,B)
Clear(D2)
S1
Mover(D1,D2,C)
Clear(D1)
S0
A
B
C
S4
D3
Clear(C)
S3
S3
Mover(D1,D3,C)
…
Mover(D1,C,D2)
On(D2,D3)
Clear(B)
Clear(D1)
S1
S1
S2
…
D1
D2
Mover(D3,B,C)
On(D1,C)
S2
Mover(D2,C,B)
Clear(D2)
S2
Mover(D1,D2,D3)
On(D1,D2)
Clear(C)
S0
S0
– 23 –
Inteligencia Artificial
4º Ing. Sup. Inf
Planificación con la heurística STRIPS: Problemas
Implementación real:
•  En las implementaciones reales (deterministas) no hay oráculos
•  Problema:
–  una mala elección de metas y/o operadores puede llevar a planes
subóptimos
•  Solución:
–  aplicar algoritmos de búsqueda para determinar el orden óptimo en
la elección de operadores y metas
–  a costa de un aumento en la complejidad
– 24 –
Inteligencia Artificial
4º Ing. Sup. Inf
Planificación con la heurística STRIPS: Problemas
Anomalía de Sussman:
Estado inicial:
Estado meta:
On(A,B)
On(B,C)
C
A B
Plan óptimo:
C
A B
C A B
move(C,A,T)
B
C A
move(B,T,C)
– 25 –
A
B
C
A
B
C
move(A,T,B)
Inteligencia Artificial
4º Ing. Sup. Inf
Anomalía de Sussman
move(C,A,T)
C
A B
move(A,T,B)
C A B
A
C B
Meta
on(A,B)
move(B,T,C)
B
Meta
C
on(B,C)
A
Problema:
•  Es imposible encontrar el plan global
óptimo a partir de la concatenación de
los subplanes
– 26 –
Inteligencia Artificial
4º Ing. Sup. Inf
Anomalía de Sussman
La heurística STRIPS es una heurística fuerte:
•  La heurística STRIPS implica que las submetas on(B,C) y on(A,B)
son independientes, pero
–  para conseguir on(A,B) después de alcanzar la primera isla,
se destruye on(B,C)
–  para conseguir on(B,C) después de alcanzar la primera isla,
se destruye on(A,B)
•  No se puede generar un plan global óptimos a partir de subplanes óptimos,
debido a la linearización que impone la heurística STRIPS:
–  Deberían intercalarse los operadores de los subplanes óptimos
move(C,A,T) move(B,T,C) move(A,T,B)
Meta
on(A,B)
Meta
on(B,C)
– 27 –
Meta
on(A,B)
Inteligencia Artificial
4º Ing. Sup. Inf
Planificación Moderna: Búsqueda en el Espacio de Planes
Plan
S1
S0
Conjuntos de
propiedades
Espacio de situaciones
Operadores
S2
Espacio de planes
Operadores
Plan
Transformación
de planes
– 28 –
Inteligencia Artificial
4º Ing. Sup. Inf
Temas actuales en Planificación
•  Planificación avanzada:
–  Planificación no-lineal
–  Planificación jerárquica
–  Planificación continua
–  Planificación multiagente
–  GRAPHPLAN, SATPLAN
•  Aplicaciones reales:
–  Planificación de misiones (Hubble, Satélites, Robots, etc.)
–  Planificación de la producción (job-shop scheduling)
–  Transporte y logística (asignar aviones a puertas en aeropuertos,
asignar rutas a camiones etc.)
– 29 –
Inteligencia Artificial
4º Ing. Sup. Inf
Ejercicio 6.1
Exprese el siguiente escenario en la representación tipo STRIPS:
En una habitación hay un mono, una caja y un plátano, tal como indica la figura
(situación inicial). El objetivo del mono es tener el plátano. El mono puede:
–  ir de una posición a otra
–  empujar la caja de una posición a otra si está en la misma posición que ella y no está
sobre ella
–  subirse a la caja si está en la misma posición que ella
–  coger el plátano si está en encima de la caja
1
2
3
– 30 –
Inteligencia Artificial
4º Ing. Sup. Inf
Ejercicio 6.2
Planificación tipo STRIPS:
Aplique la planificación tipo STRIPS al
problema del mono del ejercicio 6.1.
– 31 –
Inteligencia Artificial
4º Ing. Sup. Inf
Ejercicio 6.3
Planificación tipo STRIPS:
Genere el árbol y/o para la planificación con
heurística STRIPS aplicado al problema del
mundo de los bloques de la transparencia 13
– 32 –
Inteligencia Artificial
4º Ing. Sup. Inf
Descargar