20
PDDL: uma linguagem padrão para especificação de problemas e heurísticas de planejamento Jacques Robin CIn-UFPE

PDDL: uma linguagem padrão para especificação de problemas e heurísticas de planejamento

  • Upload
    austin

  • View
    21

  • Download
    1

Embed Size (px)

DESCRIPTION

PDDL: uma linguagem padrão para especificação de problemas e heurísticas de planejamento. Jacques Robin CIn-UFPE. PDDL: Planning Domain Definition Language. 1 a linguagem padrão para expressão de problemas de planejamento Possibilita: interoperabilidade entre planejadores - PowerPoint PPT Presentation

Citation preview

Page 1: PDDL:  uma linguagem padrão para especificação de problemas e heurísticas de planejamento

PDDL: uma linguagem padrão para especificação de problemas e heurísticas de planejamento

Jacques RobinCIn-UFPE

Page 2: PDDL:  uma linguagem padrão para especificação de problemas e heurísticas de planejamento

PDDL: Planning Domain Definition

Language 1a linguagem padrão para expressão de problemas de

planejamento Possibilita:

interoperabilidade entre planejadores repositórios de tarefas benchmark pré-codificadas de

planejamento competições de planejamento

Criado em 1998 para a 1a competição de planejamento Expressividade variável:

parte de STRIPS como basepermite usar qualquer combinação de uma grande variedade

de extensõesque incluem a maioria daquelas descritas no capítulo 12 do

AIMA mais algumas outras

Page 3: PDDL:  uma linguagem padrão para especificação de problemas e heurísticas de planejamento

Expressividade de PDDL: cobre muitas extensões de STRIPS

Decomposição hierárquica (pp. 371-379 do AIMA) Efeitos condicionais (pp. 381-382 do AIMA) Efeitos universalmente quantificados (pp. 383 do

AIMA) i.e., as conjunções de literais positivos e negativos que

constituam os efeitos podem conter variáveis universalmente quantificadas localmente declaradas

Axiomas: implicações lógicas, com conclusão restrita a um único

literal positivo, que representam relações sempre verificadas em qualquer

situação do domínioassim permitem que as ações representam apenas as

mudanças entre situações

Page 4: PDDL:  uma linguagem padrão para especificação de problemas e heurísticas de planejamento

Expressividade de PDDL: cobre muitas extensões de STRIPS

Qualquer formula sem função da lógica da 1a ordem, com semântica de mundo fechado ou aberto a escolher, para especificação:dos estados objetivosdas pré-condições das açõesdas condições dos efeitos condicionaisas premissas dos axiomas

Variáveis tipadas (pp. 383-384 do AIMA) Objetivos a manter durante expansão de uma ação

abstrata, ou até processo de planejamento inteiro Medidas de fluentes (fluents) e avaliação de

expressões aritméticas de cálculo e comparação para representar restrições quantitativas de recursos (pp. 386-388 do AIMA)

Page 5: PDDL:  uma linguagem padrão para especificação de problemas e heurísticas de planejamento

Exemplo introdutório: transporte de objetos em mala

(define (domain briefcase-world) (:requirements :strips :equality :typing :conditional-effects) (:types location physobj) (:constants (briefcase –physobj)) (:predicates (at ?O –physobj ?L – location) (in ?O1 ?O2 – physobj)) (:action move-briefcase :parameters (?From ?To – location) :precondition (and (at briefcase ?From) (not (= ?From ?To))) :effect (and (at briefcase ?To) (not (at briefcase ?From)) (forall (?O) (when (and (in ?O briefcase) (not (= ?O

briefcase))) (and (at ?O ?To) (not (at ?O ?from)))))))

Page 6: PDDL:  uma linguagem padrão para especificação de problemas e heurísticas de planejamento

Exemplo introdutório: transporte de objetos em mala

(cont.) (:action put-in :parameters (?O –physobj ?L – location) :precondition (not (= ?O briefcase)) :effect (when (and (at ?O ?L) (at briefcase ?L)) (in ?O briefcase))) (:action take-out :paramenters (?O –physobj) :precondition (not (= ?O briefcase)) :effect (not (in ?X briefcase))))

