🐋 改进鲸鱼优化算法(IWOA)求解柔性作业车间调度问题(FJSP)------附MATLAB代码
一、引言
柔性作业车间调度问题(Flexible Job Shop Scheduling Problem, FJSP) 是经典JSSP的扩展,每道工序可以在多台可选机器上加工,加工时间因机器而异。FJSP更贴近实际生产环境,但求解难度也更大。
研究背景
鲸鱼优化算法(Whale Optimization Algorithm, WOA)是Mirjalili于2016年提出的元启发式算法,模拟座头鲸的泡泡网捕食行为。本文提出的 改进鲸鱼优化算法(IWOA) 通过集成遗传算子,使其能够有效求解离散的FJSP。
二、柔性作业车间调度模型
问题描述
- 有n个工件、m台机器
- 每个工件有若干道工序
- 每道工序可在多台可选机器上加工
- 同一工件的工序顺序固定
- 每台机器同时只能加工一个工件
基准测试------Kacem 4×5实例
| 工件 | 工序1可选机时 | 工序2可选机时 | 工序3可选机时 |
|---|---|---|---|
| J1 | M1(1) M2(3) M3(4) M4(5) M5(2) | M1(4) M2(2) M3(3) M4(4) M5(1) | M1(5) M2(4) M3(2) M4(1) M5(3) |
| J2 | M1(3) M2(2) M3(5) M4(4) M5(1) | M1(2) M2(3) M3(1) M4(5) M5(4) | M1(4) M2(1) M3(3) M4(2) M5(5) |
| ... | ... | ... | ... |
三、改进鲸鱼优化算法
3.1 编码方案
FJSP采用双层编码:
- 工序序列(OS):与JSSP相同的工序编码
- 机器分配(MS):每个工序对应的机器选择
3.2 WOA的离散化改进
原始WOA的连续位置向量无法直接用于FJSP,本文的改进策略:
- 包围捕食 → POX交叉(用当前鲸鱼与最优鲸鱼交叉)
- 螺旋更新 → 两点交叉(与随机个体交叉)
- 随机搜索 → 交换变异
3.3 算法流程
- 初始化种群(OS + MS)
- 评估适应度(Makespan)
- 更新最优个体(Leader)
- 对每个个体:
- 若 \( r < 0.5 \):包围捕食(POX交叉)或变异
- 否则:随机搜索(与随机个体交叉)
- 重复步骤2-4直到终止条件
3.4 MATLAB核心代码
```matlab
%% IWOA_FJSP.m
clear; clc;
% 数据初始化
num_jobs = 4; num_machines = 5; num_ops = 3;
% 可选机器与加工时间
M = cell(num_jobs, num_ops);
M{1,1} = [1,1; 2,3; 3,4; 4,5; 5,2];
% ...
%% 解码函数
function schedule = decode_fjsp(os, ms, M, num_machines)
job_op = zeros(size(M,1), 1);
machine_end = zeros(num_machines, 1);
job_end = zeros(size(M,1), 1);
schedule = [];
midx = 1;
for i = 1:length(os)
job = os(i);
op = job_op(job) + 1;
options = M{job, op};
machine = options(ms(midx), 1);
time = options(ms(midx), 2);
midx = midx + 1;
start_time = max(machine_end(machine), job_end(job));
end_time = start_time + time;
schedule = [schedule; job, op, machine, start_time, end_time];
machine_end(machine) = end_time;
job_end(job) = end_time;
job_op(job) = op;
end
end
```
四、实验结果
4.1 收敛曲线

IWOA在约40代内快速收敛到最优解附近,验证了算法的搜索效率。
4.2 最优调度甘特图

甘特图展示了每台机器上的工序排布,不同颜色代表不同工件。
4.3 多次运行对比

5次独立运行得到Makespan在6-8之间,平均6.8,说明IWOA具有较强的稳定性。
五、结论与展望
IWOA通过将WOA的搜索机制与遗传算子结合,成功应用于FJSP。主要优势:
- ✅ 双层编码灵活适配FJSP
- ✅ 集成POX交叉保留工序顺序
- ✅ 包围-螺旋-随机三种搜索模式平衡探索与开发
展望:未来可结合强化学习实现自适应参数调整。
关键字:鲸鱼优化算法、柔性作业车间调度、FJSP、WOA、Kacem
本文为CSDN原创博客,转载请注明出处