📄 leastime.m
字号:
%Compute the least time used to produce these parts.
%
%
function lstime
Tmin = 0;%the total time
% for k=1:5,
clear
for iter=1:factorial(10),
% for iter=1:100,
% iter = 1;
%construct the matrix J 10-by-8 containing the time.
% J = [56 30 63 73 25 20 30 78,
% 36 68 86 50 65 99 54 33,
% 65 20 46 19 91 50 64 16,
% 58 39 23 88 28 30 20 61,
% 25 72 50 16 43 15 51 36,
% 61 40 63 13 51 20 60 71,
% 70 58 23 70 45 29 94 33,
% 35 50 26 40 69 10 64 90,
% 18 36 63 78 32 50 30 66,
% 51 73 0 16 0 15 61 38];
% save J J;
% clear
load J;
% T = 0;%the total time
% d = zeros(1,7);%delay
% w = zeros(1,7);%waiting time
% iter = 1;
%generate the random queue..
% r(iter,:) = random(10);
eval(['r',num2str(iter),'= random(10);']);
for i=1:iter-1,
% if norm(r(iter,:)-r(i,:))<=1e-6,
if norm(eval(['r',num2str(iter),'-r',num2str(i)]))<=1e-6
% r(iter,:) = random(10);
eval(['r',num2str(iter),'= random(10);']);
end
end
% pause
for j=1:10,
eval(['a(j) =','r',num2str(iter),'(j);']);
end
T(iter) = sum(J(a(1),:));%assiagn the value time by the first part.
% pause
for i=1:9,
% T = J(r())
d = zeros(1,7);%delay
w = zeros(1,7);%waiting time
for j=1:7,
switch(J(a(i+1),j)<=J(a(i),j+1))
case {1}%waiting
d(j) = 0;
if length(find(w))==0,
w(j) = J(a(i),j+1)-J(a(i+1),j)-sum(d([1:j]));
else
eval(['b=find(w);','k=b(length(b));']);
w(j) = w(k)+J(a(i),j+1)-J(a(i+1),j)-sum(d(k:j));
end
case {0}%delay
d(j) = J(a(i+1),j)-J(a(i),j+1);
J(a(i+1),j+1) = J(a(i+1),j+1)+d(j);%change the J matrix in each iteration..
% T = T+d(j);
w(j) = 0;
end
if w(7)<=0,
T(iter) = T(iter)+abs(w(7))+J(a(i+1),8);
else
T(iter) = T(iter)+J(a(i+1),8);
end
end
% T = T+J(r(i+1),8);
% T = T+J(r(i+1),j)
end
end %end iter for loop
% if T(iter)<T(iter-1)
% end %end k loop
Tmin = min(T)
% end %end k loop
% Tmin1 = min(Tmin)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -