Maite Urretavizcaya Isabel Fernández

Slides:



Advertisements
Presentaciones similares
Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I
Advertisements

Branch-and-bound Search
Búsqueda en un espacio de estados
DISEÑO DE TRANSFERENCIA ENTRE REGISTROS
INTELIGENCIA ARTIFICIAL
Diseño y análisis de algoritmos
Inteligencia Artificial
La maquina de Turing La máquina de Turing es una caja negra (tan simple como una máquina de escribir y tan compleja como un ser humano) capaz no sólo de.
Introducción a los Algoritmos
Inteligencia Artificial Búsqueda informada y exploración
VERANO CIENTÍFICO 2012 Lic. Cristina Maya Padrón Ing. Fernando Elizalde Ramírez Modelos de Planificación de Inteligencia Artificial.
Razonamiento Explícito y Experimentación en la Algoritmia
ADMINISTRACIÓN DEL CAMBIO.
DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO
Concepto de programa. Directorio Concepto de programa. Analisis del problema. Resolucion del problema. Desarroollo de un programa. Partes constitutivas.
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERIA DIVISIÓN DE INGENIERÍA ELÉCTRICA COMPUTACIÓN PARA INGENIEROS NOTA IMPORTANTE: Para complementar.
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Cap 4 Búsqueda Heurística
Teoría de lenguajes y compiladores
UNIDAD II Modelo de Datos.
Inteligencia Artificial Resolver problemas mediante búsqueda
Inteligencia Artificial Resolver problemas mediante búsqueda
PROGRAMACIÓN LÓGICA.
ESTRUCTURAS DE CONTROL
HILOS Y COMUNICACIÓN ENTRE PROCESOS
Representación del Conocimiento
Programación de Computadores
Academia de Informática
Temas importantes para el desarrollo de la segunda parte del TPE
EL PODER DE SOLVER.
Solución de problemas por Búsqueda
Agentes de resoluciones d problemas Parte I. Un agente puede adoptar una meta o un propósito para satisfacer.
Estructura de Datos y Algoritmos
Diseño y análisis de algoritmos
Clase 10: Estructuras de datos y arreglos.
Capítulo 2 – Estructuras de Control
Métodos de Búsqueda Informada. Búsqueda de la mejor Ruta En esta sección no sólo nos interesa encontrar una posible ruta, sino obtener aquella ruta que.
Diseño y análisis de algoritmos
(Organización y Manejo de Archivos)
Parte II. Algorítmica. 3. Algoritmos voraces.
Administración de Memoria
5.3 APROXIMACIONES AL DISEÑO
Material de apoyo Unidad 4 Estructura de datos
Sistemas Inteligentes Distribuidos Sistemas Inteligentes Distribuidos Sesión 13 L. Enrique Sucar / Marco López Sesión 13 L. Enrique Sucar / Marco López.
Backtracking 1. Método general. 2. Análisis de tiempos de ejecución.
Parte II. Algorítmica. 5. Backtracking. 1. Análisis de algoritmos.
Robótica Inteligente L. Enrique Sucar Leonardo Romero Marco López ITESM Cuernavaca.
PENSAMIENTO ANALÍTICO SISTÉMICO DAISY KATERINE RODRÍGUEZ DURÁN
Parte I. Estructuras de Datos.
Unidad 1: FUNDAMENTOS DE COMPUTACIÓN Y PSEUDOLENGUAJE
PROBLEMAS DE SATISFACCIÓN DE RESTRICCIONES
Parte I. Estructuras de Datos.
Departamento de Sistemas Informáticos y Programación Universidad Complutense de Madrid Bloque 2: Divide y Vencerás Unidad 1: Nociones básicas.
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
SISTEMAS EXPERTOS (SE) Coronel Jaramillo Ricardo
Introducción a la Optimización de Consultas. Francisco Moreno.
TIPOS DE PRUEBAS DEL SOFTWARE
PROGRAMACIÓN ESTRUCTURADA LOS DIAGRAMAS DE ESTADO
Metodología de la programación
Microsoft Office Project INTRODUCCIÓN A LA GESTIÓN DE PROYECTOS Microsoft Office Project 2010.
Introducción a los TADs
* Cuando nos permite desarrollar un programa que necesitamos para tomar un conjunto de buenas prácticas para hacer eso. Esto se debe a que podemos ahorrar.
PILAS Una pila es una estructura de datos o lista de elementos, a la cual se le puede insertar o eliminar su contenido sólo por uno de sus extremos, llamado.
Planeación En planeación, dada una descripción del mundo, una situación inicial y una situación deseada, la meta es hallar una secuencia de acciones.
Fundamentos de Computación
Modelo de procesos de software
Tema 8: Programación estructurada Introducción La importancia del conocimiento de programación es mucho mayor de lo que se piensa. Aprender a programar.
Prof. Jonathan Silva Ingeniería Civil – Informática I Ingeniería Civil Informática I Clase 3 – Diseño de Programas.
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
ALGORITMOS Y PROGRAMAS. OBJETIVOS  Resolver problemas mediante la especificación algorítmica.  Proporcionar los procedimientos y técnicas para el desarrollo.
Transcripción de la presentación:

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

¿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

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

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

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.

Í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

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

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

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

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

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

¿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

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))

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

Í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

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.

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

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)

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

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.

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

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

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

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

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)

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

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.

Í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

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

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

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

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

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

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

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

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

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

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.

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

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

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.

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

Í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

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

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

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

Í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

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?

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.

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

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”

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 {})

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

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

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.

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))

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))

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.

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

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

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

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

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)

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