The constructive cooperative coevolutionary algorithm (also called C
3) is a
global optimisation
Global optimization is a branch of applied mathematics and numerical analysis that attempts to find the global minima or maxima of a function or a set of functions on a given set. It is usually described as a minimization problem because the max ...
algorithm in
artificial intelligence
Artificial intelligence (AI) is intelligence—perceiving, synthesizing, and inferring information—demonstrated by machines, as opposed to intelligence displayed by animals and humans. Example tasks in which this is done include speech re ...
based on the multi-start architecture of the
greedy randomized adaptive search procedure
The greedy randomized adaptive search procedure (also known as GRASP) is a metaheuristic algorithm commonly applied to combinatorial optimization problems. GRASP typically consists of iterations made up from successive constructions of a greedy r ...
(GRASP). It incorporates the existing
cooperative coevolutionary algorithm (CC). The considered problem is decomposed into subproblems. These subproblems are optimised separately while exchanging information in order to solve the complete problem. An optimisation algorithm, usually but not necessarily an
evolutionary algorithm
In computational intelligence (CI), an evolutionary algorithm (EA) is a subset of evolutionary computation, a generic population-based metaheuristic optimization algorithm. An EA uses mechanisms inspired by biological evolution, such as reproduc ...
, is embedded in C
3 for optimising those subproblems. The nature of the embedded optimisation algorithm determines whether C
3's behaviour is
deterministic
Determinism is a philosophical view, where all events are determined completely by previously existing causes. Deterministic theories throughout the history of philosophy have developed from diverse and sometimes overlapping motives and consi ...
or
stochastic
Stochastic (, ) refers to the property of being well described by a random probability distribution. Although stochasticity and randomness are distinct in that the former refers to a modeling approach and the latter refers to phenomena themselv ...
.
The C
3 optimisation algorithm was originally designed for
simulation-based optimisation but it can be used for
global optimisation
Global optimization is a branch of applied mathematics and numerical analysis that attempts to find the global minima or maxima of a function or a set of functions on a given set. It is usually described as a minimization problem because the max ...
problems in general.
[Glorieux E., Svensson B., Danielsson F., Lennartson B.]
"Constructive cooperative coevolution for large-scale global optimisation"
''Journal of Heuristics'', 2017. Its strength over other optimisation algorithms, specifically cooperative coevolution, is that it is better able to handle non-separable optimisation problems.
An improved version was proposed later, called the Improved Constructive Cooperative Coevolutionary Differential Evolution (C
3iDE), which removes several limitations with the previous version. A novel element of C
3iDE is the advanced initialisation of the subpopulations. C
3iDE initially optimises the subpopulations in a partially co-adaptive fashion. During the initial optimisation of a subpopulation, only a subset of the other subcomponents is considered for the co-adaptation. This subset increases stepwise until all subcomponents are considered. This makes C
3iDE very effective on large-scale global optimisation problems (up to 1000 dimensions) compared to
cooperative coevolutionary algorithm (CC) and
Differential evolution
In evolutionary computation, differential evolution (DE) is a method that optimizes a problem by iteratively trying to improve a candidate solution with regard to a given measure of quality. Such methods are commonly known as metaheuristics as ...
.
[Glorieux E., Svensson B., Danielsson F., Lennartson B.]
"Improved Constructive Cooperative Coevolutionary Differential Evolution for Large-Scale Optimisation"
2015 IEEE Symposium Series on Computational Intelligence, December 2015
The improved algorithm has then been adapted for
multi-objective optimization
Multi-objective optimization (also known as multi-objective programming, vector optimization, multicriteria optimization, multiattribute optimization or Pareto optimization) is an area of multiple criteria decision making that is concerned with ...
.
[Glorieux E., Svensson B., Danielsson F., Lennartson B.]
"Multi-objective constructive cooperative coevolutionary optimization of robotic press-line tending"
Engineering Optimization, Vol. 49, Iss. 10, 2017, pp 1685-1703
Algorithm
As shown in the pseudo code below, an iteration of C
3 exists of two phases. In Phase I, the constructive phase, a feasible solution for the entire problem is constructed in a stepwise manner. Considering a different subproblem in each step. After the final step, all subproblems are considered and a solution for the complete problem has been constructed. This constructed solution is then used as the initial solution in Phase II, the local improvement phase. The CC algorithm is employed to further optimise the constructed solution. A cycle of Phase II includes optimising the subproblems separately while keeping the parameters of the other subproblems fixed to a central blackboard solution. When this is done for each subproblem, the found solution are combined during a "collaboration" step, and the best one among the produced combinations becomes the blackboard solution for the next cycle. In the next cycle, the same is repeated. Phase II, and thereby the current iteration, are terminated when the search of the CC algorithm stagnates and no significantly better solutions are being found. Then, the next iteration is started. At the start of the next iteration, a new feasible solution is constructed, utilising solutions that were found during the Phase I of the previous . This constructed solution is then used as the initial solution in Phase II in the same way as in the first iteration. This is repeated until one of the termination criteria for the optimisation is reached, e.g. a maximum number of evaluations.
← ∅
while termination criteria not satisfied do
if = ∅ then
← SubOpt(∅, 1)
end if
while p
phase1 not completely constructed do
p
phase1 ← GetBest()
← SubOpt(p
phase1, i
next subproblem)
end while
p
phase2 ← GetBest()
while not stagnate do
← ∅
for each subproblem i do
← SubOpt(p
phase2,i)
end for
← Collab()
p
phase2 ← GetBest()
end while
end while
Multi-objective optimisation
The multi-objective version of the C
3 algorithm
is a Pareto-based algorithm which uses the same divide-and-conquer strategy as the single-objective C
3 optimisation algorithm . The algorithm again starts with the advanced constructive initial optimisations of the subpopulations, considering an increasing subset of subproblems. The subset increases until the entire set of all subproblems is included. During these initial optimisations, the subpopulation of the latest included subproblem is evolved by a multi-objective evolutionary algorithm. For the fitness calculations of the members of the subpopulation, they are combined with a collaborator solution from each of the previously optimised subpopulations. Once all subproblems' subpopulations have been initially optimised, the multi-objective C
3 optimisation algorithm continues to optimise each subproblem in a
round-robin fashion, but now collaborator solutions from all other subproblems' subspopulations are combined with the member of the subpopulation that is being evaluated. The collaborator solution is selected randomly from the solutions that make up the Pareto-optimal front of the subpopulation. The fitness assignment to the collaborator solutions is done in an optimistic fashion (i.e. an "old" fitness value is replaced when the new one is better).
Applications
The constructive cooperative coevolution algorithm has been applied to different types of problems, e.g. a set of standard benchmark functions,
[Glorieux E., Danielsson F., Svensson B., Lennartson B.]
"Optimisation of interacting production stations using a Constructive Cooperative Coevolutionary approach"
2014 IEEE International Conference on Automation Science and Engineering (CASE), pp.322-327, August 2014, Taipei, Taiwan optimisation of sheet metal press lines
[Glorieux E., Svensson B., Danielsson F., Lennartson B.]
"A Constructive Cooperative Coevolutionary Algorithm Applied to Press Line Optimisation"
Proceedings of the 24th International Conference on Flexible Automation and Intelligent Manufacturing (FAIM), pp.909-917, May 2014, San Antonio, Texas, USA and interacting production stations.
The C
3 algorithm has been embedded with, amongst others, the
differential evolution algorithm and the
particle swarm optimiser[Eberhart, Russ C., and James Kennedy]
"A new optimizer using particle swarm theory"
Proceedings of the sixth international symposium on micro machine and human science. Vol. 1. 1995. for the subproblem optimisations.
See also
*
Cooperative coevolution Cooperative Coevolution (CC) in the field of biological evolution is an evolutionary computation method. It divides a large problem into subcomponents, and solves them independently in order to solve the large problem.
The subcomponents are also ...
*
Metaheuristic
In computer science and mathematical optimization, a metaheuristic is a higher-level procedure or heuristic designed to find, generate, or select a heuristic (partial search algorithm) that may provide a sufficiently good solution to an optimizati ...
*
Stochastic search
Stochastic optimization (SO) methods are optimization methods that generate and use random variables. For stochastic problems, the random variables appear in the formulation of the optimization problem itself, which involves random objective functi ...
*
Differential evolution
In evolutionary computation, differential evolution (DE) is a method that optimizes a problem by iteratively trying to improve a candidate solution with regard to a given measure of quality. Such methods are commonly known as metaheuristics as ...
*
Swarm intelligence
Swarm intelligence (SI) is the collective behavior of decentralized, self-organized systems, natural or artificial. The concept is employed in work on artificial intelligence. The expression was introduced by Gerardo Beni and Jing Wang in 1989, in ...
*
Genetic algorithms
In computer science and operations research, a genetic algorithm (GA) is a metaheuristic inspired by the process of natural selection that belongs to the larger class of evolutionary algorithms (EA). Genetic algorithms are commonly used to gene ...
*
Hyper-heuristics A hyper-heuristic is a heuristic search method that seeks to automate, often by the incorporation of machine learning techniques, the process of selecting, combining, generating or adapting several simpler heuristics (or components of such heuristic ...
References
{{reflist
*
Evolutionary algorithms
Evolutionary computation