Due to dynamic and uncertain nature of many optimization problems in real-world, an algorithm for applying to this environment must be able to track the changing optima over the time continuously. In this paper, we report a novel multipopulation particle swarm optimization, which improved its performance by employing an external memory. This algorithm, namely History-Driven Particle Swarm Optimization (HdPSO), uses a BSP tree to store the important information about the landscape during the optimization process. Utilizing this memory, the algorithm can approximate the fitness landscape before actual fitness evaluation for some unsuitable solutions. Furthermore, some new mechanisms are introduced for exclusion and change discovery, which are two of the most important mechanisms for each multi-population optimization algorithm in dynamic environments. The performance of the proposed approach is evaluated on Moving Peaks Benchmark (MPB) and a modified version of it, called MPB with pendu...