(define (problem get-paid) (:domain briefcase-world) (:init (location home) (location office) (physobj paycheck) (physobj dictionary) (at briefcase home) (at paycheck home) (at dictionary home) (in paycheck briefcase)) (:goal (and (at briefcase office) (at dictionary office) (at paycheck

home)))

Page 7: PDDL:  uma linguagem padrão para especificação de problemas e heurísticas de planejamento

Definição de domínios

<domains> ::= (define (domain <name> ) [<extension-def>] [<require-def>] [<types-def>] [<constants-

def>] [<domain-vars-defs>] [<predicates-def>] [<timeless-def>]

[<safety-def>] <structure-def>*) <extension-def> ::= (:extends <domain-name>+)

ex, (:extends briefcase-world block-world) causa herança de requirements, types, constants, actions, axioms e timeless entre

domínios

<require-def> ::= (:requirements <require-key>+) <types-def> ::= (:types <typed list(name)>) <constants-def> ::= (:constants <typed list(name)>) <domain-vars-def> ::= (:domain-variables <typed list(domain-var-declaration)>) <domain-var-declaration> ::= <name> | <name> <constant> <predicates-def> ::= (:predicates <atomic-formula-skeleton>+) <atomic-formula-skeleton> ::= (<predicate> <typed list(variable)>) <predicate> ::= <name> <variable> ::= ?<name> <structure-def> ::= <action-def> | <axiom-def>

Page 8: PDDL:  uma linguagem padrão para especificação de problemas e heurísticas de planejamento

Ações

<action-def> ::= (:action <name> :parameters <typed list(variables)> <action-def-body>) <action-def-body> ::= [:vars <typed list(variables)>] [:precondition <goal>] [:expansion <action-spec>] [:maintain <goal>] [:effect <effect>] parâmetros x variáveis:

parâmetros universalmente quantificados na precondição e no efeito variáveis quantificadas existencialmente na precondição, mas

universalmente no efeito ex, (:action spray-paint :parameters (?C –color) :vars (?L –location) :precondition (at robot ?L) :effect (forall (?O –physobj) (when (at ?O ?L) (color ?O ?C))) a cor pode variar, mas, em um ponto dados da execução do plano, o

robô pode estar apenas em uma única locação

Page 9: PDDL:  uma linguagem padrão para especificação de problemas e heurísticas de planejamento

Fórmulas sem funções da lógica da 1a ordem

Autorizadas como: pré-condição de ação condição de efeito condicional de ação premissa de axioma objetivo de problema

<goal> ::= <literal> | (and <goal>*) | (or <goal>*) | (not <goal>) | (imply <goal> <goal>)

<goal> ::= (exists <typed list(variables)> <goal>) <goal> ::= (forall <typed list(variables)> <goal>) <literal> ::= <atomic-formula> | (not <atomic-formula>) <atomic-formula> ::= (predicate term*) <term> ::= <name> | <variable>

Page 10: PDDL:  uma linguagem padrão para especificação de problemas e heurísticas de planejamento

Fórmulas sem funções da lógica da 1a ordem: exemplo de

uso:precondition (and (lift-at ?f) (imply (exists (?p - conflict_A) (or (and (not (served ?p)) (origin ?p ?f))

(and (boarded ?p) (not (destin ?p ?f))))) (forall (?q - conflict_B)

(and (or (destin ?q ?f) (not (boarded ?q)))

(or (served ?q)))))) (not (origin ?q ?f)))))))

Page 11: PDDL:  uma linguagem padrão para especificação de problemas e heurísticas de planejamento

Efeitos

<effect> ::= literal | (and <effect>*) | (when <goal> <effect>)

<effect> ::= (forall <typed list(variable)> <effect>) <effect> ::= (change <fluent> <expression>)

Pré-condição P de ação x condição C de efeito condicional ESe P é falso a ação não é executadaSe C é falso a ação é executada, sem o efeito E

Page 12: PDDL:  uma linguagem padrão para especificação de problemas e heurísticas de planejamento

Decomposição hierárquica: ordenamento dos sub-passos

Decomposição puramente seqüencial ou puramente paralela <action-spec> ::= (<name> <term>*) <action-spec> ::= (series <action-spec>*) | (parallel <action-spec>*)

