Universidade Federal de Campina Grande
Departamento de Sistemas e Computação
Curso de Bacharelado em Ciência da Computação
Inteligência Artificial I
Representação do Conhecimento
(Parte II)
Prof.a Joseana Macêdo Fechine
[email protected]
Carga Horária: 60 horas
DSC/CCT/UFC
Representação do Conhecimento
Tópico

Lógica de Predicados
2
DSC/CCT/UFCG
Representação do Conhecimento

A Inteligência Artificial (IA) deve ter mecanismos para
a representação de fatos.

Representação do conhecimento do mundo que um
sistema de IA necessita - uso da lógica proposicional.

Representa-se os fatos do mundo real por meio das
fórmulas bem formadas ("fbf's") ou proposições
lógicas.

A prova de teoremas foi um dos primeiros domínios a
explorar as técnicas de IA.
3
DSC/CCT/UFCG
Representação do Conhecimento
É importante lembrar que:

Lógica proposicional - O termo proposição recobre a
idéia de asserção formulada seguindo uma certa
sintaxe e susceptível de ser avaliado "verdadeiro" ou
"falso" por um universo dado.

Lógica de predicados de primeira ordem - pode ser
vista como uma extensão da lógica das proposições.

Munida de propriedades de base da lógica das proposições,
permite introduzir elementos gerais chamados "variáveis“
(normalmente chamadas u, v, …, z), que podem ser
quantificadas pelo quantificador universal ∀ (qualquer que
seja) ou pelo quantificador existencial ∃ (existe).
4
DSC/CCT/UFCG
Representação do Conhecimento
É importante lembrar que:

A noção de primeira ordem é associada ao fato das
variáveis poderem ser quantificadas, mas não os
predicados nem as funções.
5
DSC/CCT/UFCG
Representação do Conhecimento
Simbologia a ser utilizada:






“” (implicação)
“  ” (negação)
“  ” (disjunção)
“  ” (conjunção)
“ ” (quantificação universal = "para todos")

“ ” (quantificação
existencial = "existe").
6
DSC/CCT/UFCG
Representação do Conhecimento

Objetivo: Explorar o uso da lógica de predicados
como uma forma para representar o conhecimento.

Considere o seguinte conjunto de sentenças:
1. Marco era um homem.
2. Marco era um pompeiano.
3. Todos os pompeianos eram romanos.
4. César era um soberano.
5. Todos os romanos ou eram leais a César ou o odiavam.
6. Todos são leais a alguém.
7. As pessoas somente tentam assassinar soberanos aos
quais elas não são leais.
8. Marco tentou assassinar César.
7
DSC/CCT/UFCG
Representação do Conhecimento

Representação dos fatos descritos por estas
sentenças a partir de um conjunto de fbf's na lógica
de predicados:
1. Marco era um homem.
homem(Marco)
2. Marco era um pompeiano.
pompeiano(Marco)
3. Todos os pompeianos eram romanos.
X: pompeia
no(X)  romano(X)
4. César era um soberano.
soberano(Cesar)
DSC/CCT/UFCG
8
Representação do Conhecimento
5. Todos os romanos ou eram leais a César ou o odiavam.
X: romano(
X)  leal(X,Cesar)  odiar(X,Cesar)
6. Todos são leais a alguém.
X:Y: leal(X,Y)
7. As pessoas somente tentam assassinar soberanos aos
quais elas não são leais.
X:Y: pessoa(X)  tentarassassinar(X,Y)  leal(X,Y)
8. Marco tentou assassinar César.
tentarassassinar(Marco,Cesar)
9
DSC/CCT/UFCG
Representação do Conhecimento

Deste exemplo simples, é possível perceber três
pontos importantes na conversão de sentenças do
português em fórmulas da lógica:

Muitas sentenças do português são ambíguas (por exemplo,
5, 6 e 7). A escolha da interpretação correta pode ser difícil.

Existe freqüentemente uma escolha de como representar o
conhecimento. Representações simples são desejáveis mas
elas podem impedir certos tipos de raciocínio.

Mesmo em situações muito simples, um conjunto de
sentenças não parece conter toda a informação necessária
para raciocinar sobre o tópico em questão.

