planes-2a
DESCRIPTION
sistemas inteligentesTRANSCRIPT
Planificación
Lorenzo Mandow
Departamento de Lenguajes y Ciencias de la Computación
Universidad de Málaga
Motivación
Planificación: elaboración de secuencias de acciones para alcanzar un objetivo desde una situación dada.
La llamada ‘planificación clásica’ (classical planning), o ‘planificación independiente del dominio’, se refiere a mundos observables, deterministas, conocidos, discretos y de un solo agente.
Se puede abordar mediante búsqueda desde el formalismo del espacio de estados.
Motivación
Las representaciones atómicas deben programarse para cada problema, y no admiten heurísticos generales.
No todos los problemas admiten fácilmente una representación factorizada (CSP).
Una alternativa es una representación estructurada del mundo, en términos de
los objetos que lo componen,
cómo están relacionados.
Motivación
El cálculo de situaciones es un formalismo para planificación.
Emplea la lógica de primer orden para describir las situaciones del mundo, las acciones y sus efectos.
Emplea la demostración automática para generar planes.
Sin embargo es muy ineficiente:
La teoría lógica debe incluir axiomas para describir lo que cambia en el mundo tras cada acción y lo que no cambia.
La demostración por resolución es una búsqueda ciega.
Motivación
El planificador STRIPS (Fikes y Nilsson, 1971) se desarrolló para solucionar el ‘problema del fotograma’ (frame problem):
Empleaba un lenguaje restringido basado en la lógica para representar situaciones y acciones. Con el paso del tiempo evolucionó al lenguaje PDDL (Problem Domain Description Language).
Empleaba un algoritmo específico para razonar sobre dicho lenguaje. Hoy dia existen multitud de algoritmos completos más eficientes.
Supone una vuelta a una representación factorizada.
Motivación
Foto: SRI International
(http://commons.wikimedia.org/wiki/File:SRI_Shakey_with_callouts.jpg)
Lenguaje PDDL
PDDL (Problem Domain Description Language)
1) Representación de las situaciones del mundo.
2) Representación de las acciones (precondición y efectos).
Lenguaje PDDL
Objetos: A1, A2, C1, C2, C3, AGP, BCN
Relaciones:
Plane(x) – x es un avión
Airport(x) – x es un aeropuerto
Cargo(x) – x es un cargamento
At(x, a) – el objeto x (avión o cargamento) está en el aeropuerto a y puede cargarse
In(x, p) – el cargamento x está en el avión p
Lenguaje PDDL
Plane(A1)
Cargo(C1) Cargo(C2)
Airport(AGP) Airport(BCN)
At(A1, AGP) At(C1, AGP) At(C2, AGP)
A1
Lenguaje PDDL
En principio, en la descripción de objetivos se permiten variables libres:
At(x, BCN) In(C1, x)
Lenguaje PDDL
Hipótesis:
Mundo cerrado: todo lo que no se enuncia explícitamente es falso.
Nombre diferentes: Cada constante se refiere a un objeto distinto del mundo.
Lenguaje PDDL
2) Acciones: Se representan mediante esquemas:
Un nombre, acompañado de todas las variables del esquema
Una precondición: lista de literales con todas las variables
Una lista de efectos:
Añadir: literales positivos.
Borrar: literales negados.
Lenguaje PDDL
Ejemplo: Fly(p, from, to)
p p
PRECOND: Plane(p), Airport(from), Airport(to), At(p, from)
EFECTS:
Lenguaje PDDL
Ejemplo: Fly(p, from, to)
p p
PRECOND: Plane(p), Airport(from), Airport(to), At(p, from)
EFECTS: At(p, to),
Lenguaje PDDL
Ejemplo: Fly(p, from, to)
p p
PRECOND: Plane(p), Airport(from), Airport(to), At(p, from)
EFECTS: At(p, to), At(p, from)
Lenguaje PDDL
Una acción es aplicable en una situación si su precondición unifica con los literales de la misma:
A1 A2
Ejemplo: Fly(A1, AGP, BCN), Fly(A2, AGP, BCN)
Lenguaje PDDL
Una acción es aplicable en una situación si su precondición unifica con los literales de la misma.
La situación resultante se obtiene:
Copiando los literales de la situación de partida.
Borrando los literales negados de los efectos.
Añadiendo los literales positivos de los efectos.
Lenguaje PDDL
Otras acciones del dominio:
Load(c,p,a) - carga c, avión, p, aeropuerto a
Unload(c,p,a) - “ “ “
Lenguaje PDDL
Action(Load(c,p,a), PRECOND: Cargo(c), Plane(p), Airport(a),
At(c,a), At(p,a)
EFFECT: ¬At(c,a), In(c,p) )
Action(UnLoad(c,p,a), PRECOND: Cargo(c), Plane(p), Airport(a),
In(c,p), At(p,a),
EFFECT: At(c,a), ¬In(c,p) )
Action( Fly(p,from,to), PRECOND: Plane(p), Airport(from) , Airport(to),
At(p,from)
EFFECT: ¬At(p,from), At(p,to) )