Descrição do Mundo de Wumpus
Mundo de Wumpus
Mundo de Wumpus -1
Mundo de Wumpus - 2
Mundo de Wumpus - 3
Mundo de Wumpus - 4
Wumpus Outros Pontos Críticos
Descrição Lógica do Mundo de Wumpus
Identidades Lógicas Comuns
Prova no Mundo de Wumpus
Regras de Inferência
Regra de Inferência: Resolução
Forma Normal Conjuntiva A inferência por resolução é completa em FNC. Isto é pode derivar qualquer conclusão válida por qualquer base de conhecimento em Lógica Proposicional. Completo em um sentido especializado: Completeza da refutação. Pode ser usado para confirmar se uma dada sentença é valida ou não, mas não consegue enumerar todas as sentenças válidas
Regras de Inferência para Lógica Proposicional
Resolução e Encadeamento
Encadeamento para Frente
Resumo até aqui
Lógica de Primeira Ordem Aqui percebemos que o mundo é repleto de objetos, alguns dos quais estão relacionados a outros objetos e tentamos raciocinar sobre eles Introduz-se as noções de : constantes, predicados, funções e variáveis Lógica de Primeira Ordem (LPO) também pode ser chamada de cálculo de predicados de primeira ordem (CPPO)
Sintaxe LPO: Elementos Básicos
Termos e Sentenças Atômicas
Verdade em Lógica de Primeira Ordem
Sintaxe da Lógica de Primeira Ordem
Quantificador universal
Quantificador Existencial
Propriedades dos Quantificadores
Sentenças em LPO
Igualdade
Manipulando BC em LPO
Um agente Reflexo
Mantendo rastro de situações
Predicado Resultado Suponha o agente em [1,1] e ouro em [1,2] o objetivo é trazer o ouro para [1,1]. Então na situação inicial: Insuficientemente, pois não diz o que não é verdadeiro em S o Hipótese de Mundo Fechado e Hipótese de Nome único
Descrição da Situação Inicial O ouro é G1 e [1,1] e [1,2] são adjacentes É possível atingir o objetivo com: Mas como escolher as ações para chegar ao objetivo?
Descrevendo ações -1
Detalhamento: Axioma do Efeito Com isso, podemos concluir que: Entretanto, não é possível a partir dos fatos conhecidos concluir que (ver descrição situação inicial):
Problema do Quadro Exemplo do Problema do Quadro: Como mostrar que ao movimentar o agente para [1,2] o ouro não mudou de lugar Solução 1: Será preciso criar várias regras para os vários objetos Solução alternativa é o Axioma sucessor-estado
Descrevendo ações - 2
Axioma de Estado-Sucessor - 2
Deduzindo propriedades escondidas
Lógica de Primeira Ordem - Resumo
Inferência em LPO
Inferência envolvendo quantificadores
Prova em LPO
Prova - 2
Unificação
Unificação - 2
Proposição do Modus Ponen Generalizado
Correção do Modus Ponen Generalizado
Resolução para Inferência em LPO
A Forma CNF Sempre é possível converter sentenças LPO para CNF, veja abaixo método
Prova por Resolução
Prova por Resolução - 2
Estratégias de Resolução
Programação em Lógica Prolog é sem dúvida a linguagem de programação em lógica mais utilizada Prolog foi criada em 1973 por Alain Colmerauer Os programas Prolog são um conjunto de clausulas definidas com notação um pouco diferente de LPO Utiliza-se o símbolo :- para implicação a esquerda A execução de programas Prolog é feita por encadeamento para trás em profundidade onde as cláusulas são experimentadas na ordem em que são inscritas na base de conhecimento
Prolog - 2 A linguagem Prolog utiliza letras maiúsculas para representar variáveis e letrs minúsculas para representar constantes Há vários compiladores/interpretadores Prolog disponíveis. Um dos mais utilizados é o SWI-Prolog, disponível em: http://www.swi-prolog.org/
Exemplos de cláusulas Prolog
Exemplos de Cláusulas Prolog
Interrogando a BC
Operadores em Prolog, - operador lógico e ; - operador lógico ou not - operador lógico negação :- Implicação à esquerda
Base de Conhecimento
Exemplo Leis da Robótica
Exemplo Leis da Robótica
Relações Infixas - Sentenças Atômicas
Hífen qualquer coisa A presença do hífen indica que qualquer termo atende a cláusula. Com o uso de or (;)é possível unir duas regras com mesmo consequente. Veja:
Listas
Pertinência a lista
Aritmética em Prolog
Erros comuns
Exemplo de Coloração em Grafos
Exemplo de Programa para Coloração em Grafos
Execução
E se houvesse duas cores
Outro Exemplo: Palavras Cruzadas
Uma solução
Execução Há outra solução?
Laços Infinitos
Exemplo
Função Trace A função trace quando acionada exibe passo a passo a execução dos encadeamentos realizados pelo Prolog. O prolgo realiza encaminhamento para trás e realiza backtracking quando chega a uma não-solução. Exemplo:
Exemplo de Execucão da Função Trace
Recursão
Exemplo de Recursão Alternativa a recursão seria a produção de todas as regras diretas. Ex.: descendente(charlie,alan). descendente(denis,alan). etc