Planificacin Maite Urretavizcaya Isabel Fernndez Grupo de Tutores
Planificación Maite Urretavizcaya Isabel Fernández Grupo de Tutores Inteligentes de la FISS
Planificación ¿Qué es la planificación? l l l l 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 2
Planificación l Planificación es el proceso de búsqueda y articulación de una secuencia de acciones que permite alcanzar un objetivo. l Los entornos de aplicación: l observables, l deterministas, l finitos, l estáticos (los cambios suceden sólo cuando actúa el agente) y l discretos (en tiempo, acciones, objetos y efectos) PLANIFICACIÓN CLÁSICA 3
Algunas cuestiones difíciles l Nuestra visión del mundo es incompleta: racionalidad limitada l El mundo cambia constantemente: dinamismo l Las acciones tardan en ejecutarse: razonamiento temporal l Nuestras metas son contradictorias: dependencia entre metas l Nuestro modelo del mundo falla muchas veces: incertidumbre l Los planes no siempre son válidos: ejecución y replanificación l No todos los planes son buenos: calidad l Nos adaptamos al mundo: aprendizaje l Tardamos mucho en aprender: aprendizaje l La planificación y la filosofía: creencias, intenciones y deseos 4
Referencias [1] Nilsson. Principios de Inteligencia Artificial. Ediciones Díaz de Santos, Madrid, 1987. [2] Elaine Rich and Kevin Knight. Inteligencia Artificial. Mc. Graw-Hill, Inc. , 1994. Segunda edición. [3] Stuart Russell and Peter Norvig. Inteligenci Artificial. Un enfoque moderno. n (2ª edición) Prentice Hall, 2003. 5
Índice 1. Introducción 2. Representación 3. Orígenes de la planificación Análisis de acciones y objetivos: STRIPS 4. Planificadores l l 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 6
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 Modelo Plan Acciones meta Planificador 7
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 No. Plan, Time t, inicialmente 0 local variables Goal G, State. Description current TELL( KB, MAKE-PERCEPT-SENTENCE (percept, t) ) current = STATE-DESCRIPTION(KB, t) if p= No. Plan then G = ASK( KB, MAKE-GOAL-QUERY(t ) ) p = IDEAL-PLANNER(current, G, KB) end if if p= No. Plan or p is empty then action = No. OP else action =FIRST(p) p = REST(p) TELL(KB, MAKE-ACTION-SENTENCE(action, t)) end if t = t+1 return action 8
Solucionador de Problemas basado en Búsqueda, SPB 1. Introducción Elementos representados en un SPB: l Acciones que generan descripciones de estados nuevos l Estados completamente representados, usados en heurísticas, generar sucesores, probar metas l Metas contra las cuales probar, como cajas negras l Solución o Plan como secuencia de acciones 9
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 Ir a la escuela Ir al veterinario Start Ir a dormir Ir al supermercado Sentarse en una silla Etc. , etc. Comprar perro Hablar con loro Comprar atún Comprar leche Comprar platanos End Seguir sentado Leer un libro 10
Desventajas de SPB 1. Introducción l Demasiadas acciones y estados que considerar l Solo evaluar estados no permite descartar acciones y no se tiene idea de que intentar después (adivinan) l Se fuerza al agente a decidir una acción inicial aunque las acciones relevantes no obligan a ningún orden l No es posible trabajar en partes del problema más fáciles de resolver 11
¿Cómo planificamos? l l l l 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 12
Ideas clave de la planificación 1. Introducción l Clave 1: la representación de estados, objetivos y acciones es abierta. l Lenguaje formal (ej: lógica de primer orden) l Estados y metas (objetivos) se representan por conjuntos de sentencias lógicas ej: en(super), tener(leche) l Las acciones se representan por descripciones lógicas de precondiciones y efectos ej: Op(ACTION: Comprar(leche), PRECOND: en(supermercado), EFECTO: tener(leche)) 13
Ideas clave de la planificación 1. Introducción l Clave 2: el planificador es libre de añadir acciones. l l 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í. l 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 14
Í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 l l 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 15
2. Representación l La mas utilizada en planificación automática es la lógica de predicados. l 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) l No hay una representación única. Cada persona representa los dominios de forma diferente. 16
Lenguajes de planificación 2. Representación l Uno de los lenguajes desarrollados ha sido el de STRIPS*. l Para ciertos problemas reales se ha demostrado que STRIPS no posee suficiente expresividad. l Han surgido muchos lenguajes. Por ejemplo el lenguaje ADL: Action Description Language l Las notaciones STRIPS y ADL son adecuadas para muchos dominio reales. * STandford Research Institude Problem Solver 17
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) 18
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 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 19
Representación de los estados 2. Representación l 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), . . . l Cada estado se representa por un conjunto de predicados instanciados. tiene_dinero(Pepe, 1. 000), vuelo_reservado(Pepe, IB 304, 3 Abr 06), vuelo(IB 304, Madrid, New_York, 12: 05, 12: 30), vuelo(TWA 2001, New_York, San_Francisco, 13: 55, 17: 20), . . . l Es habitual en algunos planificadores que lo que no aparece explícitamente representado en un estado es falso: suposición del mundo cerrado. 20
Metodología de diseño 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 21
Metodología 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: Move. To. Table(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 22
Ejemplo 1 - El mundo de bloques 2. Representación l l l 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 C B D C Estado inicial B A Objetivo/ meta 23
Ejemplo 1 – objetos y restricciones 2. Representación l Se podrían utilizar los siguientes predicados: l sobre(x, y) : el bloque x está encima del y. l en_mesa(x) : el bloque x está encima de la mesa. l libre(x) : el bloque x no tiene ningún bloque encima. l en_mano(x) : el robot tiene en su mano el bloque x l mano_libre : el robot no tiene ningún bloque en su mano A C B D C Estado inicial B A Objetivo/ meta Estado inicial sobre(A, B), sobre(B, D), en_mesa(C), libre(A), libre(C), mano_libre l Metas: en_mesa(A), sobre(C, B) l 24
Ejemplo 1 - operadores 2. Representación DESAPILAR(x, y) efecto: en_mano(x) libre(y) sobre(x, y) precondición: sobre(x, y), libre(x), mano_libre(x) añadido: en_mano(x), libre(y) borrado: sobre(x, y), mano_libre, libre(x) l COGER(x) precondición: en_mesa(x), libre(x), mano_libre añadido: en_mano(x) borrado: en_mesa(x), mano_libre, libre(x) l 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) l DEJAR(x) precondición: en_mano(x) añadido: en_mesa(x), libre(x), mano_libre borrado: en_mano(x) l 25
Ejemplo 2 - El mundo de Shakey 2. Representación Interruptor 1 Puerta 1 habitación 1 P A Puerta 2 Shakey S habitación 2 I Interruptor 3 L L Puerta 3 O habitación 3 Interruptor 2 Shakey es un robot que se puede mover entre varias habitaciones, empujar objetos, trepar a objetos rígidos, encender y apagar las luces. Interruptor 4 Caja 1 Puerta 4 Caja 2 habitación 4 Caja 3 Estado Inicial 26
Ejemplo 2 - El mundo de 2. Shakey 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. 27
Í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 l l 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 28
Planificación mediante pila de 3. Orígenes. . . objetivos. STRIPS l Una de las primeras técnicas que se usaron para componer objetivos, pila de objetivos. STRIPS* l La pila contiene objetivos y acciones. l En cada momento se conoce la descripción del estado actual. l Un conjunto de acciones con sus listas precondición, añadido y borrado. l Inicializar la pila con el estado final * STandford Research Institude Problem Solver 29
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 30
Ejemplo STRIPS en_mesa(A) DEJAR(A) en_mesa(A) en_mano(A) DEJAR(A) en_mesa(A) COGER(A) en_mano(A) DEJAR(A) en_mesa(A) E 0 E 0 3. Orígenes. . . A B Estado inicial l l DESAPILAR(x, y) A Objetivo/ meta precondición: sobre(x, y), libre(x), mano_libre DESAPÌLAR(A, B) en_mano(A) añadido: en_mano(x), libre(y) DEJAR(A) borrado: sobre(x, y), mano_libre, libre(x) en_mesa(A) l l COGER(x) E 0 E 0 precondición: en_mesa(x), libre(x), mano_libre en_mano(A) añadido: en_mano(x) DEJAR(A) borrado: en_mesa(x), mano_libre, libre(x) E 1 en_mesa(A), libre(A), mano_libre l l APILAR(x, y) COGER(A) precondición: en_mano(x), libre(y) DEJAR(A) en_mano(A) añadido: sobre(x, y), en_mesa(A) E 1 libre(x), mano_libre B DEJAR(a) borrado: en_mano(x), libre(y) E 0 ll DEJAR(x) en_mesa(A) E precondición: en_mano(x) 2 ciclo A E 1 añadido: en_mesa(x), libre(x), mano_libre A E 2 B borrado: en_mano(x) E 2 31
Ejemplo STRIPS en_mesa(A) DEJAR(A) en_mesa(A) en_mano(A) DEJAR(A) en_mesa(A) COGER(A) en_mano(A) DEJAR(A) en_mesa(A) E 0 3. Orígenes. . . A B A E 0 Objetivo/ meta Estado inicial E 0 en_mesa(A), libre(A), mano_libre COGER(A) en_mano(A) DEJAR(a) E 0 en_mesa(A) DESAPILAR(A, B) en_mano(A) DEJAR(A) en_mesa(A) E 0 en_mano(A) DEJAR(A) en_mesa(A) E 1 en_mesa(A) E 2 A B E 1 ciclo E 2 B A E 2 32
Tablas Triangulares 3. Orígenes. . . l Los planes se ejecutan en un mundo real. l Las acciones no producen los efectos deseados. l Tolerancias mecánicas y fallos de los dispositivos. ERRORES EN LA EJECUCIÓN DEL PLAN 33
Tablas Triangulares 3. Orígenes. . . SOLUCIONES l Generar un nuevo plan, basado en la nueva descripción del estado después de cada paso. MUY COSTOSO l Control inteligente del progreso del plan, basado en la propia información del plan. COSTE EQUILIBRADO 34
Tablas Triangulares 3. Orígenes. . . Creación de una tabla triangular l 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 1 2 … n n -1 n n+1 35
3. Orígenes. . . Tablas Triangulares 0 1 3 2 B E. I. Plan: {desapilar(C, A), dejar(C), coger(B), apilar(B, C), coger(A), apilar(A, B) } A E. I. B 3 4 C E. F. 4 5 5 6 7 A Ejemplo 1 2 C 6 E. F. 36
Tablas Triangulares l l l 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 37
Tablas Triangulares C 3. Orígenes. . . 0: E. I. 1 sobre(C, A) libre(C) mano_libre 2 3 4 En_mesa(A) 5 6 7 B E. I. = {en_mesa(A), en_mesa(B), sobre(C, A), libre(C), libre(B), mano_libre} 1: desapilar(C, A) 2: dejar(C) libre(B) en_mesa(B) A Plan: {desapilar(C, A), dejar(C), coger(B), apilar(B, C), coger(A), apilar(A, B) } DESAPILAR(x, 3: coger(B) 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) 4: apilar(B, C) l COGER(x) precondición: en_mesa(x), libre(x), mano_libre añadido: en_mano(x) 5: coger(A) borrado: en_mesa(x), mano_libre, libre(x) l APILAR(x, y) precondición: en_mano(x), libre(y) 6: apilar(A, B) añadido: sobre(x, y), libre(x), mano_libre borrado: en_mano(x), libre(y) 7: E. F. l DEJAR(x) precondición: en_mano(x) añadido: en_mesa(x), libre(x), mano_libre 38 borrado: en_mano(x) l
Tablas Triangulares 3. Orígenes. . . Ejecución del Plan l Obtención del estado actual del entorno. l Búsqueda del núcleo concordante, i l si i= n+1 entonces FIN sino ejecutar acción i-ésima 39
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) Estado. Actual 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 40
encontrado=falso, i= n+1, tope= i mientras no encontrado y i/=0 hacer j=0, seguir=cierto mientras j/=tope and seguir hacer 3. Orígenes si TT(i, j) Estado. Actual entonces. . . tope: = j-1, seguir=falso sino j: = j+1 Núcleos de la tabla triangular, contiene finsi la finmientras información que se necesita para la ejecución delj=tope plan. entonces En particular, para la finsi si i=tope and encontrado cierto i: = i-1 ejecución de cada acción del plan. Finmientras i=tope Tablas Triangulares 0: E. I. 1 sobre(C, A) libre(C) mano_libre 1: desapilar(C, A) en_mano(C) 2 3 2: dejar(C) libre(B) en_mesa(B) mano_libre 3: coger(B) libre(C) en_mano(B) 4 4: apilar(B, C) en_mesa(A) libre(A) mano_libre 5: coger(A) 5 libre(B) 6 7 en_mano(A) 6: apilar(A, B) en_mesa(C) sobre(B, C) sobre(A, B) 7: E. F. 41
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 C A B B Estado inicial C Objetivo/ meta 42
Índice 1. Introducción 2. Representación 3. Orígenes de la planificación Análisis de acciones y objetivos: STRIPS 4. Planificadores l l 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 43
Clasificación de Planificadores 4. 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 44
Planificadores según Espacio del Problema 4. Planificadores Estados Planes 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 Plan 1 Movimientos en el espacio: • Añadir operadores • Ordenar operadores • Ligar variables • O, en caso contrario, restringir el plan. Plan 0 Plan 2 Modelo del tiempo: • Conjunto parcialmente ordenado de operadores. Plan almacenado en: • Un único nodo 45
Planificadores. Algunas propuestas 4. Planificadores 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) *: pág. 466. UCPOP (Penberthy & Weld) NOTAS BIBLIOGRÁFICAS Russell & Norvig WARPLAN, O-PLAN, SATPLAN, GRAPHPLAN, . . . 46
Índice 1. Introducción 2. Representación 3. Orígenes de la planificación Análisis de acciones y objetivos: STRIPS 4. Planificadores l l 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 47
Principio del menor compromiso 4. Planificadores Problema del calzado de los pies Op(ACTION: Zapato. Derecho, PRECOND: Calcetin. Derecho. Puesto, EFECTO: Zapato. Derecho. Puesto) Op(ACTION: Calcetin. Derecho, EFECTO: Calcetin. Derecho. Puesto) ¿Qué paso va primero? Op(ACTION: Zapato. Izquierdo, PRECOND: Calcetin. Izquierdo. Puesto, EFECTO: Zapato. Izquierdo Puesto) Op(ACTION: Calcetin. Izquierdo, EFECTO: Calcetin. Izquierdo. Puesto) 48
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. 49
Soluciones al problema de los 4. Planificadores zapatos Plan de orden parcial Planes de orden total 50
Definición formal de Plan 4. Planificadores Es una estructura de datos que consiste en conjuntos: l Acciones o Pasos: los operadores del problema Restricciones de ordenamiento Si < Sj, l Restricciones de instanciamiento de variables, de la forma v=x, donde v es una variable y x una constante u otra variable l l Enlaces causales de la forma Si c Sj, que registran el propósito de los planes, “Si alcanza Sj a través de c” 51
Definición formal de Plan 4. Planificadores El plan inicial describe el problema sin resolver, l Pasos: Start y Finish l Ordenamiento: Start < Finish l Start no tiene precondiciones, y su efecto es añadir todas las proposiciones verdaderas al estado inicial l Finish tiene la meta como precondición y ningún efecto Plan (STEPS: {S 1: Op(ACTION: Start, EFECTO: En(casa) Vender(SM, platáno) Vender(SM, leche) . . . ), S 2: Op(ACTION: Finish, PRECOND: En(casa) Tener(platáno) Tener(leche) Tener(taladro)))}, ORDERINGS. { S 1<S 2}, BINDINGS {}, LINKS {}) 52
Definición de Plan 4. Planificadores Estado Inicial Start En(casa) Vender(SM, platáno) Vender(SM, leche) . . . Finish Estado Meta En(casa) Tener(platáno) Tener(leche) Tener(taladro) Finish 53
Soluciones 4. Planificadores ¿Cúando tenemos una solución? Planes totalmente ordenados e instanciados l O con un plan completo y consistente l 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 l 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 l 54
Soluciones 4. Planificadores l Un plan es válido si las precondiciones de todos los operadores se satisfacen antes de ejecutar dicho operador. l Un plan válido que alcanza el objetivo G se dice que es un plan correcto. l Un plan de orden parcial es un conjunto parcialmente ordenado de operadores. l Una linearización de un plan de orden parcial es una ordenación total de los operadores consistente con el plan de orden parcial. 55
Ejemplo de planificación de 4. Planificadores orden parcial Start En(casa), Vender(SM, platáno) Vender(SM, leche) Vender(FRR, taladro) Tener(taladro), Tener(leche) Tener(platáno), En(casa) Finish 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)) 56
Ejemplo de POP Op(ACCIÓN: Start, 4. Planificadores 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) Comprar (taladro) (platanos) (leche) tener(taladro) tener(platanos) Vender(FRR, taladro) Vender(SM, leche) Vender(SM, platanos) 2. Refinamiento: Op(ACCIÓN: Comprar(x), PRECOND: en(tienda) vender(tienda, x) Comprar (taladro) (platanos) (leche) EFECTO: Tener(x)) 57
Ejemplo de planificación de 4. Planificadores orden parcial Op(ACCIÓN: Ir(allí), PRECOND: En(aquí), EFECTO: En(allí) ¬En(aquí)) Ir(FRR) Comprar (taladro) Ir(SM) Comprar (platanos) Comprar (leche) Ir(SM) Ir(FRR) 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. 58
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. S 1 logra c para S 2 S 3 S 1 c S 2 S 3 ¬c S 1 ¬c c S 2 Democión c S 2 S 3 ¬c Promoción 59
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 1. Si<Sj y Si tiene un efecto que necesariamente unifica con c 2. No hay paso Sk tal que Si< Sk<Sj en alguna linearización del plan, y Sk tiene un efecto que posiblemente unifica con ¬c 60
Solución final 4. Planificadores en(casa) en(FRR) Ir(SM) en(FRR) vender(FRR, taladro) Comprar (taladro) en(SM) vender(SM, leche) vender(SM, platano) Comprar (platanos) Comprar (leche) en(SM) 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 61
Solución final 4. Planificadores Start En(casa) Ir(FRR) En(FRR) Vender(FRR, taladro) Comprar (taladro) En(FRR) Vender(SM, leche) Ir(SM) En(SM) Comprar(leche) Ir(casa) Tener(leche) En(casa) Finish Vender(SM, platáno) En(SM) Comprar(plátanos) Tener(platáno) Tener(taladro) 62
Algoritmo Planificación Orden 4. Planificadores Parcial (POP) Function POP (initial, goal, operators) returns 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) 63
Algoritmo Planificación Orden 4. Planificadores Parcial (POP) Procedure RESOLVE_THREATS (plan) for each Sthreatens 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 64
- Slides: 64