# AMS-DEMO

Solving real-life optimization problems numerically is often very time demanding, because of high complexity of the simulations that are usually involved. Solving such problems becomes highly impractical for this reason and can even lead to use of less complex and also less accurate models. Fortunately, evolutionary algorithms, often used in numerical optimization, can be parallelized with relative ease, which significantly reduces the time required for optimization on parallel computer architectures.

Multi-objective optimization is a generalizaiton of the more widely known single-objective optimization. In multi-objective optimization, the problem is characterized by multiple objective functions as the name suggests. The objectives are also mostly contradicting, therefore improving on one objective often requires to worsen another. To solve such problem thoroughly, the goal for multi-objective optimization is to find not one, but a set of Pareto dominant solutions. That is, a set of solutions for which different trade-offs between objectives have been selected, called also a Pareto front. In this set, though, there is no solution that would be worse from one of the included solutions in all the objectives.

We have developed a parallel differential evolution for multi-objective optimization, AMS-DEMO. The algorithm was designed for solving time demanding problems efficiently on both homogeneous and heterogeneous distributed computer architectures. To maximize flexibility and robustness, it uses a master-slave parallelization method that is modified to allow for asynchronous communication between computers.

AMS-DEMO was experimentally tested and found to be very flexible and efficient even on heterogeneous computer architectures. On homogeneous architectures and problems with constant-time fitness evaluation functions, however, the same performance as with AMS-DEMO could be achieved with simpler parallel algorithms.

## Code repository

AMS-DEMO is open source and its source can be downloaded from the git repository. Compiling the code requires only the basic build toolset and a C++ compiler.

# Related projects

Core research programme P2-0095