智能算法(GA、DBO等)求解阻塞流水车间调度问题(BFSP)

先做一个声明:文章是由我的个人公众号中的推送直接复制粘贴而来,因此对智能优化算法感兴趣的朋友,可关注我的个人公众号:启发式算法讨论。我会不定期在公众号里分享不同的智能优化算法,经典的,或者是近几年提出的新型智能优化算法,并附MATLAB代码。

主要参考资料:

[1] 潘全科, 高亮, 李新宇. 流水车间调度及其优化算法[M]. 武汉: 华中科技大学出版社, 2013.

由于机器中间缓冲区或生产温度的限制,使得工件加工完成后被阻塞在当前机器上,这就是阻塞流水车间调度问题(blocking flow-shop scheduling problem, BFSP)。譬如,在化学制造过程中,由于温度的要求,当药品在上游机器上完成后,为了保持此时的高温,应立即离开当前的机器而转向下游机器。但是如果下游机器处于忙的状态,此时药品只能被阻塞在上游机器上。图1所示为一个3×3的BFSP的甘特图。当工件2在第一台机器上加工完毕时,机器2正在加工工件1。由于没有中间缓冲区,工件2工并不能立刻离开该机器,而是等到工件1加工完毕后才运输到机器2上加工。这样就造成了工件3延迟开工。

图片

图1 阻塞流水车间调度问题

01
问题描述

这里主要讨论以最大完工时间(Cmax)为优化目标的阻塞流水车间调度问题(blocking flow-shop scheduling problem, BFSP),记为Fm|blocking|Cmax。研究表明,m≥3时,这类调度问题也是NP-Hard 问题。

Fm|blocking|Cmax问题可描述为:有n个工件按照相同的工艺路线在m台机器上加工。约定所有机器上工件的加工次序都相同。要求相邻机器之间没有缓冲区。也就是说工件j在机器i上完成后,如果下一台机器i+1正在使用,那么工件j将被阻塞在机器i上,直到第i+1个机器空闲出来。一个工件不能同时由多台机器加工,一台机器也不能同时加工多个工件。已知工件在各机器上的加工时间。问题是如何安排各工件的生产次序,使得最大完成时间最小。

02
数学模型

(以下内容截自推文开头提到的参考书籍,潘老师的那本书。)

图片

图片

03
加工性能指标计算

最大完成时间(Cmax)是研究阻塞流水车间调度问题最常用的加工性能指标。Cmax通常有三种计算方法:前向计算法、反向计算法和双向计算法。

这里主要介绍前向计算法。(以下内容截自推文开头提到的参考书籍,潘老师的那本书。)其他计算方法也可以在这本书籍里查阅。

图片

图片

04
智能算法(GA、DBO等)编码方法

对于遗传算法(GA),因为其算法本身是离散的,通过选择、交叉、变异产生下一代。因此,一条染色体就代表一种调度方案。即工件的排序即是它的个体编码。例如,10个工件的排序方案,用MATLAB初始化GA的一个个体(一条染色体)就是:

x=randperm(10);

效果如下所示:

图片

但是对于粒子群优化(PSO)、麻雀搜索算法(SSA)、蜣螂优化(DBO)等,它们本身是针对连续优化问题提出的,所以在编码时需要经过进一步的处理。与GA一样,一个调度方案(工件排序)表示一个个体,可以采用SPV规则,将实数编码转成整数编码。例如,10个工件的排序方案,用MATLAB初始化DBO的一个个体(一条染色体)就是:

jobNum=10; % 工件数x=unifrnd(0,1,[1 jobNum]); % 产生10个[0,1]之间随机数os = 1:1:jobNum; % 产生从1到10的数列[~, up_index] = sort(x); % 对x进行降序排序, 得到位置序列x = os(up_index); % 按照位置序列排序工件, 得到一个调度方案

效果如下:

图片

此外,与SPV规则相反,Li等提出最大排序值法(Largest rank value, LRV),也是将连续值映射成离散排列常用的方法之一。如图2所示,LRV将代表种群个体的一组连续值按降序排列生成一组工件排序。(参考文献:[2] LI X, YIN M. An opposition-based differential evolution algorithm for permutation flow shop scheduling based on diversity measure [J]. Advances in Engineering Software, 2013, 55(8): 10-31.)

图片

图2 最大排序值法的表示方法

05
数值实验

这里对DBO求解BFSP的效果进行简单测试,调度问题算例选用Rec(21个)。最大迭代次数T设置为2000,种群规模NP设为60。下面展示的结果都是算法随机运行一次得到的结果。

首先,以Rec05(20工件×5机器为例),展示DBO随机运行一次的求解结果。图3绘制了种群每代的最优适宜度收敛曲线和平均适宜度收敛曲线:

图片

图3 DBO-BFSP对于Rec05的收敛曲线

图4绘制了调度结果的甘特图:

图片

图4 DBO-BFSP对于Rec05的甘特图

其次,以Rec11(20工件×10机器为例),展示DBO随机运行一次的求解结果,如图5和图6所示。

图片

图5 DBO-BFSP对于Rec11的收敛曲线

图片

图6 DBO-BFSP对于Rec11的甘特图

最后,以Rec41(75工件×20机器为例),展示DBO随机运行一次的求解结果,如图7和图8所示。

图片

图7 DBO-BFSP对于Rec41的收敛曲线

图片

图8 DBO-BFSP对于Rec41的甘特图

06
MATLAB代码

智能算法(GA、PSO、DE、GWO、SSA、DBO等)求解阻塞流水车间调度问题(blocking flow-shop scheduling problem, BFSP)的MATLAB代码,其中:main.m是主函数,直接运行即可;以算法简称命名的.m算法代码;gantt_chart.m用来绘制甘特图;objective.m是目标函数,即计算Makespan;method.pdf用来说明Makespan的计算方法,代码采用的是前向计算方法;Car.xlsx和Rec.xlsx是流水车间调度的两个经典测试集。

输出结果包括Makespan、工件排序、计算时间、最优适宜度收敛曲线、平均适宜度收敛曲线、甘特图。

博主挑选了十种算法来求解BFSP。主要是几种经典算法和几个近几年的高引算法。对应的MATLAB代码链接如下:

遗传算法(GA)求解BFSP关注公众号,里面有链接
差分进化(DE)求解BFSP关注公众号,里面有链接
粒子群优化(PSO)求解BFSP关注公众号,里面有链接
灰狼优化(GWO)求解BFSP关注公众号,里面有链接
鲸鱼优化算法(WOA)求解BFSP关注公众号,里面有链接
哈里斯鹰优化(HHO)求解BFSP关注公众号,里面有链接
麻雀搜索算法(SSA)求解BFSP关注公众号,里面有链接
非洲秃鹫优化算法(AVOA)求解BFSP关注公众号,里面有链接
蜣螂优化(DBO)求解BFSP关注公众号,里面有链接
星鸦优化算法(NOA)求解BFSP关注公众号,里面有链接
以上十种智能优化算法(GA、DE、PSO、GWO、WOA、HHO、SSA、AVOA、DBO、NOA)求解BFSP的全家桶关注公众号,里面有链接

可通过下方链接下载代码清单,在里面寻找需要的算法代码,然后去对应的链接获取。清单会同步更新,一旦有新的代码,就可以在清单里找到。清单里面有部分代码是开源获取的。可随时免费下载。

链接:https://pan.baidu.com/s/1SFDMplrL7tiqGZlrpOSGYg

提取码:8023

此外,欢迎添加算法交流群进行交流:912369858

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[VScode]Jupyter自动生成目录

用到插件Jupyter TOC 插件主页有一张动图介绍这个功能怎么用: 点击标签页面,右上角3个点那个位置,不是正文里单元格的右上角; 选Generate table of contents就可以自动生成目录 VScode 还有好多好多功能等待你发现呢&#xff0…

大数据深度学习朴素贝叶斯深度解码:从原理到深度学习应用

大数据深度学习朴素贝叶斯深度解码:从原理到深度学习应用 文章目录 大数据深度学习朴素贝叶斯深度解码:从原理到深度学习应用一、简介贝叶斯定理的历史和重要性定义例子 朴素贝叶斯分类器的应用场景定义例子常见应用场景 二、贝叶斯定理基础条件概率定义…

Java研学-HTTP 协议

一 概述 1 概念和作用 概念:HTTP 是 HyperText Transfer Protocol (超文本传输协议)的简写,它是 TCP/IP 协议之上的一个应用层协议。简单理解就是 HTTP 协议底层是对 TCP/IP 协议的封装。   作用:用于规定浏览器和服务器之间数据传输的格式…

人工智能轨道交通行业周刊-第69期(2023.12.11-12.24)

本期关键词:集装箱智能管理、智慧工地、智能应急机器人、车辆构造、大模型推理 1 整理涉及公众号名单 1.1 行业类 RT轨道交通人民铁道世界轨道交通资讯网铁路信号技术交流北京铁路轨道交通网上榜铁路视点ITS World轨道交通联盟VSTR铁路与城市轨道交通RailMetro轨…

安洵杯 re + 其他部分题解

第11,比较小丑,差了一步队伍wp应该会发吧,不知道,我先放点跟我有关系的 Re mobilego so的check看了一会比较南崩,但是看flag的密文形式很像简单位置替换所以直接输编码表,jeb动调然后得到替换表解密就行…

