Planificación Maite Urretavizcaya Isabel Fernández Grupo de Tutores Inteligentes de la FISS.
-
Upload
curro-blanco -
Category
Documents
-
view
221 -
download
0
Transcript of Planificación Maite Urretavizcaya Isabel Fernández Grupo de Tutores Inteligentes de la FISS.
Planificación
Maite Urretavizcaya
Isabel Fernández
Grupo de Tutores Inteligentes de la FISS
2
Planificación
Empresarios: planes de la empresa Abogados: planes de defensa del cliente Industriales: planes de movimiento de robots Arquitectos: planes de diseño de edificios Informáticos: planes de desarrollo del sistema Telecomunicaciones: planes de conexión Ejército: planes de ataque/defensa Logística de transportes: planes para llevar objetos
/sujetos de un sitio a otro
¿Qué es la planificación?
3
Planificación
Planificación es el proceso de búsqueda y articulación de una secuencia de acciones que permite alcanzar un objetivo.
Los entornos de aplicación: observables, deterministas, finitos, estáticos (los cambios suceden sólo cuando actúa
el agente) y discretos (en tiempo, acciones, objetos y efectos)
PLANIFICACIÓN CLÁSICA
4
Algunas cuestiones difíciles
Nuestra visión 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álidos: ejecución y replanificación No todos los planes son buenos: calidad Nos adaptamos al mundo: aprendizaje Tardamos mucho en aprender: aprendizaje La planificación y la filosofía: creencias, intenciones y deseos
5
Referencias
[1] Nils Nilsson. Principios de Inteligencia Artificial. Ediciones Díaz de Santos, Madrid, 1987.
[2] Elaine Rich and Kevin Knight. Inteligencia Artificial. McGraw-Hill, Inc., 1994. Segunda edición.
[3] Stuart Russell and Peter Norvig. Inteligenci Artificial. Un enfoque moderno.n (2ª edición) Prentice Hall, 2003.
6
Índice
1. Introducción2. Representación3. Orígenes de la planificación
Análisis de acciones y objetivos: STRIPS
4. Planificadores Principio del menor compromiso. Planificación de orden parcial Razonamiento por fijación de restricciones. TWEAK Razonando sobre estados, hacia delante y hacia atrás.
PRODIGY Planificación con restricciones de tiempo y recursos
5. TRABAJOS
7
Agente de planificación 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 acción, el cual ejecuta cada acción del plan una a una, y una a la vez.
Entorno Modelo
Planificador
meta
PlanAcciones
1. Introducción
8
Agente de planificación simple
Function SIMPLE-PLANNING-AGENT (percept) returns an actionstatic Knowledge base KB (incluye descripción 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 ifif p= NoPlan or p is empty then action = NoOPelse action =FIRST(p)
p = REST(p)TELL(KB, MAKE-ACTION-SENTENCE(action,t))
end if t = t+1return action
1. Introducción
9
Solucionador de Problemas basado en Búsqueda, SPB
Elementos representados en un SPB: Acciones que generan descripciones de
estados nuevos Estados completamente representados,
usados en heurísticas, generar sucesores, probar metas
Metas contra las cuales probar, como cajas negras
Solución o Plan como secuencia de acciones
1. Introducción
10
Ejemplo con un SPB
“Conseguir un litro de leche, plátanos y un taladro de velocidades ajustables”
Estado inicial: agente en casa, sin leche, sin plátanos y sin taladro
Conjunto de operaciones: todo lo que pueda hacerHeurística: número 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 atúnComprar lecheComprar platanos
Comprar perroHablar con loro
Seguir sentadoLeer un libro
End
1. Introducción
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 después (adivinan)
Se fuerza al agente a decidir una acción inicial aunque las acciones relevantes no obligan a ningún orden
No es posible trabajar en partes del problema más fáciles de resolver
1. Introducción
12
¿Cómo planificamos?
En función de los fines (metas) y los medios (operadores)
Descomponiendo problemas en subproblemas Jerárquicamente Basado en la experiencia Reactivamente Entre varios agentes Estableciendo prioridades
1. Introducción
13
Ideas clave de la planificación
Clave 1: la representación de estados, objetivos y acciones es abierta.
Lenguaje formal (ej: lógica de primer orden)
Estados y metas (objetivos) se representan por conjuntos de sentencias lógicas
ej: en(super), tener(leche)
Las acciones se representan por descripciones lógicas de precondiciones y efectos
ej: Op(ACTION: Comprar(leche), PRECOND: en(supermercado),
EFECTO: tener(leche))
1. Introducción
14
Clave 2: el planificador es libre de añadir acciones. Añaden acciones donde se necesitan y no
necesariamente en una secuencia incremental desde el estado inicial, reduciendo el factor de ramificación
Clave 3: partes del mundo son independientes entre sí. Pueden usar estrategia “divide y vencerás” cuando
partes del problema son independientes. Un Plan se divide en subplanes, un subplan puede dividirse a su vez, y después se combinan soluciones para resolver todo el problema
1. IntroducciónIdeas clave de la planificación
15
Índice
1. Introducción2. Representación de estados, objetivo y operadores3. Orígenes de la planificación
Análisis de acciones y objetivos: STRIPS
4. Planificadores Principio del menor compromiso.Planificación de orden parcial Razonamiento por fijación de restricciones. TWEAK Razonando sobre estados, hacia delante y hacia atrás.
PRODIGY Planificación con restricciones de tiempo y recursos
5. TRABAJOS
16
2. Representación
La mas utilizada en planificación automática es la lógica de predicados.
La lógica permite expresar información mediante: términos, predicados, conectivas y cuantificadores.
x, y es_alumno(x) es_asignatura(y) [ aprobado(x, y) matriculado(x, y)] se_matricula(x, y)
No hay una representación única. Cada persona representa los dominios de forma diferente.
17
Lenguajes de planificación
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. Representación
* STandford Research Institude Problem Solver
* STandford Research Institude Problem Solver
18
Características STRIPS- ADL
Lenguaje STRIPS Lenguaje ADLLos objetivos son conjunciones:
Pobre desconocido
Se permite conjunciones y disyunciones en objetivos:
Pobre (famoso inteligente)
Los efectos son conjunciones Se permiten efectos condicionales: cuando P: E, E es efecto sólo 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: avión)
2. Representación
19
Características STRIPS- ADL
Lenguaje STRIPS Lenguaje ADLSólo literales positivos en estados: pobre, desconocido
Literales positivos y negativos: rico, generoso
Hipótesis del mundo cerrado: los literales no mencionados son falsos
Hipótesis 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
Sólo literales simples en objetivos Variables cuantificadas:
x (en(P, x) en(Q, x)), indica que P y Q están en el mismo sitio
2. Representación
20
Representación 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 explícitamente representado en un estado es falso: suposición del mundo cerrado.
2. Representación
21
Metodología de diseño
1. ¿De qué vamos a hablar?1. ¿De qué vamos a hablar?““El mundo de los bloques”, un brazo de robot puede colocar un El mundo de los bloques”, un brazo de robot puede colocar un bloque sobre otro o moverlo a otra posición. bloque sobre otro o moverlo a otra posición. La meta es hacer una o más pilas de bloques.La meta es hacer una o más pilas de bloques.
2. Vocabulario2. VocabularioObjetos representados por constantesObjetos representados por constantesOn(b,x)On(b,x)- bloque b sobre x, x es un bloque o la mesa- bloque b sobre x, x es un bloque o la mesaMove(b,x,y)Move(b,x,y)- mover bloque b de x a y- mover bloque b de x a yRestricción Restricción Clear(x)Clear(x)- - hay un espacio libre en x para poner un bloquehay un espacio libre en x para poner un bloque
2. Representación
22
Metodología
3. Codificar operadores3. Codificar operadoresOp(ACTION: Move(b,x,y), Op(ACTION: Move(b,x,y), PRECOND: On(b,x) PRECOND: On(b,x) Clear(b) Clear(b) Clear(y), Clear(y), EFFECT: On(b,y) EFFECT: On(b,y) Clear(x) Clear(x) ¬On(b,x) ¬On(b,x) ¬Clear(y)) ¬Clear(y))
Op(ACTION: MoveToTable(b,x), Op(ACTION: MoveToTable(b,x), PRECOND: On(b,x) PRECOND: On(b,x) Clear(b), Clear(b), EFFECT: On(b,Table) EFFECT: On(b,Table) Clear(x) Clear(x) ¬On(b,x)) ¬On(b,x))
Otras restricciones: b Otras restricciones: b xxyy
4. Codificar descripción específica del problema4. Codificar descripción específica del problema
5. Dar problemas al planificador para obtener planes5. Dar problemas al planificador para obtener planes
2. Representación
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 tamaño, forma y color. Se diferencian en el nombre,
La mesa tiene extensión 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 sólo puede sujetar un bloque cada
vez. Resolver problemas supone pasar de una configuración
(estado) inicial a un estado en el que sean ciertas unas metas.
A
B
D C
Estado inicial
A
Objetivo/ meta
C
B
2. Representación
24
Ejemplo 1 – objetos y restricciones
Se podrían 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 ningún bloque encima. en_mano(x) : el robot tiene en su mano el bloque x mano_libre : el robot no tiene ningún bloque en su
mano
Estado inicialsobre(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
BA
Objetivo/ meta
2. Representación
25
Ejemplo1- operadores
DESAPILAR(x, y)precondición: sobre(x,y), libre(x), mano_libreañadido: en_mano(x), libre(y)borrado: sobre(x, y), mano_libre, libre(x)
COGER(x)precondición: en_mesa(x), libre(x), mano_libreañadido: en_mano(x)borrado: en_mesa(x), mano_libre, libre(x)
APILAR(x, y)precondición: en_mano(x), libre(y)añadido: sobre(x, y), libre(x), mano_libreborrado: en_mano(x), libre(y)
DEJAR(x)precondición: en_mano(x)añadido: en_mesa(x), libre(x), mano_libreborrado: en_mano(x)
2. Representación
efecto: en_mano(x) libre(y) sobre(x, y)
mano_libre libre(x)
26
Ejemplo2- El mundo de Shakey
habitación 1PASILLO
habitación 2
habitación 3
habitación 4
Shakey es un robot que seShakey es un robot que sepuede mover entre varias puede mover entre varias
habitaciones,habitaciones,empujar objetos, trepar a empujar objetos, trepar a
objetos rígidos, encender yobjetos rígidos, encender yapagar las luces.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. Representación
27
Ejemplo 2- El mundo de Shakey
OperadoresOperadores• Ir(x, y) Ir(x, y) - ir de locación x a locación y. La precondición es - ir de locación x a locación y. La precondición es
en(Shakey,x). x e y están en la misma habitación, en(Shakey,x). x e y están en la misma habitación, en(x,r)en(x,r)en(y,r). Por convención, una puerta entre 2 en(y,r). Por convención, una puerta entre 2 habitaciones está en ambas.habitaciones está en ambas.
• Empujar(b, x, y) Empujar(b, x, y) - empujar objeto b de ubicación x a y. - empujar objeto b de ubicación x a y. Predicado caja y constantes para las cajasPredicado caja y constantes para las cajas
• Subir(b) Subir(b) - subir a una caja, y - subir a una caja, y Bajar(b) Bajar(b) - - bajar de caja bajar de caja Predicado: Predicado: sobre(Shakey, suelo)sobre(Shakey, suelo) , constante suelo , constante suelo Precondicines: Precondicines: caja(b)caja(b), en(Shakey,x) y en(b,x), en(Shakey,x) y en(b,x)
• Encender(ls) Encender(ls) - - encender luz, y encender luz, y Apagar(ls)Apagar(ls)- - apagar la luz. apagar la luz. Shakey debe estar sobre la caja en la posición del interruptor.Shakey debe estar sobre la caja en la posición del interruptor.
2. Representación
28
Índice
1. Introducción2. Representación de estados, objetivo y operadores3. Orígenes de la planificación
Análisis de acciones y objetivos: STRIPS
4. Planificadores Principio del menor compromiso.Planificación de orden parcial Razonamiento por fijación de restricciones. TWEAK Razonando sobre estados, hacia delante y hacia atrás.
PRODIGY Planificación con restricciones de tiempo y recursos
5. TRABAJOS
29
Planificación mediante pila de objetivos. STRIPS
Una de las primeras técnicas que se usaron para componer objetivos, pila de objetivos. STRIPS*
La pila contiene objetivos y acciones.
En cada momento se conoce la descripción del estado actual.
Un conjunto de acciones con sus listas precondición, añadido y borrado.
Inicializar la pila con el estado final
3. Orígenes ...
* STandford Research Institude Problem Solver
* STandford Research Institude Problem Solver
30
Algoritmo de STRIPS
Repetir hasta que pila= OR no se puedan expandir más nodos
• Si la cima de la pila del nodo es un operador instanciado,Si el operador instanciado se puede ejecutar,
ejecutar operadorquitarlo de la pilaañadirlo al plan
Si no, se introducen sus precondiciones en la pila
• Si la cima de la pila del nodo es una conjunción de metasSi la conjunción es cierta en el estado, se elimina de la pilaSi 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 metaSi la meta es cierta en el estado, se elimina de la pilaSi no, Si hay bucle ¿ciclo? de meta, retroceder
Si no generar un sucesor por cada instanciación de operador que añade la metaSi hay sucesores, elegir unoSi no retroceder
3. Orígenes ...
31
Ejemplo STRIPS
COGER(A)en_mano(A)DEJAR(A)en_mesa(A) E0
E0
en_mesa(A), libre(A), mano_libreCOGER(A)en_mano(A)DEJAR(a)en_mesa(A)
ciclo
en_mesa(A) E0
DEJAR(A)en_mesa(A) E0
en_mano(A)DEJAR(A)en_mesa(A) E0
DESAPÌLAR(A, B)en_mano(A)DEJAR(A)en_mesa(A) E0
E1
en_mano(A)DEJAR(A)en_mesa(A)
A
B
Estado inicial
A
Objetivo/ meta DESAPILAR(x, y)
precondición: sobre(x,y), libre(x), mano_libreañadido: en_mano(x), libre(y)borrado: sobre(x, y), mano_libre, libre(x)
COGER(x)precondición: en_mesa(x), libre(x), mano_libreañadido: en_mano(x)borrado: en_mesa(x), mano_libre, libre(x)
APILAR(x, y)precondición: en_mano(x), libre(y)añadido: sobre(x, y), libre(x), mano_libreborrado: en_mano(x), libre(y)
DEJAR(x)precondición: en_mano(x)añadido: en_mesa(x), libre(x), mano_libreborrado: en_mano(x)
DESAPILAR(x, y)precondición: sobre(x,y), libre(x), mano_libreañadido: en_mano(x), libre(y)borrado: sobre(x, y), mano_libre, libre(x)
COGER(x)precondición: en_mesa(x), libre(x), mano_libreañadido: en_mano(x)borrado: en_mesa(x), mano_libre, libre(x)
APILAR(x, y)precondición: en_mano(x), libre(y)añadido: sobre(x, y), libre(x), mano_libreborrado: en_mano(x), libre(y)
DEJAR(x)precondición: en_mano(x)añadido: en_mesa(x), libre(x), mano_libreborrado: en_mano(x)
DESAPILAR(x, y)precondición: sobre(x,y), libre(x), mano_libreañadido: en_mano(x), libre(y)borrado: sobre(x, y), mano_libre, libre(x)
COGER(x)precondición: en_mesa(x), libre(x), mano_libreañadido: en_mano(x)borrado: en_mesa(x), mano_libre, libre(x)
APILAR(x, y)precondición: en_mano(x), libre(y)añadido: sobre(x, y), libre(x), mano_libreborrado: en_mano(x), libre(y)
DEJAR(x)precondición: en_mano(x)añadido: en_mesa(x), libre(x), mano_libreborrado: en_mano(x)
DESAPILAR(x, y)precondición: sobre(x,y), libre(x), mano_libreañadido: en_mano(x), libre(y)borrado: sobre(x, y), mano_libre, libre(x)
COGER(x)precondición: en_mesa(x), libre(x), mano_libreañadido: en_mano(x)borrado: en_mesa(x), mano_libre, libre(x)
APILAR(x, y)precondición: en_mano(x), libre(y)añadido: sobre(x, y), libre(x), mano_libreborrado: en_mano(x), libre(y)
DEJAR(x)precondición: en_mano(x)añadido: en_mesa(x), libre(x), mano_libreborrado: en_mano(x)
E0
B E1
A
B E2A
3. Orígenes ...
E1
DEJAR(A)en_mesa(A)
E2
en_mesa(A) E2
32
Ejemplo STRIPS3. Orígenes ...
COGER(A)en_mano(A)DEJAR(A)en_mesa(A) E0
E0
en_mesa(A), libre(A), mano_libreCOGER(A)en_mano(A)DEJAR(a)en_mesa(A)
ciclo
en_mesa(A) E0
DEJAR(A)en_mesa(A) E0
en_mano(A)DEJAR(A)en_mesa(A) E0
DESAPILAR(A, B)en_mano(A)DEJAR(A)en_mesa(A) E0
en_mano(A)DEJAR(A)en_mesa(A) E1
DEJAR(A)en_mesa(A) E1
E2
A
B
Estado inicial
A
Objetivo/ metaE0
B E1
A
B E2A
en_mesa(A) E2
33
Tablas Triangulares
Los planes se ejecutan en un mundo real.
Las acciones no producen los efectos deseados.
Tolerancias mecánicas y fallos de los dispositivos.
ERRORES EN LA EJECUCIÓN DEL PLAN
3. Orígenes ...
34
Tablas Triangulares
SOLUCIONESGenerar un nuevo plan, basado en la
nueva descripción del estado después de cada paso. MUY COSTOSO
Control inteligente del progreso del plan, basado en la propia información del plan. COSTE EQUILIBRADO
3. Orígenes ...
35
Tablas Triangulares
Creación 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. Orígenes ...
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. Orígenes ...
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 acción del plan.
Cada acción i-ésima del plan contiene en la i-ésima fila, las pre de la acción y en la i-ésima columna las post.
La distribución de predicados del E.I. y de las post de las acciones, se realiza en diferentes filas. en las que son precondición de la acción
3. Orígenes ...
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)precondición: sobre(x,y), libre(x), mano_libreañadido: en_mano(x), libre(y)borrado: sobre(x, y), mano_libre, libre(x)
COGER(x)precondición: en_mesa(x), libre(x), mano_libreañadido: en_mano(x)borrado: en_mesa(x), mano_libre, libre(x)
APILAR(x, y)precondición: en_mano(x), libre(y)añadido: sobre(x, y), libre(x), mano_libreborrado: en_mano(x), libre(y)
DEJAR(x)precondición: en_mano(x)añadido: en_mesa(x), libre(x), mano_libreborrado: en_mano(x)
3. Orígenes ...
39
Tablas Triangulares
Ejecución del PlanObtención del estado actual del
entorno.Búsqueda del núcleo concordante, isi i= n+1 entonces FIN
sino ejecutar acción i-ésima
3. Orígenes ...
40
Tablas Triangulares
Búsqueda del núcleo concordanteencontrado=falso, i= n+1, tope=imientras no encontrado y i/=0 hacer
j=0, seguir=cierto, mientras j/=tope and seguir hacer
si TT(i, j) EstadoActual entoncestope=j-1, seguir=falso
sino j= j+1 finsifinmientrassi i = tope and j=tope entonces encontrado cierto finsii=i-1
Finmientras i=tope
3. Orígenes ...
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.
Núcleos de la tabla triangular, contiene la información que se necesita para la ejecución del plan. En particular, para la ejecución de cada acción del plan.
3. Orígenes ...
encontrado=falso, i= n+1, tope= imientras no encontrado y i/=0 hacer
j=0, seguir=ciertomientras j/=tope and seguir hacer
si TT(i, j) EstadoActual entoncestope:= j-1, seguir=falso
sino j:= j+1finsi
finmientrassi i=tope and j=tope entonces encontrado cierto finsii:= i-1
Finmientras i=tope
42
Planificación 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 solución pero no la encuentra; y
• No óptima (anomalía de Susman): no encuentra la solución óptima
C
A B
Estado inicial
A
B
C
Objetivo/ meta
3. Orígenes ...
43
Índice
1. Introducción2. Representación3. Orígenes de la planificación
Análisis de acciones y objetivos: STRIPS
4. Planificadores Principio del menor compromiso. Planificación de orden
parcial Razonamiento por fijación de restricciones. TWEAK Razonando sobre estados, hacia delante y hacia atrás.
PRODIGY Planificación con restricciones de tiempo y recursos
5. TRABAJOS
44
Clasificación de Planificadores
Según espacio de problemas:
Estados (STRIPS, PRODIGY): nodos del árbol representan estados.
Planes (NOAH, TWEAK, UCPOP, SNLP, O-PLAN): nodos del árbol representan planes.
Según plan generado:
Orden total, secuencia única de operadores.
Orden parcial: expresa múltiples secuencias posibles
Según toma de decisiones:
Compromiso casual: se toman decisiones continuamente.
Mínimo compromiso: sólo se toman decisiones cuando se ven forzados.
NO HAY UNA TÉCNICA MEJOR QUE OTRA
4. Planificadores
45
Planificadores según 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 búsqueda.
Plan almacenado en:• Series de transiciones de estados
Plan1
Plan2
Movimientos en el espacio:• Añadir 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
Plan0
4. Planificadores
46
Planificadores. Algunas propuestas
Algunas referencias*
HACKER (Sussman, 1975), sistema de propagación automática.
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), técnica fijación de restricciones.
PRODIGY (Fink & Veloso)
UCPOP (Penberthy & Weld)
WARPLAN, O-PLAN, SATPLAN, GRAPHPLAN, ...
*: pág. 466. Russell & Norvig
NOTAS BIBLIOGRÁFICAS
*: pág. 466. Russell & Norvig
NOTAS BIBLIOGRÁFICAS
4. Planificadores
47
Índice
1. Introducción2. Representación3. Orígenes de la planificación
Análisis de acciones y objetivos: STRIPS
4. Planificadores Principio del menor compromiso. Planificación de
orden parcial Razonamiento por fijación de restricciones. TWEAK Razonando sobre estados, hacia delante y hacia atrás.
PRODIGY Programación con restricciones de recursos
5. TRABAJOS
48
Principio del menor compromiso
Problema del calzado de los piesOp(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
“ Sólo hay que hacer elecciones de lo que interesa en cada momento, dejando las
otras elecciones para más 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 “linealización” de un plan P al añadir restricciones de orden a P.
4. Planificadores
50
Soluciones al problema de los zapatos
Plan de orden parcialPlan de orden parcial Planes de orden totalPlanes de orden totalstart
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
Definición formal de Plan
Es una estructura de datos que consiste en conjuntos:
Acciones o Pasos: los operadores del problema Restricciones de ordenamiento Si < Sj, 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 Si c Sj, que registran el propósito de los planes, “Si alcanza Sj a través de c”
4. Planificadores
52
Definición 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 añadir
todas las proposiciones verdaderas al estado inicial Finish tiene la meta como precondición y ningún efecto
Plan (STEPS: {S1: Op(ACTION: Start, EFECTO: En(casa)Vender(SM,platáno)
Vender(SM,leche) ...), S2: Op(ACTION: Finish, PRECOND: En(casa) Tener(platáno) Tener(leche)
Tener(taladro)))}, ORDERINGS. { S1<S2}, BINDINGS {}, LINKS {})
4. Planificadores
53
Definición de Plan
Start
Finish
Estado Inicial
Estado Meta
Start
Finish
4. Planificadores
En(casa)Vender(SM,platáno) Vender(SM,leche) ...
En(casa) Tener(platáno) Tener(leche) Tener(taladro)
54
Soluciones
¿Cúando tenemos una solución? Planes totalmente ordenados e instanciados O con un plan completo y consistente
Cada precondición se logra por otro paso. Si logra precondición c de Sj si Si < Sj y c Effects(Si) y No hay paso Sk tal que ¬c Effects(Sk) donde Si < Sk < Sj
No hay contradicciones en ordenación o instanciaciones de restricciones
Contradicción: si Si < Sk y Sk < Si o v=A, v=B y AB, donde “=“ y “<“ son transitivas
4. Planificadores
55
Un plan es válido si las precondiciones de todos los operadores se satisfacen antes de ejecutar dicho operador.
Un plan válido 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 linearización de un plan de orden parcial es una ordenación total de los operadores consistente con el plan de orden parcial.
4. PlanificadoresSoluciones
56
Ejemplo de planificación de orden parcial
Finish
Start
En(casa), Vender(SM,platáno) Vender(SM,leche) Vender(FRR,taladro)
Tener(taladro), Tener(leche) Tener(platáno),En(casa)
Op(ACCIÓN:Start, EFECTO: En(casa)Vender(SM,platáno) Vender(SM,leche) Vender(FRR,taladro))
Op(ACCIÓN:Finish, PRECOND :En(casa) Tener(platáno) Tener(leche) Tener(taladro))
Op(ACCIÓN:Ir(allí), PRECOND: En(aquí), EFECTO:En(allí) ¬En(aquí))Op(ACCIÓN:Comprar(x), PRECOND: En(tienda) Vender(tienda,x),
EFECTO:Tener(x))
4. Planificadores
57
Ejemplo de POP
1. El planificador solo añadirá 1. El planificador solo añadirá acciones que logren una acciones que logren una precondición no cumplidaprecondición no cumplida
Enlaces causalesEnlaces causalestener(taladro), tener(taladro), tener(platanos), tener(platanos), tener(leche)tener(leche)
2. 2. Refinamiento: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(ACCIÓN:Comprar(x),
PRECOND: en(tienda) vender(tienda,x)
EFECTO:Tener(x))
4. PlanificadoresOp(ACCIÓN:Start, EFECTO: En(casa)Vender(SM,platáno) Vender(SM,leche) Vender(FRR,taladro))
Op(ACCIÓN:Finish, PRECOND: En(casa) Tener(platáno) Tener(leche) Tener(taladro))
tener(taladro)
tener(platanos)
Vender(SM, leche)
tener(platanos)
Vender(SM, platanos)
Vender(FRR, taladro)
58
Ejemplo de planificación 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:Conflicto:Ir(FRR) añade la condición en(FRR) y borra en(casa)Ir(FRR) añade la condición en(FRR) y borra en(casa) Los vínculos causales de los planes parciales son vínculos protegidos. Amenazas (pasos que podrían eliminar o destruir las condición protegida) Las amenazas están ordenas de forma que aparecen antes o después del vínculo protegido.
Comprar
(taladro)
Comprar
(platanos)Compra
r
(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)Compra
r
(leche)
Ir(FRR) Ir(SM)
Op(ACCIÓN:Ir(allí), PRECOND: En(aquí), EFECTO:En(allí) ¬En(aquí))
4. Planificadores
59
Resolución de conflictos
Ante una amenaza, los pasos que pueden borrar la condición son ordenados antes o después del enlace protegido.
S1S3
S2
¬cc
S3
¬cS1
S2c
DemociónDemoción PromociónPromoción
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 ¿Es el efecto ¬en(aqui) del operador ir(FRR) una amenaza para la precondición en(casa) del otro operador ir(SM)?para la precondición en(casa) del otro operador ir(SM)?Enfoques:Enfoques:• Resolver con una restricción de Resolver con una restricción de igualdadigualdad: aqui=FRR: aqui=FRR• Resolver con una Resolver con una desigualdaddesigualdad, aqui , aqui casa casa• Posponer Posponer hasta que sea necesariohasta que sea necesario
¿Cómo asegurar qué instanciación parcial logra la meta?¿Cómo asegurar qué instanciación parcial logra la meta?Un paso Si cumple una precondición c del paso Sj siUn paso Si cumple una precondición c del paso Sj si1.1. Si<Sj y Si tiene un efecto que necesariamente unifica con Si<Sj y Si tiene un efecto que necesariamente unifica con
cc2.2. No hay paso Sk tal que Si< Sk<Sj en alguna linearización No hay paso Sk tal que Si< Sk<Sj en alguna linearización
del plan, y Sk tiene un efecto que posiblemente unifica con del plan, y Sk tiene un efecto que posiblemente unifica con ¬c¬c
4. Planificadores
61
Solución 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 interactúan Menor compromiso: solo busca donde los planes interactúan Links causales permiten identificar un plan que deben abandonarLinks causales permiten identificar un plan que deben abandonar
Comprar
(taladro)
Comprar
(platanos)Compra
r
(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
Solución final
Finish
Start
Ir(FRR)
Comprar (taladro)
Ir(SM)
Comprar(leche) Comprar(plátanos)
Ir(casa)
En(casa)
En(casa)
En(SM)En(SM)
En(SM)
En(FRR)
En(FRR) Vender(FRR,taladro)
Vender(SM,leche)Vender(SM,platáno)
Tener(taladro)
Tener(platáno)Tener(leche)
4. Planificadores
63
Algoritmo Planificación 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)
endFunction SELECT_SUBGOAL (plan) returns Sneed,c
pick a plan step Sneed from STEPS(plan) with precondition c not achieved
return Sneed,cProcedure 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 Planificación 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