Вы находитесь на странице: 1из 18

Inteligência Artificial

4. Agentes Baseados
em Conhecimento

Arquitectura

Ambiente
Agente

percepção acção

 Diferença relativa Decisão


aos agentes
de procura

 Conhecimento Estado
específico
Conhecimento
Memória

Raciocínio

© 2005 E. Costa, 2007 A. Silva

1
O mundo dos agentes

A2
O3 O2

A3

C2

O1

A1

C1
O4

O5 C3 Função Agente
1. Repetir
1.1. Percepcionar o mundo na
vizinhança;
1.2. Decidir a acção a tomar;
1.3. Executar a acção;
1.4. Actualizar o nível de
energia.
Até morrer

© 2005 E. Costa, 2007 A. Silva

O mundo dos agentes

 Vizinhança (8 células)  Estado


 Comida  Idade
 Obstáculos  Sexo
 Percepções  Energia
 Tipo de objecto  Posição

 Acções  Memória  acções


 Comer positivas, território
 Andar  Objectivo
 Reproduzir  Sobreviver

© 2005 E. Costa, 2007 A. Silva

2
Sistemas declarativos

 Descreve o estado do mundo


 Mecanismos de raciocínio derivam
conhecimento implícito
 Representação do conhecimento
 Factos e relações
tipo(a1, agente) posição(a1, coordXY(6,4))
vizinho(a1,c1,)
tipo(c1, comida) idade(a1, 30)
vizinho(a1,o1)
tipo(o1, obstáculo) sexo(a1, m)
gosta(a1,c1)
energia(a1, 50)
mesmo_sexo(a1,a3)
posição(c1, coordXY(6,3))

∀x, y (tipo ( x, agente) ∧ energia ( x, y ) ∧ y ≤ 100) → tem _ fome ( x )

© 2005 E. Costa, 2007 A. Silva

Sistemas declarativos

 Raciocínio
tipo(a1, agente)
energia(a1, 50) +
50 ≤ 100

∀x, y (tipo( x, agente) ∧ energia( x, y ) ∧ y ≤ 100) → tem _ fome( x)

tem_fome(a1)

Inferência Dedutiva  Lógica

© 2005 E. Costa, 2007 A. Silva

3
Sistemas procedimentais

 Representação do conhecimento
 Factos e regras
vizinho(a1,coordXY(6, 4), c1, coordXY(6, 3))
tipo(a1, agente)
tipo(c1, comida)
energia(a1, 50)
50 ≤ 100

R1: Se tipo(x, agente), energia(x, y), y ≤ 100


Então tem_fome(x)

R2: Se tem_fome(x), vizinho(x, coordXY(x1, y1), y, coordXY(x2, y2)),


tipo(y, comida)
Então comer(x, y)

© 2005 E. Costa, 2007 A. Silva

Sistemas procedimentais
 Raciocínio
 Encadeamento de Regras
 Para a frente
 Para trás
tipo(a1, agente)
R1: Se tipo(x, agente), energia(x, y), y ≤ 100
energia(a1, 50) + Então tem_fome(x)
50 ≤ 100
tem_fome(a1)

tem_fome(a1)
vizinho(a1,coordXY(6, 4), c1, coordXY(6, 3)) +
tipo(c1, comida)
R2: Se tem_fome(x), vizinho(x, coordXY(x1, y1), y, coordXY(x2, y2)),
tipo(y, comida)
comer(a1, c1)
Então comer(x, y)
© 2005 E. Costa, 2007 A. Silva

4
Sistemas híbridos

 Representação do Conhecimento
 Enquadramentos
Nome: Agente
 Atributos Tipo: biológico

 Facetas Energia [defeito]: 150


Sexo: {f,m}

Nome: a1 Nome: a2

É_um(a): Agente É_um(a): Agente

Tipo: biológico Tipo: biológico


Energia: 120 Energia: 180
Sexo: m Sexo: f
Posição: (6,4) Posição: (1,8)
Vizinhos: {o1, c1} Vizinhos: { }

© 2005 E. Costa, 2007 A. Silva

Sistemas híbridos

 Raciocínio Nome: Agente

Tipo: biológico
 Herança de propriedades Energia[defeito]: 150
