partitioning cellular automata