Você está na página 1de 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

AUGUSTO, DOUGLAS ADRIANO


Co-evoluo Amostra-Classificador integrada 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 Janeiro, COPPE
1 - Programao Gentica
2 - Co-evoluo Competitiva
3 - Gramtica Livre de Contexto
4 - Classificao de Dados
I. COPPE/UFRJ II. Ttulo (srie)

ii

queles que em algum grau possam usufruir desta obra.

iii

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

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 disponibilizao livre e
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.

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 Ebecken


Helio 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 conhecimento implcito em um conjunto de dados.
O presente trabalho trata a tarefa de classificao de dados via tcnicas de computao evolucionria, empregando-se essencialmente trs abordagens: programao gentica, co-evoluo competitiva e gramtica livre de contexto.
Explora-se a robustez e a qualidade simblica/interpretativa da programao gentica
visando a construo, por evoluo darwiniana, de rvores classificadoras. A estrutura
formal e flexvel da gramtica livre de contexto substitui a forma representativa tradicional 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 estimulam a acelerao da escalada evolucionria.

vi

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 Ebecken


Helio 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 computation techniques using specially three approaches: genetic programming, competitive
coevolution, and context-free grammar.
The robustness and symbolic/interpretative qualities of the genetic programming are
employed to construct classification trees via darwinian evolution. The flexible formal
structure of the context-free grammar replaces the standard genetic programming representation and describes a language which encodes trees of varying complexity. Finally,
competitive coevolution is used to promote competitions between data samples and classification trees in order to create and sustain an evolutionary race for improved solutions.

vii

Sumrio
1 Introduo
1.1

1.2

1.3

O Domnio de Aplicao . . . . . . . . . . . . . . . . . . . . . . . . . .

1.1.1

Classificao de Dados . . . . . . . . . . . . . . . . . . . . . . .

Os Trs Pilares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.2.1

Programao Gentica . . . . . . . . . . . . . . . . . . . . . . .

1.2.2

Programao Gentica Gramatical . . . . . . . . . . . . . . . . .

1.2.3

Co-evoluo Amostra-Classificador . . . . . . . . . . . . . . . .

Organizao da Dissertao . . . . . . . . . . . . . . . . . . . . . . . . .

2 Programao Gentica

2.1

A Teoria de Darwin . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.2

Algoritmo Gentico AG . . . . . . . . . . . . . . . . . . . . . . . . .

2.2.1

Reproduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

2.2.2

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

10

2.2.3

A Funo de Avaliao . . . . . . . . . . . . . . . . . . . . . . .

11

2.2.4

Esquemas de Seleo . . . . . . . . . . . . . . . . . . . . . . . .

12

2.2.5

Operadores Genticos . . . . . . . . . . . . . . . . . . . . . . .

13

2.2.5.1

Crossover . . . . . . . . . . . . . . . . . . . . . . . .

13

2.2.5.2

Mutao . . . . . . . . . . . . . . . . . . . . . . . . .

15

viii

2.3

Programao Gentica PG . . . . . . . . . . . . . . . . . . . . . . . .

16

2.3.1

Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16

2.3.2

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

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

reas de Aplicao . . . . . . . . . . . . . . . . . . . . . . . . .

28

Regresso Simblica . . . . . . . . . . . . . . . . . . . . . . . . . . . .

29

2.4.1

Regresso Simblica de uma Expresso . . . . . . . . . . . . . .

29

2.4.1.1

Mtodos Clssicos Programao Gentica . . . . . .

32

Concluso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

32

2.3.5

2.3.9
2.4

2.5

ix

3 Programao Gentica Gramatical


3.1

3.2

3.3

34

Gramtica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

34

3.1.1

Definio Formal . . . . . . . . . . . . . . . . . . . . . . . . . .

35

3.1.1.1

Notao Gramatical . . . . . . . . . . . . . . . . . . .

35

3.1.1.2

Passos de Derivao . . . . . . . . . . . . . . . . . . .

36

3.1.2

Hierarquia de Chomsky . . . . . . . . . . . . . . . . . . . . . .

39

3.1.3

Gramtica Livre de Contexto GLC . . . . . . . . . . . . . . .

40

3.1.3.1

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

41

3.1.3.2

Exemplos Ilustrativos . . . . . . . . . . . . . . . . . .

41

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

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

Detalhes de Implementao . . . . . . . . . . . . . . . . . . . .

69

3.3.3.1

69

3.3.3

Gramtica . . . . . . . . . . . . . . . . . . . . . . . .
x

3.3.3.2
3.4

Otimizao da Execuo da rvore . . . . . . . . . . .

70

Concluso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

71

4 Co-evoluo Amostra-Classificador
4.1

Co-evoluo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

73

4.1.1

Definio Formal . . . . . . . . . . . . . . . . . . . . . . . . . .

74

4.1.1.1

Simbiose . . . . . . . . . . . . . . . . . . . . . . . . .

74

4.1.1.2

Co-evoluo . . . . . . . . . . . . . . . . . . . . . . .

75

Tipos de Co-evoluo . . . . . . . . . . . . . . . . . . . . . . .

75

4.1.2.1

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

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 . . . . . . . . . . . . . . . . . . . . . . . .

88

4.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

4.1.2

4.2

72

xi

4.2.4.5
4.3

Aptido Cumulativa e Rudos . . . . . . . . . . . . . .

96

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.4

4.3.5

4.3.3.1

Verificao de Falsas Solues . . . . . . . . . . . . . 100

4.3.3.2

Medida de Complexidade . . . . . . . . . . . . . . . . 101

Ciclo Co-evolutivo . . . . . . . . . . . . . . . . . . . . . . . . . 101


4.3.4.1

Seleo dos Indivduos . . . . . . . . . . . . . . . . . 101

4.3.4.2

Confronto e Atualizao da Aptido Cumulativa . . . . 102

Seleo, Aplicao dos Operadores Genticos e Insero de Classificadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

4.4

Concluso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

5 Estudo de Casos
5.1

Metodologia dos Experimentos . . . . . . . . . . . . . . . . . . . . . . . 105


5.1.1

5.1.2

Determinao dos Parmetros . . . . . . . . . . . . . . . . . . . 107


5.1.1.1

Parmetros Numricos . . . . . . . . . . . . . . . . . . 107

5.1.1.2

Gramtica . . . . . . . . . . . . . . . . . . . . . . . . 109

Apresentao dos Resultados . . . . . . . . . . . . . . . . . . . . 109


5.1.2.1

5.1.3
5.2

105

Interpretao das Tabelas . . . . . . . . . . . . . . . . 109

Ambiente Computacional . . . . . . . . . . . . . . . . . . . . . 112

Classes das Plantas ris . . . . . . . . . . . . . . . . . . . . . . . . . . . 112


5.2.1

Experimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
5.2.1.1

Experimento com Base Segmentada . . . . . . . . . . 113


xii

5.2.1.2
5.3

Diagnstico de Cncer de Mama . . . . . . . . . . . . . . . . . . . . . . 117


5.3.1

5.4

5.6

Experimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

Bases de Dados Artificiais Monks . . . . . . . . . . . . . . . . . . . . . 124


5.5.1

Monks I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

5.5.2

Monks II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

5.5.3

Monks III . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128

Deteco de Tipos de Imagens . . . . . . . . . . . . . . . . . . . . . . . 130


5.6.1

5.7

Experimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

Predio Partidria dos Congressistas . . . . . . . . . . . . . . . . . . . 120


5.4.1

5.5

Experimento com a base completa . . . . . . . . . . . 115

Experimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

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

6.4

O Problema do Ciclo . . . . . . . . . . . . . . . . . . . . . . . . 138

Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

Referncias Bibliogrficas

144

xiii

Lista de Figuras
2.1

As partes de um cromossomo. . . . . . . . . . . . . . . . . . . . . . . .

11

2.2

O crossover de um ponto. . . . . . . . . . . . . . . . . . . . . . . . . . .

14

2.3

O crossover de dois pontos. . . . . . . . . . . . . . . . . . . . . . . . . .

14

2.4

O crossover com mscara. . . . . . . . . . . . . . . . . . . . . . . . . .

14

2.5

O crossover simplex. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

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 de crossover padro. . . . . . . . . . . . . . . . . . . . . . .

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) = 2x 2 . . . . . . .

31

3.1

rvore sinttica dos passos de derivao da sentena aaabbb. . . . . . . .

38

3.2

rvores sintticas da sentena abaabbab. . . . . . . . . . . . . . . . . .

38

xiv

3.3

Hierarquia de Chomsky. . . . . . . . . . . . . . . . . . . . . . . . . . .

39

3.4

rvore sinttica dos passos de derivao sobre a gramtica G pal . . . . . .

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 a Giris . . . . . . . .

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

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. Exn representa a estratgia n da populao x. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

6.2

Ocorrncia do ciclo na classificao amostra-classificador. . . . . . . . . 140

xvi

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 varivel x. . . . . . . . .

49

3.3

Gramtica Giris simplificada. . . . . . . . . . . . . . . . . . . . . . . . .

55

3.4

Produes da gramtica Giris rotuladas. . . . . . . . . . . . . . . . . . .

61

3.5

Ligaes funcionais dos smbolos terminais da gramtica G iris . . . . . . .

63

3.6

Exemplo de parmetros para o crossover seletivo sob a gramtica G iris . . .

67

3.7

Exemplos de parmetros para a mutao seletiva sob a gramtica G iris . . .

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

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 problema monks I. . . . . . . . . . . . . . . . . . . . . 126
5.19 Resultados sobre a base artificial monks I. . . . . . . . . . . . . . . . . . 126
5.20 Parmetros para o problema monks II. . . . . . . . . . . . . . . . . . . . 127
5.21 Resultados sobre a base artificial monks II. . . . . . . . . . . . . . . . . . 128
5.22 Parmetros para o problema monks III. . . . . . . . . . . . . . . . . . . . 129
5.23 Resultados sobre a base artificial monks III. . . . . . . . . . . . . . . . . 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 imagens. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

xviii

Lista de Algoritmos
3.1

Pseudo-algoritmo do funcionamento da PGG. . . . . . . . . . . . . . . .

55

3.2

Criarvore (<s>) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

58

3.3

RotulaProdues (G) . . . . . . . . . . . . . . . . . . . . . . . . . . . .

60

3.4

Criarvore (<s>, 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.

xix

. . . . . . . . . . . . . . . . . . . . 103

Captulo 1
Introduo
A evoluo tecnolgica dos meios de coleta e armazenamento de dados, juntamente
com a valorizao da importncia da informao e conhecimento, propiciam o crescimento vertiginoso de massas de dados alocadas em dispositivos digitais. Grandes quantidades de dados implicam em potencialmente mais informaes, entretanto, o armazenamento em larga escala inviabiliza o processo manual de inspeo e aquisio de conhecimento.
Destarte, aumenta-se a necessidade e o interesse sobre tecnologias capazes de manusear inteligentemente e automaticamente grandes repositrios de dados. Esta
a tarefa do processo geral de Descoberta de Conhecimento em Base de Dados 1 , cujo
carro-chefe pertence Minerao de Dados.
A minerao de dados de fato o esforo de extrao de conhecimento implcito em
base de dados, cujas tarefas variam em funo do domnio de aplicao e categoria. Dentre estas encontra-se a classificao de dados, ocupando provavelmente o posto de tarefa
melhor estudada e comumente executada. Atribui-se esta popularidade principalmente
sua intensa presena e utilidade em um amplo leque de aplicaes. A tarefa de classificao de dados o alvo de aplicao dos temas do trabalho desta dissertao, por
conseguinte, o captulo corrente prossegue focando-se nos assuntos correlatos.

1 KDD

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, minerao de dados e a interpretao das sadas.

1.1 O Domnio de Aplicao

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 dados 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 simblica (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 de
dados 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 conjunto 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 programao gentica.
2 Vide

Seo 5.2.

1.2 Os Trs Pilares

Nesta dissertao, adota-se a tcnica de classificao de dados via programao gentica, integrada ainda a dois importantes componentes: a programao gentica gramatical
e a co-evoluo amostra-classificador.
Introduz-se no decorrer deste captulo os conceitos que servem a esta dissertao,
juntamente com as motivaes da adoo destas abordagens.

1.2

Os Trs Pilares

1.2.1 Programao Gentica


A natureza tem se mostrado uma rica fonte de inspirao para as mais diversas ferramentas e tcnicas computacionais, seja no mbito biolgico, fsico ou qumico. O complexo biolgico da natureza tem sido ultimamente bem explorado por cientistas e pesquisadores, sendo que grande parte da pesquisa incide sobre a rea de otimizao.
Um importante paradigma concebido s custas da inteligncia biolgica, em especial da evoluo natural das espcies, a computao evolucionria. Neste, o processo
de otimizao apia-se no princpio darwiniano de evoluo (essencialmente a seleo
natural), isto , uma populao de indivduos artificiais, cada qual representando uma soluo 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 variadas reas do conhecimento.
Distingue-se a programao gentica (PG) dos algoritmos genticos (AG) basicamente 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 uti3 Os

algoritmos genticos e programao gentica foram introduzidos por John Holland [28] e John
Koza [34], respectivamente.

1.2 Os Trs Pilares

lizada. Portanto, a PG visa evoluir programas em uma determinada linguagem, solues


que dependam, por exemplo, de estruturas condicionais, desvios, laos de repetio, operadores 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, classificao 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 adequada 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 insensvel 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 tradicional de codificao da PG. Estas fraquezas do-se pela maneira rudimentar e simplria
pela 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 sejam 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 dados
contendo 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 qualquer complexidade de linguagem computacional, uma forte candidata a substituir a
forma tpica de codificao da PG. A GLC permite que sejam feitas restries de qual4 Outrossim,

a codificao cannica da programao gentica no garante nem mesmo restries de


primeiro nvel, isto , restries quanto compatibilidade de tipos entre funes e seus argumentos.

1.2 Os Trs Pilares

quer nvel entre qualquer operador e operando. Isto significa o resguardo semntica
de qualquer operao, como por exemplo, garantir que operadores do tipo lgico atuem
somente sobre operandos lgicos. Uma conseqncia direta destas restries que se
limita o espao de busca, portanto, o processo evolucionrio descarta a priori regies estreis de busca. Ainda, a adoo da GLC faz florescer uma nova direo de otimizao,
a evoluo concorrente da prpria gramtica 5 . Em outras palavras, torna-se plausvel
a re-adequao da linguagem que dita a forma do espao de busca, de acordo com os
palpites alimentados pela medida de proficincia dos indivduos.
Diante das qualidades pertinentes GLC, justifica-se satisfatoriamente o uso desta estrutura em substituio ao modelo tradicional de codificao de indivduos. Denomina-se,
ainda, programao gentica gramatical, ou simplesmente PGG, a unio entre a programao gentica e o conceito de gramtica.

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 uma
sobrecarga aceitvel. Todavia, medida que empregam-se base de dados em larga escala, 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 aleatoriamente, 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 para
bases de dados mais homogneas, onde uma frao de dados tende a ter uma representatividade 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, coevoluo amostra-classificador. Em termos gerais, a co-evoluo competitiva uma variao inteligente do modelo janela descrito anteriormente.
5A

evoluo da gramtica no foi implementada nesta dissertao.

1.3 Organizao da Dissertao

No modelo co-evolucionrio amostra-classificador, empregam-se duas populaes de


indivduos, a primeira contendo indivduos classificadores e a segunda indivduos encapsulando 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 induzir 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, em
vez 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) de
classificadores 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 apresentados so ento postos em campo no Captulo 5, onde implementa-se um sistema de
6 Embora

a segunda populao no modifique o material gentico de seus indivduos, pois do contrrio


descaracterizariam os dados a serem preditos.
7 Nota-se que quanto melhor um indivduo se apresenta, probabilisticamente so maiores suas chances
de seleo para confrontar-se, justamente, com adversrios cada vez mais rduos.

1.3 Organizao da Dissertao

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 empregadas
neste trabalho juntamente com meno s vantagens e desvantagens de cada mtodo,
aponta ainda direes para trabalhos futuros.

Captulo 2
Programao Gentica
A computao evolucionria uma rea inspirada na evoluo biolgica que agrega
sub-reas especializadas em diferentes vertentes da evoluo natural.
Dois importantes ramos da computao evolucionria so os algoritmos genticos e a
programao gentica, ambos baseados no princpio darwiniano de evoluo. Estas duas
abordagem so temas deste presente captulo, privilegiando-se entretanto, a programao
gentica, que parte integrante do objeto de estudo desta dissertao.
Por compartilhar do mesmo embasamento e origem, o captulo inicia-se com uma
viso geral sobre os algoritmos genticos, construindo-se assim a base necessria para o
ingresso, suave, no universo da programao gentica.
No contexto da programao gentica, discute-se sua relao com os algoritmos genticos, bem como os conceitos especficos sobre sua natureza.

2.1

A Teoria de Darwin

Charles Darwin, em 1859, publicou um livro intitulado Origem das Espcies por
meio da Seleo Natural [15], como resultado de vrios anos de pesquisa como naturalista. Darwin dedicou parte de sua vida em uma viagem pelo globo terrestre, estudando a
relao das espcies com o seu meio-ambiente. Pde ele concluir que indivduos melhores adaptados a um certo ambiente tm mais chance de sobrevivncia, conseqentemente,
estes se reproduziro com mais freqncia, repassando suas caractersticas a seus descendentes. Isto conhecido como Seleo Natural. Ao progresso das geraes, a tendncia

2.2 Algoritmo Gentico AG

que as caractersticas dos melhores indivduos sejam disseminadas de tal modo que seus
descendentes as absorvam, tornando-os, com alta probabilidade, to ou melhor adaptados em relao a seus progenitores. Assim, ao longo das geraes, esperado que uma
convergncia ocorra, ou seja, os indivduos tero caractersticas em comum. A teoria da
seleo natural utilizada por virtualmente todos os algoritmos evolucionrios.

2.2

Algoritmo Gentico AG

O algoritmo gentico[28] uma tcnica de otimizao aplicvel em domnios contnuos e/ou discretos, robusta, e que dispensa imposies de continuidade, convexidade e
diferenciabilidade da funo objetivo. Em sua forma cannica rene o poder da teoria da
evoluo e a gentica, simulando-os artificialmente no contexto da computao. A idia
consiste em, inicialmente, gerar aleatoriamente uma populao de indivduos. Estes indivduos so, como de se esperar, virtuais. Isto , eles representam computacionalmente
um candidato a uma soluo para um problema em questo, como por exemplo, valores
arbitrrios de variveis numricas candidatos raiz de uma equao de algbrica. Ento,
a cada indivduo, atribuda uma nota, que corresponde ao seu nvel de proficincia nas
equaes algbricas a nota seria proporcional a quo bem o indivduo (valor da varivel)
se aproxima da raiz da equao. Em outras palavras, uma funo de avaliao determina
a qualidade da soluo candidata. Esta nota comumente referida como aptido. Assim,
em conformidade com a teoria da seleo natural, os melhores indivduos (os que possuem
melhor aptido), tero mais chance de serem selecionados para que possam recombinar
seus materiais genticos (cruzamento). Geralmente so selecionados por iterao pares de
indivduos (pais) para o acasalamento, cada qual concebendo uma nova prole, sendo esta
composta de uma mistura dos genes de seus pais. Os descendentes, por sua vez, passam
a constituir uma nova gerao, que podem ou no conviver com indivduos das geraes
anteriores. O processo ento repetido at que algum critrio de parada seja satisfeito, tal
como nmero mximo de geraes (iteraes), tempo de processamento, convergncia da
populao, entre outros.

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, o
geracional e o steady-state.
A reproduo denominada geracional mantm indivduos pais e filhos em populaes
distintas, evitando-se assim uma convivncia simultnea e conseqente troca de material
gentico.
Por outro lado, a reproduo dita steady-state, ou em regime permanente, permite
que pais e filhos convivam na mesma populao, isto , pode ser que ocorram cruzamentos
entre antepassados e seus descendentes.
Um adicional a estes modos de reproduo, que pode agreg-los, o chamado reproduo com elitismo. O objetivo manter intacto pelo menos o melhor indivduo da
populao, garantindo assim a preservao da melhor soluo at ento encontrada. Alm
disso, este o indivduo que sempre ter a maior chance de ser selecionado para a criao
de novas proles (pois o mais apto), assim, a tendncia que suas caractersticas (que
tendem a ser boas) sejam suficientemente disseminadas ao longo da populao. O problema deste artefato a estimulao da convergncia prematura, isto , um indivduo que
seja substancialmente superior aos demais poder dominar a populao, espalhando rapidamente suas caractersticas genticas, provavelmente estagnando o processo evolutivo
em um timo local.

2.2.2 Representao
No que concerne representao (codificao) de uma soluo candidata, pode-se
dizer que o AG, em sua forma original, utiliza um vetor de bits (codificao binria) de
tamanho fixo. Na verdade, cada indivduo possui este vetor de bits, que pode ser entendido como seu cromossomo 1 , ou seja, aquele que armazena seu material gentico. Para
exemplificar esta codificao, suponha que deseja-se procurar as razes de uma equao
do segundo grau. Neste caso, o vetor de bits est codificando dois valores de razes candidatas (nmeros inteiros ou reais) atravs, claro, de zeros ou uns. Cada posio deste
1O

termo genoma muitas vezes empregado como sinnimo de cromossomo na rea dos algoritmos
evolucionrios.

2.2 Algoritmo Gentico AG

11

vetor (cromossomo) conhecida como locus. Um conjunto de locus que se traduz em


alguma caracterstica do indivduo denominado gene. Chama-se de alelo, 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}.
locus

gene A
Alelo {0,...,7}

cromossomo

gene B
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 responsvel 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.
2 Neste

exemplo, codifica-se duas variveis com trs bits cada. Assim, o intervalo de valores est compreendido entre 0 (20 .0 + 21 .0 + 22 .0) e 7 (20 .1 + 21 .1 + 22 .1). Ainda, nmeros reais podem tambm ser
representados (com preciso e amplitude ajustveis) por conjunto de bits, atravs de um mapeamento adequado.
3 Contudo, o leitor convidado a checar as informaes constantes em [8], [20], [10], [23], [50] e [25].

2.2 Algoritmo Gentico AG

12

Considerando-se o problema de encontrar as razes de uma equao qualquer, podese exemplificar a funo de avaliao, visando a minimizao, como sendo o inverso da
distncia entre a soluo candidata (valor numrico) e o valor procurado, neste caso,
zero. Isto , quanto mais prximo de zero, melhor adaptado o indivduo. Um exemplo
trivial de uma funo de avaliao f aval , para uma equao de primeiro grau, dado
matematicamente por
faval (x) = |ax + b|
onde a e b so as constantes numricas reais da equao e x o valor do fentipo do indivduo em avaliao. Qualquer valor para x diferente da raiz da equao implica em um
retorno positivo na f aval , que assumindo-se um problema de minimizao, promove uma
baixa na aptido do indivduo neste caso a aptido inversamente proporcional ao valor
de faval .
Enquanto a funo de avaliao no necessariamente corresponde de fato a aptido do indivduo como no exemplo anterior, em que os valores eram inversamente
proporcionais, interessante convencionar, a ttulo de clareza, que a funo de aptido limite-se a quantificar to somente a qualidade do indivduo, isto , ser diretamente
proporcional habilidade deste. Nota-se, contudo, que os termos funo de aptido e
funo de avaliao so ainda comumente utilizados indiscriminadamente.

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, chamado seleo por roleta ou seleo 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 denominado seleo por ranking. Esta tcnica ordena todos os indivduos
de acordo com sua aptido, de tal modo que o primeiro no rank corresponde ao melhor

2.2 Algoritmo Gentico AG

13

indivduo. Assim, a diferena entre duas solues candidatas adjacentes ser sempre
considerada como igual a um, ao contrrio da seleo proporcional aptido.
Um mtodo tpico para implementao da seleo ranking atribuir ao melhor indivduo 1, 5 vezes mais chance de ser selecionado em comparao ao indivduo mediano 4 ,
mapeando linearmente as probabilidades dos demais membros. Considerando-se tam pop
como o tamanho da populao, tem-se a funo de seleo f sel , retornando o ndice do
indivduo selecionado, definida como:

k

j
p
fsel = tam pop 1, 5 2, 25 2, 0 . rand()
onde a funo rand() devolve um nmero real aleatrio x uniformemente distribudo,
tal que 0, 0 x < 1, 0. Assim, f sel retorna ndices (inteiros) entre 0 e tam pop 1.
Finalmente, o ltimo esquema, conhecido como seleo por torneio, pode ser empregado nos AGs. Este colhe aleatoriamente um nmero n de indivduos da populao
comumente dois ou trs para competirem entre si. O vencedor, ento, ser o escolhido. A seleo por torneio, assim como a seleo por ranking abranda o problema da
convergncia prematura. Todavia, a presso de seleo pode ser ajustada de acordo com
o valor de n, isto , quanto maior n, mais tendenciosa fica a seleo para os indivduos
mais adaptados.

2.2.5 Operadores Genticos


Os operadores genticos, como o prprio nome diz, so os responsveis por manipular
as informaes genticas presentes nos cromossomos. Os principais operadores so o
crossover e a mutao, que so descritos a seguir.
2.2.5.1

Crossover

O crossover o principal operador utilizado pelo AG. Usualmente, este operador atua
sobre dois indivduos (pais), produzindo dois novos indivduos (filhos). O crossover
diretamente responsvel pela recombinao das caractersticas genticas dos cromossomos dos pais. A forma mais simples do operador crossover constitui em emparelhar os
4 Indivduo

que detm a colocao mdia do ranking.

2.2 Algoritmo Gentico AG

14

indivduos pais e, ento, selecionar arbitrariamente um ponto de corte e trocar estas informaes, formando a prole. Uma ilustrao deste processo pode ser visualizada na
Figura 2.2. Os cromossomos progenitores so, na figura, A e B. Quando o operador de
crossover aplicado os cdigos genticos so recombinados, formando ento a prole A
e B.
A

 
             

            

 

A
B







    
    

Figura 2.2: O crossover de um ponto.

Analogamente, possvel estender o crossover de um ponto para quantos pontos desejarmos. Por exemplo, na Figura 2.3, exibido o crossover de dois pontos.
A

             
 

                          

 

  

  


A 
B

  

 

 

 


 










             
             

Figura 2.3: O crossover de dois pontos.

Um outro tipo de crossover produzido atravs do uso de uma mscara de bits. Uma
mscara de bits, com o mesmo comprimento dos cromossomos pais, emparelhada a
estes. Ento, para cada locus contendo o valor 0 (zero), o primeiro e segundo filho recebem o contedo do locus do primeiro e segundo progenitor, respectivamente. De modo
anlogo, porm oposto, para o valor igual a 1 (um). A Figura 2.4 mostra claramente este
processo.
0 0 1 0 1 0 1 1 0 0 1 1

A
B







































































 
 
 
 
 
 
 
 
 
 
 
 
 












 
 

 



 







































































A
  
  
  
 
 
  
 




"#
$
$%
&'
()
()


 !
