Reverse engineering of kinetic reaction networks by means of Cartesian Genetic Programming and Particle Swarm Optimization