Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Introdução à Programação Lógica: Algoritmo Sld-Resolução, Slides de Física

Inteligência artificial e seus sub Tópicos

Tipologia: Slides

2023

Compartilhado em 04/03/2023

leticiia-oliveira
leticiia-oliveira 🇧🇷

1 documento

1 / 8

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Racioc´ınio Automatizado
Prof. Dr. Silvio do Lago Pereira
1 Introdu¸ao
Racioc´ınio automatizado ´e uma sub-´area da IA que estuda formas de simular
racic´ınio ogico por meio de etodos computacionais. Um dos principais algorit-
mos para racioc´ınio dedutivo automatizado, denominado Sld-resolu¸ao [3], usa
refuta¸ao e apresenta as seguintes caracter´ısticas:
restringe-se `a uma classe de ormulas denominada cl´ausulas de Horn;
emprega resolu¸ao e unifica¸ao como regras de inferˆencia;
adota uma estrat´egia de busca em profundidade para controlar as inferˆencias;
introduz o conceito de predicado comput´avel;
introduz o conceito de nega¸ao por falha finita.
2 Cla´usulas de Horn
Cl´ausulas de Horn [1] ao ormulas da forma φφ1,...,φn, sendo n0, onde
o literal φ´e uma conclus˜ao e os literais φiao premissas. Se n= 0, a cl´ausula
´e denominada fato e se n > 0, a cl´ausula ´e denominada regra. Uma ormula
da forma φ1, φ2,...,φn´e denominada consulta. A cl´ausula ´e denominada
vazia e denota uma contradi¸ao.
2.1 Inferˆencia com cl´ausulas de Horn
Inferˆencias com cl´ausulas de Horn 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.
10caso: se o fato α0unifica-se com o primeiro literal da consulta
β1, β2,...,βn, sob o conjunto de substitui¸oes σ, ent˜ao a resolvente ser´a a
consulta β0
2,...,β0
n, onde β0
i´e uma instˆancia de βi, sob a substitui¸ao σ;
20caso: se a conclus˜ao da regra α0α1,...,αmunifica-se com o primeiro
literal da consulta β1, β2,...,βn, sob o conjunto de substitui¸oes σ,
ent˜ao a resolvente ser´a a consulta α0
1,...,α0
m, β0
2,...,β0
n, onde α0
i´e uma
instˆancia de αieβ0
i´e uma instˆancia de βi, sob a substitui¸ao σ.
A fun¸ao unifica(α, β, γ ) tenta unificar a cl´ausula αcom a consulta β, re-
sultando na nova consulta γ(que pode ser a cl´ausula vazia). Caso a unifica¸ao
seja bem sucedida, essa fun¸ao devolve verdade; caso contr´ario, devolve falso.
pf3
pf4
pf5
pf8

Pré-visualização parcial do texto

Baixe Introdução à Programação Lógica: Algoritmo Sld-Resolução e outras Slides em PDF para Física, somente na Docsity!

Racioc´ınio Automatizado

Prof. Dr. Silvio do Lago Pereira

[email protected]

1 Introdu¸c˜ao

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:

  • restringe-se `a uma classe de f´ormulas denominada cl´ausulas de Horn;
  • emprega resolu¸c˜ao e unifica¸c˜ao como regras de inferˆencia;
  • adota uma estrat´egia de busca em profundidade para controlar as inferˆencias;
  • introduz o conceito de predicado comput´avel;
  • introduz o conceito de nega¸c˜ao por falha finita.

2 Cla´usulas de Horn

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.

  • 1^0 caso: se o fato α 0 ← unifica-se com o primeiro literal da consulta ← β 1 , β 2 ,... , βn, sob o conjunto de substitui¸c˜oes σ, ent˜ao a resolvente ser´a a consulta ← β 2 ′,... , β′ n, onde β′ i ´e uma instˆancia de βi, sob a substitui¸c˜ao σ;
  • 2^0 caso: se a conclus˜ao da regra α 0 ← α 1 ,... , αm unifica-se com o primeiro literal da consulta ← β 1 , β 2 ,... , βn, sob o conjunto de substitui¸c˜oes σ, ent˜ao a resolvente ser´a a consulta ← α′ 1 ,... , α′ m, β′ 2 ,... , β′ n, onde α′ i ´e uma instˆancia de αi e β i′ ´e uma instˆancia de βi, sob a substitui¸c˜ao σ.

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 ∆:

  • usando a cl´ausula (1) sob a substitui¸c˜ao {Y = ze, R = pinga}, a consulta ´e reduzida para ← vivo(ze); por´em, como n˜ao h´a em ∆ uma cl´ausula que possa ser resolvida com essa nova consulta, o algoritmo retrocede na sua escolha e tenta a outra alternativa;

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.

  • Usando a cl´ausula (7), sob a substitui¸c˜ao {D = ana, E = R}, obtemos a consulta ← estudou(ana, R). Resolvendo essa nova consulta com a cl´ausula (5), sob a substitui¸c˜ao {R = f rances}, obtemos a cl´ausula vazia. Nesse ponto, o algoritmo apresenta a segunda resposta poss´ıvel (R = f rances) e, como n˜ao h´a mais ramos em aberto na ´arvore de refuta¸c˜ao, a busca termina.

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:

  • Eva namora com Ary?
  • Ivo namora com Ana?
  • Ary namora com quem? 

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:

  • Quem ´e avˆo de Enos?
  • Seth ´e avˆo de algu´em? 

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). 

Referˆencias

  1. Amble, T. Logic Programming and Knowledge Engineering, Addison-Wesley, 1987.
  2. Bratko, I. Prolog - Programming for Artificial Intelligence, Addison-Wesley, 1990.
  3. Genesereth, M. R. and Nilsson, N. J. Logical Fundations of Artificial Intelli- gence, Morgan Kaufmann Publishers, 1988.
  4. Reiter, R. On Closed Word Data Bases, In H. Gallaire and J. Minker, Logic and Data Bases, pages 55-76, Plenum Press, NY, 1978.
  5. Rich, E. and Knight, K. Inteligˆencia Artificial, 2a^ ed., Makron Books, 1995.