# Estimation of distribution algorithm

Estimation of distribution algorithm. For each iteration i, a random draw is performed for a population P in a distribution PDu. The distribution parameters PDe are then estimated using the selected points PS. The illustrated example optimizes a continuous objective function f(X) with a unique optimum O. The sampling (following a normal distribution N) concentrates around the optimum as one goes along unwinding algorithm.

Estimation of distribution algorithms (EDAs), sometimes called probabilistic model-building genetic algorithms (PMBGAs),[1] are stochastic optimization methods that guide the search for the optimum by building and sampling explicit probabilistic models of promising candidate solutions. Optimization is viewed as a series of incremental updates of a probabilistic model, starting with the model encoding the uniform distribution over admissible solutions and ending with the model that generates only the global optima.[2][3][4]

EDAs belong to the class of evolutionary algorithms. The main difference between EDAs and most conventional evolutionary algorithms is that evolutionary algorithms generate new candidate solutions using an implicit distribution defined by one or more variation operators, whereas EDAs use an explicit probability distribution encoded by a Bayesian network, a multivariate normal distribution, or another model class. Similarly as other evolutionary algorithms, EDAs can be used to solve optimization problems defined over a number of representations from vectors to LISP style S expressions, and the quality of candidate solutions is often evaluated using one or more objective functions.

The general procedure of an EDA is outlined in the following:

t = 0
initialize model M(0) to represent uniform distribution over admissible solutions
while (termination criteria not met)
P = generate N>0 candidate solutions by sampling M(t)
F = evaluate all candidate solutions in P
t = t + 1


Using explicit probabilistic models in optimization allowed EDAs to feasibly solve optimization problems that were notoriously difficult for most conventional evolutionary algorithms and traditional optimization techniques, such as problems with high levels of epistasis[citation needed]. Nonetheless, the advantage of EDAs is also that these algorithms provide an optimization practitioner with a series of probabilistic models that reveal a lot of information about the problem being solved. This information can in turn be used to design problem-specific neighborhood operators for local search, to bias future runs of EDAs on a similar problem, or to create an efficient computational model of the problem.

For example, if the population is represented by bit strings of length 4, the EDA can represent the population of promising solution using a single vector of four probabilities (p1, p2, p3, p4) where each component of p defines the probability of that position being a 1. Using this probability vector it is possible to create an arbitrary number of candidate solutions.

## Estimation of distribution algorithms (EDAs)

This section describes the models built by some well known EDAs of different levels of complexity. It is always assumed a population ${\displaystyle P(t)}$ at the generation ${\displaystyle t}$, a selection operator ${\displaystyle S}$, a model-building operator ${\displaystyle \alpha }$ and a sampling operator ${\displaystyle \beta }$.

## Univariate factorizations

The most simple EDAs assume that decision variables are independent, i.e. ${\displaystyle p(X_{1},X_{2})=p(X_{1})\cdot p(X_{2})}$. Therefore, univariate EDAs rely only on univariate statistics and multivariate distributions must be factorized as the product of ${\displaystyle N}$ univariate probability distributions,

${\displaystyle D_{\text{Univariate}}:=p(X_{1},\dots ,X_{N})=\prod _{i=1}^{N}p(X_{i}).}$

Such factorizations are used in many different EDAs, next we describe some of them.

### Univariate marginal distribution algorithm (UMDA)

The UMDA[5] is a simple EDA that uses an operator ${\displaystyle \alpha _{UMDA}}$ to estimate marginal probabilities from a selected population ${\displaystyle S(P(t))}$. By assuming ${\displaystyle S(P(t))}$ contain ${\displaystyle \lambda }$ elements, ${\displaystyle \alpha _{UMDA}}$ produces probabilities:

${\displaystyle p_{t+1}(X_{i})={\dfrac {1}{\lambda }}\sum _{x\in S(P(t))}x_{i},~\forall i\in 1,2,\dots ,N.}$

Every UMDA step can be described as follows

${\displaystyle D(t+1)=\alpha _{\text{UMDA}}\circ S\circ \beta _{\lambda }(D(t)).}$

### Population-based incremental learning (PBIL)

The PBIL,[6] represents the population implicitly by its model, from which it samples new solutions and updates the model. At each generation, ${\displaystyle \mu }$ individuals are sampled and ${\displaystyle \lambda \leq \mu }$ are selected. Such individuals are then used to update the model as follows

