深度学习用于求解车间调度问题,性能如何呢?

简介: 基于深度学习来求解车间调度问题,不仅求解速度快,求解的质量也越来越好

引言

车间调度问题(又称“作业车间调度问题”、Job-Shop Scheduling Problem)是一类组合优化(Combinatorial Optimization)问题,在交通运输、制造业等领域的数学建模中应用较多。车间调度问题、以及其它很多组合优化问题都是NP-Hard问题,然而经过多年研究,针对这些问题产生了很多经典的近似求解方法。例如,针对车间调度问题就有基于元启发式算法(Metaheuristics)、约束规划(Constraint Programming)等近似求解方法。

近年来,监督式学习、自监督学习、深度强化学习等深度学习方法开始应用于车间调度问题等组合优化问题的求解。相对于经典的求解方法,当前的基于深度学习的求解方法显现出以下的优点:

  • 求解速度快;
  • 求解的质量逐渐接近于、甚至在有的情况下优于经典的求解方法。

车间调度问题

【算AI】小编在这里简单回顾一下车间调度问题。常见的一种车间调度问题涉及多个作业(Jobs)在多台机器(Machines)上的执行。其中,每个作业由一系列任务(Operations)组成。这一系列任务需要按特定的顺序执行。这一系列任务中的每个任务需要在特定的一台机器上执行,并消耗特定的时间。车间调度问题属于优化问题,其优化目标通常是通过安排各台机器上的任务执行顺序,使得所有任务完工的总时间为最少。

一个小规模的车间调度问题的示例[1]如下表所示。该示例中有三个作业(j1、j2、j3)和三台机器(m1、m2、m3),每个作业由两到三个任务(o11、o12、....)组成。列表中的数值为每个任务在执行时所消耗的时间。

Table_2.jpg

针对该车间调度问题,以下的两张图[1]分别展示出两个解,也就是两种对于各机器的任务安排。两个解的完工总时间分别为15和11;其中,后一个解按照完工总时间来说是最优解。

任务安排一:

Figure_1.jpg

任务安排二:

Figure_2.jpg

中大规模的车间调度问题,随着计算精确解的计算量迅速增大,依靠常规的计算硬件在短时间内精确求解很快变得不切实际。

深度学习方法 vs 经典求解方法

来自于西班牙Tecnalia研究中心和西班牙巴斯克大学的研究人员近期发表了一篇论文[2],该论文的部分内容包括针对车间调度问题的多种近似求解方法的评测。这些近似求解方法包括几种基于深度学习的求解方法,以及一种经典的求解方法——开源运筹学工具OR-Tools中的约束规划求解器CP-SAT(以下简称OR-Tools)。

评测一方面是比较求解的速度。在针对Taillard基准数据集进行评测时,几种基于深度学习的方法求解一个车间调度问题的平均耗时是几秒到十几秒,如以下列表所示。在以下列表中,Size列表示的是车间调度问题的规模(作业数量 x 机器数量);列表中其它数值的单位为秒。

Table_4.jpg

相比之下,OR-Tools在求解相同的测试实例时,每个测试实例被分配了一小时的最长运行时间;根据另外一篇论文[3],OR-Tools求解这些测试实例的耗时经常是几十分钟。

评测的另一方面是比较求解的质量。以下的列表显示了在针对Taillard基准数据集进行评测时,几种基于深度学习的方法以及OR-Tools求解车间调度问题的质量(以“所求出的解与最优解之间的差距”来衡量);该求解质量的数值越小越好。列表中的加粗字体表示基于深度学习的几种求解方法中的最优结果。列表中的首列表示的是车间调度问题的规模(作业数量 x 机器数量)。

Table_1.jpg

从以上的列表可以看出:

  • 基于深度学习的部分方法在车间调度问题的求解质量上已经接近于OR-Tools;
  • 当车间调度问题的规模较大时,基于深度学习的方法在求解质量上更接近于OR-Tools;
  • 当参数为100 x 20时,基于深度学习的个别方法在求解质量上超过了OR-Tools。

结语

就目前而言,基于深度学习的方法来求解车间调度问题,可能比较适用于对求解质量要求不太高、同时对求解时间要求较严的场景。

如何将深度学习与求解车间调度问题、或者其它组合优化问题进一步结合,以及如何将深度学习方法的求解性能进一步提高,还有待于更多的研究。

参考文献

[1] Offline reinforcement learning for job-shop scheduling problems.

https://arxiv.org/abs/2410.15714

[2] Self-Evaluation for Job-Shop Scheduling.

https://arxiv.org/abs/2502.08684

[3] Self-Labeling the Job Shop Scheduling Problem.

https://arxiv.org/abs/2401.11849


封面图:KJ Brix、pexels.co

