⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gettimes.m

📁 离散算法
💻 M
字号:
% 函数功能:求出当前作业序列下,各个作业在每台机器上的开始时间、完成时间和等待时间
function [out_tComplete] = getTimes(in_tProcess, in_jobSeq); % out_tStart, , out_tWait
% 输入参数
%   |-- in_tProcess:   处理时间,(machCount × jobCount)维
%   |-- in_jobSeq:  待计算的作业序列,(11 × relJobCount)维
% 输出参数
%   |-- out_tStart: 开始时间,(machCount × jobCount)维
%   |-- out_tComplete:   完成时间,(machCount × jobCount)维
%   |-- out_tWait:  等待时间,(machCount × jobCount)维
[macCount, jobCount] = size(in_tProcess);
[relJobCount] = size(in_jobSeq, 2);
% 初始化
out_tStart = -100 * ones(macCount, jobCount);
out_tComplete = -100 * ones(macCount, jobCount);
% out_tWait = -100 * ones(macCount, jobCount);
% 第一个作业在m台机器上的各项时间
firstJob = in_jobSeq(1);
out_tComplete(1, firstJob) = in_tProcess(1, firstJob);
out_tStart(1, firstJob) = 0;
% out_tWait(1, firstJob) = 0;
for (iMac = 2: macCount)
    out_tStart(iMac, firstJob) = out_tComplete(iMac - 1, firstJob);
    out_tComplete(iMac, firstJob) = out_tStart(iMac, firstJob) + in_tProcess(iMac, firstJob);
%     out_tWait(iMac, firstJob) = out_tComplete(iMac - 1, firstJob);
end
% out_tWait(:, firstJob) = 0;


% 各个作业在第一台机器上的各项时间
for (kJob = 2 : relJobCount)
    curJob = in_jobSeq(kJob);
    out_tStart(1, curJob) = out_tComplete(1, in_jobSeq(kJob - 1));
    out_tComplete(1, curJob) = out_tStart(1, curJob) + in_tProcess(1, curJob);
%     out_tWait(1 , curJob) = 0;
end


for (iMac = 2 : macCount)
    for (kJob = 2 : relJobCount)
        %%max(out_tComplete(iMac, kJob - 1), out_tComplete(iMac - 1, kJob))
        curJob = in_jobSeq(kJob);
%         maxTCom = max(out_tComplete(iMac, in_jobSeq(kJob - 1)), out_tComplete(iMac - 1, curJob));
        out_tStart(iMac, curJob) = max(out_tComplete(iMac, in_jobSeq(kJob - 1)), out_tComplete(iMac - 1, curJob)) ;
        out_tComplete(iMac, curJob) = out_tStart(iMac, curJob) + in_tProcess(iMac, curJob);
% %         % 如果在该机器上的前一个作业完成时间 大于 该作业在前一台机器上的完成时间,则等待
% %         if (out_tComplete(iMac, in_jobSeq(kJob - 1)) > out_tComplete(iMac - 1, curJob))
% %             out_tWait(iMac, curJob) = out_tComplete(iMac, in_jobSeq(kJob - 1)) - out_tComplete(iMac - 1, curJob);
% %         else
% %             out_tWait(iMac, curJob) = 0;
% %         end
    end
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -