Lógica de primeira ordem First Order Logic (FOL)
Prós e Contras da Lógica Proposicional É declarativa: partes da sintaxe correspondem a fatos Permite informação disjuntiva e/ou negada (a diferença da maioria das estruturas de dados e base de dados) É composicional: Isto é, o significado de (B 1,1 P 1,2 ) é derivado do significado de B 1,1 e de P 1,2
Prós e Contras da Lógica Proposicional 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) Exemplo: "poços causam brisas em quadrados adjacentes Em Lógica Proposicional: B1,1 <-> (P1,2 V P2,1) B1,2 <-> (P1,1 V P1,3 V P2,2) etc... Isto é, uma sentença para cada quadrado
Lógica de Primeira Ordem (FOL) A Lógica proposicional (LP) identifica os mundos como se forem compostos somente por fatos. A Lógica de primeira ordem, mais próxima da linguagem natural, identifica os mundos composto por: Objetos: pessoas; casas; números; cores; jogos; guerras; Relações: podem ser unárias ou propriedades, tais como, primo; vermelho; falso;...ou relações n-árias tais como, mais alto que; parte de; fica entre; Funções: pai de; melhor amigo de; uma unidade maior; fim de,
Lógica de Primeira Ordem (FOL) Exemplo de afirmação e identificação de objetos e propriedades ou relações: Um mais dois é igual a três. Objetos: um, dois, três, um mais dois. Relação: é igual a. Função: mais. Observação: Um mais dois é um nome para o objeto obtido pela aplicação da função mais aos objetos um e dois. Três é outro nome para esse objeto.
Lógica de Primeira Ordem (FOL) A FOL se diferencia da Lógica proposicional no compromisso ontológico, isto é, o que é pressuposto sobre a natureza do mundo em questão. A LP pressupõe que: Há fatos que são válidos (V) ou não válidos (F) no mundo. Cada fato deve se encontrar em um desses estados, Cada modelo determina V ou F para cada símbolo de proposição.
Lógica de Primeira Ordem (FOL) A FOL pressupõe mais do que isso: O mundo consiste em objetos com certas relações entre eles que são ou não válidas. Os modelos formais são correspondentemente mais complicados que os da lógica proposicional. Há Lógicas com propósitos especiais e criam ainda outros compromissos ontológicos, dentre elas tem-se: Lógica temporal, Teoria da probabilidade e Lógica fuzzy.
Lógicas em geral Linguagem Ontologia (O que existe no mundo) Crença de um agente sobre os fatos Lógica proposicional Fatos V / F / desconhecido Lógica de Primeira Ordem - FOL Lógica temporal Fatos, objetos, relações Fatos, objetos, relações, tempo V / F / desconhecido V / F / desconhecido Teoria da probabilidade Fatos Graus de crença [0,1] Lógica Fuzzy Fatos com graus de verdade entre [0,1] Valor conhecido
Modelos para FOL Modelos de uma linguagem lógica são as estruturas formais que constituem os mundos possíveis sob consideração. Modelos da LP ligam símbolos de proposição com valores verdade predefinidos. Modelos da FOL contém objetos. O domínio de um modelo é o conjunto de objetos ou elementos do domínio que ele contém. Não importa o que são esses objetos, o que importa é quantos objetos há em cada modelo.
Modelos para FOL: Exemplo
Modelos para FOL: Exemplo Objetos(5): Ricardo; João; Perna Esquerda de Ricardo; Perna Esquerda de João; Coroa. Relações*: Binária, por exemplo Irmão seria o conjunto: {(Ricardo, João), (João, Ricardo)} Unária, por exemplo Pessoa seria o conjunto: {(Ricardo), (João)} * Predicados
Modelos para FOL: Exemplo Relação como Função - Determinado objeto deve estar relacionado a exatamente um objeto. Cada pessoa tem uma perna esquerda, assim a função unária perna esquerda tem os seguintes mapeamentos: (Ricardo) Perna Esquerda de Ricardo (João) Perna Esquerda de João
Sintaxe da FOL
Sintaxe da FOL Sentenças Atômicas: Estudante(Luiz) Irmão(João, Ricardo), > (Comprimento(PernaEsquerdade(Ricardo)), Comprimento (PernaEsquerdade(João)))
Sintaxe da FOL Sentenças Complexas incluem operadores lógicos, quantificadores e variáveis: Estudante(Luiz) Maisvelho(Luiz, Leo) x (Rei(x) Pessoa(x)) Irmãos(João,Ricardo) Irmãos(Ricardo,João) >(1,2) <(1,2) >(1,2) >(1,2)
Sintaxe da FOL Termo é uma expressão lógica que se refere a um objeto que podem ser expressos como: Constante, símbolos de constante são termos: Ricardo, João, Perna Esquerda do João (ao invés de dar um nome à perna)
Sintaxe da FOL Função(termo 1,...,termo n ), os argumentos de uma função são termos, por exemplo, uma constante pode ser substituída por uma função: PernaEsquerdade(João) Variáveis também são termos: x, y, a,...
Semântica em FOL Na LP, cada modelo deve fornecer a informação necessária para determinar se uma sentença dada é verdadeira ou falsa, Na FOL, cada modelo inclui uma interpretação que especifique exatamente quais objetos, relações e funções são referidos pelos símbolos de constantes, predicados e funções.
Semântica em FOL Uma interpretação possível para o exemplo (interpretação pretendida): Ricardo se refere a Ricado Coração de Leão Joao se refere a rei João Irmão se refere à relação de parentesco expressa pelo conjunto de tuplas: <Ricardo, João>, <João, Ricardo> NaCabeça se refere à relação: (coroa, rei Joao) Pessoa, Rei e Coroa se referem aos objetos: Pessoa, rei e coroa PernaEsquerdade se refere à função perna esquerda : <Ricardo> -> perna esquerda de Ricardo <Joao> -> perna esquerda de Joao
Semântica em FOL Há 5 objetos no modelo exemplo, portanto há 25 interpretações possíveis apenas para os símbolos de constantes Ricardo e João; Existe uma interpretação sob a qual tanto Ricardo quanto João referem à Coroa, isto não é verdade, mas; Na LP também é possível uma interpretação tal que ensolarado e nublado sejam verdade ao mesmo tempo, o que não seria verdade, assim; Cabe a base de conhecimento eliminar modelos inconsistentes com nosso conhecimento.
Semântica em FOL Um modelo na FOL consiste em: Um conjunto de objetos e Uma interpretação que mapeia: de símbolos de constantes a objetos, de símbolos de predicados às relações sobre esses objetos, de símbolos de função às funções desses objetos. Na FOL a consequência lógica e a validade são definidas em termos de todos os modelos possíveis. Mas, o número de modelos possíveis pode ser ilimitado, assim, verificar consequência lógica pela enumeração de modelos não é uma opção.
Quantificação Universal ( ) <variáveis> <sentenças> Todos os reis são pessoas : x Rei(x) Pessoa(x) A sentença x P, afirma que P é verdadeira para todo objeto x. x P é verdadeira em dado modelo se P é verdadeira em todas as interpretações estendidas possíveis construídas a partir da interpretação dada ao modelo, em que cada interpretação estendida especifica um elemento de domínio ao qual x se refere.
Quantificação Universal ( ) No modelo exemplo pode-se estender a interpretação de cinco maneiras: Rei(João) Pessoa(João) Rei(Ricardo) Pessoa(Ricardo) Rei(Perna Esquerda de Ricardo) Pessoa(Perna Esquerda de Ricardo) Rei(Perna Esquerda de João) Pessoa(Perna Esquerda de João) Rei(Coroa) Pessoa(Coroa). Afirma-se a conclusão da regra apenas para os objetos para os quais a premissa é verdadeira, e não dizendo absolutamente nada sobre os indivíduos para os quais a premissa é falsa. Assim, a definição de da tabela-verdade se mostra perfeita para a escrita de regras gerais com quantificadores universais.
Equívoco comum Tipicamente, é o principal conectivo para ser usado com Equívoco comum: usar como o principal conectivo com : Seria equivalente a afirmar: x Rei(x) Pessoa(x) Ricardo Coração de Leão é um rei Ricardo Coração de Leão é uma pessoa Rei João é um rei Rei João é uma pessoa A perna esquerda de Ricardo é um rei A perna esquerda de Ricardo é uma pessoa,... É óbvio que isso não capta o que queremos.
Quantificação existencial ( ) <variáveis> <sentenças> declaração sobre algum objeto sem nomeá-lo Existe uma coroa na cabeça do rei João : x Coroa(x) NaCabeça(x, João) A sentença x P afirma que P é verdadeira para pelo menos um objeto x. x P é verdadeira em dado modelo sob dada interpretação se P é verdadeira em pelo menos uma interpretação estendida que atribua x a um elemento de domínio.
Quantificação existencial ( ) No modelo exemplo pelo menos uma das afirmações a seguir deve ser verdadeira : Coroa(João) NaCabeça(João,João) Coroa(Ricardo) NaCabeça(Ricardo,João) Coroa(Coroa) NaCabeça(Coroa,João) Coroa(Perna Esquerda de Ricardo) NaCabeça(Perna Esquerda de Ricardo, João)... A terceira afirmação é verdadeira no modelo e, assim, a sentença existencialmente quantificada original é verdadeira no modelo. Da mesma maneira que parece ser o conectivo natural a usar com, é o conectivo natural a usar com.
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) Seria equivalente a afirmar: Ricardo Coração de Leão é uma coroa Ricardo Coração de Leão está na cabeça de João; Rei João é uma coroa Rei João está na cabeça de João; e assim por diante. A implicação é verdadeira com premissa falsa, e, a sentença tendo premissa falsa será verdadeira para qualquer objeto que não seja coroa tornando a sentença completamente irrelevante.
Propriedades dos quantificadores x y é o mesmo que y x x y é o mesmo que y x x y não é o mesmo que y x x y Ama(x,y) há uma pessoa que ama todas as outras no mundo y x Ama(x,y) todo mundo é amado por alguem Dualidade de quantificadores: cada um pode ser representado usando o outro: x Gosta(x, Sorvete) x Gosta(x,Sorvete) x Gosta(x,Brócoli) x Gosta(x,Brócoli)
Expressões em FOL
Igualdade term 1 = term 2 é verdade em uma interpretação se e somente se term 1 e term 2 referem ao mesmo objeto. E.g., definição de Irmão em termos de Genitor: x,y Irmão(x,y) [ (x = y) m,f (m = f) Genitor(m,x) Genitor(f,x) Genitor(m,y) Genitor(f,y)]
Asserções e consultas em FOL As sentenças são adicionadas a uma base de conhecimento usando-se TELL, exatamente como na lógica proposicional. Tais sentenças são chamadas asserções. Por exemplo, podemos afirmar que João é um rei, Ricardo é uma pessoa e que reis são pessoas: TELL(BC, Rei(João)). TELL(BC, Pessoa(Ricardo)). TELL(BC, x Rei(x) Pessoa(x)).
Asserções e consultas em FOL Podemos formular perguntas sobre a base de conhecimento utilizando ASK. Por exemplo, ASK(BC, Rei(João)) Retorna verdadeiro. Perguntas formuladas com o uso de ASK são chamadas consultas ou metas
Asserções e consultas em FOL Em consultas quantificadas, como: ASK(BC, x Pessoa(x)). A resposta é verdadeira, mas, para saber que valor de x torna a sentença verdadeira, precisamos de uma função diferente, ASKVARS: ASKVARS (BC, Pessoa (x)) E produz um fluxo de respostas: {x/ João} e {x/ Ricardo} Tal resposta é chamada de substituição ou lista de vinculação. ASKVARS é reservado para bases de conhecimento constituídas exclusivamente por cláusulas de Horn.
O domínio de parentesco Considerar o domínio de relacionamentos familiares ou de parentesco. O domínio inclui fatos como Elizabeth é a mãe de Charles e Charles é o pai de William, e regras como a avó de uma pessoa é a mãe do pai ou da mãe de uma pessoa. Os objetos no domínio são pessoas. Predicados unários: Masculino e Feminino.
O domínio de parentesco Relações de parentesco: paternidade, fraternidade, casamento serão representadas por predicados binários: PaiOuMãe, IrmãoOuIrmã, Irmão, Irmã, FilhaOuFilho, Filha, Filho, Cônjuge, Esposa, Marido, AvôOuAvó, NetoOuNeta, Primo, Tia e Tio.
O domínio de parentesco Usaremos funções para representar Mãe e Pai. Cada função e predicado usa termos dos outros símbolos. Por exemplo: A mãe de alguém é o pai ou mãe feminino deste alguém: m, c Mãe(c) = m Feminino(m) PaiOuMãe(m, c).
O domínio de parentesco O marido de alguém é o cônjuge masculino de alguém: w, h Marido(h, w) Masculino(h) Cônjuge(h, w). PaiOuMãe e FilhoOuFilha são relações inversas: p, c PaiOuMãe(p, c) FilhoOuFilha(c, p). Masculino e feminino são categorias disjuntas: x Masculino(x) Feminino(x). Um Avô ou avó é pai ou mãe do pai ou da mãe de alguém: g, c AvôOuAvó(g, c) p PaiOuMãe(g, p) PaiOuMãe(p, c).
Axiomas e teoremas Cada sentença anterior é um axioma do domínio de parentesco; Os axiomas fornecem as informações factuais básicas a partir das quais podem ser derivadas conclusões úteis. Fórmulas que são consequência lógica de um conjunto de axiomas são teoremas desta teoria;
Usando FOL Teoria de conjuntos: s Set(s) (s = {} ) ( x,s 2 Set(s 2 ) s = {x s 2 }) x,s {x s} = {} x,s x s s = {x s} x,s x s [ y,s 2 } (s = {y s 2 } (x = y x s 2 ))] s 1,s 2 s 1 s 2 ( x x s 1 x s 2 ) s 1,s 2 (s 1 = s 2 ) (s 1 s 2 s 2 s 1 ) x,s 1,s 2 x (s 1 s 2 ) (x s 1 x s 2 ) x,s 1,s 2 x (s 1 s 2 ) (x s 1 x s 2 )
O mundo de Wumpus Suponha uma sentença de percepções para o agente no mundo de wumpus, usando uma BC em FOL em t=5 (inteiros como instantes temporais) : Percepção([Fedor, Brisa, Brilho, Nenhum, Nenhum], 5). As ações no mundo de wumpus: Virar(Direita), Virar(Esquerda), Avançar, Atirar, Agarrar, Soltar, Escalar. Para determinar o que é melhor, o programa do agente constrói uma consulta como: ASKVARS ( a MelhorAção(a, 5)), Que retorna uma lista de vinculação como {a/agarrar}. O programa do agente pode então retornar Agarrar como a ação a executar.
O mundo de Wumpus Os dados brutos da percepção implicam fatos sobre o estado atual. Por exemplo: t, s, g, m, c Percepção([s, Brisa, g, m, c], t) Brisa (t), t, s, b, m, c Percepção([s, b, Brilho, m, c], t) Brilho(t), Essas regras exibem uma forma trivial do processo de raciocínio chamado percepção. Note a quantificação sobre o tempo t, em LP, precisaríamos de cópias de cada sentença para cada instante de tempo. O comportamento reativo simples também pode ser implementado por sentenças de implicação quantificadas. Por exemplo: t Brilho(t) MelhorAção(Agarrar, t).
FOL para Base de Conhecimento Em geral: Dada uma sentença S e uma substituição, S representa o resultado da substituição de em S. Por exemplo: S = Smarter(x,y) = {x/hillary,y/bill} S = Smarter(Hillary,Bill) Ask(BC,S) retorna algum/todo tal que BC =
Engenharia de conhecimento em FOL 1. Identificar uma tarefa; 2. Agregar conhecimento relevante; 3. Definir um vocabulário de predicados, funções, e constantes (ontologia); 4. Codificar o conhecimento geral sobre o domínio; 5. Codificar uma descrição da instância específica do problema; 6. Formular consultas ao procedimento de inferência e obter respostas; 7. Depurar a base de conhecimento.