✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、算法改进、程序设计科研仿真。

🍎 往期回顾关注个人主页:完整代码获取 定制创新 论文复现私信

🍊个人信条:做科研,博学之、审问之、慎思之、明辨之、笃行之,是为:博学慎思,明辨笃行。

🔥 内容介绍

一、引言

在现代制造业中,柔性作业车间调度问题(FJSP)因其能够适应多样化的生产需求而备受关注。FJSP 旨在确定工件在不同机器上的加工顺序、加工时间以及机器分配,以优化多个相互冲突的目标,如最小化最大完工时间(makespan)、最小化总拖期时间、最大化机器利用率等。然而,由于 FJSP 的 NP - hard 特性,传统的精确算法在求解大规模问题时面临计算时间过长的挑战。因此,启发式和元启发式算法成为解决此类问题的有效手段。非支配吸血水蛭优化算法(NSBSLO)作为一种新兴的多目标优化算法,被引入到 FJSP 的求解中,为该问题的解决提供了新的思路。

二、多目标柔性作业车间调度问题 (FJSP)

(一)问题描述

FJSP 通常包含多个工件和多台机器。每个工件由一系列有序的工序组成,每道工序可以在多台机器中的一台上进行加工,且不同机器对同一工序的加工时间可能不同。调度的任务是为每个工序分配合适的机器,并确定所有工序的加工顺序,以满足多个优化目标。

(二)目标函数

  1. 最大完工时间(Makespan):指所有工件加工完成的最长时间,目标是使 Cmax=maxi=1nCi 最小化,其中 Ci 是工件 i 的完工时间,n 是工件的数量。

  2. 总拖期时间(Total Tardiness):考虑工件的交货期,若工件的完工时间超过其交货期,则产生拖期。目标是使 ∑i=1nmax(0,Ci−di) 最小化,其中 di 是工件 i 的交货期。

  3. 机器利用率(Machine Utilization):希望最大化机器的使用效率,例如可以通过计算所有机器的总加工时间与可用时间的比例来衡量。

三、非支配吸血水蛭优化算法 (NSBSLO)

(一)算法灵感与原理

NSBSLO 模拟了吸血水蛭在寻找宿主和进食过程中的行为。吸血水蛭在环境中随机游动,当感知到宿主的存在时,会向宿主移动并尝试吸血。在算法中,每个水蛭代表一个潜在的解,水蛭的位置对应解的参数(如工序的机器分配和加工顺序)。水蛭通过随机移动、向较好解靠近等方式在解空间中搜索,以找到最优解。

(二)算法步骤

  1. 初始化:随机生成一组水蛭(解),每个水蛭包含工件工序的机器分配和加工顺序信息。同时,初始化水蛭的位置、速度等参数。

  2. 适应度计算:对于每个水蛭,根据 FJSP 的目标函数计算其适应度值。由于是多目标问题,每个水蛭会有多个适应度值,分别对应不同的目标。

  3. 非支配排序:将所有水蛭按照非支配关系进行排序,将非支配解划分到不同的等级(前沿)。非支配解是指在所有目标上都不比其他解差的解。

  4. 拥挤度计算:在每个非支配前沿内,计算每个水蛭的拥挤度。拥挤度反映了水蛭在解空间中的分布密度,用于保持种群的多样性。

  5. 水蛭移动:水蛭根据自身速度和周围环境信息进行移动。移动过程中,水蛭会尝试向更好的解靠近,同时也会有一定的随机移动,以避免陷入局部最优。

  6. 更新种群:根据水蛭的移动结果,更新水蛭的位置和相关参数。然后重新计算适应度值、进行非支配排序和拥挤度计算。

  7. 终止条件判断:如果满足预设的终止条件(如达到最大迭代次数、解的质量不再提高等),则算法终止,输出非支配解集中的解作为 FJSP 的近似最优解;否则,返回步骤 4 继续迭代。

四、基于 NSBSLO 求解 FJSP 的实现

(一)编码与解码

  1. 编码:采用一种混合编码方式,例如将工件工序的机器分配和加工顺序分别进行编码。可以使用整数编码表示机器分配,用基于工序的排列编码表示加工顺序。

  2. 解码:根据编码信息,将其转换为实际的调度方案,即确定每个工序在哪个机器上加工以及加工的先后顺序。

(二)适应度函数计算

根据 FJSP 的多个目标函数,分别计算每个水蛭(解)的适应度值。例如,计算最大完工时间、总拖期时间等目标值作为适应度。

(三)NSBSLO 与 FJSP 的结合

  1. 在 NSBSLO 的初始化步骤中,生成的水蛭解要符合 FJSP 的问题结构,即每个解要包含合理的机器分配和加工顺序。

  2. 在水蛭移动步骤中,考虑 FJSP 的约束条件,如机器的可用性、工序的先后顺序约束等,确保水蛭移动后产生的新解仍然是可行解。

  3. 在更新种群步骤中,根据 FJSP 的多目标特性,利用非支配排序和拥挤度计算来选择优良的解进入下一代种群,以引导算法朝着 Pareto 最优前沿搜索。

⛳️ 运行结果

📣 部分代码

🔗 参考文献

🍅更多免费数学建模和仿真教程关注领取

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