Kozax: Flexible and Scalable Genetic Programming in JAX
This provides a scalable tool for researchers and practitioners in scientific computing to optimize interpretable programs, though it is incremental as it builds on existing genetic programming and JAX methods.
The authors tackled the high computational cost and lack of efficient frameworks in genetic programming by developing Kozax, a framework built on JAX that scales fitness evaluation to large populations or datasets on GPU, enabling applications like discovering natural laws and evolving control policies.
Genetic programming is an optimization algorithm inspired by evolution which automatically evolves the structure of interpretable computer programs. The fitness evaluation in genetic programming suffers from high computational requirements, limiting the performance on difficult problems. Consequently, there is no efficient genetic programming framework that is usable for a wide range of tasks. To this end, we developed Kozax, a genetic programming framework that evolves symbolic expressions for arbitrary problems. We implemented Kozax using JAX, a framework for high-performance and scalable machine learning, which allows the fitness evaluation to scale efficiently to large populations or datasets on GPU. Furthermore, Kozax offers constant optimization, custom operator definition and simultaneous evolution of multiple trees. We demonstrate successful applications of Kozax to discover equations of natural laws, recover equations of hidden dynamic variables, evolve a control policy and optimize an objective function. Overall, Kozax provides a general, fast, and scalable library to optimize white-box solutions in the realm of scientific computing.