La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Maite Urretavizcaya Isabel Fernández

Presentaciones similares


Presentación del tema: "Maite Urretavizcaya Isabel Fernández"— Transcripción de la presentación:

1 Maite Urretavizcaya Isabel Fernández
Planificación Maite Urretavizcaya Isabel Fernández Grupo de Tutores Inteligentes de la FISS

2 ¿Qué es la 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

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., 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ón 2. Representación
3. 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
1. Introducción 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 Acciones Modelo Plan meta Planificador

8 Agente de planificación simple
1. Introducción Function SIMPLE-PLANNING-AGENT (percept) returns an action static 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 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)) t = t+1 return action

9 Solucionador de Problemas basado en Búsqueda, SPB
1. Introducción 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

10 Ejemplo con un SPB 1. Introducción “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 hacer Heurí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ún Comprar leche Comprar platanos Comprar perro Hablar con loro Seguir sentado Leer un libro End

11 Desventajas de SPB Demasiadas acciones y estados que considerar
1. Introducción 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

12 ¿Cómo planificamos? 1. Introducción 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

13 Ideas clave de la planificación
1. Introducció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))

14 Ideas clave de la planificación
1. Introducción 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

15 Índice 1. Introducción 2. Representación de estados, objetivo y operadores 3. 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
2. Representació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. * STandford Research Institude Problem Solver

18 Características STRIPS- ADL
2. Representación Lenguaje STRIPS Lenguaje ADL Los 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)

19 Características STRIPS- ADL
2. Representación Lenguaje STRIPS Lenguaje ADL Só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

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.

21 Metodología de diseño 1. ¿De qué vamos a hablar? 2. Vocabulario
2. Representación 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 posición. La meta es hacer una o más 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 Restricción Clear(x)- hay un espacio libre en x para poner un bloque

22 Metodología 3. Codificar operadores
2. Representación 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 descripción específica del problema 5. Dar problemas al planificador para obtener planes

23 Ejemplo 1- El mundo de bloques
2. Representación 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

24 Ejemplo 1 – objetos y restricciones
2. Representación 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 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

25 Ejemplo1- operadores 2. Representación DESAPILAR(x, y)
precondición: sobre(x,y), libre(x), mano_libre añadido: en_mano(x), libre(y) borrado: sobre(x, y), mano_libre, libre(x) COGER(x) precondición: en_mesa(x), libre(x), mano_libre añ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_libre borrado: en_mano(x), libre(y) DEJAR(x) precondición: en_mano(x) añadido: en_mesa(x), libre(x), mano_libre borrado: en_mano(x) efecto: en_mano(x)  libre(y)  sobre(x, y)   mano_libre   libre(x)

26 Ejemplo2- El mundo de Shakey
2. Representación Interruptor 1 Puerta 1 Shakey es un robot que se puede mover entre varias habitaciones, empujar objetos, trepar a objetos rígidos, encender y apagar las luces. habitación 1 PASILLO Interruptor 2 Shakey Puerta 2 habitación 2 Interruptor 3 Puerta 3 habitación 3 Interruptor 4 Caja 1 Caja 2 Puerta 4 habitación 4 Caja 3 Estado Inicial

27 Ejemplo 2- El mundo de Shakey
2. Representación Operadores Ir(x, y) - 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(x,r)en(y,r). Por convención, una puerta entre 2 habitaciones está en ambas. Empujar(b, x, y) - empujar objeto b de ubicación 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 posición del interruptor.

28 Índice 1. Introducción 2. Representación de estados, objetivo y operadores 3. 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
3. Orígenes ... 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 * STandford Research Institude Problem Solver

30 Algoritmo de STRIPS 3. Orígenes ... 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 operador quitarlo de la pila añ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 metas Si la conjunción 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 instanciación de operador que añade la meta Si hay sucesores, elegir uno Si no retroceder

