之前就分享过大模型(LLM)结合进化算法的文章,今天要解析的这篇文章,我认为是直接用于求解车间调度问题的开创性文章。

获取更多资讯,赶快关注公众号《智能制造与智能调度》吧!

摘要

清华大学王凌教授团队《IEEE Transactions on Evolutionary Computation》发表突破性研究,提出一种LLM驱动的协同进化模因算法框架(LLMMA),解决航空制造中可变子批次混合流水车间调度(LHJSV) 难题。

问题定义:LHJSV调度挑战

  • 三大子问题耦合

    1. 工序排序(Operation Sequencing)
    2. 批次分割(Lot-Splitting)
    3. 并行机选择(Machine Selection)
  • 数学模型

  • 问题示例

工件1有两道工序,其工序1分为两个数量分别为2和1的两个子批,工序1的所有子批完成后工序2才能开始,工序间的准备时间为1

传统方法局限性

六类方法对比

方法类型 代表算法 缺陷
精确方法 线性规划 仅适用于小规模问题
启发式方法 迭代贪婪搜索 不稳定且易早熟收敛
邻域搜索 专家设计 人工工作量大
元启发式方法 遗传算法 缺乏问题特定搜索策略
强化学习 深度Q网络 训练成本高、泛化性差
混合算法 文化基因算法 设计过程复杂且依赖人工
LLM方法 EoH 无法处理复杂约束

解空间复杂度
解空间总量=(∑i=1NNi)!∏i=1NNi!⏟工序排序×∏i=1N∏j=1NiC(Bi+NtM−1,NtM−1)⏟批次分割与机器选择\text{解空间总量} = \underbrace{\frac{(\sum_{i=1}^{N}N_i)!}{\prod_{i=1}^{N}N_i!}}_{\text{工序排序}} \times \underbrace{\prod_{i=1}^{N}\prod_{j=1}^{N_{i}} C(B_{i} + N_{t}^{M} -1, N_{t}^{M} -1)}_{\text{批次分割与机器选择}}解空间总量=工序排序 i=1NNi!(i=1NNi)!×批次分割与机器选择 i=1Nj=1NiC(Bi+NtM1,NtM1)

LLMMA框架设计

动机

先前研究[28]提出的框架仅适用于在线装箱、置换流水车间调度等简单组合优化问题,这些任务的逻辑约束较易通过提示描述。然而,面对LHJSV等复杂车间调度问题时,其约束条件和问题结构显著复杂化。直接应用[28]的框架会导致提示过长且复杂,可能引发LLM理解偏差,进而生成错误算法。受“分而治之”思想启发,本文提出启发式协同进化框架,以自动化设计针对复杂调度问题的启发式规则。

框架设计

  1. 问题分解

    • 将LHJSV拆解为两个子问题:
      (1) 工序排序(Operation Sequencing)
      (2) 批次分割与机器选择(Lot-Splitting & Machine Selection)
    • 为每个子问题设计独立的提示模板(Prompts)
  2. 协同优化机制

    • 通过简化任务复杂度、缩短LLM输入长度,提升算法生成可行性

LLMMA算法框架

提示工程

  1. 核心算子
    基于[28]的框架,采用四类操作算子:
    [E1,E2,M1,M2]\left[E_1, E_2, M_1, M_2\right][E1,E2,M1,M2]

    • E1E_1E1:生成与父代算法完全不同的新算法
    • E2E_2E2:基于父代算法概念设计新算法
    • M1M_1M1:改进现有算法的结构或性能
    • M2M_2M2:优化现有算法的参数
  2. 提示结构创新

    • 传统提示组件:
      • 任务描述(Task Description)
      • 函数名(Function Name)
      • 输入/输出定义(Input/Output)
      • 输入输出信息说明(Information of Input and Output)
      • 其他相关信息(Other Relevant Information)
    • 本文新增组件
      • 手动代码(Manual Code):添加在任务描述后,通过Chain-of-Thought推理增强LLM对代码结构和问题理解的能力

初始化流程

  1. 提示构建

    • 使用i1i_1i1提示模板初始化算法种群
    • 提示结构:任务描述 + 手动代码
    • 标准化指令:

      “首先用一句话描述新算法及其主要步骤(描述需用花括号括起)。
      其次,用Python实现名为[函数名]的函数,该函数接受[输入]并返回[输出]。
      同时提供[输入输出信息]和[其他相关信息]。”

  2. 种群生成

    • 将上述组件嵌入i1i_1i1提示,与LLM交互两次
    • 每个解包含:算法描述、对应代码、适应度评估值

算法评估

  1. 基准解生成

    • 对每个LHJSV实例执行进化算法(EA),生成基准解Si(i=1,...,NC)S_i (i=1,...,N_C)Si(i=1,...,NC)
    • 参数设置:
      • 最大评估次数 MaxNFEs=2×104MaxNFEs=2×10^4MaxNFEs=2×104
      • 种群大小 ps=100ps=100ps=100
      • 交叉率 Pc=1.0P_c=1.0Pc=1.0,变异率 Pm=0.2P_m=0.2Pm=0.2
  2. 协同优化

    • SiS_iSi的工序排序向量(OSOSOS)输入其对应算法种群
    • 将批次分割(LSLSLS)和机器选择(MSMSMS)向量输入另一任务的种群
    • 每个算法独立优化SiS_iSi,迭代nlsn_{ls}nls
  3. 适应度计算

    • 采用类似于SPEA2中使用的多目标指标:
      Fj=∑i=1NCϕi−1RNC∑t=1R∑i=1NCCmax⁡(Aj)−Cmax⁡(Si)Cmax⁡(Si),∀j(9)F_j=\sum_{i=1}^{N_C}\phi_i - \frac{1}{RN_C}\sum_{t=1}^{R}\sum_{i=1}^{N_C}\frac{C_{\max}(A_j)-C_{\max}(S_i)}{C_{\max}(S_i)}, \forall j \quad (9)Fj=i=1NCϕiRNC1t=1Ri=1NCCmax(Si)Cmax(Aj)Cmax(Si),j(9)
      • RPDi<0RPD_i<0RPDi<0ϕi=1\phi_i=1ϕi=1,否则 ϕi=0\phi_i=0ϕi=0
      • RPDiRPD_iRPDi:算法AjA_jAj在实例iii的相对百分比偏差
    • FjF_jFj值越大表示算法性能越优
  4. 异常处理

    • 若LLM生成的算法无法运行:适应度设为None,环境选择阶段优先淘汰
    • 若算法存在语法/逻辑错误导致不可行解:
      (1) 定位解中不可行部分
      (2) 对未调度工序随机重排并插入解中空闲位置
      (3) 从候选集重新分配无效机器选择

算法协同进化

  1. 协同机制

    • 每个任务独立评估并选出最优算法
    • 向LLM提交操作算子[E1,E2,M1,M2][E_1, E_2, M_1, M_2][E1,E2,M1,M2]生成新算法
    • 使用另一任务的最优解协同优化SiS_iSi
  2. 终止条件

    • 算法协同进化执行AgA_gAg代后终止

算法种群更新

  • 保留每个种群中适应度最高的前ApA_pAp个算法
  • ApA_pAp:算法种群大小

以下是对论文**实验结果部分(Section IV)**的严格提炼,完全依据原文内容组织,未添加任何外部信息或主观推测:


实验结果

