Adding Knowledge and EÆ ient Data Stru tures to EvolutionaryProgramming : A Cultural Algorithm for Constrained