GPLAB
A Genetic Programming Toolbox for MATLAB
Sara Silva
ECOS - Evolutionary and Complex Systems Group
University of Coimbra
Portugal
Version 3
April 2007
Contents
1 Introduction 6
1.1 Update from version 2.x . . . . . . . . . . . . . . . . . . . . . . . 6
1.2 Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2 Operational structure 8
2.1 Main modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.1 GEN POP . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.2 GENERATION . . . . . . . . . . . . . . . . . . . . . . . . 10
2.1.3 SET VARS . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2 Working variables . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3 Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3.1 The layman . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3.2 The regular user . . . . . . . . . . . . . . . . . . . . . . . 12
2.3.3 The advance d researcher . . . . . . . . . . . . . . . . . . . 13
2.4 Plug and play . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.4.1 Building plug and play functions . . . . . . . . . . . . . . 13
2.4.2 Using new plug and play functions . . . . . . . . . . . . . 13
2.4.3 Integrating new plug and play functions in GPLAB . . . 14
3 Parameters 16
3.1 Tree initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.2 Tree depth and size limits . . . . . . . . . . . . . . . . . . . . . . 20
3.3 Functions and terminals . . . . . . . . . . . . . . . . . . . . . . . 22
3.4 Genetic operators . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.5 Validating new individuals . . . . . . . . . . . . . . . . . . . . . . 26
3.6 Selection for reproduction . . . . . . . . . . . . . . . . . . . . . . 28
3.7 Expected number of children . . . . . . . . . . . . . . . . . . . . 29
3.8 Measuring fitness - data files . . . . . . . . . . . . . . . . . . . . 30
3.9 Measuring fitness - raw and adjusted . . . . . . . . . . . . . . . . 31
3.10 Measuring complexity and diversity . . . . . . . . . . . . . . . . . 33
3.11 Generation gap . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.12 Survival . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.13 Limited resources . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.14 Dynamic populations . . . . . . . . . . . . . . . . . . . . . . . . . 37
1
3.15 Operator probabilities in runtime . . . . . . . . . . . . . . . . . . 37
3.16 Initial operator probabilities . . . . . . . . . . . . . . . . . . . . . 39
3.17 Stop conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.18 Saving results to file . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.19 Runtime textual output . . . . . . . . . . . . . . . . . . . . . . . 40
3.20 Runtime graphical output . . . . . . . . . . . . . . . . . . . . . . 41
4 State 45
4.1 Population . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.2 Tree depth/size . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.3 Functions and terminals . . . . . . . . . . . . . . . . . . . . . . . 48
4.4 Operator probabilities and frequencies . . . . . . . . . . . . . . . 48
4.5 Population fit ness . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.6 Fitness statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.7 Best individual . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.8 Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.9 Complexity and diversity statistics/history . . . . . . . . . . . . 51
4.10 Resources and variable size populations . . . . . . . . . . . . . . 51
5 Offline graphical output 52
5.1 Accuracy versus Complexity . . . . . . . . . . . . . . . . . . . . . 52
5.2 Pareto front . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.3 Desired versus Obtained . . . . . . . . . . . . . . . . . . . . . . . 52
5.4 Operator Evolution . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.5 Tree visualization . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
6 Summary of toolbox functions 56
6.1 Demonstration functions . . . . . . . . . . . . . . . . . . . . . . . 56
6.2 Running the algorithm and testing result . . . . . . . . . . . . . 56
6.3 Parameter and state setting . . . . . . . . . . . . . . . . . . . . . 56
6.4 Automatic variable checking . . . . . . . . . . . . . . . . . . . . . 57
6.5 Description of parameter and state variables . . . . . . . . . . . . 57
6.6 Creation of new generations . . . . . . . . . . . . . . . . . . . . . 57
6.7 Creation of new individuals . . . . . . . . . . . . . . . . . . . . . 58
6.8 Filtering of new individuals . . . . . . . . . . . . . . . . . . . . . 58
6.9 Protected and logical functions . . . . . . . . . . . . . . . . . . . 58
6.10 Artificial ant functions . . . . . . . . . . . . . . . . . . . . . . . . 59
6.11 Tree manipulation . . . . . . . . . . . . . . . . . . . . . . . . . . 59
6.12 Data manipulation . . . . . . . . . . . . . . . . . . . . . . . . . . 60
6.13 Expected number of children . . . . . . . . . . . . . . . . . . . . 60
6.14 Sampling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
6.15 Genetic operators . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
6.16 Fitness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
6.17 Survival . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
6.18 Limited resources . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
6.19 Dynamic populations . . . . . . . . . . . . . . . . . . . . . . . . . 61
2
6.20 Diversity measures . . . . . . . . . . . . . . . . . . . . . . . . . . 62
6.21 Automatic operator probability adaptat ion . . . . . . . . . . . . 62
6.22 Runtime graphical output . . . . . . . . . . . . . . . . . . . . . . 62
6.23 Offline graphical output . . . . . . . . . . . . . . . . . . . . . . . 62
6.24 Utilitarian functions . . . . . . . . . . . . . . . . . . . . . . . . . 63
6.25 Text input files . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
6.26 Octave functions . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
6.27 License file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
A Modified functions
in GPLAB 3 67
B New functions
in GPLAB 3 71
3
List of Tables
3.1 Location of parameters in this manual . . . . . . . . . . . . . . . 16
3.1 continued . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.1 continued . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2 Possible and default values of the parameters . . . . . . . . . . . 18
3.2 continued . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.3 Protected and logical functions for use with GPLAB . . . . . . . 23
3.4 List of filters for each combination of parameters . . . . . . . . . 27
4.1 Location of state variables in this manual . . . . . . . . . . . . . 45
4.1 continued . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4