!! #
#"#" %
%$%$
'
)
'&'& )
)()(


"

$
$
&
(
(

!



"

$
"
$
$
&
(
&
(






!
!

#
#

%
%

'

)
'

)
B
 
  !! #
" $#" %
$ %$
& )
( '& )
( )()(

'

Figura 2.4: O crossover com mscara.

2.2 Algoritmo Gentico AG

15

Ainda sim, pode-se utilizar um outro crossover. Este difere um pouco dos demais, por
trabalhar com trs progenitores, simultaneamente. Alm disso, este gera apenas um filho.
Os dois primeiros pais so selecionados por algum mtodo que favorea os mais aptos,
o terceiro escolhido inversamente, ou seja, favorecendo os indivduos menos aptos. A
idia consiste em verificar se os materiais genticos dos pais so os mesmos, se forem,
ento o filho o receber. Caso contrrio, fica-se em dvida ao determinar de qual pai a
prole receber o valor do locus atual. Entra, ento, a funo do terceiro pai: como trata-se
de um indivduo ruim, o filho receber o valor oposto do contido neste locus, pois esperase que o negativo do ruim seja algo bom. Ilustrado na Figura 2.5, tem-se o esquema deste
crossover, conhecido como simplex5 .

A 0 0 1 0 1 0 1 1 0 0 1 1
B 0 1 1 0 0 0 1 0 0 1 1 1

A 0 0 1 0 0 0 1 1 0 1 1 1

C 1 1 0 1 1 0 1 0 1 0 0 1

Figura 2.5: O crossover simplex.

2.2.5.2

Mutao

Caracterizado como um operador secundrio nos AGs, mas de grande importncia, o


operador de mutao auxilia 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 cromossomo A o original, A o cromossomo resultante.
5O

crossover simplex foi inicialmente proposto para codificao binria, como mostrado neste captulo.

2.3 Programao Gentica PG

16

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 manuseava. Pouco a pouco mquinas foram elaboradas, e ao passar dos tempos, elas foram
aperfeioadas, o que se traduzia em maior rapidez e automao para um trabalho que
antes era desenvolvido manualmente. O advento da era tecnolgica, especificamente o
surgimento da Informtica e afins, trouxe consigo uma nova necessidade de mo-de-obra,
o programador de sistemas. O programador de sistemas um trabalhador que desenvolve
sistemas computacionais de forma manual ou auxiliado por alguma ferramenta, participando quase integralmente de todo o processo de desenvolvimento. Insatisfeitos, os cientistas, assim como os trabalhadores de pocas passadas, tm almejado formas autnomas
de programao, denominadas auto-programao.
A programao gentica foi desenvolvida/evoluda com o intuito de abster o programador do processo manual de criao de sistemas computacionais, ou seja, a PG est intimamente relacionada ao conceito de auto-programao naturalmente limita-se ainda
cobertura de segmentos especficos dentro deste complexo e pretensioso paradigma.
A inveno da meta-heurstica PG foi atribuda a John Koza [34], mas no certo
omitir que esforos anteriores foram a base para o atual estado da PG [7], incluindo,
primeiramente, a colossal descoberta de Darwin e tambm o advento dos algoritmos genticos.
A PG relativamente uma abordagem nova e, como na natureza, est em processo
de evoluo, sofrendo refinamentos e aperfeioamentos. Esta rea est sendo alvo de
grandes pesquisas e certamente tem muito a acrescentar, no somente computao, mas
estende-se a todas as reas dependentes destas, bem como ainda instrumento para o me-

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 codificao 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, basicamente: 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 metaheursticas, pode-se destacar:
idia central, oriunda da teoria de evoluo e seleo natural;
criao/inicializao da populao de modo aleatrio;
esquema de reproduo geracional e steady-state;
tcnicas de seleo, como roleta, ranking e torneio.
No AG, um vetor de bits6 a estrutura capaz de representar uma soluo candidata.
Entretanto, a programao gentica necessita, como dito anteriormente, representar programas de computador. Um vetor de bits no 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 computador, podem ser empregadas na PG, como por exemplo, um grafo orientado, um conjunto
de seqncias de instrues de mquina, entre outras. O restante do presente captulo
concentra-se exclusivamente na estrutura de codificao de uma soluo candidata baseada em rvore.
O fluxograma ilustrado pela Figura 2.7 fornece uma viso da estrutura de um sistema
de programao gentica.
6 Considera-se

tratar do algoritmo gentico que emprega a codificao binria usual.


falando, um programa de computador , em sua ltima instncia, representado por bits,
na lnguagem digital da mquina. Entretanto, bits no so prprios para codificarem programas que sero
manipulados, no nvel semntico, por operadores genticos.
7 Estritamente

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 populao de indivduos. A populao passa ento pela avaliao e verifica-se se o critrio
de parada foi alcanado, isto , se na populao encontra-se indivduos satisfatoriamente
adaptados. Caso negativo, o algoritmo prossegue com a aplicao dos operadores de
seleo, favorecendo os mais aptos, igualmente como nos algoritmos genticos. Ento,
aplicam-se as recombinaes e demais operadores genticos sobre os indivduos previamente selecionados. Os descendentes so assim concebidos e inseridos na populao (ou
em uma nova), de acordo com a poltica de reproduo. O fluxo entra portanto em um
lao iterativo, retornando ao ponto de avaliao (sobre os novos indivduos).
Os detalhes pertinentes das peculiaridades que dizem respeito programao gentica
so descritos e elucidados no decorrer deste captulo.

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 estrutura
rvore. 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 tamanho (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 algoritmos genticos. Entretanto, rvores so estruturas significativamente mais complexas

2.3 Programao Gentica PG

20

do que um vetor de bits, por exemplo. Quanto melhor for a populao inicial, mais rpida e provvel ser a convergncia para uma soluo tima. Pensando nestes fatores, so
mostrados aqui alguns mtodos[34] para a definio da estrutura do cromossomo (rvore)
de cada indivduo, no momento da criao.
2.3.4.1

Mtodo de Criao Completa Full Creation Method

Na PG interessante que se imponha limites nos tamanhos dos cromossomos (rvores), evitando assim, que as solues candidatas cresam indefinidamente, provocando
esgotamento de memria e degradao no desempenho. Um destes limites est relacionado ao momento da criao dos indivduos. Geralmente especificado por profundidade
mxima 8 .
Neste mtodo, todo comprimento entre o vrtice raiz e qualquer n terminal sempre
igual profundidade mxima especificada. Isto significa que, at se alcanar a profundidade mxima, todos os vrtices tero um ou mais filhos (funes com mais de um
argumento) e, ao se atingir a profundidade determinada, os vrtices no possuiro filhos
(funes sem argumentos, variveis ou constantes).
2.3.4.2

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
8 Profundidade

o maior comprimento entre o vrtice raiz e os demais vrtices de uma rvore, sendo
comum a especificao de algum limite mnimo.

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 profundidade 6.

2.3.4.4

Mtodo de Criao Misto Ramped Half-and-Half

Segundo Koza[34], este o mtodo mais recomendado. capaz de gerar uma ampla
diversidade de indivduos, produzindo vrias formas e tamanhos distintos de rvores. A
idia consiste em fazer com que cada metade de um segmento produzido por ramping
seja criada ou com o mtodo completo (full) ou com o mtodo livre (grow). Isto , metade
de um segmento ser criado pelo mtodo completo e a outra metade com o mtodo livre.

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, desenvolvimento de circuitos eltricos, entre outros. Cada rea de atuao requer que funes/procedimentos sejam escolhidos adequadamente. Portanto, caso esteja-se trabalhando sobre um domnio de aplicaes que puramente lgico, desejvel que se tenha
operadores tais como e, ou, neg e xou9 , e operandos como verdadeiro e falso. Para isto,
a PG possui dois conjuntos distintos, denominados conjunto de terminais e 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 constantes, variveis e funes que no requerem argumentos. Um exemplo poderia ser T =
{x, y, 1.0, 2.0, }, ou talvez T = {verdadeiro, f also}, e ainda T = {vire--esquerda,
vire--direita, siga-em-frente}, entre outros.

O conjunto de funes, F, contm sentenas, condicionais e funes que possuam


argumentos. Como exemplo, poderia-se supor que o conjunto fosse F = {+, , , /, sen,

cos, tan, exp}, ou F = {se-ento-seno, menor, caso-igual, faa-enquanto}.


9O

operador xou o operador lgico ou exclusivo.


fim de evitar possveis confuses, conveniente lembrar que programao gentica gramatical (Captulo 3) trata diferentemente o significado dos conjuntos funes e terminais.
10 A

2.3 Programao Gentica PG


2.3.5.1

22

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 significativa11 entre F, T , e o prprio F, seja vlida. Esta propriedade tambm conhecida
como fecho.
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 redundantes que no seguem a estrutura do problema;

dificuldade de satisfazer a condio de consistncia quando esto envolvidos diferentes tipos e estrutura de dados, tornando-a invivel ou na melhor das hipteses
forando uma adaptao crassa.

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 (cromossomo). Diferentemente, a inicializao est relacionada definio do contedo de um
11 Combinao

significativa quer dizer uma combinao que possua uma semntica. Por exemplo, no
haveria sentido uma combinao entre dois terminais.
12 O Captulo 3 traz uma abordagem elegante e requintada, capaz de suprir estas deficincias, ao mesmo
tempo que agrega outras vantagens.

2.3 Programao Gentica PG

23

cromossomo. Na Figura 2.9, tem-se uma rvore criada (A), com seu tamanho e forma
definidas e, em B, esta mesma rvore, agora inicializada.

Figura 2.9: Criao inicializao.


Quando inicializa-se um cromossomo, depara-se com a estrutura j definida. Assim,
sabe-se a priori o nmero de argumentos que cada funo requer. Se o nmero de argumentos 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 F e 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 denominado conjunto 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 composto por pontos, distribudos em um intervalo. Assim, a aptido calculada em funo
da comparao entre os valores obtidos e os esperados.

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. Portanto, 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/modificar
os 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 indivduos. Graficamente, possvel ilustrar o processo de crossover como mostrado na
Figura 2.10. Os indivduos demarcados por A e B so os que recombinaro suas caractersticas genticas, ou seja, os pais. Um ponto (sub-rvore) arbitrrio escolhido
para ambos progenitores. O processo de crossover ento aplicado, trocando-se as subrvores, formando os indivduos A e B.
2.3.8.2

Mutao

Um outro operador gentico o chamado mutao. A idia a mesma do operador sob o contexto dos AGs, ou seja, provocar uma perturbao na informao gentica.
Este operador o responsvel pela introduo de novos materiais genticos, produzindo
uma maior diversidade, o que significa que novas regies do espao de busca podero ser
13 Entende-se

como poder de generalizao, a capacidade de uma soluo agir eficientemente em domnios no submetidos a testes pela funo de avaliao. Por exemplo, em um problema de classificao/ordenao de nmeros, se o conjunto de treinamento apenas engloba nmeros compreendidos entre 0
e 10, espera-se que o algoritmo encontrado seja capaz de ordenar nmeros alm destes, como por exemplo
de 0 a 100.

2.3 Programao Gentica PG

25

Figura 2.10: O processo de crossover padro.

exploradas. Na PG, a mutao pode ser implementada da seguinte forma. Selecione, aleatoriamente, uma sub-rvore. Exclua-a e, ento, gere uma nova sub-rvore e a introduza
no ponto onde foi retirada a outra. Na Figura 2.11 tem-se um exemplo da aplicao do
operador de mutao. O cromossomo A, aps o processo, transformado em A.
No obstante, pode-se ainda empregar duas variaes da mutao usual, denominadas
mutao alelo e mutao encolhimento 14 . A mutao alelo, como o nome indica, provoca
uma alterao sobre algum alelo. Assim, aps selecionado um elemento, arbitrariamente,
este substitudo por algum outro, de tal forma que o novo alelo possua o mesmo nmero
14 Shrink.

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 cromossomo (rvore), inspirada no fato de que solues menores (menos complexas) tendem a
ser mais compreensveis, e portanto desejadas. Seu procedimento consiste em, aps escolhido um elemento aleatoriamente, selecionar um filho qualquer e, ento, substitu-lo
na posio do elemento escolhido (vrtice pai), excluindo-se todos os outros filhos, juntamente com suas ramificaes. Isto compacta a sub-rvore em questo, e portanto reduz
o cromossomo como um todo. A Figura 2.13 ilustra visualmente a aplicao da mutao

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 ordem dos argumentos de uma funo qualquer. Logicamente, este operador s se aplica a
funes com no mnimo dois argumentos. Um exemplo pode ser visto na Figura 2.14.

Figura 2.14: O operador de permutao.

2.3.8.4

Edio

A edio , na verdade, uma simplificao de um cromossomo. Sua funo retirar


redundncias contidas em um indivduo (rvore). Sua forma bsica elimina os elementos

2.3 Programao Gentica PG


de uma rvore que no executam tarefa, por exemplo, na expresso

28

1, o operador raiz

quadrada est redundante e poderia ser eliminado. A edio pode tambm ser aplicada
em casos nos quais possvel a substituio de uma forma por outra mais simples. Por
exemplo, seria interessante trocar sen2 x + cos2 x por 1.
O problema do operador edio que ele geralmente requer um custo computacional
muito grande, sendo assim, raramente empregado.

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 aos
pontos 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 reconhecimento de padres, de formas, entre outros. Como exemplo, suponha que se
queira realizar reconhecimento de caracteres em uma imagem grfica. O algoritmo
soluo seria encarregado de classificar os pixels em texto alfa-numrico. Uma importante rea da classificao a classificao de dados, onde se visa evoluir um
programa classificador capaz de ler um conjunto de amostras (contendo inmeros
atributos) de um banco de dados e ento classific-las corretamente de acordo com
o contedo de seus atributos 16 .

ordenao sua funo desenvolver algoritmos que sejam capazes de ordenar, por alguma chave, conjunto de registros. O treinamento pode ser realizado
apropriando-se de um conjunto de registros ordenados, e verificando-se quo bem
as solues candidatas ordenam estes registros. Resultados mais eficazes e elegantes surgem quando agrega-se PG tcnicas como a co-evoluo, como demonstrado
por Hillis [27].
15 Koza,

em Genetic Programming: A Paradigm for Genetically Breeding Populations of Computer Programs to Solve Problems [32], fez um trabalho bastante abrangente de enumerao dos domnios de aplicao da programao gentica.
16 No Captulo 5 so realizados experimentos neste contexto, porm integrando PG outras tcnicas, a
serem vistas nos Captulos 3 e 4.

2.4 Regresso Simblica

29

robtica objetiva desenvolver robs que sejam capazes de executar uma determinada tarefa, evitando-se, dentre outras coisas, a coliso contra obstculos. Robs
podem, por exemplo, guiar-se pela coordenada da regio do ambiente, tomando decises baseadas no resultado de uma funo evoluda para um propsito particular.
Ou ainda, estender as variveis de entrada e incluir, por exemplo, dados sobre a
distncia at o obstculo, etc.
compactao de imagens teoricamente, as imagens, constitudas de pixels e co-

res, so passveis de descrio simblica, por meio de funes. De uma maneira

bsica, em uma imagem bi-dimensional, cada ponto (pixel) descrito pela coordenada (x, y) pode ser mapeado por uma funo evoluda via PG, que retorna uma cor
(cdigo) de acordo com a coordenada deste ponto. Com isto, varrendo-se a regio
da imagem, pode-se reconstru-la, apenas com a utilizao da funo evoluda.

2.4

Regresso Simblica

No intuito didtico, e visando introduzir os conceitos da PG em uma aplicao prtica, esta seo explica o que regredir simbolicamente uma expresso, como os mtodos
tradicionais implementam a regresso e qual a vantagem da utilizao da programao gentica sobre estes mtodos. Ao final, so citados exemplos de algumas classes de
aplicao onde a regresso simblica seria de fundamental importncia.

2.4.1 Regresso Simblica de uma Expresso


Regredir simbolicamente uma expresso o ato de inferir simbolicamente uma expresso algbrica, dispondo apenas de um conjunto finito de amostras 17 numricas. Basicamente, 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 valores previstos pela funo e aqueles de fato observados. Dessa forma, matematicamente
tem-se:
Seja F o conjunto de todas as funes f : n 7 admissveis para o problema,

{p1 , p2 , . . . , pk } o conjunto de pontos conhecido como amostragem e Y k o vetor cuja

componente Yi o valor observado em pi n , onde k o nmero de pontos fornecidos.


17 Amostras

so tambm conhecidas como conjunto de treinamento ou dados experimentais.

2.4 Regresso Simblica

30

Ento, regredir simbolicamente buscar por uma funo f tal que:


f = arg min d( f ,Y )
f F

onde d( f ,Y ) 0 mede a discrepncia entre os valores previstos por f e aqueles observados.

A funo f dita a mais adaptada (ou melhor ajustada) aos pontos fornecidos.
Uma possibilidade fazer
"
f = arg min
f F

| f (pi) Yi|q

i=1

#1

q|q1

O caso q = 2 corresponde ao popular ajuste por mnimos quadrados. Outra possibilidade


d( f ,Y ) = max | f (pi ) Yi |
1ik

e ainda outra
d( f ,Y ) = med{| f (p1 ) Y1 |, | f (p2 ) Y2 |, . . . , | f (pk ) Yk |}
onde med{} denota a mediana do conjunto.
Exemplo de regresso simblica
Como exemplo, suponha que deseja-se descobrir qual a melhor funo que se ajusta
aos pontos (xi , yi ) mostrados na Tabela 2.1.
xi
-1.0
-0.5
0.0
0.5
1.0

yi
2.0
0.5
0.0
0.5
2.0

Tabela 2.1: Pontos discretos da funo exemplo


O ajuste exato para as amostras da Tabela 2.1 corresponde funo f (x) = 2x 2 .
Graficamente os pontos da Tabela 2.1 de amostras podem ser visualizados na Figura 2.15. A Figura 2.16 ilustra o ajuste dos pontos da Tabela 2.1 atravs da funo
f (x) = 2x2 .

2.4 Regresso Simblica

31

2.5

f(x)

1.5

0.5

0
-1

-0.5

0.5

Figura 2.15: Grfico baseado nos pontos discretos da Tabela 2.1.

2.5

f(x)

1.5

0.5

-1

-0.5

0.5

Figura 2.16: Grfico contnuo baseado na forma exata da funo f (x) = 2x 2 .

2.5 Concluso
2.4.1.1

32

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 fortemente
dependentes 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) = c1 xc2 e ento o mtodo, alm
do ajuste do coeficiente c1 , tambm seria responsvel por ajustar o expoente c2 .
No de interesse apenas a regresso linear, quadrtica ou mesmo polinomial. Buscase regredir, tambm, funes no lineares e sem qualquer forma ou complexidade prdefinida, em outras palavras, deseja-se identificar simultaneamente a estrutura e os coeficientes 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 nenhum 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 apresenta como a inspirao e o princpio do funcionamento das tcnicas computacionais de
evoluo denominadas algoritmos genticos e programao gentica.
Descreveu-se sucintamente os componentes do AG, como a reproduo, representao, funo de avaliao, esquemas de seleo e os operadores genticos. Prosseguiu-se
com a explanao sobre a PG, evidenciando-se a diferena crucial em relao aos AGs,
18 Mais

nomial.

especificamente eles buscam ajustar os coeficientes, como na regresso linear, quadrtica e poli-

2.5 Concluso

33

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 receptividade 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.

Captulo 3
Programao Gentica Gramatical
Este captulo aborda os aspectos relacionados com a representao e codificao de
indivduos, por meio gramatical, na programao gentica.
Inicia-se com a definio genrica de uma gramtica, apresenta-se os aspectos formais, notaes, a hierarquia e os tipos de gramticas. Uma maior ateno direcionada
s gramticas livre de contexto, no poupando exemplos didticos como uma maneira
conveniente de elucidar o seu conceito.
So revistas diferentes propostas de codificao alternativas e, finalmente, feita a
introduo e detalhamento da integrao da gramtica livre de contexto no mbito da
programao gentica, adotada no presente trabalho.

3.1

Gramtica

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 .

1 Uma

introduo s gramticas e linguagens formais pode ser encontrada em [9] e [2].

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 qudrupla G = (N, , S, P) onde
N um alfabeto (conjunto finito de smbolos) de no-terminais 2 ;
um alfabeto de terminais 3 , sendo que N = 0/ e N = V , onde V o
conjunto de smbolos da linguagem;

S o smbolo inicial ou de partida, S N;


P um conjunto de regras ou produes, da forma , onde V + e
V . V denota o conjunto de todas as seqncias compostas por elementos de V ,
incluindo o conjunto vazio. Analogamente, porm excluindo o conjunto vazio,
V + contm as seqncias formadas por elementos de V . Produes do tipo {
, } podem ser elegantemente resumidas, atravs do smbolo de disjuno |,

para { |}.
3.1.1.1

Notao Gramatical

No tocante notao gramatical, convencionou-se a adoo de escrita dos smbolos


em caracteres minsculos. Para a distino dos smbolos no-terminais, em relao aos
terminais, optou-se pela incluso do sinal menor e maior, no incio e fim da descrio,
respectivamente. Isto significa que smbolos no-terminais so escritos na forma <smbolo>. Por sua vez, so denotadas por letras gregas as formas que potencialmente so
tanto smbolos terminais como no-terminais.
Como exemplo, considere uma linguagem L representando sentenas do tipo
ab, aabb, . . . , an bn . Formalmente tem-se:
L = {an bn |n 1} .

2 Smbolos

no-terminais so aqueles que so substitudos por outros smbolos (sejam terminais ou noterminais) no momento da gerao da sentena da linguagem.
3 O significado da palavra terminal adotado no mbito das gramticas difere do conceito empregado na
programao gentica, como visto no Captulo 2. Na PG os terminais significam qualquer entidade que
no requer argumentos, isto , um n terminal (folha) da rvore. Exemplos so as constantes, variveis ou
funes que no requerem argumentos. No mundo gramatical, os smbolos terminais representam o ltimo
nvel de substituio, sendo, pois, fixados quando gerados. So os smbolos que comporo a sentena
gerada da linguagem. Em outras palavras, os terminais so os smbolos que no podem ser substitudos.

3.1 Gramtica

36

L pode ser expressa pela gramtica GL = ({<s>}, {a, b}, S, P), onde
S = <s>
e
P = {<s> ab|a<s>b}
Uma produo pode ter um smbolo no-terminal cujo lado direito uma cadeia vazia.
O objetivo expressar uma substituio nula (representada pelo smbolo especial psilon
), retirando o no-terminal da palavra sendo gerada. Por exemplo, em uma gramtica
que define parnteses balanceados (nmero de parnteses abertos igual ao nmero de
fechados)
G = ({<p>}, {(, ), }, <p>, {<p> (<p>)|<p> <p>|})
requer o artifcio psilon para que a sentena seja finita. As sentenas geradas por esta
gramtica, incluindo a sentena nula, so do tipo (), (()), ()(), (()()), . . .
3.1.1.2

Passos de Derivao

Um passo de derivao o processo de obteno de um conjunto de smbolos


conhecidos como palavra ou cadeia de caracteres 4 atravs da aplicao de uma produo sobre um smbolo no-terminal da cadeia de caracteres a ser derivada.
A derivao inicia-se pela aplicao de uma produo compatvel

sobre o smbolo

inicial S. Se esta palavra gerada contiver um ou mais smbolos no-terminais, o processo


de derivao continua e segue com a aplicao das produes, at encontrar um estado
onde no possvel qualquer derivao, isto , a cadeia de caracteres resultante no contm smbolos no-terminais, culminando na forma final, a sentena.
Uma situao de indeterminao pode ocorrer quando h mais de um smbolo noterminal em uma determinada palavra a ser derivada. Dependendo da ordem de escolha,
uma derivao pode suceder-se diferentemente, produzindo sentenas distintas. Como
forma de padronizar as ordens das substituies, as derivaes podem ser realizadas ou
4 Uma palavra ou cadeia de caracteres sobre um alfabeto uma seqncia finita de smbolos (do alfabeto)

justapostos.
5 Diz-se que uma produo compatvel quando o smbolo que encabea a produo (lado esquerdo)
o mesmo do smbolo a ser derivado.

3.1 Gramtica

37

pela esquerda ou pela direita. Isto significa que caso a derivao seja feita esquerda, o
no-terminal que ter prioridade na substituio ser sempre aquele mais esquerda. Raciocnio anlogo para derivaes direita. Os exemplos didticos presentes neste captulo
usam derivao esquerda, salvo meno contrria.
A derivao representada pelo smbolo , sendo que:
p

- simboliza a derivao de em pela produo p, usando-se a gramtica G.


G

A gramtica pode ser omitida caso esteja implcita, podendo reduzir a representao
p

para .

- representa a transformao de uma palavra por zero ou mais passos de deri

vao. Ou ainda, explicitando-se a gramtica, .


G

- analogamente, indica a derivao por um ou mais passos.


Dando continuidade ao exemplo anterior da linguagem L, pode-se descrever a obteno de uma certa sentena, por exemplo aaabbb, pelos seguintes passos de derivao:
1. uma produo compatvel p aplicada sobre o smbolo inicial S,
<s>

<s>a<s>b

a<s>b

2. a mesma produo p anterior aplicada,


a<s>b

<s>a<s>b

aa<s>bb

3. finalmente, obtendo uma cadeia de caracteres sem smbolos no-terminais (sentena), aplicada a produo <s> ab,
aa<s>bb

<s>ab

aaabbb

possvel dizer tambm que


+

<s> aaabbb
Uma srie de derivaes tambm pode ser exposta graficamente, na forma de rvore
sinttica, tambm conhecida como rvore de derivao 6 , como mostrado na Figura 3.1.
6A

rvore de derivao (sinttica) tem como propriedades: 1) Os ns internos so smbolos noterminais e, complementando, os ns folhas so smbolos terminais, 2) Um n e seus filhos imediatos
devem respectivamente formar a cabea (lado esquerdo) e o corpo (lado direito) da produo.

3.1 Gramtica

38

Esta visualizao tem um carter especial, pois as operaes genticas so vistas mais
naturalmente pela manipulao sobre rvores.

Figura 3.1: rvore sinttica dos passos de derivao da sentena aaabbb.

Em uma mesma gramtica, uma palavra pode ter rvores ou sries de derivaes distintas. Estas gramticas so ditas ambguas. Por exemplo, a gramtica
G = ({<s>}, {a, b, ab}, <s>, {<a> <a>a<a>|<a>b<a>|ab})
pode gerar a cadeia
abaabbab
que, por sua vez, pode ser gerada por duas ou mais rvores de derivao, como mostrado
na Figura 3.2. Por conseguinte, G ambgua.

Figura 3.2: rvores sintticas da sentena abaabbab.

3.1 Gramtica

39

3.1.2 Hierarquia de Chomsky


O lingista Noam Chomsky [14], com o propsito de construir potenciais modelos
para linguagens naturais, agrupou as gramticas em quatro classes, criando uma relao
hierrquica entre elas. Esta hierarquia conhecida como Hierarquia de Chomsky, ilustrada na Figura 3.3.

Figura 3.3: Hierarquia de Chomsky.

Caminhando pelos nveis da Hierarquia, cada classe gramatical torna-se mais expressiva e engloba a classe inferior. Da mais especfica para a mais genrica, tem-se a gramtica regular (tipo 3), gramtica livre de contexto (tipo 2), gramtica sensvel ao
contexto (tipo 1) e a gramtica enumervel recursivamente (tipo 0).
Cada hierarquia expressa um nvel de restrio em relao ao tipo de produo aceitvel, sendo a gramtica tipo 0 totalmente relaxada e a tipo 3 a mais restrita. Lembrando-se
da definies V + (|| 1), , , V (||, ||, || 0), <a>, <b>, <c>, . . . representando smbolos no-terminais, e a, b, c, . . . os smbolos terminais, tem-se na Tabela 3.1 a

relao das gramticas e suas produes.


Cada uma destas gramticas atende a um propsito especfico. Problemas ou aplicaes relacionados ou que interagem com gramticas so melhor atendidos quando
trabalha-se com uma gramtica que seja suficiente para expressar a complexidade requerida e, ao mesmo tempo, seja a menos genrica.
O envolvimento do presente trabalho com as estruturas gramaticais de uma complexidade tal, que uma gramtica regular seria insuficiente para representar as necessidades,

3.1 Gramtica
Gramtica
Tipo 0

40
Produes

Tipo 1

<a>

Tipo 2

<a>

Tipo 3

<a> a<b>|b
ou
<a> <b>a|b

Gramtica irrestrita, produes podem ser de qualquer forma.


As produes so condicionadas a terem pelo menos um smbolo no-terminal no lado esquerdo. O
adjetivo sensvel ao contexto vem do fato de que
a substituio do smbolo <a> em pode ser contextualizada por e , ficando ento restrita a este
contexto.
A cabea da produo obrigatoriamente um e apenas um smbolo no-terminal. Diferentemente da
gramtica Tipo 1, na gramtica livre de contexto no
h um contexto para moldar as substituies, justificando portanto o adjetivo livre de contexto.
Alm da restrio de apenas um smbolo noterminal no lado esquerdo da produo, a gramtica
regular ainda adiciona a condio da existncia, no
lado direito, de ou um terminal ou um no-terminal
e terminal.

Tabela 3.1: Forma das produes das gramticas na hierarquia de Chomsky.

enquanto uma gramtica sensvel ao contexto seria demasiadamente genrica. No entanto, a gramtica livre de contexto mostra-se perfeitamente adequada para suprir toda a
demanda necessria.
Por conseguinte, o desenvolvimento deste captulo focado na gramtica livre de
contexto, primeiramente atravs de um maior detalhamento desta e, adiante, abordandose os aspectos de sua integrao programao gentica.

3.1.3 Gramtica Livre de Contexto GLC


A GLC uma gramtica que exibe grande poder de expresso juntamente com a
simplicidade, tanto conceitual como de implementao. Estas caractersticas fazem com
que a gramtica livre de contexto seja, por exemplo, a preferida para a definio das
maioria das linguagens modernas de programao [45].

3.1 Gramtica
3.1.3.1

41

Representao

Recordando-se a classe e restries das produes da GLC, tem-se


<a>
onde <a> um e apenas um no-terminal e pode ser uma cadeia de smbolos terminais
e/ou no-terminais.
Uma representao alternativa, conhecida como Forma Normal de Chomsky, equivalente 7 e coloca as produes nas formas
<a> <b><c>
<a> a
Implicaes prticas e tericas surgem pela forma especialmente simples das regras
de produes na Forma Normal de Chomsky. Por exemplo, dada uma GLC, pode-se
construir um algoritmo em tempo polinomial [35] para decidir se uma dada cadeia de
caracteres pertence ou no linguagem representada pela gramtica.
3.1.3.2

Exemplos Ilustrativos

Suponha um exemplo gramatical que ilustre a construo de sentenas de tal forma


que uma determinada palavra fique em algum lugar dentre uma seqncia de caracteres,
maisculos ou minsculos.
Esta gramtica pode ser construda como
G pal = ({<s>, <l>}, {palavra, A, B, . . . , Z, a, b, . . . , z, }, S, P)
sendo
S = <s>
e
P={
7 Equivalente

significa que as duas formas de gramtica geram a mesma linguagem.

3.1 Gramtica

42

<s> <l>palavra<l>,
<l> <l><l>|,
<l> A|B| . . . |Z|a|b| . . . |z
}
A gramtica G pal produz sentenas do tipo Estapalavraaqui, cujos passos de derivao so
<s>

<s><l>palavra<l>

<l><l><l>

<l>palavra<l>

<l><l><l>palavra<l>

<l>E

<l><l><l>

<l><l><l>

<l>s

<l><l>palavra<l>

<l><l><l><l>palavra<l>
<l>t

E<l><l><l>palavra<l> Es<l><l>palavra<l>
<l>a

Est<l>palavra<l> Estapalavra<l>

<l><l><l>

Estapalavra<l><l><l>

<l><l><l>

<l>q

<l>a

<l><l><l>

Estapalavra<l><l>

Estapalavra<l><l><l><l>
<l>u

Estapalavraa<l><l><l> Estapalavraaq<l><l>
<l>i

Estapalavraaqu<l> Estapalavraaqui
A estrutura grfica das seqncias de derivaes est exposta pela rvore sinttica da
Figura 3.4.
Considere agora o seguinte exemplo envolvendo a definio de uma gramtica G pre
para gerao de expresses aritmticas na forma prefixa sobre os nmeros reais:

G pre = ({<exp>}, {+, , , , }, S, P)


onde
S = <exp>
e ainda
P = {<exp> | + <exp><exp>| <exp><exp>| <exp><exp>| <exp><exp>}
Que produz, por exemplo, sentenas tais como
+ 3.14 2 7 3.2 604 50

3.1 Gramtica

43

Figura 3.4: rvore sinttica dos passos de derivao sobre a gramtica G pal .

equivalente forma infixa


(3.14 2) + (7 3.2) (604 50)
com a seguinte srie de derivaes

<exp>

<exp>+<exp><exp>

+ <exp><exp><exp>
+ 3.14 2 <exp>

+<exp><exp>

<exp>3.14

+ 3.14 2 7 3.2 <exp>

<exp><exp><exp>

+ 3.14 <exp><exp>

<exp><exp><exp>

+ 3.14 2 <exp><exp><exp>
<exp>604

<exp>2

+ 3.14 2 <exp><exp>

<exp>7

+ 3.14 2 7 3.2 604 <exp>

+ 3.14 2 7 <exp><exp>

<exp><exp><exp>

<exp><exp><exp>
<exp>3.2

+ 3.14 2 7 3.2 <exp><exp>

<exp>50

+ 3.14 2 7 3.2 604 50

Estes passos de derivao tambm podem ser vistos graficamente, na forma de uma
rvore de derivao, Figura 3.5.
Por curiosidade, a gramtica infixa das expresses aritmticas seria

3.1 Gramtica

44

Figura 3.5: rvore sinttica dos passos de derivao da expresso prefixa.

Gin f = ({<exp>}, {+, , , , }, S, P)


onde
S = <exp>
e ainda
P = {<exp> |(<exp>)|
<exp> + <exp>|<exp> <exp>|<exp> <exp>|<exp> <exp>}
Na gramtica Gin f nota-se, alm das modificaes dos operadores na posio infixa,
a introduo da produo <exp> (<exp>) que permite, atravs da utilizao de parnteses, impor precedncias outras na ordem das operaes.

Uma varivel, por exemplo x, conhecida no linguajar gramatical tambm como um


terminal, pode ser trivialmente inserida nas definies das gramticas. No caso da gramtica Gin f , bastaria a adio da varivel x no conjunto dos terminais e, claro, sua
definio como parte das produes, resultando em
Gin f = ({<exp>}, {+, , , , , x}, S, P0 )
e a nova produo
P0 = P {<exp> x}

3.2 Linguagem e Representao na Programao Gentica

45

que poderia gerar expresses como


(3.14 2) + (x 3.2) (604 x)

tornando plausvel a aplicabilidade das GLCs em incontveis problemas.

3.2

Linguagem e Representao na Programao Gentica

Da forma cannica s propostas mais requintadas, solues interessantes tm sido


criadas para representar programas dentro da programao gentica. Algumas so de
carter mais geral, enquanto outras so desenvolvidas especificamente para abordar um
determinado problema.
A reviso bibliogrfica posta nesta seo visa levantar variadas alternativas genricas
empregadas como forma de codificao, apontando suas vantagens e desvantagens. No
entanto, no se pretende avaliar exaustivamente e muito menos exaurir toda e qualquer
proposta que se encaixa neste perfil.
So mencionados e comentados os trabalhos importantes para ento introduzir e discutir a proposta do presente captulo: a programao gentica gramatical.

3.2.1 Estruturas Sintticas Restritas ESR


Na tentativa de abordar as fraquezas da PG no tocante condio de consistncia (vide
Captulo 2), Koza [33] elaborou, em carter ad hoc, uma restrio de sintaxe denominada
Estruturas Sintticas Restritas ESR (Constrained Syntactic Structures). Basicamente,
foram definidas regras (dependentes do problema) especificando quais funes e terminais
eram permitidos como argumento de um determinado n da rvore (funo).
Por exemplo [33], no problema Sries de Fourier, Koza especificou as seguintes regras
de sintaxe:
A raiz da rvore deve ser uma funo especial, &.
As nicas funes admitidas como argumento de & so as funes trigonomtricas
xsen, xcos e a prpria &.

3.2 Linguagem e Representao na Programao Gentica

46

Os argumentos das funes trigonomtricas so somente funes aritmticas


(+,,,) ou uma constante real aleatria.

Os operadores genticos, como inicializao, cruzamento e mutao so realizados de


maneira que no violem as restries de sintaxe:
inicializao o n raiz da rvore deve retornar o tipo requerido pelo problema e,

sucessivamente, os ns filhos (argumentos) devem retornar o tipo de dado requerido

pelo n pai.
cruzamento a troca de sub-rvore8 deve respeitar o rtulo atribudo ao n escolhido como ponto de corte. Isto , o cruzamento restrito aos ns que possuem

afinidade em relao ao tipo.


mutao anloga ao processo de inicializao, considerando-se a mutao cannica empregada na PG.

Embora esta abordagem contorne os pontos negativos da proposta inicial, ela precisa
ser modificada para cada problema. Alm disso, exige que a declarao seja feita de
forma textual (linguagem humana).

3.2.2 Programao Gentica com Tipos Fortes PGTF


Montana [37] props uma generalizao para o mtodo ESR, desenvolvido por Koza.
Sua nfase foi direcionada ao fortalecimento do conceito tipo, isto , cada funo especifica exatamente o tipo do argumento requerido e o tipo do valor retornado.
Na Programao Gentica com Tipos Fortes (Strongly Typed Genetic Programming),
ou simplesmente PGTF, cada varivel ou constante tem um tipo associado, por exemplo,
a constante do tipo real, enquanto que a varivel x inteira. De modo semelhante, s
funes so atribudos os tipos dos argumentos bem como o valor retornado.
No entanto, em relao ao ESR, a maior contribuio feita por Montana, em seu trabalho, foi a extenso da noo dos tipos, incluindo os conceitos de funes genricas e
tipos genricos de dados.
8 Troca

de sub-rvore operao de crossover comumente praticada na programao gentica.

3.2 Linguagem e Representao na Programao Gentica

47

Funes genricas so funes que aceitam argumentos de qualquer tipo. Por exemplo, basta apenas uma funo se-ento-seno, com os argumentos do tipo lgico, t e t,
retornando t, onde t um tipo de dado qualquer, podendo ser inteiro, real, entre outros.
Sem a generalizao, seria preciso definir a funo se-ento-seno-inteiro com argumentos lgico, inteiro e inteiro, retornando inteiro; e se-ento-seno com argumentos lgico,
real e real, retornando real.
Em termos de implementao, a diferena entre uma funo comum para a genrica
que a ltima precisa ser instanciada no momento de gerao de rvores (inicializao).
Neste processo, a funo genrica amarrada pelo tipo de argumento exigido pela
funo pai se for a raiz, o argumento do tipo requerido pelo problema. Respeitando
esta restrio de retorno, a escolha da funo especfica procede livremente.
A funo genrica traz uniformidade e clareza para funes que realizam o mesmo
tipo de operao em tipos de dados distintos.
Os tipos genricos de dados, por sua vez, permitem que os tipos de dados possam ser
definidos genericamente. O principal benefcio da utilizao destes tipos que as funes
evoludas so funes genricas. Por exemplo, considere que um sistema de programao
gentica necessite evoluir a funo n-simo, que dada uma lista de um tipo qualquer t e
um inteiro n, retorna o n-simo elemento desta lista. Se t no pudesse ser declarado como
genrico, a evoluo ocorreria apenas para um tipo definido, como real ou inteiro, de cada
vez.
Basicamente, no que diz respeito aos operadores genticos, os procedimentos so
semelhantes ao descritos para o ESR, com ressalva para as funes genricas, que necessitam ser instanciadas no momento da construo da rvore.
Alguns estudos indicam que o uso de regras de sintaxe que restringem o espao de
busca tem se mostrado promissor. Haynes et al. [26], por exemplo, demonstrou superior
desempenho sobre a PG convencional, utilizando a PGTF no domnio de evoluo de
estratgias predador-presa.
No que concerne forma estrutural de restrio, a PGTF no capaz de represent-la
globalmente, limitando-se a manipul-la localmente. Isto , uma funo ou argumento
restrito apenas em relao a outra funo ou argumento. Por conseguinte, esta caracterstica fortemente orientada ao tipo inviabiliza a criao de relaes estruturais mais

3.2 Linguagem e Representao na Programao Gentica

48

complexas. Por exemplo, existem situaes onde apesar da compatibilidade quanto ao


tipo, funes ou terminais no deveriam se intercambiar. Suponha a existncia de variveis e constantes de mesmo tipo. Pode ser desejvel ou requerido pelo problema que
variveis nunca co-existam em operaes binrias relacionais, exigindo argumento constante e varivel ou vice-versa. Este tipo de restrio fica prejudicada 9 , pois a sintaxe
construda exclusivamente sobre o tipo.

3.2.3 Evoluo Gramatical EG


Ryan, ONeill et al. [41] propuseram um sistema chamado Evoluo Gramatical
(Grammatical Evolution), baseado na gramtica livre de contexto, que teoricamente evolui programas em uma linguagem arbitrria, desde que esta possa ser descrita pela GLC.
A proposta foi baseada nos algoritmos genticos com cromossomo de comprimento
varivel, codificando em seus genes nmeros inteiros que representam a seqncia de
escolhas das produes em uma determinada gramtica (do tipo GLC). As produes
que possuam um mesmo smbolo no-terminal como cabea eram agrupadas e rotuladas.
A interpretao do gentipo

10

inicia-se pelo smbolo inicial, que restringe o domnio

de produes que podem ser selecionadas. Em outras palavras, as produes que esto
concorrendo obrigatoriamente casam com o smbolo inicial. Seguindo, o primeiro gene
lido e a produo rotulada com este nmero escolhida. Em seguida, a prxima posio
do cromossomo lida, porm, a restrio de seleo agora dada pelo primeiro smbolo
no-terminal mais a esquerda da cadeia previamente gerada, em vez do smbolo inicial.
O processo continua at que todos os smbolos no-terminais sejam substitudos.
Por exemplo, seja a gramtica da Tabela 3.2, que define uma linguagem de expresses
envolvendo seno, cosseno, soma e subtrao sobre a varivel x. As produes de mesma
cabea esto agrupadas e especificadas com nmeros romanos. Cada produo foi devidamente numerada, de acordo com o grupo a qual pertence. Por exemplo, no grupo I,
representado pelo no-terminal <exp>, existem trs escolhas, com produes numeradas
de 0 a 2.
9 De fato existe a possibilidade de se burlar esta limitao.

Poderiam ser criados pseudos-tipos como


var-t, denotando uma varivel do tipo t e const-t, representando uma constante do tipo t. Entretanto, este
artifcio quebra a estrutura lgica da sintaxe e requer a adaptao em cascata das funes a fim de acomodar
tipos de dados diferentes mas logicamente equivalentes.
10 Um dos aspectos da evoluo gramatical em relao programao gentica convencional que a EG
preserva a analogia biolgica da morfognese, ou seja, h uma distino clara entre gentipo e fentipo.

3.2 Linguagem e Representao na Programao Gentica


N=
=
S=
P=

{<exp>, <op>, <preop>, <var>}


{x, sin, cos, +, , (, )}
<exp>
I
<exp>
<exp> <op> <exp>
| <preop> (<exp>)
| <var>
II <op>
+
|
III <preop> sin
| cos
IV <var>
x

49

(0)
(1)
(2)
(0)
(1)
(0)
(1)
(0)

Tabela 3.2: Gramtica das operaes sin, cos, + e sobre a varivel x.


Considere o gentipo da Figura 3.6, de comprimento 10 e valores inteiros entre 0 a
255 (8 bits 11 ). Como o valor que cada gene pode representar maior do que o nmero
de produes indexadas, usa-se a funo mdulo para obter valores dentre os limites.
204 143 56

223 15

76

191 233 1

Figura 3.6: Cromossomo com codificao numrica inteira em 8 bits.

A derivao comea com a leitura do primeiro gene, 204. Existem trs produes apontadas pelo smbolo de partida (<exp>), portanto, a selecionada o resultado
de 204 mod 3, que resulta em 0, escolhendo a produo <exp> <exp> <op> <exp>.
O prximo passo ler o prximo gene, 143, escolhendo-se assim a produo substi-

tuta do no-terminal <exp> (esquerda). O mdulo 143 mod 3 igual a 2, por conseguinte, a produo eleita <var> x, que aponta para a varivel x. Nota-se que como
a cardinalidade do grupo IV um, s existe uma produo, no necessrio promo-

ver uma seleo (e nova interpretao de gene), portanto, a substituio direta, produzindo at o momento a expresso x<op> <exp>. As prximas sries so x + <exp>,
x + <preop> (<exp>), x + cos(<exp>), x + cos(<preop> (<exp>)), x + cos(sin(<exp>)), e
finaliza com a interpretao do oitavo gene do cromossomo, produzindo x + cos(sin(x))
como a expresso final.
A evoluo gramatical possui uma grande vantagem, ela lida com cromossomos lineares, sendo assim a EG pode empregar uma vasta gama de operadores genticos usados nos
11 A

quantidade de bits necessria para a codificao est intimamente relacionada com o nmero de
produes da gramtica.

3.2 Linguagem e Representao na Programao Gentica

50

algoritmos genticos. Naturalmente, existem tambm implicaes prticas, por exemplo


a linearidade do cromossomo facilita o trabalho de implementao.
Um fato curioso ocorrido no exemplo ilustrativo foi que o processo chegou ao fim
sem a leitura de alguns genes. Isto ocorre porque no possvel determinar o momento
onde a sentena (expresso completa) j estaria totalmente formada. Esta informao s
seria possvel mediante a operao de morfognese, ou seja, somente quando ocorrer a
interpretao do gentipo.
Apesar de haver alta incidncia de genes no usados na natureza (tambm conhecidos como ntrons), supostamente atuando na longevidade de certas combinaes entre
genes [48], bem como na manuteno da diversidade, o paralelo com os algoritmos genticos pode ser no vantajoso [3, 48], causando crescimento indesejvel e atrasando a
evoluo como um todo.
Como tentativa de minimizar os contratempos causados pelos ntrons, os autores da
EG introduziram o operador de poda, para a retirada peridica dos genes em excesso.
Infelizmente, dada a natureza representativa dentro da EG, os ntrons sempre aparecero
durante o processo evolutivo.
Outro problema, ainda mais grave, a possibilidade de no haver genes suficientes
para gerar a forma final da expresso. Isto , o comprimento do gentipo pode ser insuficiente. Se no exemplo da Figura 3.6, o oitavo gene de valor 191 fosse mudado para
qualquer valor cujo mdulo resultasse em zero, por exemplo, 192 (192 mod 3 = 0), a
produo selecionada seria <exp> <exp> <op> <exp>, e no haveria genes suficientes
para substituir todos os no-terminais da produo escolhida. Neste cenrio, pelo menos

trs alternativas podem ser pensadas: 1) eliminar os indivduos com gentipo corrompido, 2) inserir novos genes arbitrariamente e 3) rotacionar a leitura dos genes, isto ,
redirecionar ao primeiro gene quando o processo alcanar a ltima posio do cromossomo. A primeira e a segunda opo retardariam o processo evolucionrio, visto que ou
indivduos estariam sendo sacrificados ou novos materiais genticos estariam sendo indiscriminadamente inseridos, atuando como uma espcie de mutao agressiva. Ainda, a
segunda abordagem poderia provocar um crescimento incontrolado, dependendo de quo
azarada fosse a seleo das produes. A terceira alternativa, escolhida pelos autores
da EG, parece ser a mais sensata, pois absolveria os indivduos e ao mesmo tempo evitaria
a introduo massiva de novos genes. Porm, h um srio problema: a EG no garante

