Professional Documents
Culture Documents
TESE
SUBMETIDA
AO
CORPO
DOCENTE
DA
COORDENAO
DOS
Aprovada por:
ii
iii
iv
Agradecimentos
Resumo da Tese apresentada COPPE/UFRJ como parte dos requisitos necessrios para
a obteno do grau de Mestre em Cincias (M.Sc)
CO-EVOLUO AMOSTRA-CLASSIFICADOR INTEGRADA
PROGRAMAO GENTICA GRAMATICAL PARA A
CLASSIFICAO DE DADOS
Douglas Adriano Augusto
Dezembro/2004
Orientadores:
vi
Advisors:
vii
Sumrio
1 Introduo
1.1
1.2
1.3
O Domnio de Aplicao . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.1
Classificao de Dados . . . . . . . . . . . . . . . . . . . . . . .
Os Trs Pilares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.1
Programao Gentica . . . . . . . . . . . . . . . . . . . . . . .
1.2.2
1.2.3
Co-evoluo Amostra-Classificador . . . . . . . . . . . . . . . .
Organizao da Dissertao . . . . . . . . . . . . . . . . . . . . . . . . .
2 Programao Gentica
2.1
A Teoria de Darwin . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2
Algoritmo Gentico AG . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.1
Reproduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
2.2.2
Representao . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
2.2.3
A Funo de Avaliao . . . . . . . . . . . . . . . . . . . . . . .
11
2.2.4
Esquemas de Seleo . . . . . . . . . . . . . . . . . . . . . . . .
12
2.2.5
Operadores Genticos . . . . . . . . . . . . . . . . . . . . . . .
13
2.2.5.1
Crossover . . . . . . . . . . . . . . . . . . . . . . . .
13
2.2.5.2
Mutao . . . . . . . . . . . . . . . . . . . . . . . . .
15
viii
2.3
Programao Gentica PG . . . . . . . . . . . . . . . . . . . . . . . .
16
2.3.1
Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
2.3.2
17
2.3.3
Codificao e Representao . . . . . . . . . . . . . . . . . . . .
19
2.3.4
Criao da Populao . . . . . . . . . . . . . . . . . . . . . . . .
19
2.3.4.1
20
2.3.4.2
20
2.3.4.3
20
2.3.4.4
21
21
2.3.5.1
Suficincia e Consistncia . . . . . . . . . . . . . . . .
22
2.3.6
Inicializao da Populao . . . . . . . . . . . . . . . . . . . . .
22
2.3.7
Funes de Avaliao . . . . . . . . . . . . . . . . . . . . . . . .
23
2.3.8
Operadores Genticos . . . . . . . . . . . . . . . . . . . . . . .
24
2.3.8.1
Crossover . . . . . . . . . . . . . . . . . . . . . . . .
24
2.3.8.2
Mutao . . . . . . . . . . . . . . . . . . . . . . . . .
24
2.3.8.3
Permutao . . . . . . . . . . . . . . . . . . . . . . .
27
2.3.8.4
Edio . . . . . . . . . . . . . . . . . . . . . . . . . .
27
reas de Aplicao . . . . . . . . . . . . . . . . . . . . . . . . .
28
Regresso Simblica . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
2.4.1
29
2.4.1.1
32
Concluso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
2.3.5
2.3.9
2.4
2.5
ix
3.2
3.3
34
Gramtica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
3.1.1
Definio Formal . . . . . . . . . . . . . . . . . . . . . . . . . .
35
3.1.1.1
Notao Gramatical . . . . . . . . . . . . . . . . . . .
35
3.1.1.2
Passos de Derivao . . . . . . . . . . . . . . . . . . .
36
3.1.2
Hierarquia de Chomsky . . . . . . . . . . . . . . . . . . . . . .
39
3.1.3
40
3.1.3.1
Representao . . . . . . . . . . . . . . . . . . . . . .
41
3.1.3.2
Exemplos Ilustrativos . . . . . . . . . . . . . . . . . .
41
45
3.2.1
45
3.2.2
46
3.2.3
Evoluo Gramatical EG . . . . . . . . . . . . . . . . . . . .
48
51
3.3.1
Definio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
52
3.3.2
53
3.3.2.1
54
3.3.2.2
56
3.3.2.3
62
3.3.2.4
64
3.3.2.5
Operadores Genticos . . . . . . . . . . . . . . . . . .
64
3.3.2.6
69
Detalhes de Implementao . . . . . . . . . . . . . . . . . . . .
69
3.3.3.1
69
3.3.3
Gramtica . . . . . . . . . . . . . . . . . . . . . . . .
x
3.3.3.2
3.4
70
Concluso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
71
4 Co-evoluo Amostra-Classificador
4.1
Co-evoluo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
73
4.1.1
Definio Formal . . . . . . . . . . . . . . . . . . . . . . . . . .
74
4.1.1.1
Simbiose . . . . . . . . . . . . . . . . . . . . . . . . .
74
4.1.1.2
Co-evoluo . . . . . . . . . . . . . . . . . . . . . . .
75
Tipos de Co-evoluo . . . . . . . . . . . . . . . . . . . . . . .
75
4.1.2.1
76
4.1.2.2
Comensalismo . . . . . . . . . . . . . . . . . . . . . .
76
4.1.2.3
Amensalismo . . . . . . . . . . . . . . . . . . . . . .
77
4.1.2.4
Mutualismo . . . . . . . . . . . . . . . . . . . . . . .
78
4.1.2.5
Predatismo . . . . . . . . . . . . . . . . . . . . . . . .
79
4.1.2.6
Competio . . . . . . . . . . . . . . . . . . . . . . .
81
83
4.2.1
83
4.2.2
Redes de Ordenao . . . . . . . . . . . . . . . . . . . . . . . .
85
4.2.3
88
4.2.4
90
4.2.4.1
Modelo de Co-evoluo . . . . . . . . . . . . . . . . .
90
4.2.4.2
Aptido Cumulativa . . . . . . . . . . . . . . . . . . .
92
4.2.4.3
Pseudo Algoritmo . . . . . . . . . . . . . . . . . . . .
93
4.2.4.4
Experimentos . . . . . . . . . . . . . . . . . . . . . .
94
4.1.2
4.2
72
xi
4.2.4.5
4.3
96
Co-evoluo Amostra-Classificador . . . . . . . . . . . . . . . . . . . .
97
4.3.1
97
4.3.2
99
4.3.3
4.3.4
4.3.5
4.3.3.1
4.3.3.2
4.3.4.2
4.4
Concluso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
5 Estudo de Casos
5.1
5.1.2
5.1.1.2
Gramtica . . . . . . . . . . . . . . . . . . . . . . . . 109
5.1.3
5.2
105
Experimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
5.2.1.1
5.2.1.2
5.3
5.4
5.6
Experimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Monks I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
5.5.2
Monks II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
5.5.3
5.7
Experimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
5.5
Experimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Concluso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
6 Concluses
134
6.1
6.2
6.3
6.4
Referncias Bibliogrficas
144
xiii
Lista de Figuras
2.1
As partes de um cromossomo. . . . . . . . . . . . . . . . . . . . . . . .
11
2.2
O crossover de um ponto. . . . . . . . . . . . . . . . . . . . . . . . . . .
14
2.3
14
2.4
14
2.5
O crossover simplex. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
2.6
Um exemplo de mutao. . . . . . . . . . . . . . . . . . . . . . . . . . .
16
2.7
18
2.8
19
2.9
Criao inicializao. . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
25
26
26
27
27
31
31
3.1
38
3.2
38
xiv
3.3
Hierarquia de Chomsky. . . . . . . . . . . . . . . . . . . . . . . . . . .
39
3.4
43
3.5
44
3.6
. . . . . . . .
49
3.7
. . . . . . . . . . . . . . . .
51
3.8
54
3.9
56
65
68
71
4.1
76
4.2
Comensalismo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
77
4.3
Amensalismo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
78
4.4
Mutualismo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
79
4.5
Predatismo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
80
4.6
Competio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
81
4.7
. . . . . . . . . . . . .
85
4.8
86
4.9
88
89
91
94
98
99
xv
99
5.1
5.2
5.3
5.4
5.5
5.6
5.7
6.1
6.2
xvi
Lista de Tabelas
2.1
30
3.1
40
3.2
49
3.3
55
3.4
61
3.5
63
3.6
67
3.7
69
4.1
84
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
xvii
5.9
xviii
Lista de Algoritmos
3.1
55
3.2
Criarvore (<s>) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
58
3.3
RotulaProdues (G) . . . . . . . . . . . . . . . . . . . . . . . . . . . .
60
3.4
. . . . . . . . . . . . . . . . . . . . . . . . . . .
60
3.5
ExecutaPrograma (T) . . . . . . . . . . . . . . . . . . . . . . . . . . . .
63
3.6
Cruzamento (1 , 2 ,tentativasmax ) . . . . . . . . . . . . . . . . . . . . .
66
3.7
Mutao (, pmutmax ) . . . . . . . . . . . . . . . . . . . . . . . . . . . .
69
4.1
93
4.2
4.3
xix
. . . . . . . . . . . . . . . . . . . . 103
Captulo 1
Introduo
A evoluo tecnolgica dos meios de coleta e armazenamento de dados, juntamente
com a valorizao da importncia da informao e conhecimento, propiciam o crescimento vertiginoso de massas de dados alocadas em dispositivos digitais. Grandes quantidades de dados implicam em potencialmente mais informaes, entretanto, o armazenamento em larga escala inviabiliza o processo manual de inspeo e aquisio de conhecimento.
Destarte, aumenta-se a necessidade e o interesse sobre tecnologias capazes de manusear inteligentemente e automaticamente grandes repositrios de dados. Esta
a tarefa do processo geral de Descoberta de Conhecimento em Base de Dados 1 , cujo
carro-chefe pertence Minerao de Dados.
A minerao de dados de fato o esforo de extrao de conhecimento implcito em
base de dados, cujas tarefas variam em funo do domnio de aplicao e categoria. Dentre estas encontra-se a classificao de dados, ocupando provavelmente o posto de tarefa
melhor estudada e comumente executada. Atribui-se esta popularidade principalmente
sua intensa presena e utilidade em um amplo leque de aplicaes. A tarefa de classificao de dados o alvo de aplicao dos temas do trabalho desta dissertao, por
conseguinte, o captulo corrente prossegue focando-se nos assuntos correlatos.
1 KDD
1.1
O Domnio de Aplicao
Seo 5.2.
Nesta dissertao, adota-se a tcnica de classificao de dados via programao gentica, integrada ainda a dois importantes componentes: a programao gentica gramatical
e a co-evoluo amostra-classificador.
Introduz-se no decorrer deste captulo os conceitos que servem a esta dissertao,
juntamente com as motivaes da adoo destas abordagens.
1.2
Os Trs Pilares
algoritmos genticos e programao gentica foram introduzidos por John Holland [28] e John
Koza [34], respectivamente.
quer nvel entre qualquer operador e operando. Isto significa o resguardo semntica
de qualquer operao, como por exemplo, garantir que operadores do tipo lgico atuem
somente sobre operandos lgicos. Uma conseqncia direta destas restries que se
limita o espao de busca, portanto, o processo evolucionrio descarta a priori regies estreis de busca. Ainda, a adoo da GLC faz florescer uma nova direo de otimizao,
a evoluo concorrente da prpria gramtica 5 . Em outras palavras, torna-se plausvel
a re-adequao da linguagem que dita a forma do espao de busca, de acordo com os
palpites alimentados pela medida de proficincia dos indivduos.
Diante das qualidades pertinentes GLC, justifica-se satisfatoriamente o uso desta estrutura em substituio ao modelo tradicional de codificao de indivduos. Denomina-se,
ainda, programao gentica gramatical, ou simplesmente PGG, a unio entre a programao gentica e o conceito de gramtica.
se cada vez mais adaptadas, exige-se que estas evoluam artifcios capazes de
sobrepujarem-se alternadamente.
inibe a perda da diversidade e conseqente estagnao em mnimos locais, pois
elimina a vantagem evolutiva (e a disseminao de material gentico sub-timo) de
classificadores que no provem, insistentemente 7 , quo bom o so.
1.3
Organizao da Dissertao
Captulo 2
Programao Gentica
A computao evolucionria uma rea inspirada na evoluo biolgica que agrega
sub-reas especializadas em diferentes vertentes da evoluo natural.
Dois importantes ramos da computao evolucionria so os algoritmos genticos e a
programao gentica, ambos baseados no princpio darwiniano de evoluo. Estas duas
abordagem so temas deste presente captulo, privilegiando-se entretanto, a programao
gentica, que parte integrante do objeto de estudo desta dissertao.
Por compartilhar do mesmo embasamento e origem, o captulo inicia-se com uma
viso geral sobre os algoritmos genticos, construindo-se assim a base necessria para o
ingresso, suave, no universo da programao gentica.
No contexto da programao gentica, discute-se sua relao com os algoritmos genticos, bem como os conceitos especficos sobre sua natureza.
2.1
A Teoria de Darwin
Charles Darwin, em 1859, publicou um livro intitulado Origem das Espcies por
meio da Seleo Natural [15], como resultado de vrios anos de pesquisa como naturalista. Darwin dedicou parte de sua vida em uma viagem pelo globo terrestre, estudando a
relao das espcies com o seu meio-ambiente. Pde ele concluir que indivduos melhores adaptados a um certo ambiente tm mais chance de sobrevivncia, conseqentemente,
estes se reproduziro com mais freqncia, repassando suas caractersticas a seus descendentes. Isto conhecido como Seleo Natural. Ao progresso das geraes, a tendncia
que as caractersticas dos melhores indivduos sejam disseminadas de tal modo que seus
descendentes as absorvam, tornando-os, com alta probabilidade, to ou melhor adaptados em relao a seus progenitores. Assim, ao longo das geraes, esperado que uma
convergncia ocorra, ou seja, os indivduos tero caractersticas em comum. A teoria da
seleo natural utilizada por virtualmente todos os algoritmos evolucionrios.
2.2
Algoritmo Gentico AG
O algoritmo gentico[28] uma tcnica de otimizao aplicvel em domnios contnuos e/ou discretos, robusta, e que dispensa imposies de continuidade, convexidade e
diferenciabilidade da funo objetivo. Em sua forma cannica rene o poder da teoria da
evoluo e a gentica, simulando-os artificialmente no contexto da computao. A idia
consiste em, inicialmente, gerar aleatoriamente uma populao de indivduos. Estes indivduos so, como de se esperar, virtuais. Isto , eles representam computacionalmente
um candidato a uma soluo para um problema em questo, como por exemplo, valores
arbitrrios de variveis numricas candidatos raiz de uma equao de algbrica. Ento,
a cada indivduo, atribuda uma nota, que corresponde ao seu nvel de proficincia nas
equaes algbricas a nota seria proporcional a quo bem o indivduo (valor da varivel)
se aproxima da raiz da equao. Em outras palavras, uma funo de avaliao determina
a qualidade da soluo candidata. Esta nota comumente referida como aptido. Assim,
em conformidade com a teoria da seleo natural, os melhores indivduos (os que possuem
melhor aptido), tero mais chance de serem selecionados para que possam recombinar
seus materiais genticos (cruzamento). Geralmente so selecionados por iterao pares de
indivduos (pais) para o acasalamento, cada qual concebendo uma nova prole, sendo esta
composta de uma mistura dos genes de seus pais. Os descendentes, por sua vez, passam
a constituir uma nova gerao, que podem ou no conviver com indivduos das geraes
anteriores. O processo ento repetido at que algum critrio de parada seja satisfeito, tal
como nmero mximo de geraes (iteraes), tempo de processamento, convergncia da
populao, entre outros.
10
2.2.1 Reproduo
A reproduo o processo atravs do qual indivduos so inseridos nas sucessivas
geraes. Pode-se destacar dois modos distintos de reproduo utilizados nos AGs, o
geracional e o steady-state.
A reproduo denominada geracional mantm indivduos pais e filhos em populaes
distintas, evitando-se assim uma convivncia simultnea e conseqente troca de material
gentico.
Por outro lado, a reproduo dita steady-state, ou em regime permanente, permite
que pais e filhos convivam na mesma populao, isto , pode ser que ocorram cruzamentos
entre antepassados e seus descendentes.
Um adicional a estes modos de reproduo, que pode agreg-los, o chamado reproduo com elitismo. O objetivo manter intacto pelo menos o melhor indivduo da
populao, garantindo assim a preservao da melhor soluo at ento encontrada. Alm
disso, este o indivduo que sempre ter a maior chance de ser selecionado para a criao
de novas proles (pois o mais apto), assim, a tendncia que suas caractersticas (que
tendem a ser boas) sejam suficientemente disseminadas ao longo da populao. O problema deste artefato a estimulao da convergncia prematura, isto , um indivduo que
seja substancialmente superior aos demais poder dominar a populao, espalhando rapidamente suas caractersticas genticas, provavelmente estagnando o processo evolutivo
em um timo local.
2.2.2 Representao
No que concerne representao (codificao) de uma soluo candidata, pode-se
dizer que o AG, em sua forma original, utiliza um vetor de bits (codificao binria) de
tamanho fixo. Na verdade, cada indivduo possui este vetor de bits, que pode ser entendido como seu cromossomo 1 , ou seja, aquele que armazena seu material gentico. Para
exemplificar esta codificao, suponha que deseja-se procurar as razes de uma equao
do segundo grau. Neste caso, o vetor de bits est codificando dois valores de razes candidatas (nmeros inteiros ou reais) atravs, claro, de zeros ou uns. Cada posio deste
1O
termo genoma muitas vezes empregado como sinnimo de cromossomo na rea dos algoritmos
evolucionrios.
11
gene A
Alelo {0,...,7}
cromossomo
gene B
Alelo {0,...,7}
Alm do padro binrio de codificao, existem vrios outros que podem ser utilizados
pelo AG, como codificao inteira, real, entre outras. A forma de representao a escolher
depende do problema. No sero descritas neste trabalho outras formas de codificao
porque fogem do escopo e objetivo 3 .
exemplo, codifica-se duas variveis com trs bits cada. Assim, o intervalo de valores est compreendido entre 0 (20 .0 + 21 .0 + 22 .0) e 7 (20 .1 + 21 .1 + 22 .1). Ainda, nmeros reais podem tambm ser
representados (com preciso e amplitude ajustveis) por conjunto de bits, atravs de um mapeamento adequado.
3 Contudo, o leitor convidado a checar as informaes constantes em [8], [20], [10], [23], [50] e [25].
12
Considerando-se o problema de encontrar as razes de uma equao qualquer, podese exemplificar a funo de avaliao, visando a minimizao, como sendo o inverso da
distncia entre a soluo candidata (valor numrico) e o valor procurado, neste caso,
zero. Isto , quanto mais prximo de zero, melhor adaptado o indivduo. Um exemplo
trivial de uma funo de avaliao f aval , para uma equao de primeiro grau, dado
matematicamente por
faval (x) = |ax + b|
onde a e b so as constantes numricas reais da equao e x o valor do fentipo do indivduo em avaliao. Qualquer valor para x diferente da raiz da equao implica em um
retorno positivo na f aval , que assumindo-se um problema de minimizao, promove uma
baixa na aptido do indivduo neste caso a aptido inversamente proporcional ao valor
de faval .
Enquanto a funo de avaliao no necessariamente corresponde de fato a aptido do indivduo como no exemplo anterior, em que os valores eram inversamente
proporcionais, interessante convencionar, a ttulo de clareza, que a funo de aptido limite-se a quantificar to somente a qualidade do indivduo, isto , ser diretamente
proporcional habilidade deste. Nota-se, contudo, que os termos funo de aptido e
funo de avaliao so ainda comumente utilizados indiscriminadamente.
13
indivduo. Assim, a diferena entre duas solues candidatas adjacentes ser sempre
considerada como igual a um, ao contrrio da seleo proporcional aptido.
Um mtodo tpico para implementao da seleo ranking atribuir ao melhor indivduo 1, 5 vezes mais chance de ser selecionado em comparao ao indivduo mediano 4 ,
mapeando linearmente as probabilidades dos demais membros. Considerando-se tam pop
como o tamanho da populao, tem-se a funo de seleo f sel , retornando o ndice do
indivduo selecionado, definida como:
k
j
p
fsel = tam pop 1, 5 2, 25 2, 0 . rand()
onde a funo rand() devolve um nmero real aleatrio x uniformemente distribudo,
tal que 0, 0 x < 1, 0. Assim, f sel retorna ndices (inteiros) entre 0 e tam pop 1.
Finalmente, o ltimo esquema, conhecido como seleo por torneio, pode ser empregado nos AGs. Este colhe aleatoriamente um nmero n de indivduos da populao
comumente dois ou trs para competirem entre si. O vencedor, ento, ser o escolhido. A seleo por torneio, assim como a seleo por ranking abranda o problema da
convergncia prematura. Todavia, a presso de seleo pode ser ajustada de acordo com
o valor de n, isto , quanto maior n, mais tendenciosa fica a seleo para os indivduos
mais adaptados.
Crossover
O crossover o principal operador utilizado pelo AG. Usualmente, este operador atua
sobre dois indivduos (pais), produzindo dois novos indivduos (filhos). O crossover
diretamente responsvel pela recombinao das caractersticas genticas dos cromossomos dos pais. A forma mais simples do operador crossover constitui em emparelhar os
4 Indivduo
14
indivduos pais e, ento, selecionar arbitrariamente um ponto de corte e trocar estas informaes, formando a prole. Uma ilustrao deste processo pode ser visualizada na
Figura 2.2. Os cromossomos progenitores so, na figura, A e B. Quando o operador de
crossover aplicado os cdigos genticos so recombinados, formando ento a prole A
e B.
A
A
B
Analogamente, possvel estender o crossover de um ponto para quantos pontos desejarmos. Por exemplo, na Figura 2.3, exibido o crossover de dois pontos.
A
Um outro tipo de crossover produzido atravs do uso de uma mscara de bits. Uma
mscara de bits, com o mesmo comprimento dos cromossomos pais, emparelhada a
estes. Ento, para cada locus contendo o valor 0 (zero), o primeiro e segundo filho recebem o contedo do locus do primeiro e segundo progenitor, respectivamente. De modo
anlogo, porm oposto, para o valor igual a 1 (um). A Figura 2.4 mostra claramente este
processo.
0 0 1 0 1 0 1 1 0 0 1 1
A
B
A
"#
$
$%
&'
()
()
!
!! #
#"#" %
%$%$
'
)
'&'& )
)()(
"
$
$
&
(
(
!
"
$
"
$
$
&
(
&
(
!
!
#
#
%
%
'
)
'
)
B
!! #
" $#" %
$ %$
& )
( '& )
( )()(
'
15
Ainda sim, pode-se utilizar um outro crossover. Este difere um pouco dos demais, por
trabalhar com trs progenitores, simultaneamente. Alm disso, este gera apenas um filho.
Os dois primeiros pais so selecionados por algum mtodo que favorea os mais aptos,
o terceiro escolhido inversamente, ou seja, favorecendo os indivduos menos aptos. A
idia consiste em verificar se os materiais genticos dos pais so os mesmos, se forem,
ento o filho o receber. Caso contrrio, fica-se em dvida ao determinar de qual pai a
prole receber o valor do locus atual. Entra, ento, a funo do terceiro pai: como trata-se
de um indivduo ruim, o filho receber o valor oposto do contido neste locus, pois esperase que o negativo do ruim seja algo bom. Ilustrado na Figura 2.5, tem-se o esquema deste
crossover, conhecido como simplex5 .
A 0 0 1 0 1 0 1 1 0 0 1 1
B 0 1 1 0 0 0 1 0 0 1 1 1
A 0 0 1 0 0 0 1 1 0 1 1 1
C 1 1 0 1 1 0 1 0 1 0 0 1
2.2.5.2
Mutao
crossover simplex foi inicialmente proposto para codificao binria, como mostrado neste captulo.
16
2.3
Programao Gentica PG
2.3.1 Introduo
O ser humano, desde as pocas mais remotas, vem tentando automatizar seu trabalho.
Em tempos antigos, os homens dispunham apenas de ferramentas manuais, desse modo,
as ferramentas necessitavam de uma ao direta e ininterrupta do trabalhador que as manuseava. Pouco a pouco mquinas foram elaboradas, e ao passar dos tempos, elas foram
aperfeioadas, o que se traduzia em maior rapidez e automao para um trabalho que
antes era desenvolvido manualmente. O advento da era tecnolgica, especificamente o
surgimento da Informtica e afins, trouxe consigo uma nova necessidade de mo-de-obra,
o programador de sistemas. O programador de sistemas um trabalhador que desenvolve
sistemas computacionais de forma manual ou auxiliado por alguma ferramenta, participando quase integralmente de todo o processo de desenvolvimento. Insatisfeitos, os cientistas, assim como os trabalhadores de pocas passadas, tm almejado formas autnomas
de programao, denominadas auto-programao.
A programao gentica foi desenvolvida/evoluda com o intuito de abster o programador do processo manual de criao de sistemas computacionais, ou seja, a PG est intimamente relacionada ao conceito de auto-programao naturalmente limita-se ainda
cobertura de segmentos especficos dentro deste complexo e pretensioso paradigma.
A inveno da meta-heurstica PG foi atribuda a John Koza [34], mas no certo
omitir que esforos anteriores foram a base para o atual estado da PG [7], incluindo,
primeiramente, a colossal descoberta de Darwin e tambm o advento dos algoritmos genticos.
A PG relativamente uma abordagem nova e, como na natureza, est em processo
de evoluo, sofrendo refinamentos e aperfeioamentos. Esta rea est sendo alvo de
grandes pesquisas e certamente tem muito a acrescentar, no somente computao, mas
estende-se a todas as reas dependentes destas, bem como ainda instrumento para o me-
17
18
O fluxo do processo evolutivo inicia-se com a criao seguida da inicializao da populao de indivduos. A populao passa ento pela avaliao e verifica-se se o critrio
de parada foi alcanado, isto , se na populao encontra-se indivduos satisfatoriamente
adaptados. Caso negativo, o algoritmo prossegue com a aplicao dos operadores de
seleo, favorecendo os mais aptos, igualmente como nos algoritmos genticos. Ento,
aplicam-se as recombinaes e demais operadores genticos sobre os indivduos previamente selecionados. Os descendentes so assim concebidos e inseridos na populao (ou
em uma nova), de acordo com a poltica de reproduo. O fluxo entra portanto em um
lao iterativo, retornando ao ponto de avaliao (sobre os novos indivduos).
Os detalhes pertinentes das peculiaridades que dizem respeito programao gentica
so descritos e elucidados no decorrer deste captulo.
19
20
do que um vetor de bits, por exemplo. Quanto melhor for a populao inicial, mais rpida e provvel ser a convergncia para uma soluo tima. Pensando nestes fatores, so
mostrados aqui alguns mtodos[34] para a definio da estrutura do cromossomo (rvore)
de cada indivduo, no momento da criao.
2.3.4.1
Na PG interessante que se imponha limites nos tamanhos dos cromossomos (rvores), evitando assim, que as solues candidatas cresam indefinidamente, provocando
esgotamento de memria e degradao no desempenho. Um destes limites est relacionado ao momento da criao dos indivduos. Geralmente especificado por profundidade
mxima 8 .
Neste mtodo, todo comprimento entre o vrtice raiz e qualquer n terminal sempre
igual profundidade mxima especificada. Isto significa que, at se alcanar a profundidade mxima, todos os vrtices tero um ou mais filhos (funes com mais de um
argumento) e, ao se atingir a profundidade determinada, os vrtices no possuiro filhos
(funes sem argumentos, variveis ou constantes).
2.3.4.2
Diferentemente do mtodo completo, este permite que vrtices com qualquer nmero
de filhos (argumentos) sejam adicionados (aleatoriamente) no momento de criao, assim,
no necessrio que a rvore seja completa. Isto , se ocorrer em algum ramo um vrtice
sem filhos (terminal), este ramo ser encerrado.
2.3.4.3
o maior comprimento entre o vrtice raiz e os demais vrtices de uma rvore, sendo
comum a especificao de algum limite mnimo.
21
segmentos, cada qual com dez indivduos. Assim, o primeiro segmento receberia uma
profundidade mxima de 2, o segundo 3, e assim, at que o ltimo receba a profundidade 6.
2.3.4.4
Segundo Koza[34], este o mtodo mais recomendado. capaz de gerar uma ampla
diversidade de indivduos, produzindo vrias formas e tamanhos distintos de rvores. A
idia consiste em fazer com que cada metade de um segmento produzido por ramping
seja criada ou com o mtodo completo (full) ou com o mtodo livre (grow). Isto , metade
de um segmento ser criado pelo mtodo completo e a outra metade com o mtodo livre.
10 .
criado em PG.
O conjunto de terminais, denotado por T , responsvel por armazenar constantes, variveis e funes que no requerem argumentos. Um exemplo poderia ser T =
{x, y, 1.0, 2.0, }, ou talvez T = {verdadeiro, f also}, e ainda T = {vire--esquerda,
vire--direita, siga-em-frente}, entre outros.
22
Suficincia e Consistncia
dificuldade de satisfazer a condio de consistncia quando esto envolvidos diferentes tipos e estrutura de dados, tornando-a invivel ou na melhor das hipteses
forando uma adaptao crassa.
significativa quer dizer uma combinao que possua uma semntica. Por exemplo, no
haveria sentido uma combinao entre dois terminais.
12 O Captulo 3 traz uma abordagem elegante e requintada, capaz de suprir estas deficincias, ao mesmo
tempo que agrega outras vantagens.
23
cromossomo. Na Figura 2.9, tem-se uma rvore criada (A), com seu tamanho e forma
definidas e, em B, esta mesma rvore, agora inicializada.
24
Crossover
Mutao
Um outro operador gentico o chamado mutao. A idia a mesma do operador sob o contexto dos AGs, ou seja, provocar uma perturbao na informao gentica.
Este operador o responsvel pela introduo de novos materiais genticos, produzindo
uma maior diversidade, o que significa que novas regies do espao de busca podero ser
13 Entende-se
como poder de generalizao, a capacidade de uma soluo agir eficientemente em domnios no submetidos a testes pela funo de avaliao. Por exemplo, em um problema de classificao/ordenao de nmeros, se o conjunto de treinamento apenas engloba nmeros compreendidos entre 0
e 10, espera-se que o algoritmo encontrado seja capaz de ordenar nmeros alm destes, como por exemplo
de 0 a 100.
25
exploradas. Na PG, a mutao pode ser implementada da seguinte forma. Selecione, aleatoriamente, uma sub-rvore. Exclua-a e, ento, gere uma nova sub-rvore e a introduza
no ponto onde foi retirada a outra. Na Figura 2.11 tem-se um exemplo da aplicao do
operador de mutao. O cromossomo A, aps o processo, transformado em A.
No obstante, pode-se ainda empregar duas variaes da mutao usual, denominadas
mutao alelo e mutao encolhimento 14 . A mutao alelo, como o nome indica, provoca
uma alterao sobre algum alelo. Assim, aps selecionado um elemento, arbitrariamente,
este substitudo por algum outro, de tal forma que o novo alelo possua o mesmo nmero
14 Shrink.
26
A mutao encolhimento, como o nome diz, objetiva reduzir o tamanho do cromossomo (rvore), inspirada no fato de que solues menores (menos complexas) tendem a
ser mais compreensveis, e portanto desejadas. Seu procedimento consiste em, aps escolhido um elemento aleatoriamente, selecionar um filho qualquer e, ento, substitu-lo
na posio do elemento escolhido (vrtice pai), excluindo-se todos os outros filhos, juntamente com suas ramificaes. Isto compacta a sub-rvore em questo, e portanto reduz
o cromossomo como um todo. A Figura 2.13 ilustra visualmente a aplicao da mutao
27
encolhimento.
2.3.8.3
Permutao
A permutao um operador gentico que provoca uma alterao (permuta) na ordem dos argumentos de uma funo qualquer. Logicamente, este operador s se aplica a
funes com no mnimo dois argumentos. Um exemplo pode ser visto na Figura 2.14.
2.3.8.4
Edio
28
1, o operador raiz
quadrada est redundante e poderia ser eliminado. A edio pode tambm ser aplicada
em casos nos quais possvel a substituio de uma forma por outra mais simples. Por
exemplo, seria interessante trocar sen2 x + cos2 x por 1.
O problema do operador edio que ele geralmente requer um custo computacional
muito grande, sendo assim, raramente empregado.
agrupando-os em classes distitnas, sob um certo critrio. Pode ser aplicado ao reconhecimento de padres, de formas, entre outros. Como exemplo, suponha que se
queira realizar reconhecimento de caracteres em uma imagem grfica. O algoritmo
soluo seria encarregado de classificar os pixels em texto alfa-numrico. Uma importante rea da classificao a classificao de dados, onde se visa evoluir um
programa classificador capaz de ler um conjunto de amostras (contendo inmeros
atributos) de um banco de dados e ento classific-las corretamente de acordo com
o contedo de seus atributos 16 .
ordenao sua funo desenvolver algoritmos que sejam capazes de ordenar, por alguma chave, conjunto de registros. O treinamento pode ser realizado
apropriando-se de um conjunto de registros ordenados, e verificando-se quo bem
as solues candidatas ordenam estes registros. Resultados mais eficazes e elegantes surgem quando agrega-se PG tcnicas como a co-evoluo, como demonstrado
por Hillis [27].
15 Koza,
em Genetic Programming: A Paradigm for Genetically Breeding Populations of Computer Programs to Solve Problems [32], fez um trabalho bastante abrangente de enumerao dos domnios de aplicao da programao gentica.
16 No Captulo 5 so realizados experimentos neste contexto, porm integrando PG outras tcnicas, a
serem vistas nos Captulos 3 e 4.
29
robtica objetiva desenvolver robs que sejam capazes de executar uma determinada tarefa, evitando-se, dentre outras coisas, a coliso contra obstculos. Robs
podem, por exemplo, guiar-se pela coordenada da regio do ambiente, tomando decises baseadas no resultado de uma funo evoluda para um propsito particular.
Ou ainda, estender as variveis de entrada e incluir, por exemplo, dados sobre a
distncia at o obstculo, etc.
compactao de imagens teoricamente, as imagens, constitudas de pixels e co-
bsica, em uma imagem bi-dimensional, cada ponto (pixel) descrito pela coordenada (x, y) pode ser mapeado por uma funo evoluda via PG, que retorna uma cor
(cdigo) de acordo com a coordenada deste ponto. Com isto, varrendo-se a regio
da imagem, pode-se reconstru-la, apenas com a utilizao da funo evoluda.
2.4
Regresso Simblica
No intuito didtico, e visando introduzir os conceitos da PG em uma aplicao prtica, esta seo explica o que regredir simbolicamente uma expresso, como os mtodos
tradicionais implementam a regresso e qual a vantagem da utilizao da programao gentica sobre estes mtodos. Ao final, so citados exemplos de algumas classes de
aplicao onde a regresso simblica seria de fundamental importncia.
30
A funo f dita a mais adaptada (ou melhor ajustada) aos pontos fornecidos.
Uma possibilidade fazer
"
f = arg min
f F
| f (pi) Yi|q
i=1
#1
q|q1
e ainda outra
d( f ,Y ) = med{| f (p1 ) Y1 |, | f (p2 ) Y2 |, . . . , | f (pk ) Yk |}
onde med{} denota a mediana do conjunto.
Exemplo de regresso simblica
Como exemplo, suponha que deseja-se descobrir qual a melhor funo que se ajusta
aos pontos (xi , yi ) mostrados na Tabela 2.1.
xi
-1.0
-0.5
0.0
0.5
1.0
yi
2.0
0.5
0.0
0.5
2.0
31
2.5
f(x)
1.5
0.5
0
-1
-0.5
0.5
2.5
f(x)
1.5
0.5
-1
-0.5
0.5
2.5 Concluso
2.4.1.1
32
2.5
Concluso
Este captulo introduziu o conceito geral da evoluo por seleo natural, que se apresenta como a inspirao e o princpio do funcionamento das tcnicas computacionais de
evoluo denominadas algoritmos genticos e programao gentica.
Descreveu-se sucintamente os componentes do AG, como a reproduo, representao, funo de avaliao, esquemas de seleo e os operadores genticos. Prosseguiu-se
com a explanao sobre a PG, evidenciando-se a diferena crucial em relao aos AGs,
18 Mais
nomial.
especificamente eles buscam ajustar os coeficientes, como na regresso linear, quadrtica e poli-
2.5 Concluso
33
Captulo 3
Programao Gentica Gramatical
Este captulo aborda os aspectos relacionados com a representao e codificao de
indivduos, por meio gramatical, na programao gentica.
Inicia-se com a definio genrica de uma gramtica, apresenta-se os aspectos formais, notaes, a hierarquia e os tipos de gramticas. Uma maior ateno direcionada
s gramticas livre de contexto, no poupando exemplos didticos como uma maneira
conveniente de elucidar o seu conceito.
So revistas diferentes propostas de codificao alternativas e, finalmente, feita a
introduo e detalhamento da integrao da gramtica livre de contexto no mbito da
programao gentica, adotada no presente trabalho.
3.1
Gramtica
1 Uma
3.1 Gramtica
35
para { |}.
3.1.1.1
Notao Gramatical
2 Smbolos
no-terminais so aqueles que so substitudos por outros smbolos (sejam terminais ou noterminais) no momento da gerao da sentena da linguagem.
3 O significado da palavra terminal adotado no mbito das gramticas difere do conceito empregado na
programao gentica, como visto no Captulo 2. Na PG os terminais significam qualquer entidade que
no requer argumentos, isto , um n terminal (folha) da rvore. Exemplos so as constantes, variveis ou
funes que no requerem argumentos. No mundo gramatical, os smbolos terminais representam o ltimo
nvel de substituio, sendo, pois, fixados quando gerados. So os smbolos que comporo a sentena
gerada da linguagem. Em outras palavras, os terminais so os smbolos que no podem ser substitudos.
3.1 Gramtica
36
L pode ser expressa pela gramtica GL = ({<s>}, {a, b}, S, P), onde
S = <s>
e
P = {<s> ab|a<s>b}
Uma produo pode ter um smbolo no-terminal cujo lado direito uma cadeia vazia.
O objetivo expressar uma substituio nula (representada pelo smbolo especial psilon
), retirando o no-terminal da palavra sendo gerada. Por exemplo, em uma gramtica
que define parnteses balanceados (nmero de parnteses abertos igual ao nmero de
fechados)
G = ({<p>}, {(, ), }, <p>, {<p> (<p>)|<p> <p>|})
requer o artifcio psilon para que a sentena seja finita. As sentenas geradas por esta
gramtica, incluindo a sentena nula, so do tipo (), (()), ()(), (()()), . . .
3.1.1.2
Passos de Derivao
sobre o smbolo
justapostos.
5 Diz-se que uma produo compatvel quando o smbolo que encabea a produo (lado esquerdo)
o mesmo do smbolo a ser derivado.
3.1 Gramtica
37
pela esquerda ou pela direita. Isto significa que caso a derivao seja feita esquerda, o
no-terminal que ter prioridade na substituio ser sempre aquele mais esquerda. Raciocnio anlogo para derivaes direita. Os exemplos didticos presentes neste captulo
usam derivao esquerda, salvo meno contrria.
A derivao representada pelo smbolo , sendo que:
p
A gramtica pode ser omitida caso esteja implcita, podendo reduzir a representao
p
para .
<s>a<s>b
a<s>b
<s>a<s>b
aa<s>bb
3. finalmente, obtendo uma cadeia de caracteres sem smbolos no-terminais (sentena), aplicada a produo <s> ab,
aa<s>bb
<s>ab
aaabbb
<s> aaabbb
Uma srie de derivaes tambm pode ser exposta graficamente, na forma de rvore
sinttica, tambm conhecida como rvore de derivao 6 , como mostrado na Figura 3.1.
6A
rvore de derivao (sinttica) tem como propriedades: 1) Os ns internos so smbolos noterminais e, complementando, os ns folhas so smbolos terminais, 2) Um n e seus filhos imediatos
devem respectivamente formar a cabea (lado esquerdo) e o corpo (lado direito) da produo.
3.1 Gramtica
38
Esta visualizao tem um carter especial, pois as operaes genticas so vistas mais
naturalmente pela manipulao sobre rvores.
Em uma mesma gramtica, uma palavra pode ter rvores ou sries de derivaes distintas. Estas gramticas so ditas ambguas. Por exemplo, a gramtica
G = ({<s>}, {a, b, ab}, <s>, {<a> <a>a<a>|<a>b<a>|ab})
pode gerar a cadeia
abaabbab
que, por sua vez, pode ser gerada por duas ou mais rvores de derivao, como mostrado
na Figura 3.2. Por conseguinte, G ambgua.
3.1 Gramtica
39
Caminhando pelos nveis da Hierarquia, cada classe gramatical torna-se mais expressiva e engloba a classe inferior. Da mais especfica para a mais genrica, tem-se a gramtica regular (tipo 3), gramtica livre de contexto (tipo 2), gramtica sensvel ao
contexto (tipo 1) e a gramtica enumervel recursivamente (tipo 0).
Cada hierarquia expressa um nvel de restrio em relao ao tipo de produo aceitvel, sendo a gramtica tipo 0 totalmente relaxada e a tipo 3 a mais restrita. Lembrando-se
da definies V + (|| 1), , , V (||, ||, || 0), <a>, <b>, <c>, . . . representando smbolos no-terminais, e a, b, c, . . . os smbolos terminais, tem-se na Tabela 3.1 a
3.1 Gramtica
Gramtica
Tipo 0
40
Produes
Tipo 1
<a>
Tipo 2
<a>
Tipo 3
<a> a<b>|b
ou
<a> <b>a|b
enquanto uma gramtica sensvel ao contexto seria demasiadamente genrica. No entanto, a gramtica livre de contexto mostra-se perfeitamente adequada para suprir toda a
demanda necessria.
Por conseguinte, o desenvolvimento deste captulo focado na gramtica livre de
contexto, primeiramente atravs de um maior detalhamento desta e, adiante, abordandose os aspectos de sua integrao programao gentica.
3.1 Gramtica
3.1.3.1
41
Representao
Exemplos Ilustrativos
3.1 Gramtica
42
<s> <l>palavra<l>,
<l> <l><l>|,
<l> A|B| . . . |Z|a|b| . . . |z
}
A gramtica G pal produz sentenas do tipo Estapalavraaqui, cujos passos de derivao so
<s>
<s><l>palavra<l>
<l><l><l>
<l>palavra<l>
<l><l><l>palavra<l>
<l>E
<l><l><l>
<l><l><l>
<l>s
<l><l>palavra<l>
<l><l><l><l>palavra<l>
<l>t
E<l><l><l>palavra<l> Es<l><l>palavra<l>
<l>a
Est<l>palavra<l> Estapalavra<l>
<l><l><l>
Estapalavra<l><l><l>
<l><l><l>
<l>q
<l>a
<l><l><l>
Estapalavra<l><l>
Estapalavra<l><l><l><l>
<l>u
Estapalavraa<l><l><l> Estapalavraaq<l><l>
<l>i
Estapalavraaqu<l> Estapalavraaqui
A estrutura grfica das seqncias de derivaes est exposta pela rvore sinttica da
Figura 3.4.
Considere agora o seguinte exemplo envolvendo a definio de uma gramtica G pre
para gerao de expresses aritmticas na forma prefixa sobre os nmeros reais:
3.1 Gramtica
43
Figura 3.4: rvore sinttica dos passos de derivao sobre a gramtica G pal .
<exp>
<exp>+<exp><exp>
+ <exp><exp><exp>
+ 3.14 2 <exp>
+<exp><exp>
<exp>3.14
<exp><exp><exp>
+ 3.14 <exp><exp>
<exp><exp><exp>
+ 3.14 2 <exp><exp><exp>
<exp>604
<exp>2
+ 3.14 2 <exp><exp>
<exp>7
+ 3.14 2 7 <exp><exp>
<exp><exp><exp>
<exp><exp><exp>
<exp>3.2
<exp>50
Estes passos de derivao tambm podem ser vistos graficamente, na forma de uma
rvore de derivao, Figura 3.5.
Por curiosidade, a gramtica infixa das expresses aritmticas seria
3.1 Gramtica
44
45
3.2
46
pelo n pai.
cruzamento a troca de sub-rvore8 deve respeitar o rtulo atribudo ao n escolhido como ponto de corte. Isto , o cruzamento restrito aos ns que possuem
Embora esta abordagem contorne os pontos negativos da proposta inicial, ela precisa
ser modificada para cada problema. Alm disso, exige que a declarao seja feita de
forma textual (linguagem humana).
47
Funes genricas so funes que aceitam argumentos de qualquer tipo. Por exemplo, basta apenas uma funo se-ento-seno, com os argumentos do tipo lgico, t e t,
retornando t, onde t um tipo de dado qualquer, podendo ser inteiro, real, entre outros.
Sem a generalizao, seria preciso definir a funo se-ento-seno-inteiro com argumentos lgico, inteiro e inteiro, retornando inteiro; e se-ento-seno com argumentos lgico,
real e real, retornando real.
Em termos de implementao, a diferena entre uma funo comum para a genrica
que a ltima precisa ser instanciada no momento de gerao de rvores (inicializao).
Neste processo, a funo genrica amarrada pelo tipo de argumento exigido pela
funo pai se for a raiz, o argumento do tipo requerido pelo problema. Respeitando
esta restrio de retorno, a escolha da funo especfica procede livremente.
A funo genrica traz uniformidade e clareza para funes que realizam o mesmo
tipo de operao em tipos de dados distintos.
Os tipos genricos de dados, por sua vez, permitem que os tipos de dados possam ser
definidos genericamente. O principal benefcio da utilizao destes tipos que as funes
evoludas so funes genricas. Por exemplo, considere que um sistema de programao
gentica necessite evoluir a funo n-simo, que dada uma lista de um tipo qualquer t e
um inteiro n, retorna o n-simo elemento desta lista. Se t no pudesse ser declarado como
genrico, a evoluo ocorreria apenas para um tipo definido, como real ou inteiro, de cada
vez.
Basicamente, no que diz respeito aos operadores genticos, os procedimentos so
semelhantes ao descritos para o ESR, com ressalva para as funes genricas, que necessitam ser instanciadas no momento da construo da rvore.
Alguns estudos indicam que o uso de regras de sintaxe que restringem o espao de
busca tem se mostrado promissor. Haynes et al. [26], por exemplo, demonstrou superior
desempenho sobre a PG convencional, utilizando a PGTF no domnio de evoluo de
estratgias predador-presa.
No que concerne forma estrutural de restrio, a PGTF no capaz de represent-la
globalmente, limitando-se a manipul-la localmente. Isto , uma funo ou argumento
restrito apenas em relao a outra funo ou argumento. Por conseguinte, esta caracterstica fortemente orientada ao tipo inviabiliza a criao de relaes estruturais mais
48
10
de produes que podem ser selecionadas. Em outras palavras, as produes que esto
concorrendo obrigatoriamente casam com o smbolo inicial. Seguindo, o primeiro gene
lido e a produo rotulada com este nmero escolhida. Em seguida, a prxima posio
do cromossomo lida, porm, a restrio de seleo agora dada pelo primeiro smbolo
no-terminal mais a esquerda da cadeia previamente gerada, em vez do smbolo inicial.
O processo continua at que todos os smbolos no-terminais sejam substitudos.
Por exemplo, seja a gramtica da Tabela 3.2, que define uma linguagem de expresses
envolvendo seno, cosseno, soma e subtrao sobre a varivel x. As produes de mesma
cabea esto agrupadas e especificadas com nmeros romanos. Cada produo foi devidamente numerada, de acordo com o grupo a qual pertence. Por exemplo, no grupo I,
representado pelo no-terminal <exp>, existem trs escolhas, com produes numeradas
de 0 a 2.
9 De fato existe a possibilidade de se burlar esta limitao.
49
(0)
(1)
(2)
(0)
(1)
(0)
(1)
(0)
223 15
76
191 233 1
A derivao comea com a leitura do primeiro gene, 204. Existem trs produes apontadas pelo smbolo de partida (<exp>), portanto, a selecionada o resultado
de 204 mod 3, que resulta em 0, escolhendo a produo <exp> <exp> <op> <exp>.
O prximo passo ler o prximo gene, 143, escolhendo-se assim a produo substi-
tuta do no-terminal <exp> (esquerda). O mdulo 143 mod 3 igual a 2, por conseguinte, a produo eleita <var> x, que aponta para a varivel x. Nota-se que como
a cardinalidade do grupo IV um, s existe uma produo, no necessrio promo-
ver uma seleo (e nova interpretao de gene), portanto, a substituio direta, produzindo at o momento a expresso x<op> <exp>. As prximas sries so x + <exp>,
x + <preop> (<exp>), x + cos(<exp>), x + cos(<preop> (<exp>)), x + cos(sin(<exp>)), e
finaliza com a interpretao do oitavo gene do cromossomo, produzindo x + cos(sin(x))
como a expresso final.
A evoluo gramatical possui uma grande vantagem, ela lida com cromossomos lineares, sendo assim a EG pode empregar uma vasta gama de operadores genticos usados nos
11 A
quantidade de bits necessria para a codificao est intimamente relacionada com o nmero de
produes da gramtica.
50
trs alternativas podem ser pensadas: 1) eliminar os indivduos com gentipo corrompido, 2) inserir novos genes arbitrariamente e 3) rotacionar a leitura dos genes, isto ,
redirecionar ao primeiro gene quando o processo alcanar a ltima posio do cromossomo. A primeira e a segunda opo retardariam o processo evolucionrio, visto que ou
indivduos estariam sendo sacrificados ou novos materiais genticos estariam sendo indiscriminadamente inseridos, atuando como uma espcie de mutao agressiva. Ainda, a
segunda abordagem poderia provocar um crescimento incontrolado, dependendo de quo
azarada fosse a seleo das produes. A terceira alternativa, escolhida pelos autores
da EG, parece ser a mais sensata, pois absolveria os indivduos e ao mesmo tempo evitaria
a introduo massiva de novos genes. Porm, h um srio problema: a EG no garante
51
3.3
52
3.3.1 Definio
A aplicao de uma gramtica no campo da PG incide primeiramente sobre a estruturao dos programas em processo de evoluo. Define basicamente a gama de componentes ofertados (por exemplo funes, variveis e constantes) e as regras de combinaes
entre estes, assegurando-se a consistncia.
Whigham [56, 57], desenvolveu uma forma de representao baseada em gramtica
livre de contexto, conhecida como Programao Gentica Gramatical 12 , ou apenas PGG.
Na PGG, o domnio do espao de busca moldado pela gramtica, notoriamente pelas
regras de produo. Isto significa que o objetivo do processo de evoluo encontrar,
dentre todos os programas contidos neste espao de busca, aquele que melhor se adapta
ao ambiente do problema, o programa mais proficiente segundo a funo de aptido
definida para a tarefa em questo.
No satisfeito, Whigham ainda props [57], como conseqncia da insero gramatical na PG, um novo conjunto de ferramentas a dispor do processo evolutivo, dentre elas
12 Grammatically-based
Genetic Programming, Programao Gentica baseada em Gramtica ou simplesmente Programao Gentica Gramatical.
53
destacam-se duas:
possibilidade de evoluir a prpria gramtica, ou seja, modificar smbolos noterminais, terminais e produes, no decorrer da evoluo;
54
3.3.2.1
14 ,
alguns detalhes podem diferir-se para que possam ser adaptados implementao em
uma linguagem computacional.
14 Uma descrio mais minuciosa encontra-se na Seo 5.2 do captulo 5.
55
56
a partir desta. A caracterstica recursiva da Giris define uma linguagem prpria digna de
construir programas de complexidade arbitrria, respeitando-se as relaes definidas pela
gramtica.
3.3.2.2
Uma sentena gerada por uma srie de derivaes, e um indivduo na PGG exatamente isso, uma rvore contendo uma determinada seqncia (completa) de derivaes,
enraizada pelo smbolo inicial definido na GLC.
No exemplo da gramtica Giris , todos os programas devero obrigatoriamente iniciar
por
<se-ento-seno> <classe>
ou
<se-ento-seno> se-ento-seno <lgico> <se-ento-seno> <se-ento-seno>
j que o smbolo inicial o no-terminal <se-ento-seno>, encabeando duas produes
distintas.
Graficamente, como rvore sinttica, as formas iniciais possveis so visualizadas na
Figura 3.9.
Na Figura 3.9, a primeira estrutura, culminando diretamente em uma classe, tem possibilidades remotas de ser uma soluo til, no local. O motivo que o smbolo noterminal <classe> deriva obrigatoriamente em um smbolo terminal, que representa a
classe da planta ris, sendo setosa, versicolour ou virginica. Em outras palavras, a rvore classificadora fecha precocemente, classificando cegamente qualquer entrada como
57
uma e somente uma das trs possveis classes. Considerando-se eqidade probabilstica
na seleo de ambas as produes, 50% dos indivduos nasceriam virtualmente invlidos,
enquanto a outra metade seria de fato a esperana no processo evolutivo. Felizmente, a
presso de seleo tenderia a elimin-los o quanto antes, entretanto a presena de disparidade entre a ocorrncia de amostras para cada uma das classes no conjunto de treinamento
pode forar uma convergncia prematura pode-se, entretanto, pr-processar a base de
dados a fim de torn-la homognea neste quesito. De qualquer forma, existem diversas
maneiras de se contornar este tipo de construo, se necessrio for. Destacam-se:
a restrio gramatical por meio da adio de produes;
a proibio no momento da criao dos indivduos;
a atribuio de uma baixa probabilidade para escolha desta produo;
A primeira proposta sobre a modificao gramatical poderia ser alcanada alterando-se as
produes de Giris , como por exemplo:
<se-ento-seno>
<a>
Que seria o suficiente para restringir a raiz dos programas a aceitar unicamente a forma
condicional. Entretanto, em raros casos onde a soluo trivialmente dada diretamente
por uma classe, esta abordagem certamente prejudicar o processo. A alternativa para
a proibio no momento da criao dos indivduos tambm junta-se a esta observao.
Caso decida-se por um tratamento especial acerca da formao precoce, talvez o melhor
procedimento seja conseguido atribuindo-se uma pequena taxa para a seleo da produo
trivial.
Criao no-determinstica
Geralmente, na computao evolucionria, adotado o mtodo aleatrio de criao
dos indivduos, assim tambm funciona com a programao gentica gramatical. Na PGG
o indivduo formado por uma seqncia no determinstica de derivaes, que resulta
em uma sentena, isto , at a resoluo completa de todos os smbolos no-terminais.
O processo de criao de um indivduo inicia-se, como descrito, pela fixao do smbolo
58
de partida (no-terminal) como a raiz da rvore. Neste ponto sorteia-se uma produo
dentre todas produes encabeadas pelo smbolo inicial e adiciona-se esta como filha
do smbolo de partida. Seguindo, para cada smbolo no-terminal mais esquerda (caso
haja mais de um), escolhe-se uma produo encabeada por este smbolo e insere-a como
filha deste smbolo no-terminal pai. O procedimento assim repetido at que todos os
smbolos no-terminais tenham sido resolvidos em smbolos terminais, formando ento a
sentena. De forma usual, a ordem de substituio dos smbolos no-terminais realizada
recursivamente em pr-ordem
15 .
percurso em pr-ordem tambm conhecido como percurso em profundidade. realizado recursivamente, visitando-se primeiramente a raiz, o filho esquerda (recursivamente) e ento o filho direita
(tambm recursivamente).
59
16 .
notao derivativa compreende em descobrir o nmero mnimo de passos de derivao para se criar
<a> b, onde b .
17 O espao restante de expanso o valor da subtrao m n, onde m a profundidade mxima e n o
nvel atual da rvore em formao.
<a>
60
tude participar do clculo. Este tratamento relevante porque o objetivo rotular com o
somatrio mnimo, evitando-se assim a eliminao (devido restrio de profundidade)
desnecessria de produes que poderiam ter um menor valor de rotulao.
A aplicao do Algoritmo 3.3 na gramtica Giris produz o esquema de rotulao mostrado na Tabela 3.4. Os valores dos rtulos esto cercados por parnteses.
Naturalmente, o algoritmo de construo tem que ser modificado para respeitar a restrio quanto profundidade. O Algoritmo 3.4 a verso com limite de profundidade
adaptada do Algoritmo 3.2 de criao de indivduo.
Algoritmo 3.4 Criarvore (<s>, pmax )
Entrada: smbolo inicial <s> e profundidade mxima p max
sorteie uma produo da forma <s> , tal que o rtulo pmax , V + ;
substitua <s> por <s> , fazendo cada smbolo de ser um filho de <s>;
para cada no-terminal <n> faa
Criarvore (<n>, pmax 1);
fim para
<se-ento-seno>
<lgico>
<relacional>
<numrico>
<atrib-numrico>
<const-numrica>
<classe>
61
(2) <classe> |
(5) se-ento-seno <lgico> <se-ento-seno> <seento-seno>;
(5) e <lgico> <lgico> |
(5) ou <lgico> <lgico> |
(5) no <lgico> |
(4) <relacional>;
(3) maior <numrico> <numrico> |
(3) menor <numrico> <numrico> |
(3) igual <numrico> <numrico>;
(2) <atrib-numrico> |
(2) <const-numrica>;
(1) atr1 |
(1) atr2 |
(1) atr3 |
(1) atr4 ;
(1) const1 |
(1) const2 |
(1) . . . | constn ;
(1) setosa |
(1) versicolour |
(1) virginica;
exceo pode ocorrer na utilizao do mtodo completo, que exige que todo comprimento entre o
n raiz e qualquer n folha seja igual profundidade mxima estipulada para a rvore (vide Seo 2.3.4). A
possibilidade de cumprir fielmente esta exigncia est condicionada flexibilidade estrutural que a gramtica impe. De qualquer forma, pode-se instruir a criao a aproximar-se ao mximo do mtodo completo.
62
populao.
3.3.2.3
A avaliao de um indivduo na PGG, assim como na PG, se resume a medir o desempenho de um programa contra um certo conjunto de dados (treinamento). O nmero
de amostras deste conjunto de dados depende da necessidade do problema. Um dado da
amostra pode ser unidimensional, como um nmero real do problema de regresso simblica de uma varivel, bem como n-dimensional, como o caso da classificao de uma
base de dados que envolvem vrios atributos, por exemplo, a classificao das classes da
planta ris.
A avaliao, assim, a ponderao do resultado de vrias execues do programa para
cada amostra de dados. Um objetivo usual a minimizao da soma das discrepncias
encontradas a cada amostra apresentada, entretanto, a escolha desta medida deve ser em
funo do carter do problema.
O cerne de qualquer avaliao a execuo do programa. E para isto o sistema precisa
interpretar de modo apropriado o programa, a rvore gramatical. Em termos genricos,
uma rvore de derivao possui trs componentes:
estrutura hierrquica - prov o fluxo de execuo;
smbolos no-terminais - mantm a integridade estrutural;
smbolos terminais - fornecem a funcionalidade.
Dentre os trs componentes, o estgio de execuo/avaliao requer apenas dois deles, a
estrutura hierrquica e os smbolos terminais.
At o momento, um indivduo uma rvore contendo smbolos no-terminais e terminais, mas sem uma semntica definida, ou seja, uma rvore no funcional. Fundamental
para o processo de avaliao poder executar o programa, e os componentes chaves
que de fato importam nesta etapa so os smbolos terminais (hierarquicamente estruturados), que formam a sentena da derivao. No entanto, estes smbolos terminais no tm
vida, necessitam portanto serem vinculados s rotinas que computam funes, retornam
constantes ou trabalham apropriadamente as variveis (ou atributos). Em outras palavras,
os no-terminais no participam do processo de execuo.
63
A Tabela 3.5 mostra a amarrao para a gramtica Giris que provm a semntica funcional dos smbolos terminais. Nota-se, como esperado, que os atributos (variveis), cons
se-ento-seno
e
ou
no
igual
maior
menor
const1 . . . constn
atr1 . . . atr4
setosa, versic., virginica
Retorno
classe
lgico
lgico
lgico
lgico
lgico
lgico
numrico
numrico
classe
Funo
Argumentos
SeEntoSeno (lgico, classe, classe)
E
(lgico, lgico)
Ou
(lgico, lgico)
No
(lgico)
Igual
(numrico, numrico)
Maior
(numrico, numrico)
Menor
(numrico, numrico)
tantes e as classes, funes de aridade zero, apenas retornam valores, isto , no requerem
argumentos. conveniente ressaltar que para os atributos, ou variveis do programa, os
valores retornados so dinmicos, ou seja, dependendo da amostra comparada, os atributos tero um conjunto prprio de valores retornados para o programa.
O Algoritmo 3.5 computa recursivamente o resultado da execuo de um programa. O
argumento requerido um smbolo terminal, podendo ser uma funo, constante, atributo
ou classe (respeitando-se a estrutura imposta pela gramtica). Inicia-se a execuo passando como argumento o primeiro smbolo terminal da rvore sinttica. Tendo a estrutura
gramatical Giris como referncia, a funo ExecutaPrograma poderia ser semeada com o
terminal se-ento-seno ou qualquer uma das classes, setosa, versicolour ou virginica.
Algoritmo 3.5 ExecutaPrograma (T)
Entrada: smbolo terminal T
Retorno: o valor de T ou o resultado da execuo da funo ligada a T
se NmeroArgumentos(T) > 0 ento
retorne Funo[T](ExecutaPrograma (T.arg1 ), . . ., ExecutaPrograma (T.argn ));
seno
retorne T;
fim se
64
disparidade acumulada entre a sada da funo e o valor esperado, ao longo das execues.
3.3.2.4
A seleo na PGG segue exatamente a forma como realizada na programao gentica convencional.
3.3.2.5
Operadores Genticos
19 .
o segundo causa mudanas aleatrias em algum ponto do gentipo do indivduo (Captulo 2).
As adaptaes necessrias para a integrao com a programao gentica gramatical
concernem em manter coesa a estrutura definida pela gramtica. Isto , os operadores
genticos s podem ser praticados respeitando-se as imposies definidas pelos smbolos
no-terminais da rvore de derivao. As restries visam garantir que os novos indivduos criados/modificados tambm sejam membros da linguagem definida pela gramtica
do problema.
Diferentemente da avaliao, o papel dos smbolos no-terminais nas operaes de
cruzamento e mutao torna-se evidente, enquanto os smbolos terminais e a estrutura da
rvore tornam-se dispensveis.
Cruzamento
O crossover cria novos indivduos misturando o contedo gentico de seus pais. Na
codificao por rvores de deciso, o cruzamento significa a troca de sub-rvores, gerando
dois novos programas.
Os pontos de cruzamento esto restritos a operarem somente sobre os smbolos noterminais, e ele realizado da seguinte forma. Escolhe-se inicialmente um smbolo noterminal do primeiro indivduo. Em seguida, seleciona-se um no-terminal na rvore
19 Outros
operadores vistos no captulo 2, como a mutao alelo, mutao de encolhimento (shrink), permutao e edio, podem tambm ser agregados PGG. O requisito que estas operaes sejam realizadas
obedecendo-se a estrutura gramatical da rvore, de forma anloga adaptao dos operadores padres de
crossover e mutao.
65
do segundo pai, mas com a restrio de que este smbolo seja igual ao selecionado no
primeiro indivduo. Em outras palavras, as razes das sub-rvores selecionadas dos indivduos pais tm que compartilhar o mesmo smbolo no-terminal. A Figura 3.10 mostra
graficamente uma aplicao do operador crossover. Os indivduos A e B so selecionados para a recombinao gentica, sob algum critrio de seleo previamente definido.
Sorteia-se um smbolo no-terminal em A e B, no exemplo o smbolo <relacional>. As
sub-rvores enraizadas pelo smbolo escolhido so ento comutadas, cada qual gerando
um novo indivduo, A e B.
66
20 .
S x1 . . . xn <a> z1 . . . zi x1 . . . xn y1 . . . ym z1 . . . zi
+
S a1 . . . a j <a> c1 . . . ck a1 . . . a j b1 . . . br c1 . . . ck
o crossover sobre o smbolo no-terminal <a> produzir duas novas sentenas da forma
+
S x1 . . . xn <a> z1 . . . zi x1 . . . xn b1 . . . br z1 . . . zi
+
S a1 . . . a j <a> c1 . . . ck a1 . . . a j y1 . . . ym c1 . . . ck
20 Na
realidade, todo indivduo construdo sob a mesma gramtica possui pelo menos um smbolo noterminal em comum: o smbolo de partida. Entretanto, o smbolo inicial representa a raiz da rvore de
derivao, e o cruzamento sobre a raiz sinnimo de clonagem, ou seja, no so misturados os materiais
genticos. Sendo assim, o procedimento de crossover pode agregar de forma vantajosa a restrio de corte
apenas em ns abaixo (filhos) da raiz.
67
O crossover seletivo , nomeado assim por Whigham, permite que o cruzamento atue
Probabilidade
40%
50%
Tabela 3.6: Exemplo de parmetros para o crossover seletivo sob a gramtica G iris .
As alteraes no Algoritmo 3.6 relativas introduo do cruzamento seletivo so triviais, bastando delimitar a seleo de no-terminais aos estipulados nos parmetros, bem
como agir em funo da probabilidade. Um detalhe, no entanto, refere-se a possibilidade
de uma das rvores no possuir qualquer smbolo no-terminal apresentado nos parmetros. Neste caso, o crossover retornado como nulo.
Mutao
O objetivo da mutao modificar parte do material gentico de um indivduo de
forma aleatria, buscando assim explorar novas direes e aumentar a diversidade. De
forma anloga natureza, a ocorrncia da mutao na programao gentica geralmente
rara, ocorrendo sob baixas probabilidades.
A mutao segue a mesma filosofia do cruzamento na PGG, isto , est condicionada
ao smbolo no-terminal sorteado. Diferentemente do crossover, a mutao opera sobre
um nico indivduo por vez. Sinteticamente, escolhe-se aleatoriamente um smbolo noterminal da rvore de derivao do programa, ento, remove-se esta sub-rvore indexada
pelo smbolo e a substitui por uma outra, criada como na gerao inicial do indivduo, porm, o smbolo inicial o no-terminal sorteado. A Figura 3.11 ilustra o processo de mutao na programao gentica gramatical. Primeiro sorteia-se um smbolo no-terminal
da rvore A, <se-ento-seno>, elimina-se a sub-rvore enraizada pelo smbolo e ento a
substitui por outra cuja raiz tambm o no-terminal <se-ento-seno>, gerando a rvore
A.
O Algoritmo 3.7 realiza a mutao sobre uma rvore de derivao, aceitando tambm
68
S x1 . . . xn <a> z1 . . . zi x1 . . . xn y1 . . . ym z1 . . . zi
modificada para
+
S x1 . . . xn <a> z1 . . . zi x1 . . . xn a1 . . . am z1 . . . zi
De forma semelhante ao cruzamento, pode-se guiar a aplicao do operador de
69
Subconjunto admitido
= {<lgico>, <classe>}
= {<relacional>}
Probabilidade
10%
5%
Tabela 3.7: Exemplos de parmetros para a mutao seletiva sob a gramtica G iris .
3.3.2.6
O mtodo de insero tratado da mesma forma que na programao gentica convencional. Basicamente, dependendo do modelo, ou a populao totalmente recriada
e substitui a anterior (geracional) ou os novos indivduos so inseridos juntamente com
outros da gerao anterior (steady-state).
Gramtica
vantajoso manter a definio da gramtica desacoplada do sistema, possibilitandose assim modific-la sem a necessidade da recompilao do programa. Contudo, alguns
aspectos devem ser respeitados
qualquer smbolo no-terminal das produes, obrigatoriamente, em algum caminho, leva a um smbolo terminal;
70
todo smbolo terminal necessariamente possui uma ligao funcional, que fornecelhe a capacidade de execuo.
3.3.3.2
21 O
3.4 Concluso
71
3.4
Concluso
Em suma, este captulo descreveu a unio da programao gentica com a codificao por gramtica livre de contexto, bem como as adaptaes necessrias nos estgios
evolucionrios, tendo a PG convencional como base. Iniciou-se com a introduo do conceito geral de gramtica, para ento focar-se na GLC. Seguidamente, algumas propostas
de representao na PG foram revistas e levantados seus aspectos positivos e negativos.
Tambm comentou-se algumas questes relativas implementao, como a otimizao
do ncleo da avaliao.
Mostrou-se que a PGG fornece uma interface clara e exata de representao, permitindo que o processo evolutivo corra rigorosamente de acordo com a estrutura representativa do problema, seja pela distino dos dados ou pela utilizao de relaes estruturais
mais complexas.
Finalmente, a programao gentica gramatical um dos mdulos deste trabalho, e
trabalha em conjunto com o modelo co-evolutivo, o qual assunto do prximo captulo.
Captulo 4
Co-evoluo Amostra-Classificador
A co-evoluo inserida no contexto da computao serve para pelo menos dois propsitos: o melhor entendimento da natureza atravs da simulao de um modelo simplificado de co-evoluo, ou como inspirao para problemas outros, geralmente envolvendo
otimizao. Dentro do contexto deste trabalho, a co-evoluo utilizada na pretenso
egosta de trazer a inteligncia biolgica, construda durante milhes e milhes de anos,
para o universo computacional, que ainda engatinha.
Uma das caractersticas louvveis da co-evoluo poder, alm de enriquecer a resoluo de problemas j atendidos por tcnicas tradicionais, ampliar o domnio de aplicaes,
elevando a utilidade da computao evolucionria. Dentre esse grupo de novos problemas, esto aqueles que no lidam com referenciais absolutos de qualidade de soluo,
como a descoberta de estratgias de jogos.
O presente captulo elucida, sob a tica computacional, conceitos que tangem a coevoluo, destinando sua utilidade ao desenvolvimento de um sistema classificador de
amostras de dados. Inicia-se com a explicao e formalizao do termo co-evoluo,
discorrendo e categorizando os variados modelos co-evolutivos. Segue concentrando-se
na co-evoluo competitiva, citando e descrevendo importantes trabalhos desenvolvidos,
inclusive o mais influente nesta dissertao. Tambm se discute a aptido cumulativa,
que construda incrementalmente e se mostra promissora. Finalmente, detalha-se o
sistema co-evolutivo amostra-classificador, considerando-se a forma acabada, integrado
programao gentica gramatical.
4.1 Co-evoluo
4.1
73
Co-evoluo
A interao entre indivduos, cada qual afetando a probabilidade de sobrevivncia/reproduo de outros indivduos, um fato intrnseco na natureza, virtualmente afetando qualquer espcie [38] 1 . As interaes existem em variadas formas (como por
exemplo a competio por recursos naturais ou, a cooperao) e graus (a caa de um predador sobre a presa, bem como a refeio do peixe rmora obtida dos restos alimentares
do tubaro). Na linguagem biolgica, este fenmeno conhecido como simbiose 2 .
A seleo natural recproca de organismos em simbiose chamada de co-evoluo.
Em outras palavras, evoluem concomitantemente aqueles seres que de alguma forma so
interdependentes. Se o indivduo A afeta o sucesso de sobrevivncia e reproduo de B
(esto em simbiose), ento a evoluo de A implica em uma resposta co-evolutiva de B,
e vice-versa. A resposta co-evolutiva depende do tipo de relao envolvida entre os organismos 3 . Por exemplo [16], algumas famlias de aves, como o cuco, depositam seus ovos
em ninhos alheios a fim de terem seus ovos chocados por outras aves, poupando-se assim
preciosos recursos. Entretanto, este comportamento induz perdas ao hospedeiro, que estaria desperdiando esforos atravs do compartilhamento de recursos, tornando o processo
mais dispendioso e possivelmente comprometendo a sobrevivncia da prpria prole. Esta
tenso acaba criando uma corrida armamentista, onde o cuco tende a aperfeioar o mimetismo dos ovos, enquanto a ave parasitada forada a adquirir melhores habilidades
de discriminao de ovos. Os filhotes de cuco bem camuflados tendero a sobreviver e
conseqentemente passar seus genes de bons enganadores adiante. Por sua vez, as
aves hospedeiras com boa capacidade distintiva podero distribuir mais recursos prpria
prole, aumentando a expectativa de sobrevivncia destes, contribuindo assim para que os
genes perspicazes caminhem adiante.
Um outro exemplo de interao entre espcies a constituio do lquen 4 , como
resultado da associao entre algas e fungos. Neste modelo, de benefcio mtuo, a alga
realiza a fotossntese e cede ao fungo parte da matria orgnica sintetizada. O fungo, por
1 Teoricamente
4.1 Co-evoluo
74
sua vez, fornece proteo e cede-lhe tanto umidade como sais minerais.
Simbiose
De Bary [17] foi o primeiro a cunhar a palavra simbiose na noo de convivncia entre animais de diferentes espcies, em contraposio ao termo previamente definido por
Van Beneden [53], cujo significado aproximava-se dos conceitos de mutualismo e comensalismo. Entretanto, o conceito de De Bary se restringe ocorrncia de simbiose entre
espcies, excluindo a relao simbitica entre indivduos. A Definio 4.1.1 amplia esta
viso e engloba interaes inter-individuais, abrangendo inclusive relaes de parentesco.
Definio 4.1.1 A simbiose definida como o relacionamento entre dois indivduos onde
a aptido 5 de um indivduo afeta diretamente a aptido do outro.
Entende-se por afeta diretamente as interaes indivduo-indivduo, onde no h
intermdio de terceiros, no importando ainda com que intensidade esta apresentada.
Um gnu est em simbiose com a vegetao de que se alimenta (e vice-versa), mas um
eventual predador (carnvoro) de gnus no simbionte com a vegetao que alimenta o
gnu, apesar de afet-la indiretamente 6 . Por outro lado, a definio de simbiose permite
tambm sua ocorrncia alm do relacionamento corpo-a-corpo. Por exemplo, pode-se
imaginar em um cenrio de escassez de recursos hdricos, um animal A se hidrata em
uma certa fonte, afetando diretamente a aptido do animal B, que posteriormente alcana
a mesma fonte. Neste caso, o animal A modifica o ambiente que repercute diretamente
em B, sem a mediao de outro indivduo, portanto, h simbiose.
5A
4.1 Co-evoluo
75
4.1.1.2
Co-evoluo
Definio 4.1.2 A co-evoluo intra-populacional ocorre quando parte de seus indivduos esto em simbiose entre si. A co-evoluo entre populaes ocorre quando indivduos de uma populao esto em simbiose com indivduos de outra.
Nota-se que a Definio 4.1.2 tambm prev a co-evoluo interna prpria populao, pelo fato da possvel existncia de simbiose entre seus membros. Por exemplo,
perfeitamente vivel imaginar situaes em que a relao entre indivduos da mesma
populao possa cada qual contribuir com sua sobrevivncia, afetando-se assim suas aptides. Seria portanto insensato tratar a evoluo desta populao sem considerar a interao entre seus indivduos.
4.1 Co-evoluo
4.1.2.1
76
Aliados descrio textual dos tipos co-evolutivos, esto a notao por meio de smbolos e a representao grfica 8 . Ambos clarificam e ao mesmo tempo sintetizam o teor
de uma forma particular de co-evoluo.
Supondo que um indivduo A esteja em simbiose com o indivduo B, dependendo da
natureza da relao de convivncia de ambos, estas so representadas como:
A * B quando a aptido de A afeta diretamente a aptido de B.
+
4.1.2.2
Comensalismo
Neste tipo de co-evoluo, um organismo (comensal) se beneficia de outro (hospedeiro) sem que este seja prejudicado. Simbolicamente esta simbiose representada por
8 Tambm
4.1 Co-evoluo
77
4.1.2.3
Amensalismo
4.1 Co-evoluo
78
seja, assim como o comensalismo, possui fluxo nico. Formalmente esta relao sim
Mutualismo
simbiose
mutualista
por
Simbionte A * Simbionte B
4.1 Co-evoluo
79
11 .
4.1.2.5
Predatismo
12 ,
Representa-se simbolicamente por Predador * Presa e Presa * Predador. A Figura 4.5 mostra graficamente o fluxo de interao entre predador e presa.
Por tratar-se de relaes freqentes na natureza (no nvel macroscpico), so inmecapaz de provocar um crculo vicioso de respostas e contra-respostas.
11 O exemplo encaixa-se melhor como mutualismo facultativo (protocooperao).
12 Alguns autores consideram o predatismo e parasitismo como formas distintas de simbiose. A diferena
principal reside no fato de que o predatismo envolve o sacrifcio da presa, enquanto que no parasitismo o
parasita sobrevive s custas do hospedeiro, sendo este apenas haurido (mesmo que eventualmente custe-lhe
a vida). Difere-se do predatismo tambm por: maior especializao, maior taxa de reproduo e habitat no
hospedeiro.
4.1 Co-evoluo
80
4.1 Co-evoluo
4.1.2.6
81
Competio
A competio se apresenta quando indivduos pleiteiam recursos, geralmente limitados. Os recursos podem ser alimentao, gua, territrio, direito de acasalamento, entre
outros. Isto significa que quanto maior a aptido de um competidor, obrigatoriamente
ser menor a aptido do outro, e vice-versa. Em outras palavras, quanto mais recursos
um competidor obtm, menos restar ao concorrente, afetando assim suas chances de
sobrevivncia e reproduo.
A
relao
simbitica
de
competio
portanto,
descrita
por
Pode-se tam-
A competio tende a se agravar quando espcies de animais ou plantas tm necessidades semelhantes e vivem sob recursos limitados. Neste caso a disputa torna-se freqente e
acirrada, obrigando muitas vezes espcies em desvantagem competitiva a migrarem para
outros nichos ecolgicos.
Os exemplos de competio na natureza tambm so abundantes, seja intra-especfica
(como disputas pelo harm) ou interespecfica (por territrio, alimentao, etc.). Entre
espcies, tem-se tambm, por exemplo, as eternas batalhas entre felinos e hienas, que
disputam, entre outras coisas, presas e territrios. Ou ainda, a competio por pastagens
entre o gado e gafanhotos. Na forma intra-especfica, a emigrao forada dos lmingues 13 em resposta superpopulao um outro exemplo de competio.
Percebe-se que a co-evoluo competitiva impe uma alta presso de seleo baseada
13 Designao
de pequenos roedores dos gneros Lemmus e Dicrostonyx, das regies rticas, que se alimentam de cascas de rvores, musgos, lquens e razes. A espcie europia L. lemmus conhecida pela
migrao em massa, e que, quando chega ao mar, nele se precipita em grande nmero.
4.1 Co-evoluo
82
em quo competitivo o cenrio de disputa. A competio conta com graduaes de intensidades diferentes, variando da mais leve e espordica disputa at constantes e mortais
confrontos. Em cada uma destas, a natureza recompensa aquela parte melhor adaptada
para angariar recursos, sejam quais forem. Esta presso sobre os competidores fora-os
a desenvolverem novos e melhores arsenais a fim de vencerem a concorrncia. Se por
exemplo competidores de uma espcie A evoluem um tipo de arma eficaz, certamente
estaro em vantagem sobre a espcie concorrente B, trazendo detrimento aptido desta.
Todavia, este fenmeno acresce a presso de seleo em B, que forosamente privilegia
nesta espcie aqueles indivduos que de alguma forma possam fazer frente ao novo ferramental da espcie A, com o risco de extino se nenhuma contra-arma de sucesso for
proposta14 .
A noo de co-evoluo por competio extrapola o universo natural e torna-se aplicvel em diversos outros domnios, especialmente nas relaes humanas. por exemplo
o caso notrio e conhecido da chamada corrida armamentista, um termo cunhado durante a Guerra Fria, que descrevia a co-evoluo armamentista entre os Estados Unidos e
a Unio Sovitica. Cada uma das naes objetivava ter em mos o maior poderio blico,
visando a dominao em um possvel confronto militar. Para tanto, alm do recrutamento
interno para pesquisa e desenvolvimento de novas armas de destruio, as superpotncias
tambm investiam em tecnologia de espionagem 15 , possibilitando assim conhecer o potencial do inimigo e ento focalizar-se em meios de anul-lo ou super-lo. O paralelo com
a natureza biolgica direto. A soberania (aptido) de uma das naes inversamente
proporcional ao poder blico de outra.
Do ponto de vista da computao evolucionria, a co-evoluo por competio naturalmente uma ferramenta atraente. A presso evolucionria criada pelo conflito de interesses tende a proporcionar indivduos melhor adaptados, indivduos capazes de realizar
progressivamente melhor determinadas tarefas. A seo seguinte descreve os trabalhos
em computao evolucionria inspirados no modelo competitivo de co-evoluo.
14 Em
4.2
83
16 .
plo leque de potenciais aplicaes, conceito direto, e pela sua exmia capacidade como
instrumento de otimizao.
Esta seo segue com a descrio de alguns trabalhos em computao evolucionria
considerados cones no ramo de co-evoluo por competio.
bons resultados tm sido obtidos com outros modelos co-evolutivos. De Jong e Potter [18],
por exemplo, reportaram sucesso na utilizao de formas cooperativas de co-evoluo.
17 Do ingls Iterated Prisoners Dilemma IPD. O dilema do prisioneiro um problema clssico da
teoria dos jogos, formulado pela primeira vez pelo matemtico Albert W. Tucker, que tem interessantes
repercusses na filosofia poltica e mesmo na cincia poltica.
B em silncio
B acusa A
A em silncio
A e B obtm 6 meses
B solto; A obtm 10 anos
84
A acusa B
B obtm 10 anos; A solto
A e B obtm 6 anos
O objetivo de cada suspeito , naturalmente, minimizar sua pena de deteno. Entretanto, a condenao depende de como se comporta seu companheiro. Tem-se ento
criado o dilema: deveria um prisioneiro cooperar (permanecer-se em silncio) esperando
por uma pena mais branda ou acusar seu parceiro, na esperana de que este omita-se e
arque solitariamente com a condenao mxima correndo o risco entretanto de ambos
serem egostas e sofrerem com uma deteno maior?
No Dilema do Prisioneiro Iterado so realizadas repetidas rodadas de interrogatrios,
objetivando-se portanto, a minimizao da soma total das penalidades. Ainda, cada suspeito tem conhecimento do comportamento anterior de seu comparsa memria. Isto
permite o desenvolvimento de estratgias complexas, baseando-se no histrico de respostas do companheiro.
Em 1984, Axelrod, no seu livro intitulado The Evolution of Cooperation [5], promoveu uma competio de estratgias para o DPI, enviadas por especialistas da rea de teoria
dos jogos. Cada estratgia jogava contra todas as outras, em um nmero determinado de
iteraes mas no de conhecimento dos estrategistas. Curiosamente, a estratgia vencedora era bastante simples, guiada pela reciprocidade: iniciava-se permanecendo em
silncio, e nas demais rodadas apenas repetia o comportamento do oponente. Esta estratgia denominada Tit-For-Tat. Dentre algumas caractersticas da TFT, est o fato dela
ser bondosa
18
(nunca acusa sem ser antes acusada), tem memria curta (apenas uma
19
[6], Axelrod
85
86
20
trada da rede. Nos pontos onde existem ligaes verticais, o i-simo elemento comutado
com o j-simo (i < j) somente se o valor do elemento da posio j for menor do que o
elemento em i.
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
21
22
87
88
i=1
nm
= n1
2i
89
25
90
27 ,
Modelo de Co-evoluo
Inspirado na abordagem desenvolvida por Hillis [27], Paredis serviu-se de duas populaes, a primeira composta por redes neurais e a segunda de padres de entrada, em que
cada indivduo constitui uma amostra (ponto). Porm, de fato, esta ltima no envolve
uma real populao, no sentido de que no existe modificao no material gentico de
seus indivduos, isto , no h recombinao ou mutao. A explicao trivial, dados
em classificao (como os deste trabalho) so pontos fixos e imutveis, perdem o sentido
se modificados.
26 Os autores acreditam que a linguagem genrica usada para a descrio das estratgias tenha contribudo
91
passar por maior provao (mais encontros), enquanto os menos adaptados so pouco convocados, devido condio comprovada de baixa qualidade, portanto irrelevante para a
evoluo. Este processo interessante e demonstra um ponto importante: a co-evoluo
direciona a busca para os testes mais difceis, os exemplos no resolvidos, poupando-se
assim recursos computacionais que certamente seriam desperdiados na tentativa repetida
92
4.2.4.2
Aptido Cumulativa
Em vez da tradicional aptido atribuda ao indivduo aps sua avaliao, Paredis desenvolveu um sistema cumulativo, originado no conceito de energia, fruto de um trabalho prvio bem sucedido, de prpria autoria [42]. Neste modelo, uma rede neural representando um animal mapeia um ambiente simulado em aes motoras, nos mesmos
moldes do mapeamento entre uma amostra e sua respectiva classe. Este animal est em
constante interao com o ambiente, acumulando energia de acordo com sua capacidade de, por exemplo, alimentar-se. Por outro lado, o animal pode sofrer baixas em sua
energia, seja por algum ferimento ou incapacidade de angariar recursos. Um detalhe interessante que, assim como na computao evolucionria, o animal tem sua probabilidade
de reproduo proporcional sua quantidade de energia; isto indica uma animadora similaridade com o modelo evolucionrio e, portanto, passvel de ser adaptado.
No contexto dos algoritmos genticos, a aptido cumulativa funciona da seguinte maneira. Inicialmente, um nmero finito, tambm conhecido como ciclo, determinando a
memria cumulativa definido, possibilitando que a aptido do indivduo concentre-se
nos resultados dos encontros mais recentes 28 . No existe uma forma determinstica para
se definir o valor timo do ciclo (que pode depender do variveis outras do domnio em
questo), entretanto, Paredis, apesar de no revelar o meio, parece ter encontrado um nmero mgico 29 , um ciclo de tamanho 20. Dessa forma, a aptido dos indivduos, isto ,
a grandeza usada na seleo natural, calculada pela soma dos valores acumulados nos
ltimos 20 encontros.
Em termos biolgicos, a aptido cumulativa, em comparao com a aptido nica e
invarivel, promove um paralelo mais fiel, quando permite ao objeto em evoluo uma
avaliao freqente e dinmica. o que se nota na natureza, onde organismos esto sempre postos prova pelo ambiente, e suas chances de reproduo e sobrevivncia esto
diretamente ligadas ao histrico de situaes pelas quais o organismo em questo enfren28 Poder-se-ia
tambm definir uma funo (linear ou exponencial) que decasse ao longo do tempo,
tornando-se assim os resultados de confrontos antigos com menor peso na soma total da aptido do indivduo.
29 Na gria da programao computacional, o nmero mgico uma constante especial (numrica) designada para algum propsito. O seu uso geralmente indica m estilo de programao, pois torna o cdigo de
difcil leitura, entendimento e manuteno.
93
Pseudo Algoritmo
94
foi concluda. De posse disto, uma gerao steady-state, co-evolucionria e com aptido cumulativa, atuando sobre uma populao de tamanho n, contabiliza tamanho ciclo .n
confrontos. Supondo tamanhociclo como 20, tem-se 20.n avaliaes. Ainda que configure mais iteraes que o trabalho de Hillis ou Angeline e Pollack, preciso salientar
que no escopo do problema de classificao, esta avaliao representa o encontro entre o
classificador e apenas uma amostra.
4.2.4.4
Experimentos
Paredis realizou experimentos onde a tarefa evoluir redes neurais com habilidades
para classificar (mapear) pontos pertencentes a quatro classes, espalhados no domnio
[1, 1] [1, 1], como na Figura 4.12.
95
30
96
gentica, a evoluo tem fim geralmente terico quando a populao (ou membros
desta) em real evoluo tem a proeza de superar toda a populao de exemplos.
4.2.4.5
No algoritmo gentico steady-state, um determinado indivduo mantm-se na populao at ordem contrria, ou seja, exterminado apenas se no estiver suficientemente
adaptado. Na implementao usual deste tipo de poltica geracional, a aptido dada
vista e permanece assim, imutvel, ao longo de toda a vida do indivduo. O problema
surge quando a funo de aptido pode no ser precisa (esta caracterstica inerentemente dependente do domnio), incidindo em uma avaliao equivocada. Da, dois possveis cenrios podem ocorrer: o indivduo ter sua adaptabilidade subestimada, resultando
em morte precoce; ou, pior, o indivduo ser sobrestimado, tornando-se automaticamente
imortal (dependendo da intensidade do erro da funo de aptido) e espalhando falsos
bons genes por toda populao. O impacto provocado por um rudo na aptido seria algo
parecido com o que ocorreria se em uma dada otimizao a funo objetivo fosse alterada,
(re)direcionando a busca para um ponto diferente.
Na rea de classificao de padres ocorrem com certa freqncia rudos durante a
avaliao de indivduos. O mais comum a presena de dados deturpados 31 no conjunto
de treinamento.
A aptido cumulativa uma forma de reduzir substancialmente o efeito de amostras/aptido ruidosos. Por tratar-se de avaliaes parciais e possuir uma memria voltil
(reescrita) e limitada, a incidncia de um rudo suavizada. Entretanto, ainda assim dados
ruidosos no so ignorados pelo processo co-evolutivo, ao passo que o esforo de classificao tender a focar-se nos dados menos classificveis (onde esto includos os outliers),
atrasando o processo. No obstante, reduzindo-se a presso de seleo, faz-se com que a
busca seja menos obsessiva e torne-se abrangente, no concentrando-se apenas nos casos
estritamente difceis.
31 Outliers.
4.3
97
Co-evoluo Amostra-Classificador
O trabalho de Paredis como apresentado neste captulo, juntamente com a codificao por gramtica (vide Captulo 3) so as duas maiores referncias para o tema desta
dissertao. Enquanto a gramtica prov um mtodo extensvel e preciso para a codificao das rvores classificadoras, o modelo co-evolucionrio de Paredis (em conjunto com
a aptido cumulativa) fornece o motor para o desenrolar da evoluo.
A co-evoluo amostra-classificador um sistema co-evolutivo competitivo
(competidor-competidor), baseado no modelo de Paredis e transcrito para a programao gentica gramatical. Sinteticamente, a entidade classificadora substituda por uma
rvore de classificao, representada sob a especificao gramatical. Sua tarefa , naturalmente, a classificao de dados em um nmero finito de classes.
Nas leituras subseqentes do termo co-evoluo amostra-classificador fica implcito
a designao do sistema completo, isto , supe-se o emprego da programao gentica
gramatical.
O fluxograma apresentado pela Figura 4.13 exibe a dinmica do funcionamento da
co-evoluo amostra-classificador.
32 )
e sua
32 Na
realidade, sob o aspecto de implementao, existem duas rvores, uma contendo a estrutura gramatical e a segunda armazenando de fato o programa. Mais detalhes em 3.3.3.2, do Captulo 3.
33 Vide Captulo 3, Sees 3.3.2.1 e 3.3.2.2.
98
99
100
4.3.3.1
Imediatamente aps as avaliaes mtuas, as duas populaes so ordenadas e o critrio de parada checado. Havendo um indivduo da populao de rvores com aptido
(cumulativa) satisfatria, isto , uma candidata a soluo, uma etapa adicional de confirmao efetuada. Nesta confirmao, o candidato submete-se a todas as amostras do
conjunto de treinamento, evitando-se que o critrio de parada seja satisfeito precipitadamente. Este procedimento de certificao recomendado pois a aptido do indivduo
armazena uma pequena parcela dos padres de entrada, e no necessariamente generaliza
para os demais casos de teste. Todavia, deduz-se ainda que, durante a evoluo, situaes
de falso positivo tendem a ser absolutamente raras, pois ao menor sinal de prosperidade
de um candidato, a co-evoluo trata de confront-lo com adversrios cada vez mais hostis, diminuindo-se assim as chances de possuir um histrico perfeito de classificaes.
E caso o consiga, o candidato certamente seria, sob um funcionamento co-evolucionrio
esperado, capaz de classificar qualquer outra amostra do conjunto de treinamento.
101
Medida de Complexidade
Faz-se til e talvez necessria a considerao de mais uma grandeza para o clculo final da aptido de um indivduo: uma medida de complexidade. um tpico subjetivo e inerentemente humano, porm, pode-se aproximar seu efeito tendo em conta alguns
valores. Dois valores so ponderados neste sistema: o tamanho da entidade classificadora
(nmero de ns da rvore) e o nmero de atributos do qual ela faz uso. A primeira medida
trivial, e contribui para a simplicidade
34
102
famostra =
Hi
i=1
(4.1)
nciclo
onde nciclo o tamanho do ciclo/histrico (geralmente 20), e Hi o i-simo valor do histrico de confrontos (0 se no classificou corretamente e 1 caso contrrio).
Todavia, para a populao de rvores, uma medida ponderada de clculo de aptido
torna-se necessria, devido ao critrio adicional de complexidade. Supondo-se o peso
da complexidade, tem-se a funo de aptido f de uma rvore classificadora como:
nciclo
fclass f = (1 )
Hi
i=1
nciclo
atributos
tam
+
tammax atributosmax
(4.2)
onde tam e tammax so o tamanho da rvore e o tamanho mximo, respectivamente. Similarmente, atributos e atributosmax so, nesta ordem, o nmero de atributos contidos na
rvore classificadora e o nmero de atributos disponveis na base de dados.
4.3.4.2
Quando uma rvore classificadora enfrenta uma amostra, os atributos desta ltima,
(isto , o cromossomo), so substitudos nos ns apropriados da rvore, aqueles que fazem
referncia aos atributos de entrada. Ento, a rvore executada
35
e a classe predita
3.5.
103
4.4 Concluso
104
4.4
Concluso
Foi visto neste captulo o conceito e aplicao da abordagem co-evolutiva. Introduziuse o tema, passando pela reviso de trabalhos prvios e ento foi apresentado o sistema
de co-evoluo amostra-classificador. Destacaram-se as seguintes vantagens do modelo
co-evolutivo por competio:
acelerao do processo evolucionrio atravs da focalizao nos casos difceis/no
resolvidos.
No obstante, empregou-se o procedimento de aptido cumulativa, que visa tanto reduzir o custo computacional como abrandar rudos que eventualmente possam existir em
determinados domnios de problemas.
Enfim, foi discutido em pormenores o sistema de classificao co-evoluo amostraclassificador que, dentre outras associaes, adota a programao gentica gramatical a
fim de codificar consistentemente as rvores classificadoras.
O prximo captulo dedica-se a por na prtica a teoria acerca dos conceitos de programao gentica, gramtica e co-evoluo competitiva, atravs de experimentos de classificao de dados realizados em diferentes domnios.
Captulo 5
Estudo de Casos
Este captulo descreve algumas aplicaes do sistema aplicado a variados domnios
de problemas de classificao. O objetivo foi tentar colher bases de dados cuja amostragem fosse razoavelmente representativa no universo no delineado de possveis problemas
desta natureza.
Seguem ento casos tradicionais, como o reconhecimento das classes da planta ris;
algumas bases de dados artificiais com propsitos especficos, representadas pela coleo
monks; outras de caracterizao real, como as bases de diagnstico de cncer de mama,
predio partidria em funo dos votos, e deteco de tipos de imagens. Os estudos esto
detalhados nas respectivas sees.
5.1
A fim de atingir um grau estatstico mais confivel, para cada problema foram realizadas 10 execues independentes. Isto , com sementes distintas e diferentes formaes
conjuntos treinamento e teste. Este montante foi analisado e extraiu-se alguns componentes da estatstica descritiva, tais como mdia, desvio padro, valor mnimo e valor
mximo.
Como medida de desempenho global, foram avaliados os seguintes indicadores: preciso de classificao para o conjunto de treinamento e teste, nmero de avaliaes e
complexidade da soluo obtida.
Conceitos introduzidos, cabe aqui uma breve explanao mais especfica.
106
de uma medida bsica que tende a ser indicativo de complexidade, a saber: o tamanho. Em rvores de deciso o tamanho pode ser calculado pelo nmero de regras 2
ou simplesmente pelo nmero de ns. Esta ltima a adotada na presente implementao. Ademais, com o intuito de dispensar atributos de entrada irrelevantes,
tentou-se minimizar a adoo destes durante o processo evolutivo, fazendo-se uso
de presso contrria abundncia de atributos.
Deve-se mencionar agradecimento ao repositrio de Machine Learning da Universidade da Califrnia [11], pela disponibilizao pblica de todas as bases de dados utilizadas nos experimentos deste trabalho.
1 Habitualmente
uma avaliao vem sendo definida como a passagem de todos os dados do conjunto em
um determinado classificador.
2 As regras de uma rvore classificadora so obtidas percorrendo-se todos os caminhos entre o n raiz e
os ns classes (terminais).
107
Parmetros Numricos
meta-algoritmo esta tcnica faz uso de uma camada extra de um algoritmo de oti-
108
negativo o alto custo computacional, porm, sua arquitetura inerentemente paralelizvel pode ser explorada.
Como quaisquer destas tcnicas foge do escopo do trabalho, tentou-se empiricamente
atribuir valores aos parmetros de entrada, manualmente. No intuito de facilitar a visualizao, mostrou-se em forma de tabela os parmetros relevantes. Na Tabela 5.1 segue um
modelo de apresentao.
Parmetro
Nmero de geraes
Tamanho da populao
Profundidade inicial
Profundidade de mutao
Peso penalizao complexidade
Valor
N
N
N
N
R
Valor
90%
5%
20
ranking
torneio (2 indivduos)
2/3
1/3
109
Gramtica
Optou-se para estes experimentos por uma definio de gramtica que fornecesse uma
expressiva gama de possibilidades combinatrias. A gramtica exibida na Tabela 5.3
possui estas propriedades e, dentre outras, capaz de:
garantir a consistncia entre todos os argumentos de funes, ou seja, uma funo
especifica a priori quais tipos de dados pode manipular;
comparao inter-atributos;
criar constantes numricas aleatrias (efmeras);
permitir o uso de expresses aritmticas em valores numricos, podendo envolver
constantes ou at mesmo atributos.
Para que seja possvel a leitura das tabelas de resultados, ser preciso tecer sobre como
os dados de sada foram gerados pelo sistema. A cada gerao de uma execuo em par-
110
N=
{<se-ento-seno>, <lgico>, <numrico>, <nominal>, <ordinal>, <relacional>, <atriblgico>, <atrib-numrico>, <atrib-nominal>, <atrib-ordinal>, <classe>, <const-lgica>,
<const-numrica>, <const-nominal>, <const-ordinal>}
S=
<se-ento-seno>
P=
<se-ento-seno>
<lgico>
<relacional>
<relacional>
<relacional>
<relacional>
<numrico>
<nominal>
<ordinal>
<atrib-numrico>
<const-numrica>
<atrib-nominal>
<const-nominal>
<atrib-ordinal>
<const-ordinal>
<atrib-lgico>
<const-lgica>
<classe>
111
avaliaes e, finalmente, a mdia simples do poder de classificao no conjunto de treinamento e teste (classificao global). Por exemplo, tem-se na Tabela 5.4 uma tpica
listagem da sada de uma execuo.
Gerao
0
1
2
3
..
.
Treinamento
0.597
0.742
0.984
1.000
..
.
Teste
0.583
0.750
0.990
1.000
..
.
Tamanho
7
13
14
11
..
.
Num. Aval.
10500
28980
47480
65500
..
.
Trein./Teste
0.590
0.746
0.987
1.000
..
.
Por basear-se nos indivduos de melhor aptido, no garantido que as geraes reportem na listagem ndices montonos de classificao, isto , a sada de uma gerao posterior pode conter ndices menores em comparao com a anterior. Em outras
palavras, a ltima linha da listagem (ltima gerao) no necessariamente indicar os valores do melhor indivduo de todo o processo de evoluo. Diante disso, percebe-se que
para resgatar os melhores ndices (e o melhor indivduo), preciso ordenar a listagem de
acordo com o valor de interesse, por exemplo, ordenar pelo melhor ndice de classificao
no conjunto de treinamento, ou ainda, pelo menor indivduo (tamanho da rvore). Portanto, para cada execuo, a listagem ordenada e os valores desejveis so coletados;
por fim, so realizadas mdias aritmticas (em cada ndice) cobrindo todas execues.
fcil perceber que desta coleo de dados pode-se extrair variadas informaes,
dependendo exclusivamente do foco da anlise. Certamente um especialista na rea do
problema poderia definir seus objetivos e isolar os ndices que lhe interessam.
No intuito de aproximar-se da completude, sem no entanto buscar as incontveis possibilidades tericas de combinaes (o que seria invivel ou no mnimo cansativo), a
apresentao foi dividida em trs grupos: treinamento, teste e treinamento/teste. Objetivando, respectivamente, melhores classificadores para o conjunto de treinamento, teste
3 No
necessariamente o melhor classificador, mas aquele detentor da maior aptido histrico restrito
de confrontos. Ver Captulo 4.
4 Os ndices foram gerados usando-se todas as amostras de dados de cada conjunto, diferentemente do
processo evolucionrio onde se utilizava apenas uma janela de amostras selecionadas.
5 O tamanho dado pelo nmero de ns da rvore classificadora, sendo portanto um valor sempre superior ao nmero de regras potencialmente extradas da rvore.
112
5.2
significa que em uma execuo particular, a listagem foi ordenada para cada um desses objetivos,
ento, seus melhores valores foram coletados e considerados para o clculo estatstico.
7 Descoberta de Conhecimento em Base de Dados.
113
5.2.1 Experimentos
No h um consenso na literatura no tocante ao uso do conjunto de teste para este
problema 8 . Em prol de uma abordagem mais ampla, adotou-se os dois perfis de experimentao.
5.2.1.1
Valor
500
300
15
15
0, 2
A Tabela 5.6 sintetiza os ndices de desempenho para o sistema proposto. Cada execuo consumiu em mdia 6 minutos.
Treinamento
Teste
Trei./Teste
Tamanho
N. Aval. (106 )
Trein.
Mn.
Mx.
Teste
Mn.
Mx.
0,976 0,012
0, 960
0, 990
0, 961 0, 013
0, 930
0, 980
0, 970 0, 022
0, 940
1, 000
0,988 0,010
0, 980
1, 000
0, 973 0, 007
0, 965
0, 985
0, 975 0, 009
0, 955
0, 985
42, 1 36, 5
13, 0
140, 0
42, 5 36, 7
13, 0
140, 0
2, 84 1, 55
0, 364
4, 69
2, 32 1, 59
0, 364
5, 05
T./T.
Mn.
Mx.
0, 973 0, 008
0, 960
0, 980
0, 988 0, 010
0, 980
1, 000
0,981 0,006
0, 970
0, 990
47, 6 34, 8
13, 0
140, 0
2, 36 1, 45
0, 364
4, 20
que de fato exista uma indeciso sobre a utilizao do conjunto de teste. A orientao pela
segmentao da base nos dois conjuntos, porm, pela freqncia de experimentos usando-se inteiramente a
base de dados, esta prtica foi a adotada no corrente trabalho.
114
12
[21] e FDT
13
conjunto de teste e foram colhidos dos respectivos trabalhos dos autores referenciados.
Algoritmo
C4.5
BGP
GATree
CGP/SA
FDT
Acurcia
0, 952
0, 941
0, 938
0, 962
0, 960
115
5.2.1.2
116
Parmetro
Nmero de geraes
Tamanho da populao
Profundidade inicial
Profundidade de mutao
Peso penalizao complexidade
Valor
1000
300
15
15
0, 25
teve uma discrepncia acentuada, variando de 30 ns na menor rvore para 222 na maior.
Observa-se ainda, em relao ao problema com a base segmentada, o acrscimo do tamanho mdio, apesar do rigor superior em relao penalizao. Isto induz a uma concluso natural: medida que o nmero de refinamentos cresce (geraes), mais inclinada
a evoluo tende especializao. Tentativas foram feitas com pesos de complexidade
maiores, infelizmente levando o sistema a estagnao prematura. Acredita-se, portanto,
em um melhor desempenho com uso de ponderao dinmica, variando em funo da tendncia evolutiva. Como era de se esperar, o tempo mdio aproximado para cada execuo
aumentou, passando para 18 minutos.
Mn.
Mx.
Treinamento
Tamanho
N. Aval. (106 )
0, 997 0, 005
0, 987
1, 000
86, 2 54, 6
30, 0
222, 0
7, 12 2, 77
3, 44
10, 6
No trabalho de Duch et al. [19], os autores colecionam experimentos de sete algoritmos distintos atuando sobre a base de dados ris completa. Os resultados de classificao
variam entre 95,7% e 100%. Com virtualmente 100% de preciso mdia, fica demonstrado, portanto, a excelente atuao do sistema deste trabalho.
A Figura 5.3 apresenta um exemplo de rvore soluo isenta de erros de classificao, isto , foi flexvel o suficiente para absorver todo o conceito da base de dados. Cabe
observar a ausncia do primeiro atributo de entrada, o comprimento da spala. O processo evolutivo julgou-o desnecessrio e evitou-se assim a redundncia, a favor de uma
alternativa mais parcimoniosa.
Ainda possvel atentar-se ao fato de como facilmente a primeira classe separvel
das demais. Esta propriedade est caracterizada nos trs exemplos apresentados. Na Fi-
117
gura 5.1 esta separao alcanada pela comparao largura spala comprimento
ptala. A Figura 5.2 prov algo bastante semelhante. J na Figura 5.3 a largura da ptala
comparada com uma constante numrica (largura ptala > 0,72).
5.3
A rea mdica vem sendo alvo de grandes pesquisas computacionais, muitas destas
destinadas automao do diagnstico de doenas. Dentre estas doenas, muito tem sido
feito para o diagnstico do cncer, especificamente o cncer de mama.
Ndulos presentes na massa mamria podem ser indicativos de cncer, mas no so
suficientes para determinar a gravidade do tumor, se este for confirmado. A anlise por
FNA (Fine-Needle Aspiration) procedimento de extrao de fluidos realizado diretamente sobre o tecido canceroso [36] capaz de fornecer medidas sobre a forma do
tumor instaurado no paciente. Estes dados so posteriormente examinados e podero
sentenciar a gravidade do cncer. A base de dados de cncer de mama, criada pelo Dr.
118
William H. Wolberg (University of Wisconsin Hospitals), traz amostras de casos clnicos coletadas no perodo compreendido entre os anos de 1989 e 1991. O objetivo o
diagnstico do grau do tumor, distribudos em duas classes: benigno ou maligno.
A base possui 699 registros, sendo que cada atributo representa alguma medio (via
FNA) de uma particularidade da clula em questo; todos escalares contnuos, compreendidos entre 0 e 1. Os atributos so, nesta ordem, clump thickness, uniformity of cell size,
uniformity of cell shape, marginal adhesion, single epithelial cell size, bare nuclei, bland
chromatin, normal nucleoli e mitosis.
Naturalmente, uma caracterstica desejvel e necessria nesses sistemas autnomos
a capacidade de boa generalizao, pois, neste domnio, o problema real encontra-se
nos dados que esto por vir, restando queles da base de dados a funo exclusiva de
aprendizado.
5.3.1 Experimentos
A Tabela 5.10 traz o conjunto de parmetros utilizados neste experimento.
Parmetro
Nmero de geraes
Tamanho da populao
Profundidade inicial
Profundidade de mutao
Peso penalizao complexidade
Valor
500
500
15
15
0, 05
Nota-se que o peso de penalizao por complexidade est relaxado, espera-se com
isto um melhor ndice de classificao para o conjunto de treinamento em detrimento
ao tamanho da soluo e poder de generalizao. Tem-se na Tabela 5.11 o sumrio das
execues deste experimento. Em cada execuo gastou-se por volta de 15 minutos de
processamento.
De fato as previses foram confirmadas, principalmente no quesito complexidade,
onde claramente houve um crescimento exagerado. Entretanto, em relao ao desempenho no conjunto de teste, os resultados foram suficientemente satisfatrios. Muito provavelmente as solues, em sua grande maioria, adquiriram partes redundantes, como por
119
Treinamento
Teste
Trei./Teste
Tamanho
N. Aval. (106 )
Trein.
Mn.
Mx.
Teste
Mn.
Mx.
0,981 0,017
0, 952
1, 000
0, 956 0, 016
0, 933
0, 993
0, 935 0, 016
0, 911
0, 957
0,960 0,014
0, 939
0, 979
0, 958 0, 015
0, 939
0, 979
0, 958 0, 012
0, 936
0, 977
124, 1 59, 8
21, 0
198, 0
84, 4 73, 1
13, 0
234, 0
6, 58 2, 64
1, 41
9, 03
3, 29 2, 88
0, 158
8, 26
T./T.
Mn.
Mx.
0, 974 0, 018
0, 947
0, 998
0, 951 0, 011
0, 925
0, 961
0,962 0,013
0, 941
0, 979
123, 2 79, 3
13, 0
218, 0
5, 28 2, 76
0, 194
8, 90
Teste
Trei./Teste
Tamanho
N. Aval. (106 )
Trein.
Mn.
Mx.
Teste
Mn.
Mx.
0,961 0,006
0, 953
0, 970
0, 953 0, 00
0, 942
0, 970
0, 958 0, 012
0, 940
0, 974
0,967 0,011
0, 944
0, 983
0, 960 0, 006
0, 947
0, 967
0, 960 0, 008
0, 943
0, 972
20, 6 16, 9
8, 0
58, 0
19, 6 14, 3
8, 0
50, 0
1, 90 2, 75
0, 047
7, 70
1, 85 2, 58
0, 283
8, 73
T./T.
Mn.
Mx.
0, 959 0, 007
0, 948
0, 970
0, 965 0, 012
0, 940
0, 979
0,962 0,007
0, 947
0, 972
20, 0 12, 6
8, 0
50, 0
1, 69 1, 76
0, 10
5, 3
Em comparao com o experimento prvio, percebe-se um declnio na acurcia relativa ao conjunto de treinamento. Em compensao houve uma sensvel melhora na avaliao pelo conjunto de teste e uma queda vertiginosa tanto no tamanho mdio da soluo
como no nmero de avaliaes.
Em [19], realizado, para este problema, testes com variados algoritmos, reportando
120
J a Figura 5.5, de maior complexidade, obteve melhores resultados 97,8% no conjunto de teste e 97% de classificao global em detrimento de uma soluo mais parcimoniosa. Nota-se, portanto, o largo emprego de operaes aritmticas, como soma,
subtrao, multiplicao e negao.
5.4
121
15 )
dos representantes em 16 questes chaves da gesto pblica. A cada uma destas questes
trs variantes
16
122
5.4.1 Experimentos
Para a primeira bateria de execues utilizou-se os parmetros listados na Tabela 5.13.
Parmetro
Nmero de geraes
Tamanho da populao
Profundidade inicial
Profundidade de mutao
Peso penalizao complexidade
Valor
1000
300
10
15
0, 15
Observou-se para este problema que a criao inicial de rvores menos complexas
cooperou sensivelmente para um melhor desempenho do processo evolutivo como um
todo. Optou-se, portanto, em fixar a profundidade mxima inicial em um patamar inferior
profundidade de mutao.
Os resultados obtidos podem ser vistos na Tabela 5.14. Para cada execuo foram
necessrios em mdia cerca de 17 minutos de tempo de processamento.
O algoritmo proposto gerou timos resultados, com ndices consideravelmente superiores a alguns trabalhos prvios encontrados na literatura. A Tabela 5.15 sumariza alguns
destes resultados.
No anseio de solues mais compactas, decidiu-se por aumentar o peso de penalizao
por complexidade, passando, ento, de 0, 15 para 0, 2. Os demais parmetros permanecem
os mesmos.
A Tabela 5.16 apresenta os resultados com esta nova abordagem. Esta alterao tambm refletiu positivamente no tempo mdio de execuo, reduzindo-o para 8 minutos.
123
Treinamento
Teste
Trei./Teste
Tamanho
N. Aval. (106 )
Trein.
Mn.
Mx.
Teste
Mn.
Mx.
0,982 0,015
0, 962
1, 000
0, 956 0, 015
0, 924
0, 972
0, 943 0, 023
0, 910
0, 979
0,976 0,011
0, 959
0, 993
0, 962 0, 006
0, 953
0, 971
0, 966 0, 009
0, 945
0, 978
105, 3 61, 6
20, 0
199, 0
59, 6 28, 4
16, 0
103, 0
6, 85 4, 47
0, 268
10, 6
5, 12 2, 24
0, 201
8, 16
T./T.
Mn.
Mx.
0, 972 0, 010
0, 962
0, 993
0, 970 0, 012
0, 945
0, 986
0,971 0,003
0, 969
0, 978
92, 8 51, 2
20, 0
186, 0
6, 77 2, 71
0, 268
9, 09
Acurcia
0, 961
0, 956
0, 976
124
Treinamento
Teste
Trei./Teste
Tamanho
N. Aval. (106 )
Trein.
Mn.
Mx.
Teste
Mn.
Mx.
0,973 0,008
0, 962
0, 983
0, 957 0, 009
0, 941
0, 972
0, 952 0, 013
0, 931
0, 972
0,972 0,010
0, 959
0, 986
0, 963 0, 006
0, 953
0, 972
0, 964 0, 006
0, 953
0, 972
28, 9 6, 6
21, 0
41, 0
28, 3 9, 5
16, 0
46, 0
3, 07 1, 57
0, 683
5, 85
2, 72 1, 77
0, 662
6, 36
T./T.
Mn.
Mx.
0, 965 0, 010
0, 948
0, 979
0, 970 0, 011
0, 952
0, 986
0,967 0,005
0, 960
0, 974
34, 0 16, 2
16, 0
71, 0
3, 84 1, 68
1, 24
6, 60
Esta verso conta com 420 dos 435 registros classificados corretamente, correspondendo
a 96,5% de preciso.
5.5
Esta coleo de problemas tem uma histria interessante [51]. Em julho de 1991,
o convento de monges Corsendonk, na Blgica, foi sede da segunda escola europia de
vero em aprendizado de mquina 17 . Aps mais de uma semana de exposio sobre variados algoritmos de aprendizagem, os participantes ficaram se perguntando quais seriam
17 Machine
Learning.
125
os melhores algoritmos e quais deveriam ser descartados. Como conseqncia desta inquietao, foram criados trs problemas nos quais os algoritmos propostos poderiam ser
comparados. Surgiu ento o conjunto de problemas denominado Monks Problem.
Os problemas so relativos a rea de robs artificiais, onde os robs so descritos por
seis atributos (Tabela 5.17), cada registro culminando em uma classificao binria.
Atributo
forma da cabea
forma do corpo
est sorrindo?
objeto atachado
cor do casaco
tem lao?
Valores possveis
redonda, quadrada ou octogonal
redonda, quadrada ou octogonal
sim ou no
espada, balo ou bandeira
vermelho, amarelo, verde ou azul
sim ou no
18 .
Cada problema criado artificialmente por descries lgicas, sendo que um dado rob
(registro) pode pertencer ou no a esta descrio. Esta sentena responsvel por segregar a base em duas classes: as que satisfazem a expresso lgica e as que no satisfazem.
A aplicao do conceito lgico sobre o total de 432 registros define, ento, a base de dados para o problema. Diferentemente dos outros experimentos, a diviso de dados para
o conjunto de treinamento e teste foram previamente fixadas, apesar do conjunto de treinamento ter sido extrado aleatoriamente. Os criadores do monks optaram por atribuir
ao grupo de teste todos os 432 registros, portanto, como esta quantidade descreve todo
o problema, o grupo de treinamento um subconjunto do conjunto de teste. Outra caracterstica desta coleo o fato do conjunto de treinamento ser expressivamente menor
que o conjunto de teste. Isto significa que o sucesso de qualquer algoritmo sobre monks
depende de uma boa qualidade de generalizao.
5.5.1 Monks I
Este primeiro problema da srie construdo por uma simples expresso lgica, na
forma normal disjuntiva (FND): (forma da cabea = forma do corpo) (cor do casaco
18 Na
ordem apresentada na Tabela 5.17, tem-se as seguintes cardinalidades dos valores dos atributos:
3,3,2,3,4,2. A multiplicao destas (3 3 2 3 4 2) fornece toda a gama de possibilidades combinatrias para o problema monks.
126
= vermelho). Com esta sentena formou-se, ento, a base de dados contendo 432 registros, sendo que 124 destes foram destinados ao conjunto de treinamento. O conjunto de
teste engloba todos os registros, isto , 432 linhas.
Os parmetros utilizados nesta tarefa podem ser visualizados na Tabela 5.18.
Parmetro
Nmero de geraes
Tamanho da populao
Profundidade inicial
Profundidade de mutao
Peso penalizao complexidade
Valor
100
500
15
15
0, 2
A Tabela 5.19 mostra o desempenho do sistema proposto para este primeiro problema
da coleo monks. Cada execuo foi realizada em um curtssimo espao de tempo, gastando em mdia apenas 20 segundos.
Mn.
Mx.
Trei./Teste
Tamanho
N. Aval. (105 )
1, 000 0, 000
1, 000
1, 000
13, 3 5, 4
10, 0
28, 0
1, 36 0, 86
0, 288
2, 83
127
5.5.2 Monks II
O segundo problema da coleo monks assemelha-se aos problemas de paridade
19 .
descrito por: quaisquer dois atributos, e somente estes, tm como valor o primeiro
elemento do domnio de possveis valores. Por exemplo, se forma da cabea e forma
do corpo forem redondas, o rob pertenceria a classe se, e somente se os atributos
est sorrindo?, objeto atachado, cor do casado e tem lao? possuissem valores
diferentes de sim, espada, vermelho e sim, respectivamente. Certamente uma
dura tarefa para sistemas que descrevem solues por meio de forma normal disjuntiva ou
conjuntiva, o que abrange este trabalho.
Dos 432 registros, 169 foram selecionados ao acaso para compor o grupo de treinamento. Os parmetros utilizados esto presentes na Tabela 5.20.
Parmetro
Nmero de geraes
Tamanho da populao
Profundidade inicial
Profundidade de mutao
Peso penalizao complexidade
Valor
5000
500
15
20
0, 05
20
19 O
128
Os resultados obtidos atravs dos experimentos podem ser visualizados na Tabela 5.21. A dificuldade de resoluo deste problema exigiu um grande esforo computacional, repercutindo-o no elevado tempo de cmputo, sendo necessrio, para cada
execuo, aproximadamente 65 minutos.
Trein.
Mn.
Mx.
Teste
Mn.
Mx.
Treinamento
Teste
Tamanho
N. Aval. (107 )
0,999 0,002
0, 994
1, 000
0, 996 0, 006
0, 988
1, 000
0, 966 0, 023
0, 912
0, 995
0,971 0,022
0, 917
0, 995
156, 4 126, 9
91, 0
513, 0
241, 5 348, 8
91, 0
1225, 0
1, 74 0, 472
1, 30
3, 01
1, 67 0, 50
1, 28
3, 01
Apesar do avantajado tamanho mdio das solues obtidas (o que j era previsto),
observou-se um timo desempenho em relao ao ndice de classificao. Percebe-se
ainda um sutil indicativo de super treinamento, motivado pela configurao consciente
dos parmetros. Em especial, os viles so a complacncia pela complexidade e o alto
ciclo de refinamento.
Em relao ao trabalho de referncia [51], apenas quatro algoritmos conseguiram a
classificao de 100%, vinte ficaram abaixo desse teto e um no declarou qualquer resultado. Dentre os que no conseguiram a classificao perfeita, o melhor ndice obtido
foi de 93,1%. No tocante aos quatro absolutos, trs algoritmos no so simblicos (baseados em redes neurais). O nico algoritmo simblico com acurcia de 100%, denominado AQ17-DCI, atua sobre o nvel dos atributos, sendo projetado para derivar variveis
quando necessrio, como um jogador com cartas na manga.
O melhor resultado alcanado pelo algoritmo deste trabalho, sobre o problema monks
II, foi capaz de classificar 99,5% (430/432) das amostras no conjunto de teste, possuindo
a complexidade de 101 ns.
129
O objetivo primordial deste problema averiguar o poder de generalizao dos algoritmos candidatos. Algoritmos gulosos por classificar todo e qualquer dado esto
fadados ao fracasso em monks III. Exige-se, ento, a virtude da robustez para com as
amostras enganosas. No obstante, este o problema da srie com a menor razo dados
treinamento/teste, utilizando-se apenas 122 registros para o aprendizado.
As configuraes de valores de entrada para a seqncia de execues deste problema
esto dispostas na Tabela 5.22.
Parmetro
Nmero de geraes
Tamanho da populao
Profundidade inicial
Profundidade de mutao
Peso penalizao complexidade
Valor
500
500
15
15
0, 15
Trein.
Mn.
Mx.
Teste
Mn.
Mx.
Treinamento
Teste
Tamanho
N. Aval. (106 )
0,963 0,027
0, 934
1, 000
0, 948 0, 007
0, 934
0, 951
0, 971 0, 033
0, 907
1, 000
0,994 0,012
0, 972
1, 000
46, 5 35, 5
11, 0
110, 0
32, 6 21, 8
11, 0
87, 0
4, 12 3, 26
0, 59
9, 04
3, 29 2, 78
0, 59
8, 96
Constata-se a boa atuao do sistema, absorvendo muito bem os dados ruidosos. Dentre os experimentos, em 80% das execues o algoritmo mostrou-se capaz de classificar
corretamente todas as amostras do conjunto de teste. Na listagem provida por Thrun [51],
130
5.6
pode ser enquadrada em sete classes distintas, a saber: tijolo, cu, folhagem, cimento,
janela, estrada e grama. A base de dados totaliza 2310 registros.
Este problema possui pelo menos trs caractersticas que o tornam atraente e desafiador: expressivo nmero de registros, alta dimensionalidade dos atributos e significativa
quantidade de classes.
5.6.1 Experimentos
Inicialmente tentou-se enfrentar o problema com os parmetros apresentados na Tabela 5.24. Devido complexidade intrnseca da tarefa em questo, ao tamanho da populao foi atribudo um valor consideravelmente maior que os at ento praticados. Nota-se
tambm que o valor designado ao peso de penalizao por complexidade tende a induzir a
solues mais enxutas. Os resultados desta experincia podem ser vistos na Tabela 5.25.
A dificuldade imps um tempo mdio perto de 80 minutos por execuo.
Parmetro
Nmero de geraes
Tamanho da populao
Profundidade inicial
Profundidade de mutao
Peso penalizao complexidade
Valor
1000
1000
10
10
0, 15
131
Treinamento
Teste
Trei./Teste
Tamanho
N. Aval. (107 )
Trein.
Mn.
Mx.
Teste
Mn.
Mx.
0,926 0,041
0, 857
0, 979
0, 881 0, 043
0, 821
0, 964
0, 834 0, 039
0, 757
0, 900
0,884 0,033
0, 814
0, 929
0, 880 0, 018
0, 857
0, 914
0, 883 0, 029
0, 832
0, 925
84, 3 5, 7
75, 0
93, 0
86, 2 8, 6
65, 0
95, 0
2, 96 0, 785
0, 915
3, 61
2, 38 1, 12
0, 835
3, 61
T./T.
Mn.
Mx.
0, 915 0, 047
0, 821
0, 971
0, 870 0, 046
0, 771
0, 929
0,893 0,022
0, 868
0, 929
87, 2 6, 7
75, 0
94, 0
2, 74 0, 910
0, 821
3, 61
Apesar do maior tamanho da populao, o ndice mdio de classificao das solues ficou aqum do desejado, principalmente os relativos ao conjunto de teste. A fim
de atingir um melhor resultado, um segundo experimento foi ento realizado, variando-se
apenas o peso da penalizao, que agora corresponde a 0, 05. O sumrio desta tentativa
est mostrado na Tabela 5.26. Os ganhos em termos de acurcia so bastante salientes
quando comparados ao experimento anterior, tanto nos conjuntos de treinamento e teste a
melhora ficou evidente. O interessante que apenas um parmetro foi modificado, a penalizao por complexidade. Permitiu-se assim uma maior folga no tamanho das rvores
geradas. Deduz-se, portanto, que o limite terico na complexidade, da primeira abordagem, mostrou-se rudimentar para descrever o conceito da base de dados, funcionando
como um gargalo. Contudo, o afrouxo da penalizao sobre solues maiores influenciou de forma negativa o tempo mdio de processamento, exigindo agora 110 minutos
por execuo.
Treinamento
Teste
Trei./Teste
Tamanho
N. Aval. (107 )
Trein.
Mn.
Mx.
Teste
Mn.
Mx.
0,956 0,029
0, 900
0, 993
0, 900 0, 033
0, 857
0, 943
0, 861 0, 071
0, 700
0, 943
0,924 0,018
0, 900
0, 957
0, 909 0, 037
0, 829
0, 957
0, 912 0, 016
0, 889
0, 936
165, 9 24, 1
129, 0
193, 0
150, 5 29, 7
102, 0
186, 0
3, 12 0, 423
2, 60
3, 62
2, 19 0, 745
0, 943
3, 28
T./T.
Mn.
Mx.
0, 941 0, 036
0, 871
0, 986
0, 913 0, 022
0, 871
0, 943
0,927 0,018
0, 900
0, 957
168, 9 25, 2
128, 0
189, 0
2, 71 0, 835
0, 943
3, 54
5.7 Concluso
132
21
pertencem ao domnio de
5.7
Concluso
exceo do C4.5 [44], os demais algoritmos de aprendizado de mquina tiveram seus ndices de
classificao retirados em [12].
5.7 Concluso
133
Captulo 6
Concluses
Este trabalho de dissertao foi construdo sobre trs principais alicerces: a programao gentica, a representao gramatical e a co-evoluo. Estes pilares foram apresentados, descritos separadamente, e ento reunidos no contexto global do sistema. Desta
integrao conceitual nasceu a implementao prtica, cujo objetivo visou a classificao (supervisionada) de amostras de dados, possibilitando-se ainda a descoberta de regras
teoricamente passveis de interpretao humana. A implementao foi colocada em atividade pela atuao em variados problemas, de casos triviais, passando-se pelos artificiais
e, finalmente, problemas reais. Os resultados foram bastante promissores, comparando-se
positivamente em relao a outras implementaes/abordagens encontradas na literatura.
O restante deste captulo trata da avaliao e comentrios sobre as tcnicas envolvidas
nesta dissertao. Prossegue ento apontando algumas direes para trabalhos futuros.
6.1
Programao Gentica
pouca exigncia sobre o domnio assim como as tcnicas da computao evolucionria, a PG exige relativamente pouco conhecimento acerca do domnio do
135
problema, construindo-se arranjos complexos atravs de especificaes iniciais bastante relaxadas. Portanto, traduz-se em um processo mais automatizado.
evoluo de solues simblicas fator importantssimo para se resgatar o conhecimento implcito em uma massa fria de dados.
o enriquecimento da evoluo por outras tcnicas. Este ponto foi bem explorado
neste trabalho, inserindo-se na PG cannica a estrutura gramatical e a co-evoluo
competitiva.
6.2
Substituiu-se a linguagem representativa tpica da PG (baseada nos limitados conceitos de conjuntos funes e terminais) por uma estrutura formal, a gramtica livre de
contexto. A GLC dedica-se, atravs de um conceito slido e amplo, a gerar a linguagem
de representao dos indivduos programas implementados na estrutura rvore.
136
tro de linguagem, das mais simples s complexas. esta habilidade que permite,
gem uma estrutura melhor definida, o uso da gramtica ainda facilita a adoo de
mente.
evoluo da gramtica no foi abordada nesta dissertao, entretanto, pretende-se estud-la futura-
137
variao de problemas, como no caso da gramtica nica utilizada nos experimentos (Captulo 5) desta dissertao. Todavia, a definio da gramtica visando as peculiaridades
do domnio faculta o surgimento de melhores solues.
6.3
Co-evoluo Amostra-Classificador
significa que indivduos da primeira gerao sero avaliados pelo mesmo critrio
dos indivduos teoricamente mais adaptados das geraes avanadas. Esta avaliao imutvel sobre indivduos iniciais pode ser demasiadamente severa, inibindose assim o incio da evoluo. Por outro lado, a co-evoluo fornece um ajuste
gradativo da presso de avaliao medida que ambas populaes evoluem. A
138
cia neste trabalho, cabe mencionar uma caracterstica relevante da co-evoluo. Algumas tarefas de otimizao no possibilitam a definio de uma funo de avaliao fixa. Dentre estas tarefas esto os problemas de otimizao de estratgias onde
no so conhecidos experts, como por exemplo jogos de dama, xadrez, entre outros.
A co-evoluo, pela adaptao dinmica, pode levar a PG nestes domnios, atravs
de, por exemplo, a evoluo por competio entre variadas estratgias.
mbito da classificao de dados via programao gentica, uma definio tpica da funo de
aptido emprega a avaliao de cada indivduo (classificador) contra todas as amostras do conjunto de
treinamento, e no apenas um conjunto inteligentemente selecionado.
139
populao A evolva uma estratgia EA1 , que derrota a estratgia corrente em B, seja qual
for. A populao B, em resposta A, evolui a estratgia EB1 , que por sua vez supera EA1 ,
isto , EB1 > EA1 . No satisfeita, a populao A, em contra resposta, evolui a estratgia
EA2 , tal que EA2 > EB1 . A populao B, pressionada por A, consegue evoluir a estratgia
EB2 , vencendo a concorrente EA2 (EB2 > EA2 ). Por um azar do processo co-evolutivo, a
estratgia mais recente da populao B (EB2 ) coincidentemente inferior primeira estratgia desenvolvida pela populao A (EA1 ), isto , EA1 > EB2 . Sendo assim, devido ao
material gentico ainda remanescente em B, a estratgia mais trivial a ser evoluda a
anteriormente descoberta EB1 , que domina EA1 . O ciclo portanto est formado, possivelmente caindo em um lao, alternando-se entre as estratgias prvias. A Figura 6.1 mostra
visualmente a dinmica do problema do ciclo.
140
Seja a estratgia EA1 descrita como classifique qualquer amostra como classe um 3 . Reciprocamente, a estratgia EB1 definida como derrube qualquer classificador que classifique como classe um, ou em outras palavras, selecione amostras que no pertenam
classe um. Analogamente, temos EA2 interpretada como classifique qualquer amostra
como classe dois 4 . E ainda, EB2 descrita por derrube qualquer classificador que classifique como classe dois, ou selecione amostras que no pertenam classe dois.
Sendo assim, primeiro a populao A descobre a estratgia classe um, que ento
vencida por amostras que no pertenam classe um, da populao B. Logo, surge a
estratgia classe dois, de A, que por sua vez tambm derrubada por amostras que no
pertenam classe dois, de B. Por fim, a populao A evolui (resgata) a estratgia classe
um, que vence amostras que no pertenam classe dois, mas B tambm redescobre
amostras que no pertenam classe um, que por sua vez derrota classe um. Inicia-se o
ciclo, como exibido graficamente na Figura 6.2.
O aspecto que torna o problema do ciclo delicado o fato da sua no trivial observao. fcil quando se recorre a situaes extremamente simplificadas, mas quando se
trata de estratgias/estruturas complexas, sua identificao torna-se impraticvel.
3 Simplesmente:
4 Retorne
141
Os possveis efeitos colaterais da ocorrncia do ciclo so o atraso no processo evolutivo e/ou estagnao em mnimos locais. Rosin e Belew, em New Methods for Competitive
Coevolution [46], apesar de no mencionarem explicitamente o problema do ciclo, propuseram uma espcie de elitismo temporal ou hall da fama, onde se adota uma avaliao
ponderada com estratgias/solues descobertas anteriormentes no decorrer da evoluo.
Em suma, testa-se na avaliao de cada indivduo da gerao corrente sua habilidade em
lidar com solues no necessariamente todas evoludas em geraes passadas. Os
autores ainda relembram outro benefcio decorrente da conservao de solues passadas,
a preservao de material gentico.
Stefano Nolfi e Dario Floreano [40] observam que a proposta de Rosin e Belew apresenta alguns pontos colaterais, como a no plausibilidade biolgica e a reduo da dinmica co-evolucionria 5 . Entretanto, estes autores tambm observaram e relataram atravs
de experimentos que o elitismo temporal contribui para a amenizao do problema do ciclo.
Ainda, Nolfi e Floreano apontam um caminho alternativo para diminuir o problema do
ciclo: enriquecer o ambiente. Os autores, utilizando o modelo predador-presa no contexto
de robtica evolucionria, perceberam que a populao de presas cujo sensores perceptivos so limitados e portanto dificultando a fuga, bem como a evoluo de estratgias
mais aprimoradas tendem a alternar repentinamente de estratgia, em vez de refinar
a atual. Ampliando-se o campo perceptivo das presas, os autores observaram que a populao de presas mais facilmente se inclinava a refinar a estratgia corrente ao invs
de resgatar estratgias prvias. Os experimentos demonstraram resultados satisfatrios,
assim como o elitismo temporal.
De fato, intuitivamente se espera que um ambiente rico, por possibilitar um rol maior
de diferentes construes, bem como a melhoria destas, seja de certa forma rspido para
com a ocorrncia do problema do ciclo.
Na implementao do trabalho desta dissertao, notou-se a incidncia de ciclos em
alguns experimentos, majoritariamente no incio do processo evolutivo, nos moldes simplrios exibidos pela Figura 6.2. Isto , dada a simplicidade das construes iniciais, a
tenso co-evolutiva era atrada alternncia de solues, favorecida pela facilidade e trivi5 Nolfi
e Floreano referiam-se ao fato de que a (contra)resposta a uma dada estratgia evoluda pela
populao concorrente seria mais lenta, pois o objetivo estaria disperso, dividido entre o ataque contra a
estratgia corrente e contra as passadas.
142
alidade destas mudanas. Pareceu, entretanto, que nas geraes futuras, com construes
mais complexas na populao, e portanto maior abundncia de material gentico, o ciclo
no se apresentava 6 .
6.4
Trabalhos Futuros
Esta seo conta com algumas perspectivas de trabalhos futuros, visando aprimorar a
eficincia de otimizao (tempo e qualidade), bem como tentar eliminar alguns problemas
identificados nas tcnicas abordadas neste trabalho.
evoluo gramatical trata-se de uma instigante linha de pesquisa, que compre-
es de ocorrncia, assim como meios de frear seu efeito negativo sem no entanto
6
importante salientar que, dada a natureza do problema do ciclo, a alternncia mais elaborada de
estratgias (como um ciclo mais longo) pode ter ocorrido, silenciosamente e com certa freqncia, tambm
em geraes avanadas.
143
instrumentos aqui empregados em relao ao mtodo tradicional de implementao. No entanto, acredita-se que o confronto com algoritmos e tcnicas constantes
na literatura, como exposto no Captulo 5, somado ao sucesso relatado pelos autores dos trabalhos base
7A
integrao da co-evoluo competitiva resultou em uma implementao dependente (pouco modular), criando-se assim uma barreira prtica (em termos de custo/benefcio) para uma manuteno conjunta
do modelo tradicional e co-evolucionrio.
8 Destacam-se os trabalhos de Paredis [43], Whigham [57], Hillis [27], Angeline e Pollack [4], e Axelrod [6].
Referncias Bibliogrficas
[1] A. PAPAGELIS , D. K. GATree: Genetically evolved decision trees.
[2] A HO , A. V., S ETHI , R., E U LLMAN , J. D. Compilers: Principles, Techniques, and
Tools. Addison-Wesley, Reading, Mass., 1986.
[3] A NDRE , D., E T ELLER , A. A study in program response and the negative effects
of introns in genetic programming. In Genetic Programming 1996: Proceedings of
the First Annual Conference (Stanford University, CA, USA, 2831 julho de 1996),
J. R. Koza, D. E. Goldberg, D. B. Fogel, e R. L. Riolo, Eds., MIT Press, pp. 1220.
[4] A NGELINE , P. J., E P OLLACK , J. B. Competitive environments evolve better solutions for complex tasks. In Proceedings of the 5th International Conference on
Genetic Algorithms, ICGA-93 (University of Illinois at Urbana-Champaign, 17-21
julho de 1993), S. Forrest, Ed., Morgan Kaufmann, pp. 264270.
[5] A XELROD , R. The Evolution of Cooperation. Basic Books, New York, 1984.
[6] A XELROD , R. The evolution of strategies in the iterated prisoners dilemma. In Genetic Algorithms and Simulated Annealing (1987), L. Davis, Ed., Morgan Kaufman,
pp. 3241.
[7] BANZHAF, W., N ORDIN , P., K ELLER , R. E., E F RANCONE , F. D. Genetic Programming An Introduction; On the Automatic Evolution of Computer Programs
and its Applications. Morgan Kaufmann, dpunkt.verlag, janeiro de 1998.
[8] BARBOSA , H. J. C. Uma introduo aos algoritmos genticos. Mini-Curso no XX
CNMAC, Congresso Nacional de Matemtica Aplicada e Computacional, Gramado,
RS (1997).
[9] BARRETT, W. A., BATES , R. M., G USTAFSON , D. A., E C OUCH , J. D. Compiler
construction: theory and practice (2nd ed.). SRA School Group, 1986.
REFERNCIAS BIBLIOGRFICAS
145
REFERNCIAS BIBLIOGRFICAS
146
REFERNCIAS BIBLIOGRFICAS
147
[30] I ORIO , A., E L I , X. Parameter control within a co-operative co-evolutionary genetic algorithm. In Proceedings of The Seventh International Conference on Parallel
Problem Solving from Nature - PPSN VII, J. Merelo Guervos, P. Adamidis, H. Beyer,
J. Fernandez-Villacanas, e H. Schwefel, Eds., Lecture Notes in Computer Science
(LNCS 2439), pp. 247256.
[31] K NUTH , D. E. The Art of Computer Programming: Sorting and Searching, vol. 3.
Addison-Wesley, New York, 1973.
[32] KOZA , J. R. Genetic programming: a paradigm for genetically breeding populations of computer programs to solve problems. Technical Report CS-TR-90-1314,
Stanford University, Department of Computer Science, junho de 1990.
[33] KOZA , J. R. Genetic programming: on the programming of computers by means of
natural selection. MIT Press, Cambridge, MA, 1992.
[34] KOZA , J. R. Genetic programming: On the programming of computers by natural
selection. MIT Press, Cambridge, Mass., 1992.
[35] M ANACHER , G. K. An improved version of the Cocke-Younger-Kasami algorithm.
j-COMP-LANGS 3, 2 (1978), 127133.
[36] M ANGASARIAN , O. L., S TREET, W. N., E W OLBERG , W. H. Breast cancer diagnosis and prognosis via linear programming. Relatrio Tcnico MP-TR-1994-10,
1994.
[37] M ONTANA , D. J. Strongly typed genetic programming. Relatrio Tcnico #7866,
Bolt Beranek and Newman, Inc., 10 Moulton Street, Cambridge, MA 02138, USA,
7 1994.
[38] M ORRISON , J. Co-evolution and genetic algorithms. Tese de Mestrado, University
of Carleton, Ottawa, Ontario, 1998.
[39] M YUNG W ON K IM , J OONG G EUN L EE , C. M. Efficient fuzzy rule generation
based on fuzzy decision tree for data mining. In Fuzzy Systems Conference Proceedings, 1999. FUZZ-IEEE 99. (1999), vol. 3, IEEE International, pp. 12231228.
[40] N OLFI , S., E F LOREANO , D. How co-evolution can enhance the adaptive power
of artificial evolution: Implications for evolutionary robotics. In EvoRobots (1998),
pp. 2238.
REFERNCIAS BIBLIOGRFICAS
148
[41] ON EILL , M., E RYAN , C. Grammatical evolution. IEEE Transactions on Evolutionary Computation 5, 4 (2001), 349358.
[42] PAREDIS , J. The evolution of behavior: some experiments. In Proceedings of the
first international conference on simulation of adaptive behavior on From animals
to animats (1991), MIT Press, pp. 419426.
[43] PAREDIS , J. Steps towards co-evolutionary classification neural networks. In Proceedings of the Fourth International Workshop on the Synthesis and Simulation of
Living Systems (1994), pp. 102108.
[44] Q UINLAN , J. Improved use of continuous attributes in C4.5. Journal of Artificial
Intelligence Research 4 (1996), 7790.
[45] R ICARTE , I. L. M. Programao de sistemas: Uma introduo, 2001.
[46] ROSIN , C. D., E B ELEW, R. K. New methods for competitive coevolution. Evolutionary Computation 5, 1 (1997), 129.
[47] ROUWHORST, S. E., E E NGELBRECHT, A. P. Searching the forest: Using decision
trees as building blocks for evolutionary search in classification databases. In Proc.
of the 2000 Congress on Evolutionary Computation (Piscataway, NJ, 2000), IEEE
Service Center, pp. 633638.
[48] RYAN , C., C OLLINS , J. J., E O N EILL , M. Grammatical evolution: Evolving
programs for an arbitrary language. In Proceedings of the First European Workshop
on Genetic Programming (Paris, 14-15 1998), W. Banzhaf, R. Poli, M. Schoenauer,
e T. C. Fogarty, Eds., vol. 1391, Springer-Verlag, pp. 8395.
[49] S MITH , J., E F OGARTY, T. C. Self adaptation of mutation rates in a steady state genetic algorithm. In International Conference on Evolutionary Computation (1996),
pp. 318323.
[50] S URRY, P. D., E R ADCLIFFE , N. J. Real representations. In Foundations of Genetic
Algorithms 4, R. K. Belew e M. D. Vose, Eds. Morgan Kaufmann, San Francisco,
CA, 1997, pp. 343363.
[51] T HRUN , S. B., BALA , J., B LOEDORN , E., B RATKO , I., C ESTNIK , B., C HENG ,
J., J ONG , K. D., D EROSKI , S., FAHLMAN , S. E., F ISHER , D., H AMANN , R.,
REFERNCIAS BIBLIOGRFICAS
149