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

📄 queue.m

📁 清华大学运筹学课件
💻 M
字号:
% the program is with the queueing theory
% please input the parameters such as lapta and the mu and the pattern of the queueing system  !!! M/M/c/m+N/m=5

input('the program is with queueing theory')

Pt=input('Please input the system pattern:M/M/1/inf=1,M/M/1/k=2,M/M/c/inf=3,M/M/c/m/m=4! Pattern=')

lapta=input('Please input the average arrival number in unit time lapta=')
mu=input('Please input the average service number in unit time mu=')


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if Pt==1

  ru=lapta/mu;
  L=ru/(1-ru);
  Lq=ru^2/(1-ru);
  Wq=lapta/mu*(mu-lapta);
  W=Wq+1/mu;
  input('The service intensity of the system is:')
  ru
  input('The average queue length is:')
  L
  input('The average waiting length is:')
  Lq
  input('The average waiting time is:')
  Wq
  input('The average delay time is:')
  W
    
    
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
elseif Pt==2
   
   k=input('Please input the parameter k=')
   ru=lapta/mu;
   if ru==1
       L=k/2;
   else
       L=(ru/(1-ru))-(k+1)*ru^(k+1)/(1-ru^(k+1));
   end
   
   if ru==1
       Lq=(k*(k-1))/(2*(k+1));
   else
       Lq=ru/(1-ru)-ru*(1+k*ru^k)/(1-ru^(k+1));
   end
   
   if ru==1
       p_k=1/(k+1);
   else
       p_k=(1-ru)*ru^k/(1-ru^(k+1));
   end
   
   lapta_L=lapta*p_k;
   
 
   lapta_e=lapta-lapta*p_k;
   
   W=L/lapta_e;
   
   Wq=Lq/lapta_e;
    
   ru_e=lapta_e/mu;
   
   
    
  input('The service intensity(Untruth) of the system is:')
  ru
  input('The average queue length is:')
  L
  input('The average waiting length is:')
  Lq
  
  input('The lost possibility is:')
  p_k
  
  input('The average lost customer number in unit time is:')
  lapta_L
  input('The truth average arrival customer number in unit time is:')
  lapta_e
  
  input('The average delay time is:')
  W
  input('The average waiting time is:')
  Wq 
  
  input('The average service intensity(efficent and truth) of the system is:')
  ru_e
  
   

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
elseif Pt==3
    
    c=input('Please input the parameter server number c=')
    
    ru=lapta/mu;
    ru_c=lapta/(c*mu);
    
    multipletemp=1;
    for i=1:c
        multipletemp=multipletemp*i;
    end
    c_multi=multipletemp;
    
    sumtemp3=0;
    for i=1:(c-1)
        sumtemp3=sumtemp3+ru^i/fact(i);
    end
    
    p0=1/(1+sumtemp3+c*ru^c/(c_multi*(c-ru)));
    
    p_c=1/(c^(c-c)*c_multi)*ru^c*p0;
    
    Lq=ru_c/(1-ru_c)^2*p_c;
    
    c_bar=ru;
    
    L=c_bar+Lq;
    
    Wq=Lq/lapta;
    
    W=L/lapta;
    
  input('The average waiting length is:')
  Lq
  
  input('The average busy server number is:')
  c_bar
  
  input('The average delay customer number is:')
  L
  
  input('The average waiting time is:')
  Wq 
  
  input('The average delay time is:')
  W
  

    
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

elseif Pt==4
    
    c=input('Please input the parameter repair persons number c=')
    m=input('Please input the parameter machines number m=')
    
    sumtemp4_1=0;
    for i=1:(c-1)
        sumtemp4_1=sumtemp4_1+fact(m)/(fact(i)*fact(m-i))*(lapta/mu)^i;
    end
    
    sumtemp4_2=0;
    for i=c:m
        sumtemp4_2=sumtemp4_2+fact(m)/(fact(i)*fact(m-i))*(fact(i)/(fact(c)*c^(i-c)))*(lapta/mu)^i;
    end
    
    p0=1/(1+sumtemp4_1+sumtemp4_2);
    
    sumtemp4_3=0;
    
    for i=1:(c-1)
        sumtemp4_3=sumtemp4_3+i*fact(m)/(fact(i)*fact(m-i))*(lapta/mu)^i;
    end
    
    sumtemp4_4=0;
    
    for i=c:m
        sumtemp4_4=sumtemp4_4+i*fact(m)/(fact(i)*fact(m-i))*fact(i)/(fact(c)*c^(i-c))*(lapta/mu)^i;
    end
    
    L=sumtemp4_3*p0+sumtemp4_4*p0;
    
    sumtemp4_5=0;
    
    for i=c:m
        sumtemp4_5=sumtemp4_5+(i-c)*fact(m)/(fact(i)*fact(m-i))*fact(i)/(fact(c)*c^(i-c))*(lapta/mu)^i*p0;
    end
    %fact(m)/(fact(i)*fact(m-i))
    Lq=sumtemp4_5;
    
    sumtemp4_6=0;
    
    for i=1:(c-1)
        sumtemp4_6=sumtemp4_6+i*fact(m)/(fact(i)*fact(m-i))*(lapta/mu)^i*p0;
    end
    
    sumtemp4_7=0;
    
    for i=c:m
        sumtemp4_7=sumtemp4_7+fact(m)/(fact(i)*fact(m-i))*fact(i)/(fact(c)*c^(i-c))*(lapta/mu)^i*p0;
    end
    
    c_bar=sumtemp4_6+c*sumtemp4_7;
    
    a=m-L;
    
    lapta_e=lapta*a;
    
    W=L/lapta_e;
    
    Wq=Lq/lapta_e;
    
    p_c=c_bar/c;
    
    q_c=1-p_c;
    
    u_c=a/m;
    
    r_c=Lq/m;
    
 
    
  input('The average happened mulfunction machine number is:')
  L
  
  input('The average waiting mulfunction machine number is:')
  Lq
  
  input('The average busy server persons number is:')
  c_bar
  
  input('The average working machines number is:')
  a
  
  input('The average mulfunction machine took place number in unit time is:')
  lapta_e
  
  input('The average waiting time is:')
  Wq 
  
  input('The average delay time is:')
  W
  
  input('The server operational rate is:')
  p_c
  
  input('The server lost coefficent number is:')
  q_c
  
  input('The machine using rate is:')
  u_c
  
  input('The machine lost coefficent number is:')
  r_c
  


end
      
  


    
    
    
            
               
          

⌨️ 快捷键说明

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