(转载)基于多层编码遗传算法的车间调度算法(matlab实现)
以下内容大部分来源于《MATLAB智能算法30个案例分析》,仅为学习交流所用。
1 理论基础
2 案例背景
2.1 问题描述
2.2 模型建立

2.3 算法实现
3 MATLAB程序实现
3.1 主函数
%% 清空环境
clc;clear%% 下载数据
load scheduleData Jm T JmNumber
%工序 时间%% 基本参数
NIND=40; %个体数目
MAXGEN=50; %最大遗传代数
GGAP=0.9; %代沟
XOVR=0.8; %交叉率
MUTR=0.6; %变异率
gen=0; %代计数器
%PNumber 工件个数 MNumber 工序个数
[PNumber MNumber]=size(Jm);
trace=zeros(2, MAXGEN); %寻优结果的初始值
WNumber=PNumber*MNumber; %工序总个数%% 初始化
Number=zeros(1,PNumber); % PNumber 工件个数
for i=1:PNumberNumber(i)=MNumber; %MNumber工序个数
end% 代码2层,第一层工序,第二层机器
Chrom=zeros(NIND,2*WNumber);
for j=1:NINDWPNumberTemp=Number;for i=1:WNumber%随机产成工序val=unidrnd(PNumber);while WPNumberTemp(val)==0val=unidrnd(PNumber);end%第一层代码表示工序Chrom(j,i)= val;WPNumberTemp(val)=WPNumberTemp(val)-1;%第2层代码表示机器Temp=Jm{val,MNumber-WPNumberTemp(val)};SizeTemp=length(Temp);%随机产成工序机器Chrom(j,i+WNumber)= unidrnd(SizeTemp);end
end%计算目标函数值
[PVal ObjV P S]=cal(Chrom,JmNumber,T,Jm); %% 循环寻找
while gen<MAXGEN%分配适应度值FitnV=ranking(ObjV); %选择操作SelCh=select('rws', Chrom, FitnV, GGAP); %交叉操作SelCh=across(SelCh,XOVR,Jm,T); %变异操作SelCh=aberranceJm(SelCh,MUTR,Jm,T); %计算目标适应度值[PVal ObjVSel P S]=cal(SelCh,JmNumber,T,Jm); %重新插入新种群[Chrom ObjV] =reins(Chrom, SelCh,1, 1, ObjV, ObjVSel); %代计数器增加gen=gen+1; %保存最优值trace(1, gen)=min(ObjV); trace(2, gen)=mean(ObjV); % 记录最佳值if gen==1Val1=PVal;Val2=P;MinVal=min(ObjV);%最小时间STemp=S;end%记录 最小的工序if MinVal> trace(1,gen)Val1=PVal;Val2=P;MinVal=trace(1,gen);STemp=S;endend% 当前最佳值
PVal=Val1; %工序时间
P=Val2; %工序
S=STemp; %调度基因含机器基因%% 描绘解的变化
figure(1)
plot(trace(1,:));
hold on;
plot(trace(2,:),'-.');grid;
legend('解的变化','种群均值的变化');%% 显示最优解
figure(2);
MP=S(1,PNumber*MNumber+1:PNumber*MNumber*2);
for i=1:WNumber val= P(1,i);a=(mod(val,100)); %工序b=((val-a)/100); %工件Temp=Jm{b,a};mText=Temp(MP(1,i));x1=PVal(1,i);x2=PVal(2,i);y1=mText-1;y2=mText;PlotRec(x1,x2,mText);PlotRec(PVal(1,i),PVal(2,i),mText);hold on;fill([x1,x2,x2,x1],[y1,y1,y2,y2],[1-1/b,1/b,b/PNumber]);text((x1+x2)/2,mText-0.25,num2str(P(i)));
end 3.2 仿真结果
4 素例扩展
4.1 模糊目标
相关文章:
(转载)基于多层编码遗传算法的车间调度算法(matlab实现)
以下内容大部分来源于《MATLAB智能算法30个案例分析》,仅为学习交流所用。 1 理论基础 遗传算法具有较强的问题求解能力,能够解决非线性优化问题。遗传算法中的每个染色体表示问题中的一个潜在最优解,对于简单的问题来说,染色体…...
Redis的常用数据结构之哈希类型
首先这里说的哈希类型针对的是redis中的value的k-v结构 常见的操作命令 hset设置值 hsetnx命令,不存在可以设置,存在设置不成功 hget取值,这里与字符串类型不同是要精确到filed。前面的判断也是基于field来实现的 要是field没有就返回null h…...
计算机组成原理-存储系统-缓存存储器(Cache)
目录 一、Cache基本概念 1.2性能分析 二、 Cache和主存的映射发生 2.1全相连映射编辑 2.2直接映射编辑 2.3组相连映射 三、Cachae的替换算法 3.1 随机算法(RADN) 3.2 先进先出算法(FIFO) 3.3 近期最少使用(LRU) 3.4 最近不经常使用(LFU) 四、写策略 4…...
打开c语言生成exe文件,出现闪退的解决方法
为什么打开c语言生成的exe文件,立马闪退。 起初个别问的时候,我只是简单的说明程序运行完了,就自动关了, 首先,生成的exe文件本质是控制台程序,这些都是依赖于windows的控制台窗口,程序执行完…...
算法基础学习笔记——⑩DFS与BFS\树与图
✨博主:命运之光 ✨专栏:算法基础学习 目录 DFS与BFS\树与图 ✨DFS ✨BFS 🍓宽搜流程图如下: 🍓宽搜流程: 🍓广搜模板 ✨树与图 🍓树是特殊的图(连通无环的图&am…...
chatgpt赋能python:Python中可迭代对象的介绍
Python中可迭代对象的介绍 Python是一种高级编程语言,它具有简单易学、可读性强、功能强大等特点,成为了数据科学、机器学习、Web开发等领域的热门选择。Python中有很多重要的概念和功能,其中之一就是支持可迭代对象的概念。 在Python中&am…...
报表控件FastReport使用指南——如何打开WebP格式的图片
FastReport 是功能齐全的报表控件,可以帮助开发者可以快速并高效地为.NET,VCL,COM,ActiveX应用程序添加报表支持,由于其独特的编程原则,现在已经成为了Delphi平台最优秀的报表控件,支持将编程开…...
【鲁棒、状态估计】用于电力系统动态状态估计的鲁棒迭代扩展卡尔曼滤波器研究(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
整理6个超好用的在线编辑器!
随着 Web 开发对图像可扩展性、响应性、交互性和可编程性的需求增加,SVG 图形成为最适合 Web 开发的图像格式之一。它因文件小、可压缩性强并且无论如何放大或缩小,图像都不会失真而受到欢迎。然而,为了编辑 SVG 图像,需要使用 SV…...
ArcGIS10.8下载及安装教程(附安装步骤)
谷歌云: https://drive.google.com/drive/folders/10igu7ZSMaR0v0WD7-2W-7ADJGMUFc2ze?uspsharing ArcGIS10.8 百度网盘: https://pan.baidu.com/s/1s5bL3QsCP5sgcftCPxc88w 提取码:kw4j 阿里云: https://www.aliyundriv…...
AI智能照片编辑:AI Photo for Mac
AI Photo是一款Mac平台上的智能照片编辑软件,它基于人工智能技术,可以帮助用户快速、轻松地对照片进行编辑和美化。AI Photo提供了多种智能修复和美化功能,包括自动调整色彩、对比度、亮度、清晰度等,使得照片的质量得到有效提升。…...
Tuxera for Mac2023中文版读写硬盘U盘工具
在日常生活中,我们使用Mac时经常会遇到外部设备不能正常使用的情况,如:U盘、硬盘、软盘等等一系列存储设备,而这些设备的格式大多为NTFS,Mac系统对NTFS格式分区存在一定的兼容性问题,不能正常读写。 那么什…...
项目遇到的实际需求: java从信任所有证书到对server证书进行校验
最近项目上开发了一个rest api,放在了一台linux服务器上,并且启用了https连接;在另一台服务器上写了一个功能需要去调用linux机器上的api。 项目里面自己封装了一个HttpsClient的类,用来发送https请求,并且在里面重写了…...
使用JS来实现轮播图的效果
最好今天分享一个使用JS制作的轮播图效果 个人名片: 😊作者简介:一名大一在校生,web前端开发专业 🤡 个人主页:几何小超 🐼座右铭:懒惰受到的惩罚不仅仅是自己的失败,…...
Springboot +spring security,自定义认证和授权异常处理器
一.简介 在Spring Security中异常分为两种: AuthenticationException 认证异常AccessDeniedException 权限异常 我们先给大家演示下如何自定义异常处理器,然后再结合源码帮助大家进行分析 二.创建项目 如何创建一个SpringSecurity项目,前…...
Dockerfile(1) - FROM 指令详解
FROM 指明当前的镜像基于哪个镜像构建dockerfile 必须以 FROM 开头,除了 ARG 命令可以在 FROM 前面 FROM [--platform<platform>] <image> [AS <name>]FROM [--platform<platform>] <image>[:<tag>] [AS <name>]FROM […...
【嵌入式Linux】源码菜单配置 | 编译 | 菜单配置的实现 | 源码编译的实现
源码配置编译 源码配置编译,要把中间各个环节都理清楚 厂商把自己增加的东西专门放了个文件独立,方便开发者发现变化 1.菜单配置 移植的第一步,就是选配,通过make menuconfig图形化界面选配 //载入配置 $ make ARCHarm64 tegra_defconfi…...
python自动化爬虫实战
python自动化爬虫实战 偶然的一次机会再次用到爬虫,借此机会记录一下爬虫的学习经历,方便后续复用。 需求:爬取网站数据并存入的csv文件中,总体分为两步 爬取网站数据存到到csv文件中 1、配置爬虫环境 1.1、下载自动化测试驱动 …...
LVGL-最新版本及其版本定义标准
lvgl的最新版本是9.0.0,处于开发分支中。 稳定版本是8.3.0. 建议一般开发使用稳定版8.3.0. .\lvgl.h定义了当前版本 /*************************** CURRENT VERSION OF LVGL ***************************/ #define LVGL_VERSION_MAJOR 8 #define LVGL_VERSION_MINO…...
ORB_SLAM2算法中如何计算右目和左目两个特征点的是否匹配?
文章目录 if(kpR.octave<levelL-1 || kpR.octave>levelL+1)const int &levelL = kpL.octave;if(uR>=minU && uR<=maxU)const cv::Mat &dR = mDescriptorsRight.row(iR);const int dist = ORBmatcher::DescriptorDistance(dL,dR);筛选最佳匹配特征点…...
MPC5604B/C 信号与引脚全解|硬件 / 底层必看
一、前言 本章主要说明每个引脚叫什么、干什么、上电默认状态、是什么电气类型、复用哪些功能。包含 封装引脚分布(64/100/144LQFP、208MAPBGA) 电源 / 地 / 复位 / 晶振 / JTAG 引脚 引脚电气类型(S/M/F/I/J/X) 复位期间引脚状态 所有 GPIO 的复用功能 AF0~AF3 引脚与外设…...
终极指南:BetterNCM插件管理器一键安装,让网易云音乐焕然新生
终极指南:BetterNCM插件管理器一键安装,让网易云音乐焕然新生 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer 还在为网易云音乐功能单一而烦恼?Bett…...
YgoMaster终极指南:如何在电脑上免费畅玩游戏王大师决斗
YgoMaster终极指南:如何在电脑上免费畅玩游戏王大师决斗 【免费下载链接】YgoMaster Offline Yu-Gi-Oh! Master Duel 项目地址: https://gitcode.com/gh_mirrors/yg/YgoMaster 你是否渴望随时随地体验《游戏王大师决斗》的精彩对决,却受限于网络连…...
深度学习分段逼近实战:激活函数硬件友好型实现指南
1. 项目概述:为什么“分段逼近”不是数学游戏,而是深度学习落地的命脉“Mastering Deep Learning: The Art of Approximating Non-Linearities with Piecewise Estimations Part-2”——这个标题里藏着一个被太多教程刻意绕开的真相:深度学习…...
如何用嘎嘎降AI处理金融学论文:金融学毕业论文降AI免费完整操作教程
如何用嘎嘎降AI处理金融学论文:金融学毕业论文降AI免费完整操作教程 这篇教程是针对金融学论文降AI教程写的——问得最多的操作细节,都在这里。 主工具:嘎嘎降AI(www.aigcleaner.com),4.8元一篇ÿ…...
AI Agent自主操作软件的“最后一公里”危机:当它成功调用API却误删生产数据库——12个真实事故根因与防御性沙箱配置模板
更多请点击: https://codechina.net 第一章:AI Agent自主操作软件的“最后一公里”危机本质 当AI Agent在模拟环境中流畅调用API、生成SQL、解析PDF时,它却在真实办公桌面前频频卡壳——点击错按钮、误判窗口焦点、无法处理弹窗验证码、对非…...
Unity特效优化指南:从ParticleSystem参数调优到性能瓶颈排查
Unity特效优化实战:ParticleSystem深度调优与移动端性能突围 记得第一次在低端安卓机上测试火焰特效时,帧率直接从60掉到22的绝望吗?我们团队为此通宵三晚重构了整个粒子系统。本文将分享从血泪教训中总结的ParticleSystem优化方法论…...
Honey Select 2终极增强补丁:5分钟解锁完整汉化与去码功能
Honey Select 2终极增强补丁:5分钟解锁完整汉化与去码功能 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch HS2-HF_Patch是《Honey Select 2》游戏的…...
农业Agent不是“加个模型”,而是重写作业流程:3张架构图讲透农机调度、病虫害预警、供应链匹配的Agent协同范式
更多请点击: https://intelliparadigm.com 第一章:农业Agent不是“加个模型”,而是重写作业流程:3张架构图讲透农机调度、病虫害预警、供应链匹配的Agent协同范式 农业智能化的真正瓶颈,从来不在单点AI能力的强弱&…...
8051单片机中断向量号计算与配置详解
1. C51中断向量号计算方法解析在8051单片机开发中,中断处理是最核心的功能之一。作为一名长期使用Keil C51工具链的嵌入式开发者,我经常遇到新手询问如何正确计算中断向量号的问题。这个看似简单的数字背后,其实隐藏着8051架构的设计哲学。1.…...
