The Particle Swarm Optimization (PSO) algorithm is a flexible heuristic optimizer that can be used for solving cardinality constrained binary optimization problems. In such problems, only K elements of the N-dimensional solution vector can be non-zero. The typical solution is to use a mapping function to enforce the cardinality constraint on the trial PSO solution. In this paper, we show that when K is small compared to N, the use of the mapped solution in the velocity vector tends to lead to early stagnation. As a solution, we recommend to use the untransformed solution as a direction in the velocity vector. We use numerical experiments to document the gains in performance when K is small compared to N.
- Binary particle swarm optimization
- Cardinality mapping
- Portfolio optimization