3.3 Programao Gentica Gramatical PGG

51

a gerao de gentipos factveis. Seja a Figura 3.7, onde o resultado da aplicao do


mdulo nos trs genes igual a um (x mod 3 = 1).
202 145 55
Figura 3.7: Gentipo infactvel sob rotao dos genes.

A produo <exp> <preop> (<exp>) seria selecionada recursivamente por infinitas

vezes. A rotao neste gentipo causaria, portanto, um crescimento ilimitado, invalidando


o indivduo.

3.3

Programao Gentica Gramatical PGG

Na programao gentica os indivduos passam por vrios estgios de transformao


ou interpretao, compreendendo basicamente a criao, avaliao, recombinao e aplicao de operadores genticos. Em todos estes estgios, independentemente do nmero
de ocorrncias, crucial que seja mantida a factibilidade do indivduo. Infelizmente esta
exigncia tende a tornar-se cada vez mais desafiante medida que a quantidade de tipos
de dados aumenta.
Na sua concepo original, a estrutura representativa da PG trata de forma simplria e
at mesmo deficiente a questo da representao (ou codificao) de programas. A maior
limitao a exigncia da propriedade de consistncia (Captulo 2), obrigando que toda
combinao possvel entre funes e/ou terminais seja vivel, para que assim os estgios
de transformao possam ser processados. Em problemas envolvendo um nico tipo de
dado, como a regresso simblica, esta restrio pode ser satisfeita naturalmente. Porm,
quando o problema exige tipos de dados distintos, como a construo de um programa
classificador de dados mistos, esta limitao torna-se um estorvo ou at mesmo probe o
uso da codificao cannica.
Outro ponto frgil envolvendo a representao inicial est relacionado ao fato de que
no h meios de impor uma verdadeira estrutura na codificao. Uma estrutura no meramente baseada na restrio de compatibilidade entre tipos de dados, mas sim no significado da relao entre os componentes (funes, constantes, variveis), sob a tica lgica
do problema. Deficincia esta que abrange tambm as propostas ESR e PGTF, discutidas
anteriormente.

3.3 Programao Gentica Gramatical PGG

52

O uso da representao definida por gramtica cobre concomitantemente estes dois


pontos chaves. No obstante, as regras bem estabelecidas da gramtica podam construes improfcuas, reduzindo-se assim o espao de busca e, conseqentemente, aceleram
o processo evolutivo. Finalmente, a programao gentica, evoluindo programas em uma
determinada linguagem, naturalmente uma forte candidata a ser submetida ao formalismo de uma gramtica, em especial a GLC.
As duas alternativas discutidas neste trabalho que lidam com a representao gramatical e, por conseguinte, so isentas dos problemas mencionados, so a evoluo gramatical
e a programao gentica gramatical. Por sua vez, a EG, apesar de sua simplicidade,
apresenta alguns graves pontos colaterais. Em contrapartida a PGG, apesar de ser simples
conceitualmente mas nem tanto em termos de implementao, mostra ser uma excelente
forma de codificao para problemas no campo da programao gentica, em especial na
tarefa de classificao de dados, a qual tema deste trabalho.
Este captulo, e em particular esta seo, aborda os aspectos envolvidos na integrao
do sistema gramatical com a programao gentica.

3.3.1 Definio
A aplicao de uma gramtica no campo da PG incide primeiramente sobre a estruturao dos programas em processo de evoluo. Define basicamente a gama de componentes ofertados (por exemplo funes, variveis e constantes) e as regras de combinaes
entre estes, assegurando-se a consistncia.
Whigham [56, 57], desenvolveu uma forma de representao baseada em gramtica
livre de contexto, conhecida como Programao Gentica Gramatical 12 , ou apenas PGG.
Na PGG, o domnio do espao de busca moldado pela gramtica, notoriamente pelas
regras de produo. Isto significa que o objetivo do processo de evoluo encontrar,
dentre todos os programas contidos neste espao de busca, aquele que melhor se adapta
ao ambiente do problema, o programa mais proficiente segundo a funo de aptido
definida para a tarefa em questo.
No satisfeito, Whigham ainda props [57], como conseqncia da insero gramatical na PG, um novo conjunto de ferramentas a dispor do processo evolutivo, dentre elas
12 Grammatically-based

Genetic Programming, Programao Gentica baseada em Gramtica ou simplesmente Programao Gentica Gramatical.

3.3 Programao Gentica Gramatical PGG

53

destacam-se duas:
possibilidade de evoluir a prpria gramtica, ou seja, modificar smbolos noterminais, terminais e produes, no decorrer da evoluo;

mutaes direcionadas contendo produes (passveis de evoluo) que especificam


a forma da sub-rvore a ser substituda.

Por questes envolvendo delimitao de escopo, e de fato as necessidades prticas acerca


da gramtica, estas questes adicionais no so investigadas no trabalho corrente. Certamente bons temas para trabalhos futuros.

3.3.2 PGG: GLC adaptada Programao Gentica Tradicional


O Captulo 2 descreve a forma tradicional da PG, como concebida inicialmente por
Koza. A introduo da representao por gramtica requer modificaes, sintetizadas por:
1. definio da gramtica (GLC) adequada ao problema;
2. gerao de indivduos conforme a gramtica definida;
3. adaptao dos operadores genticos, como a recombinao e mutao.
As estruturas comparativas entre a PGG e a PG tradicional, visualizadas na forma de
fluxograma, so mostradas na Figura 3.8. Nota-se grande semelhana entre as estruturas,
sendo que a PGG difere apenas em dois pontos, a necessidade de uma gramtica e a
excluso do processo de inicializao encontrado na PG tradicional (vide Seo 2.3.6). O
primeiro ponto trivial e j foi comentado. O segundo ponto explicado pelo fato de que
o processo de criao e inicializao so realizados juntamente, sendo considerados, na
PGG, como sinnimos. Esta questo abordada adiante.
O ciclo de processamento usando-se a PGG pode ser descrito sucintamente pelo
pseudo-algoritmo traado pelo Algoritmo 3.1. As etapas do ciclo so abordadas nos seus
pormenores nas sees seguintes.

3.3 Programao Gentica Gramatical PGG

54

Figura 3.8: A estrutura do fluxo da PG e PGG.

3.3.2.1

Gramtica Livre de Contexto para o Problema

A definio de uma gramtica (livre de contexto) a primeira tarefa a ser desenvolvido


para o problema. A GLC estipula o conjunto de funes, constantes e variveis, bem
como as relaes e restries destes. Esta gramtica exatamente nos moldes 13 das GLC
discutidas na Seo 3.1.3.
Como exemplo referncia, considere uma gramtica simplificada (G iris ) para o problema de classificao ternria para a planta ris
13 Naturalmente,

14 ,

exibida na Tabela 3.3. Em resumo,

alguns detalhes podem diferir-se para que possam ser adaptados implementao em
uma linguagem computacional.
14 Uma descrio mais minuciosa encontra-se na Seo 5.2 do captulo 5.

3.3 Programao Gentica Gramatical PGG

55

Algoritmo 3.1 Pseudo-algoritmo do funcionamento da PGG.


Requer: gramtica definida para o problema
crie os indivduos aleatoriamente;
lao
avalie os indivduos;
se critrio de parada satisfeito ento
termine a execuo;
fim se
selecione os indivduos mais promissores;
aplique os operadores genticos;
insira os novos indivduos de acordo com o mtodo de reproduo;
fim lao
trata-se da tarefa de descobrir uma funo capaz de melhor classificar em classes distintas as trs variedades (setosa, versicolour e virginica) de planta ris, sendo para isto
fornecidas quatro variveis numricas contnuas.
N=
=
S=
P=

{<se-ento-seno>, <lgico>, <numrico>, <relacional>, <atrib-numrico>, <classe>,


<const-numrica> }
{se-ento-seno, e, ou, no, igual, maior, menor, atr 1 , atr2 , atr3 , atr4 , setosa,
versicolour, virginica, constn }
<se-ento-seno>
<se-ento-seno> <classe> | se-ento-seno <lgico> <se-ento-seno> <seento-seno>;
<lgico>
e <lgico> <lgico> | ou <lgico> <lgico> | no <lgico> |
<relacional>;
<relacional>
maior <numrico> <numrico> | menor <numrico> <numrico> | igual <numrico> <numrico>;
<numrico>
<atrib-numrico> | <const-numrica>;
<atrib-numrico> atr1 | atr2 | atr3 | atr4 ;
<const-numrica> const1 | const2 | . . . | constn ;
<classe>
setosa | versicolour | virginica;

Tabela 3.3: Gramtica Giris simplificada.

A GLC Giris fornece a habilidade de se criar indivduos (rvores de classificao) que


envolvam decises condicionais (se-ento-seno), comparaes relacionais (maior, menor ou igual) entre os atributos numricos da base de dados ris e/ou constantes numricas, bem como operaes lgicas (e, ou ou negao) sobre qualquer operao relacional.
A gramtica uma geradora de sentenas, e a linguagem de uma determinada gramtica o conjunto (possivelmente infinito) de todas as sentenas que podem ser geradas

3.3 Programao Gentica Gramatical PGG

56

a partir desta. A caracterstica recursiva da Giris define uma linguagem prpria digna de
construir programas de complexidade arbitrria, respeitando-se as relaes definidas pela
gramtica.
3.3.2.2

Criao dos Indivduos da Populao Inicial

Uma sentena gerada por uma srie de derivaes, e um indivduo na PGG exatamente isso, uma rvore contendo uma determinada seqncia (completa) de derivaes,
enraizada pelo smbolo inicial definido na GLC.
No exemplo da gramtica Giris , todos os programas devero obrigatoriamente iniciar
por
<se-ento-seno> <classe>
ou
<se-ento-seno> se-ento-seno <lgico> <se-ento-seno> <se-ento-seno>
j que o smbolo inicial o no-terminal <se-ento-seno>, encabeando duas produes
distintas.
Graficamente, como rvore sinttica, as formas iniciais possveis so visualizadas na
Figura 3.9.

Figura 3.9: As possveis razes das rvores de derivao segundo a G iris .

Na Figura 3.9, a primeira estrutura, culminando diretamente em uma classe, tem possibilidades remotas de ser uma soluo til, no local. O motivo que o smbolo noterminal <classe> deriva obrigatoriamente em um smbolo terminal, que representa a
classe da planta ris, sendo setosa, versicolour ou virginica. Em outras palavras, a rvore classificadora fecha precocemente, classificando cegamente qualquer entrada como

3.3 Programao Gentica Gramatical PGG

57

uma e somente uma das trs possveis classes. Considerando-se eqidade probabilstica
na seleo de ambas as produes, 50% dos indivduos nasceriam virtualmente invlidos,
enquanto a outra metade seria de fato a esperana no processo evolutivo. Felizmente, a
presso de seleo tenderia a elimin-los o quanto antes, entretanto a presena de disparidade entre a ocorrncia de amostras para cada uma das classes no conjunto de treinamento
pode forar uma convergncia prematura pode-se, entretanto, pr-processar a base de
dados a fim de torn-la homognea neste quesito. De qualquer forma, existem diversas
maneiras de se contornar este tipo de construo, se necessrio for. Destacam-se:
a restrio gramatical por meio da adio de produes;
a proibio no momento da criao dos indivduos;
a atribuio de uma baixa probabilidade para escolha desta produo;
A primeira proposta sobre a modificao gramatical poderia ser alcanada alterando-se as
produes de Giris , como por exemplo:
<se-ento-seno>
<a>

se-ento-seno <lgico> <a> <a>;


<se-ento-seno> | <classe>;

Que seria o suficiente para restringir a raiz dos programas a aceitar unicamente a forma
condicional. Entretanto, em raros casos onde a soluo trivialmente dada diretamente
por uma classe, esta abordagem certamente prejudicar o processo. A alternativa para
a proibio no momento da criao dos indivduos tambm junta-se a esta observao.
Caso decida-se por um tratamento especial acerca da formao precoce, talvez o melhor
procedimento seja conseguido atribuindo-se uma pequena taxa para a seleo da produo
trivial.
Criao no-determinstica
Geralmente, na computao evolucionria, adotado o mtodo aleatrio de criao
dos indivduos, assim tambm funciona com a programao gentica gramatical. Na PGG
o indivduo formado por uma seqncia no determinstica de derivaes, que resulta
em uma sentena, isto , at a resoluo completa de todos os smbolos no-terminais.
O processo de criao de um indivduo inicia-se, como descrito, pela fixao do smbolo

3.3 Programao Gentica Gramatical PGG

58

de partida (no-terminal) como a raiz da rvore. Neste ponto sorteia-se uma produo
dentre todas produes encabeadas pelo smbolo inicial e adiciona-se esta como filha
do smbolo de partida. Seguindo, para cada smbolo no-terminal mais esquerda (caso
haja mais de um), escolhe-se uma produo encabeada por este smbolo e insere-a como
filha deste smbolo no-terminal pai. O procedimento assim repetido at que todos os
smbolos no-terminais tenham sido resolvidos em smbolos terminais, formando ento a
sentena. De forma usual, a ordem de substituio dos smbolos no-terminais realizada
recursivamente em pr-ordem

15 .

O Algoritmo 3.2, recursivo, mostra uma viso mais

estruturada do processo de criao de um indivduo.


Algoritmo 3.2 Criarvore (<s>)
Entrada: smbolo inicial <s>
sorteie uma produo da forma <s> , V + ;
substitua <s> por <s> , fazendo cada smbolo de ser um filho de <s>;
para cada no-terminal <n> faa
Criarvore (<n>);
fim para
Nota-se que na formao do indivduo, diferentemente da programao gentica tradicional, no h distino entre criao e inicializao, sendo, pois, conceitos tratados com
sinnimos. Na PG, a fase de criao produz a forma estrutural do indivduo, j a inicializao preenche a rvore com funes, constantes e variveis, obviamente respeitando-se
a estrutura previamente criada (nmero de argumentos). Na PGG a forma estrutural da
rvore (indivduo) fixada juntamente com os smbolos, atravs da srie de derivaes.
Controle da exploso de crescimento da rvore
Um grave problema, de larga incidncia para a maioria das gramticas, inclusive a
Giris , a seqncia de derivaes interminveis, criando ou indivduos demasiadamente
grandes ou inviveis, fruto de uma srie de derivaes infinita. Este panorama ocorre
porque o crescimento do nmero de smbolos no-terminais pode ser bem superior aos
smbolos terminais, podendo causar discrepncia em ordem de grandeza exponencial
medida que o processo de derivao avana. A soluo forar, em um dado momento,
que as nicas produes aceitveis sejam aquelas que apresentem apenas terminais em
15 O

percurso em pr-ordem tambm conhecido como percurso em profundidade. realizado recursivamente, visitando-se primeiramente a raiz, o filho esquerda (recursivamente) e ento o filho direita
(tambm recursivamente).

3.3 Programao Gentica Gramatical PGG

59

seu corpo, ou seja, produes da forma <a> a1 , a2 , . . . , an , sendo <a> N e an . O

limite de profundidade da rvore declarado que define o momento em que os smbolos


no-terminais so imediatamente resolvidos em terminais. No entanto, a implementa-

o desta abordagem requer um tratamento mais elaborado. Cada produo da gramtica


precisa ser rotulada de tal forma que indique o nmero mnimo de passos de derivao para que se crie somente smbolos terminais

16 .

Isto permite ao sistema saber, em

funo do limite de profundidade mxima estabelecida, se uma determinada produo


(contendo algum no-terminal) pode ser somada rvore. Esta questo melhor compreendida recorrendo-se a um exemplo hipottico em que o sistema precisa decidir, em
uma rvore em trabalho de construo, qual tipo de produo ser aceita, uma produo
cujo corpo constitudo apenas de terminais ou uma outra que carrega tambm smbolos
no-terminais. Isto depender de quantos nveis de profundidade a rvore ainda poder
expandir-se. No caso de apenas um nvel, a escolha ser pela produo que implica em
smbolos terminais somente; caso maior do que um, depender se a produo poder ser
resolvida em smbolos terminais, com um total de passos de derivao menor ou igual ao
espao restante de expanso 17 .
O Algoritmo 3.3 do tipo bottom-up e executa a tarefa de rotulao das produes de
uma GLC.
Inicia-se com a rotulao trivial de todas as produes cujo corpo constitudo somente de smbolos terminais, permitindo-se assim sustentar todo o procedimento de
baixo para cima. Em seguida, o algoritmo executa um lao at que todas as produes
estejam rotuladas. Uma produo s est preparada para a rotulao se cada no-terminal
do seu corpo encabear pelo menos uma produo previamente rotulada, caso contrrio
o algoritmo continua processando outras produes bases at que seja suficiente para
rotul-la. Em uma produo que contm mais de um smbolo no-terminal em seu corpo,
o rtulo ser sempre o maior valor dos rtulos de seus no-terminais acrescido de um. A
explicao simples, a maior profundidade (passos de derivao) para resolver todos os
smbolos no-terminais quem dita a rotulao mnima. A varivel maiorRtulo auxilia
neste propsito, e armazena sempre o maior valor dos rtulos dos smbolos no-terminais
de uma determinada produo. Como um mesmo smbolo no-terminal pode encabe16 Na

notao derivativa compreende em descobrir o nmero mnimo de passos de derivao para se criar

<a> b, onde b .
17 O espao restante de expanso o valor da subtrao m n, onde m a profundidade mxima e n o
nvel atual da rvore em formao.
<a>

3.3 Programao Gentica Gramatical PGG

60

Algoritmo 3.3 RotulaProdues (G)


Entrada: gramtica livre de contexto contendo produes P
para cada produo pi G da forma <a> a1 , a2 , . . . , an faa
rtulo{pi } 1;
fim para
enquanto todas as produes no forem rotuladas faa
para cada produo no rotulada pi G do tipo <a> , V faa
maiorRtulo 1;
para cada no-terminal <b> j faa
se a produo <b> j j foi rotulada ento
maiorRtulo max(arg min(rtulo{<b> j }), maiorRtulo);
seno
a produo pi no pode ser rotulada ainda, voltar para o lao mais externo e
continuar o processamento com a produo pi+1 ;
fim se
fim para
rtulo{pi } maiorRtulo + 1;
fim para
fim enquanto
ar diversas produes, e estas no necessariamente possuem o mesmo valor de rtulo,
a expresso arg min(rtulo{<b> j }) garante que sempre o rtulo de menor magni-

tude participar do clculo. Este tratamento relevante porque o objetivo rotular com o
somatrio mnimo, evitando-se assim a eliminao (devido restrio de profundidade)
desnecessria de produes que poderiam ter um menor valor de rotulao.

A aplicao do Algoritmo 3.3 na gramtica Giris produz o esquema de rotulao mostrado na Tabela 3.4. Os valores dos rtulos esto cercados por parnteses.
Naturalmente, o algoritmo de construo tem que ser modificado para respeitar a restrio quanto profundidade. O Algoritmo 3.4 a verso com limite de profundidade
adaptada do Algoritmo 3.2 de criao de indivduo.
Algoritmo 3.4 Criarvore (<s>, pmax )
Entrada: smbolo inicial <s> e profundidade mxima p max
sorteie uma produo da forma <s> , tal que o rtulo pmax , V + ;
substitua <s> por <s> , fazendo cada smbolo de ser um filho de <s>;
para cada no-terminal <n> faa
Criarvore (<n>, pmax 1);
fim para

3.3 Programao Gentica Gramatical PGG


P=

<se-ento-seno>

<lgico>

<relacional>

<numrico>

<atrib-numrico>

<const-numrica>

<classe>

61

(2) <classe> |
(5) se-ento-seno <lgico> <se-ento-seno> <seento-seno>;
(5) e <lgico> <lgico> |
(5) ou <lgico> <lgico> |
(5) no <lgico> |
(4) <relacional>;
(3) maior <numrico> <numrico> |
(3) menor <numrico> <numrico> |
(3) igual <numrico> <numrico>;
(2) <atrib-numrico> |
(2) <const-numrica>;
(1) atr1 |
(1) atr2 |
(1) atr3 |
(1) atr4 ;
(1) const1 |
(1) const2 |
(1) . . . | constn ;
(1) setosa |
(1) versicolour |
(1) virginica;

Tabela 3.4: Produes da gramtica Giris rotuladas.

Mtodos de criao da populao


Os variados mtodos de criao oriundos da PG (Captulo 2), como criao completa,
livre, entre outros, so utilizados na PGG sem necessidade de adaptaes 18 .
Garantia da diversidade populacional
A populao inicial pode ter um forte impacto sobre o progresso da evoluo. A
diversidade um componente essencial para a populao inicial e de fato para todo o
processo evolutivo, ajudando a cobrir de forma homognea e abrangente o espao de
busca formado por programas. Assegurar que todos os indivduos criados sejam distintos
dos demais um passo promissor nesta direo. A distino pode referir-se a estrutura,
funcionalidade, ou ambas, e pode ser introduzida como parte do processo de criao da
18 Uma

exceo pode ocorrer na utilizao do mtodo completo, que exige que todo comprimento entre o
n raiz e qualquer n folha seja igual profundidade mxima estipulada para a rvore (vide Seo 2.3.4). A
possibilidade de cumprir fielmente esta exigncia est condicionada flexibilidade estrutural que a gramtica impe. De qualquer forma, pode-se instruir a criao a aproximar-se ao mximo do mtodo completo.

3.3 Programao Gentica Gramatical PGG

62

populao.
3.3.2.3

A Avaliao dos Indivduos

A avaliao de um indivduo na PGG, assim como na PG, se resume a medir o desempenho de um programa contra um certo conjunto de dados (treinamento). O nmero
de amostras deste conjunto de dados depende da necessidade do problema. Um dado da
amostra pode ser unidimensional, como um nmero real do problema de regresso simblica de uma varivel, bem como n-dimensional, como o caso da classificao de uma
base de dados que envolvem vrios atributos, por exemplo, a classificao das classes da
planta ris.
A avaliao, assim, a ponderao do resultado de vrias execues do programa para
cada amostra de dados. Um objetivo usual a minimizao da soma das discrepncias
encontradas a cada amostra apresentada, entretanto, a escolha desta medida deve ser em
funo do carter do problema.
O cerne de qualquer avaliao a execuo do programa. E para isto o sistema precisa
interpretar de modo apropriado o programa, a rvore gramatical. Em termos genricos,
uma rvore de derivao possui trs componentes:
estrutura hierrquica - prov o fluxo de execuo;
smbolos no-terminais - mantm a integridade estrutural;
smbolos terminais - fornecem a funcionalidade.
Dentre os trs componentes, o estgio de execuo/avaliao requer apenas dois deles, a
estrutura hierrquica e os smbolos terminais.
At o momento, um indivduo uma rvore contendo smbolos no-terminais e terminais, mas sem uma semntica definida, ou seja, uma rvore no funcional. Fundamental
para o processo de avaliao poder executar o programa, e os componentes chaves
que de fato importam nesta etapa so os smbolos terminais (hierarquicamente estruturados), que formam a sentena da derivao. No entanto, estes smbolos terminais no tm
vida, necessitam portanto serem vinculados s rotinas que computam funes, retornam
constantes ou trabalham apropriadamente as variveis (ou atributos). Em outras palavras,
os no-terminais no participam do processo de execuo.

3.3 Programao Gentica Gramatical PGG

63

A Tabela 3.5 mostra a amarrao para a gramtica Giris que provm a semntica funcional dos smbolos terminais. Nota-se, como esperado, que os atributos (variveis), cons
se-ento-seno
e
ou
no
igual
maior
menor
const1 . . . constn
atr1 . . . atr4
setosa, versic., virginica

Retorno
classe
lgico
lgico
lgico
lgico
lgico
lgico
numrico
numrico
classe

Funo
Argumentos
SeEntoSeno (lgico, classe, classe)
E
(lgico, lgico)
Ou
(lgico, lgico)
No
(lgico)
Igual
(numrico, numrico)
Maior
(numrico, numrico)
Menor
(numrico, numrico)

Tabela 3.5: Ligaes funcionais dos smbolos terminais da gramtica G iris .