${\displaystyle p_{t+1}(X_{i})=(1-\gamma )p_{t}(X_{i})+(\gamma /\lambda )\sum _{x\in S(P(t))}x_{i},~\forall i\in 1,2,\dots ,N,}$

where ${\displaystyle \gamma \in (0,1]}$ is a parameter defining the learning rate, a small value determines that the previous model ${\displaystyle p_{t}(X_{i})}$ should be only slightly modified by the new solutions sampled. PBIL can be described as

${\displaystyle D(t+1)=\alpha _{\text{PIBIL}}\circ S\circ \beta _{\mu }(D(t))}$

### Compact genetic algorithm (cGA)

The CGA,[7] also relies on the implicit populations defined by univariate distributions. At each generation ${\displaystyle t}$, two individuals ${\displaystyle x,y}$ are sampled, ${\displaystyle P(t)=\beta _{2}(D(t))}$. The population ${\displaystyle P(t)}$ is then sort in decreasing order of fitness, ${\displaystyle S_{{\text{Sort}}(f)}(P(t))}$, with ${\displaystyle u}$ being the best and ${\displaystyle v}$ being the worst solution. The CGA estimates univariate probabilities as follows

${\displaystyle p_{t+1}(X_{i})=p_{t}(X_{i})+\gamma (u_{i}-v_{i}),\quad \forall i\in 1,2,\dots ,N,}$

where, ${\displaystyle \gamma \in (0,1]}$ is a constant defining the learning rate, usually set to ${\displaystyle \gamma =1/N}$. The CGA can be defined as

${\displaystyle D(t+1)=\alpha _{\text{CGA}}\circ S_{{\text{Sort}}(f)}\circ \beta _{2}(D(t))}$

## Bivariate factorizations

Although univariate models can be computed efficiently, in many cases they are not representative enough to provide better performance than GAs. In order to overcome such a drawback, the use of bivariate factorizations was proposed in the EDA community, in which dependencies between pairs of variables could be modeled. A bivariate factorization can be defined as follows, where ${\displaystyle \pi _{i}}$ contains a possible variable dependent to ${\displaystyle X_{i}}$, i.e. ${\displaystyle |\pi _{i}|=1}$.

${\displaystyle D_{\text{Bivariate}}:=p(X_{1},\dots ,X_{N})=\prod _{i=1}^{N}p(X_{i}|\pi _{i}).}$

Bivariate and multivariate distributions are usually represented as Probabilistic Graphical Models (graphs), in which edges denote statistical dependencies (or conditional probabilities) and vertices denote variables. To learn the structure of a PGM from data linkage-learning is employed.

### Mutual information maximizing input clustering (MIMIC)

The MIMIC[8] factorizes the joint probability distribution in a chain-like model representing successive dependencies between variables. It finds a permutation of the decision variables, ${\displaystyle r:i\mapsto j}$, such that ${\displaystyle x_{r(1)}x_{r(2)},\dots ,x_{r(N)}}$ minimizes the Kullback-Leibler divergence in relation to the true probability distribution, i.e. ${\displaystyle \pi _{r(i+1)}=\{X_{r(i)}\}}$. MIMIC models a distribution

${\displaystyle p_{t+1}(X_{1},\dots ,X_{N})=p_{t}(X_{r(N)})\prod _{i=1}^{N-1}p_{t}(X_{r(i)}|X_{r(i+1)}).}$

New solutions are sampled from the leftmost to the rightmost variable, the first is generated independently and the others according to conditional probabilities. Since the estimated distribution must be recomputed each generation, MIMIC uses concrete populations in the following way

${\displaystyle P(t+1)=\beta _{\mu }\circ \alpha _{\text{MIMIC}}\circ S(P(t)).}$

### Bivariate marginal distribution algorithm (BMDA)

The BMDA[9] factorizes the joint probability distribution in bivariate distributions. First, a randomly chosen variable is added as a node in a graph, the most dependent variable to one of those in the graph is chosen among those not yet in the graph, this procedure is repeated until no remaining variable depends on any variable in the graph (verified according to a threshold value).

The resulting model is a forest with multiple trees rooted at nodes ${\displaystyle \Upsilon _{t}}$. Considering ${\displaystyle I_{t}}$ the non-root variables, BMDA estimates a factorized distribution in which the root variables can be sampled independently, whereas all the others must be conditioned to the parent variable ${\displaystyle \pi _{i}}$.