31 Ejemplo STRIPS 3. Orígenes ... E0 A B A E0 E0 Objetivo/ meta
en_mesa(A) E0 A B Estado inicial DEJAR(A) en_mesa(A) E0 A Objetivo/ meta E0 en_mano(A) DEJAR(A) en_mesa(A) E0 DESAPILAR(x, y) precondición: sobre(x,y), libre(x), mano_libre añadido: en_mano(x), libre(y) borrado: sobre(x, y), mano_libre, libre(x) COGER(x) precondición: en_mesa(x), libre(x), mano_libre añ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_libre borrado: en_mano(x), libre(y) DEJAR(x) precondición: en_mano(x) añadido: en_mesa(x), libre(x), mano_libre borrado: en_mano(x) DESAPILAR(x, y) precondición: sobre(x,y), libre(x), mano_libre añadido: en_mano(x), libre(y) borrado: sobre(x, y), mano_libre, libre(x) COGER(x) precondición: en_mesa(x), libre(x), mano_libre añ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_libre borrado: en_mano(x), libre(y) DEJAR(x) precondición: en_mano(x) añadido: en_mesa(x), libre(x), mano_libre borrado: en_mano(x) DESAPILAR(x, y) precondición: sobre(x,y), libre(x), mano_libre añadido: en_mano(x), libre(y) borrado: sobre(x, y), mano_libre, libre(x) COGER(x) precondición: en_mesa(x), libre(x), mano_libre añ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_libre borrado: en_mano(x), libre(y) DEJAR(x) precondición: en_mano(x) añadido: en_mesa(x), libre(x), mano_libre borrado: en_mano(x) DESAPILAR(x, y) precondición: sobre(x,y), libre(x), mano_libre añadido: en_mano(x), libre(y) borrado: sobre(x, y), mano_libre, libre(x) COGER(x) precondición: en_mesa(x), libre(x), mano_libre añ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_libre borrado: en_mano(x), libre(y) DEJAR(x) precondición: en_mano(x) añadido: en_mesa(x), libre(x), mano_libre borrado: en_mano(x) DESAPÌLAR(A, B) en_mano(A) DEJAR(A) en_mesa(A) E0 COGER(A) en_mano(A) DEJAR(A) en_mesa(A) E0 E1 en_mano(A) DEJAR(A) en_mesa(A) E0 en_mesa(A), libre(A), mano_libre COGER(A) en_mano(A) DEJAR(a) en_mesa(A) ciclo B E1 A E1 DEJAR(A) en_mesa(A) en_mesa(A) E2 B E2 A E2

32 Ejemplo STRIPS 3. Orígenes ... A B Objetivo/ meta Estado inicial E0 E1
COGER(A) en_mano(A) DEJAR(A) en_mesa(A) E0 en_mesa(A), libre(A), mano_libre DEJAR(a) ciclo DESAPILAR(A, B) E1 E2 A B Estado inicial Objetivo/ meta

33 ERRORES EN LA EJECUCIÓN DEL PLAN
Tablas Triangulares 3. Orígenes ... 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

34 Tablas Triangulares SOLUCIONES
3. Orígenes ... SOLUCIONES Generar 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

35 Creación de una tabla triangular
Tablas Triangulares 3. Orígenes ... 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 1 n -1 n 2 n + 1

36 Tablas Triangulares Ejemplo 3. Orígenes ... C A B E.I.
E. I. Ejemplo 1 Plan: {desapilar(C, A), dejar(C), coger(B), apilar(B, C), coger(A), apilar(A, B) } 1 A B C E.F. 2 2 3 3 4 4 5 5 6 6 E. F. 7

37 Tablas Triangulares 3. Orígenes ... 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

38 Tablas Triangulares 3. Orígenes ... C A B E.I. 0: E. I.
E. I.= {en_mesa(A), en_mesa(B), sobre(C,A), libre(C), libre(B), mano_libre} sobre(C,A)  libre(C)  mano_libre libre(B)  en_mesa(B) En_mesa(A) 1 1: desapilar(C,A) Plan: {desapilar(C, A), dejar(C), coger(B), apilar(B, C), coger(A), apilar(A, B) } 2 2: dejar(C) 3 DESAPILAR(x, y) precondición: sobre(x,y), libre(x), mano_libre añadido: en_mano(x), libre(y) borrado: sobre(x, y), mano_libre, libre(x) COGER(x) precondición: en_mesa(x), libre(x), mano_libre añ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_libre borrado: en_mano(x), libre(y) DEJAR(x) precondición: en_mano(x) añadido: en_mesa(x), libre(x), mano_libre borrado: en_mano(x) 3: coger(B) 4 4: apilar(B, C) 5 5: coger(A) 6 6: apilar(A, B) 7 7: E.F.

39 Tablas Triangulares Ejecución del Plan
3. Orígenes ... Ejecución del Plan Obtención del estado actual del entorno. Búsqueda del núcleo concordante, i si i= n+1 entonces FIN sino ejecutar acción i-ésima

40 Búsqueda del núcleo concordante
Tablas Triangulares 3. Orígenes ... Búsqueda del núcleo 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)  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

41 Tablas Triangulares 3. Orígenes ... 0: E. I.
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)  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 Tablas Triangulares 3. Orígenes ... 0: E. I. 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. 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) libre(B) en_mano(A) en_mesa(C) sobre(B, C) sobre(A, B) 1 1: desapilar(C,A) 2 2: dejar(C) 3: coger(B) 3 4 4: apilar(B, C) 5 5: coger(A) 6 6: apilar(A, B) 7 7: E.F.

