Genetic programming was derived from the model of biological evolution. At first we generate random trees that holds p, r, h strings and " * , / , +, -" operations as string. As you know, area of the cylinder is 2xpxrxh and volume is pxr^2xh. Then we randomly crossover tree's genes that generated randomly. After crossovers our radiation session starts! We randomly mutate our trees genes. At last, we kill all the trees that are under some threshold. Repeat these steps until there are few trees left. Finally, we can print all the remaining trees!