Saturday, December 28, 2013

Insights on Linkage Learning: Truly Competent Genetic Algorithms

In
the last post we acknowledged that competent GAs are those that automatically
identify building blocks (BBs) and exchange these BBs without disrupting them.
As a simple example, the compact genetic algorithm (cGA) was presented for competently
solving the trap-n functions. In spite of the good results obtained by cGA in these
environments, this algorithm is way too simple for truly tough problems: the m-concatenated trap-n problems, as depicted
in Figure 1. In these kinds of
problems, deceptive trap-n functions are concatenated into a single, bigger
problem.cGA’s probability vector
representation cannot detect the complicated combinations of BBs so, again, a
new strategy to tackle this challenging environments is required: we need an
order-n probabilistic optimization algorithm (in contrast cGA is of order-1).

Figure 1: the 4-concatenated trap-3: It is composed of four trap-3 functions and the objective is to find 111111111111, but the problem is deceptive and guides the learner towards 000000000000 (a local optima!). Click to enlarge.

Following
the initial steps of primeval estimation-distribution algorithms (EDAs), a
complex probabilistic model is used to detect BBs (instead of the simple
probability vector). One of the most successful EDAs that use such idea is the
extended compact genetic algorithm (ECGA) [1]. This algorithm works by detecting
the trap sub-functions and then computing the proportions of all the m-combinations
of n-bits in the corresponding string positions. ECGA does this by learning
marginal product models (MPMs). The idea
behind it is that the MPM contains the probabilities of each combination of BB
and these are used to model and sample forthcoming populations. In this regard,
to obtain the right combination of BB the algorithm uses a combined complexity
criterion (CC): it greedily tries to minimize the amount of bits required to describe
the model while being accurate.

ECGA
works as in the following (rather simplified) pseudocode:

It first generates a random population of size
N.

Evaluate the fitness of each individual.

Generate the first MPM model assuming that all
the variables are independent and then compute CC.

Compact the current MPM greedily (newMPM) trying
the combination of BB with better score (newCC).