Lógica e prova de resolução Marco Henrique Terra Introdução à Inteligência Artificial
Introdução n Este capítulo trata de lógica. l Inicialmente discute-se se a notação empregada em lógica. l Depois mostra-se se como pode-se criar novas expressões a partir de expressões jáj existentes usando regras de inferência: modus ponens, modus tolens,, resolução. n A segunda parte do capítulo trata da noção de prova: prova por refutação e resolução em prova de teorema. n Este capítulo trata de lógica l de predicados de primeira ordem, onde objetos são representados apenas por variáveis veis e variáveis veis não podem representar predicados.
Regras de inferência n Nesta seção estuda-se se como conhecimento expresso em regras antecedente-consequente consequente é construído na linguagem de lógica. l n Notação em lógical A unidade básica b para linguagem de lógica l é o predicado: são funções que mapeam argumentos de objetos em valores falsos ou verdadeiros. Exemplo: penas(squigs Squigs) voam(squigs Squigs) botam-ovos( ovos(squigs) Os predicados limitam os objetos que Squigs pode dar nome.
Conectivos lógicos n & ou : E, formam uma conjução n : ou, forma disjunção n : implica n : não n : substituição reversível vel n Sejam duas expressões E1 e E2, constrói-se se as tabelas verdade para estes dois argumentos ligados por conectivos lógicos da seguinte maneira: E1 E2 E2 V F E1 V V F F V V
n E1 E2 E2 V F E1 V V F F F F n E1 E2 E2 V F E1 V V V F V F n E E V F F V
n Note que: E1 E2 E1 E2 n As tabelas verdade mostram que: n, são comutativas: E1 E2 E2 E1 E1 E2 E2 E1 n, são distributivas: E1 (E2 E3) (E1 E2 ) (E1 E3) E1 (E2 E3) (E1 E2 ) (E1 E3) n, são associativos: E1 (E2 E3) (E1 E2 ) E3 E1 (E2 E3) (E1 E2 ) E3 n, obedecem às s leis de Morgan: (E1 E3) ( E1) ( E2 ) (E1 E3) ( E1) ( E2 ) n duas vezes se anulam: ( E1) E1
Quantificadores n Definem domínios de objetos dos predicados. Por exemplo: x[penas(x) passaro(x)] n Esta expressão pode ser verdadeira ou falsa.. Se for verdadeira então x pode assumir qualquer valor dentro dos colchetes.. A parte entre colchetes é chamada escopo do quantificador. n : quantificador universal, no qual x pode ser substituído por qualquer objeto dentro dos colchetes. n b : quantificador existencial. Quando verdadeira uma expressão com este quantificador significa que existe pelo menos um objeto que pode substituir x. Por ex: b x [pássaro(x[ ssaro(x)]
Terminologia n São termos objetos do mundo, variáveis veis em um domínio de objetos e funções, seus argumentos e seus valores. n Termos aparecem como argumentos dos predicados. n Fórmulas atômicas são predicados individuais junto com argumentos. n Literais são fórmulas f atômicas e fórmulas f atômicas negadas. n Fórmulas bem formadas (fbf)) são literais, conectadas por conectivos e rodeadas por quantificadores. n Uma sentença é uma fbf onde todas as variáveis, veis, se existirem, estão dentro do escopo dos quantificadores correspondentes.
Terminologia n Exemplos: x [ penas(x) passaro(x) ] sentença x [ penas(x) penas(y) ] não sentença No primeiro caso todas as variáveis veis estão amarradas enquanto que para o segundo caso existe uma variável vel livre. Uma fórmula f bem formada consistindo de uma disjunção de literais é uma cláusula. A palavra expressão é usada como sinônimo de fbf. n Na lógica, l os símbolos s de objetos e os predicados representam objetos e relações em um mundo imaginário, respectivamente. Se existir uma total correspondência entre objetos e símbolos s de objetos e relações e predicados, então tem-se uma interpretação. n Provas ligam axiomas e consequentes.
n Uma interpretação é dita um modelo para as expressões. Quando tais expressões são verdadeiras, são chamadas de axiomas. Se as interpretações fazem axiomas dados verdadeiros e uma outra expressão também m verdadeira também m diz-se que foi provado que a expressão é um teorema com respeito aos axiomas. n Formalmente pode-se dizer: Prova-se que uma expressão é um teorema quando o modelo para os axiomas é também m um modelo para o teorema. Diz-se que o teorema segue logicamente a partir dos axiomas. n Usa-se se regra de inferências, recursivamente, para se provar um teorema.
n Modus pones: : Regra de inferência usada para prova de teoremas. Esta regra diz que se existe um axioma da forma E1 E2, e existe um outro axioma da forma E1, então E2 segue logicamente. Se E2 é que deve ser provado então a prova está encerrada. Se não, relaciona-se E2 aos axiomas que são verdadeiros se o resto dos axiomas o são. Continua o procedimento, aumentando a lista de axiomas até se provar o teorema em questão. n Exemplo: Sejam as duas expressões abaixo: penas(squigs Squigs) x [ penas(x) pássaro(x) ] Dois axiomas verdadeiros. Mostre que as interpretações que tornam os axiomas verdadeiros também m tornam a expressão a seguir verdadeira: pássaro( ssaro(squigs) Solução:
n Especializa-se se a segunda expressão penas(squigs) pássaro( ssaro(squigs) é verdade desde que x tem Squigs como caso especial E1 = penas(squigs Squigs) E1 E2 = penas(squigs) pássaro( ssaro(squigs) E2 é verdadeiro Conclui-se que atende ao modus ponens. n Resolução ão: : Seja um axioma da forma E1 E2 e outro axioma da forma E2 E3, então E1 E3 segue logicamente. Esta última expressão é chamada de resolvente das duas expressões anteriores. O número n de disjuntivas pode ser qualquer a partir de 1, e deve haver uma disjuntiva numa expressão que seja negada na outra. Esta é a generalização de resolução.
n Para apenas três disjuntivas da forma anterior pode-se ter as seguintes possibilidades: Seja E2 V então E2 é F logo E3 é V resultando E1 E3 V Seja E2 F então E1 é V resultando E1 E3 V. n Exemplo: problema anterior - solução, especializa a expressão quantificada para Squigs penas(squigs Squigs) penas(squigs) pássaro( ssaro(squigs) Eliminando o sinal Faça a E2 = penas(squigs Squigs) ) e E3 = pássaros( p ssaros(squigs) como E2 é verdadeiro logo E1 E3 é V, logo E3 é V, provando o teorema, desde que E1 não existe. n Note que modus ponens é um caso especial de resolução.
n Resolução gera modus tolens no qual se existe um axioma da forma E1 E2 e outro axioma da forma E2 então E1 segue logicamente. n Provas por resolução n Esta seção apresenta uma estratégia de prova de teorema onde se mostra que a negação do teorema não pode ser verdadeira.. Este tipo de prova é chamado prova por refutação e tem as etapas a seguir: - Assuma que a negação do teorema é verdadeira. - Mostre que os axiomas são a negação do teorema,, force uma expressão ser verdadeira quando isto não é possível vel. - Conclua que a negação do teorema não pode ser verdadeira porque leva à contradição ão. - Conclua que o teorema é verdadeiro pois sua negativa é falsa.
n Resolução prova teoremas por refutação n Seja o exemplo anterior: - assuma a negação do teorema como verdadeiro: pássaro( ssaro(squigs) - resolvendo-se se os dois primeiros axiomas, resolução permite concluir que: pássaro( ssaro(squigs) - aparece uma contradição. Logo a expressão que gera a contradição deve ser falsa. n Quando resolução produz a cláusula vazia, NIL, então é garantido que resolução produziu expressões contraditórias, rias, provando o teorema.
n Transformação de axiomas em formas clausais n Para se usar resolução todos os axiomas precisam estar expressos em formas clausais.. Esta seção discute como transformar diferentes formas de axiomas em cláusulas. n O exemplo a seguir ilustra o processo: 1) Um tijolo está sobre algo que não é uma pirâmide; 2) Não existe nada sob ou sobre o tijolo e 3) Não existe nada que não seja um tijolo e também m seja a mesma coisa que um tijolo: x [ tijolo(x) (b y [em(x,y) pirâmide(y) ] b y [em(x,y) em(y,x)] y [ [ tijolo(y) igual(x,y)])] A seguir discute-se se os passos para transformar os axiomas em formas clausais.
n Eliminação das implicações: substitua E1 E2 por E1 E2 x [ [ tijolo(x) (b y [em(x,y) pirâmide(y) ] b y [em(x,y) em(y,x)] y [ [ ( tijolo(y)) igual(x,y)])] n Transformação de negativas em formas atômicas: (E1 E2) ( E1) ( E2) (E1 E2) ( E1) ( E2) ( E1 ) E1 x[e1(x)] bx x [ [ E1(x)] b x[e1(x)] x [ [ E1(x)], no exemplo
x [ [ tijolo(x) (b y [em(x,y) pirâmide(y) ] y [em(x,y) em(y,x)] y [tijolo(y) igual(x,y)])] n Eliminação de quantificadores existenciais Construa funções ditas de Skolem.. Os argumentos destas funções são determinados pelos quantificadores universais, havendo um argumento para cada variável vel universalmente quantificada cujo escopo contenha a função de Skolem.. No exemplo: x [ [ tijolo(x) ((em(x,suporte(x)) pirâmide(suporte(x))) y [em(x,y) em(y,x)] y [tijolo(y) igual(x,y)])]
n Renomear variáveis veis: : esta operação visa evitar confusão ao escrever todos os quantificadores universais à esquerda: x [ [ tijolo(x) ((em(x,suporte(x)) pirâmide(suporte(x))) y [em(x,y) em(y,x)] z [tijolo(z) igual(x,z)])] n Posicionamento dos quantificadores universais à esquerda: Só pode ser feito depois que cada quantificador usa um nome único de variável: vel: x y z[ tijolo(x) ( (em(x,suporte(x)) pirâmide(suporte(x)) em(x,y) em(y,x) tijolo(z) igual(x,z) )]
n Transforme disjunções em literais: E1 (E2 E3) (E1 E2 ) (E1 E3) no exemplo faz-se isto em dois passos: x y z[( tijolo(x) ( em(x,suporte(x)) pirâmide(suporte(x)) ( tijolo(x) em(x,y) em(y,x)) ( tijolo(x) tijolo(z) igual(x,z) )] x y z[( tijolo(x) em(x,suporte(x))) ( tijolo(x) pirâmide(suporte(x))) ( tijolo(x) em(x,y) em(y,x)) ( tijolo(x) tijolo(z) igual(x,z) )]
n Eliminação das conjunções ões: : Re-escreve escreve cada parte das conjunções: x [ [ tijolo(x) em(x,suporte(x))] x [ tijolo(x) pirâmide(suporte(x))] x y [ tijolo(x) em(x,y) em(y,x)] x z [ tijolo(x) tijolo(z) igual(x,z) ] n Renomeie as variávies vies: : Para que não haja dois quantificadores universais com uma mesma variável: vel: x [ [ tijolo(x) em(x,suporte(x))] w [ tijolo(w) pirâmide(suporte(w))] u y [ tijolo(u) em(u,y) em(y,u)] v z [ tijolo(v) tijolo(z) igual(v,z) ]
n Elimine os quantificadores universais: : não os elimina mas assume-se se que todas as variáveis veis neste ponto são universalmente quantificados. Resultando finalmente em: tijolo(x) em(x,suporte(x)) tijolo(w) pirâmide(suporte(w)) tijolo(u) em(u,y) em(y,u) tijolo(v) tijolo(z) igual(v,z) este resultado é uma forma clausal,, portanto pode-se aplicar resolução.
n Para transformar axiomas em formas clausais: - elimine as implicações; - transforme as negativas em fórmulas f atômicas; - elimine os quantificadores existenciais; - renomeie as variáveis, veis, se necessário; - posicione os quantificadores universais à esquerda; - transforme as disjunções em literais; - elimine as conjuções ões; - renomeie as variávies vies,, se necessário; - elimine os quantificadores universais.
n Para realizar prova por resolução - adicione à lista dos axiomas a negação do teorema; - escreva a lista dos axiomas em formas clausais; - até não existir pares de cláusulas resolvíveis: veis: - ache cláusulas resolvíveis veis e as resolva; - adicione os resultados da resolução à lista de clausulas; - ao produzir NIL, pare e reporte que o teorema é verdadeiro; - pare e reporte que o teorema é falso.