A subshift is a collection of bi-infinite sequences (configurations) of symbols where some finite patterns of symbols are forbidden to occur. A cellular automaton is a transformation that changes each configuration of a subshift into another one by using a finite look-up table that tells how any symbol occurring at any possible context is to be changed. A cellular automaton can be applied repeatedly on the configurations of the subshift, thus making it a dynamical system. This thesis focuses on cellular automata with complex dynamical behavior, with some different definitions of the word “complex”. First we consider a naturally occurring class of cellular automata that we call multiplication automata and we present a case study with the...