• Nenhum resultado encontrado

Lógica de Primeira Ordem

N/A
N/A
Protected

Academic year: 2019

Share "Lógica de Primeira Ordem"

Copied!
47
0
0

Texto

(1)
(2)

Negação Conjunção Disjunção Implicação Equivalência

Lógica Proposicional (Revisão)

● Semântica: Cada modelo atribui verdadeiro/falso a cada símbolo

proposicional

(3)

Negação Conjunção Disjunção Implicação Equivalência

NOT AND OR XNOR

Lógica Proposicional (Revisão)

● Semântica: Cada modelo atribui verdadeiro/falso a cada símbolo

proposicional

(4)

Lógica Proposicional (Revisão)

● Implicação

P significa "O botão vermelho foi apertado" ● Q significa "O lugar inteiro explode"

P Q pode ser interpretada como "Se o botão vermelho foi apertado, então o lugar inteiro

explode"

● Mas se o botão vermelho for apertado (verdade de P) e o lugar inteiro não explodir, este resultado é

(5)

Lógica Proposicional (Revisão)

● Equivalência ou bi-implicação (se, e somente se)

P significa "O número natural é divisível por cinco"

Q significa "O último algarismo do número natural é zero ou cinco"

P Q pode ser interpretada como "O número natural é divisível por 5 se, e somente se, o seu

último algarismo é zero ou cinco"

● Se uma das proposições for falsa, o enunciado se torna falso.

(6)

Agente Baseado em Conhecimento

● O componente central de um agente baseado em conhecimento é sua

base

de conhecimento

.

● A base de conhecimento é formada por um conjunto de

sentenças

expressadas por meio de uma

linguagem lógica

de representação de

conhecimento.

(7)

Lógica de Primeira Ordem

● Ou cálculo de Predicados de primeira ordem ou

cálculo relacional

É caracterizado como um sistema formal apropriado à definição de teorias do universo de discurso da Matemática

Utiliza predicados

■ Assim, pode ser utilizada facilmente para representações de conhecimento do tipo: ● “Sócrates é um homem.”

● “Platão é um homem.”

● “Todos os homens são mortais.”

■ Repare que se utilizássemos lógica proposicional, não teríamos uma generalização pois cada sentença seria um fato. A generalização é possível utilizando-se variáveis e

(8)

Lógica de Primeira Ordem

● Utiliza

○ Objetos

■ Pessoas, casas, números, cores, jogos, séculos… ○ Relações:

■ Unárias: propriedades de um objeto. ● Exemplo: vermelho, redondo, falso ■ N-árias: relacionam grupos de objetos.

● Exemplo: irmão de, maior que, interior a, parte de… ■ Funções: um objeto está relacionado a exatamente um objeto.

● Exemplo: pai de, melhor amigo de, terceiro turno de, uma unidade maior que…

(9)

Sintaxe

● Um alfabeto de primeira ordem

α

consiste em

○ Símbolos Lógicos

■ Conectivos: ¬ , ⇒, ∧, ∨, ⇔

■ Símbolo de igualdade: =

■ Quantificadores: ∀ (quantificador universal), ∃ (quantificador existencial)

○ Termos

■ Constantes e variáveis são termos ■ f(t1, t2, ..., tn)

● f é um símbolo funcional que define uma relação ● (t1, t2, ..., tn) é uma tupla de termos

■ Exemplos ● x, bear ● X, City

(10)

Exemplos

● Quantificador universal

○ ∀ X gosta(ana,X)

■ É lido como “para todo X, Ana gosta deste X” ou “Ana gosta de todos”

● Quantificador existencial

○ ∃ X gosta(ana,X)

(11)

Exemplos

● Não existe uma única forma de simbolizar um determinado conhecimento

○ Por exemplo: sentença “A casa é amarela” ■ amarela(casa)

■ cor(casa,amarela)

(12)

Exercício 1

● Dadas as relações

○ estuda(X,Y) que significa “X estuda Y” ○ gosta(X,Y) que significa “X gosta de Y ○ chapeu(X) que significa “o chapéu de X”

● Mostrar como são representadas as seguintes sentenças

1. “Ana gosta do livro Inteligência Artificial” 2. “Ana estuda o livro de Cálculo”

(13)

Exercício 1 - Solução

1. “Ana gosta do livro Inteligência Artificial”

gosta(ana, livro inteligência artificial)

2. “Ana estuda o livro de Cálculo”

estuda(ana, livro de cálculo)

3. “Se Ana estuda o livro então ela gosta dele”

estuda(ana, livro)

gosta(ana, livro)

4. “Ana gosta do chapéu de pedro”

(14)

Mais exemplos

X (m(X)

n(X))

○ Alguns m são n

Existem m que são n

X (m(X)

¬n(X))

○ Alguns m são não n Alguns m não são n

Existem m que não são n Pelo menos um m não é n

