The topic of automatically history-matched reservoir models has seen much research activity in recent years. History matching is an example of an inverse problem, and there is significant active research on inverse problems in many other scientific and engineering areas. While many techniques from other fields, such as genetic algorithms, evolutionary strategies, differential evolution, particle swarm optimization, and the ensemble Kalman filter have been tried in the oil industry, more recent and effective ideas have yet to be tested. One of these relatively untested ideas is a class of algorithms known as estimation of distribution algorithms (EDAs). EDAs are population-based algorithms that use probability models to estimate the probability distribution of promising solutions, and then to generate new candidate solutions. EDAs have been shown to be very efficient in very complex high-dimensional problems.An example of a state-of-the-art EDA is the Bayesian optimization algorithm (BOA), which is a multivariate EDA employing Bayesian networks for modeling the relationships between good solutions. The use of a Bayesian network leads to relatively fast convergence as well as high diversity in the matched models. Given the relatively limited number of reservoir simulations used in history matching, EDA-BOA offers the promise of high-quality history matches with a fast convergence rate.In this paper, we introduce EDAs and describe BOA in detail. We show results of the EDA-BOA algorithm on two historymatching problems. First, we tune the algorithm, demonstrate convergence speed, and search diversity on the PUNQ-S3 synthetic case. Second, we apply the algorithm to a real North Sea turbidite field with multiple wells. In both examples, we show improvements in performance over traditional population-based algorithms.
MethodologyEstimation of Distribution Algorithms. Stochastic search algorithms, such as genetic and evolutionary algorithms, exploit knowledge of the distribution of good solutions, amongst those already visited, in order to wisely select new points in the search space to evaluate. In the case of genetic algorithms, this knowledge is stored implicitly in the current population. It is exploited through the application of crossover and mutation operators to the solutions in this population, a process which, it is hoped, will lead to the generation of improved solutions.The success of genetic algorithms is sometimes attributed to the so-called building block hypothesis (Goldberg 1989), whereby it is conjectured that the genetic algorithm efficiently identifies and recombines building blocks (i.e., solution components, or schemata) with above-average fitness. However, in practice, genetic operators often break such partial solutions, especially when these schemata are large, spread widely across the solution, or when operators such as uniform crossover are used.This raises the possibility of an alternative approach: one can attempt to explicitly identify high-quality building blocks and