Design and Application of Gene-pool Optimal Mixing Evolutionary Algorithms for Genetic Programming