Constructive cooperative coevolution
The constructive cooperative coevolutionary algorithm (also called C3) is an global optimisation algorithm in artificial intelligence based on the multi-start architecture of the greedy randomized adaptive search procedure (GRASP).[1][2] It incorporates the existing cooperative coevolutionary algorithm (CC).[3] 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, is embedded in C3 for optimising those subproblems. The nature of the embedded optimisation algorithm determines whether C3's behaviour is deterministic or stochastic.
The C3 optimisation algorithm was originally designed for simulation-based optimisation[4][5] but it can be used for global optimisation problems in general.[5] Its strength over other optimisation algorithms, specifically cooperative coevolution, is that it is better able to handle non-separable optimisation problems.[4][6]
Algorithm
As shown in the pseudo code below, an iteration of C3 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 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 iteraton(s). This constructed solution is then used as 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. maximum number of evaluations.
{Sphase1} ← ∅ WHILE termination criteria not satisfied DO IF {Sphase1} == ∅ THEN {Sphase1} ← SubOpt(∅, 1) END IF WHILE pphase1 not completely constructed DO pphase1 ← GetBest({Sphase1}) {Sphase1} ← SubOpt(pphase1, inext subproblem) END WHILE pphase2 ← GetBest({Sphase1}) WHILE not stagnate DO {Sphase2} ← ∅ FOR each subproblem i DO {Sphase2} ← SubOpt(pphase2,i) END FOR {Sphase2} ← Collab({Sphase2}) pphase2 ← GetBest({Sphase2}) END WHILE END WHILE
Applications
The constructive cooperative coevolution algorithm has been applied to different types of problems, e.g. a set of standard benchmark functions,[4] optimisation of sheet metal press lines,[4][5][7] and interacting production stations.[5] The C3 algorithm has been embedded with, amongst others, the differential evolution algorithm[8] and the particle swarm optimiser[9] for the subproblem optimisations.
See also
- Cooperative coevolution
- Metaheuristic
- Stochastic search
- Differential evolution
- Swarm intelligence
- Genetic algorithms
- Hyper-heuristics
References
- ↑ T.A. Feo and M.G.C. Resende (1989) A probabilistic heuristic for a computationally difficult set covering problem. Operations Research Letters, 8:67–71, 1989.
- ↑ T.A. Feo and M.G.C. Resende (1995) Greedy randomized adaptive search procedures. J. of Global Optimization, 6:109–133, 1995.
- ↑ M. A. Potter and K. A. D. Jong, A cooperative coevolutionary approach to function optimization, in PPSN III: Proceedings of the International Conference on Evolutionary Computation. The Third Conference on Parallel Problem Solving from Nature London, UK:Springer-Verlag, 1994, pp. 249–257.
- ↑ 4.0 4.1 4.2 4.3 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
- ↑ 5.0 5.1 5.2 5.3 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
- ↑ Glorieux E., Danielsson F., Svensson B., Lennartson B.: Constructive cooperative coevolutionary optimisation for interacting production stations, International Journal of Advanced Manufacturing Technology, 2015.
- ↑ Glorieux E., Svensson B., Danielsson F., Lennartson B., Optimised Control of Sheet Metal Press Lines, Proceedings of the 6th International Swedish Production Symposium 2014, September 2014, Gothenburg, Sweden
- ↑ Storn, Rainer, and Kenneth Price. "Differential evolution–a simple and efficient heuristic for global optimization over continuous spaces." Journal of global optimization 11.4 (1997): 341-359.
- ↑ 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.