数据集与评估指标

  • 数据集

    • 基础:JSP标准基准TA01-80
    • 扩展:20个均匀选取的实例
    • 参数设置:
      • 批次大小 Bi∈{5,10}B_i \in \{5,10\}Bi{5,10}(随机)
      • 每类机器并行数 ∈{2,3}\in \{2,3\}{2,3}(随机)
      • 工序准备时间 Ti,jS∈[5,10]T^S_{i,j} \in [5,10]Ti,jS[5,10](均匀采样)
  • 评估指标

    1. LLM训练指标
      Fj=∑i=1NCϕi−1RNC∑t=1R∑i=1NCCmax⁡(Aj)−Cmax⁡(Si)Cmax⁡(Si)(9)F_j = \sum_{i=1}^{N_C}\phi_i - \frac{1}{RN_C}\sum_{t=1}^{R}\sum_{i=1}^{N_C}\frac{C_{\max}(A_j)-C_{\max}(S_i)}{C_{\max}(S_i)} \quad (9)Fj=i=1NCϕiRNC1t=1Ri=1NCCmax(Si)Cmax(Aj)Cmax(Si)(9)
    2. 调度性能指标
      RPD=Cmax⁡(Aj)−LBLB,LB=min⁡(Cmax⁡(Aj))RPD = \frac{C_{\max}(A_j) - LB}{LB}, \quad LB = \min(C_{\max}(A_j))RPD=LBCmax(Aj)LB,LB=min(Cmax(Aj))

超参数分析

实验1:启发式协同进化(CEoH)参数

  • 因素
    • 算法种群大小 Ap∈{4,7,10}A_p \in \{4,7,10\}Ap{4,7,10}
    • 进化代数 Ag∈{5,10,15}A_g \in \{5,10,15\}Ag{5,10,15}
  • 关键结果

结论Ap=7A_p=7Ap=7 为最优,AgA_gAg 无显著偏好(故设 Ag=15A_g=15Ag=15

实验2:文化基因算法参数

  • 因素
    • 种群大小 ps∈{20,50,100}ps \in \{20,50,100\}ps{20,50,100}
    • 局部搜索次数 nls∈{1,5,10}n_{ls} \in \{1,5,10\}nls{1,5,10}
    • 变异率 Pm∈{0.1,0.2,0.3}P_m \in \{0.1,0.2,0.3\}Pm{0.1,0.2,0.3}
  • 关键结果

结论nlsn_{ls}nls 存在拐点(nls=5n_{ls}=5nls=5RPDaverRPD_{aver}RPDaver 最优)

消融实验

实验设计

消融方案 缩写
合并提示为单一复杂提示 CEoH1
移除Chain-of-Thought机制 CEoH2
移除LLM设计的局部搜索 EA

训练性能结果

算法 FbestF_{best}Fbest 改进实例数/20 平均RPDRPDRPD提升
CEoH1 15.01831 15 1.831%
CEoH2 15.03009 15 3.009%
CEoH 19.05527 19 5.527%

测试性能结果

嵌入算法 RPDaverRPD_{aver}RPDaver 最佳解数量/20
MA-CEoH1 +1.75% 8
MA-CEoH2 +1.35% 9
MA-CEoH 基准 12

对比实验

  1. 迭代搜索算法:HHIGA, RLABC
  2. 生成式调度算法:HGNN
  3. LLM基础算法:EoH

标准测试集结果

现实案例结果

  • 场景:飞机工装车间(23个工件/575道工序)
  • 关键发现
    • LLMMA1获得最优RPDRPDRPD
    • 性能排序:LLMMA1 > LLMMA2 > HHIGA > MA-EoH > RLABC

参考文献

[1] R. Li, L. Wang, H. Sang, L. Yao, and L. Pan, “LLM-Assisted Automatic Memetic Algorithm for Lot-Streaming Hybrid Job Shop Scheduling With Variable Sublots,” IEEE Transactions on Evolutionary Computation, pp. 1-1, 2025, doi: 10.1109/TEVC.2025.3556186.

[28]F. Liu, T. Xialiang, M. Yuan, X. Lin, F. Luo, Z. Wang, Z. Lu, and
Q. Zhang, “Evolution of heuristics: Towards efficient automatic algolrithm design using large language model,” in Forty-first International
Conference on Machine Learning, 2024.

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