You are on page 1of 16

3

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

UMA BOA REPRESENTAO

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

Representao baseada em quadros um desenvolvimento de redes semnticas e nos permite expressar a


ideia de herana.
Como as redes semnticas, um sistema de quadros consiste em um conjunto de quadros (ou vrtices) que
so interligados por relaes. Cada quadro descreve uma instncia (um quadro instncia) ou uma classe (um
quadro classe).
Cada quadro tem um ou mais compartimentos aos quais so atribudos valores de compartimento. Em
vez de ter somente ligaes entre quadros, cada relacionamento expresso por um valor sendo colocado em
um compartimento:
Nome do Quadro Compartimento Valor do Compartimento

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

POR QUE QUADROS SO TEIS?

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

Deveramos estender nosso sistema de quadros com a seguinte informao adicional:


Cachorros caam gatos
Gatos caam ratos
Ao expressar esses fragmentos de informao, precisamos agora estabelecer explicitamente que Fido caa
Fang ou que Fang caa ratos. Neste caso, podemos herdar esta informao, j que Fang uma instncia da
classe Gatos e Fido uma instncia da classe Cachorros.
Deveramos tambm acrescentar as seguintes informaes adicionais:
Mamferos respiram
Cachorros so mamferos
Gatos so mamferos
Assim, criamos agora uma nova superclasse, mamferos, da qual cachorros e gatos so subclasses. Deste
modo no precisamos expressar explicitamente que gatos e cachorros respiram porque podemos herdar esta
informao. Da mesma forma, no precisamos expressar explicitamente que Fido e Fang respiram eles so
instncias das classes Cachorros e Gatos e, portanto, eles herdam da superclasse dessas classes. Agora vamos
acrescentar o seguinte fato:
Mamferos tm quatro pernas

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

*nmero de pernas quatro

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

COMPARTIMENTO COMO QUADROS

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

Compartimento Valor do Compartimento

Nmero de pernas valor mnimo

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

Nmero de pernas dois

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

Compartimento Valor do Compartimento

Queijo

Fedorento

Coisa embrulhada em papel laminado

No fedorento

Cheddar

um

Queijo

um

Coisa embrulhada em papel laminado

(Observao: O compartimento "" seria mais precisamente denominado tem caracterstica)


Aqui podemos ver que Cheddar um tipo de Queijo e que ele veio embrulhado em papel laminado. Ched-
dar deveria herdar sua caracterstica de cheiro da classe Queijo, mas ele tambm herda a falta de cheiro da
classe Coisa embrulhada em papel laminado. Neste caso, precisamos de um mecanismo para decidir qual ca-
racterstica herdar de cada superclasse. Um mtodo elementar simplesmente dizer que os conflitos sejam
resolvidos pela ordem em que eles aparecem. Ento se um fato for estabelecido por herana e, em seguida, ele
torna-se contraditrio por herana, o primeiro fato preservado por ter aparecido primeiro e a contradio
descartada.
Isto certamente bastante arbitrrio e seria bem melhor construir o sistema de quadros de modo a que
conflitos desta natureza no ocorressem. Herana mltipla uma caracterstica-chave da maioria das lingua-
gens de programao.

3.5.5

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

COMBINANDO QUADROS E REGRAS

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

PROGRAMAO ORIENTADA A OBJETO

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:

Class cachorro: animal{


late( );
}
Aqui criamos uma subclasse de animal chamada cachorro. Cachorro herda todas as propriedades de
animal e tambm possui uma nova funo prpria chamada late( ).
Em algumas linguagens de programao orientadas a objeto, possvel usar herana mltipla. Isto sig-
nifica que uma classe herda propriedades de mais de uma classe-pai. Embora C++ permita herana mltipla,
Java, mesmo tendo herdado muitas caractersticas de C++, no permite herana mltipla. Isto devido he-
rana mltipla ter sido vista pelos desenvolvedores de Java como uma ideia "no pura" criava estruturas
orientadas a objeto desnecessariamente complicadas. Alm disso, sempre possvel atingir os mesmos resul-
tados usando herana simples, da mesma forma que com herana mltipla.

3.7

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

EXEMPLO 1: MISSIONRIOS E CANIBAIS

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

O conjunto de nmeros esquerda representa o nmero de canibais, missionrios e canoa em uma


