Documente Academic
Documente Profesional
Documente Cultură
MPI
function [ B ] = plot_boolean( t )
if (nargin == 0)
end
k=1;
B=zeros(size(2:50));
for i = 2:50
if i == t(k)
k = k + 1;
else
end
if k > size(t)
if (B(i) == 1)
B(1,i:50)=ones(1,50-i+1);
end
break
end
end
plot(B);
end
Prin apelarea functiei fara parametrii, de tipul : ” plot_boolean()” se obtine un grafic cu valorile
predefinite ale variabilelei boolene.
Prin apelarea functiei cu un parametru care contine momentele de timp in care au loc tranzitii de stare
sau evenimente, se construieste iterativ vectorul cu valorile boolene si apoi se traseaza grafic variabila.
Functia are ca parametru de iesire vectorul cu valorile variabilelei boolene la fiecare moment de timp
din domeniul definit.
Moraru Maria Luminita
MPI
H1_2
%initializare parametrii
BG1=zeros(1,100);
BG2=zeros(1,100);
BS=zeros(1,100);
nea=size(ea,2);
neb=size(eb,2);
nta=size(ta,2);
ntb=size(tb,2);
k1=1;
k2=1;
k3=1;
k4=1;
ea=ea*10;
ta=ta*10;
eb=eb*10;
tb=tb*10;
for i = 2:100
k1=k1+1;
end
BS(i:end) = ones(1,100-i+1); %daca apare un eveniment de tip ta, G1 proceseaza si supervizorul este
neocupat, supervizorul isi schimba starea
k3=k3+1;
end
BG2(i:end) = ones(1,100-i+1); %daca apare eb, supervizorul permite si amandoi agentii stau, G2
incepe activitatea
k2=k2+1;
end
k4=k4+1;
end
if k1 > nea
end
if k2 > neb
end
if k3 > nta
end
if k4 > ntb
end
if ea(k1) < i
k1 = k1 +1; % daca elementul curent din vectorul ea este un moment anterior momentului curent i,
se trece mai departe in evaluarea urmatorului moment de timp
Moraru Maria Luminita
MPI
end
if eb(k2) < i
k2 = k2 + 1; % daca elementul curent din vectorul eb este un moment anterior momentului curent i,
se trece mai departe in evaluarea urmatorului moment de timp
end
if ta(k3) < i
k3 = k3+1; % daca elementul curent din vectorul ta este un moment anterior momentului curent i,
se trece mai departe in evaluarea urmatorului moment de timp
end
if tb(k4) < i
k4 =k4+1; % daca elementul curent din vectorul ea este un moment anterior momentului curent i,
se trece mai departe in evaluarea urmatorului moment de timp
end
if k1 > nea
end
if k2 > neb
end
if k3 > nta
end
if k4 > ntb
end
end
subplot(3,1,1);
plot(BG1)
title('BG1')
subplot(3,1,2);
plot(BG2)
title('BG2')
subplot(3,1,3);
plot(BS)
title('BS')
end
Functia primeste ca parametrii vectori cu momentele de timp cand se petrec evenimentele de tip ea, eb,
ta si tb. Apoi variabilele boolene pentru reprezentarea fiecarui agent se contruiesc la fiecare moment.
Aici se observa interventia supervizorului asupra fiecarui agent. Daca a aparut un eveniment de tip ea,
G1 isi incepe activitatea ( adica trece in 1), iar G2 ramane inactiv, el fiind inhibat de supervizor sa poata
incepe activitatea. Numai dupa ce G1 isi termina activitatea la un eveniment de tip ta, supervizorul va
trece in 1 si ii va permite lui G2 sa isi inceapa activitatea, inhibandu-l pe G1 sa isi inceapa din nou
activitatea. Aceste particularitati se pot observa grafic din trasarea grafica de la finalul functiei.