Software - motipy: the Metaheuristic Optimization in Python Library

ACM SIGEVOlution(2023)

引用 0|浏览0
暂无评分
摘要
We are thankful for the opportunity to announce our Python package "moptipy," which offers a rich set of tools for implementing, applying, and experimenting with metaheuristic optimization algorithms. Our package has been designed with benchmarking in mind and thus provides very comprehensive experimentation, data collection, and evaluation facilities out of the box. moptipy has the following features: 1. Very comprehensive documentation with many examples, reaching down to literature references inside the code and up to complex example experiments. 2. Several standard search spaces (bit strings, permutations, real vectors), operators, and algorithms, including randomized local search/hill climbers, simulated annealing, evolutionary algorithms, memetic algorithms, NSGA-II, several numerical optimization algorithms, etc., are already implemented and ready for use. 3. It is very easy to implement new algorithms using moptipy, be they general black-box methods or tailored for specific optimization problems. 4. It is also easy to integrate algorithms from external libraries and unify them under our API, which we did as proof-of-concept with CMA-ES, BOBYQA, as well as for the algorithms from SciPy. 5. Data can be collected at different verbosity levels, ranging from only providing the final result and its quality via the API (without creating any files) to creating log files with all (or all improving) steps of an algorithm, the result, the algorithm and problem parameters, the system setup, non-dominated solutions, and the random seed for fully-reproducible experiments. [1] 6. An experiment execution facility for very simple and robust parallel and distributed experimentation is provided. Parallelization and distribution works out-of-the-box based on shared folders and thus does not require additional libraries or programming effort [1]. 7. Stopping criteria for optimization processes can be defined based on goal solution qualities, clock time, and/or consumed objective function evaluations. 8. All experiments are fully reproducible, i.e., from a log file an algorithm and problem can be configured such that, in the replication experiment, exactly the same search steps are performed as in the original setting [1]. 9. The experiment evaluation facility can parse the log files and generate progress plots, result tables, ERT and ECDF plots, statistical test tables, and export data towards Excel or the popular IOHanalyzer. 10. Both single-objective and multi-objective optimization are supported under the same unified API. 11. The package has a good unit test coverage and pre-defined tools to unit test your own code. When implementing new objective functions, algorithms, encodings, oder operators, it is possible to use these tools to look for errors.
更多
查看译文
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要