das margens do rio e o conjunto direita, o que est na outra margem.
Devido ao nmero que est em uma margem ser completamente dependente do nmero que est na
outra margem, podemos, na verdade, mostrar exatamente quantos de cada esto na margem de destino, signi-
ficando que o estado inicial representado por
0, 0, 0
e o estado objetivo
3, 3, 1
Um exemplo de estado que deve ser evitado
2, 1, 1
Aqui, so dois canibais, uma canoa e apenas um missionrio em uma das margens do rio. Este missio-
nrio provavelmente no vai durar muito.
Para ir de um estado a outro, devemos aplicar um operador. Os operadores que temos disponveis so
os seguintes:

1. Levar um canibal para a outra margem
2. Levar dois canibais para a outra margem
3. Levar um missionrio para a outra margem
4. Levar dois missionrios para a outra margem
5. Levar um canibal e um missionrio para a outra margem
Ento se aplicssemos o operador 5 ao estado representado por 1, 1, 0 resultaria no estado 2, 2, 1. Um
canibal, um missionrio e a canoa deslocaram-se agora para a outra margem. Aplicar o operador 3 a este esta-
do levaria a um estado ilegal: 2, 1, 0.
Consideramos regras desse tipo como restries, que limitam os possveis operadores aplicveis a ca-
da estado. Se projetarmos a nossa representao corretamente, as restries estaro embutidas, significando
que nunca precisaremos examinar estados ilegais.
Precisamos ter um teste que possa identificar se o estado objetivo foi atingido 3, 3, 1.
Consideraremos o custo do caminho escolhido como sendo o nmero de passos que foram dados ou o
nmero de vezes que um operador foi aplicado. Em alguns casos, como veremos mais tarde, desejvel encon-
trar uma soluo que minimize o custo.
Os trs primeiros nveis da rvore de busca para o problema dos missionrios e canibais so exibidos
na figura abaixo (os arcos esto marcados com o operador que foi aplicado).
Agora, estendendo essa rvore para incluir todos os caminhos possveis e os estados por eles atingi-
dos, pode-se encontrar uma soluo. Uma soluo para o problema seria representada como um caminho da
raiz at o alvo.
Esta rvore representa a presena de um ciclo no espao de estados. Observe que o uso de rvores de
busca para representar o espao de estados significa que a nossa representao nunca conter ciclos, mesmo
que se esteja seguindo um caminho cclico no espao de estados.
Aplicar o operador 1 (levando um canibal para a outra margem) como primeira ao e, em seguida,
aplic-lo novamente, retornar ao estado inicial. Este um modo perfeitamente vlido de tentar resolver o
problema, mas no muito eficiente.



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.

Ao escolher uma representao adequa-


da, somos capazes assim de melhorar a eficincia
do mtodo de busca. claro, em implementaes
reais, as coisas podem no ser assim to simples.
Para produzir a rvore de busca sem estados
repetidos, ser necessria uma memria que
possa armazenar os estados de modo a evitar
visit-los de novo.

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

O problema do Caixeiro-Viajante outro caso clssico da Inteligncia Artificial e NP-Completo, signi-


ficando que para grandes instncias do problema pode ser muito difcil para um programa computacional re-
solv-lo em um perodo de tempo razovel. Um problema definido como sendo da classe P se ele puder ser
solucionado em tempo polinomial. Isto significa que medida que o tamanho do problema aumenta, o tempo
que um computador determinstico levar para solucion-lo crescer como uma funo polinomial deste ta-
manho. Problemas que sejam NP podem ser solucionados no deterministicamente em tempo polinomial. Isto
significa que se uma possvel soluo do problema for apresentada ao computador, ele ser capaz de determi-
nar se ela uma soluo ou no em tempo polinomial. Os problemas NP mais difceis so chamados de NP-
Completos. Foi demonstrado por Stephen Cook que um grupo particular de problemas pode ser transformado
no problema da satisfatoriedade. Estes problemas so definidos como NP-Completos. Isto significa que se al-
gum puder solucionar o problema da satisfatoriedade (para o qual solues certamente existem) poder en-
to resolver qualquer problema NP-Completo. Tambm significa que problemas NP-Completos exigem grande
esforo computacional para serem resolvidos.
Eis a definio do problema do Caixeiro-Viajante:
Um caixeiro viajante deve visitar cada uma das cidades de um conjunto de cidades e retornar cidade
de partida. O objetivo do problema encontrar o caminho mais curto que permita que ele visite cada uma das
cidades.
Imaginemos que o caixeiro-viajante esteja percorrendo as seguintes cidades americanas:
A
B
C
D
E

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

EXEMPLO 3: AS TORRES DE HANI


Eis a definio do problema das Torres de Hani:

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

EXEMPLO 4: DESCREVER E COINCIDIR

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.

You might also like