tantes e as classes, funes de aridade zero, apenas retornam valores, isto , no requerem
argumentos. conveniente ressaltar que para os atributos, ou variveis do programa, os
valores retornados so dinmicos, ou seja, dependendo da amostra comparada, os atributos tero um conjunto prprio de valores retornados para o programa.
O Algoritmo 3.5 computa recursivamente o resultado da execuo de um programa. O
argumento requerido um smbolo terminal, podendo ser uma funo, constante, atributo
ou classe (respeitando-se a estrutura imposta pela gramtica). Inicia-se a execuo passando como argumento o primeiro smbolo terminal da rvore sinttica. Tendo a estrutura
gramatical Giris como referncia, a funo ExecutaPrograma poderia ser semeada com o
terminal se-ento-seno ou qualquer uma das classes, setosa, versicolour ou virginica.
Algoritmo 3.5 ExecutaPrograma (T)
Entrada: smbolo terminal T
Retorno: o valor de T ou o resultado da execuo da funo ligada a T
se NmeroArgumentos(T) > 0 ento
retorne Funo[T](ExecutaPrograma (T.arg1 ), . . ., ExecutaPrograma (T.argn ));
seno
retorne T;
fim se

O cmputo da avaliao de um indivduo pode ser realizado chamando-se a funo


ExecutaPrograma para cada exemplo do conjunto de treinamento e, ento, calculando a

3.3 Programao Gentica Gramatical PGG

64

disparidade acumulada entre a sada da funo e o valor esperado, ao longo das execues.
3.3.2.4

Seleo dos Indivduos Promissores

A seleo na PGG segue exatamente a forma como realizada na programao gentica convencional.
3.3.2.5

Operadores Genticos

Os dois grandes operadores genticos utilizados na PG e PGG so o cruzamento e


a mutao padro

19 .

O primeiro trata da recombinao do material gentico, enquanto

o segundo causa mudanas aleatrias em algum ponto do gentipo do indivduo (Captulo 2).
As adaptaes necessrias para a integrao com a programao gentica gramatical
concernem em manter coesa a estrutura definida pela gramtica. Isto , os operadores
genticos s podem ser praticados respeitando-se as imposies definidas pelos smbolos
no-terminais da rvore de derivao. As restries visam garantir que os novos indivduos criados/modificados tambm sejam membros da linguagem definida pela gramtica
do problema.
Diferentemente da avaliao, o papel dos smbolos no-terminais nas operaes de
cruzamento e mutao torna-se evidente, enquanto os smbolos terminais e a estrutura da
rvore tornam-se dispensveis.
Cruzamento
O crossover cria novos indivduos misturando o contedo gentico de seus pais. Na
codificao por rvores de deciso, o cruzamento significa a troca de sub-rvores, gerando
dois novos programas.
Os pontos de cruzamento esto restritos a operarem somente sobre os smbolos noterminais, e ele realizado da seguinte forma. Escolhe-se inicialmente um smbolo noterminal do primeiro indivduo. Em seguida, seleciona-se um no-terminal na rvore
19 Outros

operadores vistos no captulo 2, como a mutao alelo, mutao de encolhimento (shrink), permutao e edio, podem tambm ser agregados PGG. O requisito que estas operaes sejam realizadas
obedecendo-se a estrutura gramatical da rvore, de forma anloga adaptao dos operadores padres de
crossover e mutao.

3.3 Programao Gentica Gramatical PGG

65

do segundo pai, mas com a restrio de que este smbolo seja igual ao selecionado no
primeiro indivduo. Em outras palavras, as razes das sub-rvores selecionadas dos indivduos pais tm que compartilhar o mesmo smbolo no-terminal. A Figura 3.10 mostra
graficamente uma aplicao do operador crossover. Os indivduos A e B so selecionados para a recombinao gentica, sob algum critrio de seleo previamente definido.
Sorteia-se um smbolo no-terminal em A e B, no exemplo o smbolo <relacional>. As
sub-rvores enraizadas pelo smbolo escolhido so ento comutadas, cada qual gerando
um novo indivduo, A e B.

Figura 3.10: O cruzamento na programao gentica gramatical.

de se esperar que, ocasionalmente, o smbolo no-terminal escolhido no primeiro pai


no faa parte do repertrio de smbolos do segundo pai. Pode-se pensar em simplesmente

3.3 Programao Gentica Gramatical PGG

66

anular o cruzamento e seguir com a escolha de novos indivduos pais. Alternativamente,


prefervel tentar selecionar outros pontos de corte (smbolos no-terminais) dos indivduos em processo de crossover. O Algoritmo 3.6 mostra o procedimento de cruzamento,
incluindo o artifcio de tentativas extras. Um novo argumento tentativas max fornecido
como parmetro a fim de prevenir que o sistema desperdice considerveis recursos na
tentativa infrutfera de selecionar dois pontos compatveis em indivduos que no tenham
no-terminais em comum

20 .

possvel ainda descrever o processo de cruzamento de

Algoritmo 3.6 Cruzamento (1 , 2 ,tentativasmax )


Entrada: rvores de derivao pais 1 e 2 , e tentativasmax
Retorno: rvores de derivao geradas 1 e 2
tentativas 0;
enquanto no houver crossover e tentativas < tentativasmax faa
ponto1 SorteiaPonto(1 );
ponto2 SorteiaPonto(2 ) | NoTerminal(ponto2 ) = NoTerminal(ponto1 );
se encontrou em 2 o mesmo smbolo no-terminal sorteado em 1 ento
1 1 Subrvore(ponto1 ) + Subrvore(ponto2 );
2 2 Subrvore(ponto2 ) + Subrvore(ponto1 );
retorne 1 e 2 ;
seno
tentativas tentativas + 1;
fim se
fim enquanto
retorne no foi possvel realizar o crossover;
forma linear, em termos de como as sentenas so misturadas. Sejam duas rvores com
as derivaes,
+

S x1 . . . xn <a> z1 . . . zi x1 . . . xn y1 . . . ym z1 . . . zi
+

S a1 . . . a j <a> c1 . . . ck a1 . . . a j b1 . . . br c1 . . . ck
o crossover sobre o smbolo no-terminal <a> produzir duas novas sentenas da forma
+

S x1 . . . xn <a> z1 . . . zi x1 . . . xn b1 . . . br z1 . . . zi
+

S a1 . . . a j <a> c1 . . . ck a1 . . . a j y1 . . . ym c1 . . . ck
20 Na

realidade, todo indivduo construdo sob a mesma gramtica possui pelo menos um smbolo noterminal em comum: o smbolo de partida. Entretanto, o smbolo inicial representa a raiz da rvore de
derivao, e o cruzamento sobre a raiz sinnimo de clonagem, ou seja, no so misturados os materiais
genticos. Sendo assim, o procedimento de crossover pode agregar de forma vantajosa a restrio de corte
apenas em ns abaixo (filhos) da raiz.

3.3 Programao Gentica Gramatical PGG

67

O crossover seletivo , nomeado assim por Whigham, permite que o cruzamento atue

em um subconjunto de smbolos no-terminais e/ou com diferentes propores de seleo.

Por exemplo, na Tabela 3.6 a operao de cruzamento ocorreria com a probabilidade


de 40% para os no-terminais {<se-ento-seno>, <lgico>, <classe>} e 50% para os
smbolos {<relacional>,<atrib-numrico>}.
Subconjunto admitido
= {<se-ento-seno>, <lgico>, <classe>}
= {<relacional>, <atrib-numrico>}

Probabilidade
40%
50%

Tabela 3.6: Exemplo de parmetros para o crossover seletivo sob a gramtica G iris .

As alteraes no Algoritmo 3.6 relativas introduo do cruzamento seletivo so triviais, bastando delimitar a seleo de no-terminais aos estipulados nos parmetros, bem
como agir em funo da probabilidade. Um detalhe, no entanto, refere-se a possibilidade
de uma das rvores no possuir qualquer smbolo no-terminal apresentado nos parmetros. Neste caso, o crossover retornado como nulo.
Mutao
O objetivo da mutao modificar parte do material gentico de um indivduo de
forma aleatria, buscando assim explorar novas direes e aumentar a diversidade. De
forma anloga natureza, a ocorrncia da mutao na programao gentica geralmente
rara, ocorrendo sob baixas probabilidades.
A mutao segue a mesma filosofia do cruzamento na PGG, isto , est condicionada
ao smbolo no-terminal sorteado. Diferentemente do crossover, a mutao opera sobre
um nico indivduo por vez. Sinteticamente, escolhe-se aleatoriamente um smbolo noterminal da rvore de derivao do programa, ento, remove-se esta sub-rvore indexada
pelo smbolo e a substitui por uma outra, criada como na gerao inicial do indivduo, porm, o smbolo inicial o no-terminal sorteado. A Figura 3.11 ilustra o processo de mutao na programao gentica gramatical. Primeiro sorteia-se um smbolo no-terminal
da rvore A, <se-ento-seno>, elimina-se a sub-rvore enraizada pelo smbolo e ento a
substitui por outra cuja raiz tambm o no-terminal <se-ento-seno>, gerando a rvore
A.
O Algoritmo 3.7 realiza a mutao sobre uma rvore de derivao, aceitando tambm

3.3 Programao Gentica Gramatical PGG

68

Figura 3.11: A mutao na programao gentica gramatical.


como argumento a profundidade mxima de mutao. Nota-se que o procedimento de mutao recorre funo de criao de derivaes Criarvore, definida pelo Algoritmo 3.4.

Descrita linearmente, tem-se a mutao sobre o smbolo no-terminal <a> da sentena


+

S x1 . . . xn <a> z1 . . . zi x1 . . . xn y1 . . . ym z1 . . . zi
modificada para
+

S x1 . . . xn <a> z1 . . . zi x1 . . . xn a1 . . . am z1 . . . zi
De forma semelhante ao cruzamento, pode-se guiar a aplicao do operador de

3.3 Programao Gentica Gramatical PGG

69

Algoritmo 3.7 Mutao (, pmutmax )


Entrada: rvore de derivao , e a profundidade mxima de mutao pmut max
Retorno: rvore de derivao mudada 0
ponto SorteiaPonto();
0 Subrvore(ponto) + Criarvore ( NoTerminal(ponto), pmut max ) ;
retorne 0 ;
mutao sobre smbolos no-terminais especficos, sob uma certa probabilidade, como a
definida na Tabela 3.7. Esta variao chamada mutao seletiva, e representada pelo
smbolo . A alterao no Algoritmo 3.7 anloga ao do algoritmo de cruzamento e
dispensa comentrios.

Subconjunto admitido
= {<lgico>, <classe>}
= {<relacional>}

Probabilidade
10%
5%

Tabela 3.7: Exemplos de parmetros para a mutao seletiva sob a gramtica G iris .

3.3.2.6

Reproduo: Insero dos Novos Indivduos

O mtodo de insero tratado da mesma forma que na programao gentica convencional. Basicamente, dependendo do modelo, ou a populao totalmente recriada
e substitui a anterior (geracional) ou os novos indivduos so inseridos juntamente com
outros da gerao anterior (steady-state).

3.3.3 Detalhes de Implementao


3.3.3.1

Gramtica

vantajoso manter a definio da gramtica desacoplada do sistema, possibilitandose assim modific-la sem a necessidade da recompilao do programa. Contudo, alguns
aspectos devem ser respeitados
qualquer smbolo no-terminal das produes, obrigatoriamente, em algum caminho, leva a um smbolo terminal;

3.3 Programao Gentica Gramatical PGG

70

todo smbolo terminal necessariamente possui uma ligao funcional, que fornecelhe a capacidade de execuo.

3.3.3.2

Otimizao da Execuo da rvore

Na esfera da computao evolucionria, tem-se como maior gargalo, em termos de


processamento, o estgio de avaliao de um indivduo. Na programao gentica este
fator ainda mais evidente, pois geralmente uma avaliao composta de numerosas
execues de um programa. Portanto, todo o esforo de otimizao direcionado execuo valioso e pode ser crucial para a viabilidade do sistema 21 .
Na PGG, um indivduo guarda em sua rvore de derivao tanto informaes relativas
aos smbolos no-terminais quanto aos terminais. Sabe-se que na etapa de execuo os
smbolos no-terminais so prescindveis. A execuo de um programa, considerandose o modelo atual de representao, requer o percurso da raiz at os ns folhas (terminais), visitando-se inutilmente os ns referente aos no-terminais. Este custo aparentemente insignificativo torna-se considervel quando reflete-se sobre a repetividade da tarefa. Estima-se que nmero de smbolos no-terminais em uma rvore de derivao bem
superior ao nmero de terminais (vide exemplos da Giris ). Ademais, o cmputo de acesso
a um n pode ser mais caro que o prprio cmputo de uma funo, por exemplo, relacional. Portanto, interessante segmentar a rvore de derivao em duas inter-relacionadas,
a rvore de smbolos no-terminais e a de smbolos terminais. A Figura 3.12 mostra como
pode ser esta representao segmentada. Esta representao segmentada introduz um pequeno acrscimo no tamanho do objeto rvore, necessrio para acomodar os apontadores (ligaes) especficos da rvore de smbolos terminais. Todavia, este adicional pode
ser desprezado. Um outro ponto que esta nova estrutura exige um tratamento de implementao mais cuidadoso, pois o gerenciamento da rvore segmentada mais complexo.
Isto , toda modificao sobre o indivduo tem que agir de forma a preservar a forma da
rvore segmentada, isto inclui a criao e aplicao dos operadores genticos.

21 O

nmero de execues (interpretaes da rvore de derivao) pode ser calculado aproximadamente


como o nmero de geraes tamanho da populao tamanho da amostra de dados (conjunto de treinamento).

3.4 Concluso

71

Figura 3.12: rvore de derivao segmentada.

3.4

Concluso

Em suma, este captulo descreveu a unio da programao gentica com a codificao por gramtica livre de contexto, bem como as adaptaes necessrias nos estgios
evolucionrios, tendo a PG convencional como base. Iniciou-se com a introduo do conceito geral de gramtica, para ento focar-se na GLC. Seguidamente, algumas propostas
de representao na PG foram revistas e levantados seus aspectos positivos e negativos.
Tambm comentou-se algumas questes relativas implementao, como a otimizao
do ncleo da avaliao.
Mostrou-se que a PGG fornece uma interface clara e exata de representao, permitindo que o processo evolutivo corra rigorosamente de acordo com a estrutura representativa do problema, seja pela distino dos dados ou pela utilizao de relaes estruturais
mais complexas.
Finalmente, a programao gentica gramatical um dos mdulos deste trabalho, e
trabalha em conjunto com o modelo co-evolutivo, o qual assunto do prximo captulo.

Captulo 4
Co-evoluo Amostra-Classificador
A co-evoluo inserida no contexto da computao serve para pelo menos dois propsitos: o melhor entendimento da natureza atravs da simulao de um modelo simplificado de co-evoluo, ou como inspirao para problemas outros, geralmente envolvendo
otimizao. Dentro do contexto deste trabalho, a co-evoluo utilizada na pretenso
egosta de trazer a inteligncia biolgica, construda durante milhes e milhes de anos,
para o universo computacional, que ainda engatinha.
Uma das caractersticas louvveis da co-evoluo poder, alm de enriquecer a resoluo de problemas j atendidos por tcnicas tradicionais, ampliar o domnio de aplicaes,
elevando a utilidade da computao evolucionria. Dentre esse grupo de novos problemas, esto aqueles que no lidam com referenciais absolutos de qualidade de soluo,
como a descoberta de estratgias de jogos.
O presente captulo elucida, sob a tica computacional, conceitos que tangem a coevoluo, destinando sua utilidade ao desenvolvimento de um sistema classificador de
amostras de dados. Inicia-se com a explicao e formalizao do termo co-evoluo,
discorrendo e categorizando os variados modelos co-evolutivos. Segue concentrando-se
na co-evoluo competitiva, citando e descrevendo importantes trabalhos desenvolvidos,
inclusive o mais influente nesta dissertao. Tambm se discute a aptido cumulativa,
que construda incrementalmente e se mostra promissora. Finalmente, detalha-se o
sistema co-evolutivo amostra-classificador, considerando-se a forma acabada, integrado
programao gentica gramatical.

4.1 Co-evoluo

4.1

73

Co-evoluo

A interao entre indivduos, cada qual afetando a probabilidade de sobrevivncia/reproduo de outros indivduos, um fato intrnseco na natureza, virtualmente afetando qualquer espcie [38] 1 . As interaes existem em variadas formas (como por
exemplo a competio por recursos naturais ou, a cooperao) e graus (a caa de um predador sobre a presa, bem como a refeio do peixe rmora obtida dos restos alimentares
do tubaro). Na linguagem biolgica, este fenmeno conhecido como simbiose 2 .
A seleo natural recproca de organismos em simbiose chamada de co-evoluo.
Em outras palavras, evoluem concomitantemente aqueles seres que de alguma forma so
interdependentes. Se o indivduo A afeta o sucesso de sobrevivncia e reproduo de B
(esto em simbiose), ento a evoluo de A implica em uma resposta co-evolutiva de B,
e vice-versa. A resposta co-evolutiva depende do tipo de relao envolvida entre os organismos 3 . Por exemplo [16], algumas famlias de aves, como o cuco, depositam seus ovos
em ninhos alheios a fim de terem seus ovos chocados por outras aves, poupando-se assim
preciosos recursos. Entretanto, este comportamento induz perdas ao hospedeiro, que estaria desperdiando esforos atravs do compartilhamento de recursos, tornando o processo
mais dispendioso e possivelmente comprometendo a sobrevivncia da prpria prole. Esta
tenso acaba criando uma corrida armamentista, onde o cuco tende a aperfeioar o mimetismo dos ovos, enquanto a ave parasitada forada a adquirir melhores habilidades
de discriminao de ovos. Os filhotes de cuco bem camuflados tendero a sobreviver e
conseqentemente passar seus genes de bons enganadores adiante. Por sua vez, as
aves hospedeiras com boa capacidade distintiva podero distribuir mais recursos prpria
prole, aumentando a expectativa de sobrevivncia destes, contribuindo assim para que os
genes perspicazes caminhem adiante.
Um outro exemplo de interao entre espcies a constituio do lquen 4 , como
resultado da associao entre algas e fungos. Neste modelo, de benefcio mtuo, a alga
realiza a fotossntese e cede ao fungo parte da matria orgnica sintetizada. O fungo, por
1 Teoricamente

possvel simular um sistema baseado na evoluo natural isento de inter-relao,


como no caso da evoluo artificial via forma cannica dos algoritmos genticos.
2 Apesar da tendncia atual de desuso, alguns autores ainda tratam a palavra simbiose no intuito de
caracterizar o que definido neste trabalho como mutualismo.
3 A Seo 4.1.2 descreve os tipos de co-evoluo.
4 O lquen um organismo vegetal composto, que vive em lugares inspitos, como rochas nuas, casca
de rvores, deserto e rtico.

4.1 Co-evoluo

74

sua vez, fornece proteo e cede-lhe tanto umidade como sais minerais.

4.1.1 Definio Formal


Para tornar o conceito biolgico de co-evoluo mais preciso e direcionado a este
trabalho, faz-se necessrio formalizar o conceito de simbiose e co-evoluo. Os conceitos
definidos aqui seguem os propostos por Morrison [38], e no necessariamente tem carter
unnime.
4.1.1.1

Simbiose

De Bary [17] foi o primeiro a cunhar a palavra simbiose na noo de convivncia entre animais de diferentes espcies, em contraposio ao termo previamente definido por
Van Beneden [53], cujo significado aproximava-se dos conceitos de mutualismo e comensalismo. Entretanto, o conceito de De Bary se restringe ocorrncia de simbiose entre
espcies, excluindo a relao simbitica entre indivduos. A Definio 4.1.1 amplia esta
viso e engloba interaes inter-individuais, abrangendo inclusive relaes de parentesco.
Definio 4.1.1 A simbiose definida como o relacionamento entre dois indivduos onde
a aptido 5 de um indivduo afeta diretamente a aptido do outro.
Entende-se por afeta diretamente as interaes indivduo-indivduo, onde no h
intermdio de terceiros, no importando ainda com que intensidade esta apresentada.
Um gnu est em simbiose com a vegetao de que se alimenta (e vice-versa), mas um
eventual predador (carnvoro) de gnus no simbionte com a vegetao que alimenta o
gnu, apesar de afet-la indiretamente 6 . Por outro lado, a definio de simbiose permite
tambm sua ocorrncia alm do relacionamento corpo-a-corpo. Por exemplo, pode-se
imaginar em um cenrio de escassez de recursos hdricos, um animal A se hidrata em
uma certa fonte, afetando diretamente a aptido do animal B, que posteriormente alcana
a mesma fonte. Neste caso, o animal A modifica o ambiente que repercute diretamente
em B, sem a mediao de outro indivduo, portanto, h simbiose.
5A

aptido de um indivduo referenciada neste contexto como a probabilidade/capacidade de sobrevivncia e reproduo.


6 Para efeitos didticos, foi desconsiderada uma possvel simbiose entre o predador e a vegetao, sem o
intermdio do gnu. Esta relao poderia ser simbitica se, por exemplo, o predador eventualmente ingerisse
vegetais para limpeza intestinal.

4.1 Co-evoluo

75

Ainda, a simbiose no exige interaes duradouras, podendo ser caracterizada mesmo


por encontros casuais. Um exemplo tpico o observado no contgio de humanos com
o vrus transmissor da caxumba (parotidite epidmica), que pode levar esterilidade. A
relao pode ser nica, no entanto lesa a capacidade de sobrevivncia e/ou reproduo,
por conseguinte de natureza simbitica.

4.1.1.2

Co-evoluo

Angeline e Pollack [4], no contexto dos algoritmos genticos, definem a co-evoluo 7


como o processo evolutivo em que a funo de aptido dos indivduos depende em algum
grau da populao. Todavia, esta concepo no engloba as relaes inter-populacionais.
A Definio 4.1.2 prov um conceito mais preciso, porm abrangente, valendo-se da noo de simbiose.

Definio 4.1.2 A co-evoluo intra-populacional ocorre quando parte de seus indivduos esto em simbiose entre si. A co-evoluo entre populaes ocorre quando indivduos de uma populao esto em simbiose com indivduos de outra.

Nota-se que a Definio 4.1.2 tambm prev a co-evoluo interna prpria populao, pelo fato da possvel existncia de simbiose entre seus membros. Por exemplo,
perfeitamente vivel imaginar situaes em que a relao entre indivduos da mesma
populao possa cada qual contribuir com sua sobrevivncia, afetando-se assim suas aptides. Seria portanto insensato tratar a evoluo desta populao sem considerar a interao entre seus indivduos.

4.1.2 Tipos de Co-evoluo


Como levantado anteriormente, as relaes simbiticas e por conseqncia a coevoluo podem se apresentar em variadas formas. Algumas destas interaes conseguem ser mutuamente benficas, enquanto outras beneficiam apenas uma parte sem detrimento da outra, bem como ainda relaes que envolvem algum tipo de disputa, havendo
conflito de interesses.
7 Os

autores referiam-se co-evoluo competitiva.

4.1 Co-evoluo
4.1.2.1

76

Notao Simblica e Representao Grfica

Aliados descrio textual dos tipos co-evolutivos, esto a notao por meio de smbolos e a representao grfica 8 . Ambos clarificam e ao mesmo tempo sintetizam o teor
de uma forma particular de co-evoluo.
Supondo que um indivduo A esteja em simbiose com o indivduo B, dependendo da
natureza da relao de convivncia de ambos, estas so representadas como:
A * B quando a aptido de A afeta diretamente a aptido de B.
+

A * B quando uma mudana na aptido de A afeta no mesmo sentido a aptido de

B. Isto , se a aptido de A aumenta, a de B tambm aumenta; se a aptido de A

diminui, diminui-se a aptido de B.

A * B quando uma mudana na aptido de A repercute inversamente na aptido

de B. Em outras palavras, se A tem sua aptido aumentada, B tem sua aptido

diminuda; se a aptido de A diminui, a aptido de B aumenta.


Graficamente, a simbiose representada por arcos orientados e sinalizados, onde os
sinais denotam o mesmo significado dos da representao simblica. A Figura 4.1 mostra
uma relao simbitica apresentada em forma de arcos.

Figura 4.1: Representao grfica da simbiose A * B e B * A.

4.1.2.2

Comensalismo

Neste tipo de co-evoluo, um organismo (comensal) se beneficia de outro (hospedeiro) sem que este seja prejudicado. Simbolicamente esta simbiose representada por
8 Tambm

conhecida como grfico de simbiose ou grfico simbitico.

4.1 Co-evoluo

77

Hospedeiro * Comensal. A Figura 4.2 mostra graficamente esta relao simbitica.


Nota-se que uma interao de fluxo nico, no havendo resposta do comensal 9 .

Figura 4.2: Comensalismo.

O exemplo citado inicialmente neste captulo, envolvendo os peixes tubaro e rmora,


um tipo de comensalismo. A rmora astuciosamente segue o tubaro em suas viagens
de caa, aproveitando-se dos restos alimentares deixados por ele. Uma mudana na aptido do tubaro, resultando em um maior poder de caa, afeta diretamente as chances de
sobrevivncia/reproduo da rmora. Se esta mudana positiva, a rmora ganha com
a maior abundncia de alimentos, melhorando assim sua aptido; caso contrrio, haver
uma menor oferta alimentcia, implicando em perdas para a rmora.
Duas subdivises do comensalismo podem ser destacadas:
Inquilinismo a associao em que um organismo procura abrigo em seu hospedeiro, sem prejudic-lo. Pode ser citada a relao entre o peixe-agulha e a holotria

(pepino-do-mar), onde o peixe-agulha abriga-se no interior do corpo da holotria,


saindo apenas para se alimentar.
Foresia ocorre quando um organismo transportado de carona pelo seu hospedeiro. Observa-se, por exemplo, o transporte de sementes por pssaros ou insetos.

4.1.2.3

Amensalismo

O amensalismo a forma de co-evoluo que se apresenta quando dois indivduos


interagem entre si, sendo que uma melhora na aptido do hospedeiro implica unilateralmente em prejuzo ao organismo amensal. No h retaliao por parte da vtima, ou
9 Este

tipo de relao conhecida como desprovida de retroalimentao (feedback).

4.1 Co-evoluo

78

seja, assim como o comensalismo, possui fluxo nico. Formalmente esta relao sim

bitica descrita por Hospedeiro * Amensal. O grfico simbitico apresentado pela


Figura 4.3.

Figura 4.3: Amensalismo.


Algumas algas planctnicas dinoflageladas, quando vivem em ambientes favorveis,
alcanam alta taxa populacional, liberando grandes quantidades de substncias txicas na
gua. Este fenmeno, tambm conhecido como mar vermelha, leva morte por intoxicao vrios seres aquticos. Um outro exemplo de amensalismo vem de certas espcies
de rvores que possuem substncia inibidoras em suas folhas, que quando caem no solo
impedem a germinao de sementes.
4.1.2.4

Mutualismo

A co-evoluo por mutualismo envolve relaes harmnicas onde os indivduos so


mutuamente beneficiados. basicamente uma troca de favores, ou poltica de boa vizinhana. Alguns autores consideram o mutualismo estritamente como uma associao
ntima, em que a sobrevivncia dos seres envolvidos no seria vivel se estes fossem divorciados. s relaes no dependentes os organismos vivem se separados chamam-na
de protocooperao ou mutualismo facultativo.
Descreve-se

simbiose

mutualista

por

Simbionte A * Simbionte B

Simbionte B * Simbionte A. O grfico de simbiose pode ser visualizado na Figura 4.4.


Percebe-se que o mutualismo possui um fluxo duplo, onde h realimentao. Considere o indivduo A em simbiose com B. Uma melhora na aptido de A repercute positivamente em B, que por sua vez retorna ao indivduo A (tambm positivamente), como um
reflexo 10 . O contrrio tambm verdico, uma baixa em A (ou B) ecoa negativamente
10 Naturalmente,

a intensidade do impacto da realimentao no obrigatoriamente uma, tal que seria

4.1 Co-evoluo

79

Figura 4.4: Mutualismo.

em B (ou A), e ento realimenta A (ou B).


O pssaro-palito e o crocodilo africano so exemplo de espcies em mutualismo

11 .

O pssaro-palito eventualmente penetra na boca do crocodilo alimentando-se de restos


alimentares e vermes existentes na boca do rptil. Por outro lado, o crocodilo livra-se
de organismos nocivos, como os vermes e parasitas. Uma maior acuidade do pssaro na
captao de alimentos (fortemente ligado com a aptido, adaptabilidade) faz de alguma
forma com que os crocodilos, isentos de parasitas, tenham melhor disposio para a caa,
e conseqentemente obtm mais refeies ou parasitas/vermes no ponto de vista do
pssaro-palito.

4.1.2.5

Predatismo

Tambm conhecido como parasitismo (parasita-hospedeiro)

12 ,

este modelo co-

evolutivo aplica-se nas relaes simbiticas em que existam prticas predatrias. Em


outras palavras, o organismo predador extrai vantagens da presa, enquanto esta sofre detrimentos.

Representa-se simbolicamente por Predador * Presa e Presa * Predador. A Figura 4.5 mostra graficamente o fluxo de interao entre predador e presa.
Por tratar-se de relaes freqentes na natureza (no nvel macroscpico), so inmecapaz de provocar um crculo vicioso de respostas e contra-respostas.
11 O exemplo encaixa-se melhor como mutualismo facultativo (protocooperao).
12 Alguns autores consideram o predatismo e parasitismo como formas distintas de simbiose. A diferena
principal reside no fato de que o predatismo envolve o sacrifcio da presa, enquanto que no parasitismo o
parasita sobrevive s custas do hospedeiro, sendo este apenas haurido (mesmo que eventualmente custe-lhe
a vida). Difere-se do predatismo tambm por: maior especializao, maior taxa de reproduo e habitat no
hospedeiro.

4.1 Co-evoluo

80

Figura 4.5: Predatismo.

ros os casos simbiticos que se encaixam no predatismo. Seja o exemplo da famlia de


predadores felinos e suas presas comum, os antlopes. Se o nmero de predadores felinos
aumenta, devido a um acrscimo na sua aptido, os antlopes tendem a ser mais caados, e
portanto suas chances de sobrevivncia e reproduo sero prejudicadas. Do contrrio, se
por algum motivo os felinos tenderem extino (baixa aptido, pouca adaptabilidade),
os antlopes inclinariam-se a prosperar (acrscimo na aptido). Partindo-se da tica das
presas, se estas baixam suas aptides, igualmente tenderiam os predadores felinos, pois a
oferta alimentcia estaria comprometida. Ainda, o sucesso populacional dos antlopes
significando boa capacidade de sobrevivncia e reproduo disponibilizaria um nmero
maior de refeies aos felinos, com conseqente melhora na aptido destes.
A co-evoluo atua de maneira a tornar predador e presa os mais hbeis possveis,
porm com objetivos opostos. Ao mesmo tempo em que a seleo natural favorece os
felinos mais geis, com viso mais aguada, enfim, melhores caadores, so selecionados
tambm os antlopes com maior poder de fuga, seja os indivduos com maior capacidade
perceptiva, velozes, etc.
O conceito de predatismo no preciso, podendo oscilar e se confundir com a coevoluo competitiva (vide 4.1.2.6). Seguindo o exemplo da simbiose entre felinos e antlopes, plausvel imaginar que um acrscimo na capacidade de reproduo/sobrevivncia
dos antlopes seja em decorrncia da evoluo de qualidades de escape, isto , presas menos vulnerveis aos felinos. Portanto, espera-se que a aptido dos predadores baixe, em
funo da menor disponibilidade alimentcia. Isto sugere que o fluxo presa-predador seja

Presa * Predador, anlogo forma competitiva.

4.1 Co-evoluo
4.1.2.6

81

Competio

A competio se apresenta quando indivduos pleiteiam recursos, geralmente limitados. Os recursos podem ser alimentao, gua, territrio, direito de acasalamento, entre
outros. Isto significa que quanto maior a aptido de um competidor, obrigatoriamente
ser menor a aptido do outro, e vice-versa. Em outras palavras, quanto mais recursos
um competidor obtm, menos restar ao concorrente, afetando assim suas chances de
sobrevivncia e reproduo.
A

relao

simbitica

de

competio

portanto,

Competidor A * Competidor B e Competidor B * Competidor A.

descrita

por

Pode-se tam-

bm exibi-la graficamente, como na Figura 4.6.

Figura 4.6: Competio.

A competio tende a se agravar quando espcies de animais ou plantas tm necessidades semelhantes e vivem sob recursos limitados. Neste caso a disputa torna-se freqente e
acirrada, obrigando muitas vezes espcies em desvantagem competitiva a migrarem para
outros nichos ecolgicos.
Os exemplos de competio na natureza tambm so abundantes, seja intra-especfica
(como disputas pelo harm) ou interespecfica (por territrio, alimentao, etc.). Entre
espcies, tem-se tambm, por exemplo, as eternas batalhas entre felinos e hienas, que
disputam, entre outras coisas, presas e territrios. Ou ainda, a competio por pastagens
entre o gado e gafanhotos. Na forma intra-especfica, a emigrao forada dos lmingues 13 em resposta superpopulao um outro exemplo de competio.
Percebe-se que a co-evoluo competitiva impe uma alta presso de seleo baseada
13 Designao