目录
相关文章
|
11月前
|
机器学习/深度学习 前端开发 算法
利用深度学习技术提升前端图像处理性能
本文将探讨如何利用深度学习技术在前端图像处理中提升性能。通过结合深度学习算法和前端技术,我们可以实现更高效的图像处理功能,提升用户体验和系统性能。
|
2月前
|
机器学习/深度学习 数据采集 自然语言处理
深度学习实践技巧:提升模型性能的详尽指南
深度学习模型在图像分类、自然语言处理、时间序列分析等多个领域都表现出了卓越的性能,但在实际应用中,为了使模型达到最佳效果,常规的标准流程往往不足。本文提供了多种深度学习实践技巧,包括数据预处理、模型设计优化、训练策略和评价与调参等方面的详细操作和代码示例,希望能够为应用实战提供有效的指导和支持。
|
7月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的注意力机制:提升模型性能的关键
在深度学习的世界里,注意力机制如同一位精明的侦探,专注于细节之中发现线索。不同于传统方法的全局视角,它通过聚焦于输入数据的关键部分来提升模型性能。本文将带你领略注意力机制的魅力,从其工作原理到在各领域的应用实例,一探究竟如何让深度学习模型更“专注”。
|
8月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
深度学习中的正则化技术及其对模型性能的影响
【8月更文挑战第26天】本文将深入探讨深度学习领域中的正则化技术,并分析其如何塑造模型性能。我们将从理论出发,逐步引导读者理解不同正则化方法背后的原理,并通过实例展示它们在实际问题中的应用效果。文章旨在启发读者思考如何在特定的深度学习任务中选择合适的正则化策略,以优化模型的表现。
|
4月前
|
机器学习/深度学习 算法框架/工具 网络架构
深度学习中的正则化技术及其对模型性能的影响
本文深入探讨了深度学习领域中正则化技术的重要性,通过分析L1、L2以及Dropout等常见正则化方法,揭示了它们如何帮助防止过拟合,提升模型的泛化能力。文章还讨论了正则化在不同类型的神经网络中的应用,并指出了选择合适正则化策略的关键因素。通过实例和代码片段,本文旨在为读者提供关于如何在实际问题中有效应用正则化技术的深刻见解。
|
8月前
|
机器学习/深度学习 存储 人工智能
提升深度学习性能的利器—全面解析PAI-TorchAcc的优化技术与应用场景
在当今深度学习的快速发展中,模型训练和推理的效率变得尤为重要。为了应对计算需求不断增长的挑战,AI加速引擎应运而生。其中,PAI-TorchAcc作为一个新兴的加速引擎,旨在提升PyTorch框架下的计算性能。本文将详细介绍PAI-TorchAcc的基本概念、主要特性,并通过代码实例展示其性能优势。
18250 166
|
5月前
|
机器学习/深度学习 测试技术 PyTorch
深度学习之测量GPU性能的方式
在深度学习中,测量GPU性能是一个多方面的任务,涉及运行时间、吞吐量、GPU利用率、内存使用情况、计算能力、端到端性能测试、显存带宽、框架自带性能工具和基准测试工具等多种方法。通过综合使用这些方法,可以全面评估和优化GPU的性能,提升深度学习任务的效率和效果。
422 5
|
5月前
|
机器学习/深度学习 算法 开发者
探索深度学习中的优化器选择对模型性能的影响
在深度学习领域,优化器的选择对于模型训练的效果具有决定性作用。本文通过对比分析不同优化器的工作原理及其在实际应用中的表现,探讨了如何根据具体任务选择合适的优化器以提高模型性能。文章首先概述了几种常见的优化算法,包括梯度下降法、随机梯度下降法(SGD)、动量法、AdaGrad、RMSProp和Adam等;然后,通过实验验证了这些优化器在不同数据集上训练神经网络时的效率与准确性差异;最后,提出了一些基于经验的规则帮助开发者更好地做出选择。
|
7月前
|
机器学习/深度学习 PyTorch 调度
在Pytorch中为不同层设置不同学习率来提升性能,优化深度学习模型
在深度学习中,学习率作为关键超参数对模型收敛速度和性能至关重要。传统方法采用统一学习率,但研究表明为不同层设置差异化学习率能显著提升性能。本文探讨了这一策略的理论基础及PyTorch实现方法,包括模型定义、参数分组、优化器配置及训练流程。通过示例展示了如何为ResNet18设置不同层的学习率,并介绍了渐进式解冻和层适应学习率等高级技巧,帮助研究者更好地优化模型训练。
574 4
在Pytorch中为不同层设置不同学习率来提升性能,优化深度学习模型
|
5月前
|
机器学习/深度学习 数据采集 算法
利用深度学习优化图像识别系统的性能
利用深度学习优化图像识别系统的性能
78 0
下一篇
oss创建bucket