【车间调度】基于遗传算法和随机重启爬坡的高柔性作业车间调度研究(Matlab代码实现)

2023-05-16

 👨‍🎓个人主页:研学社的博客  

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码、数据、文章讲解


💥1 概述

摘要:提出了一种基于遗传算法(ga)和随机重启爬坡(RRHC)的新型混合算法GA-RRHC,用于求解具有高灵活性(每项操作都可以由大量机器完成)的柔性作业车间调度问题(FJSSP)。特别地,不同的遗传算法交叉和简单变异算子与细胞自动机(CA)启发的邻域一起使用来执行全局搜索。该方法通过基于RRHC的局部搜索进行改进,使计算实现变得容易。在GA-RRHC中应用ca型邻域和上述两种技术进行杂交,得到了新颖的点,易于理解和实现。GA-RRHC的测试采用了文献中广泛使用的四组实验,并将其结果与使用相对百分比偏差(RPD)和Friedman检验的六种最新算法进行比较。实验表明,对于FJSSP实例,GA-RRHC算法具有较高的灵活性,是一种较有竞争力的方法。

关键词:柔性作业车间调度实例;遗传算子;局部搜索方法;元胞自动机

原文摘要:

Abstract: This work presents a novel hybrid algorithm called GA-RRHC based on genetic algorithms (GAs) and a random-restart hill-climbing (RRHC) algorithm for the optimization of the flexible job shop scheduling problem (FJSSP) with high flexibility (where every operation can be completed by a high number of machines). In particular, different GA crossover and simple mutation operators are used with a cellular automata (CA)-inspired neighborhood to perform global search. This method is refined with a local search based on RRHC, making computational implementation easy. The novel point is obtained by applying the CA-type neighborhood and hybridizing the aforementioned two techniques in the GA-RRHC, which is simple to understand and implement. The GA-RRHC is tested by taking four banks of experiments widely used in the literature and comparing their results with six recent algorithms using relative percentage deviation (RPD) and Friedman tests. The experiments demonstrate that the GA-RRHC is a competitive method compared with other recent algorithms for instances of the FJSSP with high flexibility. 
Keywords: flexible job shop scheduling instances; genetic operators; local search methods; cellular automata

详细文章讲解见第4部分。

📚2 运行结果

 

部分代码:

%Read data
function [numeroTrabajos, numeroMaquinas, numeroOperaciones, vectorNumOperaciones, vectorInicioOperaciones, vectorOperaciones, tablaTiempos, tablaMaquinasFactibles] = leerDatosProblema(nombreArchivo)
%The function reads the data table of the problem and returns the number of jobs, the number of machines, 
%the vector with the number of operations per job, the vector with the previous operation number where each machine starts,
%the base vector with the number of operations per job, the base vector with the repeated operations for each job (1,...,1,2,...,2,...,n...,n...n),
%the table (operations/machines), the vector of the starting operation number of each job, the time table of each machine 
%and the feasible machines for each operation

