Douglas Adriano Augusto

download Douglas Adriano Augusto

of 168

Transcript of Douglas Adriano Augusto

  • 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;