2025年ESWA SCI1区TOP,强化学习多目标灰狼算法MOGWO-RL+分布式混合流水车间调度,深度解析+性能实测

目录

    • 1.摘要
    • 2.问题描述和数学建模
    • 3.强化学习多目标灰狼算法MOGWO-RL
    • 4.结果展示
    • 5.参考文献
    • 6.算法辅导·应用定制·读者交流


1.摘要

本文针对大规模个性化制造(MPM)中的调度问题,提出了一种新的解决方案。MPM能够在确保大规模生产的前提下,实现个性化定制,但由于制造任务类型和数量的快速变化,调度难度大大增加。为此,本文提出了分布式混合流车间调度问题(DHFSP-OMTA),通过将异质客户订单分解为标准和个性化生产任务,并将其分配到不同工厂来应对这一挑战。为了解决MPM中的调度问题,本文构建了一个混合整数线性规划模型,旨在同时最小化完工时间和总能耗。在此基础上,针对DHFSP-OMTA的高复杂性,设计了一种基于强化学习多目标灰狼算法(MOGWO-RL)。MOGWO-RL采用变量任务分割方法,结合两种初始启发式规则,以产生高质量的种群;设计了基于强化学习变量邻域搜索方法,提升了搜索质量,并有效避免了陷入局部最优解;提出了高效的批次合并方法,以减少运输过程中的能耗。

2.问题描述和数学建模

DHFSP-OMTA的整个流程可分为三个主要阶段:生产、运输和装配。如图所示,该系统包括多个生产工厂和一个装配工厂。每个生产工厂配备有一组并行机器,并按指定位置排列。在生产阶段,订单被模块化分解为多个生产任务,每个任务包含若干批次,任务需分配到不同的生产工厂进行处理。完成的批次将在运输阶段转移到装配工厂,后者拥有多个可进行装配的工作站。在装配阶段,每个批次只能分配给一个工作站进行装配。

在整个过程中,生产、工作功率和运输功率等信息都是预先已知的,机器的空闲能耗不被考虑。DHFSP-OMTA中的任务分配主要包括以下几个方面:(1)批次数量;(2)工厂分配;(3)任务分割;(4)批次顺序。这些任务分配对于实现高效调度和优化能耗至关重要。

Description of DHFSP-OMTA

数学模型

参数定义

本文目标是最小化最大完工时间,最小化总能耗。

订单模块化和任务分配方法

OMTA方法包含两个主要阶段:消费者订单的模块化处理和任务分配到不同工厂,目标是通过模块化处理将消费者订单转化为生产任务。因此,需要建立关联矩阵并量化每种关系强度,该关联矩阵包括三个关键指标:结构关联、加工关联和运输关联。结构关联衡量零件之间的结构相似度,结构尺寸相似的零件更可能归为同一生产任务;加工关联衡量零件之间的工艺相似度,工艺相似的零件更可能共享相同的加工设备、工具和夹具;运输关联衡量两零件之间的运输时间要求,同一批次中运输并在同一工作站组装的零件更易归为同一生产任务。

权重系数分别为wsw_swswpw_pwpwtw_twt,假设所有消费者订单包含NNN个零件。

在任务分配阶段,消费者订单被转化为具体的生产任务。为了提升DHFSP的制造灵活性,这些任务被分配到标准工厂和个性化工厂,其中少量任务被分配给个性化工厂,以帮助标准工厂减少换工具和设置时间。为了合理分配任务,首先需要计算任务的工作小时数,并与工厂的工作小时能力进行对比。

在此过程中,所有订单首先形成一个集合OM,SOR表示订单的总数量。通过订单模块化处理后,任务按工作小时数从小到大排序。根据任务的标准或个性化属性以及工厂的工作小时能力,将任务分配给相应的工厂。最后使用变量分割方法将任务拆分为多个批次。

当消费者订单到达企业时,它们会立即被处理为生产任务,随后执行调度计划。为了清晰地解释任务分配和任务的变量拆分,表中包含3个加工工厂和2个工作站,S/P分别表示标准工厂和个性化工厂,以及1个装配工厂和1个工作站。通过比较图(a)和(b),任务分配能够将一小部分个性化任务分配给特定工厂。