Para ser capaz de usar um conjunto de fórmulas
efetivamente, é muitas vezes necessário ter acesso a um
outro conjunto de fórmulas que representam fatos
considerados óbvios demais para mencionar (senso comum).
10
DSC/CCT/UFCG
Representação do Conhecimento

Como responder à questão:
“Marco era leal a César?”
11
DSC/CCT/UFCG
Representação do Conhecimento

Parece que usando 7 e 8, dá para concluir que
Marco não era leal a César (ignorando a distinção
entre passado e presente).

Há a necessidade de inclusão de conhecimento de
senso comum:
9. Todos os homens são pessoas.
X (homem(X) pessoa(X))
12
DSC/CCT/UFCG
Engenharia de Conhecimento em
Lógica de Primeira Ordem
O processo de engenharia de conhecimento
1.
2.
3.
4.
5.
6.
7.
Identificar a tarefa
Agregar o conhecimento relevante
Definir um vocabulário de predicados, funções e
constantes
Codificar o conhecimento geral sobre o domínio
Codificar uma descrição da instância específica do
problema
Formular consultas ao procedimento de inferência
e obter respostas
Depurar a base de conhecimento
13
DSC/CCT/UFCG
Engenharia de Conhecimento em
Lógica de Primeira Ordem
Exemplo: O domínio dos circuitos eletrônicos
DSC/CCT/UFCG
Adaptado do livro Artificial Intelligence: A Modern Approach by Stuart Russell and Peter Norvig, 2003.
14
Engenharia de Conhecimento em
Lógica de Primeira Ordem
O domínio dos circuitos eletrônicos
1. Identificar a tarefa



O circuito realmente efetua soma de modo apropriado?
Se todas as entradas estão em nível alto, qual será a
saída da porta A2?
O circuito contém laços de realimentação?
2. Agregar conhecimento relevante


Os sinais fluem pelos fios até os terminais de entrada das
portas, e cada porta produz um sinal no terminal de saída
que flui por outro fio.
Como funcionam as portas AND, OR, XOR ...
15
DSC/CCT/UFCG
Engenharia de Conhecimento em
Lógica de Primeira Ordem
O domínio dos circuitos eletrônicos
3. Definir um vocabulário




Portas: X1, X2, ...
Tipo(X1) = XOR, ...
Entrada(1, X1)
Conectados(Saída(1, X1), Entrada(1, X2)), ...
16
DSC/CCT/UFCG
Engenharia de Conhecimento em
Lógica de Primeira Ordem
O domínio dos circuitos eletrônicos
4. Codificar o conhecimento geral do domínio

Se dois terminais estão conectados, eles têm o mesmo sinal:
t1 , t2 Conectados(t1 , t2 )  Sinal(t1 )  Sinal(t2 )

O sinal em todo terminal é 1 ou 0 (mas não ambos):
t Sinal(t )  1  Sinal(t )  0
1 0

Conectados é um predicado comutativo:
t1 , t2 Conectados(t1 , t2 )  Conectados(t2 , t1 )
17
DSC/CCT/UFCG
Engenharia de Conhecimento em
Lógica de Primeira Ordem
O domínio dos circuitos eletrônicos
4. Codificar o conhecimento geral do domínio

A saída de uma porta OR é 1 se e somente se qualquer de suas
entradas é 1:
g Tipo( g )  OR 
Sinal( Saída(1, g ))  1  n Sinal( Entrada(n, g ))  1

A saída de uma porta AND é 0 se e somente se qualquer de suas
entradas é 0:
g Tipo( g )  AND 
Sinal(Saída(1, g ))  0  n Sinal( Entrada(n, g ))  0
18
DSC/CCT/UFCG
Engenharia de Conhecimento em
Lógica de Primeira Ordem
O domínio dos circuitos eletrônicos
4. Codificar o conhecimento geral do domínio

A saída de uma porta XOR é 1 se e somente se suas entradas
são diferentes:
g Tipo( g )  XOR 
Sinal( Saída(1, g ))  1  Sinal( Entrada(1, g ))  Sinal( Entrada(2, g ))