X é uma variável

(15)

Mais alguns exemplos

● Todos os homens são mortais

○ ∀ X (homem(X) ⇒ mortal(X))

● Alguns gatos são amarelos

○ ∃ X (gato(X) ∧ amarelo(X))

● Nenhuma baleia é peixe

○ ∀ X (baleia(X) ⇒ ¬peixe(X))

● Meninos e meninas gostam de brincar

○ ∀ X (menino(X) ∨ menina(X) ⇒ gosta(X, brincar))

○ ∀ X (menino(X) ⇒ gosta(X, brincar)) ∧ ∀ Y (menina(Y) ⇒ gosta(Y, brincar))

● Leite e banana são nutritivos

○ ∀ X (leite(X) ∨ banana(X) ⇒ nutritivo(X))

● Nem tudo que reluz é ouro

(16)

Mais outros exemplos

● Há pintores que não são artistas, mas artesãos

○ ∃ X (pintor(X) ∧ ¬artista(X) ∧ artesao(X))

● Não há crime sem lei que o define

○ ∀ X (crime(X) ⇒ ∃ Y(lei(Y) ∧ define(Y, X)))

● Há pelo menos dois senadores

○ ∃ X ∃ Y (senador(X) ∧ senador(Y) ∧ X != Y)

● Não há bom livro escrito por maus autores

(17)

PROLOG

● O Prolog é uma linguagem de programação baseada em lógica de primeira

ordem

● Não é padronizada

● Algumas implementações

○ SICStus Prolog

○ Borland Turbo Prolog

○ SWI-Prolog

(18)

SWI-PROLOG

● Open Source

● Multiplataforma

(19)

PROLOG vs Outras linguagens

● Linguagens Procedimentais (C, Pascal, Basic...)

○ Especifica-se como realizar determinada tarefa.

