Evolving robust cellular automata rules with genetic programming