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;%按工件数量生成序号(行向量&