douglas adriano augusto
TRANSCRIPT
-
7/21/2019 Douglas Adriano Augusto
1/168
CO-EVOLUO AMOSTRA-CLASSIFICADOR INTEGRADA
PROGRAMAO GENTICA GRAMATICAL PARA A
CLASSIFICAO DE DADOS
Douglas Adriano Augusto
TESE SUBMETIDA AO CORPO DOCENTE DA COORDENAO DOS
PROGRAMAS DE PS-GRADUAO DE ENGENHARIA DA UNIVERSIDADE
FEDERAL DO RIO DE JANEIRO COMO PARTE DOS REQUISITOS NECESSRIOS
PARA A OBTENO DO GRAU DE MESTRE EM CINCIAS EM ENGENHARIA
CIVIL.
Aprovada por:
Prof. Nelson Francisco Favilla Ebecken, D.Sc.
Prof. Helio Jos Corra Barbosa, D.Sc.
Prof. Alexandre Gonalves Evsukoff, Dr.
Prof. Antonio Csar Ferreira Guimares, D.Sc.
RIO DE JANEIRO, RJ - BRASIL
DEZEMBRO DE 2004
-
7/21/2019 Douglas Adriano Augusto
2/168
AUGUSTO, DOUGLAS ADRIANO
Co-evoluo Amostra-Classificador inte-
grada Programao Gentica Gramatical para
a Classificao de Dados [Rio de Janeiro] 2004
XIX, 143 pp. 29,7 cm (COPPE/UFRJ, M.Sc.,
Engenharia Civil, 2004)Tese Universidade Federal do Rio de Ja-
neiro, COPPE
1 - Programao Gentica
2 - Co-evoluo Competitiva
3 - Gramtica Livre de Contexto
4 - Classificao de Dados
I. COPPE/UFRJ II. Ttulo (srie)
ii
-
7/21/2019 Douglas Adriano Augusto
3/168
queles que em algum grau possam usufruir desta obra.
iii
-
7/21/2019 Douglas Adriano Augusto
4/168
Os maiores acontecimentos e pensamentos so os
que mais tardiamente so compreendidos.
Quem chegou, ainda que apenas em certa medida,
liberdade da razo, no pode sentir-se sobre a
terra seno como andarilho.
Friedrich Nietzsche
iv
-
7/21/2019 Douglas Adriano Augusto
5/168
Agradecimentos
minha famlia, em especial aos meus pais.
Aos meus orientadores, Helinho e Nelson,
pelo nobre exerccio da orientao, sabedoria, pacincia e suporte.
CAPES/MEC,
pela gentileza na concesso da bolsa de estudos.
Aos grandes filsofos e engenheiros do Software Livre, pela disponibilizaolivree
gratuita de ferramentas e ambientes computacionais tecnicamente privilegiados.
A todos autores e seus esforos prvios,
que contriburam (e contribuem) no somente com a confeco deste trabalho, mas
principalmente no desenvolvimento slido do conhecimento cientfico.
v
-
7/21/2019 Douglas Adriano Augusto
6/168
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: Nelson Francisco Favilla EbeckenHelio Jos Corra Barbosa
Programa: Engenharia Civil
A tarefa de classificao de dados dedica-se a garimpar amostras de dados procura e
extrao de conhecimento. Prope-se a sintetizar a essncia das semelhanas que moldam
as diferentes classes ou categorias de um certo problema. O xito desta tarefa depende
de algoritmos e tcnicas que exeram com qualidade e exatido a descoberta do conheci-
mento implcito em um conjunto de dados.
O presente trabalho trata a tarefa de classificao de dados via tcnicas de compu-
tao evolucionria, empregando-se essencialmente trs abordagens: programao gen-
tica, co-evoluo competitiva e gramtica livre de contexto.
Explora-se a robustez e a qualidade simblica/interpretativa da programao genticavisando a construo, por evoluo darwiniana, de rvores classificadoras. A estrutura
formal e flexvel da gramtica livre de contexto substitui a forma representativa tradicio-
nal da programao gentica, descrevendo uma linguagem capaz de codificar, de forma
precisa e estruturalmente semntica, rvores de qualquer complexidade. Finalmente, a
co-evoluo competitiva integra-se ao sistema promovendo competies entre amostras
de dados e rvores classificadoras, no intuito de criar tenses bilaterais positivas que esti-
mulam a acelerao da escalada evolucionria.
vi
-
7/21/2019 Douglas Adriano Augusto
7/168
Abstract of Thesis presented to COPPE/UFRJ as partial fulfillment of the requirements
for the degree of Master of Science (M.Sc.)
COEVOLUTION OF DATA SAMPLES AND CLASSIFIERS INTEGRATED
WITH GRAMMATICAL GENETIC PROGRAMMING
FOR DATA CLASSIFICATION
Douglas Adriano Augusto
December/2004
Advisors: Nelson Francisco Favilla EbeckenHelio Jos Corra Barbosa
Department: Civil Engineering
The task of data classification consists in mining data samples in order to find and
extract knowledge. It seeks to syntesize the essence of the similarities that define the
different classes or categories of a given problem. The success of this task is dependent
on algorithms and techniques that perform with efficiency and efficacy the discovery of
implict knowledge in a data set.
The present work treats the data classification task by means of evolutionary com-
putation techniques using specially three approaches: genetic programming, competitive
coevolution, and context-free grammar.
The robustness and symbolic/interpretative qualities of the genetic programming areemployed to construct classification trees via darwinian evolution. The flexible formal
structure of the context-free grammar replaces the standard genetic programming repre-
sentation and describes a language which encodes trees of varying complexity. Finally,
competitive coevolution is used to promote competitions between data samples and clas-
sification trees in order to create and sustain an evolutionary race for improved solutions.
vii
-
7/21/2019 Douglas Adriano Augusto
8/168
Sumrio
1 Introduo 1
1.1 O Domnio de Aplicao . . . . . . . . . . . . . . . . . . . . . . . . . . 21.1.1 Classificao de Dados . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Os Trs Pilares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.1 Programao Gentica . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.2 Programao Gentica Gramatical . . . . . . . . . . . . . . . . . 4
1.2.3 Co-evoluo Amostra-Classificador . . . . . . . . . . . . . . . . 5
1.3 Organizao da Dissertao . . . . . . . . . . . . . . . . . . . . . . . . . 6
2 Programao Gentica 8
2.1 A Teoria de Darwin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2 Algoritmo Gentico AG . . . . . . . . . . . . . . . . . . . . . . . . . 9
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
-
7/21/2019 Douglas Adriano Augusto
9/168
2.3 Programao Gentica PG . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3.1 Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3.2 Os Conceitos da Programao Gentica . . . . . . . . . . . . . . 17
2.3.3 Codificao e Representao . . . . . . . . . . . . . . . . . . . . 19
2.3.4 Criao da Populao . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3.4.1 Mtodo de Criao Completa Full Creation Method . 20
2.3.4.2 Mtodo de Criao Livre Grow Creation Method. . . 20
2.3.4.3 Efeito Escada Ramping . . . . . . . . . . . . . . . . 20
2.3.4.4 Mtodo de Criao Misto Ramped Half-and-Half . . 21
2.3.5 Conjunto de Funes e Terminais . . . . . . . . . . . . . . . . . 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
2.3.9 reas de Aplicao . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.4 Regresso Simblica . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.4.1 Regresso Simblica de uma Expresso . . . . . . . . . . . . . . 29
2.4.1.1 Mtodos Clssicos Programao Gentica . . . . . . 32
2.5 Concluso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
ix
-
7/21/2019 Douglas Adriano Augusto
10/168
3 Programao Gentica Gramatical 34
3.1 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 Gramtica Livre de Contexto GLC . . . . . . . . . . . . . . . 40
3.1.3.1 Representao . . . . . . . . . . . . . . . . . . . . . . 41
3.1.3.2 Exemplos Ilustrativos . . . . . . . . . . . . . . . . . . 41
3.2 Linguagem e Representao na Programao Gentica . . . . . . . . . . 45
3.2.1 Estruturas Sintticas Restritas ESR . . . . . . . . . . . . . . . 45
3.2.2 Programao Gentica com Tipos Fortes PGTF . . . . . . . . 46
3.2.3 Evoluo Gramatical EG . . . . . . . . . . . . . . . . . . . . 48
3.3 Programao Gentica Gramatical PGG . . . . . . . . . . . . . . . . 51
3.3.1 Definio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.3.2 PGG: GLC adaptada Programao Gentica Tradicional . . . . 53
3.3.2.1 Gramtica Livre de Contexto para o Problema . . . . . 54
3.3.2.2 Criao dos Indivduos da Populao Inicial . . . . . . 56
3.3.2.3 A Avaliao dos Indivduos . . . . . . . . . . . . . . . 62
3.3.2.4 Seleo dos Indivduos Promissores . . . . . . . . . . . 64
3.3.2.5 Operadores Genticos . . . . . . . . . . . . . . . . . . 64
3.3.2.6 Reproduo: Insero dos Novos Indivduos . . . . . . 69
3.3.3 Detalhes de Implementao . . . . . . . . . . . . . . . . . . . . 69
3.3.3.1 Gramtica . . . . . . . . . . . . . . . . . . . . . . . . 69
x
-
7/21/2019 Douglas Adriano Augusto
11/168
3.3.3.2 Otimizao da Execuo da rvore . . . . . . . . . . . 70
3.4 Concluso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4 Co-evoluo Amostra-Classificador 72
4.1 Co-evoluo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.1.1 Definio Formal . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.1.1.1 Simbiose . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.1.1.2 Co-evoluo . . . . . . . . . . . . . . . . . . . . . . . 75
4.1.2 Tipos de Co-evoluo . . . . . . . . . . . . . . . . . . . . . . . 75
4.1.2.1 Notao Simblica e Representao Grfica . . . . . . 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
4.2 Trabalhos em Co-evoluo Competitiva . . . . . . . . . . . . . . . . . . 83
4.2.1 O Dilema do Prisioneiro Iterado . . . . . . . . . . . . . . . . . . 83
4.2.2 Redes de Ordenao . . . . . . . . . . . . . . . . . . . . . . . . 85
4.2.3 Aptido via Torneio . . . . . . . . . . . . . . . . . . . . . . . . 884.2.4 Co-evoluo de Redes Neurais Classificadoras . . . . . . . . . . 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
xi
-
7/21/2019 Douglas Adriano Augusto
12/168
4.2.4.5 Aptido Cumulativa e Rudos . . . . . . . . . . . . . . 96
4.3 Co-evoluo Amostra-Classificador . . . . . . . . . . . . . . . . . . . . 97
4.3.1 Criao da Populao de Classificadores . . . . . . . . . . . . . . 97
4.3.2 Formao da Populao de Amostras . . . . . . . . . . . . . . . 99
4.3.3 Avaliao dos Indivduos Recm Concebidos . . . . . . . . . . . 100
4.3.3.1 Verificao de Falsas Solues . . . . . . . . . . . . . 100
4.3.3.2 Medida de Complexidade . . . . . . . . . . . . . . . . 101
4.3.4 Ciclo Co-evolutivo . . . . . . . . . . . . . . . . . . . . . . . . . 101
4.3.4.1 Seleo dos Indivduos . . . . . . . . . . . . . . . . . 101
4.3.4.2 Confronto e Atualizao da Aptido Cumulativa . . . . 102
4.3.5 Seleo, Aplicao dos Operadores Genticos e Insero de Clas-
sificadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
4.4 Concluso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
5 Estudo de Casos 105
5.1 Metodologia dos Experimentos . . . . . . . . . . . . . . . . . . . . . . . 105
5.1.1 Determinao dos Parmetros . . . . . . . . . . . . . . . . . . . 107
5.1.1.1 Parmetros Numricos . . . . . . . . . . . . . . . . . . 107
5.1.1.2 Gramtica . . . . . . . . . . . . . . . . . . . . . . . . 109
5.1.2 Apresentao dos Resultados . . . . . . . . . . . . . . . . . . . . 109
5.1.2.1 Interpretao das Tabelas . . . . . . . . . . . . . . . . 109
5.1.3 Ambiente Computacional . . . . . . . . . . . . . . . . . . . . . 112
5.2 Classes das Plantas ris . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
5.2.1 Experimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
5.2.1.1 Experimento com Base Segmentada . . . . . . . . . . 113
xii
-
7/21/2019 Douglas Adriano Augusto
13/168
5.2.1.2 Experimento com a base completa . . . . . . . . . . . 115
5.3 Diagnstico de Cncer de Mama . . . . . . . . . . . . . . . . . . . . . . 117
5.3.1 Experimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
5.4 Predio Partidria dos Congressistas . . . . . . . . . . . . . . . . . . . 120
5.4.1 Experimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
5.5 Bases de Dados ArtificiaisMonks . . . . . . . . . . . . . . . . . . . . . 124
5.5.1 MonksI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
5.5.2 MonksII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
5.5.3 MonksIII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
5.6 Deteco de Tipos de Imagens . . . . . . . . . . . . . . . . . . . . . . . 130
5.6.1 Experimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
5.7 Concluso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
6 Concluses 134
6.1 Programao Gentica . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
6.2 Programao Gentica Gramatical . . . . . . . . . . . . . . . . . . . . . 135
6.3 Co-evoluo Amostra-Classificador . . . . . . . . . . . . . . . . . . . . 137
6.3.1 O Problema do Ciclo . . . . . . . . . . . . . . . . . . . . . . . . 138
6.4 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Referncias Bibliogrficas 144
xiii
-
7/21/2019 Douglas Adriano Augusto
14/168
Lista de Figuras
2.1 As partes de um cromossomo. . . . . . . . . . . . . . . . . . . . . . . . 11
2.2 Ocrossoverde um ponto. . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3 Ocrossoverde dois pontos. . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.4 Ocrossovercom mscara. . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.5 Ocrossoversimplex. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.6 Um exemplo de mutao. . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.7 A estrutura de um sistema de programao gentica. . . . . . . . . . . . . 18
2.8 Dois exemplos de indivduos. . . . . . . . . . . . . . . . . . . . . . . . . 19
2.9 Criao inicializao. . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.10 O processo decrossoverpadro. . . . . . . . . . . . . . . . . . . . . . . 25
2.11 O processo de mutao padro. . . . . . . . . . . . . . . . . . . . . . . . 26
2.12 O processo de mutao do alelo. . . . . . . . . . . . . . . . . . . . . . . 26
2.13 O processo de mutao encolhimento. . . . . . . . . . . . . . . . . . . . 27
2.14 O operador de permutao. . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.15 Grfico baseado nos pontos discretos da Tabela 2.1. . . . . . . . . . . . . 31
2.16 Grfico contnuo baseado na forma exata da funo f(x) =2x2. . . . . . . 31
3.1 rvore sinttica dos passos de derivao da sentenaaaabbb. . . . . . . . 38
3.2 rvores sintticas da sentenaabaabbab. . . . . . . . . . . . . . . . . . 38
xiv
-
7/21/2019 Douglas Adriano Augusto
15/168
3.3 Hierarquia de Chomsky. . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.4 rvore sinttica dos passos de derivao sobre a gramticaGpal . . . . . . 43
3.5 rvore sinttica dos passos de derivao da expresso prefixa. . . . . . . 44
3.6 Cromossomo com codificao numrica inteira em 8 bits. . . . . . . . . 49
3.7 Gentipo infactvel sob rotao dos genes. . . . . . . . . . . . . . . . . 51
3.8 A estrutura do fluxo da PG e PGG. . . . . . . . . . . . . . . . . . . . . . 54
3.9 As possveis razes das rvores de derivao segundo aGiris. . . . . . . . 56
3.10 O cruzamento na programao gentica gramatical. . . . . . . . . . . . . 65
3.11 A mutao na programao gentica gramatical. . . . . . . . . . . . . . . 68
3.12 rvore de derivao segmentada. . . . . . . . . . . . . . . . . . . . . . . 71
4.1 Representao grfica de uma simbiose. . . . . . . . . . . . . . . . . . . 76
4.2 Comensalismo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
4.3 Amensalismo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
4.4 Mutualismo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
4.5 Predatismo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
4.6 Competio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
4.7 Esquema de avaliao por competio completa. . . . . . . . . . . . . . 85
4.8 Exemplo de uma rede de ordenao. . . . . . . . . . . . . . . . . . . . . 86
4.9 Esquema de confronto tipo parelho. . . . . . . . . . . . . . . . . . . . . 88
4.10 Esquema do torneio entre membros da populao. . . . . . . . . . . . . . 89
4.11 Esquema grfico da competio entre redes neurais e amostras. . . . . . . 91
4.12 Domnio[1,1] [1,1]contendo quatro classes. . . . . . . . . . . . . 94
4.13 Fluxograma do sistema amostra-classificador. . . . . . . . . . . . . . . . 98
4.14 Um indivduo da populao de classificadores. . . . . . . . . . . . . . . . 99
xv
-
7/21/2019 Douglas Adriano Augusto
16/168
4.15 Um indivduo da populao de amostras. . . . . . . . . . . . . . . . . . . 99
5.1 rvore de classificao da planta ris. . . . . . . . . . . . . . . . . . . . 115
5.2 rvore de classificao da planta ris. . . . . . . . . . . . . . . . . . . . 115
5.3 rvore de classificao da planta ris sobre o conjunto de treinamento. . . 117
5.4 rvore de diagnstico do cncer de mama. . . . . . . . . . . . . . . . . . 120
5.5 rvore de diagnstico do cncer de mama. . . . . . . . . . . . . . . . . . 121
5.6 rvore classificadora predio partidria. . . . . . . . . . . . . . . . . . 123
5.7 rvore classificadora predio partidria. . . . . . . . . . . . . . . . . . 124
6.1 Ocorrncia do ciclo na co-evoluo. Exnrepresenta a estratgianda po-
pulaox. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
6.2 Ocorrncia do ciclo na classificao amostra-classificador. . . . . . . . . 140
xvi
-
7/21/2019 Douglas Adriano Augusto
17/168
Lista de Tabelas
2.1 Pontos discretos da funo exemplo . . . . . . . . . . . . . . . . . . . . 30
3.1 Forma das produes das gramticas na hierarquia de Chomsky. . . . . . 40
3.2 Gramtica das operaes sin, cos,+e sobre a varivelx. . . . . . . . . 49
3.3 GramticaGirissimplificada. . . . . . . . . . . . . . . . . . . . . . . . . 55
3.4 Produes da gramticaGirisrotuladas. . . . . . . . . . . . . . . . . . . 61
3.5 Ligaes funcionais dos smbolos terminais da gramticaGiris. . . . . . . 63
3.6 Exemplo de parmetros para ocrossoverseletivo sob a gramticaGiris. . . 67
3.7 Exemplos de parmetros para a mutao seletiva sob a gramticaGiris. . . 69
4.1 Penalidades no jogo Dilema do Prisioneiro. . . . . . . . . . . . . . . . . 84
5.1 Modelo de parmetros. . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
5.2 Parmetros fixos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
5.3 Gramtica para rvore classificadora. . . . . . . . . . . . . . . . . . . . . 110
5.4 Listagem da sada de uma execuo particular. . . . . . . . . . . . . . . . 111
5.5 Parmetros para o problema ris base segmentada. . . . . . . . . . . . . . 113
5.6 Resultados para a base de dados ris segmentada. . . . . . . . . . . . . . 113
5.7 Desempenho de outros algoritmos sobre a base de dados ris. . . . . . . . 114
5.8 Parmetros para o problema ris base completa. . . . . . . . . . . . . . . 116
xvii
-
7/21/2019 Douglas Adriano Augusto
18/168
5.9 Resultados para a base de dados ris completa. . . . . . . . . . . . . . . . 116
5.10 Parmetros cncer de mama. . . . . . . . . . . . . . . . . . . . . . . . . 118
5.11 Resultados cncer de mama com tamanho relaxado. . . . . . . . . . . . . 119
5.12 Resultados cncer de mama com maior peso complexidade. . . . . . . . . 119
5.13 Parmetros iniciais para a predio partidria. . . . . . . . . . . . . . . . 122
5.14 Resultados da execuo inicial para a predio partidria. . . . . . . . . . 123
5.15 Desempenho de outros algoritmos sobre a predio partidria. . . . . . . 123
5.16 Resultados mais parcimoniosos sobre a predio partidria. . . . . . . . . 124
5.17 Descrio dos atributos para a coleo monks. . . . . . . . . . . . . . . . 125
5.18 Parmetros para o problemamonksI. . . . . . . . . . . . . . . . . . . . . 126
5.19 Resultados sobre a base artificialmonksI. . . . . . . . . . . . . . . . . . 126
5.20 Parmetros para o problemamonksII. . . . . . . . . . . . . . . . . . . . 127
5.21 Resultados sobre a base artificialmonksII. . . . . . . . . . . . . . . . . . 128
5.22 Parmetros para o problemamonksIII. . . . . . . . . . . . . . . . . . . . 129
5.23 Resultados sobre a base artificialmonksIII. . . . . . . . . . . . . . . . . 129
5.24 Parmetros para o problema de deteco de imagens. . . . . . . . . . . . 130
5.25 Resultados iniciais para o problema de deteco de imagens. . . . . . . . 131
5.26 Resultados para o problema de deteco de imagens. . . . . . . . . . . . 131
5.27 Desempenho de outros algoritmos sobre o problema de deteco de ima-
gens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
xviii
-
7/21/2019 Douglas Adriano Augusto
19/168
Lista de Algoritmos
3.1 Pseudo-algoritmo do funcionamento da PGG. . . . . . . . . . . . . . . . 55
3.2 Criarvore (). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.3 RotulaProdues (G) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.4 Criarvore (,pmax) . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.5 ExecutaPrograma (T) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.6 Cruzamento (1,2, tentativasmax) . . . . . . . . . . . . . . . . . . . . . 66
3.7 Mutao (,pmutmax) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.1 Pseudo-algoritmo co-evolucionrio com aptido cumulativa. . . . . . . . . 93
4.2 Algoritmo de avaliao inicial. . . . . . . . . . . . . . . . . . . . . . . . . 100
4.3 Algoritmo de avaliao direcionada. . . . . . . . . . . . . . . . . . . . . 103
xix
-
7/21/2019 Douglas Adriano Augusto
20/168
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 cresci-
mento vertiginoso de massas de dados alocadas em dispositivos digitais. Grandes quanti-
dades de dados implicam em potencialmente mais informaes, entretanto, o armazena-
mento em larga escala inviabiliza o processo manual de inspeo e aquisio de conheci-
mento.
Destarte, aumenta-se a necessidade e o interesse sobre tecnologias capazes de ma-
nusear inteligentemente e automaticamente grandes repositrios de dados. Esta
a tarefa do processo geral deDescoberta 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. Den-
tre 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 clas-
sificao de dados o alvo de aplicao dos temas do trabalho desta dissertao, por
conseguinte, o captulo corrente prossegue focando-se nos assuntos correlatos.
1KDD Knowledge Discovery in Databases. O KDD um processo de descoberta de conhecimento
em banco de dados que envolve determinadas etapas, como o tratamento e enriquecimento de dados, mine-rao de dados e a interpretao das sadas.
-
7/21/2019 Douglas Adriano Augusto
21/168
1.1 O Domnio de Aplicao 2
1.1 O Domnio de Aplicao
1.1.1 Classificao de Dados
A classificao de dados consiste em associar um conjunto de atributos (heterogneos
ou no) a um valor categrico, isto , a uma classe. As classes so valores discretos e
finitos, conceitualmente representando, cada uma, um grupo ou diviso que manifesta
caractersticas semelhantes, de mesma categoria. O fundamento da tarefa de classificao
decifrar, em uma determinada amostra de dados, a relao (conhecimento implcito)
entre o conjunto de atributos (valores preditivos) e a classe. Sendo assim, a classificao
de dados pode ser explorada sob dois vieses:
como ferramenta destinada to somente classificao de novas amostras de da-dos usa-se apenas o poder de classificao, dispensando a interpretao do co-
nhecimento adquirido pelo classificador. Por exemplo, um classificador poderia ser
utilizado para predizer o grau de risco de emprstimo bancrio a um cliente, a julgar
pelo seu perfil scio-econmico. Conclui-se imediatamente que a qualidade simb-
lica (textual) do conhecimento do classificador irrelevante, isto , a classificao
dita caixa preta seria to satisfatria quanto a interpretativa.
como fonte de conhecimento explora-se o esforo da tarefa de classificao dedados como um instrumento de inferncia de conhecimento. Por exemplo, na base
de dados da planta ris 2, pode-se descobrir/entender a relao que mapeia seus
atributos numricos (representando dimenses da planta) nas trs diferentes classes
da planta. Naturalmente, exige-se que a tcnica empregada de classificao seja
simblica, isto , passvel de interpretao humana.
Percebe-se que o princpio do aprendizado associativo da classificao de dados
supervisionado. Isto significa que a inferncia de conhecimento patrocinada por con-
junto de dados previamente classificados (corretamente), cujo propsito servir como
guia de aprendizado, sendo portanto referidos como conjunto de treinamento. Para este
aprendizado, pode-se fazer uso de distintas tcnicas, entre elas as redes neurais artificiais,
mtodos estatsticos e algoritmos da computao evolucionria, em especial a programa-
o gentica.
2Vide Seo 5.2.
-
7/21/2019 Douglas Adriano Augusto
22/168
1.2 Os Trs Pilares 3
Nesta dissertao, adota-se a tcnica de classificao de dados via programao gen-
tica, 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
1.2.1 Programao Gentica
A natureza tem se mostrado uma rica fonte de inspirao para as mais diversas ferra-
mentas e tcnicas computacionais, seja no mbito biolgico, fsico ou qumico. O com-
plexo biolgico da natureza tem sido ultimamente bem explorado por cientistas e pesqui-
sadores, sendo que grande parte da pesquisa incide sobre a rea de otimizao.
Um importante paradigma concebido s custas da inteligncia biolgica, em espe-
cial da evoluo natural das espcies, a computao evolucionria. Neste, o processo
de otimizao apia-se no princpio darwiniano de evoluo (essencialmente a seleonatural), isto , uma populao de indivduos artificiais, cada qual representando uma so-
luo candidata para um determinado problema, posta em evoluo simulada. Espera-se
assim que, ao longo das geraes, esta populao progressivamente contenha indivduos
melhor adaptados tarefa objetivo, de maneira anloga ao processo de evoluo natural.
Dentro da computao evolucionria situam-se tcnicas como os algoritmos genticos
e a programao gentica 3, apresentando-se como as mais populares e estudadas deste
paradigma, mrito este justificado fundamentalmente pela excelncia na atuao em vari-adas reas do conhecimento.
Distingue-se a programao gentica (PG) dos algoritmos genticos (AG) basica-
mente pela a estrutura de codificao de seus indivduos, culminando em propsitos de
atuao bem distintos. Enquanto o AG emprega na sua forma cannica um vetor de bits
para representar os indivduos, a PG adota uma estrutura mais complexa, uma estrutura
com qualidades para codificar um programa de computador a rvore comumente uti-
3Os algoritmos genticos e programao gentica foram introduzidos por John Holland [28] e JohnKoza [34], respectivamente.
-
7/21/2019 Douglas Adriano Augusto
23/168
1.2 Os Trs Pilares 4
lizada. Portanto, a PG visa evoluir programas em uma determinada linguagem, solues
que dependam, por exemplo, de estruturas condicionais, desvios, laos de repetio, ope-
radores relacionais e aritmticos. Percebe-se pelo seu propsito que a aplicabilidade da
PG vasta, virtualmente ilimitada. Dentre inmeros outros domnios abordados pela PG,
esto a regresso simblica, reconhecimento de padres, compactao de imagens, clas-
sificao de dados e robtica.
Neste trabalho, a programao gentica submetida tarefa de classificao de dados.
A motivao de seu emprego deriva das propriedades intrnsecas PG, que a tornam ade-
quada s nuanas e exigncias da classificao de dados. A PG tem a acrescentar a esta
rea por ser uma tcnica de otimizao predominantemente global, relativamente insen-
svel a rudos, que evolui solues simblicas (passveis de interpretao) e naturalmente
afvel para com outras tcnicas e extenses.
1.2.2 Programao Gentica Gramatical
medida que problemas demandando estruturas representativas mais complexas so
abordados pela PG clssica, comeam a se evidenciar limitaes no que tange forma tra-
dicional de codificao da PG. Estas fraquezas do-se pela maneira rudimentar e simplriapela qual a representao tpica de uma soluo feita na PG. Dentre estas destacam-se:
1) o fato de que no h imposio quanto s restries estruturais (semnticas) envolvendo
cada operador e operando, em qualquer nvel 4; 2) a restrio de que, para se manter a
factibilidade da soluo candidata, necessrio que todos operadores e operandos se-
jam intercambiveis entre si, isto , qualquer operador obrigatoriamente deve manipular
qualquer operando, mesmo que no haja significado na operao.
Para a tarefa de classificao de dados, onde no raro a atuao em base de dadoscontendo atributos heterogneos (atributos lgicos, ordinais, categricos e/ou reais), as
fragilidades da implementao tradicional tornam no apenas a aplicabilidade deficiente
provavelmente incorrendo em solues sub-timas, como muitas vezes invivel.
A estrutura formal conhecida como gramtica livre de contexto (GLC), gerando qual-
quer complexidade de linguagem computacional, uma forte candidata a substituir a
forma tpica de codificao da PG. A GLC permite que sejam feitas restries de qual-
4Outrossim, a codificao cannica da programao gentica no garante nem mesmo restries deprimeiro nvel, isto , restries quanto compatibilidade de tipos entre funes e seus argumentos.
-
7/21/2019 Douglas Adriano Augusto
24/168
1.2 Os Trs Pilares 5
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 descartaa prioriregies es-
treis 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 es-
trutura em substituio ao modelo tradicional de codificao de indivduos. Denomina-se,
ainda, programao gentica gramatical, ou simplesmente PGG, a unio entre a progra-
mao gentica e o conceito de gramtica.
1.2.3 Co-evoluo Amostra-Classificador
Medir a aptido de indivduos, na tarefa de classificao de dados, significa avaliar
a soluo candidata confrontando-a com todas as amostras do conjunto de treinamento.
Para problemas com dimenses modestas, esta definio de avaliao pode trazer umasobrecarga aceitvel. Todavia, medida que empregam-se base de dados em larga es-
cala, a definio tpica da avaliao deixa de ser meramente um fator desconfortvel para
tornar-se um verdadeiro gargalo no processo evolucionrio.
Pode-se pensar em criar algumas variaes do modelo padro, por exemplo, definir
uma janela contendo uma determinada frao de amostras de dados selecionadas aleato-
riamente, ento, o indivduo seria avaliado no pela base inteira, mas sim por esta pequena
parcela. provvel que este modelo traga alguma reduo no custo computacional parabases de dados mais homogneas, onde uma frao de dados tende a ter uma representa-
tividade prxima base completa. Contudo, sua vantagem tende a desaparecer medida
que a entropia aumenta, isto , quando a base de dados torna-se mais diversificada.
Felizmente, uma abordagem mais eficiente e elegante pode ser alcanada atravs da
competio por recursos, isto , pela co-evoluo competitiva, ou ainda melhor, co-
evoluo amostra-classificador. Em termos gerais, a co-evoluo competitiva uma vari-
ao inteligente do modelo janela descrito anteriormente.
5A evoluo da gramtica no foi implementada nesta dissertao.
-
7/21/2019 Douglas Adriano Augusto
25/168
1.3 Organizao da Dissertao 6
No modelo co-evolucionrio amostra-classificador, empregam-se duas populaes de
indivduos, a primeira contendo indivduos classificadores e a segunda indivduos en-
capsulando amostras de dados 6. So realizadas ento avaliaes bidirecionais, onde a
aptido do classificador calculada, naturalmente, por quo bem classifica um conjunto
de dados; por outro lado, um indivduo amostra avaliado pela sua habilidade em in-
duzir ms classificaes na populao concorrente. A seleo dos adversrios durante a
avaliao tambm direcionada, isto , favorece indivduos melhores adaptados.
Toda essa dinmica cria uma tenso saudvel (sob o aspecto evolucionrio), trazendo
conseqncias positivas, notoriamente:
focalizao na resoluo de amostras de dados difceis de serem classificadas, emvez de persistir em casos trivialmente classificveis.
estimulao da escalada evolucionria, isto , medida que as populaes tornam-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) declassificadores que no provem, insistentemente 7 , quo bom o so.
1.3 Organizao da Dissertao
Esta dissertao est dividida da seguinte forma. No Captulo 2 introduzida a noo
do conceito darwiniano de evoluo, apresenta-se sucintamente os algoritmos genticos
e, ento, descreve-se a programao gentica. Define-se no Captulo 3 a teoria formal
pertinente gramtica livre de contexto, realizada a reviso da literatura relacionada, e
prossegue-se com os detalhes da integrao entre a gramtica e a programao gentica.
visto no Captulo 4 a definio de co-evoluo competitiva, bem como a discusso de
trabalhos prvios e a explanao da co-evoluo amostra-classificador. Os conceitos apre-
sentados so ento postos em campo no Captulo 5, onde implementa-se um sistema de
6Embora a segunda populao no modifique o material gentico de seus indivduos, pois do contrriodescaracterizariam os dados a serem preditos.
7Nota-se que quanto melhor um indivduo se apresenta, probabilisticamente so maiores suas chancesde seleo para confrontar-se, justamente, com adversrios cada vez mais rduos.
-
7/21/2019 Douglas Adriano Augusto
26/168
1.3 Organizao da Dissertao 7
classificao de dados e o mesmo aplicado sobre diversas base de dados, comparando-se
ainda os resultados com os de outros algoritmos de classificao.
Finalmente, no Captulo 6 enunciam-se avaliaes sobre as abordagens empregadasneste trabalho juntamente com meno s vantagens e desvantagens de cada mtodo,
aponta ainda direes para trabalhos futuros.
-
7/21/2019 Douglas Adriano Augusto
27/168
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 umaviso 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 ge-
nticos, 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 natura-
lista. 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 melho-
res adaptados a um certo ambiente tm mais chance de sobrevivncia, conseqentemente,
estes se reproduziro com mais freqncia, repassando suas caractersticas a seus descen-dentes. Isto conhecido como Seleo Natural. Ao progresso das geraes, a tendncia
-
7/21/2019 Douglas Adriano Augusto
28/168
2.2 Algoritmo Gentico AG 9
que as caractersticas dos melhores indivduos sejam disseminadas de tal modo que seus
descendentes as absorvam, tornando-os, com alta probabilidade, to ou melhor adapta-
dos 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 cont-
nuos 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 indi-vduos 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 umanota, 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 comoaptido. 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 dapopulao, entre outros.
-
7/21/2019 Douglas Adriano Augusto
29/168
2.2 Algoritmo Gentico AG 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, ogeracionale osteady-state.
A reproduo denominadageracionalmantm 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 re-
produo comelitismo. 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 pro-
blema deste artefato a estimulao da convergncia prematura, isto , um indivduo que
seja substancialmente superior aos demais poder dominar a populao, espalhando ra-
pidamente 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 debits(codificao binria) de
tamanho fixo. Na verdade, cada indivduo possui este vetor debits, que pode ser enten-
dido como seucromossomo 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 debitsest codificando dois valores de razes can-
didatas (nmeros inteiros ou reais) atravs, claro, dezerosou uns. Cada posio deste
1O termo genoma muitas vezes empregado como sinnimo de cromossomo na rea dos algoritmosevolucionrios.
-
7/21/2019 Douglas Adriano Augusto
30/168
2.2 Algoritmo Gentico AG 11
vetor (cromossomo) conhecida como locus. Um conjunto delocusque se traduz em
alguma caracterstica do indivduo denominado gene. Chama-se dealelo, todo valor
que um gene pode assumir. Para esclarecer tais conceitos, apresentado um exemplo
simplificado na Figura 2.1 que ilustra as partes que constituem um cromossomo. Nesta,
possvel observar que o cromossomo contm seis locus. Esse cromossomo est dividido
em dois genes. Uma interpretao para isto pode ser dada, imaginando-se que cada gene
representa um nmero inteiro no negativo de zero sete2. Estes nmeros inteiros (ou
reais, por mapeamento) podem, por exemplo, ser os valores candidatos s razes de uma
equao de segundo grau. Na figura, os alelos so todos os valores que um gene pode
assumir; ento, no exemplo, eles so os nmeros {0,1,2,3,4,5,6,7}.
0 0 01 1 1 cromossomo
ocus
gene A gene B
Alelo {0,...,7} Alelo {0,...,7}
Figura 2.1: As partes de um cromossomo.
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.
2.2.3 A Funo de Avaliao
A funo de avaliao fundamental para qualquer algoritmo evolucionrio, a res-
ponsvel por direcionar a busca para locais mais promissores. A funo associa a cada
indivduo um valor que corresponde sua aptido (qualidade). Deduz-se obviamente, que
a funo de avaliao obrigatoriamente dependente do problema que se deseja resolver.
2Neste exemplo, codifica-se duas variveis com trs bitscada. Assim, o intervalo de valores est com-preendido entre 0 (20.0+ 21.0+ 22.0) e 7 (20.1+21.1+ 22.1). Ainda, nmeros reais podem tambm serrepresentados (com preciso e amplitude ajustveis) por conjunto de bits, atravs de um mapeamento ade-
quado.3Contudo, o leitor convidado a checar as informaes constantes em [8], [20], [10], [23], [50] e [25].
-
7/21/2019 Douglas Adriano Augusto
31/168
2.2 Algoritmo Gentico AG 12
Considerando-se o problema de encontrar as razes de uma equao qualquer, pode-
se 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 faval , para uma equao de primeiro grau, dado
matematicamente por
faval(x) = |ax + b|
ondeaebso as constantes numricas reais da equao e xo valor do fentipo do indi-
vduo em avaliao. Qualquer valor parax diferente da raiz da equao implica em um
retorno positivo na faval , que assumindo-se um problema de minimizao, promove umabaixa 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 apti-
do do indivduo como no exemplo anterior, em que os valores eram inversamente
proporcionais, interessante convencionar, a ttulo de clareza, que a funo de apti-
do 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 efuno de avaliao so ainda comumente utilizados indiscriminadamente.
2.2.4 Esquemas de Seleo
Quando os indivduos de uma populao estiverem avaliados, so necessrios meios
que possibilitem aos indivduos mais aptos uma maior chance de serem selecionados para
recombinarem suas caractersticas: isto a seleo natural. So citadas a seguir trs
formas de seleo.
O primeiro esquema, chamadoseleo por roletaouseleo proporcional aptido,
associa ao indivduo uma probabilidade de ser selecionado proporcional sua aptido.
O problema deste mtodo, dado seu critrio fortemente baseado nas discrepncias entre
aptides, facilitar a ocorrncia de convergncia prematura.
No intuito de amenizar o problema da convergncia prematura, possvel utilizar um
outro esquema denominadoseleo por ranking. Esta tcnica ordena todos os indivduosde acordo com sua aptido, de tal modo que o primeiro norankcorresponde ao melhor
-
7/21/2019 Douglas Adriano Augusto
32/168
2.2 Algoritmo Gentico AG 13
indivduo. Assim, a diferena entre duas solues candidatas adjacentes ser sempre
considerada como igual aum, ao contrrio da seleo proporcional aptido.
Um mtodo tpico para implementao da seleoranking atribuir ao melhor indi-vduo 1,5 vezes mais chance de ser selecionado em comparao ao indivduo mediano 4,
mapeando linearmente as probabilidades dos demais membros. Considerando-setampop
como o tamanho da populao, tem-se a funo de seleo fsel , retornando o ndice do
indivduo selecionado, definida como:
fsel= tampop 1,52,252,0 .rand()onde a funorand()devolve um nmero real aleatrioxuniformemente distribudo,
tal que 0,0x
-
7/21/2019 Douglas Adriano Augusto
33/168
2.2 Algoritmo Gentico AG 14
indivduos pais e, ento, selecionar arbitrariamente um ponto de corte e trocar estas in-
formaes, 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 proleA
eB.
A
B
A
B
Figura 2.2: Ocrossoverde um ponto.
Analogamente, possvel estender ocrossoverde um ponto para quantos pontos de-
sejarmos. Por exemplo, na Figura 2.3, exibido ocrossoverde dois pontos.
A
B
A
B
Figura 2.3: Ocrossoverde dois pontos.
Um outro tipo decrossover 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 cadalocuscontendo o valor 0 (zero), o primeiro e segundo filho rece-
bem o contedo dolocusdo 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
Figura 2.4: Ocrossovercom mscara.
-
7/21/2019 Douglas Adriano Augusto
34/168
2.2 Algoritmo Gentico AG 15
Ainda sim, pode-se utilizar um outrocrossover. 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 dolocusatual. 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 espera-
se que o negativo do ruim seja algo bom. Ilustrado na Figura 2.5, tem-se o esquema deste
crossover, conhecido comosimplex5.
0 0 1 10 1 0 0 1 0 1 10
1 01 10010 11 0
0 0 1 0 1 0 1 1 0 0 1 1
1
1 1 0 0 0 01 0 1 1 1 A
A
B
C
Figura 2.5: Ocrossoversimplex.
2.2.5.2 Mutao
Caracterizado como um operador secundrio nos AGs, mas de grande importncia, o
operador demutaoauxilia na manuteno da diversidade da populao, introduzindo
novas solues e permitindo que o AG explore novas regies no espao de busca. O
operador de mutao atua sobre um nico indivduo, provocando uma perturbao no seu
cdigo gentico, sendo que esta alterao normalmente pequena e aleatria, mas no
incomum encontrar mutaes direcionadas na literatura. Na Figura 2.6, ilustra-se um
exemplo do operador mutao sendo aplicado sobre um cromossomo. Neste exemplo,
um ponto aleatoriamente selecionado no cromossomo e, ento, troca-se o valor do bit
correspondente. O cromossomoA o original,A o cromossomo resultante.
5Ocrossoversimplex foi inicialmente proposto para codificao binria, como mostrado neste captulo.
-
7/21/2019 Douglas Adriano Augusto
35/168
2.3 Programao Gentica PG 16
0 01 1 10 01 1 1 1AA 0
Figura 2.6: Um exemplo de mutao.
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 ma-
nuseava. 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, partici-
pando quase integralmente de todo o processo de desenvolvimento. Insatisfeitos, os cien-
tistas, 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 progra-
mador do processo manual de criao de sistemas computacionais, ou seja, a PG est in-
timamente 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 ge-
nticos.
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, masestende-se a todas as reas dependentes destas, bem como ainda instrumento para o me-
-
7/21/2019 Douglas Adriano Augusto
36/168
2.3 Programao Gentica PG 17
lhor entendimento da complexidade biolgica da natureza.
2.3.2 Os Conceitos da Programao Gentica
A PG pode ser entendida como uma extenso/especializao do AG, onde a codifi-
cao binria passa a ser uma codificao capaz de representar, na sua forma geral, um
programa de computador. O cerne da PG funciona da mesma forma como no AG, basica-
mente: inicializar aleatoriamente uma populao de indivduos, avali-los, selecionar os
mais aptos, cruz-los, avali-los, e assim repete-se, at que algum critrio de parada seja
alcanado. Dentre as propriedades que podem ser compartilhadas por ambas as meta-
heursticas, pode-se destacar:
idia central, oriunda da teoria de evoluo e seleo natural;
criao/inicializao da populao de modo aleatrio;
esquema de reproduo geracional esteady-state;
tcnicas de seleo, como roleta,rankinge torneio.
No AG, um vetor debits6 a estrutura capaz de representar uma soluo candidata.
Entretanto, a programao gentica necessita, como dito anteriormente, representar pro-
gramas de computador. Um vetor de bitsno seria adequado para esta necessidade 7.
Felizmente, sabe-se que a estrutura rvore capaz (e ideal) de armazenar um algoritmo
computacional e, na sua forma usual, a PG a utiliza[7]. Representaes alternativas[7],
que no a rvore, mas que tambm suportam a codificao de programas de computa-
dor, podem ser empregadas na PG, como por exemplo, um grafo orientado, um conjuntode seqncias de instrues de mquina, entre outras. O restante do presente captulo
concentra-se exclusivamente na estrutura de codificao de uma soluo candidata base-
ada em rvore.
O fluxograma ilustrado pela Figura 2.7 fornece uma viso da estrutura de um sistema
de programao gentica.
6Considera-se tratar do algoritmo gentico que emprega a codificao binria usual.7Estritamente falando, um programa de computador , em sua ltima instncia, representado por bits,
na lnguagem digital da mquina. Entretanto, bitsno so prprios para codificarem programas que seromanipulados, no nvel semntico, por operadores genticos.
-
7/21/2019 Douglas Adriano Augusto
37/168
2.3 Programao Gentica PG 18
Figura 2.7: A estrutura de um sistema de programao gentica.
O fluxo do processo evolutivo inicia-se com a criao seguida da inicializao da po-
pulao 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 satisfatoriamenteadaptados. 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 previa-
mente 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 genticaso descritos e elucidados no decorrer deste captulo.
-
7/21/2019 Douglas Adriano Augusto
38/168
2.3 Programao Gentica PG 19
2.3.3 Codificao e Representao
Como dito antes, a PG pode suportar vrias estruturas para codificar uma soluo
candidata. Entretanto, a PG, em sua forma de representao original, faz uso da estruturarvore. A seguir, discute-se a relao da rvore com a PG, bem como a forma em que os
operadores genticos atuam sobre esta estrutura.
Os indivduos agora tm o cromossomo como sendo uma rvore genrica, de tama-
nho (ou profundidade) varivel. Em outras palavras, cada indivduo da populao, por
ser um programa de computador e, por serem distintos, tero, naturalmente, tamanhos
diferentes. Por exemplo, na Figura 2.8, tem-se dois indivduos representando programas
de computador (solues candidatas), sob um dado domnio de aplicao.
Figura 2.8: Dois exemplos de indivduos.
2.3.4 Criao da Populao
Naturalmente, para que seja possvel evoluir algum ser/organismo, este dever antes
ser criado, mesmo que seja um organismo simples (no especializado). A programao
gentica no foge regra e necessita, obviamente, que uma populao seja construda.
Basicamente, esta populao inicial criada de forma aleatria, assim como nos al-goritmos genticos. Entretanto, rvores so estruturas significativamente mais complexas
-
7/21/2019 Douglas Adriano Augusto
39/168
2.3 Programao Gentica PG 20
do que um vetor debits, por exemplo. Quanto melhor for a populao inicial, mais r-
pida 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 Mtodo de Criao Completa Full Creation Method
Na PG interessante que se imponha limites nos tamanhos dos cromossomos (rvo-
res), evitando assim, que as solues candidatas cresam indefinidamente, provocando
esgotamento de memria e degradao no desempenho. Um destes limites est relacio-
nado ao momento da criao dos indivduos. Geralmente especificado por profundidademxima 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 profun-
didade 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 Mtodo de Criao Livre Grow Creation Method
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 Efeito Escada Ramping
No momento da criao, a populao dividida em segmentos. A cada segmento
atribudo uma profundidade mxima, de modo que esta profundidade mxima varie entre
a profundidade mnima real e a mxima real. Esta atribuio geralmente feita em ordem
crescente. Por exemplo, considere uma populao com 50 indivduos, e suponha que a
profundidade mnima seja 2 e a mxima 6. Ento, a populao seria dividida em cinco
8Profundidade o maior comprimento entre o vrtice raiz e os demais vrtices de uma rvore, sendocomum a especificao de algum limite mnimo.
-
7/21/2019 Douglas Adriano Augusto
40/168
2.3 Programao Gentica PG 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 profundi-
dade 6.
2.3.4.4 Mtodo de Criao Misto Ramped Half-and-Half
SegundoKoza[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.
2.3.5 Conjunto de Funes e Terminais
A programao gentica trabalha em diversos domnios de aplicaes, como por
exemplo, regresso simblica, classificao de dados e imagens, robtica, desenvol-
vimento de circuitos eltricos, entre outros. Cada rea de atuao requer que fun-
es/procedimentos sejam escolhidos adequadamente. Portanto, caso esteja-se traba-
lhando sobre um domnio de aplicaes que puramente lgico, desejvel que se tenha
operadores tais comoe,ou,negexou9, e operandos comoverdadeiroefalso. Para isto,
a PG possui dois conjuntos distintos, denominados conjunto de terminaise conjunto de
funes 10. As funes e terminais so as primitivas a partir das quais um programa
criado em PG.
O conjunto de terminais, denotado por T, responsvel por armazenar constan-
tes, variveise funes que no requerem argumentos. Um exemplo poderia serT=
{x,y,1.0,2.0,}, ou talvez T ={verdadeiro, falso}, e ainda T ={vire--esquerda,vire--direita,siga-em-frente}, entre outros.
O conjunto de funes, F, contm sentenas, condicionaise funes que possuam
argumentos. Como exemplo, poderia-se supor que o conjunto fosseF= {+,,,/,sen,cos,tan,exp}, ouF= {se-ento-seno,menor,caso-igual,faa-enquanto}.
9O operadorxou o operador lgico ou exclusivo.10A fim de evitar possveis confuses, conveniente lembrar que programao gentica gramatical (Ca-
ptulo 3) trata diferentemente o significado dos conjuntos funes e terminais.
-
7/21/2019 Douglas Adriano Augusto
41/168
2.3 Programao Gentica PG 22
2.3.5.1 Suficincia e Consistncia
Koza [33] definiu duas propriedades de relevada importncia para a viabilidade de um
sistema baseado em PG: suficincia e consistncia.
A suficincia dita que a soluo do problema dever estar no domnio do espao criado
por toda combinao possvel entre os conjuntos funes e terminais. Em outras palavras,
as combinaes factveis entre funes e terminais devem ser capazes de representar a
soluo.
Consistncia a condio de integridade, requer que cada funo do conjunto de
funes seja flexvel o suficiente para aceitar como argumento qualquer valor produzido
dentro das possibilidades combinatrias dos conjuntos funes e terminais, sendo assim,
qualquer funo ou terminal poderia ser argumento de qualquer outra funo. Em outras
palavras, os conjuntos terminais e funes tm que ser tais, que qualquer combinao sig-
nificativa11 entreF,T, e o prprioF, seja vlida. Esta propriedade tambm conhecida
comofecho.
A consistncia uma proposta extremamente relaxada das restries da linguagem
das solues candidadas. Ao mesmo tempo que provm uniformidade, traz consigo certos
empecilhos 12:
h um aumento improdutivo no espao de busca, pois so criadas alternativas re-dundantes que no seguem a estrutura do problema;
dificuldade de satisfazer a condio de consistncia quando esto envolvidos dife-rentes tipos e estrutura de dados, tornando-a invivel ou na melhor das hipteses
forando uma adaptao crassa.
2.3.6 Inicializao da Populao
A criao e a inicializao podem, primeira vista, parecer sinnimos. Entretanto, no
contexto da PG, a criao corresponde formao estrutural de um indivduo (cromos-
somo). Diferentemente, a inicializao est relacionada definio do contedo de um
11Combinao significativa quer dizer uma combinao que possua uma semntica. Por exemplo, nohaveria sentido uma combinao entre dois terminais.
12O Captulo 3 traz uma abordagem elegante e requintada, capaz de suprir estas deficincias, ao mesmotempo que agrega outras vantagens.
-
7/21/2019 Douglas Adriano Augusto
42/168
2.3 Programao Gentica PG 23
cromossomo. Na Figura 2.9, tem-se uma rvore criada(A), com seu tamanho e forma
definidas e, emB, esta mesma rvore, agorainicializada.
Figura 2.9: Criao inicializao.
Quando inicializa-se um cromossomo, depara-se com a estrutura j definida. Assim,
sabe-sea priorio nmero de argumentos que cada funo requer. Se o nmero de argu-
mentos for igual a zero (terminal), ento, escolhe-se um elemento, aleatoriamente, dentre
o conjunto de terminais T e o atribui ao vrtice. Caso contrrio, de maneira anloga,
escolhe-se um elemento qualquer sobre o conjunto de funes Fe o atribui ao vrtice.
2.3.7 Funes de Avaliao
As funes de avaliao so fortemente dependentes da rea de aplicao. Como
a programao gentica atua em incontveis domnios, seria impossvel descrev-las,
mesmo que resumidamente. Porm, um ingrediente essencial s funes de avaliao
o denominadoconjunto de treinamento. Estes formam os dados que sero confrontados
com os resultados obtidos pela soluo candidata, durante o processo de avaliao. Por
exemplo, na regresso simblica (vide Seo 2.4), este conjunto de treinamento com-
posto por pontos, distribudos em um intervalo. Assim, a aptido calculada em funoda comparao entre os valores obtidos e os esperados.
-
7/21/2019 Douglas Adriano Augusto
43/168
2.3 Programao Gentica PG 24
Geralmente, o conjunto de treinamento limitado, ou seja, ele no suficiente para
cobrir toda a faixa de resultados que uma soluo candidata pode gerar. Alm disso, o
custo computacional proporcional cardinalidade do conjunto de treinamento. Por-
tanto, uma boa/desejada funo de avaliao tambm agrega recursos capazes de medir o
potencial de uma soluo candidata, alm do conjunto de treinamento. Isto , uma funo
de avaliao que somente enxerga o conjunto de treinamento dita mope e seu poder de
generalizao13 fraco.
2.3.8 Operadores Genticos
Assim como os AGs, a PG necessita de mtodos que possam recombinar/modificaros materiais genticos da populao. Porm, como manuseia-se indivduos que codificam
rvores, necessrio ter tcnicas especficas para tal, como as descritas a seguir.
2.3.8.1 Crossover
O operador de cruzamento (crossover) pode ser realizado trocando-se sub-rvores dos
indivduos pais. Para cada cromossomo, escolhe-se, aleatoriamente, um ponto. Ento,
as sub-rvores referentes aos respectivos pontos so comutadas, gerando dois novos in-
divduos. Graficamente, possvel ilustrar o processo decrossovercomo mostrado na
Figura 2.10. Os indivduos demarcados porA e B so os que recombinaro suas ca-
ractersticas genticas, ou seja, os pais. Um ponto (sub-rvore) arbitrrio escolhido
para ambos progenitores. O processo decrossover ento aplicado, trocando-se as sub-
rvores, formando os indivduosAeB.
2.3.8.2 Mutao
Um outro operador gentico o chamado mutao. A idia a mesma do opera-
dor 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
13Entende-se como poder de generalizao, a capacidade de uma soluo agir eficientemente em do-mnios no submetidos a testes pela funo de avaliao. Por exemplo, em um problema de classifica-o/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 exemplode 0 a 100.
-
7/21/2019 Douglas Adriano Augusto
44/168
2.3 Programao Gentica PG 25
Figura 2.10: O processo decrossoverpadro.
exploradas. Na PG, a mutao pode ser implementada da seguinte forma. Selecione, ale-
atoriamente, 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 cromossomoA, aps o processo, transformado emA.
No obstante, pode-se ainda empregar duas variaes da mutao usual, denominadas
mutao alelo e mutao encolhimento14 . 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
14Shrink.
-
7/21/2019 Douglas Adriano Augusto
45/168
2.3 Programao Gentica PG 26
Figura 2.11: O processo de mutao padro.
de argumentos que o original. A Figura 2.12 ilustra graficamente este processo.
Figura 2.12: O processo de mutao do alelo.
A mutao encolhimento, como o nome diz, objetiva reduzir o tamanho do cromos-
somo (rvore), inspirada no fato de que solues menores (menos complexas) tendem a
ser mais compreensveis, e portanto desejadas. Seu procedimento consiste em, aps es-
colhido um elemento aleatoriamente, selecionar um filho qualquer e, ento, substitu-lo
na posio do elemento escolhido (vrtice pai), excluindo-se todos os outros filhos, junta-
mente com suas ramificaes. Isto compacta a sub-rvore em questo, e portanto reduzo cromossomo como um todo. A Figura 2.13 ilustra visualmente a aplicao da mutao
-
7/21/2019 Douglas Adriano Augusto
46/168
2.3 Programao Gentica PG 27
encolhimento.
Figura 2.13: O processo de mutao encolhimento.
2.3.8.3 Permutao
A permutao um operador gentico que provoca uma alterao (permuta) na or-
dem 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.
Figura 2.14: O operador de permutao.
2.3.8.4 Edio
Aedio, na verdade, uma simplificao de um cromossomo. Sua funo retirarredundncias contidas em um indivduo (rvore). Sua forma bsica elimina os elementos
-
7/21/2019 Douglas Adriano Augusto
47/168
2.3 Programao Gentica PG 28
de uma rvore que no executam tarefa, por exemplo, na expresso
1, o operador raiz
quadrada est redundante e poderia ser eliminado. Aediopode tambm ser aplicada
em casos nos quais possvel a substituio de uma forma por outra mais simples. Por
exemplo, seria interessante trocarsen2x + cos2xpor 1.
O problema do operadoredio que ele geralmente requer um custo computacional
muito grande, sendo assim, raramente empregado.
2.3.9 reas de Aplicao
O campo de atuao da PG vasto e em expanso, qualquer tentativa de enumer-lo
seria um fracasso. Porm, como carter didtico, pode-se citar algumas reas 15
regresso simblica consiste em determinar funes que melhor se ajustam aospontos fornecidos como comparao. A Seo 2.4 fornece um exemplo comentado
acerca deste campo de atuao.
classificao o objetivo possibilitar a discretizao de domnios contnuos,agrupando-os em classes distitnas, sob um certo critrio. Pode ser aplicado ao re-
conhecimento de padres, de formas, entre outros. Como exemplo, suponha que sequeira realizar reconhecimento de caracteres em uma imagem grfica. O algoritmo
soluo seria encarregado de classificar ospixelsem texto alfa-numrico. Uma im-
portante 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 orde-nar, 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 elegan-
tes surgem quando agrega-se PG tcnicas como a co-evoluo, como demonstrado
por Hillis [27].15Koza, emGenetic Programming: A Paradigm for Genetically Breeding Populations of Computer Pro-
grams to Solve Problems[32], fez um trabalho bastante abrangente de enumerao dos domnios de aplica-o da programao gentica.
16No Captulo 5 so realizados experimentos neste contexto, porm integrando PG outras tcnicas, aserem vistas nos Captulos 3 e 4.
-
7/21/2019 Douglas Adriano Augusto
48/168
2.4 Regresso Simblica 29
robtica objetiva desenvolver robs que sejam capazes de executar uma determi-nada tarefa, evitando-se, dentre outras coisas, a coliso contra obstculos. Robs
podem, por exemplo, guiar-se pela coordenada da regio do ambiente, tomando de-
cises 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 depixelse co-res, so passveis de descrio simblica, por meio de funes. De uma maneira
bsica, em uma imagem bi-dimensional, cada ponto (pixel) descrito pela coorde-
nada(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 pr-
tica, esta seo explica o que regredir simbolicamente uma expresso, como os mtodos
tradicionais implementam a regresso e qual a vantagem da utilizao da programa-
o gentica sobre estes mtodos. Ao final, so citados exemplos de algumas classes de
aplicao onde a regresso simblica seria de fundamental importncia.
2.4.1 Regresso Simblica de uma Expresso
Regredir simbolicamente uma expresso o ato de inferir simbolicamente uma ex-
presso algbrica, dispondo apenas de um conjunto finito de amostras17
numricas. Basi-camente, procura-se uma curva que melhor se ajuste aos dados fornecidos. O objetivo
encontrar uma funo que minimize uma medida dos erros (ou discrepncias) entre os va-
lores previstos pela funo e aqueles de fato observados. Dessa forma, matematicamente
tem-se:
Seja Fo conjunto de todas as funes f :n admissveis para o problema,{p1,p2, . . . ,pk} o conjunto de pontos conhecido como amostragem e Yk o vetor cuja
componenteYi o valor observado em pi n
, ondek o nmero de pontos fornecidos.17Amostras so tambm conhecidas como conjunto de treinamento ou dados experimentais.
-
7/21/2019 Douglas Adriano Augusto
49/168
2.4 Regresso Simblica 30
Ento, regredir simbolicamente buscar por uma funo f tal que:
f =argminfF
d(f,Y)
onded(f,Y) 0 mede a discrepncia entre os valores previstos por fe aqueles observa-dos.
A funo f dita a mais adaptada (ou melhor ajustada) aos pontos fornecidos.
Uma possibilidade fazer
f =argminfF
k
i=1
|f(pi)Yi|q 1
q
q | q 1
O casoq=2 corresponde ao popular ajuste por mnimos quadrados. Outra possibili-
dade
d(f,Y) = max1ik
|f(pi)Yi|
e ainda outra
d(f,Y) =med{|f(p1)Y1|, |f(p2)Y2|, . . . , |f(pk)Yk|}
ondemed{} 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 yi-1.0 2.0
-0.5 0.50.0 0.00.5 0.51.0 2.0
Tabela 2.1: Pontos discretos da funo exemplo
O ajuste exato para as amostras da Tabela 2.1 corresponde funo f(x) =2x2.
Graficamente os pontos da Tabela 2.1 de amostras podem ser visualizados na Fi-
gura 2.15. A Figura 2.16 ilustra o ajuste dos pontos da Tabela 2.1 atravs da funof(x) =2x2.
-
7/21/2019 Douglas Adriano Augusto
50/168
2.4 Regresso Simblica 31
0
0.5
1
1.5
2
2.5
-1 -0.5 0 0.5 1
f(x)
Figura 2.15: Grfico baseado nos pontos discretos da Tabela 2.1.
0
0.5
1
1.5
2
2.5
-1 -0.5 0 0.5 1
f(x)
Figura 2.16: Grfico contnuo baseado na forma exata da funo f(x) =2x2.
-
7/21/2019 Douglas Adriano Augusto
51/168
2.5 Concluso 32
2.4.1.1 Mtodos Clssicos Programao Gentica
Muitos matemticos e cientistas da computao tm desenvolvido tcnicas de ajuste
de funes18. Porm, estas requerem um modelo de expresso definido, sendo fortementedependentes da classe das funes, e por isso so especficos e pouco flexveis. Isto ,
considerando o exemplo da Seo 2.4.1, seria fornecido ao mtodo a forma pr-definida
f(x) =cx2 e este ajustaria apenas o coeficiente real c. Ou ainda, em um ajuste mais
complexo, seria provido o modelo pr-estabelecido f(x) =c1xc2 e ento o mtodo, alm
do ajuste do coeficientec1, tambm seria responsvel por ajustar o expoentec2.
No de interesse apenas a regresso linear, quadrtica ou mesmo polinomial. Busca-
se regredir, tambm, funes no lineares e sem qualquer forma ou complexidade pr-definida, em outras palavras, deseja-se identificar simultaneamente a estrutura e os coefi-
cientes da funo. Isto significa que se estaria trabalhando sobre um espao vastssimo de
busca. Portanto, so necessrios mtodos de busca que viabilizem o manejamento de tal
espao. A programao gentica, pela sua robustez e flexibilidade, capaz de lidar com
espaos de busca vastos e complexos.
A programao gentica aplicada regresso simblica no requer uma estrutura de
expresso definida, ajustando-se perfeitamente ao problema, pois ela trabalha sem ne-nhum conhecimento sobre a funo almejada, o que torna essa meta-heurstica muito
robusta. Voltando ao exemplo da Seo 2.4.1, utilizando-se a programao gentica, no
preciso informar nenhum dado sobre o modelo da funo procurada e muito menos
sobre seus coeficientes, estas dedues ficam a cargo da evoluo.
2.5 Concluso
Este captulo introduziu o conceito geral da evoluo por seleo natural, que se apre-
senta 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, representa-
o, 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,
18Mais especificamente eles buscam ajustar os coeficientes, como na regresso linear, quadrtica e poli-nomial.
-
7/21/2019 Douglas Adriano Augusto
52/168
2.5 Concluso 33
isto , a codificao e evoluo de programas de computador, geralmente representados
pela estrutura rvore. Os conceitos pertinentes PG foram elucidados e, por fim, foi
exemplificada uma aplicao da PG no domnio da regresso simblica, mostrando-se
ainda como a PG pode ser vantajosa em relao aos mtodos clssicos.
Em suma, foi visto que a PG robusta, qualidade herdada da teoria da seleo natural;
evolui solues simblicas/interpretativas; flexvel e malevel, no sentido de receptivi-
dade e integrao com outras tcnicas.
O prximo captulo apresenta um elegante mecanismo formal de representao de
solues, em substituio ao mtodo tradicional e limitado da PG.
-
7/21/2019 Douglas Adriano Augusto
53/168
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 for-
mais, 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 aintroduo e detalhamento da integrao da gramtica livre de contexto no mbito da
programao gentica, adotada no presente trabalho.
3.1 Gramtica
Uma linguagem basicamente uma seqncia de smbolos dispostos segundo regras
estabelecidas pela sintaxe. Por sua vez, a sintaxe de uma linguagem expressa na forma
de uma gramtica.
A gramtica essencialmente consiste do tratado dos fatos da linguagem e das leis que
a regulam e define as regras e princpios que regem o funcionamento de uma lngua 1.
1Uma introduo s gramticas e linguagens formais pode ser encontrada em [9] e [2].
-
7/21/2019 Douglas Adriano Augusto
54/168
3.1 Gramtica 35
3.1.1 Definio Formal
Formalmente, as gramticas atuam como dispositivos de gerao de sentenas das
linguagens, sendo representadas por uma qudruplaG= (N,,S,P)onde
N um alfabeto (conjunto finito de smbolos) deno-terminais 2;
um alfabeto de terminais 3, sendo queN= /0 eN=V, ondeV oconjunto de smbolos da linguagem;
S o smboloinicialou de partida,SN;