${\displaystyle p_{t+1}(X_{1},\dots ,X_{N})=\prod _{X_{i}\in \Upsilon _{t}}p_{t}(X_{i})\cdot \prod _{X_{i}\in I_{t}}p_{t}(X_{i}|\pi _{i}).}$

Each step of BMDA is defined as follows

${\displaystyle P(t+1)=\beta _{\mu }\circ \alpha _{\text{BMDA}}\circ S(P(t)).}$

## Multivariate factorizations

The next stage of EDAs development was the use of multivariate factorizations. In this case, the joint probability distribution is usually factorized in a number of components of limited size ${\displaystyle |\pi _{i}|\leq K,~\forall i\in 1,2,\dots ,N}$.

${\displaystyle p(X_{1},\dots ,X_{N})=\prod _{i=1}^{N}p(X_{i}|\pi _{i})}$

The learning of PGMs encoding multivariate distributions is a computationally expensive task, therefore, it is usual for EDAs to estimate multivariate statistics from bivariate statistics. Such relaxation allows PGM to be built in polynomial time in ${\displaystyle N}$; however, it also limits the generality of such EDAs.

### Extended compact genetic algorithm (eCGA)

The ECGA[10] was one of the first EDA to employ multivariate factorizations, in which high-order dependencies among decision variables can be modeled. Its approach factorizes the joint probability distribution in the product of multivariate marginal distributions. Assume ${\displaystyle T_{\text{eCGA}}=\{\tau _{1},\dots ,\tau _{\Psi }\}}$ is a set of subsets, in which every ${\displaystyle \tau \in T_{\text{eCGA}}}$ is a linkage set, containing ${\displaystyle |\tau |\leq K}$ variables. The factorized joint probability distribution is represented as follows

${\displaystyle p(X_{1},\dots ,X_{N})=\prod _{\tau \in T_{\text{eCGA}}}p(\tau ).}$

The ECGA popularized the term "linkage-learning" as denoting procedures that identify linkage sets. Its linkage-learning procedure relies on two measures: (1) the Model Complexity (MC) and (2) the Compressed Population Complexity (CPC). The MC quantifies the model representation size in terms of number of bits required to store all the marginal probabilities

${\displaystyle MC=\log _{2}(\lambda +1)\sum _{\tau \in T_{\text{eCGA}}}(2^{|\tau |-1}),}$

The CPC, on the other hand, quantifies the data compression in terms of entropy of the marginal distribution over all partitions, where ${\displaystyle \lambda }$ is the selected population size, ${\displaystyle |\tau |}$ is the number of decision variables in the linkage set ${\displaystyle \tau }$ and ${\displaystyle H(\tau )}$ is the joint entropy of the variables in ${\displaystyle \tau }$

${\displaystyle CPC=\lambda \sum _{\tau \in T_{\text{eCGA}}}H(\tau ).}$

The linkage-learning in ECGA works as follows: (1) Insert each variable in a cluster, (2) compute CCC = MC + CPC of the current linkage sets, (3) verify the increase on CCC provided by joining pairs of clusters, (4) effectively joins those clusters with highest CCC improvement. This procedure is repeated until no CCC improvements are possible and produces a linkage model ${\displaystyle T_{\text{eCGA}}}$. The ECGA works with concrete populations, therefore, using the factorized distribution modeled by ECGA, it can be described as

${\displaystyle P(t+1)=\beta _{\mu }\circ \alpha _{\text{eCGA}}\circ S(P(t))}$

### Bayesian optimization algorithm (BOA)

The BOA[11][12][13] uses Bayesian networks to model and sample promising solutions. Bayesian networks are directed acyclic graphs, with nodes representing variables and edges representing conditional probabilities between pair of variables. The value of a variable ${\displaystyle x_{i}}$ can be conditioned on a maximum of ${\displaystyle K}$ other variables, defined in ${\displaystyle \pi _{i}}$. BOA builds a PGM encoding a factorized joint distribution, in which the parameters of the network, i.e. the conditional probabilities, are estimated from the selected population using the maximum likelihood estimator.

${\displaystyle p(X_{1},X_{2},\dots ,X_{N})=\prod _{i=1}^{N}p(X_{i}|\pi _{i}).}$

