Sunteți pe pagina 1din 5

Modelarea sistemelor dinamice cu evenimente discrete.

Exemplu de modelare.

BREVIAR
Un sistem dinamic cu evenimente discrete (SDED) este un sistem dinamic
caracterizat printr-un spaţiu discret al stărilor şi prin traiectorii de stare continue pe
porţiuni. Modificările de stare se numesc tranziţii şi survin ca urmare a apariţiei
evenimentelor, în mod asincron.
Evenimentele au durată nulă. În afară de cazul în care apar alte specificaţii, se
consideră că la un moment dat are loc un singur eveniment. Un eveniment poate fi
identificat ca :
• acţiune specifică (ex: lansare operaţie);
• modificare necontrolabilă în cadrul unui proces (ex: defectarea unei resurse
dintr-un motiv oarecare);
• rezultatul satisfacerii simultane a mai multor condiţii.
Evenimentele sunt de regulă etichetate. Mulţimea evenimentelor legate de
funcţionarea unui proces oarecare determină astfel elementele unui alfabet (mulţime
finită de simboluri) Σ astfel încât ele îşi păstrează semnificaţia de fenomen calitativ
dependent de specificul aplicaţiei.
Astfel, din punct de vedere formal, un sistem cu evenimente discrete se defineşte
astfel:
Definiţie: Un SED este un sistem care evoluează generând spontan evenimente şi
poate fi definit ca un quadruplu:
G = (Q, Σ, δ , q 0 )
unde:
Q = mulţimea stărilor sistemului;
Σ = alfabetul evenimentelor pe care le poate genera sistemul;
q0 = starea iniţială;
δ = funcţia de tranziţie de stare, definită astfel;
δ : Q × Σ→Σ.
Observaţii
1. În funcţie de dimensiunea lui Q, SED se împart în sisteme cu număr finit de
stări şi respectiv sisteme cu număr infinit de stări; indiferent însă de
dimensiune, Q este numărabilă;
2. Funcţia de tranziţie δ nu este definită întotdeauna pentru toate perechile din (Q
×Σ), ceea ce înseamnă că nu este obligatoriu ca din fiecare stare a sistemului să
poată fi generate toate evenimentele din Σ;
3. Alfabetul Σ are întotdeauna un număr finit de evenimente.
În concluzie, modelarea unui proces real ca SED include, indiferent de
formalismul utilizat, următoarele etape:
1. Definirea variabilelor de stare, respectiv a formatului elementelor q ∈ Q; dacă
mulţimea Q este finită, atunci se poate defini în întregime prin enumerare;
2. Stabilirea stării iniţiale q0 ∈ Q;
3. Definirea tuturor evenimentelor din Σ - ca acţiuni care modifică valoarea a cel
puţin o variabilă de stare;
4. Definirea funcţiei de tranziţie δ, ceea ce revine de fapt la descrierea explicită a
modelului.
În funcţie de complexitatea procesului modelat, etapele 3 şi 4 pot fi completate
simultan.
În funcţie de modul în care tratează timpul, modelele SED pot fi împărţite în
următoarele categorii:
- modele autonome – utilizate pentru analiza calitativă a funcţionării sistemelor;
în cazul acestor modele nu este luată în considerare decât ordinea în care apar
evenimentele şi nu intervalul de timp dintre apariţia a două evenimente
succesive;
- modele temporizate – utilizate atât pentru analiza calitativă cât şi, mai ales
pentru analiza performanţelor sistemelor – intervalul de timp dintre apariţiile a
două evenimente succesive este specificat în mod determinist;
- modele stocastice sau probabilistice – în care succesiunea evenimentelor este
dată prin intermediul unor distribuţii de probabilitate.

Problemă rezolvată
1. Să se modeleze ca SED procesul constând dintr-un server şi o coadă de aşteptare.
Capacitatea serverului este de un client la un moment dat, iar capacitatea cozii
este presupusă a fi nelimitată. Atunci când un client intră în sistem, el intră în
coada de aşteptare. De îndată ce serverul este liber, el preia câte un client din
coada de aşteptare, în ordinea sosirii acestora. Intrarea clienţilor în sistem ca şi
durata serviciului sunt aleatoare. Se presupune că durata de schimbare a clientului
servit în cazul în care coada este nevidă este nesemnificativă. Iniţial, serverul este
liber.
Rezolvare:
Procesul propus va fi modelat ca SED autonom, întrucât nu exista nici o indicaţie
temporală.
1. Definirea Q: în mod evident, sistemul va avea un număr infinit de stări,
deoarece capacitatea cozii de aşteptare nu este limitată. În acest caz, se va
defini structura stărilor sistemului prin specificarea variabilelor de stare, şi
anume: s – starea serverului şi l – lungimea cozii de aşteptare.
Întrucât serverul nu poate fi decât liber sau ocupat, se poate considera ca s ∈ {0,
1}, astfel: s = 0 semnifica server liber, iar s = 1 – server ocupat.
Q = {(s, l)  s ∈ {0, 1}, l ∈ }
2. Definirea stării iniţiale: q0 = (0, 0) – server liber şi coada de aşteptare vidă.
3. Definirea alfabetului de evenimente Σ:
Alfabetul de evenimente va conţine două elemente, şi anume:
e1 – intrarea unui client în sistem;
e2 – ieşirea unui client din sistem.
4. Definirea funcţiei de tranziţie:
( s, l + 1) daca s = 1
δ (( s, l ), e1 ) = 
( s + 1, l ) daca s = 0
respectiv intrarea unui client în sistem incrementează lungimea cozii, dacă la momentul
intrării serverul era ocupat sau trece serverul în starea de “ocupat”, dacă era liber
( s, l − 1) daca l ≥ 1
δ (( s, l ), e2 ) = 
( s − 1, l ) daca l = 0
respectiv ieşirea unui client din sistem decrementează lungimea cozii, dacă aceasta era
nevidă sau eliberează serverul, în caz contrar.
Modelul autonom poate fi modificat în vederea analizei performanţelor sistemului în
cazul în care informaţia despre proces este completată cu informaţii temporale.
Aceste informaţii vor însoţi cele două tipuri de evenimente stabilite anterior, în
maniera următoare: se presupun cunoscute duratele de timp dintre două sosiri succesive
şi de asemenea timpul de servire aferent fiecărui client.
A1 = 0.4; A2 = 1.2; A3 = 0.5; A4 = 0.7; A5 = 0.2; A6 = 0.6;
A7 = 0.2; A8 = 1.4;…
S1 = 2.0; S2 = 0.7; S3 = 0.2; S4 = 1.1; S5 = 3.7; S6 = 0.6;…
În conformitate cu datele de mai sus, evoluţia numărului de clienţi din coada de
aşteptare este cea prezentată în figura următoare:
Q(t)