[c]扫雷

题目描述 扫雷游戏是一款十分经典的单机小游戏。在n行m列的雷区中有一些格子含有地雷(称之为地雷格),其他格子不含地雷(称之为非地雷格)。 玩家翻开一个非地雷格时,该格将会出现一个数字——提示周围格子中…

C语言沉浸式刷题【C语言必刷题】

1.猜凶手 某地发生了一起谋杀案,警察通过排查确定杀人凶手必为四个嫌疑犯的一个,以下是4个嫌犯的供词。已知(请编写代码找出凶手) A说:不是我。 B说:是C。C说:是D。D说:C再胡说。 程…

PCIe surprise down异常与DPC功能分析-part2

DPC是PCIe协议中的一项功能,旨在防止由于一个设备的错误而影响到整个系统。当一个PCIe设备检测到严重的、不可恢复的错误时,它可能会触发DPC过程。在这个过程中,PCIe开关会隔离受影响的下游端口,阻止任何进一步的数据传输和请求通…

百分百能遇到的接口自动化测试面试题,看完的现在已经在办理入职了...

1. 什么是接口自动化测试? 答:接口自动化测试是指使用自动化工具对接口进行测试,验证接口的正确性、稳定性和性能等方面的指标。 2. 为什么要进行接口自动化测试? 答:接口自动化测试可以提高测试效率,减…

NGUI基础-三大基础组件之Root组件

NGUI NGUI(Next-Gen UI)是一款用于Unity游戏引擎的UI插件,它提供了一套功能强大、灵活易用的界面开发工具。在NGUI中,Root(根节点)是一个重要的概念。 基础组件之Root Root是NGUI中的最高层级节点&#…

生物神经网络衍生出的算法

一个生物神经网络的基本结构: 生物神经网络由大量神经元组成,这些神经元之间通过突触相互连接。神经元可以接收来自其他神经元的信号,并根据信号的强度和类型来调整自己的输出信号。这种神经元之间的相互连接和信号传递形成了生物神经网络的基…

【汽车取证篇】GA-T 1998-2022《汽车车载电子数据提取技术规范》(附下载)

【汽车取证篇】GA-T 1998-2022《汽车车载电子数据提取技术规范》(附下载) GA-T 1998-2022《汽车车载电子数据提取技术规范》标准—【蘇小沐】 总结 公众号回复关键词【汽车取证】自动获取资源合集,如链接失效请留言,便于…

博主自制丨免费下载丨免费使用丨仅用于测试

链接:点我立即下载 提取码:0j6h

贴片晶振无源石英谐振器直插晶振

贴片晶振 贴片晶振3.579M~25MHz无源石英谐振器直插晶振 文章目录 贴片晶振前言一、贴片晶振3.579M~25MHz无源石英谐振器直插晶振二、属性三、技术参数总结前言 贴片晶振(Surface Mount Crystal Oscillator)是一种采用表面贴装技术进行安装的晶振。它的主要特点是封装小巧、安…

什么是DDOS,遇到DDoS攻击有什么办法处理

一、DDoS概述 DDoS攻击是由DoS攻击发展而来的,根据攻击原理和方式的区别,可以把DDoS攻击分为两个阶段,即从传统的基于网络层的DDoS攻击和现阶段较为常见的基于应用层的DDoS攻击,这两类攻击方式各有特点,都对网络的安全…

为什么要使用vite

vue ——)webpack 全部读取完毕才显示: vite:只读取修改的部分,速度比较快

P6 音频格式—— AAC

目录 前言 01 AAC是什么? 02 为什么需要进行AAC进行音频压缩处理? 03 AAC的特点以及优势 04 AAC格式详解: 4.1. ADIF的数据结构: 4.1.1 ADIF Header具体的表格: 4.2. ADTS的结构(重点): …

esp32使用lvgl,给图片取模显示图片

使用LVGL官方工具。 https://lvgl.io/tools/imageconverter 上传图片,如果想要透明效果,那么选择 输出格式C array,点击Convert进行转换。 下载.c文件放置到工程下使用即可。

Autojs 实践-抖音极速版福袋助手

前言 好久没更新博客了,最近做了个抖音极速版福袋脚本,想看看能不能自动抢到,于是在仿照其他脚本UI做了一个,哈哈。利用上班时间让它自己跑,测试大概2-3天,一个福袋没抢到(也不知道是不是被检测到了)&…

jQuery实现响应式瀑布流 - 实现灯箱效果

在这之前,有写过一篇关于实现瀑布流的文章,后期有人留言提出需要添加灯箱效果的功能,所以这次则讲述下如何实现此功能。由于该篇接上篇写的:jQuery实现响应式瀑布流效果(jQueryflex)_jquery瀑布流插件-CSDN…