INTELIGENCIA ARTIFICIAL Planeación Mg. Samuel Oporto Díaz Lima, 19 Septiembre 2005
Mapa Conceptual del Curso Inteligencia Artificial y Sistemas Expertos Lenguaje Simbólico LISP Búsqueda Búsqueda Ciega Búsqueda Heurística Planeación Lógica y Razonamiento Lógica Proposicional Lógica de Predicados Inferencia y Razonamiento Inteligencia Artificial Conceptos Generales Conocimiento Agentes
Tabla de Contenido Planeación. Representación El Mundo de los Bloques
Objetivos Exponer los conceptos de planeación. Planificación en IA Ejemplo de planeación
PLANEACION
¿Qué es 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
Búsqueda en un espacio de problemas ¿Qué tienen en común? Búsqueda en un espacio de problemas Estado o situación: descripción instantánea Acción u Operador: transformación de un estado en otro Estado inicial: situación de partida Objetivo o meta: descripción de condiciones que se tienen que dar para considerar por terminado el proceso Plan: secuencia de operaciones que permiten pasar del estado inicial a un estado en el que se cumplan los objetivos Heurísticas: conocimiento que permite obtener eficientemente el plan
Ejemplo en Turismo Estado: Operadores: Estado inicial: Meta: situación de una persona, restricciones de precio, tiempo,. . precios, horarios y disponibilidad de los billetes de avión, tren, autobús, hoteles, etc. . . de diferentes compañías, Operadores: volar en un determinado vuelo, viajar en un determinado tren, coger un taxi, ir en coche, alojarse en un hotel, alojarse en una casa rural, solicitar los servicios de una agencias de viajes. . . Estado inicial: estamos en Lima Meta: quiero pasar una semana en el Cuzco
Ejemplo de un Plan Tomar_Taxi(Casa,AeropuertoJorgeChavez) Tomar_Vuelo(JChavez,AArequipa,. . . ) Tomar_Vuelo (Aarequipa, Acuzco,. . . ) Tomar_Taxi (ACuzco,Hotel) Estar_en_Hotel(Hotel,. . . ) … Heurísticas: Para tomar taxi en Lima, pregunte 4 veces y pague en soles. Para seleccionar hotel en Cuzco, preguente si tiene convenios con agencias de viajes.
¿Cómo planificamos? En función de los fines (metas) y los medios (operadores) Descomponiendo problemas en subproblemas Jerárquicamente Basado en la experiencia Reactivamente Entre varios agentes Estableciendo prioridades ¿de qué otras formas?
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
Ejercicio 1 Planifique las acciones necesarias para limpiar tu cuarto. Asume lo siguiente: Si limpias la mesa se ensucias el piso. Si ordenas el estande de libros ensucias el piso, la mesa y la cama Si limpias las paredes ensucias la cama, la mesa y la computadora. La computadora está encima de la mesa Si recoges la basura del piso y luego limpias algo, ensucias de nuevo el piso. Identifica: Estado o situación 4. Acción u Operador Estado inicial 5. Objetivo o meta Plan 6. Heurísticas:
REPRESENTACION
Representación en planificación Para que el ordenador pueda resolver problemas, es necesario decirle qué tiene que resolver en algún lenguaje. Existen muchas formas de suministrar esa información. Se usa la lógica de predicados (LP1)
Representación mediante LP1 Se representan los estados y los operadores LP1 permite representar estados V o F mediante: términos, predicados, conectivas, y cuantificadores: x,y alumno(x) Λ asignatura(y) Λ [¬aprobado(x, y) V primera-vez(x,y)] se-matricula(x, y) No hay una representación única y válida; cada persona representa los dominios de forma diferente
Representación en planificación Por cada estado se definen predicados: tiene-dinero(x,y), vuelo-reservado(x,vuelo,día), datos-vuelo(vuelo,origen,destino,hora-salida,hora-llegada), . Cada estado se representa por una conjunción de predicados instanciados: tiene-dinero(Pepe,100.000), vuelo-reservado(Pepe,IB304,3-Nov-99), datos-vuelo(IB304, Lima, Arequipa, 12:05,12:30), datos-vuelo(TWA2001, Arequipa, Cuzco, 13:55,17:20), . . .
Supuesto del mundo cerrado Lo que no aparece explícitamente representado en un estado es falso: suposición del mundo cerrado dinero(Pepe, y), cuando y = 100.000 No es necesario decir nada respecto a Julio que no tiene dinero. ¬dinero(Julio, y), cuando y = 0 no es necesario
Representación de los operadores Se deben representar los cambios que ocurren en el mundo mediante operadores: STRIPS Se definen por tres listas: precondiciones: condiciones que se tienen que cumplir en un estado para poder ejecutar el operador añadidos: cosas que pasan a ser ciertas por la ejecución del operador (hay que añadirlas al estado) borrados: cosas que dejan de ser ciertas por la ejecución del operador (hay que borrarlas del estado)
Representación de los operadores Pagar-billete-avión(x,vuelo,día,dinero,coste-billete) precondiciones: vuelo-reservado(x,vuelo,día), tiene-dinero(x,dinero), cuesta(vuelo,día,precio), dinero ≥ precio añadidos: tiene-dinero(x,dinero - precio), tiene-billete(x,vuelo,día) borrados: tiene-dinero(x,dinero)
EL MUNDO DE LOS BLOQUES
El mundo de los bloques Un conjunto de bloques, una mesa, y un brazo de un robot Los bloques son iguales de tamaño, forma y color, diferenciándose en el nombre La mesa tiene extensión ilimitada Cada bloque puede estar encima de la mesa, encima de un sólo bloque, o sujeto por el brazo del robot El brazo de robot sólo puede sujetar un bloque cada vez
El mundo de los bloques Resolver problemas supone pasar de una configuración (estado) inicial a un estado en el que sean ciertas unas metas A D C B Estado Inicial Estado Final
Estados Se podrían utilizar los siguientes predicados: encima(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 sujeto(x) : el brazo del robot tiene cogido al bloque x brazo-libre : el brazo del robot no tiene cogido a ningún bloque Estado inicial: encima(A,B),encima(B,D),en-mesa(D),en-mesa(C), libre(A),libre(C),brazo-libre Metas: en-mesa(A), en-mesa(B), encima(C,B) , encima(D,C) Estado Inicial Estado Final
Operadores QUITAR(x, y) LEVANTAR(x) PONER(x, y) DEJAR(x) precondiciones: encima(x, y),libre(x),brazo-libre añadidos: sujeto(x),libre(y) borrados: encima(x, y),brazo-libre,libre(x) LEVANTAR(x) precondiciones: en-mesa(x),libre(x),brazo-libre añadidos: sujeto(x) borrados: en-mesa(x),brazo-libre,libre(x) PONER(x, y) precondiciones: sujeto(x),libre(y) añadidos: encima(x, y),libre(x),brazo-libre borrados: sujeto(x),libre(y) DEJAR(x) precondiciones: sujeto(x) añadidos: en-mesa(x),libre(x),brazo-libre borrados: sujeto(x)
Lenguaje PDDL - Operadores (define (domain mundobloques) (:requirements :strips :equality) (:predicates (encima ?bl1 ?bl2) (enmesa ?bl) (libre ?bl) (sujeto ?bl) (brazolibre) ) (:action quitar :parameters (?bl1 ?bl2 ) :precondition (and (encima ?bl1 ?bl2) (libre ?bl1) (brazolibre) ) :effect (and (sujeto ?bl1) (libre ?bl2) (not (encima ?bl1 ?bl2)) (not (brazolibre)) (not (libre ?bl1)) ) )
Lenguaje PDDL - Operadores (:action levantar :parameters (?bl1 ) :precondition (and (enmesa ?bl1) (libre ?bl1) (brazolibre) ) :effect (and (sujeto ?bl1) (not (enmesa ?bl1)) (not (brazolibre)) (not (libre ?bl1))
Lenguaje PDDL - Operadores (:action poner :parameters (?bl1 ?bl2 ) :precondition (and (sujeto ?bl1) (libre ?bl2) ) :effect (and (encima ?bl1 ?bl2) (libre ?bl1) (brazolibre) (not (sujeto ?bl1)) (not (libre ?bl2))
Lenguaje PDDL - Operadores (:action dejar :parameters (?bl1 ) :precondition (and (sujeto ?bl1) ) :effect (and (enmesa ?bl1) (libre ?bl1) (brazolibre) (not (sujeto ?bl1))
Definición del Problema (define (problem ejemplo) (:domain mundobloques) (:objects a b c d ) (:init (enmesa d) (enmesa c) (libre a) (libre c) (encima a b) (encima b d) (brazolibre) ) (:goal (and (enmesa a) (enmesa b) (encima c b) (encima d c) (libre a) (libre d)
PREGUNTAS