de pequenos roedores dos gneros Lemmus e Dicrostonyx, das regies rticas, que se alimentam de cascas de rvores, musgos, lquens e razes. A espcie europia L. lemmus conhecida pela
migrao em massa, e que, quando chega ao mar, nele se precipita em grande nmero.

4.1 Co-evoluo

82

em quo competitivo o cenrio de disputa. A competio conta com graduaes de intensidades diferentes, variando da mais leve e espordica disputa at constantes e mortais
confrontos. Em cada uma destas, a natureza recompensa aquela parte melhor adaptada
para angariar recursos, sejam quais forem. Esta presso sobre os competidores fora-os
a desenvolverem novos e melhores arsenais a fim de vencerem a concorrncia. Se por
exemplo competidores de uma espcie A evoluem um tipo de arma eficaz, certamente
estaro em vantagem sobre a espcie concorrente B, trazendo detrimento aptido desta.
Todavia, este fenmeno acresce a presso de seleo em B, que forosamente privilegia
nesta espcie aqueles indivduos que de alguma forma possam fazer frente ao novo ferramental da espcie A, com o risco de extino se nenhuma contra-arma de sucesso for
proposta14 .
A noo de co-evoluo por competio extrapola o universo natural e torna-se aplicvel em diversos outros domnios, especialmente nas relaes humanas. por exemplo
o caso notrio e conhecido da chamada corrida armamentista, um termo cunhado durante a Guerra Fria, que descrevia a co-evoluo armamentista entre os Estados Unidos e
a Unio Sovitica. Cada uma das naes objetivava ter em mos o maior poderio blico,
visando a dominao em um possvel confronto militar. Para tanto, alm do recrutamento
interno para pesquisa e desenvolvimento de novas armas de destruio, as superpotncias
tambm investiam em tecnologia de espionagem 15 , possibilitando assim conhecer o potencial do inimigo e ento focalizar-se em meios de anul-lo ou super-lo. O paralelo com
a natureza biolgica direto. A soberania (aptido) de uma das naes inversamente
proporcional ao poder blico de outra.
Do ponto de vista da computao evolucionria, a co-evoluo por competio naturalmente uma ferramenta atraente. A presso evolucionria criada pelo conflito de interesses tende a proporcionar indivduos melhor adaptados, indivduos capazes de realizar
progressivamente melhor determinadas tarefas. A seo seguinte descreve os trabalhos
em computao evolucionria inspirados no modelo competitivo de co-evoluo.
14 Em

populaes em co-evoluo contnua ao longo do tempo, incomum o extermnio total de uma


populao em funo de um aperfeioamento na capacidade de competio de outra. Explica-se pela baixa
probabilidade de evoluir em uma das populaes meios infalveis de captao de recursos, de maneira que
a populao concorrente no tenha tempo hbil de evoluir uma contra resposta. Entretanto, eminente o
risco de extino em um possvel encontro de populaes com interesses semelhantes e que vivem afastadas
fisicamente.
15 Como no houve de fato o confronto fsico entre as superpotncias durante a Guerra Fria, a espionagem era o meio de se conhecer (medir) a fora armamentista da nao inimiga. Na natureza encontram-se
exemplos de competies sem o envolvimento de contato fsico. Estas batalhas muitas vezes se do por
gestos e exibicionismo.

4.2 Trabalhos em Co-evoluo Competitiva

4.2

83

Trabalhos em Co-evoluo Competitiva

A despeito de seu potencial virtuoso como ferramenta de otimizao, a co-evoluo


no tem, historicamente, sido bem explorada [4, 38]. Contudo, dentre as formas de coevoluo usadas na literatura de computao evolucionria, a mais largamente empregada
em problemas de otimizao a competitiva

16 .

Seu sucesso pode ter origem no am-

plo leque de potenciais aplicaes, conceito direto, e pela sua exmia capacidade como
instrumento de otimizao.
Esta seo segue com a descrio de alguns trabalhos em computao evolucionria
considerados cones no ramo de co-evoluo por competio.

4.2.1 O Dilema do Prisioneiro Iterado


Um dos trabalhos pioneiros na rea foi desenvolvido por Axelrod [6] em 1987. O
objetivo de Axelrod era descobrir (evoluir) estratgias de comportamento diante do jogo
"Dilema do Prisioneiro Iterado", ou simplesmente DPI 17 .
O DPI a verso iterativa do clssico Dilema do Prisioneiro (DP). No DP, dois homens
so presos acusados de um crime em conjunto. No entanto, a polcia no tem provas suficientes sobre a real autoria e participao de cada um dos presos. Diante disso, os homens
so isolados de modo que no podem se dialogar e postos sob interrogatrio. Durante
este processo, as autoridades policiais questionam cada suspeito sobre sua participao.
Os presos so limitados a dois tipos de respostas: acusar o companheiro ou permanecer
em silncio. Aps serem interrogados, as respostas dos dois homens so confrontadas,
cada combinao resultando em apropriadas penas de deteno. Se um suspeito acusa
seu companheiro, e este por sua vez fica em silncio, o delator absolvido, enquanto o
acusado recebe uma pena de dez anos de priso. Caso os dois permaneam em silncio,
recebem igualmente uma pena de seis meses. Se porventura ambos os homens mutuamente se denunciarem, so condenados a seis anos. A Tabela 4.1 sintetiza as penalidades
para cada combinao de comportamento.
16 No entanto,

bons resultados tm sido obtidos com outros modelos co-evolutivos. De Jong e Potter [18],
por exemplo, reportaram sucesso na utilizao de formas cooperativas de co-evoluo.
17 Do ingls Iterated Prisoners Dilemma IPD. O dilema do prisioneiro um problema clssico da
teoria dos jogos, formulado pela primeira vez pelo matemtico Albert W. Tucker, que tem interessantes
repercusses na filosofia poltica e mesmo na cincia poltica.

4.2 Trabalhos em Co-evoluo Competitiva

B em silncio
B acusa A

A em silncio
A e B obtm 6 meses
B solto; A obtm 10 anos

84
A acusa B
B obtm 10 anos; A solto
A e B obtm 6 anos

Tabela 4.1: Penalidades no jogo Dilema do Prisioneiro.

O objetivo de cada suspeito , naturalmente, minimizar sua pena de deteno. Entretanto, a condenao depende de como se comporta seu companheiro. Tem-se ento
criado o dilema: deveria um prisioneiro cooperar (permanecer-se em silncio) esperando
por uma pena mais branda ou acusar seu parceiro, na esperana de que este omita-se e
arque solitariamente com a condenao mxima correndo o risco entretanto de ambos
serem egostas e sofrerem com uma deteno maior?
No Dilema do Prisioneiro Iterado so realizadas repetidas rodadas de interrogatrios,
objetivando-se portanto, a minimizao da soma total das penalidades. Ainda, cada suspeito tem conhecimento do comportamento anterior de seu comparsa memria. Isto
permite o desenvolvimento de estratgias complexas, baseando-se no histrico de respostas do companheiro.
Em 1984, Axelrod, no seu livro intitulado The Evolution of Cooperation [5], promoveu uma competio de estratgias para o DPI, enviadas por especialistas da rea de teoria
dos jogos. Cada estratgia jogava contra todas as outras, em um nmero determinado de
iteraes mas no de conhecimento dos estrategistas. Curiosamente, a estratgia vencedora era bastante simples, guiada pela reciprocidade: iniciava-se permanecendo em
silncio, e nas demais rodadas apenas repetia o comportamento do oponente. Esta estratgia denominada Tit-For-Tat. Dentre algumas caractersticas da TFT, est o fato dela
ser bondosa

18

(nunca acusa sem ser antes acusada), tem memria curta (apenas uma

iterao) e retalia sempre quando o comparsa denunciar.


Em The Evolution of Strategies in the Iterated Prisoners Dilemma

19

[6], Axelrod

aplica a co-evoluo competitiva, atravs dos algoritmos genticos, objetivando evoluir


estratgias para o jogo DPI. Cada indivduo da populao representa uma estratgia, e
so avaliados por quo bem jogam contra outros indivduos da populao, sendo a avali18 Nesta competio, as oito estratgias mais bem colocadas eram do tipo bondosa.

Uma das concluses


interessantes do trabalho de Axelrod que alm das questes morais de cooperao, tambm vantajoso
cooperar sob a tica egosta. Esta cooperao, todavia, obedece ao padro pagar na mesma moeda: se o
parceiro no coopera, castigado, sendo retaliado da prxima vez.
19 A Evoluo de Estratgias no Dilema do Prisioneiro Iterado.

4.2 Trabalhos em Co-evoluo Competitiva

85

ao relativa, variando em funo da maestria dos demais membros. Axelrod reportou a


convergncia para estratgias cooperativas (bondosas), ao estilo Tic-For-Tat, sabidamente
timas tticas de jogo.
Salvo o fato deste problema pertencer a uma classe de problemas bem estudados,
onde so conhecidas solues referenciais (timas ou quase timas), o seu tratamento seria inadequado usando-se ferramentas convencionais. Este grupo abrange os mtodos de
referencial esttico (como o prprio algoritmo gentico cannico), em que a medio de
adequabilidade de uma soluo candidata fixa e portanto impossvel de ser determinada quando no se conhece o ponto timo. A co-evoluo preenche esta deficincia
medida que ela por si s cria dinamicamente o referencial timo, que revisto (geralmente
de forma montona) de acordo com a qualidade das solues candidatas.
Percebe-se, contudo, que por adotar um esquema de confrontos onde a cada gerao
toda estratgia da populao testada contra todas as outras se a populao de tamanho n, n2 ser o nmero de competies, este modelo pode no ser escalvel para
domnios mais complexos, onde empregam-se populaes maiores e/ou o custo da competio caro. A Figura 4.7 transmite a noo grfica deste tipo de avaliao, conhecida
tambm por competio completa. Na figura, os ns compreendem os indivduos da populao, enquanto as linhas denotam os confrontos.

Figura 4.7: Esquema de avaliao por competio completa.

4.2.2 Redes de Ordenao


Hillis [27], tambm aplicou a co-evoluo por competio em um problema bem estudado, as redes de ordenao com 16 dimenses.

4.2 Trabalhos em Co-evoluo Competitiva

86

Uma rede de ordenao, como o nome indica, efetua a tarefa de ordenao de um


determinado nmero de entradas, atravs de uma rede que opera seqencialmente comparaes e trocas, como a mostrada graficamente na Figura 4.8, um exemplo com 16
dimenses. Inicialmente, um conjunto no ordenado de nmeros

20

disposto como en-

trada da rede. Nos pontos onde existem ligaes verticais, o i-simo elemento comutado
com o j-simo (i < j) somente se o valor do elemento da posio j for menor do que o
elemento em i.
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1

Figura 4.8: Exemplo de uma rede de ordenao.

O problema redes de ordenao compreende dois desafios: 1) definio de um padro


correto de ordenao, isto , ligaes verticais dispostas de tal forma e nmero a produzirem uma sada correta (todas as entradas devidamente arranjadas); 2) minimizar o nmero
de comparaes-trocas (ligaes), visando a satisfao de domnios onde solues parcimoniosas so fundamentais (como circuitos eletrnicos).
Sabe-se que a soluo mais econmica at ento conhecida, para a rede de ordenao
de 16 entradas, compreende um padro com 60 comparaes/trocas, e foi descoberta por
Green [31] no ano de 1969.
Hillis codificou as solues candidatas (redes de ordenao) de modo que o espao
de busca definido englobasse redes que no ordenassem corretamente todas as entradas.
Hillis argumentou esta abordagem
20 Nmeros

21

pela facilidade de se aplicar operadores genticos

ou qualquer entidade em que o conceito de ordenao exista, como palavras ou letras do


alfabeto.
21 Alternativamente, poderia usar-se solues candidatas que sempre fossem funcionais (ordenao completa), e ento procurar por redes com padres minimalistas.

4.2 Trabalhos em Co-evoluo Competitiva


como mutao e/ou combinao

22

87

sem criar solues invlidas, e ainda, pela conveni-

ncia de se ter medies parciais de qualidade (baseadas no nmero de casos ordenados


corretamente). O objetivo era, ento, encontrar redes pequenas, primando-se por redes
com altos ndices de sucesso na ordenao.
Os experimentos foram realizados tanto por evoluo simples (objetivo fixo) como
por co-evoluo competitiva (objetivo dinmico).
No primeiro mtodo, Hillis empregou entradas binrias 23 e verificava-se a discrepncia da ordenao realizada por uma rede candidata com os valores esperados (corretamente ordenados). O melhor resultado obtido pela abordagem cannica foi uma rede de
ordenao com 65 ligaes 5 comparaes/trocas a mais que a descoberta por Green.
No intuito de suprir as deficincias do mtodo clssico, como a perda de diversidade (culminando em timo local) e avaliao lenta (216 testes para cada candidato),
Hillis utilizou a abordagem por co-evoluo competitiva. Alm da populao de redes
de ordenao, uma segunda populao contendo casos de testes (entradas) foi includa no
processo 24 . As duas populaes funcionam ao estilo competidor-competidor, cada qual
evoluindo para superar a outra. Os membros das duas populaes so confrontados, ao
modo apresentado pela Figura 4.9, em que uma rede emparelhada com um elemento
da populao de testes. Enquanto as redes de ordenao so avaliadas positivamente por
quo bem ordenam as entradas (indivduos da segunda populao), os casos de testes so
avaliados de acordo com a habilidade de reprovar as redes de ordenao. Os melhores
indivduos da populao de redes tendem a reproduzir-se com mais freqncia, inserindo
na populao boas redes ordenadoras, induzindo concomitantemente a segunda populao a desenvolver testes mais complicados. Dito de outro modo, os casos de testes mais
difceis tendem a se espalhar e forar as redes de ordenao a adquirirem atributos para
tambm ordenarem as entradas mais rduas.
Usando o modelo competitivo, Hillis obteve uma rede de ordenao com 61 comparaes/trocas, com apenas uma ligao a mais do que a soluo tima de Green, porm
expressivamente superior ao resultado obtido pela abordagem tradicional. No obstante,
22 Basicamente,

a mutao foi definida como a troca de ligaes, enquanto a recombinao comutava


parte de uma rede de ordenao com parte de outra.
23 Uma rede de ordenao capaz de ordenar corretamente todas as combinaes de 0 e 1 conseqentemente ordena qualquer outra seqncia. Portanto, uma rede com n entradas pode ser avaliada com 2 n
testes.
24 Cada indivduo da populao de testes traz entre 10 e 20 conjuntos de entrada.

4.2 Trabalhos em Co-evoluo Competitiva

88

Figura 4.9: Esquema de confronto tipo parelho.

relatou ainda a acelerao considervel do processo de evoluo.


Observa-se no mtodo por emparelhamento a economia de avaliaes, notoriamente
quando comparado com o modelo de competio de Axelrod. Supondo n como o nmero
de indivduos das duas populaes (n/2 + n/2), so realizados n/2 encontros por gerao.

4.2.3 Aptido via Torneio


Angeline e Pollack [4] usam um modelo co-evolutivo de nica populao onde a competio promovida atravs de torneios, atribuindo-se assim aptides proporcionais ao
ranking dos indivduos. Esta espcie de olimpadas realizada a cada gerao. Inicialmente, todos os indivduos esto aptos a competir, sendo escolhidos aleatoriamente, em
torneios de dois membros por vez. Os vencedores seguem adiante, passando para a prxima fase da competio, enquanto os perdedores cessam suas participaes e so classificados igualmente pelo nvel que alcanaram, isto , indivduos com a mesma colocao
tero probabilidades iguais de seleo para recombinao. O processo de confrontos se
repete, restritos, porm, aos vencedores da etapa anterior. Finalmente, a competio
concluda quando no h mais desafiantes, restando apenas o vencedor geral que naturalmente ter a melhor aptido e conseqente maior probabilidade de reproduo. A
Figura 4.10 ilustra este procedimento, cada seqncia horizontal representando um estgio e as setas indicando os vencedores.
O custo de avaliao por gerao para uma populao de tamanho n dado por:
dlog2 (n)e l

i=1

nm
= n1
2i

que ainda um valor superior ao do modelo de Hillis, no entanto, linear e consideravel-

4.2 Trabalhos em Co-evoluo Competitiva

89

Figura 4.10: Esquema do torneio entre membros da populao.

mente inferior ao do mtodo de Axelrod.


Os autores aplicaram este modelo de co-evoluo competitiva no clssico e conhecido
jogo-da-velha, usando uma variao co-evolutiva da programao gentica. Comparou-se
ainda com os resultados obtidos pela implementao tpica da programao gentica.
O experimento contou com trs estratgias referenciais de jogadas, a saber: aleatria,
escolhe ao acaso qualquer posio vlida no tabuleiro; quase tima, permite a vitria
do oponente somente se este conseguir alcanar um estado em que haja duas posies
que garantiriam a vitria, ou seja, ganharia na prxima rodada; tima no admite que o
oponente vena, mas pode ceder o empate.
Conhecido os experts para o problema em questo, pde-se praticar o experimento
no co-evolucionrio, que foi realizado baseado nas trs estratgias de referncia. Cada
uma delas fornece uma diferente funo de aptido onde os indivduos so avaliados
pela desenvoltura nos jogos, implicando em trs sub-experimentos sobre a evoluo
cannica. Evoluiu-se, assim, trs estratgias, relativas aos distintos tutores.
No tocante verso co-evolucionria competitiva, os autores executaram como descrito no incio desta seo, delegando ao prprio processo evolutivo o ajuste do referencial.
Quanto postos para competir

25

contra as estratgias aleatria, quase tima e tima,

os candidatos oriundos do processo no co-evolucionrio saram-se razoavelmente contra


as duas primeiras (salvo o confronto entre o indivduo evoludo pela estratgia aleatria,
que foi derrotado em todos os jogos contra o quase timo), mas foram sumariamente
25 Foram

realizadas 2000 competies para cada estratgia evoluda.

4.2 Trabalhos em Co-evoluo Competitiva

90

vencidos contra a estratgia tima, no conseguindo sequer empatar.


Diferentemente, o mtodo co-evolutivo mostrou-se capaz de criar estratgias mais refinadas, desenvolvendo-se bem contra as referncias aleatria e quase tima, empatando
ainda em cerca de 25% das jogadas contra a estratgia tima. Apesar de ter sido derrotada
em 75% dos casos 26 , os resultados foram bem mais convincentes do que os apresentados
do mtodo tradicional, alm disso, o tempo de cmputo foi significativamente menor.

4.2.4 Co-evoluo de Redes Neurais Classificadoras


Dentre as produes expostas neste captulo, esta sem dvida a maior contribuinte
para a confeco da presente dissertao.
Paredis, no trabalho intitulado Steps Towards Co-Evolutionary Classification Neural
Networks [43], desenvolve um sistema hbrido e aplica-o no domnio de classificao
(supervisionada). O autor une as redes neurais aos algoritmos genticos co-evolucionrios
tipo steady-state

27 ,

focando-se na soma das caractersticas eminentes de cada tcnica;

os AGs como bom otimizadores e as RNs como habilidosas na tarefa de associao


de padres. Desde modo, o algoritmo gentico ajusta os pesos das conexes das redes
neurais, enquanto estas se encarregam de classificar as entradas. Paredis tambm elaborou
um tipo de aptido memria, que recorda e considera no clculo geral o registro
de avaliaes passadas de um determinado indivduo. Este conceito ser elucidado no
decorrer desta seo.
4.2.4.1

Modelo de Co-evoluo

Inspirado na abordagem desenvolvida por Hillis [27], Paredis serviu-se de duas populaes, a primeira composta por redes neurais e a segunda de padres de entrada, em que
cada indivduo constitui uma amostra (ponto). Porm, de fato, esta ltima no envolve
uma real populao, no sentido de que no existe modificao no material gentico de
seus indivduos, isto , no h recombinao ou mutao. A explicao trivial, dados
em classificao (como os deste trabalho) so pontos fixos e imutveis, perdem o sentido
se modificados.
26 Os autores acreditam que a linguagem genrica usada para a descrio das estratgias tenha contribudo

para uma maior dificuldade de aprendizado, e portanto, baixo ndice de vitrias.


27 Vide Captulo 2.

4.2 Trabalhos em Co-evoluo Competitiva

91

Apesar de no haver alterao gentica na populao de amostras, esta prov uma


presso contrria (co-evolutiva) populao de redes neurais, medida que os pontos
mais dificilmente classificados tendem a ser mais ofertados para disputar com as redes.
Os confrontos do-se emparelhando dois indivduos por vez, um representante das redes classificadoras e outro dos dados de entrada. Anlogo ao mtodo criado por Hillis,
uma rede neural (encapsulada como um indivduo) recebe uma nota proporcional sua
capacidade de classificao, ao passo que os padres de entrada so premiados quando
induzem classificao incorreta. A tenso surge quando as melhores redes neurais so
mais freqentemente escolhidas para competir contra, justamente, as mais difceis amostras. Basicamente, quanto mais um indivduo se destaca como melhor adaptado, mais ter
que provar seu valor, do contrrio derrubado.
A competio redes neurais versus padres de entrada pode ser elucidada graficamente, como disposto na Figura 4.11. Neste esquema, os crculos esquerda representam
a populao de redes classificadoras, enquanto os da direita as de amostras de dados. Ambas esto ordenadas, com os indivduos mais adaptados no topo. As ligaes representam
os encontros entre os indivduos da populao de classificadores e os membros da populao de pontos de entrada. Sutilmente, nota-se que os indivduos mais ao topo tendem a

Figura 4.11: Esquema grfico da competio entre redes neurais e amostras.

passar por maior provao (mais encontros), enquanto os menos adaptados so pouco convocados, devido condio comprovada de baixa qualidade, portanto irrelevante para a
evoluo. Este processo interessante e demonstra um ponto importante: a co-evoluo
direciona a busca para os testes mais difceis, os exemplos no resolvidos, poupando-se
assim recursos computacionais que certamente seriam desperdiados na tentativa repetida

4.2 Trabalhos em Co-evoluo Competitiva

92

de resolver casos fceis.

4.2.4.2

Aptido Cumulativa

Em vez da tradicional aptido atribuda ao indivduo aps sua avaliao, Paredis desenvolveu um sistema cumulativo, originado no conceito de energia, fruto de um trabalho prvio bem sucedido, de prpria autoria [42]. Neste modelo, uma rede neural representando um animal mapeia um ambiente simulado em aes motoras, nos mesmos
moldes do mapeamento entre uma amostra e sua respectiva classe. Este animal est em
constante interao com o ambiente, acumulando energia de acordo com sua capacidade de, por exemplo, alimentar-se. Por outro lado, o animal pode sofrer baixas em sua
energia, seja por algum ferimento ou incapacidade de angariar recursos. Um detalhe interessante que, assim como na computao evolucionria, o animal tem sua probabilidade
de reproduo proporcional sua quantidade de energia; isto indica uma animadora similaridade com o modelo evolucionrio e, portanto, passvel de ser adaptado.
No contexto dos algoritmos genticos, a aptido cumulativa funciona da seguinte maneira. Inicialmente, um nmero finito, tambm conhecido como ciclo, determinando a
memria cumulativa definido, possibilitando que a aptido do indivduo concentre-se
nos resultados dos encontros mais recentes 28 . No existe uma forma determinstica para
se definir o valor timo do ciclo (que pode depender do variveis outras do domnio em
questo), entretanto, Paredis, apesar de no revelar o meio, parece ter encontrado um nmero mgico 29 , um ciclo de tamanho 20. Dessa forma, a aptido dos indivduos, isto ,
a grandeza usada na seleo natural, calculada pela soma dos valores acumulados nos
ltimos 20 encontros.
Em termos biolgicos, a aptido cumulativa, em comparao com a aptido nica e
invarivel, promove um paralelo mais fiel, quando permite ao objeto em evoluo uma
avaliao freqente e dinmica. o que se nota na natureza, onde organismos esto sempre postos prova pelo ambiente, e suas chances de reproduo e sobrevivncia esto
diretamente ligadas ao histrico de situaes pelas quais o organismo em questo enfren28 Poder-se-ia

tambm definir uma funo (linear ou exponencial) que decasse ao longo do tempo,
tornando-se assim os resultados de confrontos antigos com menor peso na soma total da aptido do indivduo.
29 Na gria da programao computacional, o nmero mgico uma constante especial (numrica) designada para algum propsito. O seu uso geralmente indica m estilo de programao, pois torna o cdigo de
difcil leitura, entendimento e manuteno.

4.2 Trabalhos em Co-evoluo Competitiva

93

tou que obviamente tambm um reflexo da condio gentica.


4.2.4.3

Pseudo Algoritmo

O cerne do processo co-evolucionrio de Paredis mostrado no Algoritmo 4.1, onde


se observa uma iterao. Assume-se que ambas as populaes esto inicializadas e com
os indivduos avaliados. Na primeira avaliao, cada membro da populao de classificadores avaliado contra 20 (valor do ciclo) exemplos aleatrios do conjunto de treinamento, automaticamente atualizando-se tambm as aptides das amostras. Espera-se
tambm que para a operao de seleo, as populaes estejam previamente ordenadas,
favorecendo-se assim a escolha de indivduos mais aptos. As funes acumule vitria em
e acumule derrota em inserem o registro de vitria (um) e derrota (zero), respectivamente,
no histrico de encontros dos membros em competio. Obviamente, o valor mais antigo
automaticamente descartado, como em uma fila o primeiro a entrar o primeiro a sair
(FIFO). Logo aps a gerao dos filhos, por no possurem qualquer indicao prvia de
aptido, so avaliados confrontando-se (ciclo vezes) com amostras escolhidas ao acaso.
Algoritmo 4.1 Pseudo-algoritmo co-evolucionrio com aptido cumulativa.
enquanto ciclo estiver incompleto faa
competidor A selecione rede neural;
competidor B selecione amostra;
promova competio entre A e B;
se A classifica B ento
acumule vitria em A;
acumule derrota em B;
seno
acumule derrota em A;
acumule vitria em B;
fim se
fim enquanto
P1 selecione rede neural para acasalamento;
P2 selecione rede neural para acasalamento;
cruze P1 e P2 e gere F1 e F2 ;
aplique operadores genticos em F1 e F2 ;
avalie F1 e F2 e insira-os na populao de redes;
Na reproduo steady-state, embora no haja o conceito propriamente dito de gerao,
entende-se que uma gerao foi completada quando se insere na populao um nmero
de descendentes igual ao tamanho da populao. Em outras palavras se a populao contm n indivduos, aps serem criados (e inseridos) n filhos, dito que a gerao atual

4.2 Trabalhos em Co-evoluo Competitiva

94

foi concluda. De posse disto, uma gerao steady-state, co-evolucionria e com aptido cumulativa, atuando sobre uma populao de tamanho n, contabiliza tamanho ciclo .n
confrontos. Supondo tamanhociclo como 20, tem-se 20.n avaliaes. Ainda que configure mais iteraes que o trabalho de Hillis ou Angeline e Pollack, preciso salientar
que no escopo do problema de classificao, esta avaliao representa o encontro entre o
classificador e apenas uma amostra.
4.2.4.4

Experimentos

Paredis realizou experimentos onde a tarefa evoluir redes neurais com habilidades
para classificar (mapear) pontos pertencentes a quatro classes, espalhados no domnio
[1, 1] [1, 1], como na Figura 4.12.

Figura 4.12: Domnio [1, 1] [1, 1] contendo quatro classes.


A Figura 4.12 mostra a geometria das quatro classes, sendo a classe A consistindo
de uma regio circular convexa; B a unio de duas regies disjuntas; C uma regio no
convexa; e, finalmente, a classe D representando a unio de duas regies no convexas.
O conjunto de treinamento formado por um total de 200 exemplos, distribudos nas
quatro classes descritas. Adotou-se nas RNs a arquitetura de mltiplas camadas, sendo
a camada escondida formada por 12 neurnios. A entrada bi-dimensional, captando as
coordenadas dos pontos dos exemplos. Trivialmente, h quatro sadas, cada uma associada a uma classe. Tambm, o autor avaliou o comportamento dos experimentos em seis
diferentes tipos de cruzamento, sendo eles o crossover de um ponto, dois pontos, quatro
pontos, seis pontos, doze pontos e uniforme.

4.2 Trabalhos em Co-evoluo Competitiva

95

Os testes foram comparativos e divididos em trs categorias, avanando da forma mais


simples para a mais elaborada:
1. abordagem tradicional usou-se apenas o algoritmo gentico steady-state para otimizao dos pesos das conexes das redes neurais. Todos as amostras disponveis
foram usadas na avaliao de cada indivduo.
2. evoluo por aptido cumulativa basicamente da forma anterior, exceto pelo fato
da avaliao ser dada em um sub-conjunto de exemplos de entrada, usando a noo
de ciclo, aptido cumulativa.
3. co-evoluo de redes neurais e amostras o modo mais elegante, adicionando
abordagem anterior o mtodo de co-evoluo competitiva, como descrita nesta seo.
No surpreendentemente, os resultados obtidos pela abordagem tradicional foram os
menos atrativos. Usando uma populao de 100 redes neurais, e critrio de parada sendo
a gerao mxima de 50.000 indivduos durante a evoluo, nenhuma rede evoluda

30

ultrapassou 95% de preciso na classificao.


No segundo modelo, aliado aptido cumulativa, os resultados foram mais promissores, alcanando, pelo menos no cruzamento de doze pontos, marca superior a 95% de
classificaes corretas. O curioso que apesar da melhora na qualidade das solues no
ter sido expressiva, a demanda computacional foi significativamente reduzida, caindo pela
metade o tempo de processamento.
Resultados bem melhores foram alcanados com a abordagem mais completa,
servindo-se da aptido cumulativa e, principalmente, da co-evoluo competitiva. O
tempo de execuo foi compatvel com o experimento anterior, porm, a preciso de classificao das redes neurais evoluiu substancialmente e, excetuando-se a recombinao de
um ponto, todos os testes ultrapassaram a marca classificadora de 95%.
O sucesso deste ltimo experimento sugere o comportamento esperado para um sistema co-evolucionrio: criar uma presso contrria bidirecional que incita cada vez mais
o desenvolvimento de artimanhas a fim de superar a populao rival. Diferentemente do
ideal da natureza, por tratar-se de uma populao de amostras, onde no h recombinao
30 Considerou-se

a mdia entre 5 execues independentes.

4.2 Trabalhos em Co-evoluo Competitiva

96

gentica, a evoluo tem fim geralmente terico quando a populao (ou membros
desta) em real evoluo tem a proeza de superar toda a populao de exemplos.

4.2.4.5

Aptido Cumulativa e Rudos

No algoritmo gentico steady-state, um determinado indivduo mantm-se na populao at ordem contrria, ou seja, exterminado apenas se no estiver suficientemente
adaptado. Na implementao usual deste tipo de poltica geracional, a aptido dada
vista e permanece assim, imutvel, ao longo de toda a vida do indivduo. O problema
surge quando a funo de aptido pode no ser precisa (esta caracterstica inerentemente dependente do domnio), incidindo em uma avaliao equivocada. Da, dois possveis cenrios podem ocorrer: o indivduo ter sua adaptabilidade subestimada, resultando
em morte precoce; ou, pior, o indivduo ser sobrestimado, tornando-se automaticamente
imortal (dependendo da intensidade do erro da funo de aptido) e espalhando falsos
bons genes por toda populao. O impacto provocado por um rudo na aptido seria algo
parecido com o que ocorreria se em uma dada otimizao a funo objetivo fosse alterada,
(re)direcionando a busca para um ponto diferente.
Na rea de classificao de padres ocorrem com certa freqncia rudos durante a
avaliao de indivduos. O mais comum a presena de dados deturpados 31 no conjunto
de treinamento.
A aptido cumulativa uma forma de reduzir substancialmente o efeito de amostras/aptido ruidosos. Por tratar-se de avaliaes parciais e possuir uma memria voltil
(reescrita) e limitada, a incidncia de um rudo suavizada. Entretanto, ainda assim dados
ruidosos no so ignorados pelo processo co-evolutivo, ao passo que o esforo de classificao tender a focar-se nos dados menos classificveis (onde esto includos os outliers),
atrasando o processo. No obstante, reduzindo-se a presso de seleo, faz-se com que a
busca seja menos obsessiva e torne-se abrangente, no concentrando-se apenas nos casos
estritamente difceis.

31 Outliers.

4.3 Co-evoluo Amostra-Classificador

4.3

97

Co-evoluo Amostra-Classificador

O trabalho de Paredis como apresentado neste captulo, juntamente com a codificao por gramtica (vide Captulo 3) so as duas maiores referncias para o tema desta
dissertao. Enquanto a gramtica prov um mtodo extensvel e preciso para a codificao das rvores classificadoras, o modelo co-evolucionrio de Paredis (em conjunto com
a aptido cumulativa) fornece o motor para o desenrolar da evoluo.
A co-evoluo amostra-classificador um sistema co-evolutivo competitivo
(competidor-competidor), baseado no modelo de Paredis e transcrito para a programao gentica gramatical. Sinteticamente, a entidade classificadora substituda por uma
rvore de classificao, representada sob a especificao gramatical. Sua tarefa , naturalmente, a classificao de dados em um nmero finito de classes.
Nas leituras subseqentes do termo co-evoluo amostra-classificador fica implcito
a designao do sistema completo, isto , supe-se o emprego da programao gentica
gramatical.
O fluxograma apresentado pela Figura 4.13 exibe a dinmica do funcionamento da
co-evoluo amostra-classificador.

