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

📄 get2funvalues.m

📁 离散算法
💻 M
字号:
% 函数功能: 求某个序列的两个函数值和完成时间---只针对2个目标函数情况
function [out_funValues] = get2FunValues(in_jobSeq, in_tProcess);% out_tComplete,  , in_duedate
%  输入:
%     in_jobSeq:     作业序列,    (1 × realJobCount)维
%     in_tProcess:   处理时间,(machCount × jobCount)维
%     in_duedate:    期望完成时间,(1 × jobCount)维
%  输出:
%     out_tComplete: 完成时间,(machCount × jobCount)维    !!!后面考虑改为返回所有的时间,用结构表示
%     out_funValues: 函数值,  (1 × funCount)维,!!!此处funCount固定为2
[f_realJobCount] = size(in_jobSeq, 2);
[f_machCount, f_jobCount] = size(in_tProcess);
% % % 计算完成时间
% % out_tComplete(1:f_machCount, 1: f_jobCount) =  getCompleteTime(in_tProcess, in_jobSeq(1, 1:f_realJobCount)); 
% 计算开始时间、完成时间和等待时间
[out_tComplete] = getTimes(in_tProcess, in_jobSeq); % f_tStart, , f_tWait
% 计算f1--最大完成时间makespan
out_funValues(1, 1) = out_tComplete(f_machCount, in_jobSeq(1, f_realJobCount));
% % % % % 计算f2-作业平均等待时间Average Wait
% % % % totalWaitTime = 0;
% % % % for (kJob = 1 : f_realJobCount)
% % % %     for (iMac = 1: f_machCount)
% % % %         totalWaitTime = totalWaitTime + f_tWait(iMac, in_jobSeq(1, kJob));
% % % %     end
% % % % end
% % % % totalWaitTime
% % % % out_funValues(1, 2) = totalWaitTime; % / (f_machCount * f_jobCount);

% 计算f2-计算总完成时间 Total Flowtime
totalFlowtime = 0;
for (kJob = 1 : f_realJobCount)
    totalFlowtime = totalFlowtime + out_tComplete(f_machCount, in_jobSeq(1, kJob)) ;
end
out_funValues(1, 2) = totalFlowtime;

% % % 计算f2-总延迟时间Total tardiness
% % totalTard = 0;
% % for (kJob = 1 : f_realJobCount)
% %     totalTard = totalTard + max((out_tComplete(f_machCount, in_jobSeq(1, kJob)) - in_duedate(in_jobSeq(1, kJob))), 0);
% % end
% % out_funValues(1, 2) = totalTard;

⌨️ 快捷键说明

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