Contrary to heuristic selection which has been widely employed in the literature, heuristic generation has been recently introduced to provide an automatic way of generating heuristics without the necessity of a preexisting set of heuristics. They do not search in the space of heuristics but in the space of components in order to create novel heuristics. For example, Genetic Algorithm (GA) has been used successfully in [46] to evolve policy matrices to tackle the online bin packing problem. Contrary to GA, GP evolve programs which are encoded as syntax trees. A program has therefore no predefined size contrary to solution encoding in GA. The suitability of GP to produce heuristics has been established by Fukunaga in [47] for the SAT problem. GP has the major advantage to automatize the assembly of the components required to create a heuristic. Nevertheless, recent approaches such as Cartesian GP and Grammar-based GP are improvements of the classical GP. Cartesian GP is an alternative form of GP that encodes a graph representation of a computer program. Cartesian GP defines explicitly a size preventing bloat but can be verysensitive to parameters. In Grammar-based GPs ,a grammar in Backus-Naur Form (BNF) is considered to map linear genotypes to phenotype trees and have less structural difficulties than a classical GP. Heuristic generation encountered real successes in combinatorial optimization problems , and more specifically in cutting and packing , scheduling and other additional domains such as function optimization , real-time logistics.