An example of task assigning and splitting: (a) without tasks splitting; (b) tasks splitting.

3.强化学习多目标灰狼算法MOGWO-RL

编码与解码

An example of encoding

在编码过程中,四个一维向量用于表示解决方案,包括批次数量、任务分配、每个批次的大小和批次顺序。数量向量(NV)表示批次数量,基因的取值范围为[1, 2, 3]。工厂向量(FV)表示任务分配的工厂类型,个性化任务用P表示,标准任务则用[1, Fs]表示,其中Fs为标准工厂数量。大小向量(SV)表示每个批次的大小,采用变量任务拆分方法,批次数量不超过3,最大批次为任务总数的90%,最小批次为10%。SV的基因采用一个小数表示不同批次之间数量的比例。

An example of decoding

在解码过程中,计算每个批次的大小并按照OV向量对各工厂的加工顺序进行排序。任务的工厂分配依据FV向量的值,最终的完工时间由装配工作站的完成时间确定。

SJij=⌊tsi∙yij∑yij⌋,SJij∈IiSJ_{ij}=\left\lfloor ts_{i}\bullet\frac{y_{ij}}{\sum y_{ij}}\right\rfloor,SJ_{ij}\in I_{i} SJij=tsiyijyij,SJijIi

初始化策略

本文提出了两种初始启发式规则——任务分配和任务拆分,用于初始化工厂向量(FV)和大小向量(SV)。任务分配通过满负荷和顺序规则将任务分配给不同工厂,确保任务合理分配;任务拆分结合等分拆分和变量拆分规则,以增加SV的多样性。此外,批次数量和批次顺序采用随机规则,进一步提升初始种群的多样性。

捕猎策略

调度问题属于离散问题,因此MOGWO捕猎策略需要进行重新设计。在每次迭代的捕猎操作中,www狼会选择与三位领导者之一进行交叉,用来探索解空间。