t
0 1 2 3 4 5 6 7 8 9

e2 = 1.6 e8 = 4.0 e11 = 5.8


Sosiri
e1 = 0.4 e3 = 2.1 e7 = 3.8 e10 = 5.6 e12 = 7.2

e6 = 3.3
Plecări
e4 = 2.4 e5 = 3.1 e9 = 4.9 e13 = 8.6 = T(6)

Ocuparea serverului este cea prezentată în figura de mai jos. După cum se poate
observa, serverul procesează clienţi o durată de timp de 7,7 unităţi de timp din totalul de
8,6 unităţi de timp. Aceasta reprezintă o ocupare de 89,53%.
B(t)

t
0 1 2 3 4 5 6 7 8 9

e2 = 1.6 e8 = 4.0 e11 = 5.8


Sosiri
e1 = 0.4 e3 = 2.1 e7 = 3.8 e10 = 5.6 e12 = 7.2

e6 = 3.3
Plecări
e4 = 2.4 e5 = 3.1 e9 = 4.9 e13 = 8.6 = T(6)
Probleme propuse:
1.Sa se realizeze un program Matlab care sa realizeze reprezentarea evoluţiei numărului
de clienţi din coada de aşteptare pentru orice date de intrarea, ca în problema anterioară.
2. Fie un sistem de calcul cu două procesoare P1 şi P2, care lucrează în paralel. Modul în
care taskurile sosesc spre procesare poate fi descris în raport cu momentul de timp
discret al apariţiei lor prin intermediul unei funcţii binare a(t) , t ∈ , astfel: a(t)=1 dacă
la momentul t soseşte un task şi a(t) = 0 în caz contrar. Se presupune că nu pot sosi
simultan două sau mai multe task-uri.
Presupunem că pentru un interval de timp t = 0,1,..,10 funcţia a(t) are valorile
{1,1,1,0,1,0,1,1,0,0,1}.
La sosirea unui task sistemul de calcul aplică următoarea regulă de alocare a acestuia:
cele două procesoare lucrează alternativ, primul fiind P1. Se presupune că dacă un task
este trimis la Pi, i=1,2 şi acel procesor este ocupat, atunci taskul va aştepta într-o coadă
de capacitate infinită. Durata de procesare a unui task la procesorul P1 alternează între 4
unităţi de timp şi o unitate de timp (începând cu 4), iar durata de procesare pe P2 este de
2 unităţi de timp. Fie y(t) numărul total de clienţi care părăsesc sistemul la momentul t,
iar x1(t) , x2(t) lungimile cozilor de aşteptare la procesoarele P1 respectiv P2. Se cere:
a) desenaţi o diagrama de timp t-0,1,..., 10 indicând sosirile şi plecările. Iniţial
x1(0) = x2(0) = y(0) =0;
b) construiţi un tabel cu valorile x1(t), x2(t), şi y(t) pentru toţi t = 0, 1, …,10;
presupunem că se lucrează în timp continuu. Sosirile au loc la momentele 0,1; 0,7; 2,2;
5,2; 9,9. Duratele de procesare pe P1 alternează între 4,2 şi 1,1 iar pe P2 este fixat la 2
unităţi de timp. Fie un model condus de evenimente cu setul de evenimente E = {a, d1,
d2}, unde “a” semnifica sosirea iar “di” plecarea de pe procesorul Pi. Construiţi un tabel
cu valorile x1(k), x2(k) , y(k), t(k) unde : x1(k), x2(k) sunt lungimile cozilor de aşteptare ;
y(k) este numărul cumulativ de plecări după evenimentul k. (k = 1,2,…), iar t(k)
momentul de timp la care apare evenimentul k. Dacă două evenimente apar simultan
presupunem că o plecare apare întotdeauna înaintea unei sosiri. Comparaţi numărul de
actualizări în acest model cu un model în timp cu eşantioane la 0,1 unităţi de timp.

S-ar putea să vă placă și