January 6, 2015 2:32 pm

Parallel symbolic regression

 
 
Symbolic regression by Analytical Programming with custom GFS encoding and decoding. GFS in now simple 64bit number which is used to create GFS itself by checking every bit of the number. This number “ID” represents whole GFS and can be understood as mask over all implemented functions. This approach was used to easily create subsets of the GFS. Constants are implemented as well – ready for metaevolution.
 

Mathematical expressions are encoded as simple arrays thanks to AP. Fitness evaluations are recursive as well as “repairing” of pathological arrays=expressions which are immediately replaced so that computation can’t be interrupted. NSThreads are used instead of ^{} blocks and dispatch_async as it was in previous implementation. OpenMP/MPI implementation is not ready yet as well testing AP with Blind Search / Differential evolution / Genetic algorithm – Genetic programming / Hill climbing / Simmulated annealing / Tabu search algorithms.    
Thanks to AP nature any search method can be used for symbolic regression. 
 
 Test function:    
 
(x from -1 to 1)
 
 

Symbolic regression example

 

Initial solution:

During search:

Best solution:


 
 
Wolfram alpha


 
 

Source code

bitbucket.org/cisary/symbolicregressionparallel
 

Info

 

Documentation coming soon

Tagy:

@cisary on twitter


Bitcoin, web applications, constraint processing, AI, soft-computing - evolution inspired algorithms, integration with the blockchain technology and more.    


Contact



Agile Software Development


cisary @ Github cisary @ Bitbutcket






Newest articles





Twitter & Delicious




  • New (beta) website