Sexo: {f,m}

é_um(a)

Nome: a1

É_um(a): Agente

Tipo: {}
Energia: 120

Sexo: m
Posição: (6,4)
Vizinhos: {o1, c1}

© 2005 E. Costa, 2007 A. Silva

5
Sistemas híbridos

 Demónios
 É conhecimento procedimental
Nome: a2

É_um(a): Agente
Se_Alterado:
{
Tipo: {} se energia ≤ 50 então
estado = morto
Energia: 180
}
Sexo: f

Posição: (1,8)

Vizinhos: { }

Se_Necessário:
{
para px  x-1 até x+1
para py  y-1 até y+1
se px≠x e py ≠ y e ocupado(coordXY(px,py),z)
então vizinhos  vizinhos ∪ {z}
}

© 2005 E. Costa, 2007 A. Silva

Outras abordagens

 Sistemas conexionistas
Rrn: Se um agente tem energia maior ou igual a 200
e
idade maior ou igual a 20
então deve tentar reproduzir.

 Representação e Raciocínio

energia 1 200
1
reproduzir
2

idade 20 1
1

© 2005 E. Costa, 2007 A. Silva

6
Outras abordagens

 Sistemas biológicos
 Objectivo = comer o máximo possível
maximizando a energia  optimização
 Problema tipo caixeiro viajante

 Representação

C1 C5 C3 C8 C2 C6 C4 C7

 Raciocínio = algoritmo genético

© 2005 E. Costa, 2007 A. Silva

Agentes dedutivos e lógica


 Cálculo proposicional
 Cálculo de predicados de primeira ordem
1: tipo(a1, agente) A2
O3 O2
2: idade(a1,30) A3

3: energia(a1,100)
C2
4: posição(a1,coordXY(6,4)) O1
..... A1
5: tipo(c1,comida)
C1
6: posição(c1, coordXY(6,3)) O4

7: tipo(o1,obstáculo) O5 C3

8: posição(o1,coordXY(5,5))
....
9: ∀z,x,y posição(z,coordXY(x,y)) ∧
posição(w,coordXY(x,y-1)) →vizinho(z,w)
10:∀z,x,y posição(z,coordXY(x,y)) ∧
posição(w,coordXY(x-1,y+1)) →vizinho(z,w)

© 2005 E. Costa, 2007 A. Silva

7
Agentes dedutivos e lógica

 Raciocínio e prova
Passo Fórmulas Justificação

S1 posição(a1,coordXY(6,4))∧ posição(c1, coordXY(6,3)) Introdução do E, 4,6

posição(a1,coordXY(6,4)) ∧ posição(c1,coordXY(6,3))
S2 Eliminação universal, 9
→ vizinho(a1,c1)

Eliminação implicação, S1
S3 vizinho(a1,c1)
e S2

S4 posição(a1,coordXY(6,4))∧ posição(o1, coordXY(5,5)) Introdução do E, 4,8

posição(a1,coordXY(6,4)) ∧ posição(o1,coordXY(5,5))
S5 Eliminação universal, 10
→ vizinho(a1,o1)

Eliminação implicação, S4
S6 vizinho(a1,o1)
e S5
© 2005 E. Costa, 2007 A. Silva

Lógica computacional

 Representação do Conhecimento
 Literal: P, ¬P
 Cláusula: P∨Q ∨ ¬ R
 De Horn: P∨ ¬ Q ∨ ¬ R
 Vazia:

 Toda a Fórmula Bem Formada do CPPO


pode ser transformada num conjunto de
cláusulas equivalente

© 2005 E. Costa, 2007 A. Silva

8
Lógica computacional

 Exemplo
(∀xA(x)∨∃xB(x))↔(∀xC(x)∧∃xD(x)) ⇔
(∀xA(x)∨∃yB(y))↔(∀zC(z)∧∃wD(w))⇔
⇔ # renomeação das variáveis
⇔ # forma prenex
∀x∃y∀z∃w(A(x)∨B(y))↔(C(z)∧D(w))⇔
↔(C(z)∧D(g(z)))⇔
∀x∀z(A(x)∨B(f(x)))↔ ⇔ # Skolemização
[(A(x)∨B(f(x)))→
→ (C(z)∧D(g(z)))] ∧ [(C(z)∧D(g(z))) → (A(x)∨B(f(x)))] ⇔

