Subido por rebotlucion

nanopdf.com 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