● Linguagens Orientadas a Objetos (C++, Java, C#...)

○ Especifica-se objetos e seus métodos.

● Prolog

(20)

Programando em PROLOG

● Programar em Prolog envolve

Declarar alguns fatos a respeito de objetos e seus relacionamentos

Definir algumas regras sobre os objetos e seus relacionamentos

(21)

Programando em PROLOG

● Nomes de constantes e predicados iniciam sempre com letra minúscula

● O predicado (relação unária, n-ária ou função) é escrito primeiro e os objetos

relacionados são escritos depois entre parênteses

● Variáveis sempre começam por letra maiúscula

● Toda sentença termina com ponto “.”

(22)

Programando em PROLOG

(23)

Programando em PROLOG

● Regras

São utilizadas para expressar dependência entre um fato e outro fato:

criança(X) :- gosta(X,sorvete).

criança(X) :- not( odeia(X,sorvete) ).

Ou grupo de fatos:

avó(X,Z) :- (mãe(X,Y),mãe(Y,Z)); (mãe(X,Y),pai(Y,Z)).

Podem conter listas:

(24)

Programando em PROLOG

● Definindo relações por fatos

Exemplo de relações familiares

O fato que Abraão é um progenitor de Isaque

pode ser escrito em Prolog como:

progenitor(abraão, isaque).

Neste caso definiu-se progenitor como o nome

de uma relação

(25)

Programando em PROLOG

● Árvore familiar completa

progenitor(sara,isaque).

progenitor(abraão,isaque).

progenitor(abraão,ismael).

progenitor(isaque,esaú).

progenitor(isaque,jacó).

progenitor(jacó,josé).

(26)

Programando em PROLOG

● Fazendo perguntas ao Prolog

Isaque é pai de Jacó?

?- progenitor(isaque,jacó).

Como o Prolog encontra essa pergunta como um

(27)

Programando em PROLOG

● Fazendo perguntas ao Prolog

Ismael é pai de Jacó?

?- progenitor(ismael,jacó).

(28)

Programando em PROLOG

● Fazendo perguntas mais interessantes

○ Quem é o progenitor de Ismael?

?- progenitor(X, ismael).

○ Neste caso, o Prolog não responde

True

ou

False

○ O Prolog retornará o valor de X tal que a pergunta

seja verdadeira.

(29)

Programando em PROLOG

● Fazendo perguntas mais interessantes

○ Quais os filhos de Isaque?

?- progenitor(isaque, X).

○ Neste caso, há mais de uma resposta

○ O Prolog retornará a primeira resposta

X = esaú

○ E o usuário pode requisitar outra resposta

pressionando “;”

(30)

Programando em PROLOG

● Fazendo perguntas ainda mais interessantes

○ Quem são os netos de Sara?

?- progenitor(Sara, X), progenitor(X, Y).

○ O Prolog retornará

X = isaque

Y = jacó

(31)

Programando em PROLOG

● É possível expandir o programa sobre relações familiares criando novos

fatos. Por exemplo, adicionando o sexo de cada membro da família.

(32)

Programando em PROLOG

● Criando a relação

filho

É possível definir filho de maneira similar à relação progenitor, ou seja enumerando uma lista de fatos sobre a relação filho, mas esta não é a forma correta!

(33)

Programando em PROLOG

● Definindo relações baseadas em

regras

● Criando a relação

filho

de maneira mais elegante

Para todo X e Y, Y é um filho de X se X é um progenitor de Y.

● Em Prolog:

(34)

Programando em PROLOG

● Diferenças entre fatos e regras

○ Fatos são sempre verdadeiros

(35)

Programando em PROLOG

● Fazendo perguntas muito mais interessantes

○ Após definir a regra filho, é possível perguntar ao Prolog se Ismael é filho de Abraão

?- filho(ismael, abraão).

Como não existem fatos sobre a relação filho, a única forma do Prolog responder esta pergunta é aplicando a regra filho:

(36)

● Definindo novas regras

○ É possível também incluir a especificação da relação mãe, com base no seguinte fundamento lógico

○ Para todo X e Y

■ X é a mãe de Y se

● X é um progenitor de Y e ● X é uma mulher.

○ Em Prolog

mãe(X,Y) :- progenitor(X,Y), mulher(X)

(37)

● Definindo novas regras

○ A relação irmão pode ser definida como ○ Para todo X e Y

■ X é irmão de Y se ambos X e Y têm um progenitor em comum

○ Em Prolog

irmão(X,Y) :- progenitor(Z,X), progenitor(Z,Y)

(38)

● Regras recursivas

○ A relação ancestral pode ser definida criando uma regra recursiva ○ Em Prolog

○ Quais são os descendentes de Sara?

Programando em PROLOG

ancestral(X,Z) :- progenitor(X,Z).

ancestral(X,Z) :- progenitor(X,Y), ancestral(Y,Z).

?- ancestral(sara, X).

(39)

Programando em PROLOG

● Estruturas

○ Objetos estruturados são objetos de dados com vários componentes. ○ Cada componente da estrutura pode ser outra estrutura.

○ Por exemplo, uma data pode ser vista como uma estrutura com três componentes: dia, mês, ano.

(40)

Programando em PROLOG

● Estruturas

(41)

Programando em PROLOG

● Estruturas

(42)

Programando em PROLOG

(43)

Programando em PROLOG

● Operadores

○ O operador “=” realiza apenas a unificação de termos ■ ?- X = 1 + 2.

■ X = 1 + 2

○ O operador “is” força a avaliação aritmética ■ ?- X is 1 + 2.

(44)

Desafio

“The law says that it is a crime for an American to sell weapons to hostile nations.

The country Nono, an enemy of America, has some missiles, and all of its missiles

were sold to it by Colonel West, who is American.”

(45)

Desafio - Dicas

“The law says that it is a crime for an American to sell weapons to hostile nations.

The country Nono, an enemy of America, has some missiles, and all of its missiles

were sold to it by Colonel West, who is American.”

% Fatos

american(west).

(46)

Desafio - Solução

“The law says that it is a crime for an American to sell weapons to hostile nations.

The country Nono, an enemy of America, has some missiles, and all of its missiles

were sold to it by Colonel West, who is American.”

% Fatos

american(west).

enemy(america, nono). weapons(missiles). owns(nono, missiles). sell(west, missiles, nono).

% Regras

(47)

Desafio - Solução

“The law says that it is a crime for an American to sell weapons to hostile nations.

The country Nono, an enemy of America, has some missiles, and all of its missiles

were sold to it by Colonel West, who is American.”

?- criminal(west).

True

?- criminal(X).

Referências

Documentos relacionados

39 A correlação negativa encontrada entre o IMC e a percentagem de massa gorda corporal com a DLCO sugere uma provável diminuição da área disponível para

Latin America societies are societies of multiple ethics, whereas the ideology of the industrial West presumes a unitary ethic or as Americans like to put it, uniform rules of

and specimens from the Serra do Mar and to its west, in São Paulo, in the west of Minas Gerais, and in the states of Paraná, Santa Catarina and Rio Grande do Sul and in

The third major region in which insect-induced dermatitis has been recorded is Hamedan province, in the west of the country, specifically, cases of blistering from meloids (Table

The annual rainfall anomaly is an east-west dipole over tropical South America, with drought to the west over the Amazon basin whose discharge is documented at Manaus, and with

mulheres da Colônia; Atos de censura, livros de devoção - ensaios de história da leitura e dos livros na América portuguesa), Leila Algranti tem se destacado

motivação autónoma no burnout é mais fraca nos homens do que nas mulheres (β=-40. A hipótese 5b) que previa uma relação negativa entre motivação autónoma e o burnout, mais

Thus, the geothermal potential of Romania and especially of the west and north - west region shows a great energy importance and implicitly an economical