Programa - PowerPoint PPT Presentation

1 / 22
About This Presentation
Title:

Programa

Description:

Title: Programa o em l gica, l gica e Prolog Author: Departamento de Inform tica Last modified by: Departamento de Inform tica Created Date – PowerPoint PPT presentation

Number of Views:81
Avg rating:3.0/5.0
Slides: 23
Provided by: Departa92
Category:

less

Transcript and Presenter's Notes

Title: Programa


1
Programação em lógica e lógica
  • Jacques Robin, DI-UFPE
  • www.di.ufpe.br/jr

2
O que é Prolog?
  • Primeira e mais divulgada linguagem do paradigma
    da Programação em Lógica (PL)
  • Operacionalização simples, prática e eficiente da
    metáfora da PL
  • PL unifica
  • Engenharia de Software (especificação formal,
    linguagens de programação)
  • Inteligência Artificial (IA) (raciocínio com
    Formalismos de Representação do Conhecimento
    (FRCs))
  • Banco de Dados -- Dedutivos (BDDs)
  • Teoria Lógica (TL) das provas

3
Metáfora da programação em lógica
  • Teoria Lógica Programa BD dedutivo Base de
    Conhecimento (BC)
  • Programar apenas declarar axiomas e regras
  • Axiomas da TL
  • fatos da BC
  • parte extensional do BDD
  • dados explícitos de um BD tradicional
  • Regras da TL (e da BC)
  • parte intencional do BDD
  • Teoremas da TL
  • deduzidos a partir dos axiomas e das regras
  • dados implícitos do BDD

4
Linguagens de PL
  • Interpretadas (interatividade) e compiladas
    (eficiência)
  • Interpretadores-Compiladores (IC) de PL
  • SGBD dedutivos (em geral em memória central)
  • Motores de inferência
  • Provadores de teoremas para lógicas com grande
    interseção com a Lógica da 1a ordem (L1)
  • Interação
  • Declarar o que é verdadeiro (axiomas e regras do
    PL/BDD)
  • Chamar o IC e carregar o PL/BDD
  • Perguntar o que é verdadeiro (tentar provar
    teoremas executar o PL consultar o BDD)

5
PL x resto do mundo
  • PL x programação imperativa, funcional e 00
  • mais declarativa, mais alto-nível
  • mais versátil -- linguagem única para
  • especificar formalmente e implementar
  • programar aplicações, scripts e consultas em BD
  • PL x outros FRCs
  • melhor fundamentação teórica
  • melhor integração com o resto da ciência
    computação
  • PL base interessante para integração de
    paradigmas
  • PL caso particular de programação por restrições

6
Ciclo de desenvolvimento de um software baseado
em conhecimento
7
Raciocínio automático em software baseado em
conhecimento
  • Propriedades desejáveis
  • correto
  • completo
  • composicional

8
Programação procedimental x programação
declarativa
  • 1. Escolher linguagem de especificação formal
    (LE)
  • 2. Especificar formalmente os requisitos na LE
  • 3. Escolher linguagem de programação (LP)
  • 4. Codificar estruturas de dados na LP
  • 5. Codificar passo a passo estruturas de
    controle na LP
  • 6. Escolher/escrever compilador da LP
  • 7. Executar programa
  • Escolher FRC (1,3)
  • Declarar estruturas de conhecimento no FRC (2,4)
  • Escolher/escrever motor de inferência para FRC
    (6)
  • Consultar base de conhecimento sobre verdade de
    um fato (7)
  • foi declarado?
  • pode ser deduzido?
  • reposta
  • "booleana (L0, L1)
  • instanciação de variáveis (L1)

9
L1 como FRC e linguagem de programação
declarativa motivação
  • Satisfaz em grande parte para muitas aplicações
  • Adequação representacional e inferencial
  • Eficiência aquisicional e inferencial
  • Propriedades formais (semântica, complexidade da
    inferência) muito bem conhecidas
  • Referência e interlingüa para comparar FRCs
  • Regras de inferências permite RC modular
  • Independência entre regras
  • Conclusão desamarrável das premissas uma vez
    deduzida, a justificação de uma conclusão pode
    ser esquecida

10
Revisão de L1 sintaxe
  • Fórmula Fórmula-Atômica
  • (Fórmula)
  • ù Fórmula
  • Quantificador Variável, ... Fórmula,
  • Fórmula Conectivo Fórmula
  • Fórmula-Atômica Predicado(Termo,...) Termo
    Termo
  • Termo Função(termo,...)
  • Constante
  • Variável
  • Conectivo Ú Ù Þ Û
  • Quantificador " !
  • Constante Wumpus Agente Flecha ...
  • Variável x y wumpus agente ...
  • Predicado Adjacente Vivo ...
  • Função Em Brisa ...

11
Revisão de L1 semântica
  • Engajamento ontológico
  • universo é dividido em
  • objetos, as entidades individuais do universo,
    representado pelos termos
  • propriedades, que distinguem um objeto dos
    outros, representados pelas funções
  • relações entre objetos, representados pelos
    predicados
  • Engajamento epistemológico
  • afirmações representadas pelas formulas são
  • verdadeiras xorfalsas
  • quantificadores e variáveis permitem representar
    intencionalmente, propriedades de conjuntos de
    objetos
  • Igualdade semântica permite representar
    identidade entre objetos