The Bayesian network structure, on the other hand, must be built iteratively (linkage-learning). It starts with a network without edges and, at each step, adds the edge which better improves some scoring metric (e.g. Bayesian information criterion (BIC) or Bayesian-Dirichlet metric with likelihood equivalence (BDe)).[14] The scoring metric evaluates the network structure according to its accuracy in modeling the selected population. From the built network, BOA samples new promising solutions as follows: (1) it computes the ancestral ordering for each variable, each node being preceded by its parents; (2) each variable is sampled conditionally to its parents. Given such scenario, every BOA step can be defined as

${\displaystyle P(t+1)=\beta _{\mu }\circ \alpha _{\text{BOA}}\circ S(P(t))}$

The LTGA[15] differs from most EDA in the sense it does not explicitly model a probabilisty distribution but only a linkage model, called linkage-tree. A linkage ${\displaystyle T}$ is a set of linkage sets with no probability distribution associated, therefore, there is no way to sample new solutions directly from ${\displaystyle T}$. The linkage model is a linkage-tree produced stored as a Family of sets (FOS).

${\displaystyle T_{\text{LT}}=\{\{x_{1}\},\{x_{2}\},\{x_{3}\},\{x_{4}\},\{x_{1},x_{2}\},\{x_{3},x_{4}\}\}.}$

The linkage-tree learning procedure is a hierarchical clustering algorithm, which work as follows. At each step the two closest clusters ${\displaystyle i}$ and ${\displaystyle j}$ are merged, this procedure repeats until only one cluster remains, each subtree is stored as a subset ${\displaystyle \tau \in T_{\text{LT}}}$.

The LTGA uses ${\displaystyle T_{\text{LT}}}$ to guide an "optimal mixing" procedure which resembles a recombination operator but only accepts improving moves. We denote it as ${\displaystyle R_{\text{LTGA}}}$, where the notation ${\displaystyle x[\tau ]\gets y[\tau ]}$ indicates the transfer of the genetic material indexed by ${\displaystyle \tau }$ from ${\displaystyle y}$ to ${\displaystyle x}$.

Algorithm Gene-pool optimal mixing
Input: A family of subsets ${\displaystyle T_{\text{LT}}}$ and a population ${\displaystyle P(t)}$
Output: A population ${\displaystyle P(t+1)}$.
for each ${\displaystyle x_{i}}$ in ${\displaystyle P(t)}$ do
for each ${\displaystyle \tau }$ in ${\displaystyle T_{\text{LT}}}$ do
choose a random ${\displaystyle x_{j}\in P(t):x_{i}\neq x_{j}}$
${\displaystyle f_{x_{i}}}$ := ${\displaystyle f(x_{i})}$
${\displaystyle x_{i}[\tau ]}$:= ${\displaystyle x_{j}[\tau ]}$
if ${\displaystyle f(x_{i})\leq f_{x_{i}}}$ then
${\displaystyle x_{i}[\tau ]:=x_{j}[\tau ]}$
return ${\displaystyle P(t)}$

• "←" denotes assignment. For instance, "largestitem" means that the value of largest changes to the value of item.
• "return" terminates the algorithm and outputs the following value.

The LTGA does not implement typical selection operators, instead, selection is performed during recombination. Similar ideas have been usually applied into local-search heuristics and, in this sense, the LTGA can be seen as an hybrid method. In summary, one step of the LTGA is defined as

${\displaystyle P(t+1)=R_{\text{LTGA}}(P(t))\circ \alpha _{\text{LTGA}}(P(t))}$

## Other

• Probability collectives (PC)[16][17]
• Hill climbing with learning (HCwL)[18]
• Estimation of multivariate normal algorithm (EMNA)[citation needed]
• Estimation of Bayesian networks algorithm (EBNA)[citation needed]
• Stochastic hill climbing with learning by vectors of normal distributions (SHCLVND)[19]
• Real-coded PBIL[citation needed]
• Selfish Gene Algorithm (SG)[20]
• Compact Differential Evolution (cDE)[21] and its variants[22][23][24][25][26][27]
• Compact Particle Swarm Optimization (cPSO)[28]
• Compact Bacterial Foraging Optimization (cBFO)[29]
• Probabilistic incremental program evolution (PIPE)[30]
• Estimation of Gaussian networks algorithm (EGNA)[citation needed]
• Estimation multivariate normal algorithm with thresheld convergence[31]