4.3.1 Criao da Populao de Classificadores


Primeiramente, uma gramtica definida, gerando uma linguagem para codificao
das rvores classificadoras. Em seguida, a populao de classificadores criada, seguindo
a forma definida pela gramtica. Basicamente, os indivduos assemelham-se ao exemplo apontado pela Figura 4.14, onde consta o material gentico (uma rvore

32 )

e sua

aptido cumulativa. Estas duas etapas 33 foram suficientemente exploradas no Captulo 3,


e portanto no sero estendidas aqui.

32 Na

realidade, sob o aspecto de implementao, existem duas rvores, uma contendo a estrutura gramatical e a segunda armazenando de fato o programa. Mais detalhes em 3.3.3.2, do Captulo 3.
33 Vide Captulo 3, Sees 3.3.2.1 e 3.3.2.2.

4.3 Co-evoluo Amostra-Classificador

Figura 4.13: Fluxograma do sistema amostra-classificador.

98

4.3 Co-evoluo Amostra-Classificador

99

Figura 4.14: Um indivduo da populao de classificadores.

4.3.2 Formao da Populao de Amostras


O prximo passo a formao (leitura) da populao de amostras/treinamento, que
constituda de todos os padres disponveis na base de dados, geralmente da forma
atributos-valores e sua respectiva classe. Cada indivduo da populao de amostras constitui uma linha/registro da fonte de dados, limitando-se assim o seu tamanho ao nmero
de linhas do conjunto de treinamento. O cromossomo dos indivduos pode ser estruturalmente composto por um conjunto de variveis heterogneas, comportando assim diferentes tipos de dados, como valores numricos (ex. salrio), lgicos (verdadeiro, falso),
ordinais (ex. nvel escolar) e nominais (como o ms, ano). Graficamente, um indivduo
amostra pode ser visualizado como na Figura 4.15.

Figura 4.15: Um indivduo da populao de amostras.

4.3 Co-evoluo Amostra-Classificador

100

4.3.3 Avaliao dos Indivduos Recm Concebidos


O processo continua com a avaliao dos indivduos de ambas as populaes recm
criadas. Este o momento em que acumulam-se os registros do desempenho nos confrontos. Como no existe conhecimento prvio da qualidade dos indivduos, as competies
ocorrem uniformemente entre os membros da populao de rvores classificadoras e os
membros da populao de amostras, como apontado pelo Algoritmo 4.2.
Algoritmo 4.2 Algoritmo de avaliao inicial.
tamciclo 20;
i 0;
enquanto i tamanho da populao de rvores faa
j 0;
enquanto j tamciclo faa
competidor A i-sima rvore;
competidor B selecione aleatoriamente uma amostra;
promova competio entre A e B;
acumule o resultado em A e B;
j j + 1;
fim enquanto
i i + 1;
fim enquanto

4.3.3.1

Verificao de Falsas Solues

Imediatamente aps as avaliaes mtuas, as duas populaes so ordenadas e o critrio de parada checado. Havendo um indivduo da populao de rvores com aptido
(cumulativa) satisfatria, isto , uma candidata a soluo, uma etapa adicional de confirmao efetuada. Nesta confirmao, o candidato submete-se a todas as amostras do
conjunto de treinamento, evitando-se que o critrio de parada seja satisfeito precipitadamente. Este procedimento de certificao recomendado pois a aptido do indivduo
armazena uma pequena parcela dos padres de entrada, e no necessariamente generaliza
para os demais casos de teste. Todavia, deduz-se ainda que, durante a evoluo, situaes
de falso positivo tendem a ser absolutamente raras, pois ao menor sinal de prosperidade
de um candidato, a co-evoluo trata de confront-lo com adversrios cada vez mais hostis, diminuindo-se assim as chances de possuir um histrico perfeito de classificaes.
E caso o consiga, o candidato certamente seria, sob um funcionamento co-evolucionrio
esperado, capaz de classificar qualquer outra amostra do conjunto de treinamento.

4.3 Co-evoluo Amostra-Classificador


4.3.3.2

101

Medida de Complexidade

Faz-se til e talvez necessria a considerao de mais uma grandeza para o clculo final da aptido de um indivduo: uma medida de complexidade. um tpico subjetivo e inerentemente humano, porm, pode-se aproximar seu efeito tendo em conta alguns
valores. Dois valores so ponderados neste sistema: o tamanho da entidade classificadora
(nmero de ns da rvore) e o nmero de atributos do qual ela faz uso. A primeira medida
trivial, e contribui para a simplicidade

34

por meio da penalizao de rvores grandes.

A moderao do nmero de atributos tem a funo de incentivar solues que adotem


uma menor quantidade de entradas. Em outras palavras, uma rvore classificadora que
se restringe a usar somente o atributo idade e salrio, ter melhor aptido quando comparada a outra que emprege idade, salrio e condio social, se ambas classificam com
mesma preciso. A considerao desta ltima medida promove a reduo da dimenso de
entrada, dispensando atributos pouco significantes. O peso de penalizao pode ser ajustado de modo a regular com que intensidade estas medidas sero moderadas, levando-se
em conta que muitas vezes acuidade na classificao e economia podem ser objetivos
conflitantes.
Finalmente, as propostas mais parcimoniosas so inclinadas a deterem melhores capacidades de generalizao, isto , so mais propensas a serem bem sucedidas na classificao de exemplos no vistos, amostras que no pertencem ao conjunto de treinamento.

4.3.4 Ciclo Co-evolutivo


O ciclo co-evolutivo funciona como o descrito na Seo 4.2.4.3. Limita-se aqui
descrio das particularidades referentes co-evoluo amostra-classificador.
4.3.4.1

Seleo dos Indivduos

A seleo de indivduos de ambas populaes, visando o confronto, d-se pela seleo


ranking, que privilegia os indivduos mais adaptados, mas assume a distncia entre
membros da mesma populao como constante e igual a um (vide 2.2.4).
Para a populao de amostras, a seleo opera sobre a funo de aptido f , normali34 Por

conseqncia promove a reduo de demanda computacional.

4.3 Co-evoluo Amostra-Classificador

102

zada, dada por:


nciclo

famostra =

Hi

i=1

(4.1)

nciclo

onde nciclo o tamanho do ciclo/histrico (geralmente 20), e Hi o i-simo valor do histrico de confrontos (0 se no classificou corretamente e 1 caso contrrio).
Todavia, para a populao de rvores, uma medida ponderada de clculo de aptido
torna-se necessria, devido ao critrio adicional de complexidade. Supondo-se o peso
da complexidade, tem-se a funo de aptido f de uma rvore classificadora como:
nciclo

fclass f = (1 )

Hi

i=1

nciclo

atributos
tam
+
tammax atributosmax

(4.2)

onde tam e tammax so o tamanho da rvore e o tamanho mximo, respectivamente. Similarmente, atributos e atributosmax so, nesta ordem, o nmero de atributos contidos na
rvore classificadora e o nmero de atributos disponveis na base de dados.
4.3.4.2

Confronto e Atualizao da Aptido Cumulativa

Quando uma rvore classificadora enfrenta uma amostra, os atributos desta ltima,
(isto , o cromossomo), so substitudos nos ns apropriados da rvore, aqueles que fazem
referncia aos atributos de entrada. Ento, a rvore executada

35

e a classe predita

averiguada com a classe apontada pela amostra.


Uma classificao bem sucedida implica no crdito de um ponto na aptido cumulativa
do classificador, enquanto o valor zero inserido na aptido da amostra. A analogia
contrria realiza-se quando a rvore no pde classificar o exemplo. O Algoritmo 4.3
prov uma viso um pouco mais formal.
vlido ressaltar que a cada alterao no registro de encontros, os indivduos precisam
ter seu ranking atualizado, de acordo com sua nova aptido (Equao 4.2). So preferveis
os mtodos de ordenao que caracterizam-se pela facilidade de insero de valores na
posio correta sem a necessidade de reordenao. Do contrrio, poderia-se formar um
gargalo computacional, devido alta intensidade de execuo deste passo.
35 Algoritmo

3.5.

4.3 Co-evoluo Amostra-Classificador

103

Algoritmo 4.3 Algoritmo de avaliao direcionada.


tamciclo 20;
i 0;
enquanto i tamciclo faa
competidor A selecione um classificador promissor;
competidor B selecione uma amostra promissora;
promova competio entre A e B;
acumule o resultado em A e B;
i i + 1;
fim enquanto

4.3.5 Seleo, Aplicao dos Operadores Genticos e Insero de


Classificadores
Este procedimento restringe-se populao de rvores classificadoras, dada a peculiaridade imutvel da populao de amostras.
Seleo
Inicialmente, selecionam-se dois indivduos a fim de reproduo. Novamente, a seleo guiada pela aptido como definida na Equao 4.2. No entanto, uma diferente
funo de seleo adotada, a seleo torneio de dois oponentes. Em suma, sorteia-se
dois indivduos da populao, compara-se suas aptides e ento escolhe-se o indivduo
detentor da melhor aptido.
Aplicao de Operadores Genticos
De posse dos pais, a recombinao do material gentico d-se sob uma certa probabilidade tipicamente prxima de 100%. Se no satisfeito esta condio, os indivduos
so simplesmente clonados.
Com uma chance menor de ocorrncia, o operador gentico mutao aplicado nos
indivduos recm gerados.
Os detalhes internos destas duas operaes podem ser vistos em 3.3.2.5.
Insero
Enfim, a prole toma lugar na populao. Contudo, por tratar-se de um mtodo de re-

4.4 Concluso

104

produo tipo steady-state, dois indivduos obrigatoriamente sero eliminados. O critrio


adotado nesta execuo basicamente o da mxima sobrevivncia do mais adaptado,
em outras palavras, aps a insero dos descendentes, os indivduos de menor aptido so
aniquilados.
Esta etapa sinaliza o final do lao co-evolucionrio, retornando o processamento ao
ponto de checagem do critrio de parada.

4.4

Concluso

Foi visto neste captulo o conceito e aplicao da abordagem co-evolutiva. Introduziuse o tema, passando pela reviso de trabalhos prvios e ento foi apresentado o sistema
de co-evoluo amostra-classificador. Destacaram-se as seguintes vantagens do modelo
co-evolutivo por competio:
acelerao do processo evolucionrio atravs da focalizao nos casos difceis/no
resolvidos.

manuteno da diversidade populacional pela co-evoluo incitar um constante


estado de fluxo, evitando-se assim a estagnao em um ponto fixo.

ampliao da rea de aplicao da computao evolucionria por permitir que

sejam abordados problemas em que no se pode determinar um referencial esttico


de qualidade de soluo.

No obstante, empregou-se o procedimento de aptido cumulativa, que visa tanto reduzir o custo computacional como abrandar rudos que eventualmente possam existir em
determinados domnios de problemas.
Enfim, foi discutido em pormenores o sistema de classificao co-evoluo amostraclassificador que, dentre outras associaes, adota a programao gentica gramatical a
fim de codificar consistentemente as rvores classificadoras.
O prximo captulo dedica-se a por na prtica a teoria acerca dos conceitos de programao gentica, gramtica e co-evoluo competitiva, atravs de experimentos de classificao de dados realizados em diferentes domnios.

Captulo 5
Estudo de Casos
Este captulo descreve algumas aplicaes do sistema aplicado a variados domnios
de problemas de classificao. O objetivo foi tentar colher bases de dados cuja amostragem fosse razoavelmente representativa no universo no delineado de possveis problemas
desta natureza.
Seguem ento casos tradicionais, como o reconhecimento das classes da planta ris;
algumas bases de dados artificiais com propsitos especficos, representadas pela coleo
monks; outras de caracterizao real, como as bases de diagnstico de cncer de mama,
predio partidria em funo dos votos, e deteco de tipos de imagens. Os estudos esto
detalhados nas respectivas sees.

5.1

Metodologia dos Experimentos

A fim de atingir um grau estatstico mais confivel, para cada problema foram realizadas 10 execues independentes. Isto , com sementes distintas e diferentes formaes
conjuntos treinamento e teste. Este montante foi analisado e extraiu-se alguns componentes da estatstica descritiva, tais como mdia, desvio padro, valor mnimo e valor
mximo.
Como medida de desempenho global, foram avaliados os seguintes indicadores: preciso de classificao para o conjunto de treinamento e teste, nmero de avaliaes e
complexidade da soluo obtida.
Conceitos introduzidos, cabe aqui uma breve explanao mais especfica.

5.1 Metodologia dos Experimentos

106

conjunto de treinamento parte da base de dados responsvel pelo aprendizado,


tem influncia direta no sistema.

conjunto de teste composio de dados com a finalidade de avaliar a generali-

zao do conceito aprendido durante a fase de treinamento. No influencia o


aprendizado.

preciso de classificao indicador da proficincia de um classificador. ndices


altos para o conjunto de treinamento, seguidos de baixos valores para o conjunto de
teste so um forte indicativo de perda de generalizao (over-training).

nmero de avaliaes quantidade de avaliaes at se obter uma soluo. Di-

ferentemente do uso de praxe desta medida1 , no corrente trabalho uma avaliao


significa um confronto entre uma tupla (registro) da base de dados com um dado
classificador (soluo candidata).

complexidade da soluo a complexidade de um classificador passvel de compre-

enso humana no trivialmente definida. Deste modo, faz-se necessrio a adoo

de uma medida bsica que tende a ser indicativo de complexidade, a saber: o tamanho. Em rvores de deciso o tamanho pode ser calculado pelo nmero de regras 2
ou simplesmente pelo nmero de ns. Esta ltima a adotada na presente implementao. Ademais, com o intuito de dispensar atributos de entrada irrelevantes,
tentou-se minimizar a adoo destes durante o processo evolutivo, fazendo-se uso
de presso contrria abundncia de atributos.

Deve-se mencionar agradecimento ao repositrio de Machine Learning da Universidade da Califrnia [11], pela disponibilizao pblica de todas as bases de dados utilizadas nos experimentos deste trabalho.
1 Habitualmente

uma avaliao vem sendo definida como a passagem de todos os dados do conjunto em
um determinado classificador.
2 As regras de uma rvore classificadora so obtidas percorrendo-se todos os caminhos entre o n raiz e
os ns classes (terminais).

5.1 Metodologia dos Experimentos

107

5.1.1 Determinao dos Parmetros


5.1.1.1

Parmetros Numricos

Uma caracterstica pouco desejvel encontrada em alguns algoritmos a quantidade


excessiva de parmetros que requerem definio manual. Isto , aqueles que necessitam
ter seus valores ajustados por operadores. Um ajuste mal concebido pode degradar significativamente o desempenho do sistema, resultando em maior tempo de processamento,
soluo pouco desenvolvida ou, em alguns casos, impossibilidade de obteno de qualquer soluo satisfatria. A determinao destes, por si s representa um problema de
otimizao. Infelizmente, os algoritmos evolucionrios (AE), incluindo algoritmos genticos e programao gentica, compartilham deste empecilho. No obstante, estes parmetros geralmente so interdependentes, exigindo o tratamento destes como um todo,
sendo, pois, o espao de busca definido como qualquer combinao dos possveis valores de cada um deles. Basta que um parmetro seja contnuo para valer-se de um espao
infinito.
No domnio dos AE algumas tcnicas tm sido propostas para lidar com a determinao automtica dos parmetros. Dentre elas, duas merecem destaque.
auto-adaptativa o algoritmo capaz de auto adaptar os parmetros ao longo da

evoluo, isto , concomitantemente, seus valores vo sendo ajustados de acordo


com o cenrio em vigncia no processo evolutivo. Tem se obtido sucesso com
parmetros codificados diretamente no cromossomo de cada indivduo da populao [49, 24, 52, 30], adotando-se assim um perfil distribudo de parametrizao.
A auto-adaptao tem como destaques a adequao dinmica dos parmetros e o
baixo custo computacional agregado.

meta-algoritmo esta tcnica faz uso de uma camada extra de um algoritmo de oti-

mizao trabalhando especificamente no ajuste dos parmetros [55, 13]. A medida


de proficincia determinada por quo bom o algoritmo AE da camada inferior (AE
tradicional) responde a um determinado conjunto candidato de parmetros. Geralmente os parmetros so definidos estaticamente, todavia, o nvel superior pode
evoluir funes capazes de descrever a dinmica dos parmetros ao longo da evoluo via programao gentica, por exemplo. Seu conceito facilmente absorvido
e sua implementao pode ser dissociada do algoritmo principal. Tem como ponto

5.1 Metodologia dos Experimentos

108

negativo o alto custo computacional, porm, sua arquitetura inerentemente paralelizvel pode ser explorada.
Como quaisquer destas tcnicas foge do escopo do trabalho, tentou-se empiricamente
atribuir valores aos parmetros de entrada, manualmente. No intuito de facilitar a visualizao, mostrou-se em forma de tabela os parmetros relevantes. Na Tabela 5.1 segue um
modelo de apresentao.
Parmetro
Nmero de geraes
Tamanho da populao
Profundidade inicial
Profundidade de mutao
Peso penalizao complexidade

Valor
N
N
N
N
R

Tabela 5.1: Modelo de parmetros.


A descrio destes parmetros pode ser encontrada nos Captulos 3 e 4. Alguns dados
de entrada permaneceram constantes ao longo de todos os casos estudados, mostrados na
Tabela 5.2.
Parmetro
Probabilidade de cruzamento
Probabilidade de mutao
Tamanho do ciclo
Seleo de competio
Seleo da populao de rvores
Proporo conjunto de treinamento
Proporo conjunto de teste

Valor
90%
5%
20
ranking
torneio (2 indivduos)
2/3
1/3

Tabela 5.2: Parmetros fixos.


O valor do ciclo definido como proposto por Paredis (vide 4.2.4). Em seu trabalho [43], o autor no menciona o porqu do valor 20, contudo, testes informais realizados
na corrente dissertao sugerem que esta quantidade tende a tornar o processo evolucionrio mais eficaz.
A seleo de competio refere-se ao mtodo empregado para a seleo dos indivduos classificadores e indivduo de amostras, para a promoo do confronto. A seleo
da populao de rvores designa o mtodo de seleo para a populao principal, isto ,
durante a fase de recombinao.

5.1 Metodologia dos Experimentos

109

importante salientar que a diviso 2/3 e 1/3 para os conjuntos de treinamento e


teste, respectivamente, s prevalece para problemas que no possuem propores prdefinidas. Quando couber, comentrios indicaro os experimentos que fazem uso de propores prprias.
5.1.1.2

Gramtica

Optou-se para estes experimentos por uma definio de gramtica que fornecesse uma
expressiva gama de possibilidades combinatrias. A gramtica exibida na Tabela 5.3
possui estas propriedades e, dentre outras, capaz de:
garantir a consistncia entre todos os argumentos de funes, ou seja, uma funo
especifica a priori quais tipos de dados pode manipular;

tratar cada tipo de atributo adequadamente, por exemplo, restringindo as operaes


sobre os tipos nominais em igualdade e desigualdade apenas;

comparao inter-atributos;
criar constantes numricas aleatrias (efmeras);
permitir o uso de expresses aritmticas em valores numricos, podendo envolver
constantes ou at mesmo atributos.

Provavelmente esse poder de expresso pode ser redundante em alguns problemas


mais simples, prova disso a considervel eficincia de mtodos clssicos, como os geradores de rvores de deciso [44], que, apesar de limitarem-se comparao atributo
valor, conseguem timos resultados. Por outro lado, exceto para problemas artificiais,
virtualmente impossvel dizer de antemo o grau de complexidade expressiva necessria. Sem dvida, o melhor desempenho para qualquer classificador alcanado quando o
repertrio de ferramentas se aproxima do estritamente necessrio para executar a tarefa.

5.1.2 Apresentao dos Resultados


5.1.2.1

Interpretao das Tabelas

Para que seja possvel a leitura das tabelas de resultados, ser preciso tecer sobre como
os dados de sada foram gerados pelo sistema. A cada gerao de uma execuo em par-

5.1 Metodologia dos Experimentos

110

N=

{<se-ento-seno>, <lgico>, <numrico>, <nominal>, <ordinal>, <relacional>, <atriblgico>, <atrib-numrico>, <atrib-nominal>, <atrib-ordinal>, <classe>, <const-lgica>,
<const-numrica>, <const-nominal>, <const-ordinal>}

{se-ento-seno, e, ou, no, igual, diferente, maior, maior-igual, menor, menor-igual,


soma, subtrao, multiplicao, diviso, e f emeron , atrnumn , atrnomn , atrordn , atrlogn ,
classen , constnumn , constnomn , constordn , verdadeiro, f also}

S=

<se-ento-seno>

P=

<se-ento-seno>

<lgico>

<relacional>

<relacional>
<relacional>

<relacional>
<numrico>

<nominal>
<ordinal>
<atrib-numrico>
<const-numrica>

<atrib-nominal>
<const-nominal>
<atrib-ordinal>
<const-ordinal>
<atrib-lgico>
<const-lgica>
<classe>

<classe> | se-ento-seno <lgico> <se-ento-seno> <seento-seno>;


e <lgico> <lgico> | ou <lgico> <lgico> | no <lgico> |
<atrib-lgico> | <const-lgica> | <relacional>;
maior <numrico> <numrico> | maior-igual <numrico> <numrico> | menor <numrico> <numrico> | menor-igual <numrico> <numrico> | igual <numrico> <numrico> | diferente <numrico> <numrico>;
igual <nominal> <nominal> | diferente <nominal> <nominal>;
igual <ordinal> <ordinal> | diferente <ordinal <ordinal> | menor <ordinal> <ordinal> | menor-igual <ordinal> <ordinal> |
maior <ordinal> <ordinal> | maior-igual <ordinal> <ordinal>;
igual <lgico> <lgico> | diferente <lgico> <lgico>;
<atrib-numrico> | <const-numrica> | soma <numrico> <numrico> | subtrao <numrico> <numrico> | multiplicao
<numrico> <numrico> | diviso <numrico> <numrico> |
negao <numrico>;
<atrib-nominal> | <const-nominal>;
<atrib-ordinal> | <const-ordinal>;
atrnum1 | atrnum2 | . . . | atrnumn ;
constnum1 | constnum2 | . . . | constnumn | e f emero1 | e f emero2
| . . . | e f emeron ;
atrnom1 | atrnom2 | . . . | atrnomn ;
constnom1 | constnom2 | . . . | constnomn ;
atrord1 | atrord2 | . . . | atrordn ;
constord1 | constord2 | . . . | constordn ;
atrlog1 | atrlog2 | . . . | atrlogn ;
verdadeiro | f also;
classe1 | classe2 | . . . | classen ;

Tabela 5.3: Gramtica para rvore classificadora.

5.1 Metodologia dos Experimentos

111

ticular, foram coletados, do melhor indivduo


ndice

da populao, os seguintes indicadores:

de classificao nos conjuntos de treinamento e teste, tamanho5 , nmero de

avaliaes e, finalmente, a mdia simples do poder de classificao no conjunto de treinamento e teste (classificao global). Por exemplo, tem-se na Tabela 5.4 uma tpica
listagem da sada de uma execuo.
Gerao
0
1
2
3
..
.

Treinamento
0.597
0.742
0.984
1.000
..
.

Teste
0.583
0.750
0.990
1.000
..
.

Tamanho
7
13
14
11
..
.

Num. Aval.
10500
28980
47480
65500
..
.

Trein./Teste
0.590
0.746
0.987
1.000
..
.

Tabela 5.4: Listagem da sada de uma execuo particular.

Por basear-se nos indivduos de melhor aptido, no garantido que as geraes reportem na listagem ndices montonos de classificao, isto , a sada de uma gerao posterior pode conter ndices menores em comparao com a anterior. Em outras
palavras, a ltima linha da listagem (ltima gerao) no necessariamente indicar os valores do melhor indivduo de todo o processo de evoluo. Diante disso, percebe-se que
para resgatar os melhores ndices (e o melhor indivduo), preciso ordenar a listagem de
acordo com o valor de interesse, por exemplo, ordenar pelo melhor ndice de classificao
no conjunto de treinamento, ou ainda, pelo menor indivduo (tamanho da rvore). Portanto, para cada execuo, a listagem ordenada e os valores desejveis so coletados;
por fim, so realizadas mdias aritmticas (em cada ndice) cobrindo todas execues.
fcil perceber que desta coleo de dados pode-se extrair variadas informaes,
dependendo exclusivamente do foco da anlise. Certamente um especialista na rea do
problema poderia definir seus objetivos e isolar os ndices que lhe interessam.
No intuito de aproximar-se da completude, sem no entanto buscar as incontveis possibilidades tericas de combinaes (o que seria invivel ou no mnimo cansativo), a
apresentao foi dividida em trs grupos: treinamento, teste e treinamento/teste. Objetivando, respectivamente, melhores classificadores para o conjunto de treinamento, teste
3 No

necessariamente o melhor classificador, mas aquele detentor da maior aptido histrico restrito
de confrontos. Ver Captulo 4.
4 Os ndices foram gerados usando-se todas as amostras de dados de cada conjunto, diferentemente do
processo evolucionrio onde se utilizava apenas uma janela de amostras selecionadas.
5 O tamanho dado pelo nmero de ns da rvore classificadora, sendo portanto um valor sempre superior ao nmero de regras potencialmente extradas da rvore.

5.2 Classes das Plantas ris

112

e a mdia treinamento/teste 6 . Poder-se-ia pensar em descrever outros grupos, como por


exemplo, alguma mdia ponderada entre complexidade da soluo e preciso de classificao no conjunto de teste. Porm, qualquer tentativa de uma abordagem sistemtica no
teria valor prtico e levaria a degradao da compreenso dos resultados.
Em cada linha da tabela est representado um grupo (ou objetivo). Por questes de lay
out e restrio da largura da tabela, alguns ttulos foram abreviados. Naturalmente, cada
objetivo (linha) contm todas as demais informaes (colunas), por exemplo, ao buscar
sobre o desempenho do melhor classificador no conjunto de treinamento, pode-se tambm conhecer sua preciso no conjunto de teste, seu tamanho, etc. Objetivando uma fcil
leitura direcionada aos valores mais relevantes da tabela, os ndices de classificao relativos ao conjunto de treinamento, teste e global, foram destacados em negrito (diagonal
da tabela).
Cada valor de entrada na tabela a mdia aritmtica entre as 10 execues, seguida
pelo respectivo desvio padro, bem como seu valor mnimo e mximo.

5.1.3 Ambiente Computacional


O sistema foi escrito na linguagem C++ em conjunto com a expoente biblioteca GAlib [54]. O cdigo foi compilado com o software gcc e os problemas foram executados sob
o sistema operacional GNU/Linux em uma mquina AMD Athlon 1.4GHz com 512MB
de memria RAM.

5.2

Classes das Plantas ris

Provavelmente este o problema mais referenciado na literatura de reconhecimento


de padres, assim como em Knowledge Discovery in Databases 7 .
A base de dados soma 150 exemplos, contendo informaes sobre medidas de alguns
atributos da planta ris, a saber: comprimento e largura da spala, e comprimento e largura da ptala. As grandezas so contnuas e esto em centmetros. Estes dados esto
igualmente divididos em trs classes, so elas: ris setosa, versicolour e virgnica, sendo
6 Isto

significa que em uma execuo particular, a listagem foi ordenada para cada um desses objetivos,
ento, seus melhores valores foram coletados e considerados para o clculo estatstico.
7 Descoberta de Conhecimento em Base de Dados.

5.2 Classes das Plantas ris

113

que a primeira classe linearmente separvel das demais.

5.2.1 Experimentos
No h um consenso na literatura no tocante ao uso do conjunto de teste para este
problema 8 . Em prol de uma abordagem mais ampla, adotou-se os dois perfis de experimentao.
5.2.1.1

Experimento com Base Segmentada

A Tabela 5.5 apresenta o conjunto de parmetros para os experimentos com a base de


dados ris.
Parmetro
Nmero de geraes
Tamanho da populao
Profundidade inicial
Profundidade de mutao
Peso penalizao complexidade

Valor
500
300
15
15
0, 2

Tabela 5.5: Parmetros para o problema ris base segmentada.

A Tabela 5.6 sintetiza os ndices de desempenho para o sistema proposto. Cada execuo consumiu em mdia 6 minutos.
Treinamento

Teste

Trei./Teste

Tamanho

N. Aval. (106 )

Trein.
Mn.
Mx.
Teste
Mn.
Mx.

0,976 0,012
0, 960
0, 990
0, 961 0, 013
0, 930
0, 980

0, 970 0, 022
0, 940
1, 000
0,988 0,010
0, 980
1, 000

0, 973 0, 007
0, 965
0, 985
0, 975 0, 009
0, 955
0, 985

42, 1 36, 5
13, 0
140, 0
42, 5 36, 7
13, 0
140, 0

2, 84 1, 55
0, 364
4, 69
2, 32 1, 59
0, 364
5, 05

T./T.
Mn.
Mx.

0, 973 0, 008
0, 960
0, 980

0, 988 0, 010
0, 980
1, 000

0,981 0,006
0, 970
0, 990

47, 6 34, 8
13, 0
140, 0

2, 36 1, 45
0, 364
4, 20

Tabela 5.6: Resultados para a base de dados ris segmentada.


8 No

que de fato exista uma indeciso sobre a utilizao do conjunto de teste. A orientao pela
segmentao da base nos dois conjuntos, porm, pela freqncia de experimentos usando-se inteiramente a
base de dados, esta prtica foi a adotada no corrente trabalho.

5.2 Classes das Plantas ris

114

Os resultados indicam uma boa capacidade de generalizao, superando inclusive os


ndices no conjunto de treinamento. A classificao global (treinamento e teste) acompanha o desempenho, refletindo tima competitividade. Na literatura encontra-se vasto
material relativo a testes com a base de dados ris. A Tabela 5.7 mostra um apanhado
destes, de cima para baixo tem-se os algoritmos C4.5 9 [44], BGP 10 [47], GATree 11 [1],
CGP/SA

12

[21] e FDT

13

[39]. Os resultados apresentados na tabela so relativos ao

conjunto de teste e foram colhidos dos respectivos trabalhos dos autores referenciados.

Algoritmo
C4.5
BGP
GATree
CGP/SA
FDT

Acurcia
0, 952
0, 941
0, 938
0, 962
0, 960

Tabela 5.7: Desempenho de outros algoritmos sobre a base de dados ris.

Na Figura 5.1 tem-se um exemplo de um classificador para o problema da planta ris.


Este conta com um ndice mdio de classificaes corretas de 98,5% 14 , sendo que obteve
97% para o conjunto de treinamento e 100% para o conjunto de teste. Uma caracterstica intrigante foi o demrito das constantes numricas. Mesmo que estas estivessem ao
dispor do processo evolutivo, como previsto pela definio da gramtica, estas no foram
recrutadas. Este desvnculo de constantes tende a deixar a soluo mais generalizvel,
migrando de referenciais fixos (valores constantes) para os variveis (os valores dos atributos de entrada). Por exemplo, neste caso, mesmo que todos os dados da base fossem
multiplicados por um escalar, a rvore da Figura 5.1 obteria o mesmo xito na classificao.
Uma soluo mais enxuta, com 13 ns, tambm foi encontrada (Figura 5.2). Nesta,
os ndices foram de 96% para o conjunto de treinamento e 98% para o conjunto de teste.
9 Construo

de rvores de deciso por diviso-e-conquista utilizando informao de ganho (gain ratio).


de rvores de deciso por programao gentica.
11 rvores de classificao via algoritmos genticos.
12 Programao gentica e simulated annealing na evoluo de rvores de deciso.
13 Gerao de regras fuzzy.
14 A mdia entre os conjuntos de treinamento e teste.
10 Evoluo

5.2 Classes das Plantas ris

115

Figura 5.1: rvore de classificao da planta ris.

Figura 5.2: rvore de classificao da planta ris.

5.2.1.2

Experimento com a base completa

Objetivando um maior refinamento e maior preciso no conjunto de treinamento, sem


no entanto atentar-se para o super treinamento, dobrou-se o nmero mximo de geraes, de 500 para 1000 iteraes. Entretanto, a fim de evitar um crescimento improdutivo,
aumentou-se o peso de penalizao por complexidade para 0,25. Os demais parmetros
permanecem os mesmos, como mostrados na Tabela 5.8.
Os resultados mostrados na Tabela 5.9 refletem muito bem o poder de adaptao do
algoritmo proposto. Demonstrou tima estabilidade em termos de acurcia, com pouca
variabilidade nos resultados. Por outro lado, no quesito complexidade (tamanho), ob-

5.2 Classes das Plantas ris

116

Parmetro
Nmero de geraes
Tamanho da populao
Profundidade inicial
Profundidade de mutao
Peso penalizao complexidade

Valor
1000
300
15
15
0, 25

Tabela 5.8: Parmetros para o problema ris base completa.

