This thesis describes a novel technique for learning predictive models from nondeterministic spatio-temporal data. The prediction models are represented as a production system, which requires two parts: a set of production rules, and a conflict resolver. The production rules model different, typically independent, aspects of the spatio-temporal data. The conflict resolver is used to decide which sub-set of enabled production rules should be fired to produce a prediction. The conflict resolver in this thesis can probabilistically decide which set of production rules to fire, and allows the system to predict in non-deterministic situations. The predictive models are learnt by a novel technique called Spatio-Temporal Genetic Programming (STGP). STGP has been compared against the following methods: an Inductive Logic Programming system (Progol), Stochastic Logic Programs, Neural Networks, Bayesian Networks and C4.5, on learning the rules of card games, and predicting a person’s course through a network of CCTV cameras. This thesis also describes the incorporation of qualitative temporal relations within these methods. Allen’s intervals , plus a set of four novel temporal state relations, which relate temporal intervals to the current time are used. The methods are evaluated on the card game Uno, and predicting a person’s course through a network of CCTV cameras. This work is then extended to allow the methods to use qualitative spatial relations. The methods are evaluated on predicting a person’s course through a network of CCTV cameras, aircraft turnarounds, and the game of Tic Tac Toe. Finally, an adaptive bloat control method is shown. This looks at adapting the amount of bloat control used during a run of STGP, based on the ratio of the fitness of the current best predictive model to the initial fitness of the best predictive model.