Professional Documents
Culture Documents
Representao
do
Conhecimento
Porque,
s
vezes,
acredito
em
at
seis
coisas
impossveis
antes
do
caf
da
manh.
(Lewis
Carroll,
Atravs
do
Espelho)
3.1
INTRODUO
Para
que
um
computador
possa
solucionar
um
problema
relacionado
ao
mundo
real,
primeiro
ele
precisa
de
um
meio
para
representar
o
mundo
real
internamente.
Essas
representaes
fornecem
um
poderoso
meio
de
solucionar
uma
grande
variedade
de
problemas.
3.2
A
representao
usada
por
um
problema
muito
importante:
o
modo
pelo
qual
o
computador
representa
um
problema,
as
variveis
que
ele
usa
e
os
operadores
que
aplica
pode
fazer
diferena
entre
um
algoritmo
eficiente
e
um
algoritmo
funcional.
EXEMPLO:
Procurando
uma
lente
de
contato
que
caiu
em
um
campo
de
futebol
-
utilizaria
algum
conheci-
mento
prvio
de
onde
estava
quando
caiu,
procurando
a
partir
desse
ponto.
E
o
computador?
Supostamente
ele
teria
um
orculo
que
responderia
qualquer
pergunta
acerca
do
campo.
-
Dividir
o
campo
em
quatro
quadrados
iguais
e
perguntar
ao
orculo,
para
cada
quadrado:
A
lente
est
nesse
quadrado?.
Mesmo
assim
ainda
teria
muito
espao
para
procurar.
Ter
uma
grade
contendo
uma
representao
de
cada
tomo
do
campo:
A
lente
est
em
contato
com
esse
tomo?.
Seria
uma
resposta
altamente
precisa,
no
entanto
seria
um
modo
ineficiente
para
encontrar
a
lente.
Levaria
muito
tempo.
Uma
melhor
representao
seria
dividir
o
campo
em
quadrados
de
um
centmetro
e
eliminar
to-
dos
os
quadrados
que
voc
sabe
que
no
esto
por
perto
de
onde
voc
estava
quando
perdeu
a
lente.
Todas
as
representaes
so
idnticas,
exceto
pelos
diferentes
nveis
de
granularidade.
O
mais
difcil
de-
terminar
a
estrutura
de
dados
que
ser
utilizada
para
representar
o
problema.
Ao
aplicar
IA
em
problemas
de
busca,
essencial
uma
representao
til,
eficiente
e
significativa.
A
re-
presentao
deve
ser
tal
que
um
computador
no
gaste
muito
tempo
em
computaes
desnecessrias,
que
seja
realmente
relacionada
ao
problema
e
que
fornea
um
meio
pelo
qual
o
computador
possa
realmente
resolver
o
problema.
3.3
REDES SEMNCIAS
um
grafo
que
contm
vrtices
(representam
objetos)
que
so
conectados
por
arestas
(relacionamentos
entre
objetos).
As
ligaes
so
rotuladas
para
indicar
a
natureza
do
relacionamento.
Redes
semnticas
fornecem
um
modo
muito
intuitivo
para
representar
conhecimento
sobre
objetos
e
os
relacionamentos
entre
eles.
Os
dados
podem
ser
tratados
logicamente
para
produzir
sistemas
que
tem
um
conhecimento
sobre
um
domnio
especfico.
Possuem
limitaes
como
a
incapacidade
de
representar
nega-
es:
Fido
no
um
gato.
Representamos
objetos
especficos
(Fang,
Bob
e
Fido)
que
so
instncias
de
uma
classe
particular
(cachor-
ro,
gato).
Pelo
grfico,
no
fica
claro
se
queijo
uma
classe
ou
uma
instncia
de
classe.
Por
isso,
Redes
Semn-
ticas
devem
possuir
regras,
por
exemplo:
qualquer
objeto
que
no
tenha
um
relacionamento
-um
com
uma
classe
representar
uma
classe
de
objetos.
3.4
HERANA
Nos
permite
especificar
propriedades
de
uma
superclasse
e,
a
seguir,
definir
uma
subclasse,
que
herda
as
propriedades
da
superclasse.
til
para
expressar
generalidades
(Todos
mamferos
do
a
luz
bebs
vivos).
No
entanto,
em
alguns
casos
precisamos
expressar
excees
a
essas
generalidades
(Animais
machos
no
do
a
luz,
ou
Cadelas
com
menos
de
seis
meses
no
do
a
luz).
Nestes
casos,
dizemos
que
um
valor-padro
foi
sobrescrito
na
subclasse.
No
nosso
exemplo,
mamferos
formas
a
superclasse
de
cachorros
e
de
Fido.
Cachorros
uma
subclasse
de
mamferos
e
a
superclasse
de
Fido.
3.5
QUADROS
Bob
um
Construtor
possui
Fido
come
Queijo
Fido
um
Cachorro
caa
Fang
Fang
um
Gato
caa
Ratos
Ratos
come
Queijo
Queijo
Construtor
Cachorro
Gato
Podemos
tambm
representar
este
sistema
de
quadros
em
uma
forma
diagramtica
utilizando
represen-
taes
como
a
mostrada
a
seguir:
O
relacionamento
-um
muito
importante
em
representaes
baseadas
em
quadros
porque
ele
nos
permite
expressar
pertinncia
a
classes.
Este
relacionamento
tambm
conhecido
como
generalizao,
j
que
referir-se
classe
de
mamferos
mais
geral
que
referir-se
classe
de
cachorros
e
referir-se
classe
de
cachor-
ros
mais
geral
que
em
relao
a
referir-se
a
Fido.
tambm
til
ser
capaz
de
falar
de
um
objeto
como
parte
de
um
outro.
Por
exemplo,
Fido
tem
uma
cauda
e,
assim,
a
cauda
parte
de
Fido.
Este
relacionamento
chamado
de
agregao
porque
Fido
pode
ser
conside-
rado
um
agregado
de
partes
de
cachorro.
Outros
relacionamentos
so
conhecidos
como
associao.
Um
exemplo
desse
caso
o
relacionamento
caa.
Isto
explica
como
Fido
e
Fang
esto
relacionados
ou
associados
entre
si.
Relacionamentos
de
associao
tem
significado
em
duas
direes.
O
fato
de
Fido
caar
Fang,
significa
que
Fang
caado
por
Fido.
3.5.1
Alm
de
poder
ser
utilizados
como
uma
estrutura
de
dados,
a
principal
vantagem
em
utilizar
sistemas
ba-
seados
em
quadros
que
toda
informao
sobre
um
objeto
especfico
armazenada
em
um
nico
lugar.
Em
sistemas
baseados
em
regras,
informaes
sobre
Fido
deveriam
ser
armazenadas
em
diversas
outras
regras
no
relacionadas
e,
ento,
se
Fido
muda
ou
uma
deduo
precisa
ser
feita
sobre
Fido,
ser
gasto
tempo
examinando
regras
e
fatos
irrelevantes
no
sistema,
ao
passo
que
no
sistema
de
quadros,
o
quadro
Fido
poderia
ser
rapidamente
examinado.
Em
situaes
na
qual
objetos
tenham
muitas
propriedades
e
muitos
objetos
esto
relacionados
entre
si
(como
em
muitas
situaes
do
mundo
real),
essa
vantagem
torna-se
particularmente
clara.
3.5.2
HERANA
claro,
isto
no
verdade,
pois
humanos
no
tm
quatro
pernas,
por
exemplo.
Em
um
sistema
baseado
em
quadros,
podemos
expressar
que
este
fato
o
valor-padro
e
que
ele
pode
ser
sobrescrito.
Imaginemos
que
Fido
tenha
tido
um
infeliz
acidente
e
agora
tenha
apenas
trs
pernas.
Esta
informao
seria
expressa
as-
sim:
Nome
do
Quadro
Compartimento
Valor do Compartimento
Mamfero
Cachorro
subclasse
Mamfero
Gato
subclasse
Mamfero
Fido
um
Cachorro
nmero de pernas
trs
Fang
um
Gato
Aqui
utilizamos
um
asterisco
(*)
para
indicar
que
o
valor
para
o
compartimento
"nmero
de
pernas"
para
a
classe
Mamfero
um
valor-padro
e
pode
ser
sobrescrito,
como
foi
feito
para
Fido.
3.5.3
tambm
possvel
expressar
uma
faixa
de
valores
que
um
compartimento
possa
ter
por
exemplo,
o
compartimento
nmero
de
pernas
poderia
ter
um
nmero
entre
1
e
4
(apesar
de,
para
a
classe
insetos,
poder
ser
6).
Um
modo
de
expressar
este
tipo
de
restrio
permitir
que
compartimentos
sejam
quadros.
Em
outras
palavras,
o
compartimento
nmero
de
pernas
pode
ser
representado
como
um
quadro,
que
inclua
informao
sobre
qual
faixa
de
valores
ele
pode
ter:
Nome
do
Quadro
valor mximo
Deste
modo,
podemos
tambm
expressar
ideias
mais
complexas
sobre
compartimentos,
tais
como
o
in-
verso
de
um
compartimento
(o
compartimento
"caa"
tem
um
inverso
que
o
compartimento
"caado
por").
Podemos
tambm
impor
outras
limitaes
a
um
compartimento,
tais
como
especificar
se
ele
pode
ou
no
assumir
diversos
valores
(o
compartimento
"nmero
de
pernas"
deveria
ter
apenas
um
valor,
ao
passo
que
o
compartimento
"come"
poderia
assumir
muitos
valores).
3.5.4
HERANA MLTIPLA
possvel
para
um
quadro
herdar
propriedades
de
mais
de
um
quadro.
Em
outras
palavras,
uma
classe
pode
ser
uma
subclasse
de
duas
super-classes
e
um
objeto
pode
ser
uma
instncia
de
mais
de
uma
classe.
Isto
conhecido
como
herana
mltipla.
Por
exemplo,
poderamos
acrescentar
os
seguintes
quadros
ao
nosso
sistema:
Nome
do
Quadro
Compartimento
Valor do Compartimento
Humano
Subclasse
Mamfero
Construtor
Constri
casas
Bob
um
Humano
A
partir
disso,
podemos
ver
que
Bob
um
humano,
tanto
quanto
um
construtor.
Assim,
podemos
herdar
as
seguintes
informaes
sobre
Bob:
Ele tem duas pernas
Ele constri casas
Em
alguns
casos,
encontraremos
conflitos,
quando
a
herana
mltipla
nos
leva
a
concluir
informaes
con-
traditrias
sobre
um
quadro.
Por
exemplo,
vamos
considerar
o
seguinte
simples
sistema
de
quadros:
Nome
do
Quadro
Queijo
Fedorento
No fedorento
Cheddar
um
Queijo
um
PROCEDIMENTOS
Em
linguagens
de
programao
orientadas
a
objeto,
como
C++
ou
Java,
classes
(e
consequentemente
obje-
tos)
tm
mtodos
associados
a
elas.
Isto
tambm
acontece
com
quadros.
Quadros
tm
mtodos
associados
a
eles,
que
so
chamados
procedimentos.
Procedimentos
associados
com
quadros
so
tambm
chamados
de
ligao
procedimental.
Um
procedimento
um
conjunto
de
instrues
associadas
com
um
quadro
que
pode
ser
executado
sob
demanda.
Por
exemplo,
um
procedimento
leitor
de
compartimento
recupera
o
valor
de
um
compartimento
especfico
dentro
do
quadro.
Outro
procedimento
insere
um
valor
(um
escritor
de
compartimento).
Outro
importante
procedimento
o
construtor
de
instncia,
que
cria
uma
instncia
de
uma
classe.
Tais
procedimentos
so
chamados
quando
for
necessrio
e
por
isso
so
denominados
procedimentos
AO-
NECESSITAR.
Outros
procedimentos
podem
ser
construdos
para
serem
chamados
automaticamente
quando
alguma
coisa
alterada.
3.5.6
GATILHOS
Um
gatilho
um
tipo
especial
de
procedimento
que
executado
automaticamente
sempre
que
um
valor
especfico
alterado
ou
quando
ocorre
um
evento
especfico.
Alguns
gatilhos
atuam
quando
um
valor
especfico
lido.
Em
outras
palavras,
eles
so
chamados
automati-
camente
quando
o
usurio
do
sistema,
ou
o
sistema
propriamente
dito,
quer
saber
que
valor
est
colocado
em
um
compartimento
especfico.
Estes
gatilhos
so
chamados
procedimentos
AO-LER.
Deste
modo,
clculos
complexos
podem
ser
feitos
para
avaliar
um
valor
a
ser
retornado
ao
usurio,
em
vez
de
simplesmente
devol-
ver
dados
estticos
que
esto
contidos
no
compartimento.
Isto
pode
ser
til,
por
exemplo,
em
um
grande
sis-
tema
financeiro
com
um
enorme
nmero
de
compartimentos,
pois
significaria
que
o
sistema
no
necessaria-
mente
teria
que
calcular
cada
valor
para
cada
compartimento.
Seria
necessrio
calcular
alguns
valores
apenas
quando
eles
fossem
solicitados.
Procedimentos
AO-ALTERAR
(tambm
chamados
procedimentos
AO-ESCREVER)
so
executados
automa-
ticamente
quando
o
valor
de
um
compartimento
alterado.
Este
tipo
de
funo
pode
ser
especialmente
til,
por
exemplo,
para
assegurar
que
os
valores
atribudos
a
um
compartimento
ajustem-se
a
um
conjunto
de
res-
tries.
No
exemplo
anterior,
um
procedimento
AO-ESCREVER
seria
executado
para
assegurar
que
o
compar-
timento
"nmero
de
pernas"
nunca
tenha
um
valor
maior
que
quatro
ou
menor
que
um.
Se
um
valor
de
7
for
informado,
uma
mensagem
do
sistema
seria
produzida
dizendo
ao
usurio
que
ele
ou
ela
informou
um
valor
incorreto
e
que
deve
informar
um
valor
diferente.
3.5.7
IMPLEMENTAO
Com
o
acrscimo
de
procedimentos
e
gatilhos,
o
sistema
de
quadros
torna-se
uma
ferramenta
muita
po-
derosa
para
tratar
logicamente
objetos
e
relacionamentos.
O
sistema
possui
semntica
procedimental
em
oposio
semntica
declarativa,
o
que
significa
que
a
ordem
na
qual
as
coisas
acontecem
afeta
os
resultados
que
o
sistema
produz.
Em
alguns
casos,
isto
pode
provocar
problemas
e
tornar
mais
difcil
entender
como
o
sistema
comportar-se-
em
uma
dada
situao.
Esta
falta
de
clareza
geralmente
compensada
pelo
nvel
de
flexibilidade
alcanado
por
gatilhos
e
outras
caractersticas
que
o
sistema
de
quadros
possui.
Sistemas
de
quadros
podem
ser
implementados
por
um
algoritmo
muito
simples
se
no
permitirmos
he-
rana
mltipla.
O
algoritmo
a
seguir
nos
permite
encontrar
o
valor
de
um
compartimento
C,
para
um
quadro
Q.
Nesta
definio
de
algoritmo,
utilizaremos
a
notao
Q[C]
para
indicar
o
valor
do
compartimento
C
no
quadro
Q.
Utilizaremos
tambm
a
notao
instancia(Q1, Q2)
para
indicar
que
o
quadro
Q1
uma
instncia
do
quadro
Q2
e
subclasse(Q1, Q2)
para
indicar
que
o
quadro
Q1
uma
subclasse
do
quadro
Q2.
Function encontrar_valor_compartimento(C, Q){
if (Q[C] == V){
return V;
}else{
if (instancia(Q, Q)){
return encontrar_valor_compartimento(C, Q);
}else{
if (subclasse (Q, Qs){
return encontrar_valor_compartimento(Q, Qs);
}else{
return FALHA;
}
}
}
}
Em
outras
palavras,
o
valor
de
um
compartimento
de
um
quadro
ou
estar
contido
dentro
daquele
qua-
dro,
ou
em
uma
superclasse
de
Q
ou
em
outro
quadro
do
qual
Q
seja
uma
instncia.
Se
nenhum
desses
forne-
cer
um
valor,
ento
o
algoritmo
falhar.
Claramente,
quadros
s
podem
ser
representados
em
linguagens
de
programao
orientadas
a
objeto,
como
C++
ou
Java.
Um
sistema
especialista
baseado
em
quadros
pode
ser
implementado
do
mesmo
modo
que
os
sistemas
baseados
em
regras.
Para
responder
a
perguntas
sobre
um
objeto,
o
sistema
pode
simplesmente
examinar
os
compartimentos
do
objeto
ou
os
compartimentos
de
classes
das
quais
o
objeto
seja
uma
instncia
ou
uma
subclasse.
Se
o
sistema
precisar
de
uma
informao
adicional
para
prosseguir,
ele
pode
fazer
perguntas
ao
usurio
de
modo
a
preencher
informaes
adicionais.
Do
mesmo
modo
que
nos
sistemas
baseados
em
regras,
procedi-
mentos
AO-ALTERAR
podem
ser
construdos
para
monitorar
os
valores
dos
compartimentos
e,
quando
um
conjunto
de
valores
identificado,
este
pode
ser
utilizado
pelo
sistema
para
derivar
uma
concluso
e,
assim,
recomendar
uma
ao
ou
emitir
uma
explicao
para
alguma
coisa.
3.5.8
possvel
combinar
quadros
com
regras,
e,
de
fato,
muitos
sistemas
especialistas
baseados
em
quadros
usam
regras
do
mesmo
modo
que
os
sistemas
baseados
em
regras
fazem,
com
o
acrscimo
de
clusulas
de
casamento
de
padro,
que
so
utilizadas
para
identificar
valores
que
atendam
a
um
conjunto
de
condies
a
partir
de
todos
os
quadros
do
sistema.
Tipicamente,
um
sistema
baseado
em
quadros,
com
regras,
utilizar
regras
para
tentar
derivar
concluses
e,
nos
casos
em
que
no
for
possvel
encontrar
um
valor
para
um
compartimento
especfico,
um
procedimento
AO-NECESSITAR
ser
executado
para
determinar
o
valor
para
este
compartimento.
Se
nenhum
valor
for
encon-
trado
por
este
procedimento,
ento
ser
solicitado
ao
usurio
o
fornecimento
de
um
valor.
3.5.9
CAPACIDADE REPRESENTACIONAL
Podemos
representar
os
tipos
de
relacionamentos
que
so
passveis
de
serem
descritos
com
quadros
em
lgica
dos
predicados
de
primeira
ordem.
Por
exemplo:
Vx Cachorro(x) Mamfero(x)
Essa
expresso
lida
como
a
seguir:
"Para
todo
x,
se
x
um
cachorro,
ento
x
um
mamfero".
Isso
pode
ser
expresso
mais
naturalmente
em
Portugus
como:
"Todos
os
cachorros
so
mamferos".
De
fato,
tambm
podemos
expressar
esse
relacionamento
introduzindo
um
novo
smbolo,
que
reflita
mais
claramente
o
signifi-
cado
contido
na
ideia
de
herana:
Cachorro
subconjunto
Mamfero
Praticamente
tudo
que
pode
ser
expresso
utilizando
quadros
pode
ser
expresso
utilizando
a
lgica
dos
predicados
de
primeira
ordem
(LPPO).
O
mesmo
no
vale
em
ordem
inversa.
Por
exemplo,
no
fcil
represen-
tar
negao
("Fido
no
um
gato")
ou
quantificao
("H
um
gato
que
tem
apenas
uma
perna").
Dizemos
que
LPPO
tem
maior
capacidade
representacional
em
relao
s
representaes
baseadas
em
quadros.
Na
verdade,
representaes
baseadas
em
quadros
possuem
alguns
aspectos
que
no
podem
ser
facilmen-
te
representados
em
LPPO.
O
mais
significativo
deles
a
ideia
de
excees
ou
sobrescrita
de
valores-padro.
Permitir
s
excees
sobrescrever
valores-padro
em
compartimentos
significa
que
a
representao
base-
ada
em
quadros
no
monotnica.
Em
outras
palavras,
concluses
podem
ser
modificadas
pela
introduo
de
novos
fatos
no
sistema.
3.6
Exploramos
agora
brevemente
algumas
das
ideias
usadas
na
programao
orientada
a
objeto
e,
em
espe-
cial,
como
elas
esto
relacionadas
a
algumas
das
ideias
vistas
sobre
herana
e
quadros.
Duas
das
mais
conhecidas
linguagens
de
programao
orientadas
a
objeto
so
Java
e
C++.
Essas
duas
lin-
guagens
usam
uma
sintaxe
parecida
para
definir
classes
e
objetos
que
so
instanciaes
destas
classes.
Uma
classe
tpica
nestas
linguagens
seria
definida
assim:
Class animal {
animal();
Olho *olhos;
Perna *pernas;
Cabeca cabea;
Cauda cauda;
}
Isto
define
uma
classe
chamada
animal,
com
alguns
campos,
que
so
as
vrias
partes
do
corpo.
Tem
tam-
bm
um
construtor,
uma
funo
que
chamada
quando
uma
instanciao
da
classe
acionada.
Classes
podem
ter
tambm
outras
funes
e
estas
funes
so
equivalentes
aos
procedimentos.
Podemos
criar
uma
instncia
da
classe
animal
assim:
animal um_animal = new animal();
Isto
cria
uma
instncia
da
classe
animal.
A
instncia,
que
um
objeto,
chamada
"um_animal".
Ao
cri-la,
o
construtor
anima(
)
acionado.
Podemos
tambm
criar
uma
subclasse
de
animal:
ESPAOS DE BUSCA
Muitos
problemas
em
Inteligncia
Artificial
podem
ser
representados
como
espaos
de
busca.
De
for-
ma
simples,
um
espao
de
busca
uma
representao
do
conjunto
de
possveis
escolhas
de
um
dado
proble-
ma,
uma
ou
mais
das
quais
soluo
do
problema.
Por
exemplo,
ao
tentar
localizar
uma
palavra
especfica
em
um
dicionrio
com
100
pginas,
um
espao
de
busca
consistir
em
cada
uma
das
100
pginas.
A
pgina
que
estiver
sendo
buscada
chamada
de
alvo
e
pode
ser
identificada
verificando-se
se
a
palavra
que
estamos
procurando
est
ou
no
nela.
(Na
verdade,
esta
identificao
seria
um
problema
de
busca
em
si
mesmo,
mas,
para
este
exemplo,
assumiremos
que
esta
seja
uma
ao
simples
ou
atmica.)
O
objetivo
da
maioria
dos
procedimentos
de
busca
identificar
um
ou
mais
alvos
e,
geralmente,
iden-
tificar
um
ou
mais
caminhos
at
estes
alvos
(frequentemente,
o
caminho
mais
curto
ou
o
caminho
de
menor
custo).
Devido
a
um
espao
de
busca
consistir
em
um
conjunto
de
estados,
conectados
por
caminhos
que
re-
presentam
aes,
eles
tambm
so
chamados
de
espao
de
estados.
Muitos
problemas
de
busca
podem
ser
representados
por
um
espao
de
estados
onde
o
objetivo
comear
com
o
mundo
em
um
estado
e
terminar
com
o
mundo
em
outro
estado
mais
desejvel.
No
problema
dos
Missionrios
e
Canibais,
o
estado
inicial
tem
todos
os
missionrios
e
todos
os
canibais
em
uma
margem
do
rio
e
o
estado-alvo
tem
todos
eles
na
outra
mar-
gem.
O
espao
de
estados
do
problema
consiste
em
todos
os
possveis
estados
intermedirios.
A
figura
a
seguir
exibe
um
diagrama
de
espao
de
estados
muito
simples
para
um
rob
que
mora
em
um
ambiente
com
trs
salas
(sala
A,
sala
B
e
sala
C)
e
um
bloco
que
pode
ir
de
sala
para
sala.
Cada
estado
con-
siste
em
um
possvel
arranjo
do
rob
e
do
bloco.
Assim,
por
exemplo,
no
estado
1,
tanto
o
rob
quanto
o
bloco
esto
na
sala
A.
Observe
que
este
diagrama
no
explica
como
o
rob
vai
de
uma
sala
para
a
outra
ou
como
um
bloco
movido.
Este
tipo
de
representao
assume
que
o
rob
tem
a
representao
de
diversas
aes
que
ele
pode
realizar.
Para
determinar
como
passar
de
um
estado
para
outro,
o
rob
precisa
utilizar
um
processo
cha-
mado
planejamento.
Na
figura
as
setas
entre
estados
representam
transies
de
estados.
Observe
que
no
h
transies
entre
cada
par
de
estados.
Por
exemplo,
no
possvel
passar
do
estado
1
para
o
estado
4
sem
passar
pelo
estado
5.
Isto
devido
ao
bloco
no
poder
se
mover
por
conta
prpria
e
somente
ser
movido
para
uma
sala
se
o
rob
for
para
l.
Assim,
um
diagrama
de
espao
de
estados
um
valioso
modo
de
representar
as
possveis
aes
que
podem
ser
realizadas
em
um
dado
estado
e
ento
representar
as
possveis
solues
de
um
proble-
ma.
3.8
RVORES
SEMNTICAS
Uma
rvore
semntica
um
tipo
de
rede
semntica
que
tem
as
seguintes
propriedades:
Cada
n
(exceto
o
n
raiz,
descrito
a
seguir)
tem
exatamente
um
predecessor
(pai)
e
um
ou
mais
su-
cessores
(filhos).
Na
rvore
semntica
da
figura
a
seguir,
o
n
A
o
predecessor
do
n
B:
o
n
A
conecta-se
por
uma
aresta
ao
n
B
e
vem
antes
dele
na
rvore.
Os
sucessores
do
n
B,
ns
D
e
E,
conectam-se
diretamente
(por
uma
aresta
cada)
ao
n
B
e
vm
depois
dele
na
rvore.
Podemos
escrever
estas
relaes
como:
suc(B) = D
e
pred(B) = A
A
natureza
no
simtrica
deste
relacionamento
significa
que
uma
rvore
semntica
um
grafo
orien-
tado.
Em
oposio,
grafos
no
orientados
so
aqueles
onde
no
h
diferena
entre
um
arco
de
A
para
B
e
um
arco
de
B
para
A.
Um
n
no
tem
predecessores.
Este
n
chamado
de
raiz.
Em
geral,
ao
fazer
uma
busca
em
uma
r-
vore
semntica,
comea-se
do
n
raiz.
Isto
devido
ao
n
raiz
tipicamente
representar
um
ponto
inicial
do
problema.
Por
exemplo,
ao
analisar
rvores
de
jogos,
veremos
que
a
rvore
para
o
xadrez
representa
todos
os
movimentos
possveis
do
jogo,
comeando
da
posio
inicial
na
qual
ainda
no
foi
feito
movimento
pelos
joga-
dores.
A
posio
inicial
corresponde
ao
n
raiz
na
rvore
de
jogo.
Alguns
ns
no
tm
sucessores.
Esses
ns
so
chamados
de
folhas.
Uma
ou
mais
folhas
so
chama-
das
de
alvos.
Estes
so
os
ns
que
representam
um
estado
no
qual
a
busca
foi
bem-sucedida.
Exceto
as
folhas,
todos
os
ns
tm
um
ou
mais
sucessores.
Exceto
a
raiz,
todos
os
ns
tm
exata-
mente
um
predecessor.
Um
ancestral
de
um
n
um
n
acima
dele
em
algum
caminho
na
rvore.
Um
descendente
vem
de-
pois
de
um
n
em
um
caminho
na
rvore.
Um
caminho
uma
rota
na
rvore
semntica,
que
pode
consistir
em
apenas
um
n
(um
caminho
de
comprimento
0).
Um
caminho
de
comprimento
1
consiste
em
um
n,
um
ramo
que
parte
deste
n
e
o
n
su-
cessor
ao
qual
este
ramo
chega.
Um
caminho
que
parta
da
raiz
e
v
at
um
alvo
chamado
de
caminho
com-
pleto.
Um
caminho
que
parta
da
raiz
e
v
at
uma
folha
que
no
seja
alvo
chamado
de
caminho
parcial.
Ao
comparar
redes
semnticas
e
rvores
semnticas
visualmente,
uma
das
diferenas
mais
bvias
que
redes
semnticas
podem
conter
ciclos,
mas
rvores
semnticas
no.
Um
ciclo
um
caminho
pela
rede
que
visita
o
mesmo
vrtice.
A
figura
anterior
exibe
uma
rede
semntica
e
uma
rvore
semntica.
Na
rede
semnti-
ca,
o
caminho
A,
B,
C,
D,
A...
um
ciclo.
Nas
rvores
semnticas,
uma
aresta
que
conecte
dois
ns
chamada
de
ramo.
Se
um
n
tiver
n
sucessores,
diz-se
que
esse
n
tem
fator
de
ramificao
de
n.
Diz-se
que
uma
rvore
tem
fator
de
ramificao
de
n
se
a
mdia
dos
fatores
de
ramificao
de
todos
os
ns
for
n.
Diz-se
que
a
raiz
de
uma
rvore
est
no
nvel
0
e
os
sucessores
da
raiz
esto
no
nvel
1.
Os
sucessores
dos
ns
do
nvel
n
esto
no
nvel
n
+
1.
3.9
RVORES DE BUSCA
Busca
em
redes
semnticas
implica
realizar
travessias
sistemticas
na
rede
(ou,
em
alguns
casos,
no
to
sistemticas),
examinando
os
ns,
procurando
por
um
alvo.
claro
que
seguir
um
caminho
cclico
na
rede
intil,
pois
seguir
A,B,C,D,A
no
levar
a
qualquer
soluo
que
no
pudesse
ser
alcanada
apenas
por
comear
a
partir
de
A.
Podemos
representar
os
caminhos
possveis
de
uma
rede
semntica
como
uma
rvore
de
busca,
que
um
tipo
de
rvore
semntica.
A
rvore
de
busca
exibida
na
figura
a
seguir
mostra
os
possveis
caminhos
pela
rede
semntica
exibida
na
figura
anterior.
Cada
n
na
rvore
representa
um
caminho,
com
sucessivas
camadas
na
rvore
representan-
do
caminhos
cada
vez
mais
longos.
Observe
que
no
inclumos
caminhos
cclicos,
o
que
significa
que
alguns
ramos
na
rvore
de
busca
terminam
em
folhas
que
no
so
alvos.
Observe
tambm
que
rotulamos
cada
n
na
rvore
de
busca
com
uma
nica
letra,
que
representa
o
caminho
a
partir
da
raiz
at
aquele
n
na
rede
semnti-
ca.
Assim,
buscar
um
n
na
rvore
de
busca
corresponde
a
buscar
um
caminho
completo
na
rede
semn-
tica.
3.9.1
Missionrios
e
Canibais
um
problema
bem
conhecido
que
frequentemente
utilizado
para
ilustrar
tcnicas
de
IA.
Eis
o
problema:
Trs
missionrios
e
trs
canibais
esto
em
uma
das
margens
de
um
rio,
com
uma
canoa.
Todos
querem
ir
para
a
outra
margem
do
rio.
A
canoa
somente
pode
transportar
uma
ou
duas
pessoas
de
cada
vez.
No
pode-
r
haver,
em
qualquer
momento,
mais
canibais
que
missionrios
em
ambas
as
margens
do
rio,
pois
isto
poderia
resultar
em
os
missionrios
serem
devorados.
Para
resolver
este
problema,
precisamos
utilizar
uma
representao
adequada.
Em
primeiro
lugar,
pa-
ra
a
soluo
do
problema,
podemos
considerar
um
estado
como
consistindo
no
nmero
exato
de
canibais
e
no
nmero
exato
de
missionrios
em
cada
margem
do
rio,
com
a
canoa
em
uma
margem
ou
na
outra.
Poderamos
representar
isto,
por
exemplo,
como
3,
3,
1
0, 0, 0
3.9.2
MELHORANDO
A
REPRESENTAO
Uma
representao
mais
efetiva
para
o
problema
no
deveria
incluir
ciclos.
A
figura
a
seguir
uma
verso
estendida
da
rvore
de
busca
para
o
problema
que
omite
ciclos
e
inclui
alvos.
Observe
que
nesta
rvore
omitimos
a
maioria
dos
estados
repetidos.
Por
exemplo,
a
partir
do
estado
1,0,0
o
operador
2
o
nico
exibido.
Na
verdade,
os
operadores
1
e
3
tambm
podem
ser
aplicados,
levando
aos
estados
2,0,1
e
1,1,1,
respectivamente.
Nenhuma
dessas
transi-
es
exibida
j
que
estes
estados
j
apareceram
na
rvore.
Alm
de
evitar
ciclos,
caminhos
subti-
mos
tambm
foram
removidos
da
rvore.
Se
um
caminho
de
comprimento
2
atinge
um
estado
especfico
e
outro
caminho
de
comprimento
3
tambm
atinge
aquele
estado,
no
h
interesse
em
seguir
o
caminho
mais
longo
pois
ele
no
levaria
ao
alvo
por
um
caminho
mais
curto
que
o
primeiro.
Assim,
os
dois
caminhos
que
podem
ser
seguidos
at
o
alvo,
na
rvore
da
figura,
so
as
rotas
mais
curtas
(os
caminhos
de
menor
custo)
at
o
alvo,
mas
no
so,
de
forma
alguma,
os
nicos
caminhos.
Existem
muitos
caminhos
mais
longos.
provvel
que
para
a
maioria
dos
problemas
esta
exigncia
de
memria
seja
uma
barganha
compen-
svel
pela
economia
de
tempo,
especialmente
se
o
espao
de
estados
sendo
explorado
tiver
muitos
estados
repetidos
e
ciclos.
Resolver
o
problema
dos
Missionrios
e
Canibais
envolve
buscar
na
rvore
de
busca.
Como
veremos,
busca
um
mtodo
extremamente
til
para
solucionar
problemas
e
amplamente
utilizada
em
Inteligncia
Artificial.
3.9.3
EXEMPLO 2: O CAIXEIRO-VIAJANTE
Atlanta
Boston
Chicago
Dallas
El Paso
Ele
mora
em
Atlanta
e
deve
visitar
todas
as
outras
quatro
cidades
antes
de
retornar
para
casa.
Imagi-
nemos
que
este
caixeiro-viajante
esteja
viajando
de
avio
e
que
o
custo
de
cada
voo
seja
diretamente
propor-
cional
distncia
percorrida
e
que
haja
voos
diretos
entre
qualquer
par
de
cidades.
Assim,
as
distncias
podem
ser
mostradas
em
um
grafo
como
na
figura
a
seguir.
O
grafo
exibe
o
relacionamento
entre
as
cidades.
Poderamos
utilizar
este
grafo
para
tentar
solucionar
o
problema.
Certamente,
podemos
utiliz-lo
para
encontrar
possveis
caminhos:
um
possvel
caminho
A,B,C,E,D,A
que
tem
um
comprimento
de
4.500
milhas.
Para
solucionar
o
problema
por
meio
de
busca,
uma
representao
ser
necessria,
baseada
neste
grafo.
A
figura
seguinte
mostra
uma
parte
da
rvore
de
busca
que
representa
os
possveis
caminhos
no
espao
de
estados
deste
problema.
Cada
n
marcado
com
a
letra
que
representa
a
cidade
que
foi
alcanada
pelo
caminho
at
aquele
ponto.
Assim,
na
verdade,
cada
n
representa
o
caminho
desde
a
cidade
A
at
a
cidade
nomeada
naquele
n.
A
raiz
da
rvore,
assim,
representa
o
caminho
de
comprimento
0,
que
consiste
apenas
na
cidade
A.
Como
no
exemplo
anterior,
caminhos
cclicos
foram
excludos
da
rvore,
mas
diferente
da
rvore
para
o
problema
dos
Missionrios
e
Canibais,
esta
rvore
permite
estados
repetidos.
Isto
porque,
neste
pro-
blema,
cada
estado
deve
ser
visitado
uma
vez
e,
assim,
um
caminho
completo
deve
incluir
todos
os
estados.
No
problema
dos
Missionrios
e
Canibais
o
objetivo
era
chegar
a
um
estado
especfico
pelo
caminho
mais
curto
que
pudesse
ser
encontrado.
Assim,
incluir
um
caminho
como
A,B,C,D
se
um
caminho
A,D
j
tiver
sido
encon-
trado
seria
perda
de
tempo,
pois
ele
no
poderia
levar
a
um
caminho
mais
curto
que
A,D.
J
no
problema
do
Caixeiro-Viajante,
isto
no
se
aplica
e
precisamos
examinar
cada
possvel
caminho
que
inclua
cada
n
uma
vez,
com
o
n
inicial
no
comeo
e
no
fim.
A
figura
a
seguir
apenas
uma
parte
da
rvore
de
busca,
mas
ela
mostra
dois
caminhos
completos:
A,B,C,D,E,A
e
A,B,C,E,D,A.
O
gasto
total
desses
dois
caminhos
de
4.000
milhas
e
de
4.500
milhas,
respectiva-
mente.
Ao
todo
existiro
(n
-
1)!
possveis
caminhos
para
o
problema
do
Caixeiro-Viajante
com
n
cidades.
Isto
porque
temos
a
restrio
da
cidade
inicial
e,
a
seguir,
uma
escolha
de
qualquer
combinao
de
(n
-
1)
cidades.
Para
problemas
com
um
pequeno
nmero
de
cidades,
como
5
ou
mesmo
10,
isto
significa
que
a
rvore
de
busca
completa
pode
ser
avaliada
por
um
programa
computacional
sem
maiores
dificuldades;
mas
se
o
pro-
48
blema
consistir
em
40
cidades,
seriam
40!
caminhos,
cerca
de
10 ,
um
nmero
absurdamente
grande.
Como
veremos,
mtodos
que
tentem
examinar
todos
esses
caminhos
so
chamados
de
mtodos
de
busca
fora-
bruta.
Para
solucionar
problemas
com
grandes
rvores,
necessrio
aplicar
conhecimento
sobre
o
problema
em
forma
de
heursticas,
que
nos
permitam
encontrar
modos
mais
eficientes
para
esta
soluo.
Uma
heurstica
uma
regra
ou
fragmento
de
informao
que
so
utilizadas
para
tornar
a
busca
ou
um
outro
mtodo
de
solu-
o
de
problemas
mais
efetivo
ou
mais
eficiente.
Por
exemplo,
uma
abordagem
de
busca
heurstica
para
solucionar
o
problema
do
Caixeiro-Viajante
se-
ria:
em
vez
de
examinar
cada
possvel
caminho,
simplesmente
estendemos
o
caminho
indo
para
a
cidade
mais
perto
da
posio
atual
que
ainda
no
foi
visitada.
Esta
chamada
de
heurstica
do
vizinho
mais
prximo.
No
exemplo
anterior,
isto
levaria
ao
caminho
A,
C,
D,
E,
B,
A,
que
tem
gasto
total
de
4.500
milhas.
Certamente,
este
no
o
melhor
caminho
possvel,
pois
j
vimos
um
caminho
(A,
B,
C,
D,
E,
A)
que
tem
um
gasto
de
4.000
milhas.
Isto
ilustra
o
fato
de
que,
apesar
de
heursticas
poderem
tornar
as
buscas
bem
mais
eficientes,
elas
no
necessariamente
fornecem
os
melhores
resultados.
3.9.4
Temos
trs
pinos
e
diversos
discos
de
tamanhos
diferentes.
O
objetivo
partir
do
estado
inicial,
no
qual
todos
os
discos
esto
no
primeiro
pino,
por
ordem
de
tamanho
(o
menor
em
cima)
e
chegar
ao
estado
objetivo,
no
qual
todos
os
discos
esto
no
terceiro
pino,
tambm
por
ordem
de
tamanho.
Podemos
mover
um
disco
de
cada
vez,
desde
que
no
haja
discos
sobre
ele
e
desde
que
ele
no
seja
movido
para
cima
de
um
disco
que
seja
menor
que
ele.
A
figura
abaixo
mostra
o
estado
inicial
e
um
estado
aps
um
disco
ter
sido
movido
do
pino
1
para
o
pi-
no
2
para
o
problema
das
Torres
de
Hani
com
trs
discos.
Agora
que
conhecemos
os
aspectos
do
estado
inicial
e
do
estado
objetivo,
precisamos
apresentar
um
conjunto
de
operadores:
Op1
Op2
Op3
Op4
Op5
Op6
Mover
Mover
Mover
Mover
Mover
Mover
disco
disco
disco
disco
disco
disco
do
do
do
do
do
do
pino
pino
pino
pino
pino
pino
1
1
2
2
3
3
para
para
para
para
para
para
o
o
o
o
o
o
pino
pino
pino
pino
pino
pino
2
3
1
3
1
2
Tambm
precisamos
um
modo
de
representar
cada
estado.
Para
este
exemplo,
utilizaremos
vetores
de
nmeros,
nos
quais
1
representa
o
menor
disco
e
3,
o
maior
disco.
O
primeiro
vetor
representa
o
primeiro
pino
e
assim
por
diante.
Assim,
o
estado
inicial
representado
por
(1,2,3)
(
)
(
)
O
segundo
estado
mostrado
na
figura
representado
por
(2,3)
(1)
(
)
e
o
estado
objetivo
(
)
(
)
(1,2,3)
Os
primeiros
cinco
nveis
da
rvore
de
busca
do
problema
das
Torres
de
Hani
com
trs
discos
so
mostrados
na
figura
a
seguir.
Mais
uma
vez,
ignoramos
caminhos
cclicos.
Na
verdade,
no
problema
das
Torres
de
Hani,
a
cada
passo,
podemos
sempre
escolher
inverter
a
ao
anterior.
Por
exemplo,
tendo
aplicado
o
operador
Op1,
para
ir
do
estado
inicial
para
o
estado
(2,3)
(1)
(
),
podemos
agora
aplicar
o
operador
Op3,
que
inverte
este
movimento
e
nos
leva
de
volta
ao
estado
inicial.
claro
que
este
comportamento
sempre
levar
a
um
ciclo
e,
portanto,
ignoramos
estas
escolhas
na
nossa
representao.
A
busca
no
o
nico
modo
de
identificar
solues
para
problemas
do
tipo
das
Torres
de
Hani.
Um
mtodo
de
busca
encontraria
uma
soluo
examinando
cada
possvel
conjunto
de
aes
at
que
um
caminho
fosse
encontrado,
do
estado
inicial
at
o
estado
objetivo.
Um
sistema
mais
inteligente
desenvolvido,
que
en-
tendesse
mais
sobre
o
problema
e,
na
verdade,
entendesse
como
solucion-lo
sem
necessariamente
ter
que
examinar
qualquer
dos
caminhos
alternativos
poderia
ser.
3.9.5
Um
mtodo
utilizado
em
Inteligncia
Artificial
para
identificar
objetos
descrev-los
e
ento
buscar
esta
descrio
em
uma
base
de
dados,
a
qual
identificar
o
objeto.
Eis
um
exemplo
de
Descrever
e
Coincidir:
Alice,
olhando
pela
janela,
pode
ver
uma
ave
no
jardim.
Ela
no
tem
muitos
conhecimentos
sobre
aves,
mas
um
amigo
dela,
Bob,
entende
do
assunto.
Ela
chama
Bob
e
descreve
o
pssaro
para
ele.
Pela
sua
descrio,
ele
est
certo
em
lhe
dizer
que
a
ave
um
pinguim.
Podemos
representar
o
conhecimento
de
Bob
sobre
aves
em
uma
rvore
de
busca,
onde
cada
n
re-
presente
uma
pergunta
e
um
arco
represente
a
resposta
a
esta
pergunta.
Um
caminho
pela
rvore
descreve
vrios
aspectos
de
um
pssaro
e
uma
folha
identifica
o
pssaro
que
est
sendo
descrito.
Portanto,
Descrever
e
Coincidir
nos
permite
utilizar
busca
combinada
com
conhecimento
para
respon-
der
questes
sobre
o
mundo.
Uma
parte
da
rvore
de
busca
de
Bob
utilizada
para
identificar
o
pinguim
do
lado
de
fora
da
janela
de
Alice
demonstrada
na
figura
a
seguir.
Inicialmente
formula-se
a
questo
no
topo
da
rvore,
na
raiz.
A
resposta
determina
que
ramo
seguir
a
partir
da
raiz.
Neste
caso,
se
a
resposta
for
sim,
o
ramo
esquerda
ser
seguido
(este
ramo
no
mostrado
no
diagrama).
Se
a
resposta
for
no,
ento
o
ramo
direita
ser
seguido,
que
leva
prxima
questo
"Est
extinto?".
Se
a
resposta
a
esta
questo
for
sim,
chega-se
a
uma
folha,
que
nos
fornece
uma
resposta:
a
ave
um
dodo.
Se
a
resposta
for
no,
passamos
prxima
questo.
O
processo
continua
at
que
o
algoritmo
atinja
uma
folha,
o
que
ocorrer
finalmente,
j
que
cada
passo
desce
um
nvel
na
rvore,
e
a
rvore
no
tem
um
n-
mero
infinito
de
nveis.
Este
tipo
de
rvore
chamado
de
rvore
de
deciso.