During my PhD research, I leveraged quite a lot from symbolic regression through genetic programming. In turn I used GPLAB for doing a great deal of my work. GPLAB is a famous Matlab toolbox for genetic programming aimed at addressing classification and regression problems. It has been implemented by Sara Silva from Portugal. In its very essence, it is quite comprehensive and thorough. Moreover, due to the very fact that it is written in Matlab, it is quite user-friendly and adaptable as well. If you have a nice algorithm that you want to hybridize with it, you can easily do so by manipulating the m-files of Matlab.
I have been using GPLAB for quite a lot of years now, with my own journey with it starting in it as early as 2006. I made some tweaks to the code. Due to this my own copy of the code has evolved quite a lot during the years. I finally decided to put my copy of it on GitHub. Due to the fact that GPLAB is open source, I don’t think that Sara will have a problem with that. As a matter of fact, she should be happy both because another copy of GPLAB is online and that Sara is a nice person. You can find my copy of the code by linking on the link below. I have made appropriate attributions to it as well. You can fork it, clone it and use it as you wish.
Details About my Tweaks to the Code:
Since I have been changing the code over the years, it would be nice to reflect on the changes I have made over the years.
- The code implements linear scaling as proposed by Maarten Keijzer to its squared error function.
- Lexicographic parsimony pressure as proposed by Sean Luke was implemented.
- A strategy for tournament selection proposed by Stephen Gustafson was implemented.
- The function set now contains unprotected functions that accept any inputs and assign infinities to the results with inadmissible inputs.
Links to the relevant papers are as follows.
If you found an error, highlight it and press Shift + Enter or click here to inform us.