Notice: The reproducibility variables underlying each score are classified using an automated LLM-based pipeline, validated against a manually labeled dataset. LLM-based classification introduces uncertainty and potential bias; scores should be interpreted as estimates. Full accuracy metrics and methodology are described in [1].

PyPop7: A Pure-Python Library for Population-Based Black-Box Optimization

Authors: Qiqi Duan, Guochen Zhou, Chang Shao, Zhuowei Wang, Mingyang Feng, Yuwei Huang, Yajing Tan, Yijun Yang, Qi Zhao, Yuhui Shi

JMLR 2024 | Venue PDF | LLM Run Details

Reproducibility Variable Result LLM Response
Research Type Experimental In this paper, we present an open-source pure-Python library called Py Pop7 for black-box optimization (BBO). Its well-designed source code (under GPL-3.0 license) and full-fledged online documents (under CC-BY 4.0 license) have been freely available at https://github.com/Evolutionary-Intelligence/pypop and https://pypop.readthedocs.io, respectively. Keywords: Black-box optimization, Evolutionary computation, Large-scale optimization, Open-source software, Population-based optimization, Swarm intelligence. Its well-designed source code (under GPL-3.0 license) and full-fledged online documents (under CC-BY 4.0 license) have been freely available at https://github.com/Evolutionary-Intelligence/pypop and https://pypop.readthedocs.io, respectively. Its well-designed source code (under GPL-3.0 license) and full-fledged online documents (under CC-BY 4.0 license) have been freely available at https://github.com/Evolutionary-Intelligence/pypop and https://pypop.readthedocs.io, respectively. Keywords: Black-box optimization, Evolutionary computation, Large-scale optimization, Open-source software, Population-based optimization, Swarm intelligence. Its well-designed source code (under GPL-3.0 license) and full-fledged online documents (under CC-BY 4.0 license) have been freely available at https://github.com/Evolutionary-Intelligence/pypop and https://pypop.readthedocs.io, respectively. In this paper, we present an open-source pure-Python library called Py Pop7 for black-box optimization (BBO). As population-based methods (e.g., evolutionary algorithms, swarm intelligence, and pattern search) become increasingly popular for BBO, the design goal of Py Pop7 is to provide a unified API and elegant implementations for them, particularly in challenging high-dimensional scenarios. Since these population-based methods easily suffer from the notorious curse of dimensionality owing to random sampling as one of core operations for most of them, recently various improvements and enhancements have been proposed to alleviate this issue more or less mainly via exploiting possible problem structures: such as, decomposition of search distribution or space, low-memory approximation, low-rank metric learning, variance reduction, ensemble of random subspaces, model selfadaptation, and fitness smoothing. These novel sampling strategies could better exploit different problem structures in high-dimensional search space and therefore they often result in faster rates of convergence and/or better qualities of solution for large-scale BBO. Now Py Pop7 has covered many of these important advances on a set of well-established BBO algorithm families and also provided an open-access interface to adding the latest or missed black-box optimizers for further functionality extensions. Its well-designed source
Researcher Affiliation Collaboration Qiqi Duan1,2, EMAIL Guochen Zhou2, EMAIL Chang Shao3, EMAIL Zhuowei Wang4 EMAIL Mingyang Feng5 EMAIL Yuwei Huang2 EMAIL Yajing Tan2 EMAIL Yijun Yang6 EMAIL Qi Zhao2 EMAIL Yuhui Shi2, EMAIL 1Harbin Institute of Technology, Harbin, China 2Southern University of Science and Technology, Shenzhen, China 3University of Technology Sydney, Sydney, Australia 4Space and Astronomy, CSIRO, Marshfield, Australia 5University of Birmingham, Birmingham, UK 6Tencent Inc., Shenzhen, China
Pseudocode No The paper provides Python code snippets in Section 4 for demonstrating usage, but these are concrete implementations rather than structured pseudocode or algorithm blocks. There are no sections explicitly labeled 'Pseudocode' or 'Algorithm'.
Open Source Code Yes Its well-designed source code (under GPL-3.0 license) and full-fledged online documents (under CC-BY 4.0 license) have been freely available at https://github.com/Evolutionary-Intelligence/pypop and https://pypop.readthedocs.io, respectively.
Open Datasets Yes Parkinson s disease, Semeion handwritten digit, CNAE-9, Madelon, and QSAR androgen receptor, all of which are now available at the UCI Machine Learning Repository.
Dataset Splits No The paper mentions using several publicly available datasets (e.g., Parkinson's disease, Semeion handwritten digit) and test functions. It describes running optimizers on these test functions and tasks, but it does not specify the training, validation, or test splits for the underlying datasets.
Hardware Specification No The paper discusses computational efficiency and runtime for experiments (e.g., 'given the same maximal runtime (=3 hours)'), but it does not specify any particular hardware like CPU or GPU models, or detailed computer specifications used for these experiments.
Software Dependencies No For computational efficiency (crucial for large-scale BBO), our library depends mainly on four open-source high-performance scientific/numeric computing libraries: Num Py (Harris et al., 2020), Sci Py (Virtanen et al., 2020), Scikit-Learn (Pedregosa et al., 2011) and Numba as underlying computing engines. While these libraries are listed, specific version numbers are not provided.
Experiment Setup Yes The maximum of runtime to be allowed is set to 3 hours (Duan et al., 2023) and the threshold of fitness is set to 1e-10 to avoid excessive accuracy optimization for all optimizers on each test function. In our numerical experiments, we choose a total of 15 black-box optimizers from different algorithm families, each of which is independently run 14 times on every test function. The Python code examples also show specific parameters: 'fitness_threshold': 1e-10, 'max_runtime': 3600, 'seed_rng': 0, 'x': 4.0*np.ones((ndim_problem,)), 'sigma': 3.0, 'verbose': 500, and 'max_function_evaluations': function.dimension * budget_multiplier.