%Data format:
%in the first line there are (at least) 2 numbers: the first is the number of jobs and the second the number
%of machines (the 3rd is not necessary, it is the average number of machines per operation)
%Every row represents one job: the first number is the number of operations of that job, the second number
%(let's say k>=1) is the number of machines that can process the first operation; then according to k, there are
%k pairs of numbers (machine,processing time) that specify which are the machines and the processing times;
%then the data for the second operation and so on...
%Example: Fisher and Thompson 6x6 instance, alternate name (mt06)
%6   6   1
%6   1   3   1   1   1   3   1   2   6   1   4   7   1   6   3   1   5   6
%6   1   2   8   1   3   5   1   5   10  1   6   10  1   1   10  1   4   4
%6   1   3   5   1   4   4   1   6   8   1   1   9   1   2   1   1   5   7
%6   1   2   5   1   1   5   1   3   5   1   4   3   1   5   8   1   6   9
%6   1   3   9   1   2   3   1   5   5   1   6   4   1   1   3   1   4   1
%6   1   2   3   1   4   3   1   6   9   1   1   10  1   5   4   1   3   1
%first row = 6 jobs and 6 machines 1 machine per operation
%second row: job 1 has 6 operations, the first operation can be processed by 1 machine that is machine 3 with processing time 1.

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

🌈4 Matlab代码、数据、文章讲解

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【车间调度】基于遗传算法和随机重启爬坡的高柔性作业车间调度研究(Matlab代码实现) 的相关文章

  • SimpleITK学习

    SimpleITK学习 文章目录 SimpleITK学习1 SimpleITK ReadImage path 2 SimpleITK GetArrayFromImage itk img 3 itk img GetOrigin 4 itk i
  • 【Docker】服务器部署项目

    服务器部署项目 文章目录 服务器部署项目1 远程连接服务器2 在Linux系统上安装Docker2 1 卸载旧版本2 2 使用 APT 安装2 3 安装Docker2 4 使用脚本自动安装2 5 启动Docker2 6 测试 Docker
  • 计算机网络04—网络层

    网络层 学习参考资料 xff1a 湖南科技大学 计算机网络谢希仁 计算机网络 xff08 第7版 xff09 文章目录 网络层1 概述1 1 IP协议及配套协议 2 两种服务2 1 面向连接的虚电路服务2 2 无连接的数据报服务2 3 对比
  • torch.nn学习

    torch nn学习 文章目录 torch nn学习1 卷积层1 1 Conv2d 2 池化层2 1 MaxPool2d2 2 MaxUnpool2d2 3 AvgPool2d 3 代码实践3 1 Inception Module3 2 R
  • 深度学习基础知识点【更新中】

    深度学习基础知识点 文章目录 深度学习基础知识点1 数据归一化2 数据集划分3 混淆矩阵4 模型文件5 权重矩阵初始化6 激活函数7 模型拟合8 卷积操作9 池化操作10 深度可分离卷积11 转置卷积 1 数据归一化 过大的输入数据未归一化
  • VS Code配置C/C++环境

    VS Code配置C C 43 43 环境 文章目录 VS Code配置C C 43 43 环境1 下载Visual Studio Code2 下载MinGW3 VS Code设置3 1 下载插件3 2 新建工作区3 3 C 43 43 环
  • 计算机网络05—运输层

    运输层 学习参考资料 xff1a 湖南科技大学 计算机网络谢希仁 计算机网络 xff08 第7版 xff09 文章目录 运输层1 概述1 1 两个主要协议1 2 端口 2 用户数据报协议UDP3 传输控制协议TCP3 1 概述3 2 可靠运
  • 【2022春招研发】字节笔试记录(测试方向)

    20220410字节笔试 测试方向 文章目录 20220410字节笔试 测试方向一 编程题2道 xff08 50分 xff09 二 单选题10道 xff08 20分 xff09 三 多选题10道 xff08 30分 xff09 一 编程题2
  • 浏览器主页被劫持篡改了怎么办

    就想下载个驱动 xff0c 结果一通操作把我的 Edge 浏览器主页篡改成了 桔梗网 xff0c 就下面这个网站 算了不喷它了 xff0c 来说说怎么改回去吧 其他浏览器的修改方式相同 找到 Microsoft Edge 浏览器的桌面快捷方
  • 【2022春实习】百度笔试记录(机器学习/数据挖掘/自然语言)

    20220412百度笔试 机器学习 数据挖掘 自然语言 文章目录 20220412百度笔试 机器学习 数据挖掘 自然语言一 选择题30道 xff08 60分 xff09 二 问答题1道 xff08 20分 xff09 三 系统设计题1道 x
  • 【算法工程师】华为技术面面试记录

    20220419华为技术面 面试岗位是算法工程师 文章目录 20220419华为技术面1 自我介绍 2 算法题3 专业知识3 1 数据结构3 2 计算机网络3 3 操作系统3 4 设计模式3 5 机器学习3 6 其他 4 提问环节 1 自我
  • 操作系统实践06—线程

    操作系统实践06 线程 文章目录 操作系统实践06 线程1 创建线程1 1 原型1 2 线程参数1 3 参数类型1 4 例子一1 5 例子二 2 等待线程2 1 原型2 2 线程返回值2 3 例子一2 4 例子二 3 线程互斥3 1 初始化
  • VS Code指定扩展安装位置

    VS Code指定扩展安装位置 默认情况下 xff0c Windows vscode的安装路径为C Users 用户名 vscode extensions 如果想要自定义扩展的安装路径 xff0c 无法直接在vscode中修改 但是 xff
  • Ubuntu 网络配置顺序:(Ubuntu 16.4)

    网络配置顺序 xff1a xff08 Ubuntu 16 4 xff09 1 xff0c 网卡硬件 xff08 硬件 vm DHCP用NAT直接到物理网 xff0c 静态用桥接通过本地网络链接转发 xff09 xff0c 2 xff0c 系
  • C语言实现汉诺塔问题

    目录 一 程序 1 实现代码 2 程序执行结果 二 背景 1 汉诺塔问题描述 2 直观理解 3 思考过程 三 函数执行过程 举例 n 61 2 四 总结 递归问题 一 程序 1 实现代码 include lt stdio h gt 函数名
  • ubuntu 系统下运行DQN Flappy bird

    github链接 xff1a xff08 两个项目均可运行成功 xff0c 推荐第二个 xff0c 只有200多行 xff0c 好入门 xff09 https github com songrotek DRL FlappyBird http
  • eclipse中如何查看程序源码

    在eclipse中如何查看程序源码 1 查看方法 xff0c 按下Ctrl键同时 xff0c 用鼠标指向自己想要查看源码的关键字 xff0c 该字会出现下划线 xff0c 单击左键 xff0c 就可以进入源码查看了 2 在此前 xff0c
  • 基于51单片机的智能窗帘proteus仿真数码管显示

    硬件设计 该硬件设计是基于51单片机为MCU xff0c ADC采用ADC0804 xff0c 电机驱动芯片是L298 xff0c 显示部分采用的是4位数码管 ADC0804芯片的简介 xff1a 工作电压 xff1a 43 5V xff0
  • Mac VSCode 配置Gitee |使用Sourcetree关联Gitee仓库

    目录 一 使用Git的基本操作 xff08 如果只是想看如何上传到gitee的直接跳过这个 xff09 xff1a 1 安装插件GitLens 2 初始化 3 git文件 4 创建一个示例文件 5 操作日志 6 操作日志查看 7 版本回退
  • 马尔可夫链 以及 隐马尔可夫模型(HMM)

    背景 xff1a 马尔可夫过程 xff08 Markov process xff09 是一类随机过程 它的原始模型马尔科夫链 xff0c 由俄国数学家A A Markov于1907年提出 马尔可夫过程是研究离散时间动态系统状态空间的重要方法

随机推荐