Jacques Robin CIn-UFPE

Slides:



Advertisements
Apresentações semelhantes
Lógica de Predicados e Representação de Conhecimento
Advertisements

Capítulo 8 A linguagem da Lógica de Predicados
Banco de Dados Prof. Antonio.
Desenvolvimento de Sistemas Baseado na Transformação de Modelos
TC2- Lógica Proposicional
Elsa Carvalho 163 Universidade da Madeira Departamento de Matemática Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Teoria dos Modelos.
Lógica de Predicados Sintaxe. O que não é possível expressar em Lógica Prop. Todo tricolor é um campeão. Roberto é tricolor. Logo Roberto é um campeão.
Programação de Computadores - 2
Modelagem de Sistemas Alcides Calsavara.
Introdução à Programação Lógica
Banco de Dados Dedutivo
Subconsultas ou Consultas Aninhadas
Agentes Baseados em Conhecimento
Planejamento e Execução
PLANEJADORES PRÁTICOS Jacques Robin DI-UFPE Planejamento de Ordem Parcial (POP) com linguagem STRIPS * mais expressivo que resolução de problema * porque.
Programação em lógica e lógica
Prolog: Predicados Built-in 2
LIFE: predicados, funções e sorts built-in Jacques Robin Paulo Oliva Leonardo Lemos DI-UFPE.
Planejamento (Cap. 11 do Russell)
Capítulo 2 Representação de Problemas em Planejamento Clássico
Lógica de Primeira Ordem -3
Linguagem de 1ª ordem da teoria de conjuntos
Contratos Modelagem Funcional.
INF 1771 – Inteligência Artificial
INF 1771 – Inteligência Artificial
INF 1771 – Inteligência Artificial
Inteligência Artificial
Conceitos Básicos.
INF 1771 – Inteligência Artificial
INF 1771 – Inteligência Artificial
Aula Prática - Prolog Sistemas Inteligentes /~if684
INF 1771 – Inteligência Artificial
Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC
INF 1771 – Inteligência Artificial Aula 12 – Planejamento Edirlei Soares de Lima.
Linguagens lógicas 2013 – Luiz Mauricio Nascimento Silva
INF 1771 – Inteligência Artificial
Operadores Relacionais, Lógicos e comandos de condição
INF 1771 – Inteligência Artificial Aula 13 – Hierarchical Task Network (HTN) Edirlei Soares de Lima.
Planejamento Rodrigo Barros de Vasconcelos Lima
Sistemas Especialistas
Blackbox Ferramenta de Planejamento em IA Jairson Vitorino, 06 de maio de 2005
Sistemas Baseados em Conhecimento
Ontologias Profa. Lillian Alvares
Analise Semântica aula-10-analise-semântica.pdf.
Algoritmos e Estruturas de Dados RECURSIVIDADE. O que é recursividade? Recursividade significa algo ser definido em termos de sí próprio. Em termos de.
Aula prática 2 Operadores e Expressões Comandos de Decisão Comentários
Algoritmos Estruturados
Planejamento Hierárquico Jacques Robin CIn-UFPE Planejamento de Ordem Parcial (POP) com linguagem STRIPS * mais expressivo que resolução de problema.
Semântica de uma fórmula da lógica da 1a ordem via modelo de Herbrand
Sistemas Digitais e Automação
INF 1771 – Inteligência Artificial
Cálculo Relacional.
Algoritmos e Estrutura de Dados I
Transformação de Dados
Resolução de Problemas de Busca
Teste de Software 14: Geração de teste baseado em modelos: MBT
Ferramentas de Planejamento em IA Blackbox Planner.
Fundamentos de linguagens de programação
PDDL: uma linguagem padrão para especificação de problemas e heurísticas de planejamento Jacques Robin CIn-UFPE.
Semântica de Linguagens de Programação
Linguagem de 1ª ordem da teoria de conjuntos
Object Constraint Language Philip Stephen Medcraft.
Programas e Refinamento Programming from Specifications Carroll Morgan Prentice-Hall, 1994 [Capítulo 1] Equipe: Klaus Cavalcante Tarcísio Quirino Raquel.
Métodos Formais Juan Andrés Mussini.
Modelação Aula T15 Modelação Conceptual de Sistemas Revisão do Comportamento OCL – Object Constraint Language José Borbinha.
Sistemas Baseados em Conhecimento Prof. Cláudio M. N. A. Pereira.
Fundamentos de Programação
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 1 Planejamento Baseado em Lógica André Novaes CIn - UFPE.
1 Planejamento Clássico (Planning) Russel, S. Norvig, P.: Inteligência Artificial (segunda edição) 28 SET 09 Igor R M Menezes.
Sistemas de Produção Jacques Robin CIn-UFPE. Roteiro  Definição de um sistemas de produção  Regras de produção  Inferência com regras de produção 
Transcrição da apresentação:

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

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 base permite usar qualquer combinação de uma grande variedade de extensões que incluem ADL

Expressividade de PDDL: cobre muitas extensões de STRIPS Decomposição hierárquica Efeitos condicionais Efeitos universalmente quantificados 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ínio assim permitem que as ações representam apenas as mudanças entre situações

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 objetivos das pré-condições das ações das condições dos efeitos condicionais as premissas dos axiomas Variáveis tipadas Objetivos a manter durante expansão de uma ação abstrata, ou até processo de planejamento inteiro Medidas de fluentes e avaliação de expressões aritméticas de cálculo e comparação para representar restrições quantitativas de recursos

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)))))))

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) :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)))

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>

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

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>

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)))))))

Efeitos Pré-condição P de ação x condição C de efeito condicional E <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 E Se P é falso a ação não é executada Se C é falso a ação é executada, sem o efeito E

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)))

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

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))))))

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))))))

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

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))

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))