Вы находитесь на странице: 1из 8

Inteligencia Artificial e Ingeniera del Conocimiento Curso acadmico 201 2012/2013

Prctica 3 Planificacin HTN en problemas de logstica stica

ENTREGA DE LA PRCTICA (a travs del acceso identificado de DECSAI) DECSAI https://decsai.ugr.es/


dominio.pddl htn.pdf

Fecha lmite de entrega: 27 de enero de 2013 201

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

PDDL: Tareas compuestas y mtodos de descomposicin


El objetivo de la prctica consiste en desarrollar un dominio HTN, esto es, un conjunto de tareas y mtodos a distintos niveles de abstraccin que permitan guiar al planificador en la bsqueda de un plan de acciones primitivas para alcanzar los objetivos planteados. La especificacin de este dominio utiliza la sintaxis estndar de PDDL, si bien la descripcin de tareas y mtodos emplea una extensin del estndar desarrollada por el Grupo de Trabajo SEPIA dentro del Grupo de Investigacin en Sistemas Inteligentes del Departamento de Ciencias de la Computacin e Inteligencia Artificial de la Universidad de Granada. Tenga en cuenta los siguientes aspectos a la hora de trabajar con su dominio PDDL: Una parte del prembulo se utiliza para configurar las capacidades de razonamiento del planificador (que suele ser la misma para todos los dominios):
(define (domain Logista) (:requirements :typing :fluents :derived-predicates :negative-preconditions :universal-preconditions :disjuntive-preconditions :conditional-effects :htn-expansion :durative-actions :metatags )

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

3 Instalacin del planificador


Una vez definido el dominio HTN, utilizaremos el planificador IActivePlanner para resolver problemas en dicho dominio. Para instalar el planificador, debe descargar desde la web de las prcticas (acceso identificado de DECSAI, https://decsai.ugr.es) el fichero iactiveplanner.zip y descomprimirlo. Debido a que los derechos de explotacin y comercializacin del planificador pertenecen a IActive Intelligent Solutions S.L (http://iactive.es), una spinoff de la Universidad de Granada, no podemos distribuir el cdigo fuente del planificador para su compilacin.

Inteligencia Artificial 4

3.1 Ejecucin de IActive Planner en Windows


La sintaxis para invocar al planificador IActivePlanner desde la lnea de comandos del sistema operativo es la siguiente:
iactiveplanner [opciones] --domain_file (-d) <domain.pddl> --problem_file (-p) <problem.pddl>

donde las opciones son las siguientes:


--help (-h) muestra una pantalla de ayuda. --debug (-g) lanza el planificador en modo de depuracin. --verbose (-v[<level>], e.g. -v1) lanza el planificador de forma que se van

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

de expansin permitido durante la bsqueda de un plan.


--time_limit <number> establece el tiempo mximo permitido para la

bsqueda de un plan.

3.2 Ejemplos de dominios y problemas


Para que pueda realizar algunas pruebas iniciales con IActivePlanner, se suministran dos ficheros: un dominio de ejemplo (dominio-bloques.pddl) y un problema para dicho dominio (problema-bloques.pddl) especificados utilizando el lenguaje de planificacin HTN-PDDL. Tambin puede consultar el manual sobre HTN-PDDL elaborado por Oscar Jess Garca Prez. Descargue estos ficheros en el directorio de IActivePlanner y ejecute
iactiveplanner -d dominio-bloques.pddl -p problema-bloques.pddl

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>

Si el plan lo quiere en XML, tambin puede ejecutar

iactiveplanner -d dominio-bloques.pddl -p problema-bloques.pddl -x <fichero XML>

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

Longitud del plan 29 31 43 61 23 36 67 26 41

Inteligencia Artificial 8

Вам также может понравиться