Decomposição híbrida de ordem parcial <action-spec> ::= (constrained (<action-spec>+) <action-constraint>* <action-constraint> ::= (series <action-constraint>*) | (parallel <action-

constraint>) <action-spec> ::= (tag <action-label> <action-spec> <action-label>) <action-label> ::= <name> | (< <name>) | (> <name>)

ex, (constrained ((series (tag (A) (> end-a)) (B)) (series (C) (tag (< beg-d) D (> end-d)))) (in-context (series end-a end-d) :maintain (P)))

ex, (constrained (tag (parallel (tag (act1) (> end-act1)) (act2) ... (actN)) (> alldone)) (in-context (series end-act1 alldone) :maintain (condition)))

Page 13: PDDL:  uma linguagem padrão para especificação de problemas e heurísticas de planejamento

Decomposição hierárquica: opções múltiplas de expansão

Opções explicitamente declaradas: <action-spec> ::= (choice <action-spec>*)

Opções implícitas geradas por instanciação de variáveis durante execução: <action-spec> ::= (forsome <typed list(variable)> <action-

spec>)um opção por cada instanciação válida da lista de variáveis

<action-spec> ::= (foreach <typed list(variable)> <goal> <action-spec>)um opção por cada instanciação válida da lista de variáveis

que tornam <goal> verdadeiro

Page 14: PDDL:  uma linguagem padrão para especificação de problemas e heurísticas de planejamento

Decomposição hierárquica: exemplo

(:action unload :parameters (?P –package ?V –vehicle ?L –location) :expansion (choice ... (forsome (?C –crane) (in-context (constrained (series (tag (pick-up-package-vehicle ?P ?C ?V ?L) (> end-n1)) (tag (< beg-n2) (put-down-package-ground) ?P ?C ?

L))) (in-context (series end-n1 beg-n2) :maintain (and (at-package ?P ?C) (at-equipment ?C ?L))) :precondition (and (flatbed ?V) (empty ?C) (at-package ?P ?V) (at-vehicle ?V ?L) (at-equipment ?C ?

L))))))

Page 15: PDDL:  uma linguagem padrão para especificação de problemas e heurísticas de planejamento

Invariantes e manutenção de objetivos

Propriedades invariantes do domínio <timeless-def> ::= (:timeless <literal (name)>+) ex, (:timeless (on briefcase-tag briefcase))

Objetivo a manter durante plano inteiro <safety-def> ::= (:safety <goal>) ex, (:safety (forall (?F) (or (file ?F) (written-to-tape ?F))))

Objetivo a manter durante passo de uma expansão <action-spec> ::= (in-context <action-spec> <action-def-body>) :maintain declara objetivo a manter durante passo especificado por

<action-spec> de uma expansão :pré-condição declara pré-condição adicional para uma ação do contexto

durante o passo especificado por <action-spec> de uma expansão ex, (series (clear ?Area) (in-context (shell ?Area) :precondition (not (exists (?U -unit) (and (friendly ?U) (in ?U ?Area))))))

Page 16: PDDL:  uma linguagem padrão para especificação de problemas e heurísticas de planejamento

Axiomas

Representam relações entre objetos do mesmo estado Complementam ações que representam relações entre

objetos de estados diferentes Permite fatorar do código das ações conseqüências

comuns, próprias a um estado é não a uma transição dada

Page 17: PDDL:  uma linguagem padrão para especificação de problemas e heurísticas de planejamento

Axiomas

<axiom-def> ::= (:axiom :vars <typed list(variables)> :context <goal> :implies <literal>) Um axioma é uma regra dedutiva da 1a ordem:

:vars contém variáveis implicitamente universalmente quantificadas :context indica premissa da regra :implies codifica conclusão da regras

Planejadores implementando axiomas devem embutir motor de inferência pelo sub-conjunto da lógica da 1a ordem formado pelas fórmulas implicativas mais expressivo do que Prolog e sistemas de produção

ex, (:axiom :vars (?O1 ?O2 -physobj) :context (on ?O1 ?O2) :implies (above ?O1 ?O2)) (:axiom :vars (?O1 ?O2 -physobj) :context (exists (?O3 -physobj) (and (on ?O1 ?O3) (above ?O3 ?O2)) :implies (above ?O1 ?O3))

Page 18: PDDL:  uma linguagem padrão para especificação de problemas e heurísticas de planejamento

Fluentes e expressões aritméticas

(:action pour :parameters (?Source ?Dest -container) :vars (?Sfl ?Dfl -(fluent number) ?Dcap -number) :precondition (and (content ?Source ?Slf) (content ?Dtest ?Dfl) (capacity ?Dest ?Dcap) (fluent-test (<= (+ ?Sfl ?Dfl) ?

Dcap))) :effect (when (and (contents ?Source ?Sfl) (contents ?Dest ?Dfl)) (and (change ?Sfl 0) (change ?Dfl (+ ?Dfl ?Sfl)))))

(fluent-eval (sum (?P -person ?W -number) (and (aboard ?P ?Elevator) (weight ?P ?W)) ?W))

Page 19: PDDL:  uma linguagem padrão para especificação de problemas e heurísticas de planejamento

Definição de problemas

Page 20: PDDL:  uma linguagem padrão para especificação de problemas e heurísticas de planejamento

Heurísticas de planejamento