




Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Inteligência artificial e seus sub Tópicos
Tipologia: Slides
1 / 8
Esta página não é visível na pré-visualização
Não perca as partes importantes!





Prof. Dr. Silvio do Lago Pereira
Racioc´ınio automatizado ´e uma sub-´area da IA que estuda formas de simular racic´ınio l´ogico por meio de m´etodos computacionais. Um dos principais algorit- mos para racioc´ınio dedutivo automatizado, denominado Sld-resolu¸c˜ao [3], usa refuta¸c˜ao e apresenta as seguintes caracter´ısticas:
Cl´ausulas de Horn [1] s˜ao f´ormulas da forma φ ← φ 1 ,... , φn, sendo n ≥ 0, onde o literal φ ´e uma conclus˜ao e os literais φi s˜ao premissas. Se n = 0, a cl´ausula ´e denominada fato e se n > 0, a cl´ausula ´e denominada regra. Uma f´ormula da forma ← φ 1 , φ 2 ,... , φn ´e denominada consulta. A cl´ausula ← ´e denominada vazia e denota uma contradi¸c˜ao.
2.1 Inferˆencia com cl´ausulas de Horn
Inferˆencias com cl´ausulas de Horn s˜ao realizadas sempre entre uma consulta e um fato ou entre uma consulta e uma regra, sendo que o resultado da inferˆencia, denominado resolvente, ´e sempre uma consulta ou a cl´asula vazia.
A fun¸c˜ao unif ica(α, β, γ) tenta unificar a cl´ausula α com a consulta β, re- sultando na nova consulta γ (que pode ser a cl´ausula vazia). Caso a unifica¸c˜ao seja bem sucedida, essa fun¸c˜ao devolve verdade; caso contr´ario, devolve falso.
2 S. L. Pereira
2.2 O algoritmo de busca Sld-Resoluc¸˜ao
O algoritmo Sld-Resoluc¸˜ao [1,2] controla a aplica¸c˜ao da regra de inferˆencia, realizando uma busca em profundidade. Ao derivar a cl´ausula vazia, o algoritmo apresenta como solu¸c˜ao a composi¸c˜ao das substitui¸c˜oes efetuadas no caminho percorrido at´e a cl´ausula vazia e sinaliza sucesso. Ao atingir um ponto onde a consulta n˜ao pode ser unificada com nenhuma cl´ausula do programa, o algoritmo sinaliza fracasso e tenta retroceder na busca fazendo novas escolhas.
Sejam ∆ um conjunto de cl´ausulas de Horn (programa l´ogico) e β uma con- sulta. O algoritmo a seguir responde `a consulta β com base em ∆:
Sld-Resoluc¸˜ao(∆, β) 1 se β ´e a cl´ausula vazia ent~ao 2 exiba a composi¸c˜ao das substitui¸c˜oes efetuadas 3 devolva sucesso 4 para cada cl´ausula α ∈ ∆ (de cima para baixo) fa¸ca 5 se unif ica(α, β, γ) e Sld-Resoluc¸˜ao(∆, γ) =sucesso ent~ao 6 devolva sucesso 7 devolva fracasso
Para mostrar como esse algoritmo funciona, apresentamos dois exemplos.
Exemplo 1 Seja ∆ o programa l´ogico composto pelas cl´ausulas a seguir:
(1) bebe(ze, pinga) ← (2) bebe(mane, agua) ← (3) vivo(mane) ← (4) saudavel(X) ← bebe(Y, X), vivo(Y )
A cl´ausula (4) de ∆ estabelece que uma bebida ´e saudavel se algu´em que a bebe est´a vivo. Suponha que desejamos descobrir, de acordo com o conhecimento expresso em ∆, quais s˜ao as bebidas saud´aveis. Para tanto, chamamos o algo- ritmo Sld-Resoluc¸˜ao com a consulta ← saudavel(R). O algoritmo come¸ca tentando eliminar saudavel(R) da consulta. Ele procura em ∆ uma cl´ausula cuja conclus˜ao possa ser unificada com saudavel(R), encontrando a cl´ausula (4). Ent˜ao, aplicando a substitui¸c˜ao {X = R} a essa cl´ausula, o algoritmo obt´em a instˆancia saudavel(R) ← bebe(Y, R), vivo(Y ) que, combinada com a consulta ← saudavel(R), produz a resolvente ← bebe(Y, R), vivo(Y ). Em seguida, o algo- ritmo precisa eliminar bebe(Y, R) e, para isso, pode usar as cl´ausulas (1) ou (2) do programa ∆:
4 S. L. Pereira
cl´ausula (1), sob a substitui¸c˜ao {B = brasil}, obtemos ← idioma(brasil, R). Finalmente, resolvendo essa ´ultima consulta com a cl´ausula (3), sob a substi- tui¸c˜ao {R = portugues}, obtemos a cl´ausula vazia. Nesse ponto, o algoritmo apresenta a primeira resposta poss´ıvel (R = portugues) e retrocede na busca, na tentativa de encontrar uma resposta alternativa.
Para essa consulta, o algoritmo ´e bem sucedido nos dois ramos explorados na ´arvore, apresentando R = portugues e R = f rances como respostas. Veja como isso faz sentido: declaramos no programa l´ogico que uma pessoa fala um idioma se ela nasce num pa´ıs onde se fala esse idioma ou se ela estuda esse idioma. Ent˜ao, como Ana nasceu no Brasil, o algoritmo conclui que Ana fala portuguˆes. Al´em disso, como Ana estudou francˆes, o algoritmo tamb´em conclui que Ana fala francˆes. Esse processo pode ser visto na Figura 2, onde a linha tracejada indica o caminho percorrido pelo algoritmo na ´arvore de refuta¸c˜ao para a consulta ← f ala(ana, R).
sucesso
sucesso
PSfrag replacements
← f ala(ana, R) (6)/{A = ana, C = R}
← nasceu(ana, B), idioma(B, R)
(1)/{B = brasil}
← idioma(brasil, R)
(3)/{R = portugues}
←
(7)/{D = ana, E = R}
← estudou(ana, R)
(5)/{R = f rances}
←
Figura 2. Arvore de refuta¸´ c˜ao para a consulta ← f ala(ana, R)
O funcionamento de Sld-Resoluc¸˜ao para a consulta ← f ala(yves, R) ´e apresentado na Figura 3. Como Yves n˜ao estudou nenhum idioma, ´e claro que ele fala apenas francˆes, que ´e a sua l´ıngua nativa. Portanto, o algoritmo encontra apenas uma resposta para essa consulta (R = f rances).
Racioc´ınio Automatizado 5
fracasso
sucesso
PSfrag replacements
← f ala(yves, R) (6)/{A = yves, C = R}
← nasceu(yves, B), idioma(B, R)
(2)/{B = f ranca}
← idioma(f ranca, R)
(4)/{R = f rances}
←
(7)/{D = yves, E = R}
← estudou(yves, R)
Figura 3. Arvore de refuta¸´ c˜ao para a consulta ← f ala(yves, R)
Exerc´ıcio 1 Considere o programa l´ogico a seguir: (1) gosta(ary, eva) ← (2) gosta(ivo, ana) ← (3) gosta(ivo, eva) ← (4) gosta(eva, ary) ← (5) gosta(ana, ary) ← (6) namora(A, B) ← gosta(A, B), gosta(B, A) Mostre como o algoritmo Sld-Resoluc¸˜ao responde `as seguintes consultas:
Exerc´ıcio 2 Considere o programa l´ogico a seguir: (1) pai(adao, cain) ← (2) pai(adao, abel) ← (3) pai(adao, seth) ← (4) pai(seth, enos) ← (5) avo(X, Z) ← pai(X, Y ), pai(Y, Z) Mostre como o algoritmo Sld-Resoluc¸˜ao responde `as seguintes consultas:
Racioc´ınio Automatizado 7
fracasso
sucesso sucesso
PSfrag replacements
← irmao(cain, R)
(4)/{X = cain, Y = R}
← pai(Z, cain), pai(Z, R), cain 6 = R
(1)/{Z = adao}
← pai(adao, R), cain 6 = R
(1)/{R = cain}
← cain 6 = cain
(2)/{R = abel}
← cain 6 = abel
←
(3)/{R = seth}
← cain 6 = seth
←
Figura 4. Arvore de refuta¸´ c˜ao para a consulta ← irmao(cain, abel)
Exemplo 4 A ´arvore de refuta¸c˜ao para responder `a consulta ← voa(R), com base no programa a seguir, ´e apresentada na Figura 5.
(1) ave(f red) ← (2) ave(bob) ← (3) pinguim(f red) ← (4) voa(X) ← ave(X), ¬pinguim(X)
Nessa ´arvore, retˆangulos pontilhados representam sub-refuta¸c˜oes. Para mostrar que “Fred n˜ao ´e um ping¨uim”, o algoritmo tenta mostrar justamente o oposto, ou seja, que “Fred ´e um ping¨uim”. Ent˜ao, como essa sub-refuta¸c˜ao ´e bem sucedida (devido `a cl´ausula (3) do programa), a refuta¸c˜ao inicial fracassa. Por outro lado, quando tenta mostrar que “Bob n˜ao ´e um ping¨uim”, a sub-refuta¸c˜ao fracassa e, portanto, a refuta¸c˜ao inicial ´e bem sucedida.
8 S. L. Pereira
fracasso
sucesso
sucesso
fracasso
PSfrag replacements
← voa(R)
(4)/{X = R}
← ave(R), ¬pinguim(R) (1)/{R = f red}
← ¬ pinguim(f red)
← pinguim(f red)
(3)/{}
←
(2)/{R = bob}
← ¬ pinguim(bob)
← pinguim(bob)
←
Figura 5. Arvore de refuta¸´ c˜ao para a consulta ← voa(R)
Exerc´ıcio 5 Um fato interessante ´e que o predicado comput´avel 6 = pode ser implementado atrav´es de nega¸c˜ao por falha, conforme especificado a seguir: igual(X, X) ← dif erente(X, Y ) ← ¬ igual(X, Y ) Com base nessa especifica¸c˜ao, mostre como o algoritmo Sld-Resoluc¸ ˜ao re- sponde `as consultas a seguir: (a) ← dif erente(bola, bola) (b) ← dif erente(bola, bala).