¬(A(x)∨B(f(x)))∨
∨(C(z)∧D(g(z)))] ∧ [¬
¬(C(z)∧D(g(z))) ∨ (A(x)∨B(f(x)))] ⇔

[(¬
¬A(x)∧¬
¬B(f(x)))∨(C(z)∧D(g(z)))] ∧ [ (¬
¬C(z)∨ ¬ D(g(z))) ∨ (A(x)∨B(f(x)))] ⇔

[(¬A(x) ∨(C(z)∧D(g(z)))] ∧ [(¬B(f(x)) ∨(C(z)∧D(g(z)))] ∧ [(¬C(z)∨ ¬D(g(z))) ∨ (A(x)∨B(f(x)))]



[(¬A(x)∨
∨C(z))] ∧ [(¬A(x)∨D(g(z)))] ∧ [(¬B(f(x))∨
∨C(z)] ∧ [(¬B(f(x))∨
∨D(g(z)))] ∧ [(¬C(z)∨ ¬
D(g(z))) ∨(A(x)∨B(f(x)))]

{[(¬A(x)∨C(z))] , [(¬A(x)∨D(g(z)))] , [(¬B(f(x))∨C(z)] ,


[(¬B(f(x))∨D(g(z)))], [(¬C(z)∨ ¬D(g(z))) ∨(A(x)∨B(f(x)))] }

© 2005 E. Costa, 2007 A. Silva

Lógica computacional
 Raciocínio
 Resolução
 Par complementar
 Resolvente
P, ¬P ∨ Q
∴Q

P ∨ A1 ∨ ... ∨ An , ¬P ∨ B1 ∨ ... ∨ Bm
∴ A1 ∨ ... ∨ An ∨ B1 ∨ ... ∨ Bm

P(a,x) ∨ Q(x) ¬P(y,b) ∨ Q(y) ∨ R(z)

Q(b) ∨ Q(a) ∨ R(z)


© 2005 E. Costa, 2007 A. Silva

9
Lógica computacional

 Algoritmo de Robinson: ϕ é uma


consequência lógica de Σ?

 1. Negar a conclusão e juntá-la a Σ, formando


Σ∪{¬ϕ).
 2. Converter o resultado para a forma
clausal.
 3. Usar a regra da Resolução para derivar a
cláusula vazia.

© 2005 E. Costa, 2007 A. Silva

Lógica computacional
 Exemplo
1. ¬P(w)∨∨Q(w)
2. P(x)∨
∨ R(x)
Σ ∀s,S(s)?
3. ¬Q(y) ∨ S(y)
4. ¬ R(z) ∨ S(z)

¬ϕ 5.¬∀
¬∀sS(s)
¬∀
6. ¬S(a) cláusula negada
¬P(w)∨Q(w) P(x) ∨ R(x)

Q(w) ∨ R(w) ¬Q(y) ∨ S(y)

R(w) ∨ S(w) ¬ R(z) ∨ S(z)

S(w) ¬ S(a)

© 2005 E. Costa, 2007 A. Silva

10
Prolog

 Prolog
 Uma linguagem de programação em
lógica
 Factos: R.
 Regras: R :- P,Q.
 Interpretações
 Declarativa
 Procedimental

© 2005 E. Costa, 2007 A. Silva

Prolog

 Exemplo

Factos
A2
posicao(a1,coordXY(6,4)). O3 O2
A3
posicao(a2,coordXY(1,8)).
posicao(a3,coordXY(7,7)). C2
O1
posicao(c1,coordXY(6,3)). A1
posicao(c2,coordXY(2,6)). C1
posicao(c3,coordXY(6,1)). O4
C3
posicao(o1,coordXY(5,5)). O5

posicao(o2,coordXY(5,8)).
posicao(o3,coordXY(4,8)).
posicao(o4,coordXY(3,2)).
posicao(o5,coordXY(3,1)).

© 2005 E. Costa, 2007 A. Silva

11
Prolog
Regras
vizinho(X,Y) :- posicao(X,coordXY(Z,W)), P is W - 1, posicao(Y,coordXY(Z,P)).
vizinho(X,Y) :- posicao(X,coordXY(Z,W)), P is W + 1,posicao(Y,coordXY(Z,P)).
vizinho(X,Y) :- posicao(X,coordXY(Z,W)), Q is Z - 1,posicao(Y,coordXY(Q,W)).
vizinho(X,Y) :- posicao(X,coordXY(Z,W)),Q is Z - 1, P is W - 1,posicao(Y,coordXY(Q,P)).
vizinho(X,Y) :- posicao(X,coordXY(Z,W)),Q is Z -1, P is W +1,posicao(Y,coordXY(Q,P)).
vizinho(X,Y) :- posicao(X,coordXY(Z,W)),Q is Z +1,P is W -1, posicao(Y,coordXY(Q,P)).
vizinho(X,Y) :- posicao(X,coordXY(Z,W)),Q is Z +1,P is W +1, posicao(Y,coordXY(Q,P)).
vizinho(X,Y) :- posicao(X,coordXY(Z,W)),Q is Z +1, posicao(Y,coordXY(Q,W)).

?- vizinho(o3,o2).
A2 O3 O2
Yes
A3

C2
O1
?- vizinho(a1,X).
A1 X = c1 ;
O4
C1
X = o1 ;
O5 C3
No

© 2005 E. Costa, 2007 A. Silva

Agentes baseados em regras

 Representação e raciocínio
R1: Se C e D então G
R2: Se C e B então F
 Encadeamento R3: Se E e G então H
para a frente R4: Se E e F então I
R5: Se A e F então H

E R3 H

D
R1 G R4 I

C
Conjunto R2 F
B
inicial
de factos A R5 H

Conclusões
Conclusões
intermédias

© 2005 E. Costa, 2007 A. Silva

12
Agentes baseados em regras

 Encadeamento para trás

E R3 H
Factos que
D
suportam R1 G R4 I
objectivos C
Objectivo:
R2 F
B H
A R5 H

Objectivos
Objectivo inicial
intermédios

 Qual usar?
 Encadeamento misto

© 2005 E. Costa, 2007 A. Silva

Agentes baseados em regras


 Arquitectura
 Sistema de produções
 Base de regras
 Memória de trabalho
função Agente_SPr (ambiente): resultado
1. repete
1.1. percepção  percepção(ambiente);
1.2. Actualiza_Memória_Trabalho(memória_de_trabalho, percepção);
1.3. conjunto_de_conflito ← Selecciona(base_de_regras,
memória_de_trabalho);
1.4. se conjunto_de_conflito ≠ ∅ então
1.4.1. regra ← Resolve_Conflitos(conjunto_de_conflito);
1.4.2. Actualiza_Memória(memória_de_trabalho, regra)
fim_de_se
1.5. Dispara(regra , ambiente);
até critério_fim
fim_de_função © 2005 E. Costa, 2007 A. Silva

13
Agentes baseados em regras

 Resolução de conflitos
 Sensíveis ao contexto
 Regras que usam dados recentes
 Regras mais específicas
 Não sensíveis ao contexto
 Ordem das regras
 Prioridades definidas previamente
 Não repetir o uso de uma regra

© 2005 E. Costa, 2007 A. Silva

Agentes baseados em estruturas

 Enquadramentos
 Representação
<enquadramento>::= enquadramento <nome>
é_um(a) <nome>
<atributos>
fim
<atributos> ::= <atributo> ; <atributos> *
<atributo> ::= <nome> [<faceta>] : <valor>
<valor> ::= { <lista-valores>*}

 Exemplo
enquadramento o1
é_um(a) obstáculo
peso [defeito]: {200};
posição : {(2,3)};
fim
© 2005 E. Costa, 2007 A. Silva

14
Agentes baseados em estruturas

 Inferência
 Herança de propriedades
 Algoritmo simples

função procura_valor(enquadramento, atributo) resultado valor


1. se dá_valor(enquadramento, atributo) = valor então devolve valor
senão enq  é_um(a)(enquadramento);
1.1. se enq = <> então devolve falha
senão procura_valor(enq, atributo) fim_de_se
fim_de_se
fim_de_função

 Recursivo!
 dá_valor: como está implementada??

© 2005 E. Costa, 2007 A. Silva

Agentes baseados em estruturas


 Herança em Z e em N
Último objecto
Último objecto

Objecto superior
Objecto superior

Objecto Objecto
valor se_necessário defeito valor se_necessário defeito

 Problemas com o mecanismo de herança


Gato doméstico Felino
espécie_de
Perigoso: não Perigoso: sim

é_um(a) é_um(a)
Tareco
© 2005 E. Costa, 2007 A. Silva

15
Agentes baseados em estruturas
Nome: bloco

 Exemplo É_um(a):
Cor [defeito]:
 Forma do tijolo? branco

Densidade[se-nec]:
 Rectangular pergunta
Nome: Cunha Nome: Tijolo
 Por valor É_um(a): bloco É_um(a): bloco

 A partir de tijolo Forma: triangular Forma:


Volume: 10 rectangular
 Volume da cunha? Peso[se-nec]:
Volume: 15

calcula-peso Cor[defeito]:
 10 castanha

 Por valor
 A partir de cunha Nome: Cunha15
Nome: Tijolo21
É_um(a):
É_um(a):
 Cor do tijolo21? Cunha
Tiijolo

 Castanho
 Por defeito
 A partir de tijolo

© 2005 E. Costa, 2007 A. Silva

Exercícios

 Lógica
Considere o texto seguinte:
“Os gatos gostam de peixe. Os gatos comem tudo do que gostam. Berlioz é um gato.
a) exprima estas frases em lógica de predicados de primeira ordem.
b) usando a regra de resolução prove por refutação,
com base no conhecimento da alínea anterior que “o Berlioz come peixe”.

 LPPO
1. ∀xy, gato(x) → gosta(x,Peixe)
2. ∀x, gato(x) ∧ gosta(x,y) → come(x,y)
3. gato(Berlioz)

 Forma clausal
1. ¬gato(x1) ∨ gosta(x1,Peixe)
2. ¬gato(x2) ∨ ¬gosta(x2,y) ∨ come(x2,y)
3. gato(Berlioz)

© 2005 E. Costa, 2007 A. Silva

16
Exercícios

 Lógica
 Clausula negada
4. ¬come(Berlioz,Peixe)

 Prova
4. ¬come(Berlioz,Peixe) 2. ¬gato(x2) ∨ ¬gosta(x2,y) ∨ come(x2,y)

{x2/Berlioz,y/Peixe}
¬gato(Berlioz) ∨ ¬gosta(Berlioz,Peixe) 1. ¬gato(x1) ∨ gosta(x1,Peixe)

{x1/Berlioz}

¬gato(Berlioz) 3. gato(Berlioz)

[]
© 2005 E. Costa, 2007 A. Silva

Exercícios
Base de Regras
 Sistema de regras 1. A,B,F R
2. A,B  Q
Base de Factos 3. M,U  J
A,B,F,G,P 4. I,F  S
5. B,G  T
Problema: S 6. M,P  U
7. F,G  M
8. K,L,M  S
 Resolução 9. Q,F  K
A 2 Q 10. T,P  L
B
F 9 K

F 5 T
10 L 8 S

G
P
7 M
F

G © 2005 E. Costa, 2007 A. Silva

17
Exercícios

 Enquadramentos

- Toto é um elefante do circo.


- Os elefantes do circo são elefantes reais.
- Todos os elefantes reais são elefantes.
- Os elefantes são cinzentos.
- Os elefantes reais não são cinzentos

Caso acrescente o conhecimento de que Toto é um elefante,


qual seria a resposta para o problema de determinar a cor de
Toto, usando o mecanismo de herança de valores?

© 2005 E. Costa, 2007 A. Silva

Exercícios
 Resolução
 Cor: não_cinzento
Nome: Elefante
 Toto está mais É_um(a):

“perto” de ElefanteReal do Cor [defeito]: cinzento

que de Elefante
Nome: ElefanteReal
É_um(a): Elefante

Cor: não_cinzento

Nome: ElefanteDeCirco
Nome: Toto
É_um(a): ElefanteReal
É_um(a): ElefanteDeCirco
É_um(a): Elefante

© 2005 E. Costa, 2007 A. Silva

18

Вам также может понравиться