Sunteți pe pagina 1din 78

Contedo

1 Introduo

2 Mtodos de Resoluo de Problemas

2.1

Sistemas de Produes . . . . . . . . . . . . . . . . . . . . . . . .

2.2

rvores ou Grafos

2.3

Mtodos Fracos . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.3.1

Pesquisa em Profundidade . . . . . . . . . . . . . . . . . .

2.3.2

Pesquisa em Largura . . . . . . . . . . . . . . . . . . . . .

2.3.3

Custo Uniforme . . . . . . . . . . . . . . . . . . . . . . . .

2.3.4

Aprofundamento Progressivo

2.4

Mtodos Informados

11

. . . . . . . . . . . . . . . . . . . . . . . . .

12

Hill Climbing . . . . . . . . . . . . . . . . . . . . . . . . .

13

2.4.2

Simulated Annealing . . . . . . . . . . . . . . . . . . . . .

14

2.4.3

Algoritmos Evolutivos . . . . . . . . . . . . . . . . . . . .

16

2.4.3.1

Representao dos indivduos . . . . . . . . . . .

17

2.4.3.2

Funo de adaptao

. . . . . . . . . . . . . . .

17

2.4.3.3

Seleco . . . . . . . . . . . . . . . . . . . . . . .

17

2.4.3.4

Emparelhamento . . . . . . . . . . . . . . . . . .

17

2.4.3.5

Crossing-Over

18

2.4.3.6

Mutao

2.4.3.7

Recursividade

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .

A* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

19
20

2.5.1

Minimax . . . . . . . . . . . . . . . . . . . . . . . . . . . .

20

2.5.2

Minimax com Alpha-Beta Pruning . . . . . . . . . . . . .

21

2.5.3

Negamax

. . . . . . . . . . . . . . . . . . . . . . . . . . .

Mtodo da Decomposio

2.7

Satisfao de Restries

23

. . . . . . . . . . . . . . . . . . . . . .

23

. . . . . . . . . . . . . . . . . . . . . . .

25

3 Representao do Conhecimento

3.2

18
18

Pesquisa Adversarial . . . . . . . . . . . . . . . . . . . . . . . . .

2.6

3.1

. . . . . . . . . . . . . . . .

2.4.1

2.4.4
2.5

. . . . . . . . . . . . . . . . . . . . . . . . . .

28

Lgica Formal . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

29

3.1.1

Lgica Proposicional . . . . . . . . . . . . . . . . . . . . .

29

3.1.2

Lgica de Primeira Ordem . . . . . . . . . . . . . . . . . .

30

Redes Associativas/Semnticas

. . . . . . . . . . . . . . . . . . .

30

CONTEDO

3.3

Produes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.4

Frames (Enquadramento)

3.5

Lgica Difusa e Raciocnio Incerto


3.5.1

. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .

31
31
32

Teoria dos Conjuntos Difusos . . . . . . . . . . . . . . . .

33

3.5.1.1

33

Desfusicao

. . . . . . . . . . . . . . . . . . .

3.5.2

Incerteza e Teorema de Bayes . . . . . . . . . . . . . . . .

35

3.5.3

Factores de Certeza

36

. . . . . . .

37

3.5.4

Redes de Bayes (Redes Bayesianas) . . . . . . . . . . . . .

40

3.5.5

Teoria de Dempster-Shaer

40

3.5.3.1

. . . . . . . . . . . . . . . . . . . . .

Combinao de Factores de Certeza

. . . . . . . . . . . . . . . . .

4 Sistemas Periciais

46

4.1

Motor de Inferncia . . . . . . . . . . . . . . . . . . . . . . . . . .

4.2

Explicabilidade . . . . . . . . . . . . . . . . . . . . . . . . . . . .

47

4.3

Aprendizagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

48

4.4

Meta-Conhecimento

. . . . . . . . . . . . . . . . . . . . . . . . .

48

4.5

Shells

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

49

5 Linguagem Natural

47

50

5.1

Representao . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

51

5.2

Processamento de Linguagem Natural

53

. . . . . . . . . . . . . . .

5.2.1

Anlise Lexical . . . . . . . . . . . . . . . . . . . . . . . .

53

5.2.2

Anlise Sintctica

. . . . . . . . . . . . . . . . . . . . . .

53

5.2.3

Anlise Semntica

. . . . . . . . . . . . . . . . . . . . . .

55

5.2.4

Gramticas de Caso

. . . . . . . . . . . . . . . . . . . . .

55

5.2.5

Gramticas Lgicas

. . . . . . . . . . . . . . . . . . . . .

56

5.2.6

Quanticao . . . . . . . . . . . . . . . . . . . . . . . . .

57

5.2.7

Transformaes Semnticas

. . . . . . . . . . . . . . . . .

58

5.2.7.1

Three Branched Quantiers . . . . . . . . . . . .

58

5.2.7.2

Denite Closed-World Clauses

58

. . . . . . . . . .

6 Aprendizagem Simblica Automtica


6.1

60

Taxonomia dos Mtodos de Aprendizagem Simblica Automtica

60

6.1.1

Classicao quanto Estratgia Usada . . . . . . . . . .

60

6.1.2

Classicao quanto Representao do Conhecimento


Adquirido . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.2

6.3

61

Aprendizagem Dedutiva/Indutiva por Mtodos Baseados em Explicaes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

62

6.2.1

Generalizao Baseada nas Explicaes (EBG)

62

6.2.2

EBG com Mltiplos Exemplos (mEBG)

. . . . . . . . . .

66

6.2.3

Induo Sobre Explicaes (IOE) . . . . . . . . . . . . . .

66

Aprendizagem Indutiva

. . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

67

6.3.1

ID3 (Algoritmo de Quinlan) . . . . . . . . . . . . . . . . .

67

6.3.2

C4.5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

70

6.3.2.1

71

Tratamento de Valores Contnuos

. . . . . . . .

CONTEDO

7 Redes Neuronais

72

7.1

Elemento de Processamento . . . . . . . . . . . . . . . . . . . . .

73

7.2

Estrutura das Ligaes . . . . . . . . . . . . . . . . . . . . . . . .

73

7.3

Lei de Aprendizagem . . . . . . . . . . . . . . . . . . . . . . . . .

74

7.3.1

74

7.3.2

Aprendizagem por Reforo

. . . . . . . . . . . . . . . . .

7.3.1.1

Aprendizagem de Hebb

7.3.1.2

Aprendizagem de Hopeld

. . . . . . . . . . . . . .

75

Aprendizagem Supervisionada . . . . . . . . . . . . . . . .

75

7.3.2.1

Perceptron

75

7.3.2.2

Retro-propagao do Gradiente (Backpropaga-

. . . . . . . . . . . . . . . . . . . . .

tion) . . . . . . . . . . . . . . . . . . . . . . . . .
7.3.3

75

. . . . . . . . . . . .

Aprendizagem no Supervisionada

. . . . . . . . . . . . .

75
77

7.3.3.1

Aprendizagem Competitiva . . . . . . . . . . . .

77

7.3.3.2

Mtodo de Kohonen . . . . . . . . . . . . . . . .

77

Captulo 1

Introduo
A Inteligncia Articial um campo de estudo que alia a Cincia da Computao, a Engenharia e a Psicologia Cognitiva, de forma a tentar criar agentes
capazes de ter comportamentos semelhantes a humanos em determinadas situaes.
A Inteligncia Articial o estudo de ideias que, implementadas
no computador, lhes permitem realizar os mesmos objectivos que
fazem as pessoas parecer inteligentes - Patrick Winston, ex-director
do laboratrio de IA do MIT.
A Inteligncia Articial organiza-se em 4 categorias, dependendo dos objectivos
do agente:

Pensar Humanamente;

Agir Humanamente;

Pensar Racionalmente;

Agir Racionalmente;

Captulo 2

Mtodos de Resoluo de
Problemas
Existem 3 tipos de mtodos de resoluo de problemas:
1. Mtodos Fracos (Pesquisa em profundidade, Pesquisa em Largura, Custo
Uniforme...)
2. Mtodos Informados (Hill Climbing, Simmulated Anealling, Algoritmos
Genticos/Evolutivos, A*...)
3. Pesquisa Adversarial (Minimax e suas variantes)
De notar que alguns algoritmos se encaixam em mais de um destes mtodos,
visto que o mtodo em si depende da forma como o algoritmo usado.

2.1

Sistemas de Produes

Os Sistemas de Produes so a arquitectura mais bsica dos Sistemas de Inteligncia Articial.


Segundo esta arquitectura, um problema descrito como um espao de estados e as transies entre estes e o conhecimento representado atravs de lgica
(predicados, lgica difusa...) e estruturas de informao.
Sendo assim, a soluo do problema pode ser obtida percorrendo o espao
de estados desde o estado inicial at o estado nal (armazenando o caminho
percorrido, visto este representar a soluo).
De notar que, dependendo do problema, pode ser importante associar a cada
estado uma funo de mrito/custo (por exemplo, num problema de pesquisa de
caminho mais curto, cada estado tem um determinado custo, que corresponde
distncia percorrida).

Tambm pode ser importante armazenar o caminho

percorrido desde o estado inicial at o estado nal.

Isto normalmente feito

colocando em cada estado um apontador para o seu predecessor mais promissor.

CAPTULO 2.

MTODOS DE RESOLUO DE PROBLEMAS

Exemplo
Consideremos o clssico problema dos missionrios e canibais:
Numa margem direita de um rio encontram-se 3 missionrios, 3 canibais e um
barco. Tanto os missionrios e os canibais desejam atravessar para a margem
esquerda, no entanto, o barco apenas consegue carregar 2 pessoas de cada vez, e
se numa margem estiverem mais canibais que missionrios, os canibais comem os
missionrios dessa margem. De notar que para o barco atravessar o rio precisa
de levar, pelo menos, uma pessoa

Representao de um estado: estado(Nmero de missionrios na margem


direita, Nmero de canibais na margem direita, Margem do barco)

Estado Inicial: estado(3,3,direita)

Estado Final: estado(0,0,esquerda)

Transies:

estado(M,C,direita) -> estado(M-X,C-Y,esquerda) se 0<=X<=2,


0<=Y<=2, 0<X+Y<=2, M-X>=C-Y, 3-(M-X)>=3-(C-Y).

estado(M,C,esquerda) -> estado(M+X,C+Y,direita) se 0<=X<=2,


0<=Y<=2, 0<X+Y<=2, M+X>=C+Y, 3-(M+X)>=3-(C+Y).

Os Sistemas de Produes so compostos por:

Memria de Trabalho: Coleco de factos verdadeiros;

Memria de Regras: Transies entre estados;

Motor de Inferncia;

Um Sistema de Produes considerado puro se possuir as seguintes caractersticas:

Acessibilidade Total;

Independncia Total;

Sistemtica ou Heurstica;

A existncia de uma sistemtica ou de uma heurstica permite que alguns problemas de complexidade exponencial possam ser simplicados em problemas de
complexidade polinomial.

2.2

rvores ou Grafos

Dependendo do problema, pode ser prefervel represent-lo como um grafo ou


uma rvore.
importante notar que:

CAPTULO 2.

MTODOS DE RESOLUO DE PROBLEMAS

Um grafo pode-se transformar numa rvore, aumentando o nmero de ns,


mas levando simplicao do algoritmo de pesquisa.

Uma rvore pode-se transformar num grafo, eventualmente reduzindo o


nmero de ns, mas levando a passos mais complexos (deteco de ciclos...)

2.3

Mtodos Fracos

Estes mtodos usam tcnicas genricas de pesquisa, sendo independentes do


problema.

Como tal, so tambm sensveis a uma exploso combinatria do

nmero de estados a pesquisar, sendo assim necessrio ter muito cuidado com
estes.
A pesquisa pode ser feita em ambas as direces, ou seja:

Por encadeamento directo;

Por encadeamento inverso;

A direco escolhida deve ter em conta vrios factores, como o factor de ramicao da rvore de pesquisa e a quantidade de estados nais. Para ter uma
ideia de qual o melhor processo pode ajudar pensar em semelhanas entre este
e o processo de raciocnio real.

2.3.1 Pesquisa em Profundidade


Este algoritmo, tambm conhecido como primeiro em profundidade, Depthrst search ou simplesmente DFS, o mtodo de pesquisa mais simples.
Comeando num n (estado inicial):
1. Se o n for soluo, das duas uma: ou termina-se o algoritmo, ou efectua-se
backtrack (depende da implementao... o objectivo encontrar a melhor
soluo ou apenas uma soluo?);
2. Se o n no tem sucessores, faz-se backtrack;
3. Escolhe-se um lho do n ainda no visitado (de notar que pode ser
necessrio vericar se o estado a que esse n corresponde no foi visitado
anteriormente);
4. Repete-se o algoritmo a partir desse lho;
5. Se houver ns por visitar, repete-se 3, se no, faz-se backtrack.
Pode-se ver um exemplo da ordem de pesquisa deste algoritmo na gura 2.1.

CAPTULO 2.

MTODOS DE RESOLUO DE PROBLEMAS

1
2
3

5
4

Figura 2.1: Exemplo da Pesquisa em Profundidade

Anlise do Algoritmo
Sendo:

r - factor de ramicao mdio;

p - profundidade mxima;

O algoritmo, para cada ramo, ter de o percorrer at sua profundidade mxima, logo, ter complexidade temporal

O(rp ).

Por outro lado, o algoritmo apenas precisa de armazenar o estado dos lhos
(visitado ou no visitado, de forma a poder evitar a visita a estados repetidos)
dos ns que fazem parte da soluo actual (caminho da raiz at ao n actual), ou
seja, a complexidade espacial ser apenas

O(r p)

(Caso o nosso algoritmo no

tivesse de se preocupar com estados repetidos, apenas seria necessrio armazenar


o caminho, ou seja

O(p),

embora este normalmente no seja o caso).

Este algoritmo no considerado completo, pois caso um caminho seja innitamente grande, este nunca encontra a soluo.
Tambm no ptimo, pois a primeira soluo que encontra pode no ser a
que necessite de menos passos.

2.3.2 Pesquisa em Largura


Neste algoritmo, ao contrrio da pesquisa em profundidade, dada prioridade aos ns mais prximos da raiz. O algoritmo funciona da seguinte forma
(comeando na raiz e comeando com uma la vazia):
1. Se o n for soluo, termina o algoritmo (soluo garantidamente ptima).
2. Se o n tiver sucessores, estes (apenas os no visitados, caso seja um grafo)
so adicionados ao m da la;
3. Retira-se o n que estiver no topo da la e repete-se o algoritmo para esse
n.

CAPTULO 2.

MTODOS DE RESOLUO DE PROBLEMAS

1
2

5
Figura 2.2: Exemplo da Pesquisa em Largura

Este algoritmo tambm conhecido como primeiro em largura, Breadth-rst


search ou simplesmente BFS,
Pode-se ver um exemplo da ordem de pesquisa deste algoritmo na gura 2.2.

Anlise do Algoritmo
Sendo:

r - factor de ramicao mdia;

p - profundidade da soluo;

Como este algoritmo apenas visita a rvore at profundidade da soluo, a


sua complexidade temporal

O(rp )

ou

O(rp+1 ),

dependendo do momento em

que se faz a vericao da soluo (antes ou depois de visitar o n).


De notar que, mesmo o nmero de ns visitados ser aproximadamente

Pp

i=0
apenas se considera o termo mais signicativo nas anlises de complexidade.

ri ,

Tal como a complexidade temporal, a complexidade espacial deste algoritmo


tambm

O(rp )

ou

O(rp+1 ),

visto que a nossa la vai ter de armazenar todos

os ns do nvel da soluo.
Este algoritmo ptimo (caso todas as arestas possuam o mesmo custo/valor),
no sentido que a primeira soluo encontrada necessariamente a melhor e, se
r for nito, tambm um algoritmo completo.

2.3.3 Custo Uniforme


Nalguns problemas, nem todas as aces possuem o mesmo custo.

s vezes

pode ser prefervel avanar 2 estados em vez de apenas 1, pois cada transio
pode possuir um peso ou um valor. Um exemplo comum o clculo do caminho
mais curto entre duas cidades (sendo cada cidade um estado e as estradas as
transies).
Para resolver estes problemas podemos usar o algoritmo de custo uniforme.
Este algoritmo , de certa forma, anlogo a uma pesquisa em largura, no entanto,
a la passa a ser uma la de prioridades em que a prioridade corresponde ao

CAPTULO 2.

10

MTODOS DE RESOLUO DE PROBLEMAS

1
1

2
1

4
Figura 2.3: Exemplo do Custo Uniforme

custo de efectuar essa aco. Caso todos os custos sejam iguais, este mtodo
igual a uma pesquisa em largura.
O algoritmo funciona da seguinte forma (considerando que comeamos na
raiz, com uma la de prioridades vazia e assumindo um problema em que o
objectivo ter o menor custo possvel):
1. Se o n for soluo, termina o algoritmo (soluo garantidamente ptima).
2. Se o n tiver sucessores, estes (apenas os no visitados, caso seja um grafo)
so adicionados la de prioridades com custo=custo actual+custo da
transio;
(a) Caso o n j se encontre na la, se o novo custo for menor, actualizase o seu valor, se no, no se faz nada.
3. Retira-se o n que estiver no topo da la e repete-se o algoritmo para esse
n.
Neste caso, a la de prioridade ter no topo o n com menor custo.

Caso a

inteno seja obter a soluo com o maior valor (e no com o menor custo), o
algoritmo semelhante, mas a la de prioridade ordenada ao contrrio.
Pode-se ver um exemplo da ordem de pesquisa deste algoritmo na gura 2.3.