teve uma discrepncia acentuada, variando de 30 ns na menor rvore para 222 na maior.
Observa-se ainda, em relao ao problema com a base segmentada, o acrscimo do tamanho mdio, apesar do rigor superior em relao penalizao. Isto induz a uma concluso natural: medida que o nmero de refinamentos cresce (geraes), mais inclinada
a evoluo tende especializao. Tentativas foram feitas com pesos de complexidade
maiores, infelizmente levando o sistema a estagnao prematura. Acredita-se, portanto,
em um melhor desempenho com uso de ponderao dinmica, variando em funo da tendncia evolutiva. Como era de se esperar, o tempo mdio aproximado para cada execuo
aumentou, passando para 18 minutos.

Mn.
Mx.

Treinamento

Tamanho

N. Aval. (106 )

0, 997 0, 005
0, 987
1, 000

86, 2 54, 6
30, 0
222, 0

7, 12 2, 77
3, 44
10, 6

Tabela 5.9: Resultados para a base de dados ris completa.

No trabalho de Duch et al. [19], os autores colecionam experimentos de sete algoritmos distintos atuando sobre a base de dados ris completa. Os resultados de classificao
variam entre 95,7% e 100%. Com virtualmente 100% de preciso mdia, fica demonstrado, portanto, a excelente atuao do sistema deste trabalho.
A Figura 5.3 apresenta um exemplo de rvore soluo isenta de erros de classificao, isto , foi flexvel o suficiente para absorver todo o conceito da base de dados. Cabe
observar a ausncia do primeiro atributo de entrada, o comprimento da spala. O processo evolutivo julgou-o desnecessrio e evitou-se assim a redundncia, a favor de uma
alternativa mais parcimoniosa.
Ainda possvel atentar-se ao fato de como facilmente a primeira classe separvel
das demais. Esta propriedade est caracterizada nos trs exemplos apresentados. Na Fi-

5.3 Diagnstico de Cncer de Mama

117

Figura 5.3: rvore de classificao da planta ris sobre o conjunto de treinamento.

gura 5.1 esta separao alcanada pela comparao largura spala comprimento
ptala. A Figura 5.2 prov algo bastante semelhante. J na Figura 5.3 a largura da ptala
comparada com uma constante numrica (largura ptala > 0,72).

5.3

Diagnstico de Cncer de Mama

A rea mdica vem sendo alvo de grandes pesquisas computacionais, muitas destas
destinadas automao do diagnstico de doenas. Dentre estas doenas, muito tem sido
feito para o diagnstico do cncer, especificamente o cncer de mama.
Ndulos presentes na massa mamria podem ser indicativos de cncer, mas no so
suficientes para determinar a gravidade do tumor, se este for confirmado. A anlise por
FNA (Fine-Needle Aspiration) procedimento de extrao de fluidos realizado diretamente sobre o tecido canceroso [36] capaz de fornecer medidas sobre a forma do
tumor instaurado no paciente. Estes dados so posteriormente examinados e podero
sentenciar a gravidade do cncer. A base de dados de cncer de mama, criada pelo Dr.

5.3 Diagnstico de Cncer de Mama

118

William H. Wolberg (University of Wisconsin Hospitals), traz amostras de casos clnicos coletadas no perodo compreendido entre os anos de 1989 e 1991. O objetivo o
diagnstico do grau do tumor, distribudos em duas classes: benigno ou maligno.
A base possui 699 registros, sendo que cada atributo representa alguma medio (via
FNA) de uma particularidade da clula em questo; todos escalares contnuos, compreendidos entre 0 e 1. Os atributos so, nesta ordem, clump thickness, uniformity of cell size,
uniformity of cell shape, marginal adhesion, single epithelial cell size, bare nuclei, bland
chromatin, normal nucleoli e mitosis.
Naturalmente, uma caracterstica desejvel e necessria nesses sistemas autnomos
a capacidade de boa generalizao, pois, neste domnio, o problema real encontra-se
nos dados que esto por vir, restando queles da base de dados a funo exclusiva de
aprendizado.

5.3.1 Experimentos
A Tabela 5.10 traz o conjunto de parmetros utilizados neste experimento.
Parmetro
Nmero de geraes
Tamanho da populao
Profundidade inicial
Profundidade de mutao
Peso penalizao complexidade

Valor
500
500
15
15
0, 05

Tabela 5.10: Parmetros cncer de mama.

Nota-se que o peso de penalizao por complexidade est relaxado, espera-se com
isto um melhor ndice de classificao para o conjunto de treinamento em detrimento
ao tamanho da soluo e poder de generalizao. Tem-se na Tabela 5.11 o sumrio das
execues deste experimento. Em cada execuo gastou-se por volta de 15 minutos de
processamento.
De fato as previses foram confirmadas, principalmente no quesito complexidade,
onde claramente houve um crescimento exagerado. Entretanto, em relao ao desempenho no conjunto de teste, os resultados foram suficientemente satisfatrios. Muito provavelmente as solues, em sua grande maioria, adquiriram partes redundantes, como por

5.3 Diagnstico de Cncer de Mama

119

Treinamento

Teste

Trei./Teste

Tamanho

N. Aval. (106 )

Trein.
Mn.
Mx.
Teste
Mn.
Mx.

0,981 0,017
0, 952
1, 000
0, 956 0, 016
0, 933
0, 993

0, 935 0, 016
0, 911
0, 957
0,960 0,014
0, 939
0, 979

0, 958 0, 015
0, 939
0, 979
0, 958 0, 012
0, 936
0, 977

124, 1 59, 8
21, 0
198, 0
84, 4 73, 1
13, 0
234, 0

6, 58 2, 64
1, 41
9, 03
3, 29 2, 88
0, 158
8, 26

T./T.
Mn.
Mx.

0, 974 0, 018
0, 947
0, 998

0, 951 0, 011
0, 925
0, 961

0,962 0,013
0, 941
0, 979

123, 2 79, 3
13, 0
218, 0

5, 28 2, 76
0, 194
8, 90

Tabela 5.11: Resultados cncer de mama com tamanho relaxado.


exemplo sub-rvores que nunca sero avaliadas. Em contrapartida, se o ndice de classificao no conjunto de teste fosse relativamente baixo, seria sensato concluir a presena de
especializao no conjunto de aprendizado.
No intuito de podar os ramos inteis e valorizar a generalizao, o parmetro peso de
penalizao por complexidade foi elevado para 0, 15 e um novo experimento foi realizado,
como mostra a Tabela 5.12. A presso sobre o tamanho da soluo, juntamente com o
menor nmero de avaliaes para se obter solues satisfatrias, fez com que o tempo de
processamento casse drasticamente, ficando estabelecido em 4 minutos.
Treinamento

Teste

Trei./Teste

Tamanho

N. Aval. (106 )

Trein.
Mn.
Mx.
Teste
Mn.
Mx.

0,961 0,006
0, 953
0, 970
0, 953 0, 00
0, 942
0, 970

0, 958 0, 012
0, 940
0, 974
0,967 0,011
0, 944
0, 983

0, 960 0, 006
0, 947
0, 967
0, 960 0, 008
0, 943
0, 972

20, 6 16, 9
8, 0
58, 0
19, 6 14, 3
8, 0
50, 0

1, 90 2, 75
0, 047
7, 70
1, 85 2, 58
0, 283
8, 73

T./T.
Mn.
Mx.

0, 959 0, 007
0, 948
0, 970

0, 965 0, 012
0, 940
0, 979

0,962 0,007
0, 947
0, 972

20, 0 12, 6
8, 0
50, 0

1, 69 1, 76
0, 10
5, 3

Tabela 5.12: Resultados cncer de mama com maior peso complexidade.

Em comparao com o experimento prvio, percebe-se um declnio na acurcia relativa ao conjunto de treinamento. Em compensao houve uma sensvel melhora na avaliao pelo conjunto de teste e uma queda vertiginosa tanto no tamanho mdio da soluo
como no nmero de avaliaes.
Em [19], realizado, para este problema, testes com variados algoritmos, reportando

5.4 Predio Partidria dos Congressistas

120

percentagens de classificao entre 34,5% e 97,1%. Quinlan [44], utilizando o algoritmo


C4.5 consegue o ndice de 94,7%. Em todos os casos, os resultados foram obtidos via
validao cruzada.
Com o propsito ilustrativo, a Figura 5.4 mostra uma rvore classificadora com duas
propriedades interessantes: enxuta e utiliza-se da operao soma (entre valores de atributos) para, ento, comparar com uma constante numrica. Este tipo de arranjo impossvel via algoritmos cannicos de rvores de deciso (como o C4.5), pois estes se limitam
comparao atributo-valor. Na ocasio, esta soluo classificou corretamente 97,4% do
conjunto de teste e 95,6% da base completa. Um timo resultado dado a simplicidade
desta.

Figura 5.4: rvore de diagnstico do cncer de mama.

J a Figura 5.5, de maior complexidade, obteve melhores resultados 97,8% no conjunto de teste e 97% de classificao global em detrimento de uma soluo mais parcimoniosa. Nota-se, portanto, o largo emprego de operaes aritmticas, como soma,
subtrao, multiplicao e negao.

5.4

Predio Partidria dos Congressistas

curiosa a anlise do perfil de congressistas de acordo com a filiao partidria.


Percebe-se, naturalmente, que membros de uma certa aliana tendem a ter comportamentos semelhantes, traduzindo assim a ideologia do partido. O problema da predio
partidria busca deduzir, a partir de uma srie de posies polticas, a qual segmento um
determinado congressista pertence. O conjunto de votos de um poltico em pontos estratgicos da administrao (por exemplo, gasto em educao, represso do crime, entre
outros) define sua posio, que por sua vez um bom indicativo de sua filiao partidria.

5.4 Predio Partidria dos Congressistas

121

Figura 5.5: rvore de diagnstico do cncer de mama.

A base de dados de registros de votao dos congressistas norte-americanos, oriunda


do relatrio trimestral do congresso (CQA

15 )

do ano de 1984, traz a coleo de votos

dos representantes em 16 questes chaves da gesto pblica. A cada uma destas questes
trs variantes

16

de votos so permitidas, a saber: voto a favor, contra e no definido.

A possibilidade partidria se restringe a duas: democratas e republicanos. A base conta


com 435 registros de votao, cada qual correspondendo a participao de um poltico do
congresso. Os pontos da administrao passveis de votos so mostrados a seguir.
1. handicapped infants HI
2. water project cost sharing WPCS
3. adoption of the budget resolution ABR
4. physician fee freeze PFF
5. el salvador aid ESA
6. religious groups in schools RGS
7. anti satellite test ban ASTB
8. aid to nicaraguan contras ANC
9. mx missile MM
10. immigration I
15 Congressional Quarterly Almanac, 98th Congress, 2nd session 1984, Volume XL: Congressional Quar-

terly Inc. Washington, D.C., 1985.


16 As trs possibilidades de votos foram simplificadas do conjunto de nove, originalmente previstas pelo
CQA.

5.4 Predio Partidria dos Congressistas

122

11. synfuels corporation cutback SCC


12. education spending ES
13. superfund right to sue SRS
14. crime C
15. duty free exports DFE
16. export administration act south africa EAASA

5.4.1 Experimentos
Para a primeira bateria de execues utilizou-se os parmetros listados na Tabela 5.13.
Parmetro
Nmero de geraes
Tamanho da populao
Profundidade inicial
Profundidade de mutao
Peso penalizao complexidade

Valor
1000
300
10
15
0, 15

Tabela 5.13: Parmetros iniciais para a predio partidria.

Observou-se para este problema que a criao inicial de rvores menos complexas
cooperou sensivelmente para um melhor desempenho do processo evolutivo como um
todo. Optou-se, portanto, em fixar a profundidade mxima inicial em um patamar inferior
profundidade de mutao.
Os resultados obtidos podem ser vistos na Tabela 5.14. Para cada execuo foram
necessrios em mdia cerca de 17 minutos de tempo de processamento.
O algoritmo proposto gerou timos resultados, com ndices consideravelmente superiores a alguns trabalhos prvios encontrados na literatura. A Tabela 5.15 sumariza alguns
destes resultados.
No anseio de solues mais compactas, decidiu-se por aumentar o peso de penalizao
por complexidade, passando, ento, de 0, 15 para 0, 2. Os demais parmetros permanecem
os mesmos.
A Tabela 5.16 apresenta os resultados com esta nova abordagem. Esta alterao tambm refletiu positivamente no tempo mdio de execuo, reduzindo-o para 8 minutos.

5.4 Predio Partidria dos Congressistas

123

Treinamento

Teste

Trei./Teste

Tamanho

N. Aval. (106 )

Trein.
Mn.
Mx.
Teste
Mn.
Mx.

0,982 0,015
0, 962
1, 000
0, 956 0, 015
0, 924
0, 972

0, 943 0, 023
0, 910
0, 979
0,976 0,011
0, 959
0, 993

0, 962 0, 006
0, 953
0, 971
0, 966 0, 009
0, 945
0, 978

105, 3 61, 6
20, 0
199, 0
59, 6 28, 4
16, 0
103, 0

6, 85 4, 47
0, 268
10, 6
5, 12 2, 24
0, 201
8, 16

T./T.
Mn.
Mx.

0, 972 0, 010
0, 962
0, 993

0, 970 0, 012
0, 945
0, 986

0,971 0,003
0, 969
0, 978

92, 8 51, 2
20, 0
186, 0

6, 77 2, 71
0, 268
9, 09

Tabela 5.14: Resultados da execuo inicial para a predio partidria.


Algoritmo
C4.5
GATree
CGP/SA

Acurcia
0, 961
0, 956
0, 976

Tabela 5.15: Desempenho de outros algoritmos sobre a predio partidria.

Com um pequeno desgaste no ndice de classificao foi possvel encontrar solues em


mdia trs vezes menores que as previamente encontradas. A nfase e escolha da melhor
abordagem estaria sujeita ao desejo do especialista, optando pela melhor compreensibilidade ou uma acurcia sensivelmente mais precisa.
Interessante notar que apenas um atributo (physician fee freeze - PFF) da base de
dados deste problema tem uma ampla relevncia, sendo, portanto, capaz de discernir
corretamente uma grande massa de dados. Foi o que a evoluo descobriu, concebendo a
minimalista rvore da Figura 5.6, classificando 416 registros no total de 435 (95,6%).

Figura 5.6: rvore classificadora predio partidria.

A rvore da Figura 5.7 basicamente usa o mesmo princpio. Utiliza-se do atributo


discriminador para atingir uma grande separao nos dados, ento busca um maior refinamento (fazendo uso de outros atributos) na tentativa de gerenciar os dados restantes.

5.5 Bases de Dados Artificiais Monks

124

Treinamento

Teste

Trei./Teste

Tamanho

N. Aval. (106 )

Trein.
Mn.
Mx.
Teste
Mn.
Mx.

0,973 0,008
0, 962
0, 983
0, 957 0, 009
0, 941
0, 972

0, 952 0, 013
0, 931
0, 972
0,972 0,010
0, 959
0, 986

0, 963 0, 006
0, 953
0, 972
0, 964 0, 006
0, 953
0, 972

28, 9 6, 6
21, 0
41, 0
28, 3 9, 5
16, 0
46, 0

3, 07 1, 57
0, 683
5, 85
2, 72 1, 77
0, 662
6, 36

T./T.
Mn.
Mx.

0, 965 0, 010
0, 948
0, 979

0, 970 0, 011
0, 952
0, 986

0,967 0,005
0, 960
0, 974

34, 0 16, 2
16, 0
71, 0

3, 84 1, 68
1, 24
6, 60

Tabela 5.16: Resultados mais parcimoniosos sobre a predio partidria.

Esta verso conta com 420 dos 435 registros classificados corretamente, correspondendo
a 96,5% de preciso.

Figura 5.7: rvore classificadora predio partidria.

5.5

Bases de Dados Artificiais Monks

Esta coleo de problemas tem uma histria interessante [51]. Em julho de 1991,
o convento de monges Corsendonk, na Blgica, foi sede da segunda escola europia de
vero em aprendizado de mquina 17 . Aps mais de uma semana de exposio sobre variados algoritmos de aprendizagem, os participantes ficaram se perguntando quais seriam
17 Machine

Learning.

5.5 Bases de Dados Artificiais Monks

125

os melhores algoritmos e quais deveriam ser descartados. Como conseqncia desta inquietao, foram criados trs problemas nos quais os algoritmos propostos poderiam ser
comparados. Surgiu ento o conjunto de problemas denominado Monks Problem.
Os problemas so relativos a rea de robs artificiais, onde os robs so descritos por
seis atributos (Tabela 5.17), cada registro culminando em uma classificao binria.
Atributo
forma da cabea
forma do corpo
est sorrindo?
objeto atachado
cor do casaco
tem lao?

Valores possveis
redonda, quadrada ou octogonal
redonda, quadrada ou octogonal
sim ou no
espada, balo ou bandeira
vermelho, amarelo, verde ou azul
sim ou no

Tabela 5.17: Descrio dos atributos para a coleo monks.

Todas as possveis combinaes entre valores de atributos resultam em 432 tuplas

18 .

Cada problema criado artificialmente por descries lgicas, sendo que um dado rob
(registro) pode pertencer ou no a esta descrio. Esta sentena responsvel por segregar a base em duas classes: as que satisfazem a expresso lgica e as que no satisfazem.
A aplicao do conceito lgico sobre o total de 432 registros define, ento, a base de dados para o problema. Diferentemente dos outros experimentos, a diviso de dados para
o conjunto de treinamento e teste foram previamente fixadas, apesar do conjunto de treinamento ter sido extrado aleatoriamente. Os criadores do monks optaram por atribuir
ao grupo de teste todos os 432 registros, portanto, como esta quantidade descreve todo
o problema, o grupo de treinamento um subconjunto do conjunto de teste. Outra caracterstica desta coleo o fato do conjunto de treinamento ser expressivamente menor
que o conjunto de teste. Isto significa que o sucesso de qualquer algoritmo sobre monks
depende de uma boa qualidade de generalizao.

5.5.1 Monks I
Este primeiro problema da srie construdo por uma simples expresso lgica, na
forma normal disjuntiva (FND): (forma da cabea = forma do corpo) (cor do casaco
18 Na

ordem apresentada na Tabela 5.17, tem-se as seguintes cardinalidades dos valores dos atributos:
3,3,2,3,4,2. A multiplicao destas (3 3 2 3 4 2) fornece toda a gama de possibilidades combinatrias para o problema monks.

5.5 Bases de Dados Artificiais Monks

126

= vermelho). Com esta sentena formou-se, ento, a base de dados contendo 432 registros, sendo que 124 destes foram destinados ao conjunto de treinamento. O conjunto de
teste engloba todos os registros, isto , 432 linhas.
Os parmetros utilizados nesta tarefa podem ser visualizados na Tabela 5.18.
Parmetro
Nmero de geraes
Tamanho da populao
Profundidade inicial
Profundidade de mutao
Peso penalizao complexidade

Valor
100
500
15
15
0, 2

Tabela 5.18: Parmetros para o problema monks I.

A Tabela 5.19 mostra o desempenho do sistema proposto para este primeiro problema
da coleo monks. Cada execuo foi realizada em um curtssimo espao de tempo, gastando em mdia apenas 20 segundos.

Mn.
Mx.

Trei./Teste

Tamanho

N. Aval. (105 )

1, 000 0, 000
1, 000
1, 000

13, 3 5, 4
10, 0
28, 0

1, 36 0, 86
0, 288
2, 83

Tabela 5.19: Resultados sobre a base artificial monks I.


O algoritmo deste trabalho obteve 100% de aproveitamento em todas as execues.
Thrun e outros[51], criadores do relatrio de desempenho de diversos algoritmos sobre estes problemas, listam resultados de 25 diferentes algoritmos, em cada um dos trs problemas. Para o monks I, especificamente, nove algoritmos foram unnimes na classificao,
catorze ficaram abaixo de 100% e outros dois no esboaram resultado.
Observa-se nos resultados o tamanho simplrio das solues obtidas. A evoluo
pde formar rvores que correspondem exatamente forma como a base de dados foi
definida, como se uma regresso estivesse sendo realizada. Facilidade esta provida pela
flexibilidade da gramtica definida, principalmente pelo fato de permitir comparao entre atributos. Algoritmos baseados no conceito estrito de rvores de deciso ( la C4.5)
seriam obrigados a desenvolver solues acrobticas para aprender o problema, resultando em solues mais complexas e curva de aprendizado proporcional cardinalidade
do conjunto de valores possveis para os atributos envolvidos.

5.5 Bases de Dados Artificiais Monks

127

5.5.2 Monks II
O segundo problema da coleo monks assemelha-se aos problemas de paridade

19 .

descrito por: quaisquer dois atributos, e somente estes, tm como valor o primeiro
elemento do domnio de possveis valores. Por exemplo, se forma da cabea e forma
do corpo forem redondas, o rob pertenceria a classe se, e somente se os atributos
est sorrindo?, objeto atachado, cor do casado e tem lao? possuissem valores
diferentes de sim, espada, vermelho e sim, respectivamente. Certamente uma
dura tarefa para sistemas que descrevem solues por meio de forma normal disjuntiva ou
conjuntiva, o que abrange este trabalho.
Dos 432 registros, 169 foram selecionados ao acaso para compor o grupo de treinamento. Os parmetros utilizados esto presentes na Tabela 5.20.
Parmetro
Nmero de geraes
Tamanho da populao
Profundidade inicial
Profundidade de mutao
Peso penalizao complexidade

Valor
5000
500
15
20
0, 05

Tabela 5.20: Parmetros para o problema monks II.

Devido a grande complexidade da tarefa em questo, algumas medidas em relao aos


parmetros foram tomadas:
o nmero mximo de geraes foi elevada a 5000 geraes, buscando-se assim um
refinamento sistemtico;

julgou-se necessrio a criao de rvores maiores

20

durante a evoluo, portanto,

a profundidade de mutao passou para 20 nveis;

em conformidade com o anseio de solues complexas, a penalizao por tamanho


foi relaxada.

19 O

problema da paridade objetiva determinar se em um dado conjunto de valores binrios (verdadeiro


ou falso), o nmero de ocorrncias de um dos valores par (ou mpar). um problema inerentemente
rduo, no-linear e no-monotnico [33, 29]
20 De fato, uma anlise intuitiva revela que este problema requer a construo de rvores capazes de testarem metodicamente todas as possibilidades. Isto , no vivel a criao de solues genricas restringindose utilizao de formas normais conjuntivas e disjuntivas.

5.5 Bases de Dados Artificiais Monks

128

Os resultados obtidos atravs dos experimentos podem ser visualizados na Tabela 5.21. A dificuldade de resoluo deste problema exigiu um grande esforo computacional, repercutindo-o no elevado tempo de cmputo, sendo necessrio, para cada
execuo, aproximadamente 65 minutos.
Trein.
Mn.
Mx.
Teste
Mn.
Mx.

Treinamento

Teste

Tamanho

N. Aval. (107 )

0,999 0,002
0, 994
1, 000
0, 996 0, 006
0, 988
1, 000

0, 966 0, 023
0, 912
0, 995
0,971 0,022
0, 917
0, 995

156, 4 126, 9
91, 0
513, 0
241, 5 348, 8
91, 0
1225, 0

1, 74 0, 472
1, 30
3, 01
1, 67 0, 50
1, 28
3, 01

Tabela 5.21: Resultados sobre a base artificial monks II.

Apesar do avantajado tamanho mdio das solues obtidas (o que j era previsto),
observou-se um timo desempenho em relao ao ndice de classificao. Percebe-se
ainda um sutil indicativo de super treinamento, motivado pela configurao consciente
dos parmetros. Em especial, os viles so a complacncia pela complexidade e o alto
ciclo de refinamento.
Em relao ao trabalho de referncia [51], apenas quatro algoritmos conseguiram a
classificao de 100%, vinte ficaram abaixo desse teto e um no declarou qualquer resultado. Dentre os que no conseguiram a classificao perfeita, o melhor ndice obtido
foi de 93,1%. No tocante aos quatro absolutos, trs algoritmos no so simblicos (baseados em redes neurais). O nico algoritmo simblico com acurcia de 100%, denominado AQ17-DCI, atua sobre o nvel dos atributos, sendo projetado para derivar variveis
quando necessrio, como um jogador com cartas na manga.
O melhor resultado alcanado pelo algoritmo deste trabalho, sobre o problema monks
II, foi capaz de classificar 99,5% (430/432) das amostras no conjunto de teste, possuindo
a complexidade de 101 ns.

5.5.3 Monks III


Finalmente, o ltimo problema da srie monks descrito na forma normal disjuntiva (FND), assim como o primeiro, porm, com um adicional: so inseridos rudos na
classificao. Isto , alguns registros do conjunto de treinamento so propositalmente

5.5 Bases de Dados Artificiais Monks

129

classificados erroneamente. Mais precisamente, 5% das amostras de treinamento esto


equivocadas quanto a classe. A sentena que define a base de dados seguinte: (cor do
casaco = verde objeto atachado = espada) (cor do casaco 6= azul forma do
corpo 6= octogonal).

O objetivo primordial deste problema averiguar o poder de generalizao dos algoritmos candidatos. Algoritmos gulosos por classificar todo e qualquer dado esto
fadados ao fracasso em monks III. Exige-se, ento, a virtude da robustez para com as
amostras enganosas. No obstante, este o problema da srie com a menor razo dados
treinamento/teste, utilizando-se apenas 122 registros para o aprendizado.
As configuraes de valores de entrada para a seqncia de execues deste problema
esto dispostas na Tabela 5.22.
Parmetro
Nmero de geraes
Tamanho da populao
Profundidade inicial
Profundidade de mutao
Peso penalizao complexidade

Valor
500
500
15
15
0, 15

Tabela 5.22: Parmetros para o problema monks III.

Na Tabela 5.23 esto sumarizados os ndices de desempenho para o algoritmo deste


trabalho. Cerca de 8 minutos foram precisos para a obteno dos resultados de cada
execuo.

Trein.
Mn.
Mx.
Teste
Mn.
Mx.

Treinamento

Teste

Tamanho

N. Aval. (106 )

0,963 0,027
0, 934
1, 000
0, 948 0, 007
0, 934
0, 951

0, 971 0, 033
0, 907
1, 000
0,994 0,012
0, 972
1, 000

46, 5 35, 5
11, 0
110, 0
32, 6 21, 8
11, 0
87, 0

4, 12 3, 26
0, 59
9, 04
3, 29 2, 78
0, 59
8, 96

Tabela 5.23: Resultados sobre a base artificial monks III.

Constata-se a boa atuao do sistema, absorvendo muito bem os dados ruidosos. Dentre os experimentos, em 80% das execues o algoritmo mostrou-se capaz de classificar
corretamente todas as amostras do conjunto de teste. Na listagem provida por Thrun [51],

5.6 Deteco de Tipos de Imagens

130

apenas cinco algoritmos atingiram classificao perfeita, quatro no se pronunciaram, e


os dezesseis restantes alcanaram no mximo 97,2% de preciso.

5.6

Deteco de Tipos de Imagens

O problema de deteco de imagens envolve o reconhecimento de alguns padres


usualmente encontrados na natureza e construes, por exemplo folhagem, cimento,
entre outros. Os registros da base de dados foram criados, aleatoriamente, a partir de sete
imagens, cada qual representando uma regio de 3 3 pixels. Para cada amostra, 19 atri-

butos contnuos fornecem dados sobre propriedades da regio de imagem representada,


como por exemplo a saturao, densidade, intensidade, hue e outros. Uma dada regio

pode ser enquadrada em sete classes distintas, a saber: tijolo, cu, folhagem, cimento,
janela, estrada e grama. A base de dados totaliza 2310 registros.
Este problema possui pelo menos trs caractersticas que o tornam atraente e desafiador: expressivo nmero de registros, alta dimensionalidade dos atributos e significativa
quantidade de classes.

5.6.1 Experimentos
Inicialmente tentou-se enfrentar o problema com os parmetros apresentados na Tabela 5.24. Devido complexidade intrnseca da tarefa em questo, ao tamanho da populao foi atribudo um valor consideravelmente maior que os at ento praticados. Nota-se
tambm que o valor designado ao peso de penalizao por complexidade tende a induzir a
solues mais enxutas. Os resultados desta experincia podem ser vistos na Tabela 5.25.
A dificuldade imps um tempo mdio perto de 80 minutos por execuo.
Parmetro
Nmero de geraes
Tamanho da populao
Profundidade inicial
Profundidade de mutao
Peso penalizao complexidade

Valor
1000
1000
10
10
0, 15

Tabela 5.24: Parmetros para o problema de deteco de imagens.

5.6 Deteco de Tipos de Imagens

131

Treinamento

Teste

Trei./Teste

Tamanho

N. Aval. (107 )

Trein.
Mn.
Mx.
Teste
Mn.
Mx.

0,926 0,041
0, 857
0, 979
0, 881 0, 043
0, 821
0, 964

0, 834 0, 039
0, 757
0, 900
0,884 0,033
0, 814
0, 929

0, 880 0, 018
0, 857
0, 914
0, 883 0, 029
0, 832
0, 925

84, 3 5, 7
75, 0
93, 0
86, 2 8, 6
65, 0
95, 0

2, 96 0, 785
0, 915
3, 61
2, 38 1, 12
0, 835
3, 61

T./T.
Mn.
Mx.

0, 915 0, 047
0, 821
0, 971

0, 870 0, 046
0, 771
0, 929

0,893 0,022
0, 868
0, 929

87, 2 6, 7
75, 0
94, 0

2, 74 0, 910
0, 821
3, 61

Tabela 5.25: Resultados iniciais para o problema de deteco de imagens.

Apesar do maior tamanho da populao, o ndice mdio de classificao das solues ficou aqum do desejado, principalmente os relativos ao conjunto de teste. A fim
de atingir um melhor resultado, um segundo experimento foi ento realizado, variando-se
apenas o peso da penalizao, que agora corresponde a 0, 05. O sumrio desta tentativa
est mostrado na Tabela 5.26. Os ganhos em termos de acurcia so bastante salientes
quando comparados ao experimento anterior, tanto nos conjuntos de treinamento e teste a
melhora ficou evidente. O interessante que apenas um parmetro foi modificado, a penalizao por complexidade. Permitiu-se assim uma maior folga no tamanho das rvores
geradas. Deduz-se, portanto, que o limite terico na complexidade, da primeira abordagem, mostrou-se rudimentar para descrever o conceito da base de dados, funcionando
como um gargalo. Contudo, o afrouxo da penalizao sobre solues maiores influenciou de forma negativa o tempo mdio de processamento, exigindo agora 110 minutos
por execuo.
Treinamento

Teste

Trei./Teste

Tamanho

N. Aval. (107 )

Trein.
Mn.
Mx.
Teste
Mn.
Mx.

0,956 0,029
0, 900
0, 993
0, 900 0, 033
0, 857
0, 943

0, 861 0, 071
0, 700
0, 943
0,924 0,018
0, 900
0, 957

0, 909 0, 037
0, 829
0, 957
0, 912 0, 016
0, 889
0, 936

165, 9 24, 1
129, 0
193, 0
150, 5 29, 7
102, 0
186, 0

3, 12 0, 423
2, 60
3, 62
2, 19 0, 745
0, 943
3, 28

T./T.
Mn.
Mx.

0, 941 0, 036
0, 871
0, 986

0, 913 0, 022
0, 871
0, 943

0,927 0,018
0, 900
0, 957

168, 9 25, 2
128, 0
189, 0

2, 71 0, 835
0, 943
3, 54

Tabela 5.26: Resultados para o problema de deteco de imagens.

5.7 Concluso

132

Quando defrontado com alguns resultados encontrados na literatura, percebe-se que


os ndices encontrados neste trabalho superam algoritmos fomentados pelo mesmo motor (programao gentica) mas ainda esto inferiores aos algoritmos de aprendizado de
mquina. Esta sntese pode ser vista na Tabela 5.27. Os algoritmos Parallel GP [22] e
GP [12] so da rea de programao gentica. Os restantes

21

pertencem ao domnio de

aprendizado de mquina, geradores de rvores de deciso. Os valores contidos na tabela


foram obtidos por validao cruzada.
Algoritmo Acurcia
Parallel GP
0, 862
0, 833
GP
OC1
0, 954
0, 968
C4.5
0, 968
C5.0
M5
0, 970
Tabela 5.27: Desempenho de outros algoritmos sobre o problema de deteco de imagens.

5.7

Concluso

Foi visto neste captulo a aplicao prtica do sistema simblico de classificao de


dados implementado nesta dissertao, cujo desenvolvimento envolveu basicamente trs
tcnicas: programao gentica, gramtica livre de contexto e co-evoluo competitiva.
Realizou-se experimentos sobre diferentes bases de dados, cada qual apresentando desafios e caractersticas prprias.
Os resultados mostraram-se bastante animadores, manifestando ndices de classificao superiores maioria dos algoritmos comparados. No entanto, no experimento com a
base de dados de imagens, os resultados ficaram razoavelmente aqum do esperado, embora tenham sobrepujados significativamente os ndices dos outros algoritmos baseados
em programao gentica. Enfatiza-se, ainda, o fato de que foi adotada uma gramtica
genrica e possivelmente redundante, sem qualquer otimizao ou direcionamento para
um perfil de problema.
No tocante ao custo computacional, devido dificuldade de dados fticos disponveis
21 Com