A saída de uma porta NOT é diferente de sua entrada:
g ( Tipo( g )  NOT )  Sinal(Saída(1, g ))  Sinal( Entrada(1, g ))
19
DSC/CCT/UFCG
Engenharia de Conhecimento em
Lógica de Primeira Ordem
O domínio dos circuitos eletrônicos
5. Codificar a instância específica do problema
Categoria das portas:
Tipo( X 1 )  XOR
Tipo( X 2 )  XOR
Tipo( A1 )  AND
Tipo( A2 )  AND
Tipo(O1 )  OR
20
DSC/CCT/UFCG
Engenharia de Conhecimento em
Lógica de Primeira Ordem
O domínio dos circuitos eletrônicos
5. Codificar a instância específica do problema
Conexões entre as portas:
Conectados( Saída(1, X 1 ), Entrada(1, X 2 ))
Conectados( Entrada(1, C1 ), Entrada(1, X 1 ))
Conectados( Saída(1, X 1 ), Entrada(2, A2 ))
Conectados( Entrada(1, C1 ), Entrada(1, A1 ))
Conectados( Saída(1, A2 ), Entrada(1, O1 ))
Conectados( Entrada(2, C1 ), Entrada(2, X 1 ))
Conectados( Saída(1, A1 ), Entrada(2, O1 ))
Conectados( Entrada(2, C1 ), Entrada(2, A1 ))
Conectados( Saída(1, X 2 ), Saida(1, C1 ))
Conectados( Entrada(3, C1 ), Entrada(2, X 2 ))
Conectados( Saída(1, O1 ), Saida(2, C1 ))
Conectados( Entrada(3, C1 ), Entrada(1, A2 ))
21
DSC/CCT/UFCG
Engenharia de Conhecimento em
Lógica de Primeira Ordem
O domínio dos circuitos eletrônicos
6. Formular consultas ao procedimento de inferência

Que combinações de entradas fariam a primeira saída de C1 (o
bit de soma) ser 0 e a segunda saída de C1 (o bit de transporte)
ser 1?
i1 , i2 , i3 Sinal( Entrada(1, C1 ))  i1  Sinal( Entrada(2, C1 ))  i2
 Sinal( Entrada(3, C1 ))  i3  Sinal(Saída(1, C1 ))  0  Sinal(Saída(2, C1 ))  1
22
DSC/CCT/UFCG
Engenharia de Conhecimento em
Lógica de Primeira Ordem
O domínio dos circuitos eletrônicos
6. Formular consultas ao procedimento de inferência

As respostas são substituições para as variáveis i1, i2, i3, tais que
a sentença resultante é conseqüência lógica da base de
conhecimento. Existem três substituições desse tipo:
i1 / 1, i2 / 1, i3 / 0 i1 / 1, i2 / 0, i3 / 1 i1 / 0, i2 / 1, i3 / 1
23
DSC/CCT/UFCG
Engenharia de Conhecimento em
Lógica de Primeira Ordem
O domínio dos circuitos eletrônicos
6. Formular consultas ao procedimento de inferência

Quais são os conjuntos de valores possíveis de todos os
terminais para o circuito somador?
i1 , i2 , i3 , o1 , o 2 Sinal( Entrada(1, C1 ))  i1  Sinal( Entrada(2, C1 ))  i2
 Sinal( Entrada(3, C1 ))  i3  Sinal(Saída(1, C1 ))  o1  Sinal(Saída(2, C1 ))  o2
24
DSC/CCT/UFCG
Engenharia de Conhecimento em
Lógica de Primeira Ordem
O domínio dos circuitos eletrônicos
7. Depurar a base de conhecimento

Podemos perturbar a base de conhecimento de várias maneiras,
a fim de verificar que tipos de comportamentos errôneos
emergem.

Por exemplo, suponha que omitimos a asserção de que 1 
O sistema será incapaz de provar diversas saídas para o
circuito.
0
25
DSC/CCT/UFCG
Engenharia de Conhecimento em
Lógica de Primeira Ordem

O desenvolvimento de uma base de
conhecimento em lógica de primeira ordem
exige um processo cuidadoso de análise do
domínio, escolha de um vocabulário e
codificação dos axiomas necessários para dar
suporte às inferências desejadas.
26
DSC/CCT/UFCG
Download

Representação do Conhecimento