Anlise do Algoritmo
Sendo

r - factor de ramicao mdio;

c - custo da soluo ptima;

l - limite inferior do custo;

De uma forma muito simples, este algoritmo funciona como uma pesquisa em
largura, s que em vez de a pesquisa ser efectuada at profundidade desejada,

CAPTULO 2.

11

MTODOS DE RESOLUO DE PROBLEMAS

efectuada at ao custo desejado, ou seja, com esta analogia, poderamos considerar a complexidade temporal deste algoritmo como
espacial como

O(r

c+1

O(rc+1 )

e a complexidade

(Em ambos os casos, importante ter em conta que o 1

adicionado ao expoente depende da implementao).


No entanto, h tambm que ter em conta que pode ser necessrio normalizar
o custo (uma rvore em que todas as arestas tenham peso 2 deve ter a mesma
complexidade que uma rvore em que todas as arestas tenham peso 1, o que no
se verica com esta formula), pelo que, na realidade, a complexidade espacial
c

O(r l +1 )

e a complexidade temporal tambm ser

O(r l +1 )

Regra geral, este algoritmo mais complexo que a pesquisa em largura.


Tal como na pesquisa em largura, este um algoritmo ptimo e completo
(caso r seja nito), no entanto, este ptimo mesmo considerando os custos de
cada aresta.

2.3.4 Aprofundamento Progressivo


Este algoritmo uma variante da pesquisa em profundidade, sendo uma combinao de pesquisas em profundidade com uma profundidade limite.
Ou seja, considerando p=1:
1. Efectua-se uma pesquisa em profundidade com profundidade mxima p;
2. Se a pesquisa encontrar uma soluo, o algoritmo termina (soluo ptima);
3. Incrementa-se p e repete-se o algoritmo;
Este algoritmo permite fazer algo muito interessante: caso cada soluo possua
um valor/custo associado, o passo 2 pode no retornar imediatamente (visto
que deixa de haver garantias que a soluo seja ptima), no entanto, passa a
anotar a melhor soluo encontrada at ao momento. Passando um limite de
tempo t, retorna-se a melhor soluo encontrada at ao momento (esta tcnica
tambm se pode implementar numa pesquisa em largura).

Anlise do Algoritmo
Sendo:

r - factor de ramicao mdio;

p - profundidade da soluo;

Este algoritmo tem um comportamento semelhante a vrias pesquisas em profundidade com profundidade mxima limitada (at essa profundidade ser igual
profundidade da soluo), logo as iteraes necessrias sero

1,

Pp

i=1

ri =

(r p+1 1)

r1

Pp
i2 +i
i=1 r i = r
i=1 i = r 2 .
No entanto, tendo em conta que os valores menos signicativos desaparecem

havendo um gasto de memria de

Pp

da anlise de complexidade, a complexidade temporal pode ser considerada


como

O(rp )

e a complexidade espacial

O(r p).

CAPTULO 2.

MTODOS DE RESOLUO DE PROBLEMAS

12

Ao contrrio da pesquisa em profundidade, este um algoritmo ptimo (mais


uma vez, se o custo de todos os ns for igual) e completo (para r nito).

2.4

Mtodos Informados

Ao contrrio dos mtodos fracos, os mtodos informados possuem alguma informao do problema, nomeadamente algum tipo de funo heurstica que permita dar um valor a um determinado estado. Com este valor, possvel escolher
aquela que se acredita ser a melhor opo, ignorando as outras.
de notar, no entanto, que a funo heurstica no deve ser uma funo
qualquer. Uma boa heurstica tem as seguintes propriedades:
1. A heurstica deve tentar ser mais simples que o clculo do valor real do
estado (que, por vezes, pode corresponder soluo do problema) sendo,
no entanto, o mais prxma do valor real possvel (quanto mais prxima
do valor real for a heurstica, mais depressa o mtodo converge para a
soluo).
2. A heurstica deve ser admissivel (optimista), ou seja:
(a) Caso se pretenda minimizar o custo, a funo heurstica sempre
menor ou igual ao custo real;
(b) Caso se pretenda maximizar o valor, a funo heurstica sempre
maior ou igual ao valor real;
3. No caso de pesquisa em grafos, a heurstica deve ser consistente (montona), ou seja:
(a) Para todos os sucessores N de um estado E, o custo estimado de
chegar de E ao objectivo nunca maior que a soma do custo de ir de
E at N e o custo estimado de ir de N at ao destino.
(b) Para todos os sucessores N de um estado E, o valor estimado de
chegar de E ao objectivo nunca menor que a soma do valor de ir de
E at N e o valor estimado de ir de N at ao destino.
Se uma heurstica for consistente, imediatamente admissivel.
Uma forma melhor de entender a consistncia pensar em distncias fsicas
entre dois pontos. Consideremos a nossa funo heurstica a distncia em linha
recta entre os 2 pontos (claramente, esta heurstica optimisita, pois a distncia
real no pode ser menor que a nossa funo).
Tendo em conta o exemplo da gura 2.4, a nossa heurstica completa se

h(1, F ) 1 + h(2, F ) h(1, F ) 2 + h(3, F ).

Mais uma vez, considerando a

heurstica (linhas a tracejado) a distncia em linha recta e o custo real (linhas


preenchidas) a distncia real (que pode incluir curvas), fcil entender o que
representa uma heurstica consistente.

CAPTULO 2.

MTODOS DE RESOLUO DE PROBLEMAS

13

1
2

h(1,F)

h(2,F)

h(3,F)

Figura 2.4: Exemplo de uma heurstica consistente

Uma forma simples de pensar numa heurstica para um problema retirar


regras ao problema.

Por exemplo, no problema dos missionrios e canibais a

nossa funo heirstica poderia ser quantas viagens so necessrias ignorando o


facto dos canibais comerem os missionrios. Esta, no entanto, uma m heurstica, visto simplicar demasiado o problema. Em problemas mais complexos em
que h bastantes regras este mtodo torna-se mais simples de aplicar.
Alguns mtodos que iremos ver a seguir (Hill Climbing, Simulated Annealing e Algoritmos Evolutivos) so chamados de meta-heursticos.

Isto

quer dizer que so algoritmos genricos que, tendo em conta uma heuristica,
vo tentando melhorando iterativamente uma soluo candidata.

2.4.1 Hill Climbing


Este algoritmo necessita j de algum conhecimento do problema, nomeadamente, de ter alguma forma de receber algum tipo de feedback para saber se um
movimento favorvel ou no (por exemplo, atravs de uma funo que diga o
valor previsto para cada n).
O algoritmo usa este conhecimento local para fazer a melhor escolha a determinado momento, ou seja, comeando no estado inicial (dependendo do problema, o estado inicial pode ser um estado aleatrio):
1. Se o n for soluo (ou se no tiver sucessores, sendo um mximo local),
termina o algoritmo (soluo localmente ptima, pode no ser a soluo
ideal).
2. Escolhe o estado sucessor mais prximo da soluo (variante Steepest Ascent) ou simplesmente um estado sucessor melhor (Hill Climbing bsico)
e repete o algoritmo para esse estado.
Este algoritmo apenas retorna a soluo ptima em funes bem comportadas,
ou seja, em que o nico mximo local o mximo global, caso contrrio, pode
car preso num mximo local, nunca convergindo para a soluo (uma forma
de tentar resolver isto executar o algoritmo a partir de vrios estados iniciais
escolhidos aleatriamente).

CAPTULO 2.

MTODOS DE RESOLUO DE PROBLEMAS

14

1
2

X
2

Soluo
ptima

Soluo
Escolhida

X
Figura 2.5: Exemplo de Hill Climbing

Pode-se ver um exemplo da ordem de pesquisa deste algoritmo na gura 2.5.

Anlise do Algoritmo
Sendo:

r - factor de ramicao mdio;

p - profundidade do mximo encontrado;

Tendo em conta que este algoritmo apenas tem de seguir o melhor caminho (ou
seja, fazer uma comparao com todos os sucessores dos ns de cada estado
do percurso), a sua complexidade temporal

O(r p).

J espacialmente, ape-

nas necessita de manter armazenado o estado dos sucessores actuais (para os


comparar), logo a sua complexidade espacial

O(r).

Isto muito bom, pois todos os mtodos de pesquisa apresentados anteriormente possuiam uma complexidade temporal de crescimento exponncial, sendo
que agora possumos um algoritmo com complexidade polinomial.
No entanto, como j foi dito antes, este algoritmo no ptimo, podendo
mesmo no chegar a encontrar a soluo ideal, visto tratar-se de um algoritmo
ganancioso. Pode, no entanto, tambm no ser completo, se considerarmos um
caso em que haja um caminho innito sempre com lhos de tamanho positivo.
Na gura 2.6 possvel ver um exemplo em que este algoritmo no nem ptimo
nem completo.

2.4.2 Simulated Annealing


Visto que o Hill Climbing pode car preso em mximos e mnimos locais com
bastante facilidade, necessrio arranjar uma maneira de desviarmos o nosso
algoritmo destes mximos.
O algoritmo chamado de Simulated Annealing faz exactamente isso.
Fazendo a analogia com a metalurgia, os tomos do metal inicialmente
encontram-se em todos em mnimos locais.

Ao aquecer o metal, o ferreiro

faz com que a temperatura aumente, fazendo com que os tomos se movam

CAPTULO 2.

MTODOS DE RESOLUO DE PROBLEMAS

15

1
2

Soluo
ptima

1/2

1/4

Soluo com valor < 4

Figura 2.6: Exemplo de Hill Climbing no ptimo e no completo

aleatoriamente e de forma intensa, saindo dos seus mnimos locais. Ao arrefecer


lentamente o metal, os tomos vo se movimentando de forma cada vez menos
aleatria, tendo a possibilidade de ir parar a novos mnimos locais que sejam
melhores que os mnimos iniciais.
Para continuar com esta analogia, vamos considerar um problema em que o
objectivo encontrar o mnimo global.
O algoritmo tem um parametro global T (Temperatura) que vai reduzindo
com o tempo. Quanto maior for a temperatura, maior a possbilidade de se
darem mudanas de estado aleatrias. Mantendo esta analogia, vamos considerar tambm que o valor de cada estado a sua energia (E), sendo que queremos
obter a menor energia possvel.
Sabendo isto, o algoritmo funciona da seguinte maneira, comeando no estado inicial (dependendo do problema, o estado inicial pode ser um estado
aleatrio):
1. Se se atingir a condio de paragem (encontrada uma soluo, encontrada
uma soluo sucientemente boa, timeout...), termina o algoritmo.
2. Escolhe-se aleatoriamente um sucessor do estado actual:
(a) Se o novo estado for melhor que o actual, esse ser o prximo estado.
(b) Caso contrrio, com probablilidade

e |

E
T

|,

esse estado o prximo

estado.
3. Actualiza-se o valor da temperatura (diminui-se a temperatura por um
determinado factor dependendo da implementao).
4. Repete-se o algoritmo para o prximo estado.

CAPTULO 2.

MTODOS DE RESOLUO DE PROBLEMAS

16

Anlise de complexidade
Sendo este um algoritmo probabilistico, no ser aqui apresentada a sua complexidade.
de notar no entanto que, mesmo sendo este algoritmo melhor que o Hill
Climbing, a sua natureza probabilstica faz com que tambm s seja ptimo e
completo em funes bem comportadas.

2.4.3 Algoritmos Evolutivos


Algoritmos evolutivos so baseados na ideia de evoluo e seleco natural.
Antes de mais, de notar que, ao contrrio do que o senso comum pode levar
a pensar, agoritmos genticos so apenas um subconjunto de algoritmos evolutivos, sendo que a diferena entre estes vai ser explicitada mais frente.
Como poder ser de imaginar, tal como na seleco natural, estes algoritmos
so lentos e podem levar a solues diceis de explicar (mesmo que funcionem).
Sendo assim, pode surgir a dvida: Quando devem ser estes algoritmos utilizados?.
Uma resposta comum a esta pergunta : Os algoritmos evolutivos nunca
so a melhor soluo, no entanto so sempre a segunda melhor soluo, ou seja,
estes algoritmos so teis quando:

O espao de pesquisa demasiado grande e complexo para se utilizar os


outros mtodos de pesquisa;

No necessrio uma soluo ptima, apenas uma boa soluo;

Temos capacidade computacional para implementar o algoritmo paralelamente (algoritmos genricos so fcilmente implementados de forma concorrente, s dividir os nossos indivduos por vrias mquinas/processadores).

Os algoritmos evolutivos podem ser, muito por alto, descritos da seguinte forma:
1. Populao Inicial;
2. Seleco;
3. Emparelhamento;
4. Crossing-Over;
5. Mutao;
6. A soluo sucientemente boa?
(a) Se sim, termina.
(b) Se no, volta a 2.
Em seguida, estas fases sero explicadas em detalhe, sendo que a gura 2.7pode
ajudar a uma melhor compreenso destas.

CAPTULO 2.

MTODOS DE RESOLUO DE PROBLEMAS

17

2.4.3.1 Representao dos indivduos


Antes de mais, para conseguir resolver problemas atravs de algoritmos evolutivos, necessrio generalizar os possveis estados e solues sob a forma de
indivduos. Estes podem ser denidos de vrias formas: Como uma string, um
nmero, um objecto...
Cada elemento da representao de um individuo passa a representar um
gene.
No caso especico de algoritmos genticos, a representao de cada uma
destas caracteristicas feita em binrio, passando cada 1 e 0 a ser chamado
de alelo. Nestes algoritmos, as variveis reais normalmente so convertidas de
virgula utuante para virgula xa. Para algumas caraceristicas que necessitem
de mais de 1 bit, pode tambm ser necessrio denir genes dominantes (00 Verde, 01 - Azul, 10 - Vermelho, 11 - ?) ou fazer algum cuidado especial nas
fases seguintes, para evitar estados invlidos.

2.4.3.2 Funo de adaptao


Para que estes algoritmos avancem, necessrio uma funo de adaptao que
receba um individuo e retorne um valor real que corresponda qualidade desse
individuo. Por exemplo, quanto maior este valor, mais apto o individuo (dependendo da implementao, pode ser mais apto o individuo com o valor mais
prximo de 0).
Quanto mais precisa for esta funo, mais rapidamente o algoritmo converge
para uma soluo.

2.4.3.3 Seleco
Esta a primeira fase do algoritmo, onde se escolhem quais os indivduos que
so mais aptos e vo fazer parte da prxima gerao (ou reproduzir-se, como
se ver no passo seguinte).
Existem vrias formas de seleco:

Seleco elitista:

Escolhe apenas os melhores indivduos e repete-os as

vezes necessrias;

Seleco probabilstica: sendo f a funo de adaptao, um individuo X

f (IX )
(N - nmero de indivduos)
f (Ii )

escolhido com probabilidade PN

i=0

importante que o nmero de indivduos se mantenha constante, logo se a


populao inicial possuir N indivduos, necessrio fazer N seleces (mesmo
que algumas sejam repetidas). Caso contrrio, haveria o risco de o algoritmo
parar por extino.

2.4.3.4 Emparelhamento
A seguir seleco necessrio denir que indivduos se emparelham e com
quem se emparelham.

CAPTULO 2.

MTODOS DE RESOLUO DE PROBLEMAS

18

Funo de Adaptao: N de 1s
Pc = 0.50
Pm = 0.1
15,4%
30,8%
23%
30,8%

10001000
10011010
01101000
10101010

10011010
10011010
01101000
10101010

01101010
11101000

10011010
10011010
01101010
11101000

Figura 2.7: Exemplo da aplicao de Algoritmos Evolutivos

Para isso, precisamos de uma probabilidade de cruzamento Pc (geralmente


alta).

Com esta probabilidade, dos indivduos selecionados, apenas alguns se

podero reproduzir.
Desses indivduos, necessrio escolher quem se emparelha com quem. Esta
escolha pode ser tanto aleatria como ordenada.
De notar que, por vezes, o nmero de indivduos pode ser impar, cando um
indivduo por emparelhar.

2.4.3.5 Crossing-Over
Estando o emparelhamento feito, para cada par, temos de efectuar o crossingover (cruzamento de genes ou alelos) de forma a fazer um novo individuo.
Para isso, precisamos de uma estratgia para denir o ponto de crossing-over
e, dependendo desta, de uma probabilidade de crossing-over Px.

Estratgia UX (uniform crossover): havendo N genes num individuo, gerase um nmero aleatrio X (de distribuio uniforme) entre 0 e N-1.

ponto de crossover ser entre o gene 0 e o gene X.

Estratgia HUX (half uniform crossover): com probabilidade Px, o gene


de um individuo trocado pelo gene do outro e vice-versa.

2.4.3.6 Mutao
Para alm do crossing-over, alguns indivduos podero sofrer mutaes. Como
tal, para cada gene de um individuo, este pode ser aleatoriamente alterado com
probabilidade Pm (normalmente reduzida).

2.4.3.7 Recursividade
Por m, na populao seleccionada, os lhos substituem os pais, obtendo-se
uma nova populao.
O algoritmo depois repetido at ser obtida uma soluo desejvel.

CAPTULO 2.

19

MTODOS DE RESOLUO DE PROBLEMAS

2.4.4 A*
O algoritmo A* uma mistura do Custo Uniforme com mtodos gananciosos,
no sentido em que:

Custo uniforme: Apenas tem em conta os custos at ao sucessor

C(S, S 0 ) =

c(S) + c(S ).

Mtodos gananciosos:

A*: O valor de cada sucessor dado por

Apenas tem em conta a heurstica do sucessor

H(S, S 0 ) = h(S 0 ).
f (S, S 0 ) = C(S, S 0 ) + H(S, S 0 ).

Ou seja, se todos os ns tiverem custo 0, o algoritmo passa a ser uma pesquisa


gananciosa e se a heurstica for constante, o algoritmo igual ao Custo Uniforme. Se todos os ns tiverem custo constante e a heurstica for constante, este
algoritmo passa a ser uma Pesquisa em Largura.
Esta algoritmo utiliza duas listas:

Lista aberta: Ns a expandir (semelhante s las da Pesquisa em Largura


e do Custo Uniforme). Deve ser uma la de prioridades ordenada por f;

Lista fechada: Ns j expandidos (pode ser representada implicitamente


como um estado do n)

O algoritmo funciona da seguinte forma (tendo uma lista aberta apenas com o
estado inicial e uma lista fechada vazia):
1. Se a lista aberta estiver vazia, o algoritmo termina;
2. Retira-se o primeiro estado da lista aberta e adiciona-se-o lista fechada
(ou marca-se como expandido);
3. Se o estado for o estado nal, o algoritmo retorna;
4. Caso contrrio, para cada sucessor que no esteja na lista fechada:

(S 0 ) = f (S, S 0 )
f 0 (S 0 ) (novo valor esti-

(a) Calcula-se o seu possvel novo valor estimando,f


(b) Se o sucessor no estiver na lista aberta ou
mado para S') for melhor que

f (S 0 ) (valor estimado para S' anterior),

o sucessor adicionado (ou actualizado) na lista aberta.


5. Repete-se o algoritmo.

Anlise do Algoritmo
A complexidade do algoritmo A* depende muito da heurstica, no entanto, para
todos os casos, este algoritmo bastante dispendioso na memria, visto que tem
de armazenar informao de todos os estados at chegar ao estado nal. Como
tal, em problemas de larga escala so usadas outras variantes deste algoritmo
como o IDA* (Baseado no Aprofundamento Progressivo, mas com custo mximo
em vez de profundidade limite).

CAPTULO 2.

2.5

20

MTODOS DE RESOLUO DE PROBLEMAS

Pesquisa Adversarial

Nos casos apresentados anteriormente, o nosso objectivo era apenas ter o melhor
valor possvel, sem qualquer entrave, no entanto, isso nem sempre se aplica
realidade.
Em casos de competio poderemos ter um adversrio que nos quer dicultar
a vida (ou, pelo menos, conseguir o melhor valor possvel para ele).

Nestes

casos os algoritmos apresentados anteriormente deixam de funcionar, pois a cada


passo o conjunto de estados possveis alterado de acordo com os interesses do
adversrio.
Vamos apenas estudar um tipo muito restrito de jogos, nomeadamente jogos
de soma-nula (se o jogador 1 vai para um estado mais favorvel, o jogador
2 vai para um estado mais desfavorvel), com informao perfeita (sabemos
tudo o que se passa no jogo) e determinsticos (uma aco no tem resultados
aleatrios).

2.5.1 Minimax
O algoritmo utilizado para resolver este problema o minimax (ou uma das
variantes deste).
Em teoria, este algoritmo funciona da seguinte forma: A cada um dos estados
nais associa-se um valor (por exemplo, 1=Vitria, 0=Empate, -1=Derrota),
que depois propagado para os estados predecessores tendo em conta as possveis jogadas do adversrio de forma a saber a que valor um estado nos pode
levar. Isto funciona muito bem para jogos curtos, como o jogo do galo.
No entanto, para jogos com um espao de estados muito maior (que o
caso mais comum), isto torna-se impossvel, sendo que necessria uma funo
heurstica para associar valores a estados intermdios, havendo assim uma profundidade limite.
Para simular o nosso comportamento e o do adversrio, este algoritmo associa um tipo cada nvel da rvore de pesquisa (que representa o turno de um
jogador):

minimizador ou maximizador, sendo que o valor de cada estado

escolhido tendo em conta esta funo, como pode ser visto na gura 2.8.
O funcionamento do algoritmo o seguinte (iniciando na raiz do n):
1. Se a profundidade limite tiver sido atingida (ou for um estado nal), o
valor do n calculado atravs da heurstica;
2. Se o nvel for maximizador, aplica-se o minimax a cada um dos seus sucessores e o valor do n passa a ser o maior valor dos sucessores;
3. Se o nvel for minimizador, aplica-se o minimax a cada um dos seus sucessores e o valor do n passa a ser o menor valor dos sucessores;

Anlise do Algoritmo
Sendo:

CAPTULO 2.

MTODOS DE RESOLUO DE PROBLEMAS

21

Jogador (Max):

MAX
Adversrio (Min):

-1
MIN

-1

Neste exemplo, o jogador apenas pode empatar, sendo que o jogo decorrer da
seguinte maneira:

O Jogador joga para a esquerda (Se jogar para a direita, arrisca-se a


perder);

Se o adversrio jogar para a esquerda perde (1), logo joga para a direita,
para garantir o empate.

Figura 2.8: Exemplo do Algoritmo MiniMax

r - factor de ramicao mdio;

l - profundidade limite

Sendo esta implementao do algoritmo, de certa maneira, anloga pesquisa


em profundidade, fcil de concluir que este possui complexidade temporal

O(rl )

e complexidade espacial

O(r l).

Isto no nada agradvel, especialmente se tivermos em conta que alguns


jogos como o xadrez tm um factor de ramicao mdia de cerca de 35. Com
uma profundidade limite de 6 jogadas (jogador humano relativamente aceitvel),
teramos

356 = 1.838.265.625

iteraes.

Como tal, este algoritmo tem de ser

optimizado.

2.5.2 Minimax com Alpha-Beta Pruning


Analisando de novo o exemplo da gura 2.8, possvel ver que um dos testes
poderia ter sido cortado, evitando clculos desnecessrios, como se pode ver na
gura 2.9:
O Alpha-Beta Pruning baseia-se nesta possibilidade de cortes, de forma a
reduzir o espao de pesquisa. Para isso, passa-se a ter uma varivel alpha, que
representa a melhor jogada que o jogador maximizante j assegurou, e uma
varivel beta, que representa a melhor jogada que o jogador minimizante j
assegurou.
Sendo assim, o nosso algoritmo passa a funcionar da seguinte forma (comeando
com alpha e beta da raiz a

respectivamente):

CAPTULO 2.

MTODOS DE RESOLUO DE PROBLEMAS

22

Jogador (Max):

MAX
Adversrio (Min):

-1
MIN

-1

Neste caso, o jogador v o que acontece se jogar para a esquerda, e conclui que
dessa jogada consegue tirar um empate.
Depois o jogador v o que acontece se jogar para a direita e, logo no primeiro
teste, conclui que esta jogada s pode levar a uma derrota (visto que, se o
adversrio consegue vencer, vai ignorar outras jogadas que sejam piores para
ele). Sendo assim como o jogador j sabe que consegue um empate, no precisa
de testar mais jogadas.
Figura 2.9: Exemplo do Algoritmo Minimax com cortes Alpha-Beta

1. Se a profundidade limite tiver sido atingida (ou for um estado nal), o


valor do n calculado atravs da heurstica;
2. Se o nvel for maximizador, enquanto alpha<beta e para cada sucessor:
(a) Aplica-se o minimax ao sucessor (passando-lhe o valor actual do alpha
e do beta);
(b) Actualiza-se o alpha deste n com o mximo entre o alpha anterior
e valor do sucessor;
(c) Se alpha<beta, o seu valor o melhor valor dos sucessores. Se no,
o valor alpha (corte beta).
3. Se o nvel for minimizador, enquanto alpha<beta e para cada sucessor:
(a) Aplica-se o minimax ao sucessor (passando-lhe o valor actual do alpha
e do beta);
(b) Actualiza-se o beta deste n com o mnimo entre o beta anterior e
valor do sucessor;
(c) Se alpha<beta, o seu valor o melhor valor dos sucessores. Se no,
o valor beta (corte alpha).

Anlise do Algoritmo
Sendo:

r - factor de ramicao mdio;

CAPTULO 2.

MTODOS DE RESOLUO DE PROBLEMAS

23

l - profundidade limite

Esta optimizao faz com que, em teoria, a complexidade temporal passe para
l

O(r 2 )

e complexidade espacial passe a ser

O( rl
2 ).

No entanto, h que ter em conta que isto depende muito da ordem com que
os estados forem pesquisados, sendo que, na realidade, a complexidade pode ser
muito maior ou muito menor que a prevista teoricamente.
Uma das optimizao que pode ser feita a este mtodo a chamada killer
heuristic, que consiste em ordenar (ou, pelo menos, tentar ordenar) os ns
da rvore de pesquisa por ordem crescente nos nveis maximizantes e ordem
decrescente nos nveis maximizantes.

2.5.3 Negamax
O algoritmo negamax muito semelhante ao minimax, tendo apenas a diferena
que, em vez de separar cada nvel entre maximizante e minimizante, trata todos
os nveis como maximizantes. No entanto, entre cada nvel, inverte o sinal dos
valores.
Isto s uma questo de implementao, para permitir que o algoritmo
funcione sem ter de saber em que nvel est, no tendo praticamente nenhuma
inuncia no desempenho.

2.6

Mtodo da Decomposio

Por vezes, os problemas que queremos estudar so demasiado complexos para


serem resolvidos por uma mquina s, por isso o ideal separ-los em problemas
mais simples, que possam ser resolvidos em paralelo por vrias mquinas.
Isto pode acontecer, por exemplo, devido a haver vrios estados iniciais possveis, ou por determinado n ter demasiados lhos e necessitarmos de dividir o
seu trabalho entre diferentes processadores.
Geralmente, isto feito da seguinte maneira:
1. Divide-se a base de dados num conjunto de elementos E.
2. Enquanto houver algum elemento Ei que no satisfaa a condio nal:
(a) Seleccionar um Ei que no satisfaa a condio nal.
(b) Retira-se o elemento Ei da lista E.
(c) Aplicam-se todas as aces possveis a Ei e armazena-se o resultado
na lista E'i
(d) Adiciona-se E'i Lista E.
Pode ser visto um exemplo deste mtodo na gura 2.10.
Este mtodo, no entanto, pode trazer alguns problemas em algoritmos como
o A*, em que pode ser necessrio alterar o valor dos ns (por haver um caminho
mais curto para eles do que se pensava), sendo necessrio utilizar uma variante

CAPTULO 2.

MTODOS DE RESOLUO DE PROBLEMAS

Considerando as seguinte transies possveis:


A -> BC
A -> C
B -> D
C -> X
Considerando que a condio de paragem "Ser igual a B"
Considerando que na base de dados inicial temos "A B C"

A
B

C
X

X
Estados da Base de Dados:
ABC
BCBX
BXB
BB
Figura 2.10: Exemplo do Mtodo da Decomposio

24

CAPTULO 2.

MTODOS DE RESOLUO DE PROBLEMAS

25

deste que permita passar novos valores de f para outros processos e revisitar
ns.

2.7

Satisfao de Restries

Alguns problemas so baseados num conjunto de restries, pelo que deixa de ser
suciente ver os estados como uma caixa negra, da qual apenas era associado
um valor graas a uma funo heurstica, passando agora a ser necessrio que
o nosso algoritmo de pesquisa consiga saber realmente o que representa cada
estado e os seus valores internos.

Os algoritmos de satisfao de restries

voltam a ser genricos, no sendo necessrio uma heurstica especca a cada


problema para funcionarem.
Num problema de satisfao de restries existem trs componentes:

Um conjunto de variveis V;

Um conjunto de domnios de variveis D;

Um conjunto de restries entre variveis R, sendo que cada restrio pode


ter uma ou mais variveis;

Estes problemas podem normalmente ser representados por um grafo, em que


cada varivel um n (com um domnio associado) e cada restrio uma aresta
entre essas variveis.
Uma das vantagens de usar estes algoritmos ao contrrio dos algoritmos
normais de pesquisa a capacidade de reduzir em muito a quantidade de estados
a pesquisar, visto que algumas transies se tornam imediatamente impossveis.
No preciso andar um caminho todo para saber se possvel ou no chegar a
uma soluo.

CAPTULO 2.

MTODOS DE RESOLUO DE PROBLEMAS

26

Exemplo
Problema da Cor dos Pases:
Temos 6 pases: Portugal (POR), Espanha (ESP), Frana (FRA), Alemanha
(DEU), Suia(CHE) e Itlia (ITA). Todos os pases precisam de ser coloridos
num mapa, sendo que cada pas tem de ser colorido de uma cor diferente dos
seus vizinhos. Para alm disso, cada pas s pode ser colorido com as cores da
sua bandeira.
As fronteiras so as seguintes:

Devido quantidade de emigrantes/imigrantes entre Frana e Portugal, ambos


os pases devero partilhar a mesma cor.
Por outro lado, a Alemanha deve ser pintada de preto, a pedido do criador do
mapa, por ser uma cor nica em relao s outras bandeiras.
Assim sendo, o problema pode ser descrito da seguinte forma:

V = {P OR, ESP, F RA, DEU, CHE, IT A}


D = {{R, Y, G} , {R, Y } , {R, Y, B} , {R, Y, Blk} , {R, W } , {G, W, R}}
C = {P OR = F RA, GER = Blk, P OR 6= ESP, ESP 6= F RA...}
Neste caso, para ajudar leitura, as restries foram simplicadas. A representao formal adequada para
onde

P OR 6= ESP

P OR 6= ESP

h(P OR, ESP ) , P OR 6= ESP i,


{(R, Y ) , (Y, R) , (G, R) , (G, Y )}.

seria

pode ser enumerado como

Existem vrios tipos de restries, nomeadamente:

Restries unrias:

Estas restries apenas incluem uma varivel (por

exemplo, a Alemanha quer a cor preta);

Restries binrias: Estas restries relacionam duas variveis (por exemplo, Portugal quer a mesma cor que a Frana);

Restrio global:

Estas restries relacionam um nmero arbitrrio de

variveis (por exemplo, num jogo de sudoku, todos os elementos de uma

CAPTULO 2.

MTODOS DE RESOLUO DE PROBLEMAS

linha so diferentes).

27

De notar que, ao contrrio do que o nome pode

levar a pensar, global no signica que tenha de ter em conta todas as


variveis.
Quando o domnio de um n respeita todas as suas restries unrias, trata-se
de um n consistente (node-consistent).
Quando o domnio de um n respeita todas as suas restries binrias (ou
seja, se para cada aresta h pelo menos uma combinao de variveis possvel),
diz-se que o n arc-consistent.
Existem mais dois tipos de consistncia (path-consistent e k-consistent)
que permitem simplicar ainda mais o grafo, mas podem ser demasiado pesadas
para ser utilizadas.
Os problemas de restries simblicas (como o problema da colorao de
pases) so resolvidos da seguinte forma (algoritmo muito simplicado):
1. Tornam-se todas as variveis node-consistent (simplesmente retirar valores do domnio que no sejam compatveis com restries unrias);
2. Tornam-se todas as variveis arc-consistent (algoritmo AC3, no apresentado aqui);
3. Selecciona-se um n no expandido do grafo de pesquisa (a forma como o
n escolhido depende de uma heurstica... Pode ser o com mais restries
por resolver, pode ser o com menos...);
4. Caso o domnio do n seja vazio, faz-se backtrack;
5. Associa-se um dos valores possveis a esse n e actualiza-se o domnio
possvel dos seus vizinhos;
6. Repete-se o passo 3 at todos os ns terem um valor;

Captulo 3

Representao do
Conhecimento
A Inteligncia Articial encontra-se directamente relacionada tanto com a Engenharia do Conhecimento como com as Cincias da Cognio. Para obtermos
agentes inteligentes necessrio compreendermos o que o conhecimento, como
o podemos representar e como possvel manipula-lo.
O deso, neste caso, encontra-se em arranjar uma representao simblica
para os conhecimentos do mundo real. Existem vrios tipos de representao
possveis:

Exacta (Denida por processos de inferncia e lgica clssica);

Temporria (Denida de forma no montona. O que verdade hoje pode


no o ser amanh);

Incerta (Denida de forma probabilstica. Permite denir conceitos difusos, como frio ou tarde);

Incompleta (Denida com incertezas. Permite analisar casos em que nem


tudo conhecido);

Tendo em conta estas representaes possveis, o conhecimento pode ser representado de duas formas:

Declarativa: H uma coleco esttica de factos e procedimentos genricos


para os manipular;

Procedimental:

Todo o conhecimento est codicado de forma opera-

cional;
Tendo o conhecimento bem representado, nos possvel criar agentes baseados
em conhecimento, que possuem uma base de conhecimentos (Knowledge Base)
e agem conforme os dados que faam parte dela.

28

CAPTULO 3.

REPRESENTAO DO CONHECIMENTO

29

Assim sendo, um sistema de conhecimento pode ser descrito como uma associao entre Objectos, Atributos e Valores. importante ter em conta que,
dependendo do nosso sistema, alguns atributos de um objecto podem possuir
vrios valores.

3.1

Lgica Formal

Uma das formas de representar o conhecimento com recurso lgica formal,


criando agentes lgicos. O conhecimento destes agentes pode ser denido tanto
por lgica proposicional como por lgica de primeira ordem (ou, em casos mais
raros, lgica de ordem superior).
Esta representao permite que um agente, a partir de um conjunto de factos, consiga inferir mais factos, aumentando a sua base de conhecimentos de
forma autnoma (de notar que este aumento no um verdadeiro aumento
de conhecimento, mas apenas corresponde descoberta de conhecimento no
explicito).

3.1.1 Lgica Proposicional


A lgica proposicional funciona da seguinte forma:

A base de conhecimento possui frases atmicas (proposies);

Cada proposio s pode ter um valor: Verdadeiro ou Falso;

Uma ou mais proposies podem criar uma nova proposio (frase complexa) atravs de operadores lgicos;

Os principais operadores lgicos so os seguintes:

- Negao de a

por vezes representado como

ab


ab

a;

a+b

ab

ou

- ou a ou b (ou exclusivo)

ab

por vezes representado como

a 6= b;

- a e b
por vezes representado como

ab

ou

- a ou b (ou inclusivo)
por vezes representado como




a b, a b

- a implica b;

por vezes representado como

a b;

ou

a&b;

CAPTULO 3.

ab

REPRESENTAO DO CONHECIMENTO

30

- a igual a b;

por vezes representado como

a b, a = b

ou

a b;

Com estes operadores possvel inferir novos factos a partir da base de conhecimentos.

3.1.2 Lgica de Primeira Ordem


Infelizmente, em problemas mais complexos, a lgica proposicional no o suciente para representar tudo, pois no tem nenhuma forma de representar vrios
objectos sem ter de criar uma proposio especica para cada um (devidamente
acompanhada com novas regras).
Como tal, necessrio utilizar uma lgica mais poderosa.

A lgica de

primeira ordem permite a existncia de relaes, que por sua vez levam existncia de funes e objectos.

Uma relao representada sob a forma de

relaca
o(predicado1, predicado2...).

Isto tambm faz com que apaream dois

novos operadores:

x R(x)

- Existe um x para o qual R(x) verdadeiro;

x R(x)

- Para todos os valores de x da base de conhecimentos, R(x)

verdadeiro (normalmente usado em expresses do tipo

x R(x) S(x),

ou seja, para todos os valores de x em que R(x) verdadeiro, S(x) tambm


verdadeiro );
Com isto, possvel ter armaes genricas na base de dados, como Todas
as pessoas altas, com um peso inferior a 60Kg, so magras, o que no seria
possvel apenas com lgica proposicional.

3.2

Redes Associativas/Semnticas

Por vezes o nosso problema pode ter diversos termos que esto associados entre si por diferentes tipos de relaes.

Nestes casos, podemos utilizar redes

associativas.
Estas redes no so mais que um grafo dirigido em que cada n representa
um termo ou objecto e cada aresta (devidamente etiquetada) representa a relao entre eles. No entanto, mesmo sendo um modelo to simples, estas redes
permitem representar modelos bastante complexos, representando categorias e
objectos de uma forma muito prxima do conhecimento natural, como pode ser
visto na gura 3.1.
Para alm de ser uma representao poderosa, tambm mais perceptvel
que a lgica de primeira ordem.
Por m, tambm uma representao bastante semelhante ao paradigma
de programao orientada a objectos, o que pode facilitar a sua implementao
nalguns casos.

CAPTULO 3.

REPRESENTAO DO CONHECIMENTO

31

Avio
um

Boeing 777
Produtor

Modelo

Boeing
Concorre com

um

Embraer

um

Produtor
de Avies
Concorre com

777
Concorre com

um

Airbus

Figura 3.1: Exemplo de uma rede associativa

3.3

Produes

Para alguns problemas no possumos um conjunto de conceitos, mas sim um


conjunto de regras que nos permitem chegar a concluses, por exemplo, para
efectuar um diagnstico. A este tipo de representaes chamamos de Regras
de Produes.
Neste tipo de sistemas, o conhecimento representado sobre a forma de
regras do tipo Se X, ento Y, seno Z, sendo X uma condio booleana e Y e
Z concluses a tirar.
Estes sistemas, embora agora possam parecer bastante redutores, vo se
provar muito teis mais frente quando forem abordados mtodos de aprendizagem que permitem gerar regras de forma automtica (nomeadamente, o
mtodo ID3 e o mtodo C4.5).

3.4

Frames (Enquadramento)

Muitas vezes o tipo de dados que queremos representar j se encontra bem


denido: Sabemos os atributos de cada objecto e o domnio destes, sendo que
a nica coisa que nos interessa enquadrar os objectos nestes quadros bem
denidos.
Os problemas de enquadramento, tal como as redes associativas, possuem

CAPTULO 3.

32

REPRESENTAO DO CONHECIMENTO

algumas parecenas com o paradigma orientado a objectos, no sentido em que


cada objecto se encaixa num frame (algo anlogo a uma classe).

Para alm

disso, embora de uma forma talvez no to intuitiva como nas redes associativas,
este mtodo tambm possui herana (por exemplo, um frame pode possuir um
atributo pai, cujo valor seja um objecto do qual so herdadas propriedades).

Exemplo
Supondo o seguinte frame para representar um animal:

Animal:






nvel (D={Espcie, Subespcie, Raa});


pai (D=Animal);
nome (D=String);
patas (D=Inteiro)

A nossa base de conhecimentos pode conter:

Lobo = {Espcie,NULL,Canis Lupus,4}

Co = {Subespcie,Lobo,Canis Lupus Familiaris,NULL}

Boxer = {Raa,Co,Boxer,NULL}

Ao implementar uma representao deste tipo, a aplicao deve ser capaz de


responder a perguntas do tipo:Que animais possuem 4 patas?.

3.5

Lgica Difusa e Raciocnio Incerto

No mundo real, nenhuma fonte de informao 100% segura, h sempre um


factor de incerteza associado a cada informao, mesmo que este seja innitesimalmente pequeno.

Nesses casos, podemos considerar que a informao que

temos de conana, mas e nos outros casos?

Como podemos dar respostas

com um determinado factor de certeza associado?


Isto no se aplica s s respostas, mas tambm ao conhecimento.

Como

posso representar um conhecimento incerto como frio, tarde ou alto? E se


eu no tiver a certeza absoluta de um conhecimento que estou a transmitir
mquina?
Consideremos tambm o seguinte exemplo, um dentista est a fazer um
diagnstico, e ele sabe que:

Dor de dentes Cavidades


No entanto, esta regra por si s est errada, pois uma dor de dentes pode
estar associada a vrios problemas:

Dor de dentes Cavidades Gengivas Inf lamadas Abcesso...


Como tal, para termos uma regra de diagnstico verdadeira, necessitaramos
de uma lista praticamente ilimitada de problemas.

CAPTULO 3.

REPRESENTAO DO CONHECIMENTO

33

No entanto, podemos fazer o contrrio, e tentar tornar o nosso diagnstico


(efeito->causa) num modelo causal (causa->efeito):

Cavidades Dor de dentes


Mas esta representao tambm no est correcta, pois nem todas as cavidades causam dor de dentes.
Como pode ser visto, a lgica proposicional no nos permite resolver de
forma eciente problemas de diagnstico. Ento, qual a soluo?
A soluo encontra-se em modelos de lgica difusa.

3.5.1 Teoria dos Conjuntos Difusos


Para melhor representar este tipo de informao recorremos teoria dos conjuntos difusos (fuzzy sets). Segundo esta teoria, cada varivel possui um grau
de pertena a um conjunto, podendo no pertencer completamente a este (pode
ser 80% verdadeira e 20% falsa). Assim, possvel saber a probabilidade de a
nossa soluo ser verdadeira.
Por exemplo, o nosso conjunto de pertena pode ser:

alto(P essoa) =

altura(P essoa)1.65m
1.85m1.65m

altura(P essoa) > 1.85m


1.65m altura(P essoa) 1.85m
altura(P essoa) < 1.65m

Ou seja, temos aqui uma funo muito simples para denir se uma pessoa
ou no alta (poderamos ter, no entanto, uma funo com um crescimento
muito mais suave ou que dependesse de outros aspectos, como a idade).
H que ter ateno que os operadores usados na lgica proposicional necessitam de ser adaptados para a lgica difusa:

a=1a
a b = min(a, b)
a b = max(a, b)

(Os restantes operadores podem ser deduzidos a partir destes)

De notar que estes operadores continuam a funcionar com valores binrios, tornando a lgica difusa numa generalizao da lgica proposicional.

3.5.1.1 Desfusicao
Tendo a nossa informao devidamente agrupada em conjuntos difusos, necessrio
desfusic-la para no perdermos informao.
Supondo que temos um visor (a 1.70m do cho) que se deve ajustar altura
de um utilizador, com os seguintes conjuntos de pertena:

alto(P essoa) =

altura(P essoa)1.65m
1.85m1.65m

altura(P essoa) > 1.85m


1.65m altura(P essoa) 1.85m
altura(P essoa) < 1.65m

CAPTULO 3.

34

REPRESENTAO DO CONHECIMENTO

m
edio(P essoa) =

1.80altura(P essoa)
1.80m1.70m

altura(P essoa) > 1.80m


1.70m altura(P essoa) 1.80m
1.60m altura(P essoa) 1.70m
altura(P essoa) < 1.60m

altura(P essoa)1.60m

1.70m1.60m

altura(P essoa) > 1.75m


0
essoa)
baixo(P essoa) = 1.75maltura(P
1.55m altura(P essoa) 1.75m
1.75m1.55m

1
altura(P essoa) < 1.55m
E as seguintes regras:

Se alto

Se mdio

Se baixo

sobe visor 15cm;

mantm visor;
desce o visor 15cm;

Se apenas considerarmos a que conjunto a pertena maior, acabamos por


perder informao valiosa:

Imagine-se uma pessoa com 1.76m, vai ser baixo

com um grau de pertena de 0, mdio com um grau de pertena de 0.4 e alto


com um grau de pertena de 0.55, sendo que o visor vai subir 15 cm, sendo que
car demasiado alto para o utilizador.
A forma mais simples de desfusicao atribuir um peso a cada deciso. No
exemplo anterior, o visor passaria a subir

15 0 + 0 0.4 + 15 0.55 = 8.25cm,

passando a cerca de 1.78m, o que muito mais agradvel.


Outro mtodo mais correcto de fazer a desfusicao (mas mais complexo)
encontrar o centroide (ou centro de massa, fazendo uma analogia com a fsica)
no grco dos nossos conjuntos difusos (ver gura 3.2). Isso feito da seguinte
forma:

Divide-se a rea de pertena em reas elementares (tringulos e rectngulos);

Nota: a rea de pertena de um conjunto difuso a rea da funo


com o topo limitado pelo grau de pertena a esse conjunto.

A rea de pertena total a unio da rea de pertena de todos os


conjuntos difusos.

Para cada uma destas reas i, calcular a sua rea (Ai) e o seu centro
({Xi,Yi});

Calcula-se a rea total:

O centroide dado por

Utilizando a coordenada Xc, e tendo em conta a sua distncia ao pico

P
At = i Ai
n
P
XiAi
Xc = i At
,Y c =

Y iAi
At

de cada um dos conjuntos em questo (mximo do conjunto, onde a nossa


regra supostamente se aplica melhor), calcula-se a deciso a tomar.

CAPTULO 3.

REPRESENTAO DO CONHECIMENTO

35

0
1m

2.5m
Figura 3.2: Exemplo de reas de pertena de conjuntos difusos

Infelizmente, muitas vezes as funes no so to simples como as aqui apresentadas (por exemplo, o grau de pertena a um conjunto pode seguir uma
distribuio normal), sendo que passa a ser necessrio, para esses conjuntos,
calcular o centroide atravs de integrao.

Felizmente, regra geral, podemos

considerar que os nossas funes de pertena so todas funes continuas do tipo


f(x) (ou, pelo menos, possvel dividi-las em funes com estas propriedades),
pelo que o calculo do centroide simplesmente:

n
C = Xc =

1
A

x1
x0

x f (x) dx, Y c =

1
A

x1
x0

f (x)2
2

o
x
dx com A = x01 f (x) dx.

de notar, no entanto, que estas frmulas continuam a ter de ser adaptadas


tendo em conta o grau de pertena a cada conjunto.
Por outro lado, h que ter em conta que, se o clculo do integral for efectuado com recurso a mtodos numricos, pode ser prefervel simplesmente tentar
dividir tudo em reas elementares.

3.5.2 Incerteza e Teorema de Bayes


Para podermos entender a teoria do raciocnio incerto necessrio saber como
calcular uma determinada incerteza.
A melhor forma de quanticar uma incerteza atravs da teoria de probabilidades, nomeadamente com recurso ao teorema de Bayes, que nos permite
calcular a probabilidade de X sabendo Y.
O teorema o seguinte:

P (XY )
P (Y )
A partir deste teorema, possvel fazer algo muito til: Sabendo a proba-

P (X|Y ) =

bilidade efeito->causa, calcular a probabilidade causa->efeito!


Isto vem de:

P (C E) = P (C|E) P (E)
P (E C) = P (E|C) P (C)
P (C E) = P (E C)
P (E|C)P (C)
P (C|E)P (E)
e P (E|C) =
(caso haja mais evidenP (E)
P (C)
P (Y |X,e)P (X|e)
cias, torna-se P (X|Y, e) =
)
P (Y |e)
Sendo assim, basta-nos ter uma probabilidade condicional e duas probabili-

logo

P (C|E) =

dades priori para ser possvel resolver problemas no sentido de diagnstico ou


no sentido causal.

CAPTULO 3.

REPRESENTAO DO CONHECIMENTO

36

Porque que isto importante? Voltando ao exemplo do dentista, muito


mais fcil calcular a probabilidade de uma cavidade causar dor de dentes (sentido causal) do que de uma dor de dentes ser causada por uma cavidade (sentido
de diagnstico), no entanto, a probabilidade que interessa ao dentista exactamente a de diagnstico (ele sabe o que o paciente sente, quer saber qual a
causa).
No entanto, isto ainda no resolve todos os nossos problemas, voltando ao
caso do dentista, ele precisa de calcular:

P (Dor de dentes|Cavidade)P (Cavidade)


P (Dor de dentes)
O dentista pode saber a probabilidade de um paciente ter uma cavidade dos

P (Cavidade|Dor de dentes) =

dentes, tendo em conta a frequncia com que esse problema ocorre, mas e a
probabilidade de ter dor de dentes?
Outra forma de realizar este calculo a seguinte, tendo em conta que a soma
de uma probabilidade com o seu inverso sempre 1, podemos usar um factor
de normalizao:

P (Cavidade|Dor de dentes) = P (Dor de dentes|Cavidade)P (Cavidade)


P (Cavidade|Dor de dentes) = P (Dor de dentes|Cavidade)P (Cavidade)
onde o factor de normalizao dado por:

1
P (Dor de dentes|Cavidade)P (Cavidade)+P (Dor de dentes|Cavidade)P (Cavidade)
Embora isto possa funcionar bem para casos pequenos como estes, este

mtodo no escala, sendo que, para problemas com vrios factos, necessrio
ter em conta a independncia destes.
Na teoria de probabilidades, A independente de B se e s se

P (A) = P (A|B)

P (B) = P (B|A).
Tendo isto em conta, somos agora capazes de compreender os principais
mtodos de lgica difusa.

3.5.3 Factores de Certeza


O modelo de factores de certeza um modelo relativamente informal de quanticar o grau de certeza numa soluo, dado um conjunto de evidncias. Consideremos ento o seguinte:
Dado um conjunto de evidncias E, o nosso factor de certeza de um acontecimento A ocorrer ser

1 F C(A, E) 1,

sendo -1 a descrena total, 1 a

crena total e 0 o desconhecimento.


Este factor calculado tendo em conta a medida de crena MB e a medida

0 M B(A, E) 1 e 0 M D(A, E) 1, no
M B(A, E) > 0 M D(A, E) = 0 e M D(A, E) > 0 M B(A, E) = 0,

de descrena MD, sendo que


entanto

sendo que, na realidade, s temos de considerar um dos factores de cada vez.


tambm importante considerar MB' e MD', que representam o factor de
crena (ou descrena) considerando que as evidncias so verdadeiras (a utilidade disto ser vista mais frente).
Sendo assim, o factor de certeza calculado atravs da frmula

M B(A, E) M D(A, E).

F C(A, E) =

CAPTULO 3.

REPRESENTAO DO CONHECIMENTO

37

Para este modelo funcionar correctamente, todas as regras necessitam de


ser ou puramente de diagnstico ou puramente causais, tornando-se assim num
modelo equivalente a uma rede Bayesiana. Na prtica, isto muito complicado
de conseguir, sendo que pode levar a problemas que sero vistos mais frente.

3.5.3.1 Combinao de Factores de Certeza


As funes de combinao de factores de certeza possuem as seguintes propriedades:

So associativas e comutativas (independentes da ordem a que as evidncias chegam);

Um acumular de evidncias deve levar a um aumento mdio da crena;

Um encadeamento de raciocnios com incerteza deve levar ao aumento da


incerteza do resultado nal.

Existem 3 formas de combinar factores de certeza:

Vrias regras que levam mesma concluso (A

C, B C ):

 M B(C, A B) = M B(C, A) + M B(C, B) (1 M B(C, A))


 M D(C, A B) = M D(C, A) + M D(C, B) (1 M D(C, A))

H uma crena numa coleco de factos em conjunto:

 M B(A B, C) = min(M B(A, C), M B(B, C))

M B(A B, C) =

M D(A B, C) =

 M B(C, B) = M B 0 (C, B) M B(B, A)


 M B 0 (C, B), como dito anteriormente, reprezenta

o factor de crena

max(M B(A, C), M B(B, C))

 M D(A B, C) = min(M D(A, C), M D(B, C))


max(M D(A, C), M D(B, C))

H um encadeamento de regras (A

B C ):

em C supondo que B verdadeiro

A aplicao mais comum desta regra , no entanto:M B(A, B)

M B 0 (A, B) M B(B),

considerando que h uma incerteza associada

a B

Exemplicando, se nos for dito que Se amanh chover, o cho vai
estar molhado com FC=0.9 e sabe-se que amanh vai chover com

M B(M olhado, Chover) = M B 0 (M olhado, Chover)


M B(Chover) = 0.9 0.3 = 0.27.

FC=0.3, ento:

CAPTULO 3.

REPRESENTAO DO CONHECIMENTO

38

Exemplo
Um fabricante de automveis deseja criar um sistema de diagnstico automtico,
sendo que, recebendo um input de um utilizador (com um determinado factor
de certeza associado), retorna qual o problema mais provvel.
As regras so as seguintes:

Motor Funciona

Luzes Fracas

Motor Funciona

Bateria Fraca

Bateria Fraca

Bateria

Bateria

Cheiro a Gasolina

M (FC=1.0)

M (FC=0.8)

Motor

Encharcado (FC=0.8)

(Obviamente que um sistema real seria muito mais complexo, no entanto, precisamos de um caso que possa ser rapidamente analisado)
O utilizador sabe que o motor funciona (FC=0.9), no sabe bem o estado da
bateria, mas presume que pode estar fraca (FC=0.2), as luzes parecem estar mais
fracas que o normal (FC=0.5) e h um leve cheiro a gasolina no ar (FC=0.6),
com que certeza o problema a bateria estar m e o motor estar encharcado?
Para simplicao, vamos considerar as variveis:

MF - Motor Funciona

BF - Bateria Fraca

BM - Bateria M

LF - Luzes Fracas

CG - Cheiro a Gasolina

ME - Motor Encharcado

Comeando por denir o problema:


1.

M B(M F ) = 0.9

2.

M B(BF ) = 0.2

3.

M B(LF ) = 0.5

4.

M B(CG) = 0.6

5.

M B 0 (BM, M F BF ) = 1.0

6.

M B 0 (BM, LF BF ) = 0.8

7.

M B 0 (M E, M F CG) = 0.8

CAPTULO 3.

39

REPRESENTAO DO CONHECIMENTO

Continuao do Exemplo
Tentando ento resolver o problema com as regras indicadas acima:
1.

M B(M F BF ) = min(M B(M F ), M B(BF )) = 0.2

2.

M B(LF BF ) = min(M B(LF ), M B(BF )) = 0.2

3.

M B(M F CG) = min(M B(M F ), M B(CG)) = 0.6

4.

M B(BM, M F BF ) = M B 0 (BM, M F BF ) M B(M F BF ) = 0.2

5.

M B(BM, LF BF ) = M B 0 (BM, LF BF )M B(LF BF ) = 0.80.2 =


0.16

6.

M B(BM, M F LF BF ) = max(M B(BM, M F BF ), M B(BM, M F


LF )) = 0.2
(a) Nota:
(dado

Supondo que tinhamos 2 diagnsticos intermdios BM1


pelo

passo

4)

BM2,

(dado

pelo

passo

5),

podi-

M B(BM, BM 1 BM 2) =
max(M B(BM, BM 1), M B(BM, BM 2)) = 0.2.
amos

considerar

este

passo

como

7.

M B(M E, M F CG) = M B 0 (M E, M F CG) M B(M F CG) = 0.8


0.6 = 0.48

8.

M B(BM, M F BF LF CG) = M B(BM, M F LF BF ) +


M B(BM, CG) (1 M B(BM, M F LF BF )) = 0.2

9.

M B(M E, M F BF LF CG) = M B(M E, M F CG)+M B(M E, BF


LF ) (1 M B(M E, M F CG)) = 0.48

10.

M B(BM M E, M F BF LF CG) = min(M B(BM, M F BF


LF CG), M B(M E, M F BF LF CG)) = min(0.2, 0.48) = 0.2

11.

F C(BM M E, M F BF LF CG) = M B(BM M E, M F BF


LF CG) = 0.2

Logo, a nosso factor de certeza 0.2


Este modelo, no entanto, possui alguns problemas nomeadamente quando:

H sobreposio de condies:

Consideremos o seguinte exemplo:

*
*
*

Se um liquido vermelho, sangue com FC=0.5;


Se um liquido encarnado, sangue com FC=0.5;
Sabendo que um liquido vermelho(FC=1.0) e encarnado(FC=1.0),
com que FC sangue?

* F C(S, V E) = M B(S, V ) + M B(S, E)(1 M B(S, V )) = 0.75

Isto claramente um resultado que no corresponde realidade.

CAPTULO 3.

40

REPRESENTAO DO CONHECIMENTO

Se as regras no forem independentes:

Consideremos o seguinte exemplo:

*
*

Se choveu ontem, a relva est molhada com FC=0.9;


Se a relva est molhada, o sistema de rega trabalhou ontem com
FC=0.7;

Sabendo que choveu ontem (FC=1.0), com que FC o sistema de


rega trabalhou?

* F C(SR, C) = M B(RM, C) M B(SR, RM ) = 0.63

Mais uma vez, isto no faz muito sentido, pois a chuva no inuencia
o sistema de rega

3.5.4 Redes de Bayes (Redes Bayesianas)


Uma outra forma de descrever acontecimentos, mais poderosa que o modelo de
factores de certeza, so as redes de Bayes. Estas redes podem ser representadas
sob a forma de um grafo acclico dirigido, em que cada n representa um facto
e as arestas representam uma relao de causalidade, com uma probabilidade
associada. Pode ser visto um exemplo na gura 3.3.
Estas redes baseiam-se no teorema de Bayes, visto anteriormente.
Este modelo resolve o problema da independncia e sobreposio de condies
dos factores de certeza, no entanto, apresenta outro problema: Em casos como
o da gura 3.3, em que o nosso problema um grafo multi-conexo (Cancelar
jogo possui vrias causas), este torna-se num problema NP-hard.
A soluo nestes casos tentar unir todas as causas (Piso Escorregadio
e Inundao) numa s e calcular as novas probabilidades (P (P E

P (CJ|P E I)),

I|C)

tornando o nosso problema num problema resolvvel em tempo

polinomial (Perdendo-se, no entanto, algumas informaes).

3.5.5 Teoria de Dempster-Shaer


Na teoria de Dempster-Shaer, um conjunto de proposies deixa de ter associado s um factor de certeza, passando este a ser substitudo por um par
{Crena, Plausibilidade}, onde:

0 Crenca(S) 1
P lausibilidade(S) = 1 Crenca(S)
Onde a Crena(S) representa a nossa crena numa proposio S e Plausibilidade(S) representa o valor mximo a que essa conana pode chegar adicionando
mais evidncias.
primeira vista, estas formulas no fazem grande sentido, pois a nossa
intuio pode-nos levar a pensar que

Crenca(S) + Crenca(S) = 1,

no entanto,

isso no verdade neste modelo, como pode ser visto mais frente.
Assim, ao contrrio dos outros modelos, esta teoria permite-nos distinguir
entre incerteza e ignorncia. O que estamos a calcular deixa de ser apenas a

CAPTULO 3.

REPRESENTAO DO CONHECIMENTO

41

Cu Nublado
P(C|CN)=0.7

Chuva
P(PE|C)=0.6

Piso Escorregadio

P(I|C)=0.1

Inundao

P(CJ|PE)=0.3

P(CJ|I)=1.0

Cancelar Jogo
Considere-se um grupo de amigos que quer reservar um pavilho para jogar
futsal.
O pavilho um bocado antigo, por isso nos dias de chuva o piso costuma car
escorregadio, e s vezes ocorrem mesmo inundaes.
Caso haja uma inundao, so obrigados a cancelar o jogo, caso o piso s esteja
escorregadio, o mais certo jogarem, embora tambm o possam decidir cancelar.
Com esta rede, sabendo a probabilidade de o cu estar nublado num determinado
dia, possvel calcular a possibilidade de o jogo ser ou no cancelado.
Figura 3.3: Exemplo de uma rede de Bayes

CAPTULO 3.

REPRESENTAO DO CONHECIMENTO

42

probabilidade de S ser verdadeiro, mas tambm se ou no necessrio obter


mais evidncias.
A melhor forma de explicar este conceito apresentando um exemplo:

Exemplo
Pessoa

N de Carros

Entre 3 e 5 carros?

1 ou 2

No

No
Sim

4 ou 5

5 ou 6

No

Tendo em conta a seguinte tabela, com a informao que possumos, sendo


S=Escolhida uma pessoa aleatria, essa pessoa tem entre 3 e 5 carros

Crenca(S) = 15
Crenca(S) = 35
P lausibilidade(S) = 1

3
2
5 = 5
Ou seja, por mais evidncias que usemos, a nossa crena nunca ser superior a
2/5.
A teoria de Dempster-Shaer , normalmente, implementada da seguinte
maneira:

Inicialmente, precisamos de um conjunto

, que contm todas as hipteses

possveis (sendo estas mutuamente exclusivas). Este conjunto vai representar o desconhecido at ao momento;

Cada evidncia suporta um subconjunto de

Inicialmente, apenas se sabe que a crena se encontra entre 0 e 1, no se

fazendo mais nenhuma suposio (por exemplo, no se pode assumir que


inicialmente, tendo

Temos uma funo

N hipteses, cada hiptese tem probabilidade 1/N).

m(conjunto) que mede a densidade de probabilidade


de
P
= Y |Y X m(Y ),

um conjunto, ou seja, a crena nesse conjunto (Cren


ca(X)

ou seja, a crena a soma da densidade de todos os subconjuntos desse


conjunto).

Por exemplo,

Crenca({A, B}) = m({A}) + m({B}).

Sendo
assim, a plausibilidade pode ser calculada atravs de P lausibilidade(X) =
P
/ m(Y ), ou seja, a crena em todos os conjuntos (incluindo o
Y |Y X6=O
desconhecido) que no anulem X.

Por exemplo,

Inicialmente,

P lausibilidade({A}) = m({A})+m({A, B})+m({}).

m() = 1,

no entanto, este valor vai sendo alterando con-

forme so adicionadas evidncias (diminuindo assim o nosso desconhecido);

Duas funes de crena m1(X) e m2(Y) podem ser combinadas da seguinte


forma:

CAPTULO 3.

REPRESENTAO DO CONHECIMENTO

 m1(X) m2(Y ) = m1, 2(Z) =


*

XY =Z

m1(X)m2(Y ):

43

m1(X)m2(Y )
1K

XY =Z

ou seja, para todas as interseces dos

conjuntos X e Y, o valor da sua multiplicao das suas densidades;

* K=

/
XY =O

m1(X)m2(Y ):

ou seja, para todos as interseces

vazias dos conjuntos X e Y, o valor das suas multiplicao (utilizado para normalizar os valores);

ou seja, obtem-se

m1, 2(Z)

onde Z representa as interseces dos

conjuntos X e Y em que, para cada conjunto Z, o seu valor igual


multiplicao

m1(X)m2(Y )

ponderada tendo em conta as inter-

seces vazias.
De notar que, quando no h interseces vazias (ou seja, no h ignorncia), a
teoria de Dempster-Shaer equivalente ao modelo dos factores de certeza.
Posto desta maneira, a teoria pode parecer bastante confusa, por isso vamos
a mais um exemplo prtico:

CAPTULO 3.

REPRESENTAO DO CONHECIMENTO

44

Exemplo
Considerando o conjunto

= {Alergia, Gripe, Constipaca


o, P neumonia}

Havendo as seguintes evidncias:

Febre (m1)

 m1({G, C, P }) = 0.6
 m1() = 0.4

Pingo no nariz (m2)

 m2({A, G, C}) = 0.8


 m2() = 0.2
Combinando estas duas evidncias em m3:

m1({G, C, P })
m1()

m2({A, G, C})
{G, C, P } {A, G, C}
{A, G, C}

m2()
{G, C, P }

Fazendo as contas:

m1({G, C, P }) = 0.6
m1() = 0.4

m2({A, G, C}) = 0.8


{G, C} = 0.48
{A, G, C} = 0.32

m2() = 0.2
{G, C, P } = 0.12
= 0.08

Ou seja, a nossa funo m3 denida por:

m3({G, C}) = 0.48


m3({G, C, P }) = 0.12
m3({A, G, C}) = 0.32
m3() = 0.08
De notar que no h nenhum subconjunto vazio, logo K=0, o que faz com que,
para j, esta teoria seja semelhante ao modelo de factores de certeza. Apresentando um exemplo:

F C(G|m1 m2) = M B(G|m1) + M B(G|m2) (1 M B(G|m1)) = 0.6 + 0.8


0.4 = 0.92
m3({G}) = m3({G, C}) + m3({G, C, P }) + m3({A, G, C}) = 0.92

CAPTULO 3.

REPRESENTAO DO CONHECIMENTO

45

Continuao do Exemplo
Suponha-se agora que os sintomas desapareceram depois de o paciente viajar, o
que leva a uma nova evidncia:

Viajar (m4)

 m4({A}) = 0.9
 m4() = 0.1
Aplicando este novo conhecimento a m3, resulta (esta tabela apresentar directamente os resultados para poupar espao):

{G, C}
{G, C, P }
{A, G, C}

{A}
/ = 0.432
O
/ = 0.108
O
{A} = 0.288
{A} = 0.072

{G, C} = 0.048
{G, C, P } = 0.012
{A, G, C} = 0.032
= 0.008

Neste caso j ocorrem subconjuntos vazios, sendo que temos de computar K


primeiro:

K = 0.432 + 0.108 = 0.54


1 K = 0.46
Logo, a nossa funo m5 passa a ser:

m5({A}) =

0.288+0.072
0.46

m5({G, C}) =

0.048
0.46

= 0.78

= 0.10

m5({G, C, P }) =

0.012
0.46

= 0.03

m5({A, G, C}) =

0.032
0.46

= 0.07

m5() =

0.008
0.46

= 0.02

Ou seja, daqui podemos concluir:

Crenca({A}) = 0.78
Crenca({A}) = 0.1 + 0.03 = 0.13
P lausibilidade({A}) = 1 0.13 = 0.87

Captulo 4

Sistemas Periciais
Agora que j temos a capacidade de representar o conhecimento, importante
saber como us-lo. Os sistemas periciais so os sistemas baseados em conhecimento mais tpicos, constituindo algumas das aplicaes mais conhecidas e mais
prticas da inteligncia articial.
Mas antes de mais, o que um sistema pericial? Um sistema pericial um
sistema computacional que incorpora o conhecimento simblico de um ou mais
especialistas em um ou mais domnios, podendo depois emular (ou assistir) os
especialistas. Estes sistemas normalmente possuem os seguintes mdulos:

Conhecimento simblico (base de conhecimentos);

Capacidade de inferncia (motor de inferncia);

Heursticas;

Explicabilidade (capacidade de explicar o seu processo dedutivo/indutivo);

Meta-Conhecimento (conhecimento que o sistema tem do seu prprio conhecimento);

Interface amigvel (quanto mais prximo da linguagem natural, melhor);

Capacidades evolutivas (aprendizagem mquina);

No entanto, h que ter ateno para no confundir sistemas periciais com aplicaes que apenas efectuam clculo numrico ou programas que apenas tratam
grandes quantidades de dados. Essas aplicaes no possuem muitos dos mdulos referidos em cima, como a capacidade de evoluo. importante saber
quando utilizar um tipo de sistema ou outro:

Se a complexidade do tratamento de informao for maior que a quantidade de dados, utilizar sistemas periciais;

Se a quantidade de dados muito maior que a complexidade do tratamento


de informao, utilizar bases de dados (ou semelhantes);
46

CAPTULO 4.

SISTEMAS PERICIAIS

47

Sendo assim, os sistemas periciais so uma forma prtica de unir o conhecimento


de vrias fontes e especialidades, permitindo no s aceder a esse conhecimento
de uma forma mais natural que o normal acesso a bases dados relacionais, como
a evoluir o conhecimento graas s capacidades de aprendizagem.

4.1

Motor de Inferncia

O motor de inferncia de um sistema pericial tem de ser capaz de, tendo uma
base de conhecimentos com conjunto de regras (com premissas e concluses que
se podem retirar) e factos (que podem ter uma incerteza associada), inferir novos
factos (eventualmente com uma nova incerteza associada). Para alm dos factos
da base de conhecimentos e os factos induzidos, o motor de inferncia pode, se
achar necessrio, perguntar novos factos ao utilizador.
A inferncia pode ser feita de duas maneiras:

Encadeamento Directo (Forward-chaining):





Seleccionar as regras cujas premissas unicam com o estado corrente;


Executar as aces correspondentes concluso das regras;
Repetir enquanto existirem regras aplicveis;

Encadeamento Inverso (Backwards-chaining):

Utiliza um sistema de backtracking (semelhante ao motor de inferncia de Prolog);

4.2

Explicabilidade

O sistema pericial tem de conseguir explicar como chegou soluo.

Isto

muito importante, pois um especialista que esteja a ser auxiliado por um destes
sistemas pode duvidar da origem de um resultado, podendo pretender analisar
o raciocnio do sistema para saber se algo est errado ou no.
Existem 2 tipos de explicaes:

Porqu?

Explica o que j conhecido partida e as regras que foram aplicadas;

Como?

Trace do caminho percorrido durante a inferncia;

CAPTULO 4.

4.3

SISTEMAS PERICIAIS

48

Aprendizagem

A implementao de mtodos de aprendizagem mquina sero explicados mais


frente, no entanto, de forma muito sucinta, os sistemas periciais possuem 3
formas de adquirir novo conhecimento:

Por comunicao directa (atravs de uma linguagem prxima da natural,


sendo o input processado e transformado numa representao intermdia
que o sistema pericial compreenda);

Por induo (usando induo lgica ou algoritmos como ID3 ou C4.5)

Por adaptao (usando tcnicas como aprendizagem por reforo)

de notar, no entanto, que as redes neuronais (tambm a estudar mais frente)


no so consideradas como uma forma vlida para aprendizagem em sistemas
baseados em conhecimento. Isto deve-se ao seu funcionamento no ser propriamente baseado no processamento do conhecimento em si mas sim em valores
que, quando aplicados ao conhecimento, retornam os valores desejados, sendo
assim um sistema estpido que apenas reage da forma correcta.

4.4

Meta-Conhecimento

O meta-conhecimento o conhecimento que o sistema pericial possui sobre o


seu prprio conhecimento, por exemplo:

Quais so os conceitos?

Quais so os factos actuais?

Quais so as regras?

Quais so as frmulas para calcular a aptido?

Quais as heursticas usadas?

Normalmente, este conhecimento dividido em 3 nveis (do mais abstracto para


o mais concreto):

Arqutipos (os conceitos);

Categorias (os moldes que cada facto pode ter);

Instncias concretas (os factos em si);

CAPTULO 4.

4.5

SISTEMAS PERICIAIS

49

Shells

Uma shell um programa que inclui:

Motor de Inferncia;

Tratamento de regras;

Interface (normalmente com menus);

Capacidade explicativa do tipo Porqu?

(algumas incluem tambm o

tipo Como?);

Editor de regras e, eventualmente, frames;

Estes programas permitem a ligao com linguagens de programao comuns,


como C, Java ou Prolog, permitindo muito rapidamente desenvolver sistemas
periciais ou sistemas semelhantes.

Captulo 5

Linguagem Natural
Como foi falado anteriormente, num sistema pericial importante haver alguma
forma de um especialista comunicar com a mquina, sendo que quanto mais
natural for esta comunicao, mais facilidade o especialista tem em exprimir-se,
havendo menor perda de informao.
No s nos sistemas periciais, como tambm noutros campos da inteligncia articial, importante haver um sistema que seja capaz de compreender a linguagem natural humana, permitindo-nos assim transmitir informao

Humano M a
quina e/ou M a
quina Humano, sendo capaz de compreender
frases e textos.
As aplicaes do processamento da linguagem natural so as mais variadas,
por exemplo:

Interfaces com bases de dados de uma forma natural;

Sistemas periciais;

Sistemas de perguntas e respostas para aceder informao;

Classicao do texto (correco gramatical e sugestes);

Recuperao de informao perdida;

Text Mining/Data Mining (muito em voga recentemente em sistemas


como twitmetros ou medidores de popularidade).

Existem dois tipos de aproximao h linguagem natural:

Aproximao estatstica:

Exemplo 1: Analisar todos os textos de Shakespeare e anotar a probabilidade de depois da palavra A aparecer a palavra X ou mesmo de
depois de aparecer a sequncia A, B e C aparecer a palavra Y. Com
isto possvel classicar um texto como sendo ou no de Shakespeare
com um determinado factor de certeza.

50

CAPTULO 5.

LINGUAGEM NATURAL

51

Exemplo 2: Sabendo a probabilidade de na lngua portuguesa uma


letra A ser seguida de outra letra X (ou mesmo de uma sequncia de
caracteres A, B e C ser seguida de uma letra Y), calcular o factor de
certeza de uma frase ser portuguesa.

O exemplo 1 no tem grande interesse prtico (at porque no capaz de analisar o contexto dos textos, podendo assumir muitas coisas
erradamente), embora possa vir a ter as suas utilidades, nomeadamente, sabendo quais as palavras mais provveis de se seguir a outras em determinada linguagem, possvel decifrar palavras-chave
baseadas em frases (normalmente longas, sendo o brute-force normal impraticvel), passando-se a fazer um brute-force por palavra e
no por letra.

O exemplo 2 permite-nos, por exemplo, detectar automaticamente a


linguagem de uma pgina web, fazer brute-force a uma cifra de csar
sabendo em que idioma foi escrita a mensagem original (testar todas
as combinaes e retornar a com maior factor de certeza) ou mesmo
adaptar um algoritmo de brute-force de passwords letra a letra de
forma a escolher primeiro os conjuntos de letras mais provveis.

Aproximao lingustica:

Esta aproximao baseada na capacidade de anlise sintctica com


recurso a gramticas com contexto (ou gramticas livres de contexto,
se apenas nos interessar uma linguagem prxima da natural).

5.1

Representao

Existem vrias formas de o nosso sistema de linguagem natural representar as


frases:

Anlise supercial (apenas analisa o que est escrito e responde de acordo);

Semntica restrita (analisa a frase e o contexto desta, no entanto esta tem


de estar de acordo com uma semntica restrita);

Compreenso profunda (analisa tanto a frase como o seu contexto, suportando frases ambguas);

Uma forma de testar um sistema de linguagem natural o famoso teste de


Turing, que consiste no seguinte:

Colocam-se vrias pessoas em salas isoladas, com um computador frente;

Cada pessoa comunica ou com o nosso sistema de linguagem natural ou


com outra pessoa (sem saber com qual delas est a falar);

No nal, cada pessoa deve dizer se acha que estava a falar com uma
mquina ou com outra pessoa;

CAPTULO 5.

LINGUAGEM NATURAL

52

Obviamente que este teste no testa s as capacidades de linguagem natural,


obrigando o nosso sistema a ter mdulos extra, como uma base de conhecimentos
e um motor de inferncia. No entanto, este teste importante para identicar o
poder da nossa representao. Considerando um exemplo de um teste de Turing
para cada uma das representaes:

Anlise Supercial:






Humano: Quem o presidente dos Estados Unidos?


Mquina: Porque quer saber quem o presidente dos Estados Unidos?
Humano: Para saber se estou a falar com uma mquina ou no
Mquina: Saber se est a falar com uma mquina importante para
si?

Semntica Restrita:








Humano: Quem o presidente dos Estados Unidos?


Mquina: Barack Obama
Humano: Qual o nome completo dele?
Mquina: Por 'dele' posso presumir que quer dizer 'de Barack Obama' ?
Humano: Sim
Mquina: Barack Hussein Obama II

Compreenso Profunda:






Humano: Quem o presidente dos Estados Unidos?


Mquina: Barack Obama
Humano: Qual o nome completo dele
Mquina: Barack Hussein Obama II

Como se pode ver pelo exemplo, a anlise supercial apenas tem a informao
que vem da frase anterior, tentando fazer de conta que possui conhecimento.
Pode conseguir essa iluso ao fazer perguntas, mas perde-se completamente
quando tem de responder a algo.
No exemplo da semntica restrita, o nosso sistema j possui algum conhecimento, mas tem problemas com ambiguidades. J um modelo mais realista,
mas continua a ser fcil de detectar que uma mquina. de notar, no entanto,
que dependendo da implementao deste comportamento, ele tambm poderia
responder correctamente pergunta (visto que possui um estado interno) ou
simplesmente responder No sei a quem se refere com 'dele'., obrigando o
humano a reformular a pergunta.
Com a compreenso profunda a conversa j se torna muito mais prxima de
uma conversa natural.

CAPTULO 5.

5.2

LINGUAGEM NATURAL

53

Processamento de Linguagem Natural

Usando a aproximao lingustica para o processamento de linguagem natural, esta encontra-se dividida em 3 fases: Anlise Lexical, Anlise Sintctica e
Anlise Semntica. Para quem j tiver tido aulas de Compiladores ou semelhantes, j devem ter alguma ideia de como que isto vai funcionar.

5.2.1 Anlise Lexical


Antes de mais, precisamos de ter denidos na nossa base de conhecimentos os
seguintes elementos:

Nomes;

Pronomes;

Verbos (e respectivas conjugaes);

Adjectivos;

Artigos;

Proposies;

Conjunes;

Para ajudar mais frente na anlise semntica, aconselhvel j ter alguma


informao associada a cada palavra (gnero, nmero...). Se possvel, o ideal
esta classicao ter o mximo de informao possvel (semelhante TLEBS).
Embora a anlise lexical seja feita normalmente com recurso a palavras, pode
ser boa ideia utilizar expresses regulares para classicar alguns tipos especiais
de nomes (como nmeros de telefone, sites, emails...).

5.2.2 Anlise Sintctica


Para j, vamos apenas considerar gramticas livres de contexto (Context-Free
Grammars ou CFGs) para a nossa anlise sintctica, representadas atravs
da forma de Backus-Naur (BNF).
A forma de Backus-Naur funciona da seguinte forma: A nossa gramtica possui um conjunto de smbolos terminais (palavras, normalmente representadas em
letras minsculas) e smbolos no terminais (compostas por produes: conjuntos de palavras e smbolos no terminais, normalmente representados por letras
maisculas ou palavras capitalizadas em upper camel case). Apresentando o
exemplo simples da gramtica portuguesa:

F rase SintagmaN ominal SintagmaV erbal


SintagmaN ominal Artigo SintagmaN ominal1
SintagmaN ominal SintagmaN ominal1
SintagmaN ominal1 ConjuntoAdjectivos N ome
SintagmaN ominal1 N ome

CAPTULO 5.

54

LINGUAGEM NATURAL

ConjuntoAdjectivos Adjectivo|Adv
erbio Adjectivo
SintagmaV erbal V erbo|V erbo SintagmaN ominal
Artigo a|o
N ome joao|pedro|maria|bola
Adv
erbio muito
Adjectivo grande|pequena
V erbo corre|chuta
(Antes de mais, como pode ser visto, na representao BNF, uma regras
com vrias produes possveis pode ser representada de duas formas: ou atravs
de vrias regras com o mesmo nome, ou atravs do operador |)
Com esta gramtica, j conseguimos validar frases como:o grande pedro
chuta a muito pequena bola ou a maria corre, como pode ser visto na gura
5.1.
No entanto este tipo de gramticas possuem alguns problemas:

As gramticas normalmente possuem inmeras excepes, sendo que para


serem representadas, necessrio recorrermos a uma CFG extremamente
complexa:

Por exemplo, este caso aceita o sintagma nominal pequena bola,


mas no aceita bola pequena. Isto podia ser resolvido adicionando
a regra

SintagmaN ominal1 N ome ConjuntoAdjectivos,

o que

bastante simples.

Agora imagine-se que pretendemos adicionar cores nossa gramtica.


As cores so um exemplo interessante, pois tanto so adjectivos como
nomes (tanto podemos dizer o amarelo bonito como o carro
amarelo), no entanto, isto faria com que a nossa gramtica no s
aceitasse o sintagma nominal amarelo amarelo, como casse com
uma produo ambgua (amarelo amarelo um Nome seguindo de
um Adjectivo ou um Adjectivo seguido de um Nome?).

A soluo

para isto seria no considerar as cores nem um nome nem um adjectivo, mas um grupo parte, alterando radicalmente a gramtica e
aumentando em muito a sua complexidade.

Aceita frases como os maria corre o bola, que no fazem sentido pois no
h concordncia de gnero/nmero:

Possvel de resolver com gramticas com contexto, a ver mais frente.

Pode possuir ambiguidades:

Embora a gramtica acima no seja o caso, uma gramtica mais


completa aceitaria as frases equivalentes, como o joao chuta a bola
e a bola chutada pelo joao, havendo duas rvores distintas com
o mesmo signicado (ou seja, duas representaes diferentes para o
mesmo valor).

CAPTULO 5.

LINGUAGEM NATURAL

55

Frase

SintagmaNominal

SintagmaVerbal

Artigo SintagmaNominal1

Nome

Verbo

corre

maria
Figura 5.1: Exemplo da decomposio da frase a maria corre

5.2.3 Anlise Semntica


Caso o a gramtica que pretendamos usar no seja to completa quanto a
gramtica portuguesa, podemos aproveitar o modelo de gramticas livres de
contexto para retirar informaes de uma frase. Por exemplo, se pretendermos
apenas implementar um sistema que nos d informaes de um determinado
navio, a nossa gramtica pode ser:

Quest
ao Quest
aoP ropriedade|Quest
aoM embroT ripulaca
o
Quest
aoP ropriadade qual e P ropriedade do N avio ?
Quest
aoM embroT ripulaca
o quem e M embro do N avio ?
P ropriedade o tamanho|a tonelagem|a idade...
M embro o capit
ao|a capti
a|o dono...
N avio gil eanes...
Estes modelos so bons por duas razes:

So muito simples, logo tornam-se fceis de processar (o processamento


pode ser feito ao mesmo tempo que a interpretao);

No possuem ambiguidade, pois estas deixam de fazer sentido;

No entanto, possuem o inconveniente de, ou serem pouco poderosas (como


o caso acima) ou de precisarem de muitas regras, o que torna a interpretao
demorada.

5.2.4 Gramticas de Caso


Como foi dito acima, um dos problemas das CFG o tratamento de frases
ambguas, como o pedro chutou a bola e a bola foi chutada pelo pedro, pois

CAPTULO 5.

LINGUAGEM NATURAL

56

obtemos duas estruturas diferentes (normalmente rvores) que representam o


mesmo valor.
A soluo das gramticas de caso a seguinte: recebendo a rvore da anlise
(com recurso a uma CFG), identicar qual o agente, o objecto e o verbo (entre
outras informaes), passando a representar as frases agrupadas pelo verbo, na
seguinte forma (considerando as duas frases acima):

chutar(Agente(pedro), Objecto(bola))
Sendo assim, a representao de ambas as rvores torna-se idntica, o que
muito mais agradvel de processar.
Num exemplo mais complexo, como A Liliana cozinhou a galinha durante
30 minutos o resultado deveria ser algo do gnero:

cozinhar(Agente(liliana), Objecto(galinha), T empo(30minutos))

5.2.5 Gramticas Lgicas


Como foi dito antes, necessrio a implementao de gramticas que no sejam
livres de contexto para obtermos frases correctas. Uma das solues para este
problema utilizar gramticas baseadas em lgica de primeira ordem, em que,
em vez de termos apenas:

SintagmaN ominal Artigo SintagmaN ominal1


Temos agora algo como:

SintagmaN ominal(G, N ) Artigo(G, N ) SintagmaN ominal1(G, N ) (Sendo


G o gnero e N o nmero).
Sendo assim, deixamos de ter uma CFG, tendo agora uma Gramtica de
Clausulas Denidas (Denite Clause Grammar ou DCG);
Obviamente que, para esta nova gramtica funcionar, cada artigo e cada
membro do SintagmaNominal1 vai precisar de ter um nmero e um gnero
associado (como foi dito no nal da anlise lexical). Para alm disso, pode ser
conveniente ter mais informaes, por exemplo, se um nome animado ou no,
para podermos validar frases do tipo O urso chuta a bola e invalidar frases do
tipo A pedra chuta a bola.
A implementao destas gramticas feita da seguinte maneira:

Inicialmente, implementar um analisador sintctico descendente de forma


funcional (para mais informaes, procurar por analisadores LL(1) ou
LL(K));

Caso j haja um gnero/nmero denido, testar esses argumentos com os


novos tokens/funes. Caso contrrio, apenas vericar o tipo de token.

Cada funo receba argumentos extra (como gnero e nmero) deve tambm retornar esses argumentos;

Durante a vericao de tokens, vericar se h concordncia.

Um exemplo em pseudo-cdigo:

CAPTULO 5.

LINGUAGEM NATURAL

57

Exemplo
Nota: Considera-se que a lista de tokens global.
sintagma_nominal() {
Token t=TokenList.nextToken();
Genero g=NULL;Numero n=NULL;
if (t.type==ARTIGO) {
g=t.genero;n=t.numero;
t=TokenList.nextToken();
if (t.type==NOME && t.genero==g && t.numero==n) {
// Retorna verdadeiro
}
else {
// Retorna falso ou lana uma excepo
}
}
// Retorna falso ou lana uma excepo
}
Esta implementao pode ser um bocado estranha, sendo que pode ajudar
a ver uma implementao em Prolog, onde se evita o problema de ter de argumentos desconhecidos devido natureza da linguagem:

Exemplo
Nota:

o primeiro argumento de cada regra so os tokens a processar, e o

segundo argumento so os tokens a processar pela prxima regra.


sintagma_nominal(X,Y) :- artigo(X,Z,Gen,Num),nome(Z,Y,Gen,Num).
artigo([o|X],X,masculino,singular).
artigo([os|X],X,masculino,plural).
artigo([a|X],X,feminino,singular).
artigo([as|X],X,feminino,plural).
nome([pedro|X],X,masculino,singular).
Na prtica, a maior parte dos interpretadores de Prolog possui o operador

>

que nos permite tornar o cdigo acima em:

Exemplo

sintagma_nominal > artigo(Gen,Num),nome(Gen,Num).


artigo(masculino,singular) > [o].
artigo(masculino,plural) > [os].
artigo(feminino,singular) > [a].
artigo(feminino,plural) > [as].
nome(masculino,singular) > [pedro].

5.2.6 Quanticao
No entanto, estas gramticas continuam sem resolver todos os problemas, nomeadamente os problemas de quanticao. Suponha-se a seguinte frase: Todas as

CAPTULO 5.

58

LINGUAGEM NATURAL

pessoas esto a ver um barco.


Recorrendo lgica de primeira ordem, esta armao pode ser descrita de
duas formas:

Para todas as pessoas, h uma barco que visto:p

P essoas b

Barcos V e(p, b)

Existe um barco que todas as pessoas esto a ver:b

Barcos : p

P essoas V e(p, b)
A soluo para este problema passa normalmente por criar representaes intermdias quase lgicas entre a anlise sintctica e a anlise semntica, usando
regras de preferncia sobre os quanticadores.

5.2.7 Transformaes Semnticas


Estando terminada a anlise da frase, necessrio que esta seja transformada
para que possa ser executada.

5.2.7.1 Three Branched Quantiers


Este mtodo consiste em agrupar as frases em quanticadores com 3 ramos, na
forma quanticador(varivel, sintagma nominal, sintagma verbal). Por exemplo,
a frase O professor chumba todos os alunos que no aprendem resulta em
todo(X, e(aluno(X), not(aprende(X)), chumba(professor,X)).

5.2.7.2 Denite Closed-World Clauses


Este mtodo associa respostas a perguntas na forma:

Resposta Condicoes da pergunta,

por exemplo a pergunta Quais os oceanos que banham pelo menos 3 pases eu-

resposta(Oc) oceano(Oc) cardinalidade(P, pais(P )


oceano(Oc) banha(Oc, P )) > 2

ropeus? torna-se em

Para isto, no entanto, necessrio denir operadores para representar a


pergunta, por exemplo:

Operadores lgicos;

Operadores de comparao;

Operadores matemticos;

existe(X,T) - Existe um valor de X tal que T seja verdadeiro;

cardinalidade(X,T) - Para quantos elementos de X T verdadeiro;

etc.

Sendo assim, cada determinante corresponde a um quanticador, a um domnio


D e um mbito A.

Determinantes do tipo o, a, existe... -

existe(X, D A)

CAPTULO 5.

59

LINGUAGEM NATURAL

Determinantes do tipo todo, qualquer -

qualquer = not(existe(X, D

not(A)))
Por exemplo, na frase Algum professor portugus:

D=professor(X)

A=portugus(X)

Resultado:

existe(X, prof essor(X) portugu


es(X))

Captulo 6

Aprendizagem Simblica
Automtica
A aprendizagem humana algo muito complexo, sendo que no se trata de um
processo de aprendizagem s, divide-se em vrios tipos de aprendizagem, sendo
normalmente dividida em dois tipos:

Aprendizagem por Aquisio de Conhecimentos (Simblica):

Conhecimento adquirido atravs da aquisio de novas informaes,


sendo capaz de aplicar o novo conhecimento em situaes novas.

Ex: Aprender Inteligncia Articial por um livro.

Aprendizagem por Renamento de Habilidade (No-simblica):




Processo de renamento de uma habilidade por sucessivas tentativas.


Ex: Aprender a andar de bicicleta.

O objectivo da aprendizagem simblica automtica criar sistemas dotados de


capacidades de aprendizagem simblica, tal como os humanos.

6.1

Taxonomia dos Mtodos de Aprendizagem Simblica Automtica

A aprendizagem simblica automtica pode ser classicada de vrias formas:

6.1.1 Classicao quanto Estratgia Usada

Rote Learning:

60

CAPTULO 6.

APRENDIZAGEM SIMBLICA AUTOMTICA

61

Consiste simplesmente em aprender por ser programado (by being


programmed) ou por memorizao de novos factos ou dados (funciona como uma base de dados apenas).

Aprendizagem por Conselho/Instruo (by being told ou by instruction):

Um agente exterior, de alguma forma (directamente ou indirectamente utilizvel pelo sistema), fornece um conselho.

O sistema

depois responsvel de actualizar o seu conhecimento (alterando a


representao do conhecimento ou por inferncia) de acordo com o
conselho.

Aprendizagem por Analogia:

Consiste na capacidade de adquirir novos conceitos, factos ou planos


por transformao ou ampliao de conceitos que j faam parte do
sistema.

Aprendizagem por Exemplos:

Dado um conjunto de exemplos e contra-exemplos, o sistema deve


conseguir induzir um conceito geral que verique os exemplos e descarte
todos os contra-exemplos.

Aprendizagem no Supervisionada (por Observao/por Descoberta)

um mtodo de aprendizagem indutiva capaz de formar teorias e


criar critrios de classicao para formar hierarquias taxonmicas
sem interveno externa.

6.1.2 Classicao quanto Representao do Conhecimento Adquirido

Parmetros em Expresses Algbricas;

rvores de Deciso;

Gramticas Formais;

Autmatos nitos, expresses regulares, CFGs...

Regras de Produo;

Expresses Baseadas em Lgica Formal e Semelhantes ;

Grafos e Redes;

CAPTULO 6.

6.2

APRENDIZAGEM SIMBLICA AUTOMTICA

62

Aprendizagem Dedutiva/Indutiva por Mtodos Baseados em Explicaes

Para implementar a nossa aprendizagem dedutiva/indutiva por mtodos baseados em explicaes, vamos utilizar uma estratgia de aprendizagem por exemplos, ou seja, dando um conjunto de exemplos positivos ao nosso sistema de
um determinado conceito, este deve ser capaz de deduzir/induzir um conceito
genrico denido pela Teoria do Domnio que englobe os exemplos.
Existem 3 mtodos para isto:

Generalizao Baseada nas Explicaes (EBG);

EBG de exemplos mltiplos (mEBG);

Induo Sobre as Explicaes (IOE);

No entanto, tanto o EBG como o mEBG possuem algumas desvantagens, nomeadamente:

Raramente identicam a denio correcta;

O sucesso depende muito de como as regras esto denidas na teoria do


domnio.

6.2.1 Generalizao Baseada nas Explicaes (EBG)


Este mtodo funciona da seguinte maneira: O nosso resolvedor de problemas
comea j com uma teoria do domnio correcta, capaz de denir o conceito
genrico.

No entanto, esta teoria pode ser muito ineciente, contendo infor-

maes desnecessrias (Por exemplo, se estivermos a classicar uma chvena, a


nossa teoria inicial pode dizer que uma chvena tem de ser ou branca, ou preta,
ou vermelha, ou verde, ou s bolinhas amarelas...).
Depois disto, o algoritmo funciona da seguinte maneira:
1. Recebe um conjunto de exemplos de treino E;
2. Aplica a teoria de domnio para provar que um nico exemplo Ei uma
instncia do conceito-genrico, criando uma rvore de explicao para esse
exemplo;
3. Extraem-se as pr-condies mais fracas WP (as essenciais para cada exemplo continuar a ser uma instncia do conceito-genrico);
(a) Normalmente, caso a rvore de explicao seja uma rvore simples,
WP a conjuno dos literais das folhas.
4. Forma-se uma regra eciente;
5. O conceito-genrico convertido numa forma operacional.

CAPTULO 6.

APRENDIZAGEM SIMBLICA AUTOMTICA

63

Se as pr-condies mais fracas WP forem as condies necessrias e sucientes


de um conceito C mais especico, ento

W P (E) = C(E).

Consideremos um exemplo, para entender melhor como isto funciona:

CAPTULO 6.

APRENDIZAGEM SIMBLICA AUTOMTICA

64

Exemplo
Comeando com a nossa teoria de domnio inicial sobre o conceito Chvena:

Regra Chvena

 chavena(Obj) capaz de conter liquido(Obj) estavel(Obj)


elevavel(Obj) acessvel(Obj)

Regra Capaz de conter lquido

 capaz de conter liquido(Obj) superfcie nao porosa(Obj)


f undo n
ao poroso(Obj)

 superfcie

n
ao porosa(Obj)

superfcie(Obj, Sup)
f eito de(Sup, M aterial) n
ao poroso(M aterial)

 f undo

n
ao
poroso(Obj)

f undo(Obj, F undo)
f eito de(F undo, M aterial) n
ao poroso(M aterial)

Regra Estvel

 estavel(Obj) f undo(Obj, F undo) plano(F undo)

Regra Elevavel

 elevavel(Obj) leve(Obj) apanhavel(Obj)

Regra Acessvel

 acessvel(Obj)

para cima(P arte)

tem(Obj, P arte) concavidade(P arte)

Regra Leve

 leve(Obj) pequeno(Obj)superfcie leve(Obj)f undo leve(Obj)


 superfcie
leve(Obj)

superfcie(Obj, Sup)
f eito de(Sup, M aterial) material leve(M aterial)

 f undo

leve(Obj)

f undo(Obj, F undo)
f eito de(F undo, M aterial) material leve(M aterial)

Regra Apanhvel Cilndrico

 apanhavel(Obj)

pequeno(Obj) superfcie(Obj, Sup)


cilindrico(Sup)

f eito
de(Sup, M aterial)

isolante t
ermico(M aterial)

Regra Apanhvel Asa

 apanhavel(Obj) pequeno(Obj) tem(Obj, P arte) asa(P arte)

Sendo:

 nao

poroso(pl
astico)

n
ao
poroso(aluminio)
n
ao
poroso(porcelana) material
leve(plastico)
material
leve(porcelana) material
leve(aluminio)
isolante t
ermico(plastico) isolante t
ermico(porcelana)

CAPTULO 6.

APRENDIZAGEM SIMBLICA AUTOMTICA

65

Continuao do Exemplo
O nosso conceito genrico , ento, o seguinte:

Chvena

Capaz de
conter lquido

Estvel

Elevavel

Apanhvel

Cilindrico

Acessvel

Leve

Asa

Consideremos ento, que o nosso exemplo de testes (c1) possui as seguintes


propriedades:

superfcie(c1, sup1) f eito de(sup1, pl


astico) f undo(c1, f undo1)
f eito
de(f undo1, pl
astico) plano(f undo1) tem(c1, parte1)
convavidade(parte1) para cima(parte1) pequeno(c1) cilindrico(c1)
Sendo assim, a chvena c1 forma a seguinte rvore:

Chvena

Capaz de
conter lquido

Estvel

Elevavel

Apanhvel

Acessvel

Leve

Cilindrico
Sendo as pr-condies mais fracas de c1 obtidos pela conjuno dos literais das
folhas:

Regra Capaz de conter lquido:superf


cie(Obj, S)

Regra Estvel:f undo(Obj, F )

Regra Elevvel:pequeno(Obj)material

f eito de(S, M s)
n
ao poroso(M s) f undo(Obj, F ) f eito de(F, M f ) n
ao poroso(M f )
plano(F )
leve(M s)materia leve(M f )

cilindrico(S) isolante t
ermico(M s)

Regra Acessvel:tem(O, P 1)

concavidade(P 1) para cima(P 1)

CAPTULO 6.

66

APRENDIZAGEM SIMBLICA AUTOMTICA

Como pode ser visto pelo exemplo, esta implementao tem bastantes problemas, visto que s tem em conta um exemplo, o que nos leva ao prximo
mtodo:

6.2.2 EBG com Mltiplos Exemplos (mEBG)


Este mtodo funciona da seguinte maneira:
1. Para cada exemplo, prova-se que faz parte do conceito-genrico e gera-se
a sua rvore de prova;
2. Comparam-se todas as rvores de prova geradas e gera-se uma nova rvore
A que seja a maior sub-rvore partilhada por todos os exemplos;
3. Aplica-se o EBG como apresentado anteriormente, s que em vez de o
aplicar a um exemplo, aplica-se rvore A.

6.2.3 Induo Sobre Explicaes (IOE)


Este algoritmo bastante semelhante ao mEBG, no entanto, a rvore A gerada
de forma diferente.
Em vez de utilizar uma politica de generalizar a prova o mais possvel sem
alterar a sua estrutura, o que o IOE pretende fazer utilizar uma politica mais
conservativa, de forma a generalizar a prova apenas o necessrio para desenvolver
uma prova comum.
Neste caso, para gerar a melhor sub-rvore partilhada, o nosso objectivo
associar a cada constante
uma varivel

vi

ci

do domnio e dos exemplos (por exemplo, plstico)

(por exemplo, Mat), criando assim uma substituio

Uma substituio

1. Inicialmente, o nosso conjunto


2. Para cada varivel

gerada da seguinte forma:

encontra-se vazio:

vi do nosso conceito C (no exemplo do EBG, Chvena),


vi = cj e adicionar essa associao a , onde

tenta-se fazer uma associao

cj

obtido da seguinte maneira:

(a) Comea-se por considerar que constantes substituram


um dos exemplos
(b)

cj passa

cvei

vi

em cada

(sendo e o exemplo);

a ter o valor da generalizao dessas constantes, sendo essa

generalizao dada por:


i. Se para todos os exemplos, o valor de

cvei

cvei

igual, a generalizao

ii. Se os valorescvei so todos termos do mesmo functor (ex. elevvel(cvei


)) a generalizao elevvel(generalizao(cvei ))
iii. Caso nada disto se verique, a generalizao uma nova varivel
V, que ainda no tenha sido usada em nenhuma transformao.

CAPTULO 6.

67

APRENDIZAGEM SIMBLICA AUTOMTICA

Vejamos um pequeno exemplo do resultado deste algoritmo:

Exemplo

Atributo

Ex. 1: Bola de Futebol

Ex. 2: Bola de Hquei

Resultado

Forma

esfrica

esfrica

esfrica

Material

couro

madeira

Mat

Tamanho

mdio

pequeno

Tam

Exterior

leve

pesado

Peso

Interior

leve

pesado

Peso

Assim, o nosso novo conceito Bola esfrica com um exterior igual ao interior.

6.3

Aprendizagem Indutiva

A aprendizagem indutiva baseada em algoritmos que permitem criar rvores


de deciso (ID3, C4.5...). O objectivo destes mtodos adquirir conhecimento
atravs da construo automtica de novas regras de conhecimento.
Tendo em conta um grande conjunto de dados com concluses associadas,
se tivermos em conta apenas os atributos signicativos, nos possvel construir
rvores de deciso e, a partir destas, obter novas regras.

6.3.1 ID3 (Algoritmo de Quinlan)


O algoritmo ID3 uma forma de criarmos estas rvores de deciso de uma forma
sistemtica, sendo muito usado para tornar cenrios complexos como fundos de
investimento em rvores de deciso simples.
O algoritmo ID3 baseia-se no clculo da entropia E para uma concluso C
sabendo um atributo A , sendo esta dada pela frmula:

E(C|A) =

h P
i
N
p(a
)

p(c
|a
)

log
(p(c
|a
))
j
i
j
2
i
j
j=1
i=1

PM

Sendo:

M - nmero de valores possveis para o atributo A;

N - nmero de valores possveis para a concluso C;

aj

- valor possvel j para o atributo A;

ci

- valor possvel i para a concluso C;

Sabendo isto, o algoritmo funciona da seguinte forma:


1. Calcula-se a entropia para cada atributo;
2. Escolhe-se como raiz da rvore o atributo com menor entropia (ou seja,
menor variao de valores), fazendo-se uma diviso de acordo com esse
atributo (A);
3. Para cada valor possvel do atributo A:

CAPTULO 6.

APRENDIZAGEM SIMBLICA AUTOMTICA

68

(a) Se s for possvel chegar a uma concluso, essa concluso uma folha
da rvore.
(b) Se for possvel chegar a vrias concluses, repete-se o algoritmo com
o sub-conjunto de dados referente a esse valor e unem-se as duas
rvores.
Apresentando um exemplo:

Exemplo

Tendo em conta o cenrio de um fundo de investimento, em que nos interessa


saber qual o valor deste de acordo com a seguinte tabela:
Tipo de Fundo

Taxa Juro

Disp. Monet.

Tenso

Valor

Circ. Interno

Alta

Alta

Mdia

Mdio

Circ. Interno

Baixa

Alta

Mdia

Alto

Circ. Interno

Mdia

Baixa

Alta

Baixo

Mina

Alta

Alta

Mdia

Alto

Mina

Baixa

Alta

Mdia

Mdio

Mina

Mdia

Baixa

Alta

Mdio

Construo

Alta

Alta

Mdia

Baixo

Construo

Baixa

Alta

Mdia

Alto

Construo

Mdia

Baixa

Alta

Baixo

Vamos ento, calcular as entropias:

E(V alor|T ipo) = p(CI) (p(Baixo|CI)log2 (p(Baixo|CI)) ...) + ...



 E(V alor|T ipo) = 93  13 log2 ( 13 ) 13 log2 ( 13 ) 31 log 2 ( 13 ) + 39
31 log2 ( 13 ) 23 log2 ( 23 ) + 93 13 log2 ( 13 ) 32 log2 ( 23 ) = 1.140
E(V alor|T axa) = p(Alta) (p(Baixo|Alta)log2 (p(Baixo|Alta)) ...) +
...

1
3
 E(V alor|T axa) = 93
13 log2 ( 13 ) 31 log2 ( 13 ) 13 log
2( 3 ) + 9


1
1
2
2
3
1
1
2
2
3 log2 ( 3 ) 3 log2 ( 3 ) + 9 3 log2 ( 3 ) 3 log2 ( 3 ) = 1.140
E(V alor|Disp) = p(Alta) (p(Baixo|Alta)log2 (p(Baixo|Alta)) ...) +
...

 E(V alor|Disp) = 96  36 log2 ( 36 ) 26 log2 ( 26 ) 16 log2 ( 16 ) + 93
13 log2 ( 13 ) 23 log2 ( 23 ) = 1.279
Assim sendo, podemos fazer a diviso tanto no tipo de fundo como na taxa de
juro.

CAPTULO 6.

69

APRENDIZAGEM SIMBLICA AUTOMTICA

Continuao do Exemplo
Considerando que efectuamos a diviso na taxa de juro.

Se a taxa de juro for alta, os valores possveis para o valor do fundo so:
{Alto,Mdio,Baixo}

Se a taxa de juro for mdia, os valores possveis para o valor do fundo so:
{Mdio,Baixo}

Se a taxa de juro for baixa, os valores possveis para o valor do fundo so:
{Alto,Mdio}

Como tal, nenhum dos casos se torna numa folha da nossa rvore, sendo que
temos de repetir o algoritmo para as seguintes tabelas:

Taxa de juro alta:

Disp. Monet.

Tenso

Valor

Circ. Interno

Alta

Mdia

Mdio

Mina

Alta

Mdia

Alto

Construo

Alta

Mdia

Baixo

Tipo de Fundo

Disp. Monet.

Tenso

Valor

Circ. Interno

Baixa

Alta

Baixo

Mina

Baixa

Alta

Mdio

Construo

Baixa

Alta

Baixo

Taxa de juro mdia:

Tipo de Fundo

Taxa de juro baixa:

Tipo de Fundo

Taxa Juro

Disp. Monet.

Tenso

Valor

Circ. Interno

Baixa

Alta

Mdia

Alto

Mina

Baixa

Alta

Mdia

Mdio

Construo

Baixa

Alta

Mdia

Alto

Em todos os casos, o valor da entropia do tipo de fundo vai ser 0 (os clculos
foram omitidos por simplicao, mas isto poderia ser visto a olho pelo facto
de, em cada tabela, sabendo o tipo de fundo possvel saber o valor).
Assim sendo, a nossa rvore de deciso seria a seguinte:

V alor = M edio

C.I.

Alta
T
ipo
de
F
undo
M
ina
V
alor = Alto

Const. V alor = Baixo

V alor = Baixo

C.I.
T axa de Juro M edia T ipo de F undo M ina V alor = M edio

Const. V alor = Baixo

V alor = Alto

C.I

Baixa T ipo de F undo M ina


V alor = M edio

Construca
o V alor = Baixo

CAPTULO 6.

APRENDIZAGEM SIMBLICA AUTOMTICA

70

6.3.2 C4.5
O algoritmo C4.5 uma evoluo do ID3, que, para alm das funcionalidades
do ID3, tambm nos permite trabalhar com valores contnuos e desconhecidos,
assim como permite podar as rvores de deciso, visto que o ID3 por vezes pode
retornar rvores enormes. Para alm disso, o ID3 apenas nos permite chegar
a uma concluso nal, quando por vezes pode ser desejado retirar concluses
intermdias.
Para j, vamos considerar que j temos um algoritmo que nos permite pegar
num conjunto de valores contnuos e, tendo em conta o seu domnio e frequncia,
classic-los de forma discreta (pouco, mdio, muito...).

Mais frente este

algoritmo ser explicado.


Assim, o funcionamento do C4.5 passa por, em vez de usarmos o nosso
conjunto de treino C, passamos a usar um sub-conjunto

SC C .

Para alm disso, em vez de ser usada a entropia, usada a razo de ganho
de informao de um atributo A, sendo que precisamos das seguintes frmulas:

Razo de ganho de uma concluso C sabendo um atributo A:

RG(C|A) =

G(C|A)
Inf oSeparaca
o(A)

Ganho de uma concluso C sabendo um atributo A:

G(C|A) = f c(A)

(inf o(C) inf o(C|A))


PN

Informao:inf o(C)

Informao dado um atributo:

p(ci ) log2 (p(ci ))


inf o(C|A) =

PM

j=1

h P
i
N
p(aj ) i=1 p(ci |aj ) log2 (p(ci |aj )) (semelhante

entropia)

PN

Informao de Separao:Inf oSepara


ca
o(A)

Frequncia de Atributos Conhecidos:f c(A)

conhecidos(A)
conhecidos(A)+desconhecidos(A)

Nota: Os valores das variveis so anlogos aos vistos no algoritmo ID3.

i=0

p(ai )log2 (p(ai ))

O algoritmo, muito por alto, funciona da seguinte forma:


1. Gera-se uma rvore de deciso sob o nosso conjunto SC (de forma semelhante ao ID3, mas dividindo no atributo com maior razo de ganho e no
no com menor entropia), obtendo uma rvore A;
2. Testa-se o conjunto C na rvore A:
(a) Para cada teste que falhe, esse teste adicionado a SC
3. Se SC foi alterado, volta-se a 1;
4. Poda-se a rvore A, transformando sub-rvores complexas e com pouco
benefcio em folhas.

CAPTULO 6.

APRENDIZAGEM SIMBLICA AUTOMTICA

71

Depois de repetir este algoritmo vrias vezes com sub-conjuntos iniciais SC


diferentes, escolhe-se o resultado mais promissor.
A poda da rvore pode ser feita de duas maneiras:

Algoritmo C4.5 original:

Para cada rvore A, todas as sub-rvores S de A que possuam razo


inferior ao aumento de erro para a complexidade e razo inferior
mdia das outras sub-rvores de A so podadas (tornadas em folhas);

Poda pessimista:

Estando uma folha de uma rvore A a classicar N elementos de um


conjunto e seja E o nmero de erros de classicao (por exemplo, se
a folha representa alto, mas est a classicar {alto,alto,baixo },
E=1), a conana nessa folha dada por

E+1
N +2 .

Assim, podam-se todas as sub-rvores cuja poda no aumente signicativamente o erro previsvel da rvore.

6.3.2.1 Tratamento de Valores Contnuos


O C4.5, para poder trabalhar com valores de domnio continuo, necessita de os
agrupar.
Tendo um atributo A com valores possveis

{v1 , v2 , ..., vm },

existem m-1 for-

mas possveis de dividir estes valores em dois grupos, divididos nos pontos m-

vi +v(i+1)
, se os valores estiverem ordenados).
2
Sendo assim, a diviso feita da seguinte forma:

dios (

1. Ordenam-se os valores possveis do atributo por ordem crescente;


2. Testam-se todos os pontos mdios e calcula-se a razo de ganho (ou simplesmente o ganho, para simplicao dos clculos ) do atributo caso se
d essa separao;
3. Escolhe-se o ponto mdio com melhor razo de ganho e efectua-se a a
separao.

Captulo 7

Redes Neuronais
Redes Neuronais so redes massivamente paralelas, constitudas
por elementos simples interligados (usualmente adaptativos), interagindo com o mundo real, tentando simular o que o sistema nervoso
biolgico faz. - Kohonen, 1987
No conexionismo (onde se encaixam as redes neuronais) ao contrrio de na
Inteligncia Articial clssica, o conhecimento deixa de ser representado sob
a forma de expresses declarativas, sendo estas substituidas pela estrutura e
activaes de estados numa rede. Passamos agora a ter uma enorme capacidade
de paralelismo e processamento distribuido, com a capacidade de transformar
um processador num conjunto (ou at, em apenas um) de neurnios e interligar
vrios processadores entre si.
As redes neuronais computacionais so uma forma de caracterizar o conexionismo, que implicam:

Aprendizagem: Os sistemas no so programados, apenas denida a


rede e ela aprende os conceitos de forma autnoma (eventualmente com
reforo externo).

Capacidade Adaptativa: O sistema tem de tolerar a passagem de atributos


com valores pouco precisos.

As redes neuronais computacionais tentam simular o sistema nervoso biolgico,


sendo que temos agora um grafo dirigido em que cada n um neurnio, as
arestas so axnios e a cada aresta associado um peso sinptico.
Nesta rede, cada elemento tenta ou manter ou modicar o seu estado, de
acordo com os elementos a que est ligado.
Este tipo de redes caracterizada por 3 elementos:
1. O elemento de processamento (unidade bsica ou neurnio articial);
2. A estrutura das ligaes (topologia da rede);
3. A lei de aprendizagem;

72

CAPTULO 7.

7.1

73

REDES NEURONAIS

Elemento de Processamento

O neurnio da nossa rede caracterizado por cinco partes fundamentais:


1. Entradas (de onde vem a informao);
2. Pesos das conexes com outros neurnios (inuncia de cada entrada);
3. Funo de combinao de entradas:
(a) Normalmente, a soma ponderada das entradas tendo em conta o
seu peso:
i.
ii.
iii.

ei =

PN

j=1

wji sj ,

sendo:

ei - entrada do neurnio i;
N - nmero de neurnios que se ligam a i;
wji - peso da ligao que sai do neurnio j

e se liga ao neurnio

i;
iv.

sj

- sada do neurnio j;

(b) Outras funes usadas so o mximo e o mnimo das entradas ponderadas


4. Funo de transferncia (funo que permite calcular o estado de um
neurnio):
(a) Normalmente, a funo sigmide:

si =

1
(ver gura 7.1).
1+ecei

i. Sendo c uma constante, sendo que, para

c ,

a funo con-

verge para uma funo de heaviside (funo de interruptor). Por

1
.
1+eei
ii. Esta uma funo agradvel exactamente por se comportar como
convenincia, vamos usar c=1, tornando apenas

si =

uma funo de heaviside (dominio bem denido entre 0 e 1 e


simetria) tendo, no entanto, um crescimento muito mais suave.
iii. A derivada desta funo em respeito entrada dada por:

si (1 si )

d
dei si

(isto vai ser necessrio mais frente).

5. Sada (resultado da funo de transferncia).

7.2

Estrutura das Ligaes

Uma rede neuronal pode ser de 3 tipos:


1. Totalmente conectada (todos os ns esto ligados entre si)
2. Camada nica (existe uma camada de neurnios E que recebem a entrada,
e uma camada de neurnios S que enviam a saida, estando os neurnios
da camada E apenas ligados aos neurnios da camada S)
3. Mltiplas camadas:

CAPTULO 7.

74

REDES NEURONAIS

0.5

0
6

Figura 7.1: Funo sigmide com c=1 (funo logistica)

(a) Possuem 3 tipos de ligaes:


i. Directa - Ligao a 1 neurnio da camada seguinte;
ii. Inter-directa - Ligao a vrios neurnios da camada seguinte;
iii. Intra-directa - Ligao a neurnios da mesma camada
(b) Se a rede apena possuir ligaes camada seguinte (directas e interdirectas), trata-se de uma rede de do tipo feedforward

7.3

Lei de Aprendizagem

Sendo as redes neuronais computacionais inspiradas nos trabalhos de neurosiologia, a aprendizagem feita de maneira anloga aprendizagem humana,
ou seja, por alterao dos contactos sinpticos (no nosso caso, alterao do peso
das ligaes entre neurnios).
Esta aprendizagem pode ser tanto por reforo, supervisionada ou no supervisionada.

7.3.1 Aprendizagem por Reforo


Em vez de se fornecerem exemplos entrada->saida correcta, so atribuidos
prmios e castigos de acordo com o facto de a saida ser correcta ou no.
Neste mtodo, as alteraes dos pesos so apenas baseadas nos nveis de
actividade entre as unidades conectadas. Sendo esta uma informao local, ao
alterar um peso no conhecido o desempenho global do sistema.
A cada iterao da aprendizagem,

Wij (t + 1) = Wij (t) + Wij .

A aprendizagem termina quando a actividade for sucientemente baixa ou


mesmo nula.

CAPTULO 7.

75

REDES NEURONAIS

7.3.1.1 Aprendizagem de Hebb


O estado de um neurnio pode ter dois valores: ou est activo, ou no est
activo (1 ou 0), sendo que a eccia de uma ligao est relacionada com o
correlacionamento do valor dos neurnios, ou seja:

Wij = si sj
O que faz com que o peso entre dois neurnios s aumente se eles estiverem
activos ao mesmo tempo (caso contrrio, o peso mantm-se).

7.3.1.2 Aprendizagem de Hopeld


Este mtodo semelhante ao anterior, mas baseia-se numa frmula mais agressiva:

Wij = (2 si 1) (2 sj 1)
Ou seja, isto faz com que, caso as saidas sejam iguais, o peso aumenta, caso
sejam diferentes, o peso diminui (de notar que agora o peso j no se mantm).
Uma propriedade das redes de Hopeld que todas as ligaes so bidireccionais, o que faz com que no sejam redes feedforward.

7.3.2 Aprendizagem Supervisionada


Neste tipo de aprendizagem, a rede produz uma resposta para uma determinada
entrada, sendo que um supervisor (humano ou automtico) apresenta a resposta
correcta. Se ambas forem idnticas, os pesos mantm-se iguais, caso contrrio,
volta-se a aplicar a frmula

Wij (t + 1) = Wij (t) + Wij .

7.3.2.1 Perceptron
Este um mtodo apenas usado em redes neuronais de camada nica.
Os pesos passam a ser actualizados seguindo:

Wij = K (sj dj ) si
Onde K uma constante e

dj

representa o valor correcto para uma sada j.

Esta regra de aprendizagem converge garantidamente para a representao


correcta do problema se e s se a nossa classe de modelos for separvel linearmente (ou seja, se existir uma funo linear capaz de separar os valores 0 dos
valores 1), como pode ser visto na gura 7.2.

7.3.2.2 Retro-propagao do Gradiente (Backpropagation)


Ao contrrio do mtodo perceptron, este novo mtodo j pode ser utilizado em
redes neuronais de mltiplas camadas, tentando minimizar a funo de custo
quadrtico:

1
2M

PM PN
k=1

i=1 (ski

dki )2 ,

onde:

M - nmero de exemplos apresentados.

N - nmero de neurnios na camada de sada.

CAPTULO 7.

Classe
AND

Classe
OR

Classe
XOR

76

REDES NEURONAIS

Como pode ser visto na gura, as classes AND e OR so linearmente separveis,


enquanto que as classes XOR no o so.
Figura 7.2: Exemplo de classes separveis e no separveis linearmente

Vejamos agora a implementao deste algoritmo (Supondo uma rede com uma
camada de entrada com A nidades, uma camada intermdia com B unidades,
e uma camada de sada com C unidades):
1. Apresenta-se um exemplo E, constituido por valores

ei

(um valor para

cada entrada, logo i=1...A);


2. Propagam-se os estados da camada de entrada para a camada de intermida (usando a funo sigmoide):
(a)

P1
(sendo mj as sada do n j da camada de entrada,
1+e i Wij ei
ou seja, as entradas da camada intermdia)

mj =

3. Propagam-se agora os estados da camada intermdia para a camada de


sada (mesma frmula, com variveis alteradas):
(a)

sk =

1
1+e

j Wjk mj

4. Por m, calcula-se o erro nas unidades de sada, tendo em conta a reposta
certa:
(a) Sendo a derivada parcial da nossa funo de transferncia (sigmoide)
em funo de uma entrada dada por

sk (1 sk ).

(b) Usando a derivada como um peso para ponderar o erro (de forma a

sk se aprxima de 1 ou 0),
sk = sk (1 sk )(dk sk ).

haver alteraes mais pequenas quando


consideramos o erro da sada como:

5. Acabando a propagao, retropropaga-se o erro para as nidades intermdias:


(a)

mj = mj (1 mj )

Wjk sk

6. Alteram-se os pesos entre a camada intermdia e a camada de sada:


(a)

Wjk (t + 1) = Wjk (t) + (t) Wjk (t)

(b)

Wjk (t) = sk mj

CAPTULO 7.

(c)

77

REDES NEURONAIS

(t) = K (t 1)
i. Sendo K<1 (por exemplo, 0.7) se

Wjk (t) e Wjk (t1) tiverem

sinais oposotos;
ii. Sendo K>1 (por exemplo, 1.2) se

Wjk (t) e Wjk (t1) tiverem

o mesmo sinal;
iii. Quanto mais afastado de 1 for K, mais rpida a aprendizagem,
quanto mais prximo de 1, mais precisa e menos predisposta a
oscilaes a aprendizagem;
A. Uma soluo usar
sendo

0 < < 1.

Wjk (t) = sk mj + Wjk (t 1),

Assim evitam-se oscilaes acentuadas.

7. Alteram-se os pesos entre a camada intermdia e a camada de entrada


(semelhante ao passo 6 mas com variveis diferentes):
(a)

Wij (t + 1) = Wij (t) + (t) Wij (t)

(b)

Wij (t) = mj ei

(c)

(t) = K (t 1)

8. O algoritmo retorna 1 caso sejam necessrios mais exemplos ou se se pretender diminuir o erro.
Este algoritmo j capaz de tratar exemplos que no so linearmente separveis.

7.3.3 Aprendizagem no Supervisionada


Ao contrrio da aprendizagem supervisionada, a aprendizagem no supervisionada, como o nome indica, no necessita de um supervisor. Estes mtodos so
teis para quando no dispomos informao priori sobre possveis classicadores.

7.3.3.1 Aprendizagem Competitiva


A aprendizagem competitiva baseia-se no seguinte conceito:

Sendo apresen-

tado um exemplo a uma rede, todas as unidades devem concorrer pelo direito
resposta.

A clula mais activa ser aquela que responder mais fortemente,

ajustando-se os pesos de forma a que a sua resposta seja reforada (facilitando


a identicao de entradas semelhantes).
Este tipo de aprendizagem faz com que unidades distintas passem a representar caracteristicas distintas, permitindo classicar conguraes de entrada.

7.3.3.2 Mtodo de Kohonen


Mais uma vez, este um mtodo que s funciona em redes de camada nica.
No m da aprendizagem, cada unidade deve responder selectivamente a uma
classe, ou seja, para cada congurao, uma unidade encontra-se mais activa
que as outras, permitindo-nos classicar a entrada. Este mtodo idntico ao

CAPTULO 7.

78

REDES NEURONAIS

anterior, mas quando uma unidade vence a competio, no s so alterados os


seus pesos, como tambm so alterados os pesos dos vizinhos.

cj =

Pn

i=0 (si
mais activa ser aquela que possuir o menor valor de cj .
Calculando para cada unidade de sada:

Wij )2 ,

a unidade