exceo do C4.5 [44], os demais algoritmos de aprendizado de mquina tiveram seus ndices de
classificao retirados em [12].

5.7 Concluso

133

na literatura agravado pela natureza distinta de medida nos algoritmos comparados,


no se pde mensurar comparativamente o tempo de processamento. sabido, entretanto,
que o sistema, por descender do paradigma da computao evolucionria, inclina-se a ter
um custo de processamento relativamente alto.
O prximo e ltimo captulo traa um panorama comentado dos prs e contras das
abordagens adotadas neste trabalho, bem como indicaes para trabalhos futuros.

Captulo 6
Concluses
Este trabalho de dissertao foi construdo sobre trs principais alicerces: a programao gentica, a representao gramatical e a co-evoluo. Estes pilares foram apresentados, descritos separadamente, e ento reunidos no contexto global do sistema. Desta
integrao conceitual nasceu a implementao prtica, cujo objetivo visou a classificao (supervisionada) de amostras de dados, possibilitando-se ainda a descoberta de regras
teoricamente passveis de interpretao humana. A implementao foi colocada em atividade pela atuao em variados problemas, de casos triviais, passando-se pelos artificiais
e, finalmente, problemas reais. Os resultados foram bastante promissores, comparando-se
positivamente em relao a outras implementaes/abordagens encontradas na literatura.
O restante deste captulo trata da avaliao e comentrios sobre as tcnicas envolvidas
nesta dissertao. Prossegue ento apontando algumas direes para trabalhos futuros.

6.1

Programao Gentica

A programao gentica, possivelmente representando a condio conceitual mais


bsica deste trabalho, destacou-se por trazer favoravelmente, dentre outros pontos:
robustez evidenciada pela habilidade natural de explorao global do espao

de busca, reforando-se assim sua adequabilidade para problemas de domnios no


triviais, como os da rea de classificao de dados.

pouca exigncia sobre o domnio assim como as tcnicas da computao evolucionria, a PG exige relativamente pouco conhecimento acerca do domnio do

6.2 Programao Gentica Gramatical

135

problema, construindo-se arranjos complexos atravs de especificaes iniciais bastante relaxadas. Portanto, traduz-se em um processo mais automatizado.
evoluo de solues simblicas fator importantssimo para se resgatar o conhecimento implcito em uma massa fria de dados.

flexibilidade e integrao a PG bastante receptiva integrao com outras tc-

nicas e modelos, como a adoo de diferentes estruturas de codificao, bem como

o enriquecimento da evoluo por outras tcnicas. Este ponto foi bem explorado
neste trabalho, inserindo-se na PG cannica a estrutura gramatical e a co-evoluo
competitiva.

Raramente um conceito est isento de contra-pontos, a programao gentica no


foge regra. Um dos pontos mais criticados em relao PG e em geral aos algoritmos da computao evolucionria o elevado custo computacional, principalmente
quando comparada s tcnicas no estocsticas. Felizmente, duas caractersticas da PG
podem amenizar esta fragilidade: o paralelismo intrnseco e a possibilidade de utilizao
de abordagens mais eficazes, como a co-evoluo.
Outro aspecto da programao gentica passvel de crtica o emprego inevitvel de
um nmero considervel de parmetros de entrada, podendo inclusive atingir a casa das
dezenas. A m determinao destas variveis pode acarretar uma perda substancial na potncia evolutiva, por conseguinte, expondo-se ao retardo no processo ou restringindo-se s
solues sub-timas. Certamente, os parmetros de entrada empregados nos experimentos deste trabalho, determinados empiricamente, impactaram negativamente, em algum
grau, nos resultados quando comparados com os possveis resultados obtidos atravs
dos valores ideais (tericos) dos parmetros.

6.2

Programao Gentica Gramatical

Substituiu-se a linguagem representativa tpica da PG (baseada nos limitados conceitos de conjuntos funes e terminais) por uma estrutura formal, a gramtica livre de
contexto. A GLC dedica-se, atravs de um conceito slido e amplo, a gerar a linguagem
de representao dos indivduos programas implementados na estrutura rvore.

6.2 Programao Gentica Gramatical

136

Este casamento entre a PG e a GLC foi denominado programao gentica gramatical.


A insero da PGG introduziu benefcios como:
formalizao traduziu-se na clareza e exatido da definio das relaes por meio
de uma gramtica, tratando das regras de interaes entre os variados componen-

tes de um classificador, como as restries operacionais quanto ao tipo de dados.


Limitando-se as possibilidades combinatrias entre as funes e terminais, atravs
das restries, reduz-se o espao de busca, que por sua vez tende a acelerar o processo de otimizao como um todo.
semntica trouxe a habilidade de estruturao focando-se no significado das relaes e no to somente nas restries de compatibilidade de tipos.

maleabilidade responsvel pela capacidade de definir/construir qualquer espec-

tro de linguagem, das mais simples s complexas. esta habilidade que permite,

por exemplo, a utilizao de expresses aritmticas como parte das decises de


uma rvore de classificao, e no to somente comparaes relacionais ao estilo
atributo-valor.
expansibilidade alm de permitir de forma adequada abraar problemas que exi-

gem uma estrutura melhor definida, o uso da gramtica ainda facilita a adoo de

novos ingredientes de otimizao, como a prpria evoluo da gramtica 1 . O valor


da expansibilidade recai sobre o fato de que necessidades futuras de melhoramentos
podem ser supridas pela prpria tcnica em questo, ao invs de recorrer a outros
mtodos.
A avaliao quanto ao uso deste tipo de codificao foi bastante vantajosa,
enfraquecendo-se talvez no aspecto de implementao, que consideravelmente mais
requintada em relao ao mtodo padro de representao. Contudo, a gramtica proporciona facilidades nicas de ps-implementao, como alteraes na estrutura gramatical
sem muito esforo.
Naturalmente, a definio da gramtica de responsabilidade do especialista, assim
como tambm o so os conjuntos funes e terminais da programao gentica cannica. Muitas vezes uma gramtica pode ser genrica de tal maneira a suportar uma certa
1A

mente.

evoluo da gramtica no foi abordada nesta dissertao, entretanto, pretende-se estud-la futura-

6.3 Co-evoluo Amostra-Classificador

137

variao de problemas, como no caso da gramtica nica utilizada nos experimentos (Captulo 5) desta dissertao. Todavia, a definio da gramtica visando as peculiaridades
do domnio faculta o surgimento de melhores solues.

6.3

Co-evoluo Amostra-Classificador

O terceiro principal componente envolvido neste trabalho foi a co-evoluo


competidor-competidor, cujo duelo foi protagonizado de um lado pelas amostras de dados, e do outro pelas rvores classificadoras. Esta tcnica, alm prover uma aproximao
melhor emparelhada com a natureza biolgica da evoluo, agregou ao sistema as seguintes virtudes:
busca esperta focando-se nas amostras com baixo ndice de classificao (e
vice-versa nas melhores rvores classificadoras), a co-evoluo direciona os esfor-

os de busca para regies ainda no dominadas, ao invs de insistir nas fceis ou


vencidas. O efeito imediato desta abordagem estimular a acelerao do processo
evolutivo e/ou produzir resultados mais refinados. Os resultados deste trabalho, obtidos pelo classificador, exploraram primariamente o quesito otimizao (focado na
preciso de classificao), com demrito no que tange o possvel ganho em custo
computacional.
manuteno da diversidade a evoluo inclinava-se a bombardear (com as mais

rduas amostras) as rvores classificadoras no timas, livrando-se assim das es-

tagnao e conseqente amenizao de solues parciais ou locais. A recproca


tambm verdadeira, isto , a janela de amostras, postas como conjunto de avaliao das rvores, estava em constante atualizao, selecionando-se os casos de teste
menos dominados pelos classificadores.
ajuste dinmico do critrio de aptido na programao gentica tradicional, uma
funo de aptido definida inicialmente, e a partir de ento, torna-se imutvel. Isto

significa que indivduos da primeira gerao sero avaliados pelo mesmo critrio
dos indivduos teoricamente mais adaptados das geraes avanadas. Esta avaliao imutvel sobre indivduos iniciais pode ser demasiadamente severa, inibindose assim o incio da evoluo. Por outro lado, a co-evoluo fornece um ajuste
gradativo da presso de avaliao medida que ambas populaes evoluem. A

6.3 Co-evoluo Amostra-Classificador

138

avaliao torna-se ento automaticamente compatvel com o nvel da aptido das


populaes.
Observa-se, contudo, que no contexto da classificao de dados, o ajuste dinmico
do critrio de aptido impe pouca relevncia acelerao da evoluo inicial, que
teoricamente seria prejudicada pelo modelo cannico 2 . De fato, dado que geralmente na avaliao tradicional envolvendo todas as amostras do conjunto de
treinamento h diversidade quanto dificuldade de classificao das variadas
amostras, um indivduo (classificador) inicial teria alguma nota gradual e no to
somente a completa falha. Portanto, qualquer indivduo, incluindo os fracassados,
teriam uma medio de aptido relativa a sua real proficincia, e no uma avaliao
maniquesta.
expanso do domnio de aplicao da PG apesar de no ter tido qualquer influn-

cia neste trabalho, cabe mencionar uma caracterstica relevante da co-evoluo. Algumas tarefas de otimizao no possibilitam a definio de uma funo de avaliao fixa. Dentre estas tarefas esto os problemas de otimizao de estratgias onde
no so conhecidos experts, como por exemplo jogos de dama, xadrez, entre outros.
A co-evoluo, pela adaptao dinmica, pode levar a PG nestes domnios, atravs
de, por exemplo, a evoluo por competio entre variadas estratgias.

No nas mesmas propores como na PG, porm no ignorvel, a introduo de


alguns novos parmetros especficos co-evoluo. Por exemplo, as informaes pertinentes segunda populao, como tamanho e mtodo de seleo, memria do registro de
encontros, etc.
No obstante, a co-evoluo competitiva, dada sua natureza, abre a possibilidade para
uma questo delicada, conhecida como o problema do ciclo, e ser vista a seguir.

6.3.1 O Problema do Ciclo


Basicamente, o ciclo a ocorrncia alternada e repetitiva de estratgias (ou solues)
previamente descobertas pelo processo evolucionrio. Considere duas populaes A e B
em co-evoluo. Suponha que em um determinado momento do processo co-evolutivo, a
2 No

mbito da classificao de dados via programao gentica, uma definio tpica da funo de
aptido emprega a avaliao de cada indivduo (classificador) contra todas as amostras do conjunto de
treinamento, e no apenas um conjunto inteligentemente selecionado.

6.3 Co-evoluo Amostra-Classificador

139

populao A evolva uma estratgia EA1 , que derrota a estratgia corrente em B, seja qual
for. A populao B, em resposta A, evolui a estratgia EB1 , que por sua vez supera EA1 ,
isto , EB1 > EA1 . No satisfeita, a populao A, em contra resposta, evolui a estratgia
EA2 , tal que EA2 > EB1 . A populao B, pressionada por A, consegue evoluir a estratgia
EB2 , vencendo a concorrente EA2 (EB2 > EA2 ). Por um azar do processo co-evolutivo, a
estratgia mais recente da populao B (EB2 ) coincidentemente inferior primeira estratgia desenvolvida pela populao A (EA1 ), isto , EA1 > EB2 . Sendo assim, devido ao
material gentico ainda remanescente em B, a estratgia mais trivial a ser evoluda a
anteriormente descoberta EB1 , que domina EA1 . O ciclo portanto est formado, possivelmente caindo em um lao, alternando-se entre as estratgias prvias. A Figura 6.1 mostra
visualmente a dinmica do problema do ciclo.

Figura 6.1: Ocorrncia do ciclo na co-evoluo. Exn representa a estratgia n da populao


x.

No contexto deste trabalho, envolvendo a classificao de dados, o problema do ciclo


basicamente se apresenta da seguinte forma. Assuma A como a populao de rvores
classificadoras e B como a populao de amostras. Suponha que a populao A evolva
uma estratgia (estrutura/rvore) de classificao EA1 . Rapidamente, a populao B organiza seu time de modo a derrubar EA1 . Chame esta estratgia de EB1 , portanto
EB1 > EA1 . Em seqncia, A responde e evolui a estratgia EA2 , que capaz de derrubar
EB1 . Mais uma vez, B responde e cria EB2 a fim de derrotar EA2 , entretanto, EB2 vencido
por EA1 , e ento ocorre o ciclo.
Tornando a explicao mais didtica e real, pode-se atribuir formas s estratgias.

6.3 Co-evoluo Amostra-Classificador

140

Seja a estratgia EA1 descrita como classifique qualquer amostra como classe um 3 . Reciprocamente, a estratgia EB1 definida como derrube qualquer classificador que classifique como classe um, ou em outras palavras, selecione amostras que no pertenam
classe um. Analogamente, temos EA2 interpretada como classifique qualquer amostra
como classe dois 4 . E ainda, EB2 descrita por derrube qualquer classificador que classifique como classe dois, ou selecione amostras que no pertenam classe dois.
Sendo assim, primeiro a populao A descobre a estratgia classe um, que ento
vencida por amostras que no pertenam classe um, da populao B. Logo, surge a
estratgia classe dois, de A, que por sua vez tambm derrubada por amostras que no
pertenam classe dois, de B. Por fim, a populao A evolui (resgata) a estratgia classe
um, que vence amostras que no pertenam classe dois, mas B tambm redescobre
amostras que no pertenam classe um, que por sua vez derrota classe um. Inicia-se o
ciclo, como exibido graficamente na Figura 6.2.

Figura 6.2: Ocorrncia do ciclo na classificao amostra-classificador.

O aspecto que torna o problema do ciclo delicado o fato da sua no trivial observao. fcil quando se recorre a situaes extremamente simplificadas, mas quando se
trata de estratgias/estruturas complexas, sua identificao torna-se impraticvel.
3 Simplesmente:
4 Retorne

retorne classe um.


classe dois.

6.3 Co-evoluo Amostra-Classificador

141

Os possveis efeitos colaterais da ocorrncia do ciclo so o atraso no processo evolutivo e/ou estagnao em mnimos locais. Rosin e Belew, em New Methods for Competitive
Coevolution [46], apesar de no mencionarem explicitamente o problema do ciclo, propuseram uma espcie de elitismo temporal ou hall da fama, onde se adota uma avaliao
ponderada com estratgias/solues descobertas anteriormentes no decorrer da evoluo.
Em suma, testa-se na avaliao de cada indivduo da gerao corrente sua habilidade em
lidar com solues no necessariamente todas evoludas em geraes passadas. Os
autores ainda relembram outro benefcio decorrente da conservao de solues passadas,
a preservao de material gentico.
Stefano Nolfi e Dario Floreano [40] observam que a proposta de Rosin e Belew apresenta alguns pontos colaterais, como a no plausibilidade biolgica e a reduo da dinmica co-evolucionria 5 . Entretanto, estes autores tambm observaram e relataram atravs
de experimentos que o elitismo temporal contribui para a amenizao do problema do ciclo.
Ainda, Nolfi e Floreano apontam um caminho alternativo para diminuir o problema do
ciclo: enriquecer o ambiente. Os autores, utilizando o modelo predador-presa no contexto
de robtica evolucionria, perceberam que a populao de presas cujo sensores perceptivos so limitados e portanto dificultando a fuga, bem como a evoluo de estratgias
mais aprimoradas tendem a alternar repentinamente de estratgia, em vez de refinar
a atual. Ampliando-se o campo perceptivo das presas, os autores observaram que a populao de presas mais facilmente se inclinava a refinar a estratgia corrente ao invs
de resgatar estratgias prvias. Os experimentos demonstraram resultados satisfatrios,
assim como o elitismo temporal.
De fato, intuitivamente se espera que um ambiente rico, por possibilitar um rol maior
de diferentes construes, bem como a melhoria destas, seja de certa forma rspido para
com a ocorrncia do problema do ciclo.
Na implementao do trabalho desta dissertao, notou-se a incidncia de ciclos em
alguns experimentos, majoritariamente no incio do processo evolutivo, nos moldes simplrios exibidos pela Figura 6.2. Isto , dada a simplicidade das construes iniciais, a
tenso co-evolutiva era atrada alternncia de solues, favorecida pela facilidade e trivi5 Nolfi

e Floreano referiam-se ao fato de que a (contra)resposta a uma dada estratgia evoluda pela
populao concorrente seria mais lenta, pois o objetivo estaria disperso, dividido entre o ataque contra a
estratgia corrente e contra as passadas.

6.4 Trabalhos Futuros

142

alidade destas mudanas. Pareceu, entretanto, que nas geraes futuras, com construes
mais complexas na populao, e portanto maior abundncia de material gentico, o ciclo
no se apresentava 6 .

6.4

Trabalhos Futuros

Esta seo conta com algumas perspectivas de trabalhos futuros, visando aprimorar a
eficincia de otimizao (tempo e qualidade), bem como tentar eliminar alguns problemas
identificados nas tcnicas abordadas neste trabalho.
evoluo gramatical trata-se de uma instigante linha de pesquisa, que compre-

ende a evoluo da prpria gramtica juntamente com o decorrer do processo evo-

lutivo padro. Isto , adaptao e direcionamento das regras de produo de modo


a otimizar a definio da gramtica para o problema em questo. Em outros termos,
a modificao da gramtica implica na alterao (forma e tamanho) do espao de
busca. Quando o espao de busca otimizado concomitantemente com as solues,
espera-se que a evoluo torne-se mais eficaz. Whigham [57] introduziu esta noo
e obteve resultados interessantes em seus experimentos.
explorao dos operadores genticos gramaticais a programao gentica gramatical possibilita uma srie de outros operadores genticos, que se aplicam na
codificao por gramtica. Dentre estes, esto por exemplo os operadores genticos de encapsulamento, que funcionam como blocos de construo. Construes
que demonstram ser relevantes durante o processo de evoluo so encapsuladas
(apelidadas) em um nico componente e ento inseridas na definio da gramtica,
para que possam ser usadas na manuteno dos indivduos. De fato, este ponto
uma especializao da evoluo gramatical, porm com objetivo mais direto e
definido.
estudo do problema do ciclo este ponto merece ateno pelo impacto que pode
trazer co-evoluo competitiva. Faz-se til a investigao sistemtica das condi-

es de ocorrncia, assim como meios de frear seu efeito negativo sem no entanto
6

importante salientar que, dada a natureza do problema do ciclo, a alternncia mais elaborada de
estratgias (como um ciclo mais longo) pode ter ocorrido, silenciosamente e com certa freqncia, tambm
em geraes avanadas.

6.4 Trabalhos Futuros

143

deturpar a caracterizao do processo co-evolucionrio. Tcnicas como o elitismo


temporal e o enriquecimento do ambiente podem ser melhor estudadas e integradas.
auto ajuste de parmetros de entrada dada sua importncia direta no processo
evolucionrio, o estudo e aplicao de tcnicas desta rea tornam-se um trabalho
de pesquisa til e relevante. Alguns pontos de partida presentes na literatura foram
mencionados na Seo 5.1.1.
comparao fidedigna com a abordagem tradicional devido ao modelo de projeto de implementao

deste trabalho, no se pde comparar o ganho real dos

instrumentos aqui empregados em relao ao mtodo tradicional de implementao. No entanto, acredita-se que o confronto com algoritmos e tcnicas constantes
na literatura, como exposto no Captulo 5, somado ao sucesso relatado pelos autores dos trabalhos base

para esta dissertao, fornea uma noo suficientemente

convincente da plausibilidade dos conceitos aqui empregados. Ainda assim, traar


o paralelo com a implementao cannica, usando-se a melhor aproximao de parmetros, cumpre melhor o propsito cientfico, e portanto perdura como proposta
para trabalho futuro.

7A

integrao da co-evoluo competitiva resultou em uma implementao dependente (pouco modular), criando-se assim uma barreira prtica (em termos de custo/benefcio) para uma manuteno conjunta
do modelo tradicional e co-evolucionrio.
8 Destacam-se os trabalhos de Paredis [43], Whigham [57], Hillis [27], Angeline e Pollack [4], e Axelrod [6].

Referncias Bibliogrficas
[1] A. PAPAGELIS , D. K. GATree: Genetically evolved decision trees.
[2] A HO , A. V., S ETHI , R., E U LLMAN , J. D. Compilers: Principles, Techniques, and
Tools. Addison-Wesley, Reading, Mass., 1986.
[3] A NDRE , D., E T ELLER , A. A study in program response and the negative effects
of introns in genetic programming. In Genetic Programming 1996: Proceedings of
the First Annual Conference (Stanford University, CA, USA, 2831 julho de 1996),
J. R. Koza, D. E. Goldberg, D. B. Fogel, e R. L. Riolo, Eds., MIT Press, pp. 1220.
[4] A NGELINE , P. J., E P OLLACK , J. B. Competitive environments evolve better solutions for complex tasks. In Proceedings of the 5th International Conference on
Genetic Algorithms, ICGA-93 (University of Illinois at Urbana-Champaign, 17-21
julho de 1993), S. Forrest, Ed., Morgan Kaufmann, pp. 264270.
[5] A XELROD , R. The Evolution of Cooperation. Basic Books, New York, 1984.
[6] A XELROD , R. The evolution of strategies in the iterated prisoners dilemma. In Genetic Algorithms and Simulated Annealing (1987), L. Davis, Ed., Morgan Kaufman,
pp. 3241.
[7] BANZHAF, W., N ORDIN , P., K ELLER , R. E., E F RANCONE , F. D. Genetic Programming An Introduction; On the Automatic Evolution of Computer Programs
and its Applications. Morgan Kaufmann, dpunkt.verlag, janeiro de 1998.
[8] BARBOSA , H. J. C. Uma introduo aos algoritmos genticos. Mini-Curso no XX
CNMAC, Congresso Nacional de Matemtica Aplicada e Computacional, Gramado,
RS (1997).
[9] BARRETT, W. A., BATES , R. M., G USTAFSON , D. A., E C OUCH , J. D. Compiler
construction: theory and practice (2nd ed.). SRA School Group, 1986.

REFERNCIAS BIBLIOGRFICAS

145

[10] B EASLEY, D., B ULL , D. R., E M ARTIN , R. R. An overview of genetic algorithms:


Part 1, fundamentals. University Computing 15, 2 (1993), 5869.
[11] B LAKE , C., E M ERZ , C. UCI repository of machine learning databases, 1998.
[12] B OT, M. C. J. Improving induction of linear classification trees with genetic programming. In Proceedings of the Genetic and Evolutionary Computation Conference (GECCO-2000) (Las Vegas, Nevada, USA, 1012 2000), D. Whitley, D. Goldberg, E. Cantu-Paz, L. Spector, I. Parmee, e H.-G. Beyer, Eds., Morgan Kaufmann,
pp. 403410.
[13] BCK , T. Parallel optimization of evolutionary algorithms.
[14] C HOMSKY, N. Three models for the description of language. IRA Transactions on
Information Theory 2, 3 (1956), 113124.
[15] DARWIN , C. On the Origin of Species by Means of Natural Selection. Murray,
London, 1859. 6th (final) edn 1872.
[16] DAWKINS , R. The Selfish Gene. Oxford University Press, 1976.
[17] DE BARY, H. A. Die Erscheinung der Symbiose [The Phenomenon of Symbiosis].
Velarg von Karl J. Trubner, 1879.
[18] D E J ONG , K., E P OTTER , M. A. Evolving complex structures via cooperative
coevolution. In Proc. on the Fourth Annual Conf. on Evolutionary Programming
(Cambridge, MA, 1995), MIT Press, pp. 307317.
[19] D UCH W, A DAMCZAK R, G. K. A new methodology of extraction, optimization and application of crisp and fuzzy logical rules. IEEE Transactions on Neural
Networks (March 2001) 11, 2 (2000).
[20] E. G. M. L ACERDA , A. C. P. L. F. C. Introduo aos algoritmos genticos. In
XVIII Jornada de Atualizao em Informtica (II Brazilian Artificial Intelligence
Meeting), ENIA 99, XIX Congresso Brasileiro de Computao (July 1999), pp. 51
126.
[21] F OLINO , G., P IZZUTI , C., E S PEZZANO , G. Genetic programming and simulated
annealing: A hybrid method to evolve decision trees. In Genetic Programming,
Proceedings of EuroGP2000 (Edinburgh, 15-16 abril de 2000), R. Poli, W. Banzhaf,

REFERNCIAS BIBLIOGRFICAS

146

W. B. Langdon, J. F. Miller, P. Nordin, e T. C. Fogarty, Eds., vol. 1802 of LNCS,


Springer-Verlag, pp. 294303.
[22] F OLINO , G., P IZZUTI , C., E S PEZZANO , G. Parallel genetic programming for
decision tree induction. In Proceedings of the 13th International Conference on
Tools with Artificial Intelligence (Dallas, TX USA, 7-9 novembro de 2001), IEEE,
pp. 129135.
[23] F RANCISCO H ERRERA , M ANUEL L OZANO , J.-L. V. Tackling real-coded genetic algorithms: Operators and tools for behavioural analysis. Artificial Intelligence
Review 12, 4 (1998), 265319.
[24] G ALAV IZ , J. A self-adaptive genetic algorithm for function optimization. In Proceedings of IX International Symposium on Artificial Intelligence (Cancun, Mexico,
7-9 1996).
[25] G OLDBERG , D. E. Genetic Algorithms in Search, Optimization, and Machine Learning. Addison-Wesley, Reading, Mass., 1989.
An introductory textbook and guide to current research. Contains examples, exercises, and sample programs as well as proofs of most of the major GA theorems on
crossover and implicit parallelism.
[26] H AYNES , T., WAINWRIGHT, R., S EN , S., E S CHOENEFELD , D. Strongly typed
genetic programming in evolving cooperation strategies. In Genetic Algorithms:
Proceedings of the Sixth International Conference (ICGA95) (Pittsburgh, PA, USA,
15-19 1995), L. Eshelman, Ed., Morgan Kaufmann, pp. 271278.
[27] H ILLIS , W. D. Co-evolving parasites improve simulated evolution as an optimization procedure. Phys. D 42, 1-3 (1990), 228234.
[28] H OLLAND , J. H. Adpatation in Natural and Artificial Systems. University of Michigan Press, Ann Arbor, MI, 1975.
[29] H UELSBERGEN , L. Finding general solutions to the parity problem by evolving
machine-language representations. In Genetic Programming 1998: Proceedings of
the Third Annual Conference (University of Wisconsin, Madison, Wisconsin, USA,
22-25 julho de 1998), J. R. Koza, W. Banzhaf, K. Chellapilla, K. Deb, M. Dorigo,
D. B. Fogel, M. H. Garzon, D. E. Goldberg, H. Iba, e R. Riolo, Eds., Morgan Kaufmann, pp. 158166.

REFERNCIAS BIBLIOGRFICAS

147

[30] I ORIO , A., E L I , X. Parameter control within a co-operative co-evolutionary genetic algorithm. In Proceedings of The Seventh International Conference on Parallel
Problem Solving from Nature - PPSN VII, J. Merelo Guervos, P. Adamidis, H. Beyer,
J. Fernandez-Villacanas, e H. Schwefel, Eds., Lecture Notes in Computer Science
(LNCS 2439), pp. 247256.
[31] K NUTH , D. E. The Art of Computer Programming: Sorting and Searching, vol. 3.
Addison-Wesley, New York, 1973.
[32] KOZA , J. R. Genetic programming: a paradigm for genetically breeding populations of computer programs to solve problems. Technical Report CS-TR-90-1314,
Stanford University, Department of Computer Science, junho de 1990.
[33] KOZA , J. R. Genetic programming: on the programming of computers by means of
natural selection. MIT Press, Cambridge, MA, 1992.
[34] KOZA , J. R. Genetic programming: On the programming of computers by natural
selection. MIT Press, Cambridge, Mass., 1992.
[35] M ANACHER , G. K. An improved version of the Cocke-Younger-Kasami algorithm.
j-COMP-LANGS 3, 2 (1978), 127133.
[36] M ANGASARIAN , O. L., S TREET, W. N., E W OLBERG , W. H. Breast cancer diagnosis and prognosis via linear programming. Relatrio Tcnico MP-TR-1994-10,
1994.
[37] M ONTANA , D. J. Strongly typed genetic programming. Relatrio Tcnico #7866,
Bolt Beranek and Newman, Inc., 10 Moulton Street, Cambridge, MA 02138, USA,
7 1994.
[38] M ORRISON , J. Co-evolution and genetic algorithms. Tese de Mestrado, University
of Carleton, Ottawa, Ontario, 1998.
[39] M YUNG W ON K IM , J OONG G EUN L EE , C. M. Efficient fuzzy rule generation
based on fuzzy decision tree for data mining. In Fuzzy Systems Conference Proceedings, 1999. FUZZ-IEEE 99. (1999), vol. 3, IEEE International, pp. 12231228.
[40] N OLFI , S., E F LOREANO , D. How co-evolution can enhance the adaptive power
of artificial evolution: Implications for evolutionary robotics. In EvoRobots (1998),
pp. 2238.

REFERNCIAS BIBLIOGRFICAS

148

[41] ON EILL , M., E RYAN , C. Grammatical evolution. IEEE Transactions on Evolutionary Computation 5, 4 (2001), 349358.
[42] PAREDIS , J. The evolution of behavior: some experiments. In Proceedings of the
first international conference on simulation of adaptive behavior on From animals
to animats (1991), MIT Press, pp. 419426.
[43] PAREDIS , J. Steps towards co-evolutionary classification neural networks. In Proceedings of the Fourth International Workshop on the Synthesis and Simulation of
Living Systems (1994), pp. 102108.
[44] Q UINLAN , J. Improved use of continuous attributes in C4.5. Journal of Artificial
Intelligence Research 4 (1996), 7790.
[45] R ICARTE , I. L. M. Programao de sistemas: Uma introduo, 2001.
[46] ROSIN , C. D., E B ELEW, R. K. New methods for competitive coevolution. Evolutionary Computation 5, 1 (1997), 129.
[47] ROUWHORST, S. E., E E NGELBRECHT, A. P. Searching the forest: Using decision
trees as building blocks for evolutionary search in classification databases. In Proc.
of the 2000 Congress on Evolutionary Computation (Piscataway, NJ, 2000), IEEE
Service Center, pp. 633638.
[48] RYAN , C., C OLLINS , J. J., E O N EILL , M. Grammatical evolution: Evolving
programs for an arbitrary language. In Proceedings of the First European Workshop
on Genetic Programming (Paris, 14-15 1998), W. Banzhaf, R. Poli, M. Schoenauer,
e T. C. Fogarty, Eds., vol. 1391, Springer-Verlag, pp. 8395.
[49] S MITH , J., E F OGARTY, T. C. Self adaptation of mutation rates in a steady state genetic algorithm. In International Conference on Evolutionary Computation (1996),
pp. 318323.
[50] S URRY, P. D., E R ADCLIFFE , N. J. Real representations. In Foundations of Genetic
Algorithms 4, R. K. Belew e M. D. Vose, Eds. Morgan Kaufmann, San Francisco,
CA, 1997, pp. 343363.
[51] T HRUN , S. B., BALA , J., B LOEDORN , E., B RATKO , I., C ESTNIK , B., C HENG ,
J., J ONG , K. D., D EROSKI , S., FAHLMAN , S. E., F ISHER , D., H AMANN , R.,

REFERNCIAS BIBLIOGRFICAS

149

K AUFMAN , K., K ELLER , S., KONONENKO , I., K REUZIGER , J., M ICHALSKI ,


R. S., M ITCHELL , T., PACHOWICZ , P., R EICH , Y., VAFAIE , H., DE W ELDE ,
W. V., W ENZEL , W., W NEK , J., E Z HANG , J. The MONKs problems: A performance comparison of different learning algorithms. Relatrio Tcnico CS-91-197,
Pittsburgh, PA, 1991.
[52] T USON , A., E ROSS , P. Adapting operator settings in genetic algorithms. Evolutionary Computation 6, 2 (1998), 161184.
[53] VAN B ENEDEN , P. J. Les commensaux et les parasites dans le regne animal [Commensalists and Parasites of the Animal Kingdom]. Paris: G. Bailliere, 1875, 1875.
[54] WALL , M. GAlib: A C++ library of genetic algorithm components, 1996.
[55] WANG , G., D EXTER , T., G OODMAN , E., E P UNCH , W. Optimization of a GA and
within the GA for a 2-dimensional layout problem, 1996.
[56] W HIGHAM , P. A. Grammatically-based genetic programming. In Proceedings of
the Workshop on Genetic Programming: From Theory to Real-World Applications
(Tahoe City, California, USA, 9 1995), J. P. Rosca, Ed., pp. 3341.
[57] W HIGHAM , P. A. Grammatical Bias for Evolutionary Learning. PhD thesis, School
of Computer Science, University College, University of New South Wales, Australian Defence Force Academy, Canberra, Australia, 14 outubro de 1996.