MATLAB 用约翰逊排序法则对n个工件在两台机器的加工作业进行调度
通过建立函数文件,在主窗口中调用函数,实现Johnson排序法的运用。
函数形式:function [solution] = Johnson(n),其中n表示工件个数。
要求:随机生成一个n*2的加工时间矩阵(推荐取值为1到9),n推荐7-10。
Johnson调度规则:
①列出n个作业在两台机床上的作业时间;
②根据作业时间将n个作业分成P和Q两组。
分组原则:P组的作业在第二台机器上的加工时间比在第一台机器上加工时间长;其余作业为Q组;
③将P组作业按他们在第一台机器上加工时间递增顺序排列,将Q组作业按他们在第二台机器上加工时间递减的顺序排列。
④将P组作业顺序和Q组作业顺序连接在一起,构成的就是生产周期最短的最优作业顺序。
建立函数文件
function [ solution ] = Johnson( n )
%Jhonson Summary of this function goes here
% Detailed explanation goes here
A=randi(9,n,2);
b=1:n;%按工件数量生成序号(行向量)
B=b';%将行序号向量转置为列向量
T=[A,B];
fprintf('随机生成%d个工件在2台机器上的加工时间矩阵:\n其中第3列表示工件的序号\n',n);
disp([T]); %输出加工时间矩阵,其中第3列表示工件初始序号
p=1;
q=1;
for i=1:n

本文介绍了如何使用MATLAB实现约翰逊排序法则,对n个工件在两台机器的加工作业进行调度。通过建立函数文件并随机生成加工时间矩阵,遵循特定的分组和排序原则,最终得出生产周期最短的最优作业顺序。在示例中,展示了针对7个工件的调度过程,调整后的加工时间矩阵和工件顺序,总作业时间为36。

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



