在智能制造和自动化生产领域,柔性作业车间调度问题(FJSP)一直是研究热点。而带AGV运输约束的柔性作业车间调度(FJSP-T)更是将问题复杂度提升到了新高度。这时候,一个可靠的基准测试集就显得尤为重要了。
我刚开始接触这个领域时,最头疼的就是找不到合适的测试数据。自己编造的数据往往过于理想化,而真实产线数据又涉及商业机密难以获取。这时候B&U和D&N这两个经典测试集就成了救命稻草。它们就像是一把标尺,让不同研究团队的工作有了可比性。
这两个测试集最厉害的地方在于,它们不仅考虑了传统的机器调度,还把AGV运输这个关键约束也纳入了评估体系。要知道在真实车间里,物料搬运时间可能占到总生产时间的30%以上。如果只优化机器调度而忽略运输环节,那算法在实际应用中很可能会"翻车"。
B&U测试集由Bilge和Ulusoy在1995年提出,可以说是FJSP-T领域的开山之作。这个测试集包含10个FJSP实例(虽然目前公开的只有9个)和4种不同的AGV运输布局。通过排列组合,总共可以生成40个FJSP-T测试用例。
每个实例文件的开头都有明确的参数说明。以FJSP1为例:
code复制5 4 2 %job number, machine number, AGV number
3 3 1 8 2 9 3 9 % Operation1: 3可选机器,机器1耗时8,机器2耗时9...
这个注释非常人性化,即使初学者也能快速理解数据格式。我建议大家在第一次使用时,可以先用小规模的FJSP1练手,等熟悉了再挑战更大的实例。
B&U测试集最精妙的设计在于它的运输时间矩阵。比如Layout1中的:
code复制0 6 8 10 12 %M1到各机器的运输时间
12 0 6 8 10 %M2到各机器的运输时间
...
这个矩阵模拟了真实车间中机器间的物理距离。我在实际测试中发现,运输时间的设置对调度结果影响巨大。有些算法在忽略运输时间时表现优异,但一旦加入这个约束,性能可能直接下降30%。
Deroussi和Norre在2010年提出的D&N测试集可以看作是B&U的升级版。它保留了B&U的10个FJSP实例,但将AGV布局简化为1种,共生成10个测试用例。
这个简化看似退步,实则大有深意。在实际项目中我发现,过多的布局组合虽然增加了测试覆盖面,但也让算法评估变得复杂。D&N的改进让研究者能更聚焦于核心问题的解决。
D&N的实例规模普遍比B&U大。比如它的FJSP1就有7个作业和8台机器:
code复制7 8 2 %job number, machine number, AGV number
3 2 1 16 2 16 %第一个工序有2台可选机器...
处理时间也明显更长,这对算法的扩展性提出了更高要求。我在测试遗传算法时发现,B&U实例可能几秒就能得出不错解,但D&N的实例往往需要几分钟才能收敛。
这两个测试集之所以能成为行业标准,关键在于它们提供了完整的评估框架:
我建议新手可以从这几个维度来评估算法:
在使用这些测试集时,我踩过不少坑,这里分享几个关键注意事项:
虽然B&U和D&N已经成为经典,但它们也存在一些不足。最明显的就是规模偏小,与现代智能工厂的复杂度相比略显简单。我在实际项目中发现,当作业数超过50时,这些测试集的参考价值就会下降。
另一个问题是它们假设AGV运输时间是确定的。而在真实场景中,运输时间可能存在波动。这就需要研究者在标准测试基础上,适当加入随机因素进行鲁棒性测试。
最近几年,一些新研究开始尝试构建更大规模的测试集,并考虑更多现实约束,比如AGV充电时间、路径冲突等。但B&U和D&N作为奠基者,仍然是入门学习的最佳选择。