μit+1={cross(μit,μαt),ifrand<13cross(μit,μβt),if13≤rand<23cross(μit,μγt),otherwise\left.\mu_{i}^{t+1}= \begin{cases} cross(\mu_{i}^{t},\mu_{\alpha}^{t}),ifrand<\frac{1}{3} \\ cross\left(\mu_{i}^{t},\mu_{\beta}^{t}\right),if\frac{1}{3}\leq rand<\frac{2}{3} \\ cross\left(\mu_{i}^{t},\mu_{\gamma}^{t}\right),otherwise & \end{cases}\right. μit+1=cross(μit,μαt),ifrand<31cross(μit,μβt),if31rand<32cross(μit,μγt),otherwise

基于强化学习的可变邻域搜索

An example of the initial Q-table

为了提高MOGWO的性能,本文设计了基于强化学习的可变邻域搜索方法,该方法通过四种邻域算子优化解:交换关键工厂任务(V1)、调整批次大小(V2)、调整任务顺序(V3)和改变批次大小(V4)。强化学习用于自动选择最佳操作,避免陷入局部最优解,并通过IGD和HV评估搜索的收敛性和多样性。

批次合并策略

DHFSP-OMTA中的TEC包括工作站和运输能耗,而流车间的工作站能耗难以降低。通过提出的批次合并策略(MBS)在不增加完成时间的情况下优化TEC。通过在运输过程中合并装配阶段有时间冲突的批次,可以减少运输能耗,同时保持完成时间不变。

An example of merging batches strategy: (a) without MBS; (b) MBS

Framework of MOGWO-RL

4.结果展示

论文结果

5.参考文献

[1] Chen X, Li Y, Wang L, et al. Multi-objective grey wolf optimizer based on reinforcement learning for distributed hybrid flowshop scheduling towards mass personalized manufacturing[J]. Expert Systems with Applications, 2025, 264: 125866.

6.算法辅导·应用定制·读者交流

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/94095.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/94095.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mac 系统下安装 nvm

Mac 系统下安装 nvm nvm 全称为 node version manger&#xff0c;顾名思义就是管理 node 版本的一个工具&#xff0c;通过这个工具&#xff0c;我们可以在一台计算机上安装多个版本的 node&#xff0c;并且随时进行无缝的切换。 1. 卸载原本的 node.js&#xff08;重要&#xf…

变量筛选—随机森林特征重要性

对于接触算法模型不久的小伙伴来说,建模中海量变量筛选总是让人头疼,不知道如何把握。之前已经介绍了一些变量筛选的方法:变量筛选一张图、【变量筛选】计算类别型变量IV值、KS值、一文囊括风控建模中的变量筛选方法、变量筛选—特征包含信息量。本文详细介绍通过随机森林算…

【设计模式】 3.设计模式基本原则

单一职责原则 对于一个类而言&#xff0c;有且仅有一个引起他变化的原因或者说&#xff0c;一个类只负责一个职责 如果一个类承担的职责过多&#xff0c;那么这些职责放在一起耦合度太高了&#xff0c;一个职责的变化可能会影响这个类其他职责的能力。 所以我们在做软件设计的时…

ABP VNext + Redis Bloom Filter:大规模缓存穿透防护与请求去重

ABP VNext Redis Bloom Filter&#xff1a;大规模缓存穿透防护与请求去重 &#x1f680; &#x1f4da; 目录ABP VNext Redis Bloom Filter&#xff1a;大规模缓存穿透防护与请求去重 &#x1f680;TL;DR ✨1. 引言 &#x1f389;2. 环境与依赖 &#x1f6e0;️3. Bloom Filt…

构建工具和脚手架:从源码到dist

构建工具和脚手架&#xff1a;从源码到dist**1. 为什么需要工程转换&#xff1f;****2. 构建工具的核心职责**为什么要求转换**1&#xff09;明确三种关键问题****&#xff08;2&#xff09;Webpack 的打包机制****3. 开发服务器&#xff08;Webpack Dev Server&#xff09;***…

数字化生产管理系统设计

下面提供一个基于Python的数字化管理系统框架&#xff0c;使用现代技术栈实现。这个系统将包含设备监控、故障管理、装配配套表生成、生产计划管理等功能。系统架构数字化生产管理系统 ├── 设备监控模块 ├── 故障管理模块 ├── 产品装配管理模块 ├── 生产计划管理模…

【vue】创建响应式数据ref和reactive的区别

目录 1、所谓响应式数据 2、ref创建基本类型响应式数据 3、reactive创建对象类型响应式数据 4、ref定义对象类型响应式数据 5、总结&#xff1a;ref和reactive对比 6、补充&#xff1a;toRefs与toRef 1、所谓响应式数据 所谓响应式数据就是&#xff0c;在vue页面中&#…

YOLO12 改进、魔改|直方图 Transformerm模块HTB ,通过动态范围特征分组、针对性注意力与多尺度融合,提高对遮挡以及多尺度目标的关注能力

在恶劣天气&#xff08;如雨、雪、雾&#xff09;下的图像恢复任务中&#xff0c;传统 Transformer 模型为降低计算量&#xff0c;常将自注意力限制在固定空间范围或仅在通道维度操作&#xff0c;导致难以捕捉长距离空间特征&#xff0c;尤其无法有效处理天气退化像素&#xff…

涉水救援机器人cad【12张】三维图+设计书明说

涉水救援机器人设计 摘 要 随着城市化进度的加快&#xff0c;各种水上游乐设备的增多&#xff0c;水上灾害和溺水事件频繁发生&#xff0c;水上救援任务困难重重&#xff0c;特别是在一些水流湍急的环境下进行救援。传统的水上救援工作比较缓慢&#xff0c;大多数是通过投射救…

电子病历:现代HIS系统不可或缺的核心组成部分

一、电子病历在 HIS 系统中扮演了一个什么角色?电子病历在医院信息系统&#xff08;HIS&#xff09;中扮演着核心、基础且不可替代的角色&#xff0c;可以说是整个HIS系统的临床信息中枢和业务驱动引擎。它的重要性体现在以下几个方面&#xff1a;1、临床诊疗活动的核心载体&a…

【深度学习】通俗易懂的基础知识:指数加权平均

一、什么是指数加权平均&#xff1f; 指数在数学中表示一个数的幂次运算&#xff08;如aⁿ中的n&#xff09;&#xff0c;而在统计学中特指随时间变化的几何衰减系数&#xff0c;加权指对不同数据赋予不同权重&#xff0c;使重要数据对结果产生更大影响。指数加权平均指是一种时…

c++-list

C-list std::list是C标准模板库(STL)提供的双向链表容器&#xff0c;它提供了高效的插入和删除操作&#xff0c;特别适合频繁修改的序列。定义在 <list> 头文件中&#xff0c;属于 std 命名空间。该类的接口与常规容器接口基本一致。 模板原型&#xff1a; template <…

【笔试真题】2024秋招京东后端开发岗位-第一批笔试

31.牛牛与切割机 有一个序列 a1,a2,...,ana_1,a_2,...,a_na1​,a2​,...,an​ &#xff0c; 牛牛将对这个序列切割一刀&#xff08;划分分成两个不相交的非空序列&#xff0c;一个序列为 a1,...,apa_1,...,a_pa1​,...,ap​&#xff0c;另一个序列为 ap1,...,ana_{p1},...,a_na…

【整数转罗马数字】

思路计算数字的位数&#xff1a; 通过 while(x) 循环计算输入数字 num 的位数 n。提取各位数字&#xff1a; 将数字 num 的每一位分解并存储到 nums 数组中&#xff0c;顺序为从高位到低位。罗马数字映射&#xff1a; 使用固定数组 Roman 存储罗马数字符号&#xff1a;Roman {…

spring Scheduled注解详解

spirng Scheduled注解详解 用于标记需要安排执行的方法的注解。必须指定 cron、fixedDelay 或 fixedRate 中的恰好一个属性。 被标注的方法必须不接受任何参数。它通常会具有 void 类型的返回值&#xff1b;如果不是这样&#xff0c;那么在通过调度器调用该方法时&#xff0c;返…

新升级超值型系列32位单片机MM32G0005

灵动微推出的新型MM32G0005系列基于ArmCortex - M0内核&#xff0c;具备高可靠性、低功耗、高性价比等特性。Flash升级至64KB&#xff0c;SRAM为4KB&#xff0c;还有1KB Data Flash。Flash全温擦写次数超过10万次。采用24Pin封装&#xff0c;最多有22个IO。QFN20和TSSOP20封装与…

Spark SQL 的详细介绍

Spark SQL 是 Apache Spark 生态系统中用于处理结构化数据的模块&#xff0c;它将 SQL 查询与 Spark 的分布式计算能力相结合&#xff0c;提供了一种高效、灵活的方式来处理结构化和半结构化数据。以下是对 Spark SQL 的详细介绍&#xff1a;1. 核心定位与优势结构化数据处理&a…

【FreeRTOS】空闲任务与钩子函数原理、实现与功能详解

一、FreeRTOS空闲任务概述FreeRTOS中的空闲任务(Idle Task)是系统自动创建的一个特殊任务&#xff0c;具有最低优先级(优先级0)。当没有其他更高优先级的任务运行时&#xff0c;调度器就会运行空闲任务。空闲任务的主要功能系统资源回收&#xff1a;自动清理被删除任务的内存和…

imx6ull-驱动开发篇6——Linux 设备树语法

目录 前言 设备树 设备树概念 DTS、 DTB 和 DTC DTS 语法 .dtsi 头文件 设备节点 /根节点​​ 节点命名与标签 节点层次结构​ 属性数据类型​ 标准属性 compatible 属性 model 属性 status 属性 #address-cells 和#size-cells 属性 reg 属性 ranges 属性 n…

ansible简单playbook剧本例子2

1. 准备主机组[rootansible-master ansible_quickstart]# vim inventory/hosts[web:vars] ansible_port22 ansible_passwordAdmin123456[web] 192.168.100.1822.准备剧本 vim hello.yml--- - hosts: webremote_user: roottasks:- name: Ping the target hostsping:- name: 获取…