首页 > 行业资讯 > 【车间调度】基于模拟退火结合粒子群算法求解车间调度问题含Matlab代码

【车间调度】基于模拟退火结合粒子群算法求解车间调度问题含Matlab代码

时间:2023-06-07 来源: 浏览:

【车间调度】基于模拟退火结合粒子群算法求解车间调度问题含Matlab代码

天天Matlab 天天Matlab
天天Matlab

TT_Matlab

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,完整matlab代码或者程序定制加qq1575304183。

收录于合集 #智能优化算法及应用 772个

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

个人主页: Matlab科研工作室

个人信条:格物致知。

更多Matlab仿真内容点击

智能优化算法       神经网络预测       雷达通信       无线传感器         电力系统

信号处理               图像处理               路径规划       元胞自动机         无人机

⛄ 内容介绍

一种求解作业车间调度问题的混合粒子群算法,该算法适用于作业车间调度技术领域,该算法将粒子群算法与模拟退火算法结合,不仅增加了粒子的多样性,提高了寻找最优解的概率,而且由于粒子的特性而快速收敛,显著减少了搜索时间.该混合算法的执行步骤如下:步骤1:初始化算法参数,包括PSO粒子的数目,位置和速度等信息.步骤2:执行改进的PSO算法并更新粒子的位置和速度转移.步骤3:执行模拟退火算子并更新粒子信息.步骤4:执行干扰算子,如果循环中全局最优解保持不变,保留原始粒子信息,并生成一个随机粒子.步骤5:判断是否到达停止条件,是则返回最优解,否则返回步骤2.该发明结合实际情况,具有实用性强的特点.

⛄ 部分代码

%对时间矩阵,机器矩阵进行解码。

function  [FlowTimeAvg]=timedecode(particle,restrictmatrixM,restrictmatrixT,machineNum)

%particle=[1.0 1.0 3.0 2.0 3.0 4.0 2.0 6.0 4.0 3.0 1.0 6.0 5.0 5.0 6.0 4.0 3.0 2.0 4.0 3.0 2.0 5.0 4.0 6.0 1.0 2.0 1.0 5.0 5.0 6.0 1.0 4.0 2.0 6.0 3.0 5.0];

% restrictmatrixM=[      3     1     2     4     6     5

%                        2     3     5     6     1     4

%                        3     4     6     1     2     5

%                        2     1     3     4     5     6

%                        3     2     5     6     1     4

%                        2     4     6     1     5     3];

%restrictmatrixT=    [    1     3     6    7      3     6

%                         8     5     10   10     10    4

%                         5     4     8     9     1     7

%                         5     5     5     3     8     9

%                         9     3     5     4     3     1

%                         3     3     9     10    4     1];

%machineNum=6;

[particleLong1 particleLong]=size(particle);

for i=1:machineNum,

    counter(i)=[1] ;  %位置计数器;

    s(i)=[0]   ;      %工件上一工序结束时间;

    t(i)=[0]   ;

    t1(i)=[0]  ;      %每台机器的开始时间;

    WaitTime(i)=[0];      %机器等待时间;

end  

for j=1:particleLong,

    k=particle(j);

    time(k,counter(k))=restrictmatrixT(k ,counter(k))  ;     

    %时间矩阵解码

    machine(k,counter(k))=restrictmatrixM(k,counter(k));

    %机器矩阵解码;

    

    

    [rom]=max( s(k), t(machine(k,counter(k))) );

    if s(k)>t(machine(k,counter(k)))&t(machine(k,counter(k)))~=0,

        WaitTime(machine(k,counter(k)))=WaitTime(machine(k,counter(k)))+s(k)-t(machine(k,counter(k)));

    end

    s(k)=rom+time(k,counter(k));

    if t(machine(k,counter(k)))==0,

        t1(machine(k,counter(k)))=rom;

    end

    t(machine(k,counter(k)))=rom+time(k,counter(k));

    %计算每台机器上加工时间

  

    counter(k)=counter(k)+1   ;

end

    [tmax]=max(t);

    p=sum(WaitTime);

    FlowTimeAvg=sum(t-t1)/machineNum;

    %机器最长加工时间

⛄ 运行结果

⛄ 参考文献

[1] 付振奥. 粒子群算法求解车间调度问题研究[D]. 合肥工业大学, 2009.

[2] 张龙, 徐本柱, 刘晓平. 求解作业车间调度问题的混合粒子群算法[J]. 内蒙古大学学报:自然科学版, 2014, 45(1):7.

[3] 张静, 王万良, 徐新黎,等. 基于改进粒子群算法求解柔性作业车间批量调度问题[J]. 控制与决策, 2012, 027(004):513-518.

[4] 黄超杰, 胡成华. 一种求解作业车间调度问题的混合粒子群算法:.

⛳️ 代码获取关注我

❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料

版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。
相关推荐