Академический Документы
Профессиональный Документы
Культура Документы
4. Agentes Baseados
em Conhecimento
Arquitectura
Ambiente
Agente
percepção acção
Conhecimento Estado
específico
Conhecimento
Memória
Raciocínio
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
2
Sistemas declarativos
Sistemas declarativos
Raciocínio
tipo(a1, agente)
energia(a1, 50) +
50 ≤ 100
tem_fome(a1)
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
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
Nome: a1 Nome: a2
Sistemas híbridos
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}
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}
}
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
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
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)
7
Agentes dedutivos e lógica
Raciocínio e prova
Passo Fórmulas Justificação
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
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:
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)))] ⇔
Lógica computacional
Raciocínio
Resolução
Par complementar
Resolvente
P, ¬P ∨ Q
∴Q
P ∨ A1 ∨ ... ∨ An , ¬P ∨ B1 ∨ ... ∨ Bm
∴ A1 ∨ ... ∨ An ∨ B1 ∨ ... ∨ Bm
9
Lógica computacional
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)
S(w) ¬ S(a)
10
Prolog
Prolog
Uma linguagem de programação em
lógica
Factos: R.
Regras: R :- P,Q.
Interpretações
Declarativa
Procedimental
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)).
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
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
12
Agentes baseados em regras
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
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
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
Recursivo!
dá_valor: como está implementada??
Objecto superior
Objecto superior
Objecto Objecto
valor se_necessário defeito valor se_necessário defeito
é_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
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
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)
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
17
Exercícios
Enquadramentos
Exercícios
Resolução
Cor: não_cinzento
Nome: Elefante
Toto está mais É_um(a):
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
18