Академический Документы
Профессиональный Документы
Культура Документы
Inteligencia Artificial 1
1 Introduccin
La tercera prctica de la asignatura consiste en el diseo y representacin de un dominio en PDDL de manera que se puedan resolver varios problemas utilizando un algoritmo de planificacin HTN. Las acciones primitivas de este dominio estn ya predefinidas y slo tendr que definir las acciones compuestas (tareas de alto nivel), mtodos de descomposicin, predicados, funciones y reglas deductivas necesarias para poder resolver los problemas propuestos. El dominio que se utilizar en esta prctica recibe el nombre de Logista, una versin simplificada del dominio que se ha utilizado en varias competiciones internacionales sobre planificacin (http://www.icaps.org). Para el seguimiento de las sesiones prcticas, se recomienda que el alumno se descargue las transparencias que tiene a su disposicin en la pgina web de la asignatura (acceso identificado de https://decsai.ugr.es).
2 Dominio Logista
El dominio Logista es una mezcla del clsico dominio del mundo de bloques y del tipo de dominios utilizado en logstica (transporte de mercancas entre sitios). Los problemas de este dominio consisten en apilar cajas en pallets, que se encuentran inicialmente distribuidos en varias naves, y transportarlas entre ubicaciones (naves y distribuidores) mediante el uso de carretillas. Se asume que todas las ubicaciones entre las que pueden circular las carretillas estn interconectadas. Las cajas se cargan y se descargan de las carretillas mediante gras montacargas, que se hallan situadas en naves y distribuidores. Las acciones primitivas de que las se dispone en el dominio Logista son las siguientes: 1. Conducir una carretilla de una ubicacin origen a otra destino 2. Usar una gra para coger una caja, que puede estar en un pallet o apilada. 3. Usar una gra para dejar una caja sobre otra caja o pallet. 4. Cargar una caja en una carretilla con la ayuda de una gra 5. Descargar una caja de una carretilla con ayuda de una gra. La representacin PDDL de estas acciones primitivas se puede encontrar en el fichero
Logista-primitivas.pddl
Los planes generados en este dominio estarn compuestos por una secuencia de instancias de estas acciones primitivas y se entiende que la ejecucin de stas permitir alcanzar los objetivos definidos en un fichero de problema a partir del estado inicial definido en el mismo fichero.
Inteligencia Artificial 2
A continuacin, aparecen las declaraciones de tipos, constantes, predicados y funciones que forman parte del dominio. En esta prctica, las declaraciones bsicas del dominio son las siguientes:
(:types lugar localizable - object nave distribuidor - lugar carretilla montacargas superficie - localizable pallet caja - superficie) (:predicates (en ?x - localizable ?y - lugar) (sobre ?x - caja ?y - superficie) (transportando ?x - carretilla ?y - caja) (sosteniendo ?x - montacargas ?y - caja) (disponible ?x - montacargas) (libre ?x - superficie) ;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Predicados HTN ;;;;;;;;;;;;;;;;;;;;;;;;; (apilar ?x - caja ?y - superficie) ;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Predicados derivados ;;;;;;;;;;;;;;;;;;;;;;;;; (igual ?x ?y) (distinto ?x ?y) )
Inteligencia Artificial 3
Acto seguido, se definen reglas de razonamiento que nos permiten derivar predicados a partir de la informacin del estado actual:
;; el consecuente "vaco" se representa como "()" ;; y significa "siempre verdad" ;; un objeto es siempre igual a s mismo (:derived (igual ?x ?x) ()) ;; dos objetos son distintos cuando no son iguales (:derived (distinto ?x ?y) (not (igual ?x ?y)))
A continuacin, en el fichero PDDL, aparece la descripcin de tareas compuestas y mtodos de descomposicin (puede encontrar algunos ejemplos en las transparencias de introduccin a PDDL-HTN).
;; tarea del nivel de abstraccin superior ;; (deber modificarse durante la realizacin de la prctica). (:task <tarea> :parameters <listaparametros> (:method <identificador> :precondition <expresion-logica> :tasks (<secuencia de acciones compuestas y/o primitivas)) )
Finalmente, despus de la descripcin de tareas compuestas y mtodos, aparece la descripcin de las acciones primitivas de nuestro dominio. Esta descripcin puede importarse de otro fichero utilizando la sintaxis:
(:import "Logista-primitivas.pddl")
para
incluir en el dominio las tareas primitivas ya definidas en el fichero (el cual tiene que estar en el mismo directorio que el fichero que contiene la descripcin de las tareas de nuestro dominio).
Logista-primitivas.pddl
Inteligencia Artificial 4
mostrando por pantalla las distintas decisiones que va tomando el planificador. El planificador permite tres niveles (1,2, 3) que aumentan progresivamente el nmero de mensajes informativos mostrados (por defecto, se utiliza el nivel 2).
--output_file (-o) <filename> escribe el plan resultante en el fichero de
texto indicado.
--xml_file (-x) <filename> escribe el plan resultante en un fichero XML. --expansions_limit <number> limita el nmero mximo permitido de
expansiones (aplicaciones de mtodos) y se emplea para acotar la bsqueda realizada con backtracking, igual que las siguientes opciones:
--depth_limit <number> establece el nivel mximo de profundidad del rbol
bsqueda de un plan.
para obtener las acciones del plan que resuelve el problema. Si desea almacenar este plan en un fichero de texto deber escribir iactiveplanner
-d dominio-bloques.pddl -p problema-bloques.pddl -o <fichero>
Al trabajar con dominios y problemas ms complejos, es posible que encuentre til el depurador integrado en el planificador (puede encontrar ms detalles en la documentacin de IActivePlanner). Inteligencia Artificial 5
4 Realizacin de la prctica
La prctica consiste en la elaboracin de un dominio HTN, especificado utilizando el lenguaje de planificacin HTN-PDDL, que permita resolver con el planificador IActivePlanner una batera de 11 problemas como el siguiente:
(define (problem p-2) (:domain Logista) (:customization (= :time-format "%d/%m/%Y %H:%M:%S") (= :time-horizon-relative 10000) (= :time-start "05/11/2008 08:00:00") (= :time-unit :hours)) (:objects nave0 - nave distribuidor0 distribuidor1 - distribuidor carretilla0 carretilla1 - carretilla pallet0 pallet1 pallet2 - Pallet caja0 caja1 caja2 caja3 - caja montacargas0 montacargas1 montacargas2 montacargas ) (:init (en pallet0 nave0) (libre caja0) (en pallet1 distribuidor0) (libre caja3) (en pallet2 distribuidor1) (libre caja2) (en carretilla0 nave0) (en carretilla1 nave0) (en montacargas0 nave0) (disponible montacargas0) (en montacargas1 distribuidor0) (disponible montacargas1) (en montacargas2 distribuidor1) (disponible montacargas2) (en caja0 nave0) (sobre caja0 pallet0) (en caja1 distribuidor1) (sobre caja1 pallet2) (en caja2 distribuidor1) (sobre caja2 caja1) (en caja3 distribuidor0) (sobre caja3 pallet1) ;; Objetivos (apilar caja0 pallet2) (apilar caja1 caja3) (apilar caja2 pallet0) (apilar caja3 pallet1) ) (:tasks-goal :tasks( (Main) ) ) )
Inteligencia Artificial 6
El fichero de descripcin del problema comienza con una parte de configuracin (la misma para todos los problemas). A continuacin, en la seccin :objects se definen los objetos que intervienen en el problema (carretillas, montacargas, cajas, pallets, naves y distribuidores). La seccin :init define el estado inicial de cada uno de los objetos utilizando los predicados definidos en el dominio. As mismo, tambin establece los objetivos del problema concreto. En esta prctica, los objetivos de un problema se definen siempre con el predicado (apilar x caja y superficie). Finalmente, el fichero termina con una seccin :tasks-goal que determina la tarea de mayor nivel de abstraccin que hay que llevar a cabo (que coincide siempre con la raz del rbol de tareas definido en el dominio). Para facilitar la evaluacin de la prctica, es obligatorio que la nica tarea que aparezca en la seccin :tasks-goal sea (Main).
5 Evaluacin de la prctica
MUY IMPORTANTE: Cada alumno debe realizar su propia implementacin. La entrega de prcticas que utilicen la misma implementacin supone un suspenso automtico en las prcticas de la asignatura.
En la web de la asignatura se pueden descargar los 11 ficheros correspondientes a los problemas que se usarn para evaluar las prcticas entregadas y que, por tanto, deber utilizar para comprobar que su especificacin PDDL-HTN sea correcta. Ha de tener en cuenta que el dominio no debe considerar otras acciones primitivas que las descritas arriba y ya definidas en Logista-primitivas.pddl. Adems, recuerde que no se deben incluir las acciones primitivas en su fichero PDDL, sino importarlas usando (:import "Logista-primitivas.pddl").
Inteligencia Artificial 7
Deber entregar dos ficheros antes de la fecha lmite establecida en el calendario de la asignatura: 1. dominio.pddl, con el dominio PDDL-HTN que permita resolver todos los problemas propuestos. Es obligatorio tener en cuenta los siguientes aspectos: a. El dominio debe incluir la definicin de los predicados, funciones y tareas compuestas que se estime oportunos, pero no debe contener descripcin de ninguna tarea primitiva. b. Su especificacin del dominio debe contener la clusula (:import Logista-primitivas.pddl) para poder incorporar, desde un fichero externo, las acciones (tareas) primitivas asociadas al dominio. 2. htn.pdf, con su documentacin en formato PDF, de longitud no superior a 4 pginas, en la que justifique las decisiones tomadas sobre la especificacin del dominio.
La prctica se evaluar utilizando los siguientes criterios: 1. La prctica se aprobar si se resuelven los problemas 1, 2, 7, 8 y10 en menos de 15 segundos cada uno (su calificacin automticamente ser "suspenso" si no resuelve alguno de esos 5 problemas). 2. Obtendr un 8 si resuelve los problemas 3, 4, 5, 6, 9 y 11 en menos de 15 segundos cada uno y estar en el intervalo [5,8] dependiendo del nmero de problemas resueltos en menos de 15 segundos. 3. Su calificacin ser 10 si encuentra soluciones ms cortas (en nmero de acciones del plan resultante) que las usadas como referencia para los problemas del 3 al 11. Su calificacin estar en el intervalo [8,10] dependiendo del nmero de soluciones ms cortas obtenidas. La siguiente tabla muestra las longitudes de referencia utilizadas para los planes correspondientes a los distintos problemas propuestos: Problema 3 4 5 6 7 8 9 10 11
Inteligencia Artificial 8