## References

1. ^ Pelikan, Martin (2005-02-21), "Probabilistic Model-Building Genetic Algorithms", Hierarchical Bayesian Optimization Algorithm, Springer Berlin Heidelberg, pp. 13–30, doi:10.1007/978-3-540-32373-0_2, ISBN 9783540237747, retrieved 2018-06-16
2. ^ Pedro Larrañaga; Jose A. Lozano (2002). Estimation of Distribution Algorithms a New Tool for Evolutionary Computation. Boston, MA: Springer US. ISBN 978-1-4615-1539-5.
3. ^ Jose A. Lozano; Larrañaga, P.; Inza, I.; Bengoetxea, E. (2006). Towards a new evolutionary computation advances in the estimation of distribution algorithms. Berlin: Springer. ISBN 978-3-540-32494-2.
4. ^ Pelikan, Martin; Sastry, Kumara; Cantú-Paz, Erick (2006). Scalable optimization via probabilistic modeling : from algorithms to applications ; with 26 tables. Berlin: Springer. ISBN 3540349537.
5. ^ Mühlenbein, Heinz (1 September 1997). "The Equation for Response to Selection and Its Use for Prediction". Evol. Computation. 5 (3): 303–346. doi:10.1162/evco.1997.5.3.303. ISSN 1063-6560.
6. ^ Baluja, Shummet (1 January 1994). "Population-Based Incremental Learning: A Method for Integrating Genetic Search Based Function Optimization and Competitive Learning". Carnegie Mellon University.
7. ^ Harik, G.R.; Lobo, F.G.; Goldberg, D.E. (1999). "The compact genetic algorithm". IEEE Transactions on Evolutionary Computation. 3 (4): 287–297. doi:10.1109/4235.797971.
8. ^ Bonet, Jeremy S. De; Isbell, Charles L.; Viola, Paul (1 January 1996). "MIMIC: Finding Optima by Estimating Probability Densities". Advances in Neural Information Processing Systems. The MIT Press: 424.
9. ^ Pelikan, Martin; Muehlenbein, Heinz (1 January 1999). "The Bivariate Marginal Distribution Algorithm". Advances in Soft Computing. Springer London: 521–535. doi:10.1007/978-1-4471-0819-1_39.
10. ^ Harik, Georges Raif. Learning Gene Linkage to Efficiently Solve Problems of Bounded Difficulty Using Genetic Algorithms. University of Michigan.
11. ^ Pelikan, Martin; Goldberg, David E.; Cantu-Paz, Erick (1 January 1999). "BOA: The Bayesian Optimization Algorithm". Morgan Kaufmann: 525–532.
12. ^ Pelikan, Martin (2005). Hierarchical Bayesian optimization algorithm : toward a new generation of evolutionary algorithms (1st ed.). Berlin [u.a.]: Springer. ISBN 978-3-540-23774-7.
13. ^ Wolpert, David H.; Rajnarayan, Dev (1 January 2013). "Using Machine Learning to Improve Stochastic Optimization". Proceedings of the 17th AAAI Conference on Late-Breaking Developments in the Field of Artificial Intelligence. AAAI Press: 146–148.
14. ^ Larrañaga, Pedro; Karshenas, Hossein; Bielza, Concha; Santana, Roberto (21 August 2012). "A review on probabilistic graphical models in evolutionary computation". Journal of Heuristics. 18 (5): 795–819. doi:10.1007/s10732-012-9208-4.
15. ^ Thierens, Dirk (11 September 2010). "The Linkage Tree Genetic Algorithm". Parallel Problem Solving from Nature, PPSN XI. Springer Berlin Heidelberg: 264–273. doi:10.1007/978-3-642-15844-5_27.
16. ^ WOLPERT, DAVID H.; STRAUSS, CHARLIE E. M.; RAJNARAYAN, DEV (December 2006). "ADVANCES IN DISTRIBUTED OPTIMIZATION USING PROBABILITY COLLECTIVES". Advances in Complex Systems. 09 (04): 383–436. doi:10.1142/S0219525906000884.
17. ^ Pelikan, Martin; Goldberg, David E.; Lobo, Fernando G. (2002). "A Survey of Optimization by Building and Using Probabilistic Models". Computational Optimization and Applications. 21 (1): 5–20. doi:10.1023/A:1013500812258.
18. ^ Rudlof, Stephan; Köppen, Mario (1997). "Stochastic Hill Climbing with Learning by Vectors of Normal Distributions".
19. ^ Rudlof, Stephan; Köppen, Mario (1997). "Stochastic Hill Climbing with Learning by Vectors of Normal Distributions": 60––70.
20. ^ Corno, Fulvio; Reorda, Matteo Sonza; Squillero, Giovanni (1998-02-27). "The selfish gene algorithm: a new evolutionary optimization strategy". ACM: 349–355. doi:10.1145/330560.330838. ISBN 0897919696.
21. ^ Mininno, Ernesto; Neri, Ferrante; Cupertino, Francesco; Naso, David (2011). "Compact Differential Evolution". IEEE Transactions on Evolutionary Computation. 15 (1): 32–54. doi:10.1109/tevc.2010.2058120. ISSN 1089-778X.
22. ^ Iacca, Giovanni; Caraffini, Fabio; Neri, Ferrante (2012). "Compact Differential Evolution Light: High Performance Despite Limited Memory Requirement and Modest Computational Overhead". Journal of Computer Science and Technology. 27 (5): 1056–1076. doi:10.1007/s11390-012-1284-2. ISSN 1000-9000.
23. ^ Iacca, Giovanni; Neri, Ferrante; Mininno, Ernesto (2011), "Opposition-Based Learning in Compact Differential Evolution", Applications of Evolutionary Computation, Springer Berlin Heidelberg, pp. 264–273, doi:10.1007/978-3-642-20525-5_27, ISBN 9783642205248, retrieved 2018-06-15
24. ^ Mallipeddi, Rammohan; Iacca, Giovanni; Suganthan, Ponnuthurai Nagaratnam; Neri, Ferrante; Mininno, Ernesto (2011). "Ensemble strategies in Compact Differential Evolution". 2011 IEEE Congress of Evolutionary Computation (CEC). IEEE. doi:10.1109/cec.2011.5949857. ISBN 9781424478347.
25. ^ Neri, Ferrante; Iacca, Giovanni; Mininno, Ernesto (2011). "Disturbed Exploitation compact Differential Evolution for limited memory optimization problems". Information Sciences. 181 (12): 2469–2487. doi:10.1016/j.ins.2011.02.004. ISSN 0020-0255.
26. ^ Iacca, Giovanni; Mallipeddi, Rammohan; Mininno, Ernesto; Neri, Ferrante; Suganthan, Pannuthurai Nagaratnam (2011). "Global supervision for compact Differential Evolution". 2011 IEEE Symposium on Differential Evolution (SDE). IEEE. doi:10.1109/sde.2011.5952051. ISBN 9781612840710.
27. ^ Iacca, Giovanni; Mallipeddi, Rammohan; Mininno, Ernesto; Neri, Ferrante; Suganthan, Pannuthurai Nagaratnam (2011). "Super-fit and population size reduction in compact Differential Evolution". 2011 IEEE Workshop on Memetic Computing (MC). IEEE. doi:10.1109/mc.2011.5953633. ISBN 9781612840659.
28. ^ Neri, Ferrante; Mininno, Ernesto; Iacca, Giovanni (2013). "Compact Particle Swarm Optimization". Information Sciences. 239: 96–121. doi:10.1016/j.ins.2013.03.026. ISSN 0020-0255.
29. ^ Iacca, Giovanni; Neri, Ferrante; Mininno, Ernesto (2012), "Compact Bacterial Foraging Optimization", Swarm and Evolutionary Computation, Springer Berlin Heidelberg, pp. 84–92, doi:10.1007/978-3-642-29353-5_10, ISBN 9783642293528, retrieved 2018-06-15
30. ^ Salustowicz, null; Schmidhuber, null (1997). "Probabilistic incremental program evolution". Evolutionary Computation. 5 (2): 123–141. ISSN 1530-9304. PMID 10021756.
31. ^ Tamayo-Vera, Dania; Bolufe-Rohler, Antonio; Chen, Stephen (2016). "Estimation multivariate normal algorithm with thresheld convergence". 2016 IEEE Congress on Evolutionary Computation (CEC). IEEE. doi:10.1109/cec.2016.7744223. ISBN 9781509006236.