📄 get2funvalues.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 + -