引言
本期给大家带来一款优化算法基准测试平台OptimBench。它是一个基于 Python 的桌面 GUI 软件,将"选算法 → 选函数 → 跑实验 → 统计分析 → 画图 → 导出"这一整套流程,整合在一个界面中完成。- 可以并行计算,可以根据自己电脑的配置来调整线程数量
- 一键导出SCI质量的图片(导出格式:PNG(600 DPI)、PDF、SVG、EPS、TIFF,直接满足 SCI / EI 期刊投稿要求)
- 一键生成各种指标、Wilcoxon 秩和检验(Wilcoxon Rank-Sum Test)、符号检验(Sign Test)、Friedman 排名检验(Friedman Test)、统计表格、平均收敛曲线,雷达图、排序图、所有算法的过程曲线数据等
https://www.bilibili.com/video/BV1iRQUBhEzu/?share_source=copy_web&vd_source=4cb7fc4ade88eda8cfe2efed8087391c
技术底座
OptimBench 基于以下两个核心开源库构建:
mealpy —— 234种优化算法
底层算法引擎使用 mealpy 3.0.3(Meta-Heuristic Algorithms Python Library),这是目前收录最全的元启发式算法库之一,涵盖了 234种 优化算法,包括但不限于:
| |
| PSO(粒子群)、WOA(鲸鱼)、GWO(灰狼)、HHO(哈里斯鹰)、SSA(麻雀) |
| DE(差分进化)、GA(遗传算法)、CMA-ES、EP |
| SA(模拟退火)、MVO(多元宇宙)、EO(平衡优化器) |
| |
| SCA(正弦余弦)、AOA(算术优化)、GBO(梯度优化) |
| ARO(人工兔)、INFO、RUN、STO 等 2022-2024 年新算法 |
所有算法统一接口,公平对比,无需逐个适配。
opfunu —— 11套CEC标准测试集
基准函数使用 opfunu 1.0.4(Open-source Functions for Optimization),覆盖 11套CEC标准测试集:
| | |
| | 2, 5, 10, 20, 30, 50, 100 |
| | 2, 5, 10, 20, 30, 50, 100 |
| | 2, 5, 10, 20, 30, 50, 100 |
| | 2, 5, 10, 20, 30, 50, 100 |
| | |
| | |
| | |
| | 2, 5, 10, 20, 30, 50, 100 |
| | 2, 5, 10, 20, 30, 50, 100 |
| | |
| | |
软件会自动检测函数与维度的兼容性,不兼容的函数在运行前自动跳过,无需手动排查。
核心功能详解
1. 多进程并行实验引擎
- • 基于
ProcessPoolExecutor 的多进程并行架构 - • 滑动窗口任务调度:不会一次性提交所有任务占满内存,而是按
workers × 2 的窗口逐步提交,跑完一个补一个 - • 默认使用 CPU 核心数的一半(最多6个),也可手动指定
2. 六项描述性统计指标
实验完成后,自动计算每个"算法 × 函数"组合的统计指标:
| |
| Mean | |
| Std | |
| Best | |
| Worst | |
| Median | |
| Time(s) | |
3. 三种非参数统计检验
这是论文中必不可少的统计分析,OptimBench 全部内置,并且支持自由切换基准算法(因为在做检验的时候,是需要算法之间两两进行检验的。这里的做法一般是与改进的算法进行检验,而改进的算法本身与本身不需要检验。因此在软件里边可以自由设置基准算法,也就是可以自由选择哪个算法来作为这个比较的底座。)
Wilcoxon 秩和检验(Wilcoxon Rank-Sum Test)
符号检验(Sign Test)
Friedman 排名检验(Friedman Test)
在界面上可以随时切换基准算法,Wilcoxon 和 Sign Test 的结果会实时刷新。
4. 四种出版级图表
所有图表均按学术论文标准设计(serif 字体、600 DPI、紧凑布局):
平均收敛曲线(Mean Convergence Curve)
- • 横轴:迭代次数(Epoch),纵轴:适应度值(对数坐标)
箱线图(Boxplot)
- • 展示30次运行的适应度分布:中位数、四分位距、异常值
Friedman 排名柱状图
雷达图(Radar Chart)
导出格式:PNG(600 DPI)、PDF、SVG、EPS,直接满足 SCI / EI 期刊投稿要求。五种格式都可以导出
5. 界面内图表预览
实验跑完后,无需手动保存,所有图表会自动生成缩略图,在界面右侧的 Figures 标签页中直接预览。点击任意缩略图可弹出大图查看细节。
6. 数据导出
- • Excel (.xlsx):包含描述性统计、Wilcoxon、Sign Test、Friedman 排名,每项一个 Sheet
- • MATLAB (.mat):导出原始适应度矩阵和收敛曲线矩阵,方便在 MATLAB 中二次分析,导出的是运行过程中所有的数据:
7. 自定义算法导入
如果你有自己提出的新算法,只需编写一个 .py 文件:
from mealpy import OptimizerclassMyAlgorithm(Optimizer):def__init__(self, epoch=500, pop_size=50, **kwargs):super().__init__(**kwargs)self.epoch = self.validator.check_int("epoch", epoch, [1, 100000])self.pop_size = self.validator.check_int("pop_size", pop_size, [10, 10000])defevolve(self, epoch):# 在这里实现你的算法逻辑for i inrange(self.pop_size): new_pos = ... # 生成新位置 new_agent = self.generate_agent(new_pos) # 创建并评估if new_agent.target.fitness < self.pop[i].target.fitness:self.pop[i] = new_agent
点击 Import Custom 按钮,支持一次选择多个文件批量导入,导入后的自定义算法与内置的 234 种算法简单对比,统计分析和图表导出。
为了让大家明白如何将常用的算法改写成标准形式,这里我将mealpy库没有的四个高质量算法转换成了可以导入软件的标准算案发格式,包括:(DBO 蜣螂算法、IVY 常青藤算法、GGO 灰雁算法、PGA 向光生长算法),因此,即便你是MATLAB 用户也能快速上手迁移。
软件界面
整体采用左右分栏布局:
左侧面板:
- • 参数配置:种群大小、迭代次数、独立运行次数、并行进程数、问题维度
右侧面板(6个标签页):
- • Statistics:描述性统计表(Mean / Std / Best / Worst / Median / Time)
- • Figures:图表预览(收敛曲线、箱线图、Friedman排名、雷达图)
底部配有进度条和状态栏,实验进度实时可见。
使用方式
Windows 一键安装包,无需安装 Python 环境,双击安装即可运行。注意:此软件仅在windows系统电脑上测试通过,Linux和MAc以及其他系统请不要购买!
https://mbd.pub/o/bread/YZWck5ZtbQ==