Memorizing the past information for later environments is an effective and widely employed approach to optimize dynamic problems. Although the existing explicit memories for dynamic optimization differ widely in the literature, all of them organize memory entries in a linear list. This naive structure leads to problems, such as heavy computational overhead and small memory capacity, and thus restricts the performance of the memories. In this paper, the binary space partition tree is adopted to organize the memory entries, and then a memory tree is constructed. The memory tree partitions the search space into regions. In order to make use of the memory tree, a neighbor shift strategy is proposed. When a new individual is generated in a region that has never been visited since the last change, the new individual is shifted to the neighboring memory individual of that region, if it is less fit than the memory individual. The proposed approach can be easily combined with many population-based algorithms for dynamic optimization in the real space. As examples, the proposed approach was combined with a basic particle swarm optimizer and two state-of-the-art dynamic optimizers. The experimental results showed that it significantly enhanced the performance of the three optimizers on various test problems. The proposed approach demonstrates the importance of memory structure in memory approaches.
Read full abstract