Evolutionary algorithms for the design of orthogonal Latin squares based on cellular automata