麻雀搜索算法优化车间调度(文末附代码)

本文探讨了工业4.0背景下柔性作业车间调度问题(FlexibleJSP),重点介绍了麻雀搜索算法在解决复杂调度问题上的应用,包括算法原理、代码实现和优化结果。通过实例展示了如何考虑机器分配和工序排序,以及如何将能量消耗纳入考量因素。
摘要由CSDN通过智能技术生成


前言

作业车间调度问题(Jot shop Scheduling Problem,JSP)通常被定义为旨在优化一个或多个调度标准的决策题,是最难的组合优化问题之一。柔性作业车间调度问题(Flexible JSP,FJSP)是传统调度问题的扩展。为 了解决FJSP,必须考虑两个问题,一是机器分配;另一个是工序排序。机器分配为每项工序分配一台加工机器,而操作排序是将所有工序安排在相应机器上,以获得可行和高质量的解决方案。因此,FJSP比JSP问题更复杂,被列为NP-hard问题[1]。随着“工业4.0”的提出,制造 业不能再将完工时间作为基准,有部分研究人员已经开 始将能量消耗纳入作业车间的衡量范围内。


一、车间调度问题

在这里插入图片描述

二、麻雀搜索算法

1.算法介绍

麻雀搜索算法是近两年提出的新兴群智能优化算法,具备算法原理简单、收敛速度快等优势。该算法基于麻雀种群的社会行为将麻雀个体分为发现、加入者以及警戒者,发现者能力较强可以找到食物并为同类指明方向,公式为:
在这里插入图片描述
式中:t和T分别为算法当前以及最大更新次数,∝为随机数,其取值范围为1,1;Q同样为随机数,但服从正态分布;L为所有元素都是1的行短阵,其列数由待求解问题维度确定;R2为大于0小于1的预警值,ST为大于0.5小于1的安全值。

加入者则通过观察发现者的食物来源以便取而代之,公式为:
在这里插入图片描述
式中:Xp(t+1)为所有发现者中位置更新后的最佳位置;A+ = AT(AAT)-1其中,A为所有元素随机取值为1或-1的行矩阵,列数为求解问题维度;Xworst为当前种群中的最劣位置;n为种群中麻雀数量.
警戒者需要时刻留意当前环境,以便发现危险立即飞往安全环境。位置更新公式为:
在这里插入图片描述
式中:Xbest为当前种群中的最佳位置;β为随机数且遵循标准正态分布;fi, fg, fw分别为目前个体、当前种群最优、最劣的适应度值;k在-1,1范围内随机取值,E的作用是防止分母为0.

2.部分代码

代码如下(示例):

clear all 
clc

rng('default');

%% 载入数据
data.Process=xlsread('data.xlsx',1);
data.lambda_gama=xlsread('data.xlsx',2);
data.numP=length(data.Process(:,1));
data.numJ=max(data.Process(:,1));
data.numM=4; %机器数量
data.Z=10;
dim=data.numP*data.numM;
%% 测试函数
option.dim=dim;
lb = 0;
ub = 1;
fobj = @aimFcn_1;
%% 算法设置
%  Function_name='F8'; % Name of the test function that can be from F1 to F23 (Table 1,2,3 in the paper) 设定适应度函数
SearchAgents_no=20; % Number of search agents 种群数量
Max_iteration=20;
% Load details of the selected benchmark function
% [lb,ub,dim,fobj]=Get_Functions_details(Function_name);  %设定边界以及优化函数

[Best_pos,Best_score,SSA_curve]=SSANew(SearchAgents_no,Max_iteration,lb,ub,dim,fobj,option,data); %开始优化
str='SSA';
[~,result] = fobj(Best_pos,option,data);
option.color = [ ...
    1 0 0; % 红色
    0 1 0; % 绿色
    0 0 1; % 蓝色
    ];
drawPC(result,option,str);
figure();
plot(SSA_curve,'-.', 'LineWidth',2);
legend("SSA");

三、总算法优化结果

按照工件加工顺序:
在这里插入图片描述
按机器使用顺序:
在这里插入图片描述

代码获取

代码获取

  • 14
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值