IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 【优化调度】基于鸟群算法求解车间调度问题Matlab源码 -> 正文阅读

[数据结构与算法]【优化调度】基于鸟群算法求解车间调度问题Matlab源码

1 简介

柔性作业车间调度问题是生产调度领域中非常重要的一类带约束优化问题.根据其求解特性,提出一种基于鸟群算法求解以最小化最大完工时间为目标的柔性作业车间调度问题的方法

2 部分代码

clc;clear
%% 下载数据
% 加工数据包括加工时间,加工机器,机器数,各机器权重,工件数,各工件对应的工序数
load?data?operation_time?operation_machine?num_machine?machine_weight?num_job?num_op

%% 基本参数
MAXGEN=200; ? ? ? ? ? ??% 最大迭代次数
sizepop=201; ? ? ? ? ? ?% 种群规模
e=0.5; ? ? ? ? ? ? ? ? ?% 目标值权重
N_size=30; ? ? ? ? ? ? ?% 邻域解数量
S_size=15; ? ? ? ? ? ? ?% 共享解数量
G=5; ? ? ? ? ? ? ? ? ? ?% 巡回次数
G1=20; ? ? ? ? ? ? ? ? ?% 竞争机制1参数
G2=10; ? ? ? ? ? ? ? ? ?% 竞争机制2参数
trace=zeros(2,MAXGEN);
chrom_best=[];

%% ===========================种群初始化============================
total_op_num=sum(num_op);
chroms=initialization(num_op,num_job,total_op_num,sizepop,operation_machine,operation_time);
[Z,~,~,~,~]=fitness(chroms,num_machine,e,num_job,num_op);
% 将最好的解划分为领飞鸟
[Z_leader,ind]=min(Z);
leader=chroms(ind,:);?
% 从chroms中移出领飞鸟,然后划分左右两个跟飞鸟种群
chroms(ind,:)=[];
Z(ind)=[];
sp=(sizepop-1)/2;
lefts=chroms(1:sp,:);
Z_left=Z(1:sp);
rights=chroms(sp+1:end,:);
Z_right=Z(sp+1:end);

%% ============================迭代过程=============================
for?gen=1:MAXGEN
? ?fprintf('当前迭代次数:'),disp(gen)
? ?%% 巡回阶段

? ?%% 记录相关数据
? ?% 记录每代的最优适应度与平均适应度
? ?Z=[Z_leader,Z_left,Z_right];
? [val,ind]=min(Z);
? ?trace(1,gen)=val;
? ?trace(2,gen)=mean(Z);
? ?% 更新全局最优适应度
? ?if?gen==1?||?MinVal>trace(1,gen)
? ? ? ?MinVal=trace(1,gen);
? ?end
end

%% ============================输出结果=============================
%% 输出最优适应度
fprintf('最优适应度:'),disp(MinVal)
%% 绘制最优适应度与平均适应度的迭代曲线图
figure(1)
plot(trace(1,:));
hold?on;
plot(trace(2,:),'-.');grid;
legend('解的变化','种群均值的变化');
img?=gcf; ?%获取当前画图的句柄
print(img,?'-dpng',?'-r600',?'./img.png') ? ? ? ??%即可得到对应格式和期望dpi的图像
%% 绘制全局最优解的甘特图
[Z,~,~,machine_time,Pvals]=fitness(leader,num_machine,e,num_job,num_op);
Pval1=Pvals{1,1};
figure(2);
for?i=1:total_op_num
? ?mText=leader(total_op_num+i);
? ?b=leader(i);
? ?x1=Pval1(1,i);
? ?x2=Pval1(2,i);?
? ?y1=mText-0.2;
? ?y2=mText;
? ?hold?on;?
? ?fill([x1,x2,x2,x1],[y1,y1,y2,y2],[1-1/b,1/b,b/num_job]);
? ?text((x1+x2)/2,mText-0.1,num2str(b));
end
img?=gcf; ?%获取当前画图的句柄
print(img,?'-dpng',?'-r600',?'./img1.png') ? ? ? ??%即可得到对应格式和期望dpi的图像

3 仿真结果

4 参考文献

[1]屈迟文等. "求解柔性作业车间调度问题的鸟群算法." 计算机工程与应用 v.54;No.912.17(2018):254-262.

?

?

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-10-23 12:44:52  更:2021-10-23 12:47:08 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 8:36:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码