Modelling rainfall-runoff using genetic programming

Genetic programming is an inductive form of machine learning that evolves a computer program to perform a task defined by a set of presented (training) examples and has been successfully applied to problems that are complex, nonlinear and where the size, shape, and overall form of the solution are not explicitly known in advance. This paper describes the application of a grammatically-based genetic programming system to discover rainfall-runoff relationships for two vastly different catchments. A context-free grammar is used to define the search space for the mathematical language used to express the evolving programs. A daily time series of rainfall-runoff is used to train the evolving population. A deterministic lumped parameter model, based on the unit hydrograph, is compared with the results of the evolved models on an independent data set. The favourable results of the genetic programming approach show that machine learning techniques are potentially a useful tool for developing hydrological models, especially when surface water movement and water losses are poorly understood.