International Journal of Advanced Studies (Sep 2017)

COOMA: AN OBJECT-ORIENTED STOCHASTIC OPTIMIZATION ALGORITHM

  • Stanislav Alexandrovich Tavridovich

DOI
https://doi.org/10.12731/2227-930X-2017-2-26-47
Journal volume & issue
Vol. 7, no. 2
pp. 26 – 47

Abstract

Read online

Stochastic optimization methods such as genetic algorithm, particle swarm optimization algorithm, and others are successfully used to solve optimization problems. They are all based on similar ideas and need minimal adaptation when being implemented. But several factors complicate the application of stochastic search methods in practice: multimodality of the objective function, optimization with constraints, finding the best parameter configuration of the algorithm, the increasing of the searching space, etc. This paper proposes a new Cascade Object Optimization and Modification Algorithm (COOMA) which develops the best ideas of known stochastic optimization methods and can be applied to a wide variety of real-world problems described in the terms of object-oriented models with practically any types of parameters, variables, and associations between objects. The objects of different classes are organized in pools and pools form the hierarchical structure according to the associations between classes. The algorithm is also executed according to the pool structure: the methods of the upper-level pools before changing their objects call the analogous methods of all their subpools. The algorithm starts with initialization step and then passes through a number of iterations during which the objects are modified until the stop criteria are satisfied. The objects are modified using movement, replication and mutation operations. Two-level version of COOMA realizes a built-in self-adaptive mechanism. The optimization statistics for a number of test problems shows that COOMA is able to solve multi-level problems (with objects of different associated classes), problems with multimodal fitness functions and systems of constraints. COOMA source code on Java is available on request.

Keywords