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

📄 leastime.m

📁 generate a normal sequence from rayleigh distribution
💻 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 + -