42 Planificación lineal. Problemas
3. Orígenes ... 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 A B C Objetivo/ meta C A B Estado inicial

43 Índice 1. Introducción 2. Representación
3. 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

45 Planificadores según Espacio del Problema
Estados 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 Planes 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 Plan1 Plan0 Plan2

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 Russell & Norvig NOTAS BIBLIOGRÁFICAS

47 Índice 1. Introducción 2. Representación
3. 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
4. Planificadores 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?

49 Principio del menor compromiso
4. Planificadores “ 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.

50 Soluciones al problema de los zapatos
4. Planificadores Planes de orden total Plan de orden parcial

51 Definición formal de Plan
4. Planificadores 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”

52 Definición formal de Plan
4. Planificadores 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 {})

53 Definición de Plan Start Start Finish Finish Estado Inicial
4. Planificadores Estado Inicial Start Start En(casa)Vender(SM,platáno) Vender(SM,leche) ... Finish En(casa)  Tener(platáno) Tener(leche)  Tener(taladro) Finish Estado Meta

54 Soluciones ¿Cúando tenemos una solución?
4. Planificadores ¿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 AB, donde “=“ y “<“ son transitivas

55 Soluciones 4. Planificadores 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.

56 Ejemplo de planificación de orden parcial
4. Planificadores 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))

57 Ejemplo de POP Enlaces causales 2. Refinamiento: 4. Planificadores
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)) 1. El planificador solo añadirá acciones que logren una precondición no cumplida Enlaces causales tener(taladro), tener(platanos), tener(leche) 2. Refinamiento: Comprar (taladro) Comprar (platanos) Comprar (leche) tener(platanos) tener(platanos) tener(taladro) Comprar (taladro) (platanos) (leche) Vender(FRR, taladro) Vender(SM, leche) Vender(SM, platanos) Op(ACCIÓN:Comprar(x), PRECOND: en(tienda)  vender(tienda,x) EFECTO:Tener(x))

58 Ejemplo de planificación de orden parcial
4. Planificadores Op(ACCIÓN:Ir(allí), PRECOND: En(aquí), EFECTO:En(allí)  ¬En(aquí)) Comprar (taladro) (platanos) (leche) Ir(FRR) Ir(SM) Ir(FRR) Ir(SM) Comprar (taladro) Comprar (platanos) Comprar (leche) Conflicto: 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.

59 Resolución de conflictos
4. Planificadores Ante una amenaza, los pasos que pueden borrar la condición son ordenados antes o después del enlace protegido. S1 logra c para S2 S1 S3 S2 ¬c c S3 ¬c S1 S2 c Democión Promoción S3 ¬c S1 S2 c

60 Amenazas posibles 4. Planificadores ¿Es el efecto ¬en(aqui) del operador ir(FRR) una amenaza para la precondición en(casa) del otro operador ir(SM)? Enfoques: Resolver con una restricción de igualdad: aqui=FRR Resolver con una desigualdad, aqui  casa Posponer hasta que sea necesario ¿Cómo asegurar qué instanciación parcial logra la meta? Un paso Si cumple una precondición c del paso Sj si Si<Sj y Si tiene un efecto que necesariamente unifica con c No hay paso Sk tal que Si< Sk<Sj en alguna linearización del plan, y Sk tiene un efecto que posiblemente unifica con ¬c

61 tener(taladro), tener(platanos), tener(leche), en(casa)
Solución final 4. Planificadores en(casa) Ir(FRR) en(FRR) Ir(SM) en(FRR) vender(FRR, taladro) en(SM) vender(SM, leche) en(SM) vender(SM, platano) en(SM) Comprar (taladro) Comprar (platanos) Comprar (leche) Ir(casa) tener(taladro), tener(platanos), tener(leche), en(casa) Menor compromiso: solo busca donde los planes interactúan Links causales permiten identificar un plan que deben abandonar

62 Solución final 4. Planificadores Vender(SM,platáno) Start
Vender(SM,leche) En(casa) Vender(FRR,taladro) En(FRR) Ir(FRR) En(FRR) Comprar (taladro) Tener(taladro) Ir(SM) En(SM) En(SM) En(SM) Comprar(leche) Comprar(plátanos) Tener(leche) Tener(platáno) Ir(casa) En(casa) Finish

63 Algoritmo Planificación Orden Parcial (POP)
4. Planificadores 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)

64 Algoritmo Planificación Orden Parcial (POP)
4. Planificadores 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


Descargar ppt "Maite Urretavizcaya Isabel Fernández"

Presentaciones similares


Anuncios Google