Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Inteligência Artificial I Representação do Conhecimento (Parte II) Prof.a Joseana Macêdo Fechine [email protected] Carga Horária: 60 horas DSC/CCT/UFC Representação do Conhecimento Tópico Lógica de Predicados 2 DSC/CCT/UFCG Representação do Conhecimento A Inteligência Artificial (IA) deve ter mecanismos para a representação de fatos. Representação do conhecimento do mundo que um sistema de IA necessita - uso da lógica proposicional. Representa-se os fatos do mundo real por meio das fórmulas bem formadas ("fbf's") ou proposições lógicas. A prova de teoremas foi um dos primeiros domínios a explorar as técnicas de IA. 3 DSC/CCT/UFCG Representação do Conhecimento É importante lembrar que: Lógica proposicional - O termo proposição recobre a idéia de asserção formulada seguindo uma certa sintaxe e susceptível de ser avaliado "verdadeiro" ou "falso" por um universo dado. Lógica de predicados de primeira ordem - pode ser vista como uma extensão da lógica das proposições. Munida de propriedades de base da lógica das proposições, permite introduzir elementos gerais chamados "variáveis“ (normalmente chamadas u, v, …, z), que podem ser quantificadas pelo quantificador universal ∀ (qualquer que seja) ou pelo quantificador existencial ∃ (existe). 4 DSC/CCT/UFCG Representação do Conhecimento É importante lembrar que: A noção de primeira ordem é associada ao fato das variáveis poderem ser quantificadas, mas não os predicados nem as funções. 5 DSC/CCT/UFCG Representação do Conhecimento Simbologia a ser utilizada: “” (implicação) “ ” (negação) “ ” (disjunção) “ ” (conjunção) “ ” (quantificação universal = "para todos") “ ” (quantificação existencial = "existe"). 6 DSC/CCT/UFCG Representação do Conhecimento Objetivo: Explorar o uso da lógica de predicados como uma forma para representar o conhecimento. Considere o seguinte conjunto de sentenças: 1. Marco era um homem. 2. Marco era um pompeiano. 3. Todos os pompeianos eram romanos. 4. César era um soberano. 5. Todos os romanos ou eram leais a César ou o odiavam. 6. Todos são leais a alguém. 7. As pessoas somente tentam assassinar soberanos aos quais elas não são leais. 8. Marco tentou assassinar César. 7 DSC/CCT/UFCG Representação do Conhecimento Representação dos fatos descritos por estas sentenças a partir de um conjunto de fbf's na lógica de predicados: 1. Marco era um homem. homem(Marco) 2. Marco era um pompeiano. pompeiano(Marco) 3. Todos os pompeianos eram romanos. X: pompeia no(X) romano(X) 4. César era um soberano. soberano(Cesar) DSC/CCT/UFCG 8 Representação do Conhecimento 5. Todos os romanos ou eram leais a César ou o odiavam. X: romano( X) leal(X,Cesar) odiar(X,Cesar) 6. Todos são leais a alguém. X:Y: leal(X,Y) 7. As pessoas somente tentam assassinar soberanos aos quais elas não são leais. X:Y: pessoa(X) tentarassassinar(X,Y) leal(X,Y) 8. Marco tentou assassinar César. tentarassassinar(Marco,Cesar) 9 DSC/CCT/UFCG Representação do Conhecimento Deste exemplo simples, é possível perceber três pontos importantes na conversão de sentenças do português em fórmulas da lógica: Muitas sentenças do português são ambíguas (por exemplo, 5, 6 e 7). A escolha da interpretação correta pode ser difícil. Existe freqüentemente uma escolha de como representar o conhecimento. Representações simples são desejáveis mas elas podem impedir certos tipos de raciocínio. Mesmo em situações muito simples, um conjunto de sentenças não parece conter toda a informação necessária para raciocinar sobre o tópico em questão. Para ser capaz de usar um conjunto de fórmulas efetivamente, é muitas vezes necessário ter acesso a um outro conjunto de fórmulas que representam fatos considerados óbvios demais para mencionar (senso comum). 10 DSC/CCT/UFCG Representação do Conhecimento Como responder à questão: “Marco era leal a César?” 11 DSC/CCT/UFCG Representação do Conhecimento Parece que usando 7 e 8, dá para concluir que Marco não era leal a César (ignorando a distinção entre passado e presente). Há a necessidade de inclusão de conhecimento de senso comum: 9. Todos os homens são pessoas. X (homem(X) pessoa(X)) 12 DSC/CCT/UFCG Engenharia de Conhecimento em Lógica de Primeira Ordem O processo de engenharia de conhecimento 1. 2. 3. 4. 5. 6. 7. Identificar a tarefa Agregar o conhecimento relevante Definir um vocabulário de predicados, funções e constantes 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 13 DSC/CCT/UFCG Engenharia de Conhecimento em Lógica de Primeira Ordem Exemplo: O domínio dos circuitos eletrônicos DSC/CCT/UFCG Adaptado do livro Artificial Intelligence: A Modern Approach by Stuart Russell and Peter Norvig, 2003. 14 Engenharia de Conhecimento em Lógica de Primeira Ordem O domínio dos circuitos eletrônicos 1. Identificar a tarefa O circuito realmente efetua soma de modo apropriado? Se todas as entradas estão em nível alto, qual será a saída da porta A2? O circuito contém laços de realimentação? 2. Agregar conhecimento relevante Os sinais fluem pelos fios até os terminais de entrada das portas, e cada porta produz um sinal no terminal de saída que flui por outro fio. Como funcionam as portas AND, OR, XOR ... 15 DSC/CCT/UFCG Engenharia de Conhecimento em Lógica de Primeira Ordem O domínio dos circuitos eletrônicos 3. Definir um vocabulário Portas: X1, X2, ... Tipo(X1) = XOR, ... Entrada(1, X1) Conectados(Saída(1, X1), Entrada(1, X2)), ... 16 DSC/CCT/UFCG Engenharia de Conhecimento em Lógica de Primeira Ordem O domínio dos circuitos eletrônicos 4. Codificar o conhecimento geral do domínio Se dois terminais estão conectados, eles têm o mesmo sinal: t1 , t2 Conectados(t1 , t2 ) Sinal(t1 ) Sinal(t2 ) O sinal em todo terminal é 1 ou 0 (mas não ambos): t Sinal(t ) 1 Sinal(t ) 0 1 0 Conectados é um predicado comutativo: t1 , t2 Conectados(t1 , t2 ) Conectados(t2 , t1 ) 17 DSC/CCT/UFCG Engenharia de Conhecimento em Lógica de Primeira Ordem O domínio dos circuitos eletrônicos 4. Codificar o conhecimento geral do domínio A saída de uma porta OR é 1 se e somente se qualquer de suas entradas é 1: g Tipo( g ) OR Sinal( Saída(1, g )) 1 n Sinal( Entrada(n, g )) 1 A saída de uma porta AND é 0 se e somente se qualquer de suas entradas é 0: g Tipo( g ) AND Sinal(Saída(1, g )) 0 n Sinal( Entrada(n, g )) 0 18 DSC/CCT/UFCG Engenharia de Conhecimento em Lógica de Primeira Ordem O domínio dos circuitos eletrônicos 4. Codificar o conhecimento geral do domínio A saída de uma porta XOR é 1 se e somente se suas entradas são diferentes: g Tipo( g ) XOR Sinal( Saída(1, g )) 1 Sinal( Entrada(1, g )) Sinal( Entrada(2, g )) A saída de uma porta NOT é diferente de sua entrada: g ( Tipo( g ) NOT ) Sinal(Saída(1, g )) Sinal( Entrada(1, g )) 19 DSC/CCT/UFCG Engenharia de Conhecimento em Lógica de Primeira Ordem O domínio dos circuitos eletrônicos 5. Codificar a instância específica do problema Categoria das portas: Tipo( X 1 ) XOR Tipo( X 2 ) XOR Tipo( A1 ) AND Tipo( A2 ) AND Tipo(O1 ) OR 20 DSC/CCT/UFCG Engenharia de Conhecimento em Lógica de Primeira Ordem O domínio dos circuitos eletrônicos 5. Codificar a instância específica do problema Conexões entre as portas: Conectados( Saída(1, X 1 ), Entrada(1, X 2 )) Conectados( Entrada(1, C1 ), Entrada(1, X 1 )) Conectados( Saída(1, X 1 ), Entrada(2, A2 )) Conectados( Entrada(1, C1 ), Entrada(1, A1 )) Conectados( Saída(1, A2 ), Entrada(1, O1 )) Conectados( Entrada(2, C1 ), Entrada(2, X 1 )) Conectados( Saída(1, A1 ), Entrada(2, O1 )) Conectados( Entrada(2, C1 ), Entrada(2, A1 )) Conectados( Saída(1, X 2 ), Saida(1, C1 )) Conectados( Entrada(3, C1 ), Entrada(2, X 2 )) Conectados( Saída(1, O1 ), Saida(2, C1 )) Conectados( Entrada(3, C1 ), Entrada(1, A2 )) 21 DSC/CCT/UFCG Engenharia de Conhecimento em Lógica de Primeira Ordem O domínio dos circuitos eletrônicos 6. Formular consultas ao procedimento de inferência Que combinações de entradas fariam a primeira saída de C1 (o bit de soma) ser 0 e a segunda saída de C1 (o bit de transporte) ser 1? i1 , i2 , i3 Sinal( Entrada(1, C1 )) i1 Sinal( Entrada(2, C1 )) i2 Sinal( Entrada(3, C1 )) i3 Sinal(Saída(1, C1 )) 0 Sinal(Saída(2, C1 )) 1 22 DSC/CCT/UFCG Engenharia de Conhecimento em Lógica de Primeira Ordem O domínio dos circuitos eletrônicos 6. Formular consultas ao procedimento de inferência As respostas são substituições para as variáveis i1, i2, i3, tais que a sentença resultante é conseqüência lógica da base de conhecimento. Existem três substituições desse tipo: i1 / 1, i2 / 1, i3 / 0 i1 / 1, i2 / 0, i3 / 1 i1 / 0, i2 / 1, i3 / 1 23 DSC/CCT/UFCG Engenharia de Conhecimento em Lógica de Primeira Ordem O domínio dos circuitos eletrônicos 6. Formular consultas ao procedimento de inferência Quais são os conjuntos de valores possíveis de todos os terminais para o circuito somador? i1 , i2 , i3 , o1 , o 2 Sinal( Entrada(1, C1 )) i1 Sinal( Entrada(2, C1 )) i2 Sinal( Entrada(3, C1 )) i3 Sinal(Saída(1, C1 )) o1 Sinal(Saída(2, C1 )) o2 24 DSC/CCT/UFCG Engenharia de Conhecimento em Lógica de Primeira Ordem O domínio dos circuitos eletrônicos 7. Depurar a base de conhecimento Podemos perturbar a base de conhecimento de várias maneiras, a fim de verificar que tipos de comportamentos errôneos emergem. Por exemplo, suponha que omitimos a asserção de que 1 O sistema será incapaz de provar diversas saídas para o circuito. 0 25 DSC/CCT/UFCG Engenharia de Conhecimento em Lógica de Primeira Ordem O desenvolvimento de uma base de conhecimento em lógica de primeira ordem exige um processo cuidadoso de análise do domínio, escolha de um vocabulário e codificação dos axiomas necessários para dar suporte às inferências desejadas. 26 DSC/CCT/UFCG