320 likes | 688 Views
Lógica de primeira ordem First Order Logic (FoL). Capítulo 8 Fundamentos da IA Mestrado FEI. Lógica proposicional. é declarativa permite informação disjuntiva e/ou negada (ao contrario da maioria das estruturas de dados e base de dados) é composicional :
E N D
Lógica de primeira ordemFirst Order Logic (FoL) Capítulo 8 Fundamentos da IA Mestrado FEI
Lógica proposicional é declarativa permite informação disjuntiva e/ou negada • (ao contrario da maioria das estruturas de dados e base de dados) • é composicional: • o significado de B1,1 P1,2 é derivado do significado de B1,1 e P1,2 O significado das sentenças proposicionais é independente do contexto • (ao contrário da linguagem natural) Possui um poder de expressão limitado • (ao contrário da linguagem natural) • E.g., "poços causam brisas em quadrados adjacentes” • em LP: B1,1 <-> (P1,2 V P21) etc... • Uma sentença para cada quadrado
FoL: compromisso ontológico • A lógica proposicional assume mundos compostos somente por fatos, • A lógica de primeira ordem (como a linguagem natural) assume mundos compostos por • Objetos: people, houses, numbers, colors, baseball games, wars, … • Relações: red, round, prime, brother of, bigger than, part of, comes between, … • Funções: father of, best friend, one more than, plus, …
Sintaxe da FOL • Constantes KingJohn, 2, NUS,... • Predicados Brother, >,... • Funções Sqrt, LeftLegOf,... • Variáveis x, y, a, b,... • Conectivos , , , , • Igualdade = • Quantificadores , Símbolos para! Não são a coisa em sí!!
Sintaxe da LPO Termos = função(term1,...,termn) ou constante ou variável [referem-se a objetos] Sentenças atômicas = predicado(term1,...,termn) ou term1 = term2 [enunciam fatos] • E.g. sentença atômica, • Brother(KingJohn,RichardTheLionheart), • > (Length(LeftLegOf(Richard)), Length(LeftLegOf(KingJohn)))
Sentenças Complexas • Sentenças complexas são construídas de sentenças atômicas usando conectivos: S, S1 S2, S1 S2, S1 S2, S1S2, E.g. Sibling(KingJohn,Richard) Sibling(Richard,KingJohn) >(1,2) <(1,2) >(1,2) >(1,2)
Semântica em lógica de primeira ordem • A semântica deve relacionar sentenças a modelos a fim de determinar verdade. • Para isso precisamos de uma interpretação que especifique quais objetos, relações e funções são referidos pelos símbolos de constantes, relações e funções. • Interpretação é, portanto, um mapeamento entre símbolos de constantes-->objetos símbolos de predicados --> relações símbolos de funções--> funções • Uma sentença atômica predicate(term1,...,termn) é verdadeira sse os objetos relativos à term1,...,termnestão contidos na relação relativa à predicate
Interpretação • Interpretação: especifica exatamente quais objetos, relações e funções são referidos pelos símbolos de constantes, predicados e funções;
Interpretação • Interpretação pretendida para o exemplo: • Ricardo: Ricado coração de leão; Joao: rei João • Irmão: conjunto de tuplas: • <Ricardo cor de leao, Rei João>, <Rei João, Ricardo Cor de leao> • NaCabeça: relação Na cabeça, que é válida para coroa e rei Joao; • Pessoa, Rei, Coroa: conjuntos de objetos • Perna esquerda: função “perna esquerda”, I.e.: • <Ricardo cor de leao> -> perna esquerda de Ricardo • <Rei Joao> -> perna esquerda de Joao
Há várias outras interpretações possíveis • E.g. Ricardo -> Coroa, Joao -> perna do rei joao • 5 objetos no modelos, portanto há 25 interpretações possíveis apenas para os símbolos Ricardo e Joao • Confuso? • Em logica proposicional é possível uma interpretação tal que ensolarado e nublado sejam verdade • Cabe a base de conhecimento eliminar modelos inconsistentes com nosso conhecimento
Semântica em lógica de primeira ordem • A verdade de qualquer sentença é determinada por um modelo e uma interpretação para os símbolos das sentenças. Então, consequência lógica, validade, etc são definidas em termos de todos os modelos possíveis e todas as interpretações possíveis. • O n. de elementos pode ser ilimitado • N. de modelos ilimitado • Verificação lógica pela enumeração de modelos não é uma opção.
Sintaxe:Quantificação Universal () • <variáveis> <sentenças> “Todos os reis são pessoas”: x Rei(x) Pessoa(x) • x P é verdade em um modelo m sse P é verdadeira em todas as interpretações estendidas. • Cada interpretação estendida especifica um elemento de domínio ao qual x se refere
Semântica:Quantificação Universal () • i.e. a quantificação é equivalente à conjunção de instanciações de P Rei(KingJohn) Pessoa(KingJohn) Rei(Richard) Pessoa(Richard) Rei(Perna_esq._de_richard) Pessoa(Perna_esq._de_richard) Rei(Coroa) Pessoa(Coroa) ... { São verdadeiras no modelo mas não trazem nenhuma informação, pois nenhuma das premissas são verdadeiras!
Equívoco comum • Tipicamente, é o principal conectivo para ser usado com • Equívoco comum: usar como o principal conectivo com : x Rei(x) Pessoa(x) i.e. “Todos são reis e todos são pessoas”
Sintaxe:Quantificação existencial • <variáveis> <sentenças> • declaração sobre algum objeto sem nomeá-lo • “Existe uma coroa na cabeça do rei John”: • x Coroa(x) NaCabeça(x, John)
Semântica:Quantificação existencial • xP é verdade em um modelo m sse P é verdade sendo x algum objeto possível no modelo; • Informalmente, é equivalente à disjunção de instanciações de P Coroa(John) NaCabeça(John, John) Coroa(Richard) NaCabeça(Richar, John) Coroa(Crown) NaCabeça(Crown, John) ...
Outro equívoco comum... • Tipicamente, é o principal conectivo para • Equívoco: usar como o principal conectivo com : x Coroa(x) NaCabeça(x, João) é verdadeira se x não for coroa (como x diz que existe pelo menos um, a sentença ser verdadeira para um outro objeto que não seja coroa torna esta sentença completamente irrelevante!)
Propriedades dos quantificadores • x y é o mesmo que yx • x y é o mesmo que yx • x ynão é o mesmo que yx • x y Loves(x,y) • “há uma pessoa que ama todas as outras no mundo” • yx Loves(x,y) • “todo mundo é amado por alguem” • Dualidade de quantificadores: são complementares: • x Likes(x,IceCream) x Likes(x,IceCream) • x Likes(x,Broccoli) xLikes(x,Broccoli)
Igualdade • term1 = term2é verdade em uma interpretação se e somente se term1e term2referem ao mesmo objeto. • E.g., definição de Irmão em termos de Genitor: x,yIrmão(x,y) [(x = y) m,f (m = f) Genitor(m,x) Genitor(f,x) Genitor(m,y) Genitor(f,y)]
Usando FOL Domínio de parentesco: • mãe é um ancestral feminino de alguém m,c Mãe(c) = m (Feminino(m) Ancestral(m,c)) • Esta regra não restringe os modelos corretamente, por que? (este é um erro comum em engenharia de conhecimento) • “irmão” é simétrico x,y irmão(x,y) irmão(y,x) • “um avô é genitor de alguém que é pai” x,y Avô(x,y) p Pai(p,x) Genitor(p,y) • Onde está o erro?
Usando FOL Domínio de parentesco: x,y Avô(x,y) p Pai(p,x) Genitor(p,y) Outro erro comum: a ordem do argumento é inconsistente com o conceito a ser definido.
Axiomas e teoremas • Cada sentença anterior é um axioma do domínio de parentesco; • utiliza-se um conjunto básico de predicados segundo os quais outros podem ser definidos a partir de axiomas. • Um conjunto de axiomas é uma teoria lógica • Fórmulas que são consequência lógica de um conjunto de axiomas são teoremasdesta teoria;
Usando FOL Teoria de conjuntos: • s Set(s) (s = {} ) (x,s2 Set(s2) s = {x|s2}) • x,s {x|s} = {} • x,s x s s = {x|s} • x,s x s [ y,s2} (s = {y|s2} (x = y x s2))] • s1,s2 s1 s2 (x x s1 x s2) • s1,s2 (s1 = s2) (s1 s2 s2 s1) • x,s1,s2 x (s1 s2) (x s1 x s2) • x,s1,s2 x (s1 s2) (x s1 x s2)
FOL para Base de Conhecimento • Suponha que um agente no mundo de wumpus, usando uma BC em FOL, detecta um fedor e uma brisa (mas não brilho) em t=5: Tell(BC,Percept([Smell,Breeze,None],5)) Ask(BC,a BestAction(a,5)) • I.e., A BC deduz a melhor ação em t=5? • Resposta: Yes, {a/Shoot} substituição (lista de atribuição) • Dada uma sentença S e uma substituição , • S denota o resultado da substituição de em S; e.g., S = Smarter(x,y) = {x/Hillary,y/Bill} S = Smarter(Hillary,Bill) • Ask(BC,S) retorna algum/todo tal que KB |=
Engenharia de conhecimento em FOL • Identificar uma tarefa; • Agregar conhecimento relevante; • Definir um vocabulário de predicados, funções, e constantes (ontologia); • Codificar o conhecimento geral sobre o domínio; • Codificar uma descrição da instância específica do problema; • Formular consultas ao procedimento de inferência e obter respostas; • Depurar a base de conhecimento.
Exemplo: domínio de circuitos eletrônicos Somador completo de um bit.
Domínio de circuitos eletrônicos • Identificar a tarefa • O circuito adiciona de maneira correta? (verificação do circuito) • Agregar conhecimento relevante; • Composto de cabos e portas; Tipos de portas (AND, OR, XOR, NOT) • Irrelevante: tamanho, forma, cor, ... • Decidir um vocabulário • Alternativas: Type(X1) = XOR Type(X1, XOR) XOR(X1)
Domínio de circuitos eletrônicos • Codificar o conhecimento geral sobre o domínio • t1,t2 Connected(t1, t2) Signal(t1) = Signal(t2) • t Signal(t) = 1 Signal(t) = 0 • 1 ≠ 0 • t1,t2 Connected(t1, t2) Connected(t2, t1) • g Type(g) = OR Signal(Out(1,g)) = 1 n Signal(In(n,g)) = 1 • g Type(g) = AND Signal(Out(1,g)) = 0 n Signal(In(n,g)) = 0 • g Type(g) = XOR Signal(Out(1,g)) = 1 Signal(In(1,g)) ≠ Signal(In(2,g)) • g Type(g) = NOT Signal(Out(1,g)) ≠ Signal(In(1,g))
Domínio de circuitos eletrônicos • Codificar uma descrição da instância específica do problema Type(X1) = XOR Type(X2) = XOR Type(A1) = AND Type(A2) = AND Type(O1) = OR Connected(Out(1,X1),In(1,X2)) Connected(In(1,C1),In(1,X1)) Connected(Out(1,X1),In(2,A2)) Connected(In(1,C1),In(1,A1)) Connected(Out(1,A2),In(1,O1)) Connected(In(2,C1),In(2,X1)) Connected(Out(1,A1),In(2,O1)) Connected(In(2,C1),In(2,A1)) Connected(Out(1,X2),Out(1,C1)) Connected(In(3,C1),In(2,X2)) Connected(Out(1,O1),Out(2,C1)) Connected(In(3,C1),In(1,A2))
Domínio de circuitos eletrônicos • Formular consultas ao procedimento de inferência e obter respostas; • Que combinações de entradas fariam a primeira saida de C1 (o bit de soma) ser 0 e a sengunda saida de C1 (o bit e transporte) ser 1? i1,i2,i3,o1,o2 Signal(In(1,C1)) = i1 Signal(In(2,C1)) = i2 Signal(In(3,C1)) = i3 Signal(Out(1,C1)) = 0 Signal(Out(2,C1)) = 1 Resposta: conjunto de substituições para i1, i2 e i3 (ex. {i1/1, i2/1, i3/0})
Depurar a base de conhecimento Pode ter havido algumas omissões como 1 0 Testar perguntas com respostas já conhecidas.