12
Revisão de L1 mecanismo de inferência completo
(para verificação)
Fórmula da lógica de 1a. ordem
Fórmula na forma normal
Fórmula instanciada ou False
Prova por Refutação
Conversão para forma normal
13
Revisão de L1forma normal (1)
  • Def
  • Thm
  • Regras de conversão
  • implicação
  • negação
  • variáveis

14
Revisão de L1formal normal (2)
  • Regras de conversão (cont.)
  • quantificadores
  • skolemização
  • distributividade
  • associatividade
  • disjunções
  • Quantificação universal implícita

15
Revisão de L1 refutação, unificação e
substituição
  • Motivação de provas por refutação
  • KB Þ P Û ØØ(KB Þ P)
  • Û ØØ(ØKB Ú P)
  • Û Ø(KB Ù Ø P)
  • Û Ø(KB Ù Ø P) Ú False
  • Û (KB Ù Ø P) Þ False
  • Substituição de variáveis de uma formula f
  • conjunto de pares Var/const ou Var1/Var2
  • Unificação de 2 formulas f e g
  • substituição S das variáveis de f e g tal que
    S(f)S(g)
  • 2 resultados
  • S
  • rS(f)s(g)

16
Revisão de L1 unificação posicional
  • Exemplos
  • unif(conhece(joao,X),conhece(Y,leandro))
    X/Leandro,Y/joao
  • unif(conhece(joao,X),conhece(X,leandro) fail
  • unif(conhece(joao,X),conhece(Y,mae(Y))
  • Y/joao, X/mae(joao)
  • unif(conhece(joão,X),conhece(Y,Z)) Y/João,
    X/Z, ou
  • Y/joão, X/Z, W/zelda ou Y/joão, X/joão,
    Z/joão ...
  • Unificador mais geral com menor número de
    variáveis instanciadas
  • Substituição mínima com menor número de pares
    Var/const

17
Revisão de L1 regra de resolução
  • simples
  • ex.
  • geral

18
Revisão de L1 demodulação
  • Unificação é uma operação puramente sintática
  • unif(P(a),P(b)) fail mesmo se BC contém a b
  • necessidade de simplificar formulas depois da
    unificação unificar para tomar em consideração
    igualdade semântica
  • Regra de demodulação
  • ex.

19
A curiosidade matou o gato? em L1
  • Requisitos em inglês
  • 1. Jack owns a dog.
  • 2. Every dog owner is an animal lover.
  • 3. No animal lover kills an animal.
  • 4. Either Jack or curiosity killed Tuna
  • 5. Tuna is a cat
  • 0. Did curiosity kill the cat?
  • Em L1
  • 1. x Dog(x) Ù Owns(Jack,x)
  • 2. "x (y Dog(y) Ù Owns(x,y)) Þ AnimalLover(x)
  • 3. "x AnimalLover(x) Þ "y Animal(y) Þ ØKills(x,y)
  • 4. Kills(Jack, Tuna) Ú Kills(Curiosity, Tuna)
  • 5. Cat(Tuna)
  • 6. "x Cat(x) Þ Animal(x)
  • 0. Kills(Curiosity,Tuna)

20
A curiosidade matou o gato? em forma normal
  • Em L1
  • 1. x Dog(x) Ù Owns(Jack,x)
  • 2. "x (y Dog(y) Ù Owns(x,y)) Þ AnimalLover(x)
  • 3. "x AnimalLover(x) Þ "y Animal(y) Þ ØKills(x,y)
  • 4. Kills(Jack, Tuna) Ú Kills(Curiosity, Tuna)
  • 5. Cat(Tuna)
  • 6. "x Cat(x) Þ Animal(x)
  • 0. Kills(Curiosity,Tuna)
  • Em forma normal
  • 1a. Dog(D)
  • 1b. Owns(Jack, D)
  • 2. Dog(y) Ù Owns(x,y)) Þ AnimalLover(x)
  • 3. AnimalLover(x) Ù Animal(y) Ù Kills(x,y) Þ F
  • 4. Kills(Jack, Tuna) Ú Kills(Curiosity, Tuna)
  • 5. Cat(Tuna)
  • 6. Cat(x) Þ Animal(x)
  • 0. Kills(Curiosity, Tuna)

21
A curiosidade matou o gato? exemplo de prova
por refutação
22
Revisão de L1 estratégias de resolução
  • Refutação aplicação repetitiva da regra de
    resolução
  • Problema
  • a cada passo, como escolher o par de fórmulas a
    resolver?
  • Heurísticas
  • Resolver em prioridade formulas atómicas (unit
    preference).
  • Destacar um conjunto de formulas S (set of
    support) a resolver em prioridade
  • Sempre resolver uma formula inicial com uma
    formula derivada (input resolution)
  • Linear resolution (completa) sempre escolher
  • uma formula inicial com uma derivada qualquer
  • ou, 2 derivadas, uma sendo ancestral da outra
Write a Comment
User Comments (0)
About PowerShow.com