// Résultats pour une ligne téléphonique isolée politique 2 function [f,Tt0]=SimulTel (rho,C,Tmax) // Tmax est le temps où on arrète la simulation NbAppel=0 ligne=zeros(1,C) //simule les lignes si il y a zero alors pas d'appel sinon l'appel fini a t Tt=zeros(1,C) //en fait Tt*t Tt0=0 TempsActuel=0 NombreComEnCours=0 lambda=C*rho while (TempsActuel0) & (ligne(i)Tmax) then break; end //pour ne pas depasser le temps fixé Tt(NombreComEnCours)=Tt(NombreComEnCours)+Mini-TempsActuel NombreComEnCours=NombreComEnCours-1 ligne(imin)=0 TempsActuel=Mini end //Ajout d'un nouvel appel si possible if (ProchainAppel>Tmax) then //pour ne pas depasser le temps fixé if (NombreComEnCours==0) Tt0=Tt0+ Tmax - TempsActuel else Tt(NombreComEnCours)=Tt(NombreComEnCours)+ Tmax - TempsActuel end break end if (NombreComEnCours==C) then //echec de l'appel NbAppel=NbAppel+1 Tt(C)=Tt(C)+ProchainAppel-TempsActuel TempsActuel=ProchainAppel else //recherche d'une ligne libre for i=1:C if (ligne(i)==0) then lign=i;break:end //lign est une ligne libre end if (NombreComEnCours==0) then Tt0=Tt0 + ProchainAppel-TempsActuel else Tt(NombreComEnCours)=Tt(NombreComEnCours) + ProchainAppel-TempsActuel end ligne(lign)=ProchainAppel+grand(1,1,'exp',1) //duree de l'appel aleatoire NombreComEnCours=NombreComEnCours+1 NbAppel=NbAppel+1 TempsActuel=ProchainAppel end end for i=1:C f(i)=Tt(i)/Tt0 end endfunction function [k] = AfficheResult(rho,C,Tmax) //k indice tel que l'occupation la plus fréquente [a,b]=SimulTel(rho,C,Tmax) Max=0 for i=1:C if a(i)>Max then k=i;Max=a(i);end end plot (a) endfunction function [] = AfficheResult2(Lambdad,pas,Lambdaf,C,Tmax) //affiche courbe des k j=1 y=zeros(1,(Lambdaf-Lambdad)/pas+1) x=zeros(1,(Lambdaf-Lambdad)/pas+1) for l=Lambdad:pas:Lambdaf rho=l/C [a,b]=SimulTel(rho,C,Tmax) Max=0 for i=1:C if a(i)>=Max then k=i;Max=a(i);end end y(j)=k x(j)=l j=j+1 end plot (x,y) //affichage de la courbe obtenue par simulation endfunction