Design Philosophy of PyPop7
Given a large number of black-box optimizers (BBO) which still keep increasing almost every month, we need some (possibly) widely acceptable criteria to select from them, as presented below in details:
Respect for Beauty (Elegance)
From the problem-solving perspective, we empirically prefer to choose the best optimizer for the black-box optimization problem at hand. For the new problem, however, the best optimizer is often unknown in advance (when without a prior knowledge). As a rule of thumb, we need to compare a (often small) set of available/well-known optimizers and finally choose the best one according to some predefined performance criteria. From the academic research perspective, however, we prefer so-called beautiful optimizers, though always keeping the No Free Lunch Theorems in mind. Typically, the beauty of one optimizer comes from the following attractive features: model novelty (e.g., useful logical concepts and design frameworks), competitive performance on at least one class of problems, theoretical insights (e.g., guarantee of global convergence and rate of convergence on some problem classes), clarity/simplicity for understanding and implementations, and well-recognized repeatability/reproducibility.
If you find some BBO which is missed in this library to meet the above standard, welcome to launch issues or pulls. We will consider it to be included in the PyPop7 library as soon as possible, if possible. Note that any superficial imitation to well-established optimizers (i.e., Old Wine in a New Bottle) will be NOT considered here. Sometimes, several very complex optimizers could obtain the top rank on some competitions consisting of only artificially-constructed benchmark functions. However, these optimizers may become over-skilled on these artifacts. In our opinions, a good optimizer should be elegant and generalizable. If there is no persuasive/successful applications reported for it, we will not consider any very complex optimizer in this library, in order to avoid the possible repeatability and overfitting issues.
Campelo, F. and Aranha, C., 2023. Lessons from the evolutionary computation Bestiary. Artificial Life. Early Access.
Swan, J., Adriaensen, S., Brownlee, A.E., Hammond, K., Johnson, C.G., Kheiri, A., Krawiec, F., Merelo, J.J., Minku, L.L., Özcan, E., Pappa, G.L., et al., 2022. Metaheuristics “in the large”. European Journal of Operational Research, 297(2), pp.393-406.
Kudela, J., 2022. A critical problem in benchmarking and analysis of evolutionary computation methods. Nature Machine Intelligence, 4(12), pp.1238-1245.
Aranha, C., Camacho Villalón, C.L., Campelo, F., Dorigo, M., Ruiz, R., Sevaux, M., Sörensen, K. and Stützle, T., 2022. Metaphor-based metaheuristics, a call for action: The elephant in the room. Swarm Intelligence, 16(1), pp.1-6.
de Armas, J., Lalla-Ruiz, E., Tilahun, S.L. and Voß, S., 2022. Similarity in metaheuristics: A gentle step towards a comparison methodology. Natural Computing, 21(2), pp.265-287.
Piotrowski, A.P. and Napiorkowski, J.J., 2018. Some metaheuristics should be simplified. Information Sciences, 427, pp.32-62.
Sörensen, K., Sevaux, M. and Glover, F., 2018. A history of metaheuristics. In Handbook of Heuristics (pp. 791-808). Springer, Cham.
Sörensen, K., 2015. Metaheuristics—the metaphor exposed. International Transactions in Operational Research, 22(1), pp.3-18.
Auger, A., Hansen, N. and Schoenauer, M., 2012. Benchmarking of continuous black box optimization algorithms. Evolutionary Computation, 20(4), pp.481-481.
Note
“If there is a single dominant theme in this …, it is that practical methods of numerical computation can be simultaneously efficient, clever, and –important– clear.”—Press, W.H., Teukolsky, S.A., Vetterling, W.T. and Flannery, B.P., 2007. Numerical recipes: The art of scientific computing. Cambridge University Press.
Respect for Diversity
Given the universality of black-box optimization in science and engineering, different research communities have designed different optimizers. The type and number of optimizers are continuing to increase as the more powerful optimizers are always desirable for new and more challenging applications. On the one hand, some of these methods may share more or less similarities. On the other hand, they may also show significant differences (w.r.t. motivations / objectives / implementations / communities / practitioners). Therefore, we hope to cover such a diversity from different research communities such as artificial intelligence/machine learning (particularly evolutionary computation, swarm intelligence, and zeroth-order optimization), mathematical optimization/programming (particularly derivative-free/global optimization), operations research / management science (metaheuristics), automatic control (random search), electronic engineering, physics, chemistry, open-source software, and many others.
Note
“The theory of evolution by natural selection explains the adaptedness and diversity of the world solely materialistically”.—[Mayr, 2009, Scientific American].
To cover recent advances on population-based BBO as widely as possible, We have actively maintained a companion project to collect related papers on some top-tier journals and conferences for more than 3 years. We wish that this open companion project could provide an increasingly reliable literature reference as the base of our library.
Respect for Originality
For each black-box optimizer included in PyPop7, we expect to give its original/representative reference (sometimes also including its good implementations/improvements). If you find some important references missed here, please do NOT hesitate to contact us (and we will be happy to add it). Furthermore, if you identify some mistake regarding originality, we first apologize for our (possible) mistake and will correct it timely within this open-source project.
Note
“It is both enjoyable and educational to hear the ideas directly from the creators”.—Hennessy, J.L. and Patterson, D.A., 2019. Computer architecture: A quantitative approach (Sixth Edition). Elsevier.
Respect for Repeatability
For randomized search which is adopted by most population-based optimizers, properly controlling randomness is very crucial to repeat numerical experiments. Here we follow the official Random Sampling suggestions from NumPy. In other worlds, you should explicitly set the random seed for each optimizer. For more discussions about repeatability/benchmarking from AI/ML, evolutionary computation (EC), swarm intelligence (SI), and metaheuristics communities, please refer to the following papers, to name a few:
Hansen, N., Auger, A., Brockhoff, D. and Tušar, T., 2022. Anytime performance assessment in blackbox optimization benchmarking. IEEE Transactions on Evolutionary Computation, 26(6), pp.1293-1305.
Bäck, T., Doerr, C., Sendhoff, B. and Stützle, T., 2022. Guest editorial special issue on benchmarking sampling-based optimization heuristics: Methodology and software. IEEE Transactions on Evolutionary Computation, 26(6), pp.1202-1205.
López-Ibáñez, M., Branke, J. and Paquete, L., 2021. Reproducibility in evolutionary computation. ACM Transactions on Evolutionary Learning and Optimization, 1(4), pp.1-21.
Hutson, M., 2018. Artificial intelligence faces reproducibility crisis. Science, 359(6377), pp.725-726.
Swan, J., Adriaensen, S., Bishr, M., Burke, E.K., Clark, J.A., De Causmaecker, P., Durillo, J., Hammond, K., Hart, E., Johnson, C.G., Kocsis, Z.A., Kovitz, B., Krawiec, K., Martin, S., Merelo, J.J., Minku, L.L., Ozcan, E., Pappa, G.L., Pesch, E., Garcia-Sanchez, P., Schaerf, A., Sim, K., Smith, J.E., Stutzle, T., Voß, S., Wagner, S., Yao., X., 2015, June. A research agenda for metaheuristic standardization. In Proceedings of International Conference on Metaheuristics (pp. 1-3).
Sonnenburg, S., Braun, M.L., Ong, C.S., et al., 2007. The need for open source software in machine learning. Journal of Machine Learning Research, 8, pp.2443-2466.
Finally, we expect to see more interesting discussions about the beauty of BBO. For any new/missed BBO, we provide a unified API interface to help freely add them if they satisfy the above design philosophy well. See the development guide for more details.