Sunteți pe pagina 1din 451

Modelare și simulare

Curs, anul III Calculatoare


Instructori:
 Prof.dr.ing. Mihai Mocanu(mmocanu@software.ucv.ro)
 Dr. ing. Radu Zglimbea
 Asist. drd. Constantin Ivănescu
Pagina curs: http://software.ucv.ro/~mocanu_mihai/
(pe intrarea corespondentă cursului, introduceţi user/pasw)
Obiectul cursului
Domeniul modelare și simulare (M&S) este parte
a disciplinelor generale (management ingineresc)
 Termenii “modelare”/“simulare” pot fi utilizați alternativ
→ conceptualizarea si implementarea (M&S) sunt
activitati mutual dependente
→ ce pot fi conduse și independent (de indivizi diferiti)
O definitie generala a obiectului M&S:
 “Modelarea si simularea (M&S) constau in utilizarea de
modele, inclusiv emulatoare, prototipuri, simulatoare
etc, statice sau dinamice, pentru a dezvolta date si a le
folosi apoi ca baza pentru luarea unor decizii (tehnice
sau manageriale)”
Locul cursului
Mathematics Control
Operations Theory
Research* Physics

Software
Engineering

Artificial Modeling &


Intelligence Simulation Computer
Science

Systems
Numerical and Engineering
Symbolic Graphics &
Computation Visualization
Zone de cunoștințe conexe
Fundamente necesare
Programarea calculatoarelor
Tehnici de programare
Metode numerice
Algoritmi şi structuri de date
Teoria generală a sistemelor dinamice
Teoria probabilităţilor şi statistica matematică
Programarea orientată pe obiecte
Medii de programare vizuală

Obiective
Introducerea conceptelor de bază de modelare şi
simulare discretă
Însuşirea metodelor analitice de modelare pentru
sisteme cu cozi de aşteptare şi reţele de cozi
Introducerea tehnicilor de modelare, simulare şi analiza
performantelor pentru sisteme cu evenimente discrete
complexe
Identificarea posibilităţilor şi limitărilor modelelor
matematice, extinderea lor prin simulare
Utilizarea unor pachete şi biblioteci de programe
specializate pentru modelare şi simulare
Dezvoltarea abilităţilor de modelare/ simulare a unui
sistem nu doar prin studiu, ci prin exerciţii şi probleme,
ca şi prin realizarea unor proiecte
Structura cursului
Modelarea analitică a sistemelor cu even.discrete
Probabilităţi şi procese aleatoare (review)
Generarea numerelor și variabilelor aleatoare
Teoria elementară a cozilor de aşteptare
Reţele de cozi de aşteptare
Reţele Petri/ Modele de simulare pentru SED
Tehnici de estimare și aproximare
Limbaje și medii de simulare
Topici avansate
 Simularea paralelă si distribuită
 Analiza perturbaţiilor
Conţinutul cursului
Sisteme dinamice
 Sisteme cu evenimente discrete (SED, SDED)
Modelarea analitică a SED
 Categorii de modele şi nivele de studiu
 Modele algebrice şi logice
 Modele dinamice: reţele Petri
 Modele temporale: reţele Petri temporizate
Modelarea operaţională a SED
 Statistica in modelare
 Lanţuri şi procese Markov şi semi-Markov generalizate
 Formalismul GSMP ca bază a modelelor de simulare
 Sisteme cu cozi de aşteptare şi reţele de cozi
Conţinutul cursului (cont.)
Modele de simulare pentru SED
 Generarea numerelor şi variabilelor aleatoare
 Construcţia şi verificarea modelului de simulare
 Execuţia secvenţiala şi analiza simulărilor (ieşirilor)
 Validarea simulărilor. Estimatori şi inferenţa statistica
Limbaje şi medii de simulare
 Limbaje de simulare
 Construcţia unui simulator. Biblioteci de componente
 Metode de accelerare a execuţiei simulărilor: simularea paralela
(distribuita), tehnici de gradient
Aplicaţii ale modelarii şi simulării pentru:
 Sisteme cu cozi de aşteptare şi reţele de cozi
 Sisteme de calcul şi reţele de calculatoare
 Sisteme şi reţele de comunicaţii
Referințe bibliografice
Banks J., Carson J.S., Nelson A., Nicol D., Discrete-Event
System Simulation, 3rd Ed., Prentice-Hall, 2000
Cassandras C.G., Discrete Event Systems: Modeling and
Performance Analysis, Irwin & Aksen, Boston, 1993
Lazowska E.D., Zahorjan J., Scott-Graham G., Sevcik K.
C.: Quantitative System Performance - Computer System
Analysis Using Queueing Network Models, 1984
Sadiku M., Ilyas M.: Simulation of Local Area Networks,
CRC Press, 1995
Mocanu M., Principii, concepte şi instrumente de
modelare şi simulare in studiul sistemelor dinamice
discrete, Ed. Sitech, 2004
Notarea
Se face in PV (pct. virtuale, max.100) repartizate astfel:
• 20% teme periodice de evaluare continuă – Q&A (T)
• 20% portofoliu practic - proiect (P)
• 20% test grilă de evaluare finală (G)
• 40% examen scris final – întrebări cu răspuns scurt (E)
Evaluarea continuă a activității de laborator (L) conduce
la acordarea calificativului Admis/ Respins, care
condiționează primirea în examen.
Trebuie să obţineţi minim 50% din punctaj la fiecare
dintre formele de evaluare, pe parcursul semestrului și
finale, pentru a putea lua examenul.
Nota reflectă curba lui Gauss aplicată punctajului final.
Capitolul I
Sisteme dinamice cu evenimente
discrete
Sisteme dinamice: Aspecte calitative
Se are în vedere dezvoltarea de tehnici de
proiectare, analiză, control, măsurare de
performanţe, bazate pe unele metode şi criterii
Definiţii:
 un sistem constă din “componente” in interacţiune
 un sistem este complet descris de “funcţia” asociată,
pe care o îndeplineşte prezumptiv [Cas93]
 modelul - o reprezentare abstractă (o schemă, un
set de ecuaţii etc.) replicând, cu un anumit grad de
acurateţe, comportarea sistemului însuşi
Un model matematic general
< X, T, U, f, Y, g, R >, unde:
X este mulţimea stărilor;
T este timpul (continuu sau discret);
U este domeniul intrărilor admise;
f : XxTxUxTX, funcţia de tranziţie a stărilor;
Y este domeniul de ieşire;
g : XxTY este funcţia de ieşire;
R : UxTU este funcţia de admisibilitate a
intrării (datorata sau nu unei reacţii a
sistemului).
Variabile măsurabile
variabile de intrare – variabile in timp: {u1(t), u2(t), ...}
variabile de ieşire – modificate de sistem ca răspuns:
{y1(t), y2(t), ...}.
Dacă:
u(t) = [u1(t), u2(t), ..., um(t)]T
y(t) = [y1(t), y2(t), ..., yn(t)]T
Modelul matematic general al sistemului, din punct de
vedere intrare-ieşire, este:
y(t) = g(u(t)) = [g1(u1(t), u2(t), ..., um(t)), g2(u1(t), u2(t),
..., um(t)),..., gn(u1(t), u2(t), ..., um(t))]T
Clasificarea sistemelor (1)
sisteme statice – in care toate relaţiile
funcţionale intrare-ieşire pe care le putem
construi sunt descrise simplu prin ecuaţii
algebrice, in care ieşirea y(t) este, pentru orice t,
independenta de valorile trecute ale intrării u(),
<t;
sisteme dinamice – in care relaţiile funcţionale
intrare-ieşire construite sunt descrise prin ecuaţii
diferenţiale, deci in care ieşirea y(t) depinde de
valorile trecute ale intrării u(), <t, deci de
momentul iniţierii studierii relaţiilor i/e
Clasificarea sistemelor (2)
sisteme invariante in timp: răspunsul
intrare-ieşire nu depinde de momentul
aplicării intrării (daca u(t)  y(t), atunci
u(t+)  y(t+), T);
sisteme variabile in timp: răspunsul
intrare-ieşire depinde de momentul aplicării
intrării (daca u(t)  y1(t), atunci u(t+) 
y2(t+), cu y1(t) y2(t+) pentru t,T)
“Stare” sistem
Ieşirea unui sistem nu este întotdeauna
aceeaşi atunci când se aplică aceeaşi
intrare
Simpla observare a ieşirilor posibile y(t)
atunci când intrarea u(t) este complet
specificată nu conduce la predicţia unei
ieşiri viitoare
Deci există dependență nu doar de intrare
ci și de “starea” sistemului, care diferă!
Clasificarea sistemelor (3)
Introducerea noţiunii de stare este
importantă pentru înţelegerea corectă a
echilibrului intre influenta factorilor externi
şi interni in răspunsul unui sistem.
Numărul stărilor poate fi finit, numărabil
sau infinit :
- sisteme cu stări discrete;
- sisteme cu stări continue.
Clasificarea sistemelor (4)
Nu doar numărul stărilor influenţează
capacitatea de predicţie a comportării
viitoare a sistemului pentru o intrare data.
- sisteme deterministe: ieşirile sunt complet
determinate de stare, intrări şi momentul
aplicării; altfel spus, orice intrare produce un
răspuns predictibil al sistemului
- sisteme stochastice: cel puţin una dintre
ieşiri e variabila aleatoare; o intrare produce
trecerea aleatoare a sistemului într-una din
stările următoare adiacente celei curente
Clasificarea sistemelor (rev.)
SISTEME

STATICE DINAMICE

VARIANTE IN INVARIANTE
TIMP IN TIMP

LINIARE NELINIARE

CU STARI CU STARI
CONTINUE DISCRETE

CONDUSE DE CONDUSE DE
TIMP EVENIMENTE

DETERMINISTE STOCHASTICE

Sisteme dinamice cu evenimente discrete


Obiect de studiu:

SDED - sistemele dinamice cu


evenimente discrete
Exemple:
liniile de fabricaţie/de asamblare
reţelele de calculatoare şi de comunicaţii
sistemele de dirijare a traficului aerian
procesele de business (supermarket) etc.
Elemente distinctive ale SDED
Sisteme artificiale - create de noile tehnologii
Sisteme dinamice - prin natura evoluţiei interne
Starea lor se schimba la momente discrete de
timp şi nu continuu ca în cazul sistemelor fizice
Evoluţia în timp - depinde de interacţiunea
complexa a momentelor de apariţie a diferitelor
tipuri de evenimente
Nu pot fi descrise prin ecuaţii diferenţiale, cu
derivate parţiale sau cu diferenţe finite
SDED - definiţii
Sisteme dinamice al căror spaţiu de stări este
discret şi ale căror traiectorii de stare sunt
constante pe porţiuni
Momentele de timp la care tranziţiile survin, ca şi
tranziţiile în sine sunt în general impredictibile
Tranziţiile de stare se numesc evenimente
Acestea dirijează mecanismul tranziţiilor de stare
SDED se deosebesc profund de sistemele cu
eşantionare, obţinute prin discretizarea timpului
SDED - proprietăţi
 discrete - privind timpul de referinţa şi spaţiul
stărilor
 natura lor discontinuă nu împiedica analiza prin
aproximare continua (ex. prin modele de difuzie)
 asincrone - raportate la evenimente, nu la timp
 nedeterministe - generative şi capabile de alegeri
interne
 deşi perturbări neplanificate, defectări şi căderi
sunt inerente, modelarea deterministă este
posibilă (prin algebra min-max sau reţelele Petri)
SDED – proprietăţi (cont.)
 gradul de complexitate şi dimensiunile lor sunt mari:
 numărul de stări ale unui SDED “explodează”
combinatorial
 enumerarea stărilor duce la sarcini computaţionale
inadecvate
• sunt modulare - compuse din componente cvasi-
independente
 pot fi aplicate metode de decompoziţie şi agregare
 pot fi echipate cu mijloace de control şi comunicare
Metodologii de studiu:
Modelarea analitica
Simularea
DE CE studiem un sistem?
Scopuri
 Proiectare
 Măsurare şi control
 Îmbunătăţire
Modalităţi
 Studiul sistemului real
 Prezintă avantajul exactităţii obiectului de studiu
 Uneori imposibil, deoarece:
 Sistemul real nu exista
 Studiul sistemului real poate fi distructiv, periculos
sau costa prea mult
DE CE recurgem la modele?
Este necesar ca orice experiment să aibă
“o bază”,
• dar uneori realitatea nu este construită
(absenţa sistemului real)
• alteori realitatea nu este disponibilă
(lipsa accesului la sistemul real)
Studiul modelelor
De obicei uşor, rapid, ieftin, sigur – faţă de
studiul sistemului real
Permite încercarea unor idei şi ipoteze
Simpla construcţie a unui model este instructivă
– indiferent de utilizarea sa
Validitatea unui model are in vedere:
 similaritatea cu sistemul real
 nivelul de detaliu
Numai ea poate garanta concluzii corecte prin
studiul modelului in locul sistemului real
Definiţii: modelare şi model
Un proces de modelare este o etapă preliminară
necesară in studiul oricărui sistem, pentru:
 calcul analitic
 simulare
Un model:
 este o reprezentare abstractă a unui sistem
 nu doar o reprezentare a unui sistem - ci şi o
simplificare a sa
 totuşi suficient de detaliată, ca sa permită, prin
studiul său, concluzii valide asupra sistemului
Modelarea in studiul sistemelor
Tipuri de modele
Modele fizice (iconice)
 Planuri, scheme, schiţe – necesare in multe domenii
 De tip manechin (phantom) – in medicina
 De tip “virtual reality” sau “augmented reality” – in
domenii de înalta tehnologie (simulatoare de zbor)
Modele matematice (logice)
 Aproximează modul de operare al unui sistem
 Deseori reprezentate printr-un software adecvat
 Execuţia programului permite încercări, obţinerea de
rezultate, studiul comportamentului modelului
Modelarea predictivă
Este o modelare in absenta realităţii
Exemple:
a) Construcţia unei caroserii care trebuie sa
satisfacă anumite criterii de greutate,
rezistenta, geometrice, tehnologice
b) Studiul performanței unui algoritm in ipoteza
implementării pe o arhitectura incă inexistentă
sau indisponibilă (dar posibil a fi utilizată)
c) Experimentarea unor medicamente ce trebuie
sa aibă unele proprietăţi speciale
Modelarea restrictivă
Este modelarea in condiţiile restricţiilor
de acces la un sistem real existent
Exemple:
a) Nu putem opri o reţea de calculatoare ce monitorizează
o centrala nucleara in scopul efectuării de experimente
b) Nu putem opri procese de fabricaţie ritmice pentru a
experimenta noi metode de management
c) Nu putem perturba circulaţia pe o arteră aglomerată
pentru a decide in ce măsură, de exemplu, schimbarea
unor reguli de trafic (viteza, prioritatea) este benefică
Calculul modelelor logice
Daca un sistem este destul de simplu, şi modelul este
simplu, pot fi aplicate metode matematice tradiţionale
Permit obţinerea de rezultate exacte:
 Aparatul matematic integro-diferenţial
 Teoria aşteptării (cozi şi reţele de cozi)
 Programarea liniară
Sistemele complexe pot fi uneori reprezentate de
modele analitice simple, valide
 Presupunerile simplificatoare păstrează validitatea?
Cel mai adesea, un sistem complex necesită un model
complex, metodele analitice nu se aplică … ce facem?
Simularea pe calculator
În sens larg, se referă la metode de studiu ce pp.
 evaluarea numerică a unor modele de sistem
 utilizarea unui model software pentru a mima operaţii/
caracteristici sistem, în timp
Poate fi validată de studiul modelelor simple,
pentru care este disponibilă şi o soluţie analitică
Potenţial ridicat în studiul modelelor complexe
Foarte utilă și în studiul unor sisteme complexe,
unde nu se întrevede soluţia analitică
Fundamente teoretice ale modelelor de simulare:
 automatele de stare (stohastice)
 procesele semi-Markov generalizate (GSMP)
Acurateţea simulărilor
Prin simulare nu se obţin răspunsuri exacte, doar
aproximaţii, estimări; totuşi:
 Aceasta nu este o problema specifica, ci una generala
pentru multe alte metode de studiu
 Erorile pot fi limitate, prin verificare si validare (V&V)
 Verificarea si validarea sunt compuse din proceduri
integrate in dezvoltarea modelului (de simulare)
Ceea ce trebuie evitat este obţinerea ieşirilor
aleatoare (RIRO) din simulări stochastice, prin:
 Proiectarea şi analiza statistică a experimentelor de
simulare
 Controlul “zgomotului”, replicabilităţii, eşantionării
secvenţiale, tehnicilor de reducere a varianței
Verificarea şi validarea simulărilor
Verificarea simulării consta in principal in compararea
modelului conceptual cu codul programat
Metode de verificare a unei simulări:
 Compararea modelului implementat cu alte modele, atât la nivel
de structura interna cat si de intrare/ ieșire
 Testarea la nivel de sistem, subsistem sau componente pentru
îndeplinirea cerințelor sau specificațiilor documentate
Validarea unei simulări consta in analiza corespondentei
intre model si sistemul real
Metode de validare a unei simulări:
 Examinarea atenta a ieșirilor modelului in condițiile variabilității
cat mai mari a intrărilor, si compararea cu datele de observație
 Execuția repetata a modelului programat
Diversitatea metodelor de simulare
Cel mai adesea, simularea are loc pentru starea
stabilă, dupa eliminarea regimurilor tranzitorii
Metode statice vs. dinamice
 Ce rol joaca timpul in model?
Metode continue vs. discrete
 “starea” se poate schimba continuu, sau tranziţiile de
stare apar doar la momente discrete in timp?
Metode deterministe vs. stochastice
 este evoluţia sistemului sigura sau exista elemente
de incertitudine?
Majoritatea modelelor operaţionale sunt:
dinamice, discrete şi stochastice
Ex.de simulare manuală: estimarea
nr. prin aruncarea acului (Buffon)

Se aruncă un ac de lungime L pe o masa cu


dungi d- echidistante (d >L)
P (acul sa “taie” o linie) = (2*L)/(*d)
Se repetă experimentul de un număr mare de ori
şi se determina R = raportul intre nr. traversărilor
şi nr. aruncărilor
Se estimează p prin (2*L)/(R*d)
Justificare
Acul poate ateriza in poziţii diferite (fig.1)
Orice poziţie intre 2 linii se caracterizează prin:
 Distanta capătului acului (interior) fata de cea mai
apropiata linie de deasupra sa (y): 0 < y < d
 Unghiul format cu direcţia liniilor (θ): 0 < θ < .

Fig.1 Fig.2
Justificare (cont.)
Acul intersectează linia dacă y < L·sinθ
Perechea (θ, y) determină in mod unic poziţia
acului (fără a ţine cont de translaţii)
Justificare (cont.)
Spaţiul de eşantionare:

Probabilitatea ca acul sa intersecteze


o linie:
aria de sub curba y  Lsin( )
P
aria dreptunghiului de laturi d ,p : A  d p
După efectuarea calculelor:
Concluzii
Problema acului (Buffon) pare banală, dar aduce in
atenţie unele caracteristici de simulare importante:
 Execuţia in vederea estimării unei mărimi dificil de
calculat exact (in 1733)
 Factorul aleator, ce face ca estimatorul sa nu fie exact

 Posibilitatea estimării erorii estimatorului

 Replicarea (mai mult=mai bine) pentru reducerea erorii

 Eşantionarea secvenţiala pentru controlul erorii – repetă


aruncarea pana când eroarea estimatorului este “destul de mica”
 Reducerea varianţei (“crucea Buffon” sau tehnica Fox)
 În esenţă, artificii ca rotirea mesei pe care este
aruncat acul pot elimina imperfecţiunea aruncărilor
Modelare și simulare
Curs, anul III Calculatoare

Fundamente matematice ale modelării.


Variabile aleatoare și distribuții.
Definiţii nonformale şi exemple
Def: Spaţiu de eşantionare (eng. sample space, not.S): o
mulţime în care fiecare element reprezintă “rezultatul”
unui “experiment”
Exemple:
 S = {Ban, Marca} in aruncarea unei monede
 S = {1, 2, …, 6} in aruncarea unui zar

Def.: Eveniment: un subset al spaţiului S


Exemple:
 Obţinerea valorii 3, dar și a unei valori din {2,3} (la zar)
 Obţinerea unei valori dintr-o submulţime a spaţiului
S=({Ban}, {1,2,3}) în cadrul unei aruncări simultane
Relaţii în mulţimea evenimentelor
Implicaţia evenimentelor: evenimentul A implica
evenimentul B (notam A → B sau A ⊂ B) daca atunci
când se produce A se produce in mod necesar şi B
Reuniunea evenimentelor A, B (notata A  B): este
evenimentul care se produce atunci când se produce cel
puţin unul dintre evenimentele A, B
Intersecţia evenimentelor A, B (notata A  B): este
evenimentul care se produce doar atunci când se produc
ambele evenimente A, B
Evenimente incompatibile: evenimentele care nu se
pot produce simultan
Evenimente contrare: producerea unuia înseamnă
nerealizarea celorlalte
Evenimente elementare
Def.: Evenimentul elementar este un element din mulţimea S
Evenimentele elementare se mai definesc ca rezultate cu
valori booleene ale unor probe (experimente)
Un experiment poate aduce:
 fie realizarea unui anumit eveniment
 fie nerealizarea sa
Există 2 evenimente speciale în mulţimea de evenimente
asociate unui experiment :
evenimentul sigur S = A  Ā
evenimentul imposibil  = A  Ā
 Evenimentele A şi B sunt mutual exclusive daca A  B = 
Distribuţia de probabilitate
Def.: Distribuţia de probabilitate Pr{} este o funcţie
definita pe evenimentele din S cu valori in R
Proprietăţi:

1. Pr{A} ≥ 0 pentru orice eveniment A


2. Pr{S} = 1
3. If A  B =  then Pr{AB} = Pr{A} + Pr{B}
else Pr{AB} = Pr{A} + Pr{B} – Pr{A  B}
Exemplul 1
Aruncarea a doua monede:

 Spaţiu de eşantionare: S = {BB, BM, MB, MM}

 Oricare eveniment elementar se produce cu


aceeaşi probabilitate: ¼ (ev. echiprobabile)

 Probabilitatea de a obţine cel puţin o data B:

Pr{BB, BM, MB} = Pr{BB} + Pr{BM} + Pr{MB} = ¾


Exemplul 2
Aruncarea a doua zaruri:
 Calculam probabilitatea de a da 4 sau duble
 Spaţiul de eşantionare S conţine 36 de evenimente
elementare posibile, echiprobabile (probabilitatea
fiecăruia fiind 1/36)
 Eveniment A: sa obţinem 4 (3 evenimente elementare)
 Eveniment B: sa dam duble (6 evenimente elementare)
 A  B: roll (2, 2)
Pr{4 ori duble} =
= Pr{4} + Pr{duble} – Pr{(2, 2)}
= 3/36 + 6/36 – 1/36
= 8/36
Definiţii formalizate
Sunt necesare operaţii ca:
 implicaţia & echivalenta evenimentelor
 reuniunea evenimentelor, 
 intersecţia evenimentelor, 
 complementaritatea evenimentelor, ¯
 incompatibilitatea evenimentelor
Mulţimea evenimentelor ataşate unui experiment
formează o algebră Boole în raport cu operaţiile
definite (,  şi ¯)
Câmp de evenimente
Fie S o mulţime de evenimente elementare, iar
B  P(S) un sistem de submulţimi ale lui S
Dacă:
1. S  B;
2. E1, E2  B  E1  E2  B; E1  E2  B; Ē1 B; Ē2 B
3. E1, E2,..., En,...  B  E1  E2  ...  En  ...  B;
E1  E2  ...  En  ...  B,
atunci B se numeşte câmp Borel de evenimente
Măsura de probabilitate
Definirea se face intr-un câmp borelian de evenimente şi
are la bază sistemul de axiome al lui Kolmogorov:
Axioma 1: Fiecărui eveniment elementar E din câmpul
de evenimente îi este ataşat un număr real nenegativ
numit probabilitatea lui E, notat P(E)
Axioma 2: Probabilitatea evenimentului sigur S este
1, P(S)=1
Axioma 3: Dacă evenimentele E1, E2,..., En sunt
incompatibile 2 câte 2, atunci P(E1  E2  ...  En) =
P(E1)+P(E2)+...+P(En).
Axioma de adunare extinsă: Dacă apariţia unui
eveniment E e echivalentă cu apariţia evenimentelor
E1, E2,..., En,... incompatibile 2 câte 2,
P(E)=P(E1)+P(E2)+...+P(En)+...
Distribuţie de probabilitate discreta
Def.: O distribuţie de probabilitate este discreta daca e definita
pe un spaţiu de eşantionare finit sau infinit numărabil
 Pentru orice eveniment A:
Pr{A} = Pr{s1} + Pr{s2} + … Pr{sn} = ΣsAPr{s}, si  A
Def.: O distribuţie de probabilitate este uniforma pe un spaţiu
finit S dacă Pr{s} = 1/n, unde n =|S|
 Pr{s} = 1/|S| pentru orice eveniment elementar s  S
Ex: Aruncarea unui zar netrucat:
 Fiecare față are probabilitatea de apariţie 1/6
Variabile aleatoare discrete
Def.: O variabila aleatoare (discreta) X e o functie definita pe un
spaţiu de eşantionare finit/ infinit numărabil cu valori reale
 Ea asociază orice rezultat posibil al unui experiment cu un număr
real cu semnificația de probabilitate (asocierea poate fi și inversă?)

Pentru o v.a. X şi un număr real x:

Def.: Evenimentul X = x = {s  S: X(s) = x}

Def.: f(x) = Pr{X=x} = Σ{sS: X(s) = x}Pr{s} se numeşte funcţia


densităţii de probabilitate a v.a. X
Exemplul 3
Aruncarea unei perechi de zaruri:
Spaţiul de eşantionare S are 36 evenimente elementare
posibile
Fiecare eveniment elementar sS este echiprobabil:
Pr{s} = 1/36
V.a. X = maximul celor doua valori
Probabilitatea ca maximul celor doua valori sa fie 3:
 X asignează valoarea 3 pentru 5 din cele 36 evenimente posibile:
(1, 3), (2, 3), (3, 3), (3, 2), (3, 1)
 Deci: Pr{X = 3} = 5/36
V.a. şi eşantion (discret)
Este o funcţie X : (Ω, B, P) → R, ce ia valori diferite în
cazul unor experimente efectuate în condiţii identice,
apariţia fiecărei valori fiind un eveniment incontrolabil
X(ω) e valoarea reală a variabilei aleatoare, ca funcţie de
experimentul sau eşantionul considerat, unde ω este
eşantionul (engl."sample").
O v.a. X=X(ω) determină o desfacere a evenimentului
total în evenimente incompatibile: intuitiv, pentru cazul
discretizării Ω luand k valori posibile ale variabilei X(ω),
notate x1, x2,..., xk, cu probabilităţile ataşate p1, p2,..., pk
(p1+p2+...+pk =1), variabila aleatoare e dată sub forma:
x1 x2 ... xk
X=
p1 p2 ... pk
Variabile aleatoare continue
Prin analogie valorile sunt funcţii continue, de ex. peste R
Probabilităţile apariţiei acestor valori sunt definite (daca
exista) de o funcţie f(x) definita pe întreaga dreapta reala
x2
P  x1  X  x 2   f ( x )dx , f ( x )  0 pt .x
x1

Pentru orice x1, x2 a.i. x1x2, X este o v.a. continua iar


f(x) se numeşte funcţia densităţii de probabilitate
Atât v.a.discrete cat şi v.a.continue pot fi dependente sau
independente
 In cazul a 2 v.a. independente, X şi Y, definite ca mai sus:
P(Xi ∩ Yj) = P(Xi)∙P(Yj)
Distribuţii (repartiţii) continue
Având in vedere “aspectul” v.a., se definesc:
Funcţia de distribuţie sau repartiţie (c.d.f) a unei
v.a. X:
F(x)=P(ω|X(ω)<x)
Densitatea de probabilitate (p.d.f.), pentru orice
A  R, prin:
P(xA)=∫A f(x)dx, sau f(x)=dF(x)/dx
dacă F este diferenţiabilă în x
Media, dispersia, alte momente
Media sau valoarea aşteptată a unei v.a. este:
 = E[X] = ∫- xdF(x) = ∫- xf(x)dx;
Momentul de ordinul k al v.a.:
E[Xk] = ∫- xkdF(x) = ∫- xkf(x)dx;
Dispersia (variabilitatea) v.a.:
σ2 = var(X) = E[(X-E[X])2] = E[X2]-(E[X])2.
Numita şi abatere medie pătratică, pentru un şir
xi cu n (nr. mare) valori, ea se calculează astfel :
2 2
1 n
2 1 n
 1  n
2 1 n
 

n i 1
xi  
 n i 1
xi  

 x i    x i  
n  1  i 1 n  i 1  
Aplicatie practica
Pentru 2 v.a. distribuite uniform:
1. Discretă pe intervalul [1,6] (aruncarea
zarului)
2. Continuă in intervalul [a,b]
se cere:
I. Calculul mediilor şi dispersiilor
II. Reprezentarea grafica a pdf şi cdf
Răspunsuri
I. 1.  = 7/2; σ2 = 35/12
2.  = (a+b)/2; σ2 = (b-a)2/12 ...
Teoreme importante:
Inegalitatea lui Cebîşev
Putem avea o imagine asupra repartiţiei prin
cunoaşterea mediei şi dispersiei
Inegalitatea lui Cebîşev arata cat de mari sunt
probabilităţile abaterilor de la medie:
2
P (| x   |  )  2

Se poate aplica atât v.a. discrete cat şi continue
Teoreme importante:
Legea numerelor mari
Bernoulli: Probabilitatea ca modulul diferenţei intre frecventa
relativa de aparitie a unui eveniment E şi probabilitatea p a
lui E sa fie mai mic decât un ε pozitiv, arbitrar de mic, este
≈1 pentru un nr. de experimente n suficient de mare
n1 1
P (|  p |  )  1  2
n 4 n
Cebîşev: Probabilitatea ca modulul diferenţei intre media
aritmetica A a valorilor medii a n v.a. i.i.d. şi media aritmetica
a uneia dintre v.a. să fie mai mica decât un ε pozitiv, arbitrar
de mic, este ≈1 pentru n suficient de mare
1 n b2
P (|  X i  A |  )  1  2
n i 1  n
Distribuţia binomiala (Bernoulli)
0.7
Se defineşte printr-
0.6
un experiment
0.5
Bernoulli, ce are
0.4

P(X=x)
doar doua valori: 0.3
 Succes/Esec (1/0) 0.2

0.1
P ( X  1)  p
0
0 1
P ( X  0)  1  p X

E[ X ]  p Var ( X )  p (1  p )
Distribuţia binomiala
0.3
Definita de numărul
de încercări reuşite
dintr-un total de n 0.2

P(X=x)
experimente Bernoulli
0.1
Sau ca suma a n
variabile aleatoare de
tip Bernoulli 0
0 1 2 3 4 5 6 7 8 9 10
X

f ( x)  P( X  x)  Cnx p x (1  p) n x E[ X ]  np
Var( X )  np(1  p)
Distribuţia binomiala negativa
Definita de numărul necesar de repetări ale unui
experiment Bernoulli pana la obţinerea de m ori
a unui eveniment legat de el (m reuşite)
Sau ca o suma infinita de variabile aleatoare de
tip Bernoulli, cu valori ce încep cu m, m+1, ...

f ( x )  P ( X  x )  C mm1x  1 p m (1  p ) x

E[ X ]  m(1  p) / p
Var( X )  m(1  p) / p 2
Distribuţia geometrica
0.7
Definita de numărul
0.6
de experimente 0.5

Bernoulli necesar 0.4

P(X=x)
pentru a obţine 0.3

primul succes 0.2

0.1

0
x1 0 1 2 3 4 5 6 7 8 9 10
f (x)  p (1 p) X

x 1 (1  p)
F(x) 1(1 p) E[ X ]  Var( X ) 
p p2
Distribuţia Poisson
Definită de probabilitatea 0.3

ca într-un dom. de timp/


spațiu de mărime fixă să 0.2

apară un nr. de evenim.

P(X=x)
aleatoare independente 0.1

între ele și a căror rată


de apariție e cunoscută
0
Se mai poate defini ca o 0 1 2 3 4 5
X
6 7 8 9 10

limită, când n→∞ şi p→0,


a distribuţiei binomiale:
x  x
  F ( x)  1  e
f ( x)  P ( X  x)  e
x!
E[ X ]   , Var ( X )  
Procese Poisson omogene
Daca numărul de evenimente apărute pana la
momentul t este distribuit Poisson cu rata t
 Numărul de evenimente apărute in intervale de timp
disjuncte este independent
 Timpii intre evenimente sunt independenţi şi identic
distribuiţi ca v.a. exponenţiale cu media 1/
 Un proces Poisson omogen este staţionar (distribuţia
nr. de evenimente depinde doar de lungimea
intervalului, nu şi de punctul sau de început)
Alte proprietăţi:
 Combinarea a 2 procese Poisson cu ratele  şi  da
un alt proces Poisson cu rata +
 Alegerea evenimentelor dintr-un proces Poisson cu
probabilitatea p da un proces Poisson cu rata p 
Procese de naştere şi moarte
Daca timpii intre evenimente sunt i.i.d. atunci
numărul de evenimente ce apar in timp
formează un proces “de naştere şi moarte”
 Un proces Poisson omogen este un proces de naştere
şi moarte cu timpii intre sosiri exponenţiali
 Majoritatea proceselor de sosire pot fi modelate
folosind procese de naştere şi moarte
 Uşor de utilizat deoarece timpii intre sosiri pot fi
obţinuţi prin eşantionare dintr-o distribuţie data
 Un proces de naştere şi moarte este staţionar
Procese de sosire nestaţionare
Evenimentele externe (inclusiv sosirile in sistem)
pot avea rate variabile in timp, de ex.
 Sosirile la un restaurant fast-food in jurul prânzului
 Traficul in “rush-hour” in oraşe sau pe autostrăzi
 Cererile sezoniere pentru un produs
Caracterul de nestaţionaritate al sosirii trebuie
păstrat in model – acest lucru este critic pentru
validitatea modelului
Modelul adecvat este cel al unui proces Poisson
neomogen

28
Distribuţia exponenţială
Modelează: 0.5

 Timpii intre sosiri, 0.4

când sosirile sunt 0.3

f(x)
complet aleatoare 0.2

 Timpii de servire ce
0.1
prezintă o mare
variabilitate 0
0 2 4 6 8 10

Este o distribuţie X

“fără memorie”: 1 x /
f (x)  e
f ( x  y | X  y )  f ( x) 
2
E[ X ]   , Var ( X )  
Distribuţia normala
Descrisă de următoarele 0.45

proprietăţi:
0.3
 Limitele pdf la -∞ şi +∞

f(x)
sunt 0
 Valoarea maxima a pdf 0.15

este atinsa când X=μ


 Graficul pdf este simetric 0
0 2 4 6 8 10

după μ X

Distribuţia mediei unui sir 1 


1
2
 x   2
2
de v.a. i.i.d. este normala f ( x)  e
2 2
Pentru =0: distribuţia
normala standard
E[ X ]   Var ( X )   2
Distribuţia log-normala (Weibull)
V.a. ln(X) este 0.4

distribuita normal 0.3

Se utilizează in

f(x)
0.2

modelarea mărimilor
ce reprezintă 0.1

produse ale unui 0

număr mare de 0 1 2
X
3 4 5

mărimi aleatoare
1  (ln( x )   ) 2 / 2  2
f ( x)  e
 x 2
  2 / 2 2   2 2
E[ X ]  e Var ( X )  e (e  1)
Distribuţia uniformă
Utilizată in situaţii cu
date echiprobabile pe
un interval

 1
 axb
f ( x)   b  a
0 0 a b
 altfel

E [ X ]  ( a  b) / 2 Var ( X )  (b  a )2 / 12
Distribuţia triangulară
Utilizata in situaţii cu 0.3

date puţine sau lipsa


 Se obţine pe baza a 2 0.2

distribuţii uniforme

f(x)
 Sunt necesare doar 0.1

minimul, maximul şi
c.m.probabilă valoare
0
0 1 2 3 4 5 6 7 8 9 10
2( x  a ) X
f ( x)  , axm
( m  a )(b  a )
2 (b  x ) E [ X ]  ( a  b) / 2
 , m xb
(b  m )(b  a )
Var ( X )  (b  a )2 / 12
 0, altfel
Cititi suplimentar!
Alte distribuții. Relații între distribuții
Lognormal Normal Chi-Squared
Distribution Distribution Distribution

Weibull Exponential Gamma


Distribution Distribution Distribution

Extreme-Value Erlang
Distribution Distribution
Aplicație (verif. practică)
Instalati pe calculatorul personal sau in laborator
pachetul utilitar Analysis ToolPak din Excel
 Dupa instalare, comanda Data Analysis trebuie sa fie
disponibila in Excel in grupul Analysis sub tab-ul Data
Folositi aceasta comanda si/ sau alte functii Excel
pentru a genera multiple esantioane de numere
aleatoare cu diferite distributii
Reprezentati grafic distributiile obtinute
Calculati momentele (statisticile) semnificative
pentru esantioanele generate; comparati-le cu
cele teoretice
Modelare și simulare
Curs, anul III Calculatoare

Modele pentru sisteme (dinamice) cu


evenimente discrete
Sumar
Terminologie şi concepte de bază
Tipuri de modele. Modele bazate pe stare
Automate cu stări finite
Reţele Petri “clasice”. Descrieri
Modelarea conceptelor dinamice
Modele şi limbaje. Exemple de modelare
Modele bazate pe urme. Nivele de studiu
Alte tipuri de modele şi clasificări
Terminologie şi concepte de bază
Sistem - o colecţie de entităţi in interacţiune
Model - o reprezentare abstractă a sistemului
Entitate - componentă a sistemului cu reprezentare explicită
in model (obiect de interes in sistem)
Atribut - o proprietate a unei entităţi
Set - colecţie de entităţi asociate, permanent sau temporar
Eveniment - o apariţie instantanee ce schimbă starea
sistemului
Activitate - o perioadă de timp de durată cunoscuta la
începutul ei
Întârziere - o perioadă de timp nespecificată ca durată/ de
durată necunoscută până la terminarea ei
Concept cheie: “Eveniment”
Este un rezultat brusc al îndeplinirii simultane a
mai multor condiţii
Poate fi:
 Endogen: apărut in interiorul sistemului
 Exogen: apărut in mediul extern, dar care afectează
sistemul
Intr-o alta perspectiva:
 evenimentul este rezultatul unui “proces-eveniment”,
doar acesta determinând timpul apariţiei sale
 tranziţiile de stare rezulta prin combinarea proceselor
eveniment, asincrone si concurente
Dinamica de sistem si model
Evoluţia in timp a SDED depinde de interacţiunea
complexa a momentelor de apariţie a diferitelor
tipuri de evenimente
Dinamica SDED este determinata de interacţiunile
complexe ale sincronizării evenimentelor discrete
asociate cu activităţile/resursele
 Dinamica modelului trebuie sa o reflecte pe cea a
sistemului de baza
 DAR poate fi ameliorata prin unele metode
Complexitatea
Implică dificultatea descrierii unui SDED
Complexitatea crescută a sistemului rezultă din:
 Capacitatea crescută (numărul mare de componente)
 Sisteme simple: aparate electrocasnice, linii de fabricaţie →
un model programat poate avea sute sau mii de linii de cod
 Aplicaţii complexe: calculatoare, reţele de calcul sau de
comunicaţie → modelele au sute de mii de linii de cod
 DAR şi din interacţiunea complexă a momentelor de
apariţie a diferitelor tipuri de evenimente
Metode de descriere
Posibil ca “funcţionarea” dorită a modelului să
nu poată fi obţinută fiindcă nu descriem complet
(uneori nici corect) funcţionarea sistemului
 Datorită descrierilor incomplete sau eronate pot să
apară și erori de implementare
Metoda empirică: utilizarea unui limbaj natural
 Descrierea precisă a sistemului este foarte dificilă
Metoda recomandată: utilizarea de formalisme
şi modele computaţionale
 Sunt precise, neambigue
 Pun la dispoziţie un set de obiecte şi reguli pentru
compunerea obiectelor
Tipuri de modele

 Modele bazate pe stare


 Modele bazate pe urme
 Modele orientate pe activitate
 Modele orientate pe structură
 Modele orientate pe date
 Modele eterogene
Modelele bazate pe stare
Reprezintă sistemul ca un set de stări şi un set
de tranziţii între stări – o tranziţie e determinată
de evenimente externe
Categorii:
 Automate cu stări finite
 Automate cu stări finite şi căi de date
 Automat cu stări finite ierarhice concurente
 Reţele Petri
Se utilizează pentru sisteme de control:
 monitorizarea unor intrări de control;
 setarea unor ieşiri de control
Automate cu stări finite (ASF)
Un set de stări ale sistemului
Un set de tranziţii posibile între stări
(evenimente)
Un set de acţiuni asociate cu stările/ tranziţiile
<S, I, O, f, h, s0>
S = {s0, s1, …, sl} setul de stări
I = {i0, i1, …, im} setul de intrări
O = {o0, o1, …, on} setul de ieşiri (acţiuni)
f – funcţia stării următoare, f : S x I → S
h – funcţia de ieşire, h :S x I →O sau h :S →O
s0 – starea iniţială
Tipuri de ASF (1)
Maşina Mealy (bazată pe tranziţii)
h:SxI→O
Ex. Controler de ascensor într-o clădire cu 3 etaje
I = {r1, r2, r3}  etajul cerut
O = {d1, d2, n, u1, u2}
 direcţia şi nr. de etaje
cu care trebuie să se
deplaseze ascensorul
Tipuri de ASF (2)
Maşina Moore (bazată pe stări)
h:S →O

Ex.
Critica modelelor ASF
Maşina Moore necesită un nr. mai mare de stări
decât maşina Mealy
 Justificare: fiecare valoare de ieşire necesită propria
stare (pot exista arce multiple ce indica aceeasi stare)
Modelele ASF sunt teoretice si idealizate
 Spaţiul si timpul sunt modelate si referite absolut
 Procesele lucrează sincron* - se pot utiliza pentru
sisteme la care predomină partea de control
Nu permit descrierea sistemelor complexe
 apare fenomenul de “explozie a stărilor”
ASF sunt modele “slabe” dpdv computational**
Reţele Petri “clasice” (C/E)
Model orientat pe stare, ce extinde modelele de tipul AF
pentru a permite modelarea dinamicii asincrone a unui
sistem (inclusiv concurenta, comunicaţie etc.)
Elemente: locaţii, conţin simboluri ce s.n. jetoane (0/ 1),
si tranziţii, plus arce ce leagă elemente de tip diferit
 in RP C/E poate exista cel mult un arc intre 2 noduri
Terminologie
 Sistem C/E: reţea C/E + marcaj
 Configuraţii: marcajele posibile ale unei reţele C/E
 Cazuri: configuraţiile accesibile din marcajul iniţial (case graph)
In anii ’60 -’70, accentul principal s-a pus pe dezvoltări
teoretice; din anii ’80 se insista pe instrumente şi aplicaţii
Descrieri
Grafice (grafuri bipartite) şi matematice, cu semantică
formală şi posibilităţi de analiză
Caracteristici importante: stări distribuite şi tranziţii
locale
Exemplu: RP = <P, T, Pre, Post, M>
P = {l0, l1, …, lm} setul poziţiilor (locaţiilor)
T = {t0, t1, …, tn} setul tranziţiilor
Pre : T → L+, funcţia de intrare, ce defineşte locaţiile care
furnizează intrări unei tranziţii
Post : T → L+, funcţia de ieşire, defineşte locaţiile de ieşire
pentru fiecare tranziţie
M : L → {0,1}, funcţia de marcaj, defineşte numărul de simboluri
din fiecare locaţie
Condiţii şi resurse
Reţelele de tip C/E modelează fluxurile de informaţii, la
nivel fundamental (true/false)
Aplicaţii: cele in care fluxul de resurse si/sau numarul de
resurse disponibile este important (document workflow,
data flow, linii de fabricaţie, reţele de comunicaţie, www)
Reţelele de tip P/T reprezintă o
generalizare (extensie) imediata:
 Elementele de stare sunt echivalente locaţiilor 2
unde sunt stocate resurse (jetoanele)
 Elementele de acţiune sunt reprezentate de 3
tranziţiile locale sau transportul resurselor
 Poate fi aplicata o descriere matematica
similara cu cea a RP C/E
Exemplu RP: O reţea PT (1)
p1

p2 t2 t3 p4
p3

t1
t6

p8

p5

p5 t4 p6 t5 p7
Exemplu RP (2)
p1

1 0 0 0 0 0 p1
p2 t2 p4 0 1 0 0 0 0 p2
p3 t3
0 0 1 0 0 0 p3
0 0 0 0 0 1 p4
t1 Pre 
t6 0 0 0 1 0 0 p5
0 0 0 0 1 0 p6
p8
0 0 0 0 0 1 p7
 0 1 0 1 0 0  p8
p5 t1 t2 t3 t4 t5 t6

p5 t4 p6 t5 p7
0 0 0 0 0 1 p1
- 1 0 0 0 0 1 1 0 0 0 0 0 p2
-
 1 1 0 0 0 0 0 1 0 0 0 0 p3
Matricea de incidenţă  0 1 - 1 0 0 0 0 0 1 0 0 0 p4
Post 

I  Post - Pre   0 0 1 0 0 - 1 1 0 0 0 0 0 p5
1 0 0 - 1 0 0 0 0 0 1 0 0 p6
 0 0 0 1 - 1 0 0 0 0 0 1 0 p7
 0 0 0 0 1 - 1  0 0 1 0 1 0  p8
 0 - 1 1 - 1 1 0
t1 t2 t3 t4 t5 t6
Exemplu RP (3)
p1
p2 t2 p4 M (p )
p3 t3 1 4 4
M ( p )
2 1  0 
t6 M ( p )
t1 p8 3 0  1 
p5 p7 M ( p ) 0  0 
M   4
  M 
p5 M (p ) 0  0 
 5 
t4 p6 t5 M (p ) 0  0 
 6 
1  1 
t2 este validata si se declanseaza M (p )
7 
 1   0 
 M ( p )
8 

p2 p1 p4
t2 p3 t3 M '  M - Pre ( , t )  Post ( , t )
t6  M  C ( , t )
t1 p8
p5 p7

p5
t4 p6 t5
O alta definiţie formală (pt. reţele PT)
O reţea PT poate fi mai întâi definită structural, de ex.
prin 5-tuplul: (P, T, A, C, w), unde
 P este o mulţime finită de poziţii (locaţii)
 T este un set finit de tranziţii
 A este o mulţime de arce, o submulţime a mulţimii
(PT)(TP)
 C: P  (N  {}) \{0} este o funcţie de capacitate a
poziţiilor (capacitatea unei poziţii e implicit nelimitată)
 w e funcţia de ponderare aplicată arcelor, w:A{1,2,3 ...}
(ponderea unui arc se consideră implicit unitară)
Prin M0: P  N   notăm funcţia numită marcaj iniţial
Definiţia dinamică a reţelei PT constă în evidenţierea
modalităţilor (legilor) de evoluţie a marcajului iniţial
Modelarea conceptelor dinamice in RP (2)

(a) secvenţiere; (b) ramificaţie; (c) sincronizare;


(d) conflict la resurse; (e) concurenţă
Concluzii (modelare cu reţele Petri elem.)
Se poate utiliza pentru a testa şi valida anumite
proprietăţi utile ale sistemelor
 Siguranţa: este garantată prin faptul că numărul de
simboluri nu creşte nedefinit
 Funcţionalitatea: este garantată prin lipsa blocajelor
→ va exista întotdeauna cel puţin o tranziţie care
poate fi declanşată
Avantaj: modelarea sistemelor concurente
Dezavantaj: nu este utilă pentru sisteme
complexe
Exemplu ASF/ RP
Automat de distribuţie (vânzare):
 Distribuie 2 tipuri de batoane, de 20 bani si 15 bani
 Se pot folosi doar 2 tipuri de monede, de 10 b si 5b
 Nu returnează rest
Modelarea:
 Se realizează diagrama de tranziţie a stărilor
 Se obţin apoi modelele cu ASF si RP
Modelul ASF
vânzare baton 15b

10
5 15
5

5 5
0 5

10
10 20
10

vânzare baton 20b


Modelul cu RP ordinară (maşină de stare)
vânzare baton 15b

10
5

5 5

10
10

vânzare baton 20b


Automate cu stări finite şi căi de date
Extind modelul ASF cu tipuri de date complexe/ variabile
 Modelul ASF utilizează numai tipuri de date şi operaţii booleene
Permit astfel reducerea numărului de stări
Descriere: ASFD = <S, I, O, V, f, h, s0>
 V = {v0, v1, …, vn} setul variabilelor
 f – funcţia stării următoare, f : S x I x V → S
 h – funcţia de acţiune, h : S → O + V (Moore)
 I, O şi V pot conţine tipuri de date complexe, ca şi limbajele de
programare
 f şi h pot conţine operaţii aritmetice
 h descrie şi actualizarea variabilelor
ASFD – Exemplu (controler ascensor)

ASFD se pot utiliza şi pentru sisteme (predominant) de


control, şi pentru cele la care predomină partea de calcul
Totuşi, niciunul dintre modelele ASF si ASFD nu este
adecvat pentru sistemele complexe, deoarece ele nu
permit reprezentarea explicită a concurenţei şi a ierarhiei
Automate cu stări finite ierarhice
concurente (ASFIC)
ASFIC reprezintă o extensie a ASF, ce permite:
 Construcţia ierarhica a modelelor
 Reprezentarea concurenţei
 Descrierea modelelor intr-un limbaj grafic (statecharts)
Idei:
 Se pot grupa într-o nouă stare ierarhică mai multe stări
 Fiecare stare poate fi descompusa intr-un set de
(sub)stări
Două metode de descompunere
 SAU: o stare este descompusă în (sub)stări secvenţiale
 ŞI: stările se pot executa concurent
Ierarhizarea stărilor
Tranziţiile pot fi structurate sau nestructurate
Tranziţiile structurate sunt permise între stări cu acelaşi nivel ierarhic
Tranziţiile nestructurate pot apărea între 2 stări oarecare

Fără ierarhie Cu ierarhie

A
A1 z A1 z

x y w x y
B w B

z A2
A2

Stările A1 şi A2 au fost grupate în starea ierarhică A


Tranziţia în starea B la evenimentul z se realizează din starea
A, nu A1 sau A2
Concurenţa
Fiecare stare se execută prin mai multe sub-stări concurente
Comunicaţia se realizează prin variabile globale
Două sau mai multe stări concurente pot fi grupate într-o
nouă stare ierarhică Concurenţă

C D

C1 D1

x y u v

C2 D2

Starea B a fost descompusă în stările concurente C şi D


Stările C şi D sunt descompuse fiecare în două stări ierarhice
Statecharts
Limbaj grafic ce permite ierarhia, concurenţa şi comunicaţia
între stările concurente; utilizează tranziţii nestructurate

Starea Y este descompusă în două stări concurente, A şi D; prima constă


din două substări B şi C, iar a doua cuprinde substările E, F şi G.
Dacă apare evenimentul b în timpul stării C, are loc transferul în starea B.
Dacă apare evenimentul a în timpul stării B, are loc transferul în starea C,
dar numai dacă este îndeplinită condiţia P în momentul apariţiei evenim.
În timpul transferului din starea B în starea C, se va executa acţiunea c,
care este asociată cu această tranziţie.
Exemplu: UML

Diagrama de stări în UML reprezentând tastatura unui


computer (ASF cu stări ierarhice și regiuni ortogonale)
Modele şi limbaje
Un model computaţional: descrie funcţionalitatea
dorită a sistemului → noţiune conceptuală
Limbajul: descrie modelul sub o formă concretă
Un model poate fi descris într-o varietate de
limbaje
 Exemplu: model al programului secvenţial → C,
C++, Java
Un limbaj poate descrie o varietate de modele
 Exemplu: C++ → model obiectual, model al
programului secvenţial, automat de stare
Exemplu
Controler inteligent pentru un ascensor
 Specificaţie modificată:
“Deplasează ascensorul în sus sau în jos până la
etajul cerut. La etajul cerut, deschide uşa pentru cel
puţin 10 secunde şi păstrează uşa deschisă până
când etajul cerut se modifică. Păstrează uşa închisă
în timpul deplasării. Schimbă direcţia doar dacă nu
sunt cereri la etaje superioare în timpul deplasării în
sus sau dacă nu sunt cereri la etaje inferioare în
timpul deplasării în jos…”
Interfaţa sistem
up

UnitControl
down
open
Două blocuri:
floor  RezCereri
rezolvă diferitele
req

...
b1
b2
butoane în
interiorul
cereri de etaje într-un
bN
up1
ascensorului
singur etaj cerut
UnitControl
RezCereri dn1
butoane 
up2
up/down la
deplasează ascensorul
dn2
up3 fiecare etaj

la etajul cerut
dn3
...
dnN
Descrierea unităţii de control
Inputs: int floor; bit b1..bN; up1..upN-1; dn2..dnN;
Outputs: bit up, down, open;
Global variables: int req;
void UnitControl() {
up = down = 0; open = 1;
while (1) {
while (req == floor);
open = 0;
if (req > floor) { up = 1;}
else {down = 1;}
while (req != floor);
up = down = 0;
open = 1;
delay(10);
}
}
Modelul ASF pentru UnitControl
req > floor

u,d,o, t = 1,0,0,0 GoingUp


!(req > floor) timer < 10
req > floor

!(timer < 10)


u,d,o,t = 0,0,1,0 Idle DoorOpen u,d,o,t = 0,0,1,1

req == floor
req < floor
!(req < floor)

GoingDn
u,d,o,t = 0,1,0,0

u: up; d: down; o: open; t: timer_start


req < floor
Modelul ASFIC (1)
Modificarea controlerului pentru ascensor
 Intrarea fire → trecerea în modul de incendiu
 Deplasarea ascensorului la primul nivel şi deschiderea uşii
Fără ierarhie

req>floor UnitControl

u,d,o = 1,0,0 GoingUp


!(req>floor)
req>floor

u,d,o = 0,0,1 timeout(10)


Idle DoorOpen u,d,o = 0,0,1
req==floor
fire
!(req<floor) fire
req<floor
fire
FireGoingDn u,d,o = 0,1,0
u,d,o = 0,1,0 GoingDn
fire
floor==1 u,d,o = 0,0,1

floor>1 FireDrOpen
req<floor

!fire fire
Modelul ASFIC (2)
Cu ierarhie

UnitControl

req>floor
ModNormal

u,d,o = 1,0,0 GoingUp


!(req>floor)
req>floor

u,d,o = 0,0,1 Idle DoorOpen u,d,o = 0,0,1


timeout(10)
req==floor
req<floor !(req>floor)

u,d,o = 0,1,0 GoingDn

req<floor

fire ModIncendiu
FireGoingDn u,d,o = 0,1,0
!fire
floor==1 u,d,o = 0,0,1
floor>1 FireDrOpen

fire
Modelul ASFIC (3)
Controlerul pentru ascensor reprezentat prin modelul
ASFIC cu două stări concurente
Cu starea concurentă RezCereri

ControlerAscensor

UnitControl RezCereri

ModNormal

...
!fire fire

ModIncendiu
Modele bazate pe urme
Comportarea SDED este in mod natural
descrisa de înregistrarea sau urma “lăsată” de
apariţia unor schimbări discrete, calitative, in
sistem
Micro-schimbările continue, cantitative pot fi pur
si simplu ignorate
In afara modelelor bazate pe stare, modelele
bazate pe urme, studiate la diferite nivele,
sunt foarte utile
Nivele de studiu/ modelare (1)
Nivelul logic – “urma” este secvenţa de
evenimente, in ordinea aparitiei lor
s = e1 e2 e3 ...;
Exemple:
 reţelele Petri (“cazuri” = urme)
 maşinile cu stări finite (Wonham)
 procesele recursive finite (Inan-Varaiya)
 procesele secvenţiale comunicante (Hoare)
Nivele de studiu/ modelare (2)
Nivelul temporal - urma este secventa de
perechi
s = (e1,t1) (e2,t2) (e3,t3) ...
Exemple:
 reţele Petri temporale
 modele algebrice min-max
 grafuri data-flow
Nivele de studiu/ modelare (3)
Nivelul statistic - comportarea sistemului e
descrisa de secvenţa perechilor de v.a.
s = (e1,t1) (e2,t2) (e3,t3) ...
(unde ei si ti sunt v.a. si pentru orice realizare ω, s(ω)
= (e1(ω),t1(ω)) (e2(ω),t2(ω)) (e3(ω),t3(ω)) ... este o
urma descrisa la nivel temporal)
Exemple:
Lanţurile Markov
Sistemele cu cozi de aşteptare si reţelele de cozi
Modelele de simulare - având la baza procesele semi-
Markov generalizate (GSMP)
Alte tipuri de modele (1)
Modele orientate pe activitate
 Descriu sistemul ca un set de activităţi
 Activităţile sunt asociate prin dependenţe de
date sau de execuţie
 Exemplu: graf al fluxului de date
 Se utilizeaza pentru sisteme dominate de date
 Transformă şiruri de date de intrare în şiruri de
date de ieşire → sisteme DSP
Alte tipuri de modele (2)
Modele orientate pe date
 Reprezintă sistemul ca o colecţie de date
asociate prin atribute, apartenenţă la clase
etc.
 Utilizate mai ales pentru sisteme de programe
 Exemplu: diagramele E/R (entitate – relaţie)

<fig>
Alte tipuri de modele (3)
Modele orientate pe structură
 Descriu modulele fizice ale sistemului şi
interconexiunile dintre acestea
 Nu reprezintă funcţionarea sistemului
 Exemplu: schemă-bloc
Modele eterogene
 Integrează caracteristici ale mai multor
modele
 Exemplu: graf al fluxului de control/date
Alte clasificări
Modele analitice (teoretice)
 sistemice, in general deterministe , descrierea se
face la nivel logic sau temporal
 operaţionale, in general probabilistice (statistice)
Modele de simulare
 derivate din modelele operaţionale
 adecvate pentru analiza asistata de calculator
Pentru modelarea SDED la nivel statistic (cea mai
completa) se pot folosi in tandem:
 modele operaţionale + modele de simulare
Utilizarea modelelor statistice
Modelele operaţionale - se pot folosi in cazurile când
putem obţine prin calcul formule/ rezultate exacte (având
modalităţi de a simplifica problemele computaţionale)
 Exemple: sisteme cu cozi de aşteptare, reţele de cozi
 Limitare: cozi simple
reţele de cozi factorizabile
Modelele de simulare - oferă un instrument complet ce
aproximează dinamica sistemului prin oferirea de ipostaze
non-continue incrementale
 Pro:
Dinamica originala a SDED este de acest tip!
 Contra:
Dificultăţi computaţionale (există soluţii!)
Modelare și simulare
Curs, anul III Calculatoare

Modelarea logică şi controlul


supervizor al sistemelor dinamice cu
evenimente discrete
Sumar
Modelare şi control cu automate finite
Limbaje formale şi expresii regulate
Obţinerea modelelor ASF. Echivalenţa
stărilor
Controlul supervizor: descrierea problemei
şi implementărilor
Studiu de caz: Controlul supervizor al unei
reţele de calculatoare conectate liniar
Modelare şi control
Alegerea unui model pp. un compromis între:
 Puterea de modelare (generalitatea)
 reţelele Petri includ strict clasa automatelor finite şi sunt la
rândul lor strict incluse în clasa algebrelor procesuale
 Complexitatea modelului
 aceasta implică şi complexitatea controlului

De exemplu, o problemă de control poate fi:


 Indecidabilă (nu există un algoritm finit de rezolvare),
pentru un model cu RP sau algebre procesuale
 Rezolvabilă, în cazul modelării SED cu automate de
stare finite (ASF), ce facilitează sinteza unui controler
Modele ASF pentru control
Modelul ASF este un model formal bazat pe stare,
ce consideră explicit stările unui sistem
 Poate apare explozia stărilor (multiplicarea stărilor,
exponenţial, cu depăşirea unui prag de complexitate)!
 De aceea, majoritatea modelelor SED nu consideră
explicit toate stările - abordare incompletă ce poate
oferi doar observarea unui sistem, nu şi controlul !
ASF au o aplicabilitate foarte largă, caracterizată
de generalitate, putere analitică şi controlabilitate
 Cea mai cunoscută aplicaţie: în teoria compilării, la
recunoaşterea limbajelor regulate
Modelarea SED cu ASF
În cazul ASF, orice ar putea fi necesar despre contextul
unui simbol procesat la intrare trebuie memorat în
informația de stare
! Ideea utilizării ASF în modelarea logică a SED:
orice SED este “un generator de limbaj”
Are un “alfabet” de evenimente asociat (E) şi generează o
urmă sau traiectorie (din E*)
SED “generează” deci secvenţe de evenimente (cf. unui
set de reguli - analogie cu generarea şirurilor de atomi
lexicali în limbajele regulate), ce pot fi recunoscute
Generarea/ recunoașterea se bazează pe reguli (producții)
ce permit doar un simbol “neterminal” la stânga și unul
sau două simboluri (“terminal” + “neterminal” ) la dreapta
Limbaje formale
Definiţie. Un limbaj formal L, definit peste un alfabet
(mulţime) de simboluri E, este o mulţime (ce poate fi
infinită) de şiruri (uzual finite) formate cu simboluri din E
 Lungimea unui şir este dată de numărul de simboluri alăturate
(concatenate) pentru formarea sa
 Şirul vid, notat , ce nu conţine nici un simbol, este considerat
prin convenţie de lungime 0
Dacă evenimentele se consideră ca simboluri din E
 “Limbajul” poate fi gândit ca o modalitate formală de a descrie
comportarea unui SED, ce specifică toate secvenţele admisibile
de evenimente pe care ASF acceptor e capabil să le “execute”
 O dificultate: simple reprezentări finite ale limbajului nu sunt
întotdeauna şi lucrative → sunt necesare modalităţi (expresii)
compacte în definiţia sa, manipulabile prin operaţii bine definite
Expresii regulate
O expresie regulată (numită și expresie rațională) este,
în informatica teoretică și în teoria limbajelor formale, un
șir de caractere care definesc un șablon de căutare
De obicei, acest șablon e apoi utilizat de către algoritmii
de căutare pe șiruri pentru operațiuni de „căutare” sau
„căutare și înlocuire” - operațiuni pe șiruri de caractere
Fiecare caracter dintr-o expresie regulată (ce descrie
șablonul) este considerat a fi un metacaracter (caracter
cu semnificație specială), sau un caracter obișnuit
Împreună, metacaracterele și caracterele literale pot fi
utilizate ca să identifice materialul textual pe un anumit
șablon, sau ca să prelucreze o serie de instanțe ale sale
Potrivirile pot varia de la egalitate precisă la o asemănare
foarte generală (controlată de metacaractere).
Formalismul expresiilor regulate
Definiţie. O expresie regulată (regex) R este un
şir de simboluri construit pe baza alfabetului lim-
bajului (inclusiv şirul vid), folosind doar operaţiile
uzuale cu mulţimi (, , , etc.) și operaţiile de
concatenare şi închidere (Kleene), definite astfel:
 (concatenare) dacă A, B sunt expresii regulate peste E,
atunci AB={cc=ab, aA, bB} e o expresie regulată
peste alfabetul E
 (închidere) dacă A este expresie regulată peste E,
atunci şi A* = A0 A1 ... An-1An... este o
expresie regulată, unde A0={} şi An=AAn-1, n>0
Limbaje regulate
Definiţie. Un limbaj care admite doar expresii
regulate se numeşte limbaj regulat
 Dacă IE* este un limbaj regulat, se defineşte închiderea lui I,
notată Ī, ca mulţimea tuturor şirurilor ce reprezintă prefixe de
şiruri din I, adică: Ī = {s sE* şi tE* a.î. st I }
 Dacă limbajul e identic cu închiderea sa, el s.n.închis (prin prefix)
Avantajul utilizării expresiilor regulate în descrierea
limbajelor este acela că asigură o reprezentare compactă
finită, chiar pentru limbaje potenţial infinite (cu număr
infinit de şiruri de simboluri)
Teorema lui Kleene.
Dacă un limbaj este regulat, există un ASF ce-l generează
Orice limbaj generat de un ASF este regulat
Exemplu

Recunoașterea unei ER folosind generarea sa de către un


ASF. Orice expresie regulată E poate fi recunoscută de un
automat finit care recunoaşte orice cuvânt din limbajul
descris de E, şi doar acele cuvinte. Starea 1 este starea
iniţială, iar stările 1 şi 2 sunt stări finale
Execuţia ASF când la intrare este prezentat cuvântul ''abbab''. Pentru
că după terminarea procesării şirului automatul nu este într-o stare
finală, rezultă că acest cuvânt nu e descris de expresia regulată
Modelul Ramadge-Wonham
Un SED este asimilat unui limbaj formal (regulat) – sau,
mai concret, unui automat generator al acestui limbaj 
dar ce fel de automat? ASF
 Pentru că ASF generează expresii (deci limbaje) regulate
Definiţia 2.2.3. Un automat (generator) este un 5-tuplu
G = (X, E, f, x0, Xm)
caracterizat de:
 X - mulţimea stărilor

 E - alfabetul (mulţimea) de simboluri (evenimente)

 f :EXX - funcţia de tranziţie - funcţie parţială, în sensul că


pentru o stare x fixată, f(e,x)=f(e) este definită doar pentru o
anumită submulţime (x)E, ce depinde de x
 x0 – starea iniţială;

 Xm - mulţimea stărilor marcate (se preferă această denumire în


locul celei consacrate ce face referire la aceste stări ca stări finale)
ASF generator
Modelul generator pleacă din starea iniţială x0 şi execută
tranziţii de stare determinate de secvenţa de evenimente
Evenimentele apărute sunt considerate spontane (nu apar
mecanisme de constrângere care să forţeze apariţia lor în
sistem), asincrone (fără referire la vreun ceas de timp) şi
instantanee (fără durată temporală)
Modelul este unul logic ce poate îngloba nedeterminismul:
mai mult de un eveniment poate fi executabil (validat
pentru selecţie) într-o anumită stare
 Putem adăuga la model o mulţime de evenimente valide în starea
x, (x), dacă ea depinde de stare şi este (în general) diferită de E
 Nu vom face distincţie între ASF deterministe şi nedeterministe;
definiţia ultimei categorii comportă o singură modificare, a funcţiei
de tranziţie a stărilor: f :EX2X, unde 2X e mulţimea părţilor lui X
 Deşi, aparent, ASF nedeterministe pot genera un set extins de
limbaje, de fapt orice limbaj generat de acesta poate fi generat de
un ASF determinist
Funcţia de tranziţie extinsă
Notăm E* mulţimea tuturor şirurilor finite de evenimente
din E, ce include şirul vid, notat 
Putem construi funcţia de tranziţie extinsă, f :E*XX
definită prin f(,x)=x şi f(es,x)=f(e,f(s,x)), xX unde f
este definită
 Funcţia de tranziţie extinsă este tot o funcţie parţială, adică pentru
o anumită stare x fixată f(s)= =f(s,x) este definită doar pentru o
anumită submulţime de secvenţe E*(x)E* ce depinde de x
Trebuie să facem distincţie între:
 mulţimea tuturor secvenţelor finite de evenimente ce pot apărea
 mulţimea tuturor secvenţelor finite de evenimente observabile (de
ex. pentru că ele corespund execuţiei unor procese complete)
Este convenabilă de asemenea eliminarea din model a
stărilor ce nu pot fi atinse
Limbaje generate de ASF
În evoluţia sa, SED defineşte:
 un limbaj (închis prin prefix) L(G)={sE*f(s,x0) definită}
 un limbaj marcat Lm(G)={sL(G)f(s,x0)  Xm }
(interpretarea este cea de mai sus, ca mulţime a secvenţelor
finite de evenimente ce pot apărea, respectiv ca mulţime a
tuturor secvenţelor finite de evenimente ce pot fi observate)
Definirea componentelor accesibile se face astfel:
 Xac = {xsE* a.î. f(s,x0)=x}
 Xacm = Xac  Xm

 Fac = f EXac
 Gac = (Xac, E, Fac, x0, Xacm)

SED s.n. accesibil dacă G = Gac şi co-accesibil dacă orice


şir (parţial) de evenimente din L(G) se poate completa la
un şir din Lm(G): sL(G), tLm(G) a.î. stLm(G).
Echivalenţa stărilor
Bazate pe o descriere la nivel logic a unui SED, se pot
găsi mai multe modele ASF
 Aparent, ele sunt distincte deoarece au o dimensionalitate diferită
a spaţiului stărilor
 De dorit este obţinerea celui cu număr minim de stări, având în
vedere şi explozia spaţiului stărilor, semnalată anterior
Reducerea (agregarea) spaţiului stărilor se bazează pe
echivalenţa stărilor, a cărei definiţie (cea considerată aici)
are în vedere o raportare la stările marcate
Definiţia 2.2.4. Fiind dat ASF: (X, E, f, x0, Xm, ), dacă
X este spaţiul stărilor, RX e un spaţiu de stări echivalent
cu X, relativ la Xm, dacă x,yR stări distincte şi orice şir
u, f(x,u)Xm d.d. f(y,u)Xm
 Altfel spus: orice şir comun aplicat stărilor x şi y conduce la
acelaşi set de stări marcate
 Distincţia între x şi y e imposibil de făcut prin observaţia pasivă a
sistemului, iar x şi y pot fi tratate ca o unică stare “agregată”
Controlul supervizor: Problema
Evoluţia SED modelat prin ASF, aşa cum a fost descrisă
până acum, este o evoluţie spontană, necontrolată
Pentru un sistem dinamic în general şi pentru un SED în
particular:
 dacă starea completă a sistemului este observabilă, se poate
construi un controler în buclă de reacţie (feedback controler)
 dacă doar evenimentele sunt observabile, implementarea unui
controler se face aplicând în prealabil un artificiu ce constă în
crearea unei copii a sistemului ce se execută în paralel şi sincron
cu sistemul, acţiunea de control necesară fiind decisă prin
măsurarea stării copiei sistemului
Controlerul sau copia sistem plus controlerul formează un
supervizor
Schema controlului supervizor
Stare Sistem de
SED observare a Evenim.
Intrări de
evenimentelor observate
control

SUPERVIZOR

Feedback Controler
(compensator dina- Copie SED
mic de stare) Stare
(estimată
sau exactă)
Controlul supervizor: Implementarea
Se partiţionează E prin identificarea a 2 submulţimi:
 mulţimea evenimentelor controlabile Ec – acelea ce pot fi validate
sau invalidate din exteriorul sistemului dat
 mulţimea evenimentelor necontrolabile Enc (EcEnc=) – sunt cele
a căror apariţie nu poate fi prevenită şi deci pot fi considerate
permanent validate
Un supervizor poate controla SED prin:
 observarea secvenţelor de evenimente generate
 dezactivarea, activarea sau forţarea evenimentelor controlabile,
pentru a îndeplini un obiectiv de control, în funcţie de secvenţele
observate
Prin aceasta, supervizorul asigură generarea de către
sistem a unui sublimbaj a lui L(G)
Supervizorul
Formal, supervizorul poate fi introdus ca tuplu S=(S,):
 S=(Y, E, g, y0, Ym) e automat generator, numit şi recunoscător –
recunoaşte un limbaj asupra aceleiaşi mulţimi de evenimente E
 : EY{0,1} (sau, echivalent, : Y2E) – este o funcţie de
control feed-back cu valori în şablonul de control sau mulţimea de
validare a evenimentelor (1-validare, 0-invalidare)
Supervizorul urmăreşte/controlează comportarea SED-G:
 Îşi schimbă starea conform cu evenimentele generate de G
 Aplică , pentru validarea/invalidarea evenimentelor controlabile
din subsetul ce generează tranziţii în starea corespunzătoare din G
Prin această legare, funcţiile de tranziţie atât pentru G, cât
şi pentru S, sunt modificate
Comportarea în buclă deschisă a SED-generator G (dar
închisă prin prefix), aşa cum a fost descrisă ea anterior,
este dată de limbajul închis (prin prefix):
L(G)={s sE* & f(s,x0) definită}
Comportarea în buclă închisă
Pentru automatul generator notat S/G, se generează un limbaj
L(S/G), caracterizat de faptul că generarea unui şir s din acest limbaj
este permisă d.d. sL(G) şi sL(S), iar fiecare eveniment eS este
validat de funcţia 
Comportarea marcată a automatului generator e dată prin Lm(S/G)
– limbaj ce conţine acele şiruri din L(S/G) marcate atât în G cât şi în S
Supervizorul este văzut în acest caz ca o funcţie S : L  2E ce
specifică pentru fiecare şir de evenimente sL intrarea de control ce
poate fi aplicată ( e notaţia pentru mulţimea intrărilor de control)
Limbajul (închis prin prefix) generat de sistemul în buclă închisă, notat
L(S/G), este definit de următoarele condiţii:
a) L(S/G);
b) şirul st  L(S/G) d.d. s  L(S/G), t  S (s) şi st  L(G).
SED generator G şi supervizorul S se execută în paralel astfel:
un eveniment eE poate apărea atunci când GS este în starea (x,y)
d.d. el este posibil atât în G în starea x, cât şi în S în starea y
Studiu de caz
Controlul supervizor al unei reţele
de calculatoare conectate liniar
Probleme de control globale în
sistemele de calcul
Specificaţia globală a unei probleme de control pentru
sisteme de calcul, reţele de calculatoare sau sisteme
distribuite poate fi foarte generală
Exemplu: “controlul tranziţiilor de stare ce pot asigura o
funcţionare eficientă, non-blocantă şi rapidă a unei reţele”
Rezolvarea problemei pentru această categorie de sisteme
se poate face şi global, dar în general, din motive de
reducere a complexităţii, ea se face local
În sistemele distribuite, se implementează supervizorul ca
sistem descentralizat şi local
 el este compus dintr-o mulţime de subsisteme supervizor
 fiecare dintre acestea observă şi controlează o parte a sistemului
global, prin accesul doar la o parte a evenimentelor controlabile
Acţiuni specifice locale
Se impun:
 rafinarea specificaţiei în sub-specificaţii locale, după
descompunerea în subsisteme a sistemului distribuit dat
(etapă care în general nu ridică probleme şi admite mai
multe soluţii)
 identificarea subspecificaţiei unei probleme de control
este echivalentă de multe ori cu impunerea unor noi
reguli locale de operare
 trasarea unei scheme de prioritate în cazul suprapunerii
acţiunilor de control, datorată suprapunerii parţiale a
subsistemelor controlate
 acest lucru este necesar deoarece o soluţia descentralizată
indică doar acţiunile de control ce trebuie luate de fiecare
supervizor local
Descrierea problemei
Formularea unui protocol de control al unei
reţele de cozi compusă din N servere aranjate
liniar, fiecare având o coadă de intrare de
capacitate limitată

Sistem global
(reţea de servere interconectate liniar)
S1 B1 S2

Bn Sn+1
...
Rafinarea specificaţiei
Un mesaj ce intră în sistem este procesat de primul
server, transmis apoi pentru a fi procesat în coada
următorului server ş.a.m.d., până ce este procesat de
toate serverele şi părăseşte sistemul
Serverele se pot defecta (căderi de curent), nu înainte
însă de a salva starea curentă, pentru a relua procesarea
după reparare din exact acelaşi punct
La intrarea şi ieşirea din reţea, înainte de S1 şi după Sn+1,
se află buffere de capacitate pp. nelimitată (nu au
influenţă asupra sistemului, de aceea nu au fost figurate)
Fiecare server Si se poate afla în una dintre următoarele
3 stări: liber (Idle); ocupat (Working); defect (Defective)
Bufferul Bi plasat înaintea serverului Si are tot trei stări
posibile: buffer gol (0); buffer ocupat (1); buffer plin (2)
Diagramele de stare pentru Si şi Bi
Stările iniţiale sunt marcate în figura următoare
printr-o săgeată incidentă; fiind considerate
totodată stări marcate, săgeata e cu dublu sens

Serverul Si Bufferul Bi
I 0

si ei
ei si+1
ri si+1
W D 2
di 1
ei
Descrierea formală a sistemului
Considerând separat fiecare server şi fiecare buffer ca
SED generatoare de evenimente, comportarea (închisă)
în buclă deschisă a fiecărui automat de acest fel poate fi
descrisă folosind formalismul expresiilor regulate astfel:
L(Si) = (si(diri)*ei)*(+si(di+(diri)*))
L(Bi) = (ei(eisi+1)*si+1)*(+ei(ei+(eisi+1)*))

Limbajele marcate, Lm(Si)= (si(diri)*ei)* şi Lm(Bi)=


(ei(eisi+1)*si+1)*, subliniate în expresiile anterioare,
respectă totodată condiţiile:
Lm(Si)  L(Si) şi Lm(Bi)  L(Bi)
Problema locală
Descompunem reţeaua în subreţele suprapuse parţial,
formate din serverele Si şi Si+1 şi bufferul Bi dintre ele
Urmărim determinarea subsistemelor supervizor CSi ce le
controlează local
Vom impune apoi pentru controlul global constrângeri:
 Ex: prioritatea supervizorului de index minim (CSi-1) în cazul
implementării de acţiuni locale conflictuale asupra aceluiaşi
server Si
Fără a pierde generalitatea, rezolvăm problema pentru
supervizorul CS1 – subsistemul format din serverele S1 şi
S2 şi bufferul B1
Subsistemul local controlat
Acţiunea supervizorului se poate exercita doar asupra
evenimentelor controlabile, “început prelucrare la
serverul Si (si)” sau “repararea serverului Si (ri)”, prin
variabilele de control validare start (vsi), respectiv
validare reparaţie (vri)
Serverul Si
I
S1 B1 S2
si/vsi
ei
ri/vri

D
di
Reguli locale de operare
1. Serverul S1 nu poate începe servirea dacă B1 plin – pt. a
evita ca evenimentul sfârşit prelucrare la serverul S1 să
încerce scrierea într-un buffer plin (e1 necontrolabil)
2. Serverul S2 nu poate începe servirea dacă bufferul B1 gol
3. Serverul S1 nu poate începe servirea dacă serverul S2
este defect (pericol de blocaj prin umplerea bufferului)
4. Dacă S1 şi S2 defecte simultan, S1 trebuie reparat primul
(pentru a preveni blocajul)
5. Serverele S1 şi S2 nu pot începe servirea dacă deja
lucrează
6. Un server defect nu poate valida începutul servirii (se pp.
că serverele se pot defecta doar în timp ce lucrează),
ci doar terminarea reparaţiei
Codificarea stărilor
Pentru sistemul local controlat (S1-B1-S2) există 3x3x3
(27) stări posibile
Regulile 1-6 permit înlăturarea a 6 stări, cele în care S1
este ocupat sau defect şi B1 plin
Diagrama stărilor sistemului local controlat (S1-B1-S2)
e1

e2
16
1 3

d2
d1 r1 s1 e2
r2
e1 4 s2 2
d1
10
12
d2 r1 18
e2 e2 r2
d2
r2 d1
6 5 e1

d2 s2 11 r1 17
7 s1
s1 s2 s2
e1
d1
8 e1 14 e2
19
13 r1
d1
r2 d2 r2 d2 e2
r1
20
e1 15
9
d1 d2

21 r2
r1
Proiectarea controlerului
Trebuie făcută astfel încât doar tranziţiile de stare
permise să aibă loc
Acţiunea se poate exercita doar asupra evenimentelor
controlabile “început prelucrare la serverul Si (si)” şi
“repararea serverului Si (ri)”, prin variabilele de control
validare start (vsi), respectiv validare reparaţie (vri)
Următoarea tabelă, a stărilor reduse ale controlerului ,
indică valorile variabilelor de control necesare în fiecare
stare a sistemului controlat: 0 – invalidare, 1 – validare,
X – valoare indiferentă
Reducerea stărilor controlerului
Putem considera pentru controler acelaşi număr de stări
ca pentru sistemul controlat (0, 1, X), sau putem reduce
numărul de stări- deci complexitatea controlerului, luând
doar combinaţiile distincte pentru variabilele de control
Diagrama stărilor controlerului 8

e1
d2
r2

s1, d2
e2
r2 s2 s1, r2

e2
2
1 3
d2 e1

r1 d1
r1 d1

r1
5 7
d1 s2
4
e2 e2

d2
d2

r2

6
Modelare și simulare
Curs, anul III Calculatoare

Modelare dinamică cu reţele Petri.


Analiza RP
Caracteristici dinamice în sistemele
cu evenimente discrete
SED sunt inerent dinamice și paralele și pot fi caracterizate
prin 3 trăsături esenţiale de comportament, superpozabile:
 Concurenţa: posibilitatea ca mai multe evenimente să
aibă loc de o manieră independentă unul faţă de altul
 Sincronizarea: se referă la necesitatea ca uneori
execuţia anumitor evenimente să aştepte producerea
altor evenimente
 Conflictele (interblocajele): o manieră de a ţine cont
de competiţia între acţiuni multiple simultane sau de
alte fenomene, precum excluderea mutuală
Reţele Petri (RP)
Surprinderea unor astfel de trăsături
necesită adoptarea unor modele care să
înglobeze în cel mai înalt grad dinamica
sistemelor modelate:
FSM, DTS (diagrame de tranziţie a stărilor)
RP,, introduse in 1962 de C. A. Petri
RP
 Profesor onorific al Universităţii din Hamburg
 Membru al Academia Europæ
 In 2007 a fost onorat pentru întreaga
activitate de către ATLAS ("Academy of
Transdisciplinary Learning and Advanced
Studies“) cu "Academy Gold Medal of Honor“
Sumar
Modele cu RP
 Elemente constitutive (structurale) ale RP
 Dinamica sistemelor cu RP
Tipuri simple de RP. Exemple
 RP ordinare
 RP generalizate
Metode de analiză a RP ordinare
 Analiza accesibilităţii
 Determinarea invarianţilor
Alte proprietăţi şi clasificări derivate
Reţelele
Reţelele Petri (cont.)
Utilizează stări distribuite şi tranziţii locale
Iniţial au permis modelarea unor sisteme cu componente
concurente în interacţiune, ulterior fiind extinse pentru a
fi utilizate ca instrumente matematice generale
Modelarea dinamică necesita astfel de descrieri de tip
calitativ (logic) care să poată servi ca bază pentru analiza
şi sinteza SED
Accentul este pus pe modelarea dependenţelor cauzale,
fără sincronizare globală (doar transmitere de mesaje)
Pe lângă anumite proprietăţi analitice, caracterul vizual al
RP poate fi un element important în modelare
Elemente constitutive structurale
(Logic)
 Condiţii
Pot fi îndeplinite sau nu.
 Evenimente
Pot avea loc dacă anumite condiţii sunt îndeplinite.
 Relaţii (flux de control)
Arată relaţiile între condiţii si evenimente.
→Condiţiile, evenimentele și relaţiile formează un graf
bipartit (graf cu două tipuri de noduri)
(Grafic)
 Locaţii (cercuri)
 Tranziţii (dreptunghiuri)
 Arce, ce conectează locaţiile cu tranziţii sau tranziţiile
cu locaţii
Concept dinamic cheie:
Tranziţia stărilor
Logic, reprezintă apariţia unui eveniment/ o acţiune
Grafic, este mişcarea unor jetoane (token-uri), notate ca
puncte negre, din locaţie în locaţie, prin “aprinderea”
tranziţiilor
Aceasta din urma depinde de condiţiile de intrare
simbolizate de disponibilitatea jetoanelor
Spunem ca o tranziţie este validata daca exista un număr
suficient de jetoane in locaţiile sale de intrare
O tranziţie validata se poate aprinde oricând
După aprindere, token-urile vor fi transferate de la
locaţiile de intrare (stare veche) către cele de ieşire, fiind
astfel un element de identificare si in acelaşi timp o
notaţie pentru noua stare
Arce si capacităţi
Arcele au implicit capacitatea 1; daca
este diferita de 1, capacitatea este Locaţie cu
marcata pe arc
token
Locaţiile au implicit capacitate infinita
O tranziţie este validata daca
numărul de jetoane in fiecare din
locaţiile sale de intrare este cel puţin P1
egal cu capacitatea arcului ce o
uneşte cu o locaţie de intrare Arc de capacitate 1

T1
Locaţie
Tranziţie
P2
Exemplul 1
Automat de distribuţie (vânzare):
 Distribuie două tipuri de batoane, de 20 de
bani si de 15 bani
 Doar două tipuri de monede pot fi folosite, de
10 bani si de 5b
 Nu returnează rest
Reprezentare prin diagrama tranzitiilor
de stare, ca automat cu stări finite
Ia baton de 15b

Depunere 10b
5 bani 15 bani

0 bani

Depunere 10b
10 bani 20 bani

Ia baton de 20b
Reprezentare prin RP

Ia baton de 15b
Depunere 10b
15b
5b
Depunere 5b

Depunere Depunere
0b 5b Depunere 5b
5b

Depunere 10b
10b 20b
Depunere 10b
Ia baton de 20b
Scenarii de evolutie
Scenariul 1:
 Depunere 5b, depunere 5b, depunere 5b, depunere
5b, ia baton de 20b.
Scenariul 2:
 Depunere 10b, depunere 5b, ia baton de 15b.
Scenariul 3:
 Depunere 5b, depunere 10b, depunere 5b, ia baton
de 20b.
Dinamica sistemului

Ia baton de 15b
Depunere 10b
15b
5b
Depunere 5b

Depunere Depunere
0b 5b Depunere 5b
5b

Depunere 10b
10b 20b
Depunere 10b
Ia baton de 20b
Tipuri de reţele Petri (crit. structural)
RP ordinare, în care fiecare arc nu poate avea decât
capacitatea (funcţia de ponderare) egala cu 1
 Maşinile de stare (MS) – RP unde orice tranziţie are exact
o locaţie de intrare şi o locaţie de ieşire: | t || t  |1,t T
 Grafurile marcate (GM) - orice locaţie are 1! tranziţie de
intrare şi 1! tranziţie de ieşire: | p || p  |1,p P
 Reţelele cu alegere liberă (AL) – dacă 2 tranziţii au o
locaţie de intrare comuna, atunci au toate locaţiile de
intrare comune: t , t ' T , t  t '    t  t ' (sau
echiv. dacă 2 locaţii au o tranziţie comuna de ieşire,
vor avea toate tranziţiile de ieşire comune)
 Reţelele cu alegere liberă extinse (ALE) –
acele RP ce pot fi transformate in RP AL
Tipuri simple de reţele Petri (cont.)
 Reţelele cu alegere asimetrică (AA) – RP în care, dacă două
locaţii au o tranziţie comuna de ieşire, atunci una din ele are
toate tranziţiile de ieşire ale celeilalte (posibil altele in plus)

RP
AA ALE AL MS GM
PN

RP generalizate, unde pot fi aplicate ponderi generale


arcelor
Grafuri marcate

Nu poate exista conflict pe resurse,


dar putem avea concurenţă
(ramificare, sincronizare)
RP cu AL (“free-choice”)
Foarte utilizate in modelarea conceptelor de flux (control)
Realizeaza un compromis rezonabil intre puterea descriptiva si
posibilitatea de analiza: “rezultatul alegerii intre 2 tranzitii nu
poate fi influentat de restul sistemului (alegerile sunt libere)”
In exemplul de mai jos, avem alegere libera pentru prima retea;
pentru cea de-a doua, datorita sincronizarii la t2, tranzitia t3
poate influenta alegerea lui t1 sau t2
Reţele Petri “clasice”
Reţele condiţii/evenimente (C/E)
Sunt cele folosite în introducerea RP:
o subclasă de reţele Petri in care locaţiile
pot avea 1/0 simboluri, ce pot modela atât
condiţii cât și evenimente:
 locaţiile reprezintă condiţii, ce pot avea inscrise valori true/ false
 tranziţiile reprezintă evenimente locale
Un eveniment este validat d.d.
 toate pre-condiţiile sale (conectate prin arce incidente) sunt true
 toate post-condiţiile sale sunt false
Apariţia unui eveniment neagă pre- și post-condiţiile sale
Reţele C/E (cont.)
Evenimentele cu aceleaşi pre- sau post-condiţii sunt in
conflict
Doar evenimentele non-conflictuale validate pot apărea
concurent
Terminologie:
 Marcajul reţelei = distribuţia token-urilor

 Sistem C/E= reţea C/E + marcaj

 Configuraţii: marcaje posibile ale unei reţele C/E

 Cazuri ale unui sistem C/E: configuraţii accesibile din


marcajul iniţial ( case graph)
Automatele sunt o subclasă secvenţiala a sistemelor C/E
exact o condiţie este adevărata,
fiecare eveniment are o singura pre- si post-condiţie
Descrieri formale
Grafice (grafuri bipartite)/ matematice: au semantică
formală şi posibilităţi de analiză
 Caracteristici importante: stări distribuite şi tranziţii locale

Sistemice: RP = <L, T, Pre, Post, M0>


L= {l0, l1, …, lm} setul poziţiilor (locaţiilor)
T = {t0, t1, …, tn} setul tranziţiilor
Pre : T → L+, funcţia de intrare, ce defineşte locaţiile care
furnizează intrări unei tranziţii
Post : T → L+, funcţia de ieşire, defineşte locaţiile de ieşire
pentru fiecare tranziţie
M0 : L → {0,1}, funcţia de marcaj, defineşte numărul de
simboluri din fiecare locaţie
Condiţii şi resurse
Reţelele de tip C/E modelează fluxurile de informaţii, la
nivel fundamental (true/false)
Aplicaţii: cele in care fluxul de resurse si/sau numarul de
resurse disponibile este important (document workflow,
data flow, linii de fabricaţie, reţele de comunicaţie, www)
Reţelele de tip P/T reprezintă o
generalizare (extensie) imediata:
 Elementele de stare sunt echivalente locaţiilor 2
unde sunt stocate resurse (jetoanele)
 Elementele de acţiune sunt reprezentate de 3
tranziţiile locale sau transportul resurselor
 Poate fi aplicata o descriere matematică
similară cu cea a RP C/E
Reţele poziţii/tranziţii (P/T)
O reţea PT e o reprezentare de forma (P, T, A, C, w, M0),
formată dintr-o parte structurală şi o parte dinamică.
Partea structurală este un graf orientat bipartit unde:
 P este o mulţime finită de poziţii (locaţii)
 T este un set finit de tranziţii
 A este o mulţime de arce, o submulţime a mulţimii (PT)(TP)
 C: P  (N  {}) \{0} este o funcţie de capacitate a poziţiilor
(capacitatea unei poziţii se consideră implicit nelimitată)
 w este o funcţie de ponderare aplicată arcelor, w:A{1,2,3 ...}
(ponderea unui arc se consideră implicit unitară)
Prin M0: P  N   notăm funcţia numită marcaj iniţial
Partea dinamică a reţelei PT constă în evidenţierea
modalităţilor (legilor) de evoluţie a marcajului iniţial
Starea şi evoluţia reţelelor PT
Starea unei reţele PT date (definită structural) e complet
descrisă de marcajul său M=[M(p1), M(p2),…,M(pn)]
Spaţiul stărilor unei RPT marcate este complet definit de
marcaje, adică de toţi vectorii n-dimensionali ale căror
elemente sunt pozitive, M={0, 1, 2, …}n
O tranziţie tjT într-o RPT marcată este validată dacă:
 M(pi) ≥ w(pi, tj), pentru orice piI(tj);
 M(pk) ≤ C(pk)-w(tj, pk), pentru orice pkO(tj)- I(tj);
 M(p) ≤ C(p)-w(tj, p) + w(p, tj), pentru orice pO(tj)  I(tj),
unde I(ti) este mulţimea locaţiilor de intrare în tranziţia ti
iar O(ti) mulţimea locaţiilor de ieşire din tranziţia ti
Aprinderea unei tranziţii este echivalentă cu:
 M’(pi) = M(pi) - w(pi, tj), pentru orice piI(tj) - O(tj)
 M’(pk) = M(pk) + w(tj, pk), pentru orice pkO(tj) - I(tj)
 M’(p) = M(p) - w(p, tj) + w(tj, p), pentru orice pO(tj)I(tj)
Exemplul 2
2

p1 t1 p2

2 2

p1 t1 p2 p1 t1 p2

În figura de sus, tranziţia nu este validată şi deci nu se


poate produce
În a doua variantă de marcaj tranziţia este validată
În dreapta apare noul marcaj după producerea tranziţiei
Exemplul 3: Cazuri - configuraţia
iniţială
M0 = [2, 0, 0, 1] p2

p4
p1 t2

p3
t1

t3

În configuraţia iniţială singura tranziţie validă este t1.


Când tranziţia t1 se aprinde este eliminat un jeton din locaţia
p1 şi se plasează câte un jeton în locaţiile p2 şi p3 (se poate
aplica de asemenea formula pentru a se obţine noua stare)
Exemplul 3: pasul 1
M1 = [1, 1, 1, 1] p2

p4
p1 t2

p3
t1

t3

În această stare toate cele trei tranziţii sunt valide


Dacă se aprinde tranziţia t2, e eliminat un jeton din locaţiile de
intrare p2 şi p3 şi plasat în locaţiile de ieşire p2 şi p4
Exemplul 3: pasul 2
M2= [1, 1, 0, 2] p2

p4
p1 t2

p3
t1

t3

S-a eliminat un jeton din locaţiile de intrare p2 şi p3 şi s-a


plasat un jeton în locaţiile de ieşire p2 şi p4
Dacă însă în starea precedentă s-ar aprinde tranziţia t3, atunci
s-ar obţine starea descrisa pe următorul slide
Exemplul 3: pasul 3
M2 = [0, 1, 0, 0] p2

p4
p1 t2

p3
t1

t3

În această stare nu mai este activată nici o tranziţie şi nu


sunt posibile schimbări de stare
Metode de analiză a RP ordinare
Analiza dinamică (analiza accesibilităţii) are ca scop
determinarea mulţimii stărilor (accesibile)
 Utilizează reguli algebrice ce descriu validarea şi aprinderea
tranziţiilor
 Acestea conduc la reprezentarea evoluţiei dinamice a RP
prin formarea unor ecuaţii
Analiza structurală are ca idee de bază eliminarea
derivării spaţiului stărilor şi prin aceasta evitarea
problemei “exploziei stărilor”.
 Această abordare nu poate furniza o informaţie la fel de
bogată ca prima
 De multe ori o asemenea detaliere nici nu este necesară, ci
sunt dorite doar anumite caracteristici calitative ale RP şi
sistemului modelat (de ex. determinarea invarianţilor)
Ecuaţiile de accesibilitate
Definim al k-lea vector de evoluţie uk, un vector m-dim.
de forma: uk = [0, 0, .., 0, 1, 0, …, 0], unde 1 apare în
poziţia j si arata că tranziţia j este a k-a tranziţie aprinsă
Trebuie definită şi matricea de incidenţă I ca matrice
mxn, unde m este numărul de tranziţii, n numărul de
locaţii, iar intrarea (i, j) este de forma:
 Iij = w(tj, pi) - w(pi, tj)  I = Post - Pre

Folosind matricea de incidenţă putem scrie o ecuaţie de


stare vectorială Mk = Mk-1+ukI, valabilă pentru orice kN,
si deduce o condiţie necesară de accesibilitate a unui
marcaj: d
M d  M 0  ( u k ) I , ce se poate scrie si ca: xI  M
k 1 d
unde: x  uk
k 1
Exemplul 3 (reluare)
p2

p4
p1 t2

p3
t1

t3

Se vor folosi ecuaţiile anterioare pentru exemplul 3


Marcajul iniţial este M = [2, 0, 0, 1]
Exemplul 3 (cont.)
Matricea de incidenţă pentru această reţea Petri este:
p1 p2 p3 p4
 1 1 1 0  t1
I   0 0  1 1  t 2  Post  Pr e : Iij = w(tj, pi) - w(pi, tj)
 1 0  1  1 t3
Dacă se aprinde tranziţia t1 după marcajul iniţial M0:
1 1 1 0 
M1 = [2 0 0 1] + [1 0 0]  0 0 1 1  = [2 0 0 1]+[-1 1 1 0]
= [1 1 1 1] 1 0 1 1
Exemplul 3 (cont.)
În cazul în care în continuare se aprinde tranziţia t2 vom
obţine:
1 1 1 0 
 
M2 = [1 1 1 1] + [0 1 0]  0 0 1 1  = [1 1 1 1] +
1 0 1 1
+[0 0 -1 1] = [1 1 0 2]

Având marcajul iniţial M0 se pot genera toate secvenţele


de marcaje accesibile  stări accesibile
Acordând marcajelor semnificaţia de stare, se observă
similaritatea cu o ecuaţie de stare din teoria sistemelor
Exemplul 4: Calculul algebric (1)
p1

p2 t2 t3 p4
p3

t1
t6

p8

p5

p5 t4 p6 t5 p7
Exemplul 4 (2)
p1

1 0 0 0 0 0 p1
p2 t2 p4 0 1 0 0 0 0 p2
p3 t 3 0 p3
0 0 1 0 0
Pre  0 0 0 0 0 1 p4
t1 t6 0 0 0 1 0 0 p5
p8 0 0 0 0 1 0 p6
0 0 0 0 0 1 p7
0 1 0 1 0 0 p8
t1 t 2 t3 t 4 t5 t6
p5 t4 p6 t5 p7
0 0 0 0 0 1 p1
 1 0 0 0 0 1 1 0 0 0 0 0 p2

 1 1 0 0 0 0 0 1 0 0 0 0 p3
Matricea de incidenţă  0 1  1 0 0 0 p4
Post  0 0 1 0 0 0

I  Post - Pre   0 0 1 0 0  1 1 0 0 0 0 0 p5
1 0 0  1 0 0 0 0 0 1 0 0 p6
 0 0 0 1  1 0 0 0 0 0 1 0 p7
 0 0 0 0 1  1 0 0 1 0 1 0 p8
 0  1 1  1 1 0
t1 t 2 t3 t 4 t5 t6
Exemplul 4 (3)
p1
p2 t2 p4  M ( p1 )  4
p3 t 3  4
 M ( p 2 )  1  0 
t6  M ( p3 )  0
t1 p 1 
p5 8 p7  M ( p )  0 
M   M ( p4 )   M   0 
p5 5 0  0 
p6
 M ( p )  0  0 
t4 t5 6
  1  1 
 M ( p )
7 
t2 este validata si se declanseaza 0
 M ( p8 )  1 
p2 p1 p4
t2 p3 t 3 M '  M  Pre (, t )  Post (, t )
t6  M  I (, t )
t1 p8
p5 p7

p5
t4 p6 t5
Determinarea (P-)invarianţilor
Un invariant este un vector pozitiv definit* ce
anulează matricea de incidenţă prin înmulțire
la dreapta

X  0: XI = 0
Mi= M0 + XI  Mi = M0

* Cu cel puțin o componentă pozitivă și celelalte


pozitive sau nule
Alte proprietăţi şi clasificări derivate
Autonomie. O reţea Petri se numeşte autonomă dacă nici
timpul şi nici altă constrângere de sincronizare externă
nu sunt implicate în model
 O RP autonomă se păstrează ca o descriere pur calitativă a
sistemului observat
 Reţeaua din exemplul 3, anterior, este autonomă
Simplitate. O RP se numeşte simplă dacă elementele ei
distincte (locaţii sau tranziţii) nu pot avea mulţimi de
intrare sau ieşire similare
 Reţeaua din exemplul anterior este simplă
Puritate. O RP se numeşte pură dacă nu conţine cicluri
 Reţeaua din exemplul 3 nu e pură, deoarece există ciclul (p2,t2)
Accesibilitate. Se referă la posibilitatea de atingere a unei
stări, codificate de un marcaj al reţelei, dintr-o altă stare
Alte proprietăţi şi clasificări (2)
Mărginire (limitare). O RP se numeşte (n) mărginită dacă
numărul de jetoane din fiecare locaţie poate atinge cel
mult valoarea n
 Reţeaua din exemplul anterior este mărginită
Siguranţă. O RP se numeşte sigură dacă marcajul fiecărei
locaţii poate fi doar 0 sau 1 (marcaj boolean), iar arcele
au pondere unitară
Viabilitate. O RP se numeşte viabilă dacă, indiferent de
marcajul iniţial şi de evoluţia sa, nici o tranziţie nu poate
deveni inactivă de o manieră permanentă.
 Reţeaua din exemplul anterior eşuează într-o stare terminală şi
deci nu este viabilă
Invarianţi. O RP poate prezenta o serie de caracteristici
invariante în timpul evoluţiei sale dinamice, în principal
referitoare la marcajele sau stările sale
Alte proprietăţi şi clasificări (3)
Conservativitate. O RP se numeşte conservativă dacă
numărul total de jetoane este constant (un invariant al
reţelei)
 Reţeaua din exemplul anterior nu este conservativă
Sub-conservativitate. O RP se numeşte sub-conservativă
dacă numărul total de jetoane este constant sau în
descreştere pe parcursul evoluţiei (dinamicii) sale
 Reţeaua din exemplul anterior nu este sub-conservativă
Reversibilitate. O RP se numeşte reversibilă dacă din
fiecare marcaj accesibil se poate ajunge din nou la
marcajul iniţial
 Reţeaua din exemplul anterior nu este reversibilă
Ex. Este RP de mai jos simplă?
Într-o RP simplă 2 tranzitii nu pot avea aceleași seturi
de locaţii de intrare si iesire

Obs: Reţelele simple fara elemente izolate ce indeplinesc si


alte restrictii suplimentare legate de marcaje si capacitatea
arcelor sunt reţelele condiţii/evenimente (C/E)
Modelare și simulare
Curs, anul III Calculatoare

Sinteza modelelor cu reţele Petri


ordinare şi generalizate
Sumar
Exemple de sinteza a modelelor cu RP
 Modelarea conceptelor dinamice în RP
ordinare
Extensii ale modelelor de baza cu RP:
 RP temporizate
 RP stochastice
 RP de nivel inalt
Metode de analiză si sinteza (modelare)
folosind RP ordinare si generalizate
Exemplul 5: Un sistem de așteptare
(1 server, 1 coada)
No Activitate Entitate implicata Server Activ
(Locatie)
A1 Client.creare Client 
A2 Client.(in)coada Client 
A3 Servire Client, Server 
A4 Client.terminare Client 
A5 Client.iesire Client 
A6 Server.gol Server 

No Eveniment (Tranzitie) Preconditie Postconditie


T1 Sosire A1 A2
T2 Inceput servire A2, A6 A3
T3 Sfarsit servire A3 A4, A6
T4 Plecare A4 A5
Construcția rețelei Petri (1)
Începe cu plasarea locațiilor (activităților)
în succesiune logică

A1 A2 A3 A4 A5
Client.creare Client.coada Servire Client.terminare Client.iesire

A6
Server.gol
Construcția rețelei Petri (2)
Se figurează tranzițiile (evenimentele)

sosire inceput serv. sfarsit serv. plecare


T1 T2 T3 T4

A1 A2 A3 A4 A5
Client.creare Client.coada servire Client.terminare Client.iesire

A6
Server.gol
Construcția rețelei Petri (3)
Arcele indică relațiile logice în RP

sosire inceput sfarsit plecare


T1 T2 T3 T4

A1 A2 A3 A4 A5
Client.creare Client.coada servire Client.terminare Client.iesire

A6
Server.gol
Constructia rețelei Petri (4)
Token-urile marchează starea initiala a RP

sosire inceput sfarsit plecare


T1 T2 T3 T4

A1 A2 A3 A4 A5
Client.creare Client.coada servire Client.terminare Client.iesire

A6
Server.gol
Dinamica sistemului (1)
Creare client
Client Sosire Inceput Plecare
Server : gol
1 19,25
Coada : 0

0 0

A1 T1 A2 T2 A3 T3 A4 T4 A5
0 0

A6
Dinamica sistemului (2)
Sosire client
Client Sosire Inceput Plecare
1 19,25 Server : gol

2 26,50 Coada : 1

1 0

A1 T1 A2 T2 A3 T3 A4 T4 A5
1 0

A6
Dinamica sistemului (3)
Servire
Client Sosire Inceput Plecare
1 19,25 19,25 23,45 Server : ocupat

2 26,50 Coada: 0

0 1

A1 T1 A2 T2 A3 T3 A4 T4 A5
1 0

A6
Dinamica sistemului (4)
Terminare client (in sistem)
Client Sosire Inceput Plecare
1 19,25 19,25 23,45 Server : gol

2 26,50 Coada: 0

0 0

A1 T1 A2 T2 A3 T3 A4 T4 A5
1 0

A6
Dinamica sistemului (5)
Iesire client (din sistem)
Client Sosire Inceput Plecare
1 19,25 19,25 23,45 Server : gol

2 26,50 Coada: 0

0 0

A1 T1 A2 T2 A3 T3 A4 T4 A5
1 1

A6
Dinamica sistemului (6)
Sosire client
Client Sosire Inceput Plecare
1 19,25 19,25 23,45 Server : gol

2 26,50 Coada: 1

3 31,40

1 0

A1 T1 A2 T2 A3 T3 A4 T4 A5
2 1

A6
Dinamica sistemului (7)
Servire client
Client Sosire Inceput Plecare
1 19,25 19,25 23,45 Server : ocupat

2 26,50 26,50 31,80 Coada: 0

3 31,40

0 1

A1 T1 A2 T2 A3 T3 A4 T4 A5
2 1

A6
Dinamica sistemului (8)
Sosire client
Client Sosire Inceput Plecare
1 19,25 19,25 23,45 Server : ocupat

2 26,50 26,50 31,80 Coada: 1

3 31,40
4 31,75

1 1

A1 T1 A2 T2 A3 T3 A4 T4 A5
3 1

A6
Dinamica sistemului (9)
Sosire client
Client Sosire Inceput Plecare
1 19,25 19,25 23,45 Server : ocupat

2 26,50 26,50 31,80 Coada: 2

3 31,40
4 31,75
5 42,40
2 1

A1 T1 A2 T2 A3 T3 A4 T4 A5
4 1

A6
Dinamica sistemului (10)
Terminare client
Client Sosire Inceput Plecare
1 19,25 19,25 23,45 Server : gol

2 26,50 26,50 31,80 Coada: 2

3 31,40 31,80
4 31,75
5 42,40
2 0

A1 T1 A2 T2 A3 T3 A4 T4 A5
4 1

A6
Dinamica sistemului (11)
Servire – Iesire client
Client Sosire Inceput Plecare
1 19,25 19,25 23,45 Server : ocupat

2 26,50 26,50 31,80 Coada: 1

3 31,40 31,80 44,75


4 31,75
5 42,40
1 1

A1 T1 A2 T2 A3 T3 A4 T4 A5
4 2

A6
Exersaţi singuri…
Modelarea conceptelor dinamice cu RP
Modelarea conceptelor dinamice in RP (1)
(C/E si PT)
A B A B A B

concurenţă sincronizare comunicare

A B A B A B

conflict/alegere resurse/multiplicitate date/individualitate


Modelarea conceptelor dinamice in RP (2)

(a) secvenţiere; (b) ramificaţie; (c) sincronizare;


(d) conflict acces resurse (excludere mutuala); (e) concurenţă
Producător/consumator
Proces de transmitere/recepţie
Semafor
rg

green

red gy

yellow

yr
Doua semafoare rg

rg rg

green

green green

red gy red gy OR red gy

yellow yellow

yellow

yr yr

yr
Tratarea nedeterminismului
Mai multe tranziţii sunt validate, dar numai una
se poate declanşa
Soluţie
rg1 rg2

g1 g2

r1 gy1 x gy2 r2

y1 y2

yr1 yr2
Trenuri: varianta 1
Consideram un sistem feroviar circular cu 4 linii
(unidirecţionale), numerotate (1,2,3,4) si doua
trenuri (A,B)
 Restricţie: nu putem avea doua trenuri pe aceeaşi linie
simultan; identitatea trenurilor nu este importanta
Soluţie (partiala)

Model RP pentru o linie Model RP pentru 2 linii


(cu 3 stari: busy, claim, free) (clear_track || use_track
-> transfer)
Soluţie
Modelul RP pentru 4 linii

Daca se adauga noi linii, desi nr. de stari creste rapid, marimea RP creste liniar
cu nr. de stari, dat de formula:
Varianta 2
Consideram un sistem feroviar circular cu 4 linii
(unidirecţionale), numerotate (1,2,3,4) si doua
trenuri (A,B)
 Restricţii: nu putem avea doua trenuri pe aceeaşi linie
simultan; dorim sa distingem insa identitatea trenurilor
Varianta 3
Consideram un sistem feroviar circular cu 4 linii
(unidirecţionale), numerotate (1,2,3,4) si doua
trenuri (A,B)
 Nu putem avea doua trenuri pe aceeaşi linie in acelaşi
timp, dar nici pe linii vecine (condiţie de siguranţa);
identitatea trenurilor nu este importanta
Varianta 4
Consideram un sistem feroviar circular cu 4 linii
(unidirecţionale), numerotate (1,2,3,4) si doua
trenuri (A,B)
 Liniile sunt marcate ca libere, ocupate sau cerute
 Un tren va cere linia următoare înainte de a o ocupa
RP generalizate
RP cu arce multiple (sau capacitate a arcelor > 2)
 Numărul de arce intre o locaţie de intrare si o tranziţie
determina numărul de jetoane necesare in prima,
pentru a o valida pe cea de-a doua
 Numărul de arce determina si numărul de jetoane ce se
consuma/ se produc
free

wait enter before make_picture after leave gone


Modele pt. procese de fabricaţie
Procesul fabricaţiei unei biciclete din componente:
 Trebuie inclus si timpul in RP (generalizata)
 Este importanta si ordinea de asamblare!

-Exista 3 masini de tip A si


7 de tip B
-Fiecare masina poate fi in
doar 2 stari – liber sau
ocupat (poate asambla 1!
(sub)ansamblu)
Soluţie
Capacity A: 3 * (60 minutes/20 minutes of action SA2 ) = 9 p/h
Capacity B: 7 * (60 minutes/20+40 minutes of actions SA1 and S3 ) = 7 p/h
Alte procese de fabricaţie (1)
Modelaţi ca RP procesul de
fabricaţie a unui scaun din
componente:
 4 picioare
 3 bare de susţinere spătar
 1 cadru spătar
 1 suport şedere
Atenţie in selectarea ordinii
de asamblare!
Alte procese de fabricaţie (2)
Modelaţi procesul de producţie a unui automobil,
indicat in diagrama următoare
car
subassembly2
engine
2
chair
subassembly1
4
chassis wheel
Echivalenţa definiţiilor
Orice set de reţele Petri (diagrame) ilustrând un
sistem dinamic poate fi transformat in alt model
formal (de ex. ASF), si invers

Alte exerciţii:
Transformaţi reţelele Petri obţinute anterior in
alte modele formale
Efectuaţi analiza accesibilităţii și analiza dinamică
pe aceste modele
Extensii ale modelului de baza:
RP temporizate
Timpul nu este prins in modelul RP de baza
Modalităţile de extensie temporizata a lor au in vedere
introducerea întârzierilor deterministe atât pentru locaţii,
cat si pentru tranziţii
Pot fi derivate concepte noi, de ex. timpul de ciclare ():
pp. reţeaua consistenta,  este timpul completării unei
secvenţe de declanşări ce reface marcajul initial:
 Întârzieri pentru locatii

 min=max{ykTD (A+) Tx/ykTM0}


 Întârzieri pentru tranzitii

 min=max{ykT(A-) TDx/ykTM0}
 Rezulta pentru o RP temporizata simpla (GM)

 min = max{total delay in Ck/M0 (Ck)}


RP stochastice
Asemănătoare RP temporizate, diferenţa e in intarzierile
introduse, care sunt nedeterministe
 De ex., putem avea întârzieri de tranzitare modelate ca v.a.
distribuite exponenţial
Apar proprietăţi noi:
 graful de accesibilitate al unei RP stochastice mărginite este
izomorf cu un lanţ Markov finit
 O RP stochastica reversibila generează un lanţ Markov ergodic, in
care distribuţiile de probabilitate in starea stabila dau estimatorii
de performanta:
 Probabilitatea unei condiţii particulare
 Valoarea aşteptata a numărului de simboluri (jetoane)
 Numărul mediu de declanşări in unitatea de timp
RP stochastice generalizate adaugă tranziţii imediate
pentru a reduce spaţiul stărilor
RP de nivel inalt
Includem in aceasta categorie:
 RP cu predicate/tranziţii
 RP colorate
 RP cu simboluri individualizate
Orice RPNI poate fi translatată intr-o reţea ordinara:
 Fiecare locaţie se translatează intr-un set de locaţii,
de ex. cate una pentru fiecare culoare a jetoanelor
conţinute
 Fiecare tranziţie se translatează intr-un set de tranziţii,
cate una pentru fiecare modalitate de declanşare
RPNI: exemple

a,a a 2 <a,c>
d,d 2x <x,z>
d <d,b>
2
<a,b>
<b,c>
<x,y> e
+<y,z> <a,b> e
<d,a>

<b,c>

<d,a>
Aplicabilitatea RPNI
Programare logica
 Modelarea seturilor de clauze (Horn)
B  A1, A2, ..., An
unde Ai si B sunt formule “atomice”
Predicat(argumente)
 Instructiunea scop (goal statement) se modeleaza ca
tranzitie fara iesiri (sink transition)
 Asertiunile de fapte – ca tranzitii sursa
 Reprezentarea ca RPNI
 Fiecare simbol predicat distinct este o locatie
 Fiecare clauza este o tranzitie
 Ponderile sunt argumente
 La final, trebuie sa existe conditii suficiente pentru a
declansa tranzitia scop
Invarianți numerici
A n
“#A < n”

A n “|A| - #A < n”
In toate
cazurile
A n B m “(|A| - #A < n)
and (|B| - #B < n)”
A
n
B “(#A < n)
m or (|B| - #B < n)”

Evenimente moarte (nevalidabile) Invarianti sistem (fapte)


• pot fi aplicat metode logice pentru retele P/T, folosind
inegalitati asupra numarului de resurse ca propozitii elementare
• tehnicile numerice specifice pot fi insa mai eficiente
Invarianţi, tehnici numerice
• Matricea de incidenta C a unei retele P/T pure (fara cicluri):

 n, daca exista n arce de la p la t


 n p
C p,t :  n, daca exista n arce de la t la p
 0, altfel
•Vectorul marcajelor m al unei retele P/T: t
Contributia
m p : n, daca exista n jetoane in locatia p lui t la p
•Vectorul de aprindere f al unui multi-set de tranzitii (fara reprezentarea ordinii!):
f t : n, daca tranzitia t se declanseaz a de n ori
•Vectorul pondere i al unor locatii: set de locatii cu suma jetoanelor constanta
m, m': (m  m' )  i t  m  i p * mp  i p * m' p  it  m'
p p

• Conditia necesara, nu si suficienta de accesibilitate: m  C  f t  m'

it  m  it  m '  it  (m  m ' )  0  it  C  0
Propoziţii si predicate
Pa Pb P
Scheme cu conditii
a b

1 1
7
7 x+y=z
1
3 x
P 2 P z
2 7 R
R y
9
Q 2
Q 2 Scheme cu evenimente
Retele predicate/tranzitii:
• jetoanele individuale sunt extensii de predicate si inlocuiesc conditii propozitionale
• cuantificatori si specificatori intr-o logica a predicatelor permit grupari de
evenimente la nivel propozitional in scheme cu evenimente la nivel de predicate
Concluzii
Modelarea cu reţele Petri ordinare și de nivel
înalt se poate utiliza pentru a testa şi valida
anumite proprietăţi utile ale sistemelor
 Siguranţa: este garantată prin faptul că numărul de
simboluri nu creşte nedefinit
 Funcţionalitatea: este garantată prin lipsa blocajelor
→ va exista întotdeauna cel puţin o tranziţie care
poate fi declanşată
Avantaj: modelarea sistemelor concurente
Dezavantaj: nu este utilă pentru sisteme
complexe
Modelarea sistemelor de calcul
Curs, anul III Calculatoare

Modele statistice pentru SED


Sumar
Secvenţe şi procese aleatoare
Lanţuri şi procese Markov și semi-Markov generalizate
(GSMP)
 Lanţuri Markov. Problema ergodicităţii
 Procese Markov și lanţuri Markov înglobate
 GSMP. Definirea și generarea lor
 Procese Poisson.
Sisteme cu cozi și reţele de cozi de aşteptare
 Notația Kendall
 Sisteme de așteptare cu server unic. Legea lui Little
 Aplicaţii: Comportare tranzitorie/permanentă staţionară
și de echilibru statistic. Probabilităţi de tranziţie şi de
stare. Măsuri de performanţă la echilibru statistic
Modele bazate pe urme
Comportarea unui SED este descrisă de înregistrarea
(urma) generată de apariţia unor schimbări discrete
Modelele bazate pe urme apar la diferite nivele:
1. Nivelul logic – “urma” este secvenţa de evenimente, in
ordinea apariţiei lor: s = e1 e2 e3 ...
Exemple: reţelele Petri (“cazuri” = urme); maşinile cu
stări finite (Wonham); procesele recursive finite (Inan-
Varaiya); procesele secvenţiale comunicante (Hoare)
2. Nivelul temporal - urma este secvenţa de perechi
s = (e1,t1) (e2,t2) (e3,t3) ...
Exemple: reţelele Petri temporizate, modelele algebrice
min-max, grafurile data-flow
Modele bazate pe urme la nivel
statistic
3. Nivelul statistic - comportarea sistemului este
descrisă de secvenţa perechilor de v.a.
s = (e1,t1) (e2,t2) (e3,t3) ...
(unde ei si ti sunt v.a. și pentru orice realizare ω,
s(ω) = (e1(ω),t1(ω)) (e2(ω),t2(ω)) (e3(ω),t3(ω))...
este o urmă descrisă la nivel temporal)
Exemple:
- lanţurile Markov
- sistemele cu cozi de aşteptare
- reţelele de cozi
Modele statistice – Categorii (1)
I. Modele analitice (teoretice)
 sistemice (improprii), provenite in general din
modele deterministe – unde descrierea se face la
nivel logic sau temporal
 Ex.: automate de stare nedeterministe ori probabiliste
 operaţionale, in general probabilistice (statistice);
se pot folosi in cazurile când putem obţine prin calcul
formule/ rezultate exacte (având modalităţi de a
simplifica problemele computaţionale)
 Ex.: sisteme cu cozi de aşteptare, reţele de cozi
 Limitare: cozi simple și reţele de cozi factorizabile
Modele statistice – Categorii (2)
II. Modele de simulare: au la bază formalismul GSMP!
 derivate din modelele operaţionale
 adecvate pentru analiza asistata de calculator
 oferă un instrument complet ce aproximează
dinamica sistemului prin oferirea de ipostaze non-
continue incrementale
 Pro: Dinamica originala a SDED este de acest tip!
 Contra: Dificultăţi computaţionale (exista soluţii!)
Pentru un studiu cât mai complet al SDED la
nivel statistic se pot folosi in tandem:
 modele operaţionale + modele de simulare
Review: Variabile aleatoare
(, E, P): câmp (finit sau infinit) de evenimente elementare
 : mulţimea de realizări posibile ale unui experiment aleator
(mulţime de evenimente elementare)
 E: o mulţime de submulţimi din  (spaţiul evenimentelor, σ-alg.)
 P: măsura de probabilitate
X:R este variabilă aleatoare dacă valoarea sa depinde de o realizare
din  si este caracterizata de:
 desfacerea lui  in evenimente elementare, incompatibile:
E1,E2,...,En
 mulţimea valorilor reale x1,x2, ...,xn

 mulţimea probabilităţilor asociate evenimentelor elementare


p1,p2,...,pn
 O v.a. modelează translatarea mulţimii rezultatelor unui
experiment aleator pe o mulţime reală
Secvenţe şi procese aleatoare
Secvenţă aleatoare (stochastică):
Un şir de v.a. {X1, X2,..., Xn,...} indexate printr-o variabilă
independentă (de obicei cu semnificaţie de timp)
Definirea se face prin specificarea funcţiei de distribuţie (de
obicei aceeaşi) a componentelor, v.a. X1, X2,..., Xn,...
Proces aleator (stochastic)
Definit ca limita unei secvenţe aleatoare când variabila de
indexare devine continua; notaţie {X(t)}
Ne interesează procesele aleatoare a căror comportare este
integral caracterizată printr-o unică distribuţie
 V.a. subsecvente sunt i.i.d. (independente şi identic distribuite)
 Ele pot fi intuitiv descrise de secvenţe de extrageri aleatoare
(continue) dintr-o mulţime de bază, ce respectă o distribuţie fixă
Probabilităţi condiţionate în
secvenţele aleatoare
Fie (, E, P) un câmp finit de evenimente elementare, iar
{X1, X2,..., Xn,...} un şir de v.a.
Notăm {E1n, E2n,..., Emn,...} desfacerea corespunzătoare
v.a. Xn în evenimente elementare, incompatibile
Probabilitatea condiţionată P(Ejnn)|Ej11…Ejn-1n-1 poate
fi în general dependentă de succesiunea de evenimente,
Ej11,…,Ejn-1n-1,Ejnn
Dacă P(Ejnn)|Ej11…Ejn-1n-1 = P(Ejnn) pentru n  şi
şir Ej11,…,Ejnn, atunci acest şir este o simplă succesiune
de v.a. independente
Dacă P(Ejnn)|Ej11…Ejn-1n-1 = P(Ejnn)|Ejn-1n-1 pentru n
 şi şir Ej11,…,Ejnn, atunci acest şir constituie un lanţ
Markov simplu
Lanțuri Markov
Sunt secvenţe discrete (asociate cu sisteme ce se pot
afla în stări diferite, care se schimbă aleator în pași
discreți), ce respectă “proprietatea lui Markov”
 Distribuția de prob. de trecere a sistemului în starea

următoare (de fapt în toate stările următoare) depinde


doar de starea curentă, nu și de stările anterioare!
Consecință: deși stările următoare sunt aleatoare (nu
pot fi prezise), pot fi descrise proprietățile statistice
ale sistemului cu mulți pași înainte
Deși timpul nu este determinant, e util să gândim
evoluția acestor sisteme în pași discreți, în timp
Un exemplu
Un iepure mănâncă doar varză, morcovi sau lăptuci
Dacă a mâncat morcovi ieri, nu va mai mânca azi, ci
va servi doar varză sau lăptuci cu probabilitate egală
Dacă a mâncat varză ieri, va putea mânca azi, cu
prob. 10%, dar și morcovi sau lăptuci cu prob. 40%,
respectiv 50%
Dacă a mâncat lăptuci ieri, nu va mai mânca azi, ci
va servi doar varză sau morcovi cu prob. 40%/ 60%
Modelul obiceiurilor alimentare ale iepurelui este un
lanț Markov, și se pot calcula proprietăți statistice ca
de ex. numărul (%) de zile în care iepurele a mâncat
morcovi, pe o perioadă lungă de timp  100 zile
Un alt exemplu (random walk)
Numit și “mersul bețivului", se poate descrie ușor in linie
(1-dim) sau in plan (2-dim)

Cazul 1-dim:
 la fiecare pas, putem schimba poziția echiprobabil cu +1 sau −1
 probabilitățile de tranziție depind doar de poziția curenta
 de ex., prob. de tranziție de la 1 la 0 și de la 1 la 2 sunt 0.5, și
toate celelalte prob. de tranziție de la 1 sunt 0, independent de
faptul că sistemul s-a aflat anterior in starea 4 sau 6
Putem estima starea cea mai probabilă in care se află
sistemul după 100 de pași, sau stările posibile și proba-
bilităţile asociate
Procese Markov
Extind modelul discret în continuu și reprezintă o
clasă de modele destul de generale (se aplică cu
succes şi în modelarea altor tipuri de sisteme)
Procesele Markov se caracterizează prin aceea că:
 starea la un moment dat t este suficientă pentru
calculul stării la momentele următoare
 nu este necesară cunoaşterea stărilor unui sistem
(continuu) la momentele anterioare
Evident, această proprietate este comună cu
lanţurile Markov, sistemul modelat fiind însă
studiat doar la momente discrete de timp
Lanţuri Markov - formalizare
Definiţie. Dacă procesul stochastic X descris de secvenţa
X={Xn}n=0,1,2,... are proprietatea P(Xn+1=j| X0,X1, X2,..., Xn)
= P(Xn+1=j| Xn), atunci el se numeşte lanţ Markov
Interpretare: Probabilitatea apariţiei unui eveniment la
“momentul” n+1 depinde doar de starea curentă (n), NU
şi de stările sistemului la momentele anterioare
Lanţurile Markov multiple de ordinul p se definesc prin
dependenţa probabilităţii apariţiei unui eveniment la
momentul n+1 de cele p stări ale sistemului la momentele
anterioare, generate prin apariţiile altor evenimente la
cele p momente anterioare
Modelul Markov simplu
Notaţii:
 (Ω, E, P) – câmp de evenimente elementare
 X={Xn}n=0,1,2,... – secvenţă stochastică (şir de v.a. independente)
 Ψ – spaţiul stărilor posibile ale procesului, de cardinal numărabil
(simplificat, Ψ e asimilat cu , adică Xn=j arată că procesul
descris de variabila aleatoare Xn este în starea j la momentul n)
 P(i,j)=P(Xn+1=j| Xn=i) – probabil. de tranziţie din starea i în j
 P=[P(i,j)]i,jΨ - matricea de tranziţie;
 (i) - probabilitatea stării iΨ
Modelul este caracterizat de 2 tipuri de ecuaţii:
 (j) =   (i)  P(i, j), j   - ecuatiile de balans
i

  (i) = 1 - ecuatia de normalizare


i
Tipologie şi proprietăţi (1)
Comportamentul probabilistic al unui lanț Markov are o
descriere simplă: odată ce acesta a ajuns într-o stare
oarecare i, va rămâne în această stare pentru un timp ce
are o distribuție exponențială cu parametrul λi. Aceasta
implică o viteză constantă λi a părăsirii stării i.
Dacă la momentul n probabilitatea stării i nu depinde
decât de starea considerată, nu şi de variabila aleatoare
Xn prin care se concretizează, adică P(Xn=i)=(i) pentru
orice n, lanţul Markov se numeşte staţionar
O mulţime de stări din spațiul stărilor, Ψ, se numeşte
închisă dacă nici o stare din afara acestei mulţimi nu
poate fi atinsă dintr-o stare aflată în mulţime
Tipologie şi proprietăţi (2)
O mulţime închisă de stări se numeşte nedecompozabilă
dacă nici o subm. proprie (strict inclusă) a sa nu e închisă
Un lanţ Markov este nedecompozabil dacă singura sa
mulţime nedecompozabilă de stări este însuşi spaţiul Ψ
 În acest caz, un proces aflat într-o stare i poate trece
cu o probabilitate nenulă în orice stare j
O stare iΨ se numeşte periodică dacă este parcursă
periodic de procesul stochastic X; cu alte cuvinte, dacă
Xk=i, atunci Xl=i doar dacă l=k+md, unde d este un
divizor comun al lui k şi l (numit perioadă), iar m
Dacă nici o stare nu este periodică, lanţul Markov se
numeşte aperiodic
Ergodicitatea lanţurilor Markov
Într-o accepţiune generală, termenul ergodic descrie un
sistem dinamic ce are aceeași comportare mediată în timp
și spațiul stărilor (valorile medii statistice sunt “egale” cu
valorile medii temporale); un lanţ Markov X={Xn}n=0,1,2,...
este ergodic dacă pentru orice funcţie f:ΨR avem:
1 n -1 a.s.
lim
n 

n k =0
f( Xk )
=
E[f(X)], unde E[f(X)] =  f(i)  (i)
i
este media pe stare a lui f(X).
Putem considera mai general, ca probabilităţi de trecere
de la starea i la momentul l la starea j la momentul m:
P(l,m)(i,j), iar prin fixarea momentelor l,m dar menţinerea
ca variabile a stărilor i,j formăm matricele de trecere:
P(l,m)=[P(l,m)(i,j)]i,jΨ
Relaţia lui Chapman
Matricele de trecere definite anterior respectă o relaţie
derivată direct din definiţia lanţului Markov simplu:
P(l,n)=P(l,m) x P(m,n), unde l<m<n (m stare intermediară)
 Pentru determinarea matricelor de trecere este deci necesar şi
suficient să cunoaştem matricele de tranziţie definite anterior:
P=[P(i,j)]i,jΨ=P(n,n+1)
Un lanţ Markov omogen este caracterizat de faptul că
probabilităţile de trecere depind numai de diferenţa
n=m-l, între momentele l şi m
În acest caz relaţia lui Chapman se poate scrie simplu:
P(m+n)=P(m)  P(n)
iar lanţul este determinat doar de matricea de tranziţie
P=P(1); evident că P(n)=Pn
Problema ergodică pentru sisteme
nedecompozabile
Este problema comportării probabilităţilor P(n)(i,j) pentru
n→∞, convergenţa către o limită:
lim P (n)(i, j)= P(i, j)| , sau
i, j  limP (n)= P
n n

Rezultate importante:
1. Dacă limita probabilităţilor de trecere (sau a matricelor
de trecere) există, acest lucru este independent de starea
iniţială din care se pleacă
 Intuitiv, se poate porni aşa la definirea ergodicităţii

2.Dacă X={Xn}n=0,1,2,... este un lanţ Markov ergodic, noul


lanţ Markov Y={Yn}n=0,1,2,... definit prin Yk=Φ(Xk, Xk+1,...),
unde Φ:R∞→R e o funcţie măsurabilă, este ergodic
3.Dacă un lanţ Markov nedecompozabil este aperiodic şi
are un număr finit de stări distincte, el este ergodic
Observaţii
Noţiunea de proces aleator, sub forma particulară sub
care a fost introdusă anterior, constituie o generalizare
directă a noţiunii de variabilă aleatoare
Un proces aleator este în esenţă o funcţie parametrizată
definită pe produsul dintre spaţiul unui parametru t (de
obicei o submulţime reală) şi câmpul de probabilitate, cu
valori reale; prin fixarea parametrului t, funcţia se reduce
la o variabilă aleatoare în sensul definit anterior
Repartiţiile variabilelor aleatoare obţinute pentru diferite
valori ale parametrului t pot fi în general identice sau
diferite, în ansamblu ele constituie repartiţiile de
probabilitate finit dimensionale ale procesului aleator
În cazul lanţurilor Markov am considerat ca spaţiu al
parametrului t mulţimea numerelor întregi nenegative
Definiţia proceselor Markov are în vedere întreaga
semidreaptă reală pozitivă*
Procese Markov - formalizare
Definiţie. Un proces aleator Y={Yt, t[0,∞)} se numeşte
proces Markov, cu un spaţiu numărabil de stări Ψ, dacă
s>0 şi jΨ: P(Yt+s=jYu, u≤s)=P(Yt+s=jYs)
Prin analogie cu un lanţ Markov, un proces Markov se
numeşte omogen dacă P(Yt+s=j|Ys) nu depinde de s
Funcţia de tranziţie pentru un proces Markov se defineşte
analog: P(t)(i,j) = P(Yt+s=j|Ys=i); proprietăţi:
 P(t)(i,j)  0, kΨ P(t)(i,k) = 1, iΨ
 Ec. Chapman-Kolmogorov: kΨ P(t)(i,k) P(s)(k,j) =
P(t+s)(i,j), sau în formă matriceală: P(t+s) = P(t)xP(s)
Lanţ Markov înglobat unui proces
Dacă:
1) W(t) e intervalul de rămânere a unui proces Markov într-o stare Y(t),
măsurat în spaţiul parametrului t: W(t) = inf{s>0: Y(t+s)≠Y(t)}, atunci:
(W(t>u)| Y(t)=i} = e-λ(i)u, unde u>0, iar λ(i) e rata de tranziţie a stării i
2) T(n), n=0,1,2,..., este timpul celei de-a n-a tranziţii a procesului,
X(n)=Y(T(n)) starea imediat următoare tranziţiei la T(n), notând X(n)=i:
P(X(n+1)=j,T(n+1)-T(n)>u |X(0),...,X(n); T(0),...T(n)} =Q(i,j)e-λ(i)u
3) Q(i,j) – probabilitatea de tranziţie din starea i în starea j, satisface
condiţiile: Q(i,j)0, Q(i,i)=0 - prin convenţie, şi kΨ Q(i,k) = 1,
atunci:
Procesul stochastic X={X(n), n=0,1,2,...} este un lanţ
Markov definit de probabilităţile de tranziţie Q(i,j), numit
lanţul Markov înglobat procesului Markov Y
Observaţii
Proprietatea evidenţiată anterior pentru procesele Markov
de a fi “lipsite de memorie” (de a nu impune memorarea
evoluţiei trecute), implică două constrângeri importante:
(M1) toată informaţia de stare trecută este irelevantă;
(M2) timpul petrecut în starea curentă este irelevant
Prima constrângere este definitorie pentru studiul tuturor
aspectelor markoviene şi păstrează destul de largă clasa
acestor sisteme
A doua restricţionează de fapt natura v.a. ce specifică
intervalul de timp între două tranziţii de stare consecutive
şi are drept consecinţă importantă faptul că, într-un lanţ
Markov, timpii între evenimentele ce determină tranziţiile
de stare sunt distribuiţi după o lege exponenţială
 Prin aceasta se determină o anumită restrângere a tipurilor de
sisteme reale ce pot fi încadrate aici
Formalismul GSMP
Un lanţ Markov poate fi înglobat şi unui proces
stochastic ce nu este proces Markov
 De ex., un lanţ Markov înglobat unui proces pentru
care probabilităţile de tranziţie între stări au legea de
distribuţie de tip Markov sau exponenţial, în timp ce
duratele de timp între tranziţii sunt arbitrar distribuite,
se numeşte proces semi-Markov
Analog, se defineşte şi un proces semi-Markov
generalizat (GSMP), în cazul unei dependenţe
mai generale de comportarea trecută
Formalismul GSMP stă la baza modelelor de
simulare, din categoria modelelor statistice
Observaţii
Un proces semi-Markov este o extensie* a unui proces
Markov, determinată de relaxarea constrângerii (M2)
Timpii între tranziţiile de stare nemaifiind cu necesitate
distribuiţi exponenţial, rezultă că un eveniment ce
determină o tranziţie de stare poate apărea în orice
moment, impus de orice lege distribuţională
Se păstrează însă constrângerea (M1), cea definitorie:
când un asemenea eveniment apare, probabilitatea de
atingere a noii stări nu depinde de stările trecute, ci doar
de starea curentă
Procesele semi-Markov pot fi definite direct ca procese
aleatoare în câmp borelian de evenimente, sau generate
prin evoluţia unui automat de stare temporal stochastic
Care procese aleatoare pot fi GSMP?
Considerăm în câmpul de probabilitate (Ω, E, P) procese
stochastice continue în timp:
x(ω,t) : (Ω, E, P)  T+  X,
unde X este o mulţime numărabilă (spaţiul stărilor)
Pentru fiecare stare xX există o mulţime unică (x)N,
numită lista de evenimente (active) asociate stării
Fiecare eveniment are un timp de apariţie asociat; fie
=xX(x) mulţimea tuturor evenimentelor
Un astfel de proces constituie un GSMP; traiectoria sa
constă din segmente constante pe porţiuni (secvenţe de
stare) şi salturi între 2 stări la momente asociate evenim.
Lungimea unei secvenţe de stare se mai numeşte şi
timp de menţinere a stării
Secvenţa evenimentelor declanşate se numeşte urmă
GSMP: bază a modelelor de execuţie
Toate evenimentele asociate unei stări sunt competitive
(şi pot fi planificate) pentru tranzitarea către starea
următoare
Fiecare eveniment are asociată şi propria sa distribuţie
de salt pentru determinarea stării următoare
La fiecare tranziţie a sistemului, noi evenimente sunt
planificate (activate), şi le sunt asociate durate de viaţă
generate conform unor distribuţii de probabilitate
Vechile evenimente nedeclanşate pot fi păstrate în noua
stare cu timpii asociaţi (GSMP neintreruptibil) sau pot fi
abandonate în noua stare (GSMP intreruptibil)
GSMP: procese aleatoare şi structuri
temporale stochastice
Formal, fiind date în câmpul de probabilitate (Ω, E, P)
mulţimile distribuţiilor {e, e} şi probabilităţilor de
tranziţie P(x, x’,e), ansamblul (X(ω,t), C(ω,t)) format
din procesul aleator X şi structura temporală stochastică
C se defineşte astfel:
 pe de o parte, prin specificarea modului de generare
a componentelor structurii temporale, pe baza
distribuţiilor 
 pe de altă parte prin specificarea legilor de evoluţie
dinamică (aleatoare, având în vedere probabilităţile
de tranziţie a stărilor P) ale procesului X
GSMP: automate de stare stochastice
şi structuri temporale stochastice
Pentru generarea GSMP se poate utiliza un automat de
stare stochastic (ale cărui stări tranzitează probabilistic),
cu o structură temporală stochastică asociată
Definiţie. Numim automat de stare stochastic structura
(X, E, , p, p0, C), caracterizată de:
 X – mulţimea stărilor (cel mult numărabilă)
 E – mulţimea evenimentelor (numărabilă)
 (x) – mulţimea evenimentelor active în starea x ((x)E)
 P : XXE  [0,1] - funcţia de probabilitate a tranziţiilor
de stare
 p0(x) – setul de probabilităţi asociate stării iniţiale x0,
p0(x)= p(x0=x);
 C={Ce, eE} - structură temporală stochastică, fiecare
componentă a sa fiind o v.a. distribuită după o anumită
lege e
Generarea GSMP
Mecanismul de alegere al evenimentului declanşator e’ este
identic cu cel pentru automatul de stare temporal
e ' arg min {re };
e ( x )
re fiind timpii reziduali (rest) rezultaţi din structura temporală
stohastică C={Ce, eE}.
Calculul noilor timpi reziduali se poate face dacă: r *  emin
 ( x )
re
şi are în vedere doar cazul neintreruptibilităţii evenimentelor
nedeclanşate:
re '  next ( c e ' ); re  re  r *, e  e '.
Prin next(ce’) s-a notat generarea unei noi durate de activare
pentru evenimentul declanşat, pe baza distribuţiei indicate e’
Secvenţa stărilor generate de un automat de stare stochastic
este un proces aleator, care îndeplineşte constrângerea M1 şi
defineşte un GSMP
Observaţii
Un automat de stare stochastic se obţine prin extensia
multiplă a unui automat de stare temporal
 structura temporală nu se mai consideră dată ci se
generează pornind de la distribuţiile  date
 funcţiile de tranziţie a stărilor, ca şi starea iniţială, nu
mai sunt date univoc, ci probabilistic
Un automat de stare stochastic generează o secvenţă de
stare stochastică {x1,x2,...,xk,xk+1,...} printr-un mecanism
de tranziţie bazat pe probabilităţile tranziţiilor de stare P
condus de secvenţa de evenimente e1,e2,...,ek,ek+1,...
 dacă xk=x, atunci xk+1=x’ cu probabilitatea p(x,x’,e’),
e’ fiind evenimentul ce declanşează tranziţia, adică
intrarea în starea x’
Procese Poisson
sunt procese stochastice {A(t)│t0} cu valori pozitive,
discrete în timp
distribuția de bază exprimă probabilitatea apariției unui
anumit număr de evenimente într-un interval de timp fix
dacă acestea au o viteză medie de apariție constantă
(cunoscută) și apariția fiecărui even. este independentă
de a celui precedent
presupunerile axiomatice pe care se bazează dezvoltarea
formulei distribuţionale Poisson și teoria acestor procese
stochastice sunt minime și cf. cu realitatea experimentală
Exemplu: un proces ce numără sosirile într-un sistem de
așteptare compus din server și coadă de aşteptare (doar
atunci când sosirile au loc pe rând si sunt independente)
Postulatele Poisson
1. Într-un interval "mic" de mărime Δt, probabilitatea de
a înregistra exact o sosire e proporţionala cu mărimea
intervalului:
P(A(t+Δt)-A(t)=1) = λ•Δt
2. În acelaşi interval "mic" de mărime Δt, probabilitatea
de a înregistra mai mult de o sosire este neglijabila:
P(A(t+Δt)-A(t)>1) = o(Δt)
3. Sosirile sunt independente: probabilitatea unei sosiri
într-un interval de timp "mic" e independenta de alte
sosiri si de timpul scurs de la ultima sosire în sistem
Distribuţia Poisson: ecuaţii (1)
Distribuţie discretă ce modelează numărul de sosiri într-
un sistem de aşteptare ca variabilă aleatoare X=A(t)
Dacă Pn(t)=P(A(t)=n): probabilitatea de a înregistra n
sosiri în sistem în intervalul (0,t)
Atunci Pn(t)0, P0(0)=1, Pn(0)=0 pt. n>0, n=0, Pn(t)=1
Rezulta imediat ca Pn(Δt) = λ·Δt + o(Δt) pentru n 1
Probabilitatea ca în 2 intervale succesive disjuncte (0, t)
si (t, t+Δt) să nu înregistrăm nici o sosire este:
P0(t+Δt) = P0(t)·P0(Δt) = P0(t)·(1 - λ·Δt - o(Δt))
Distribuţia Poisson: ecuaţii (2)
(P0(t+Δt) - P0(t)) / Δt = -λ·P0(t) - o(Δt) / Δt
Rezultă prin trecerea la limită cu Δt 0 în
ecuaţia diferenţială (cu condiţie iniţiala)
P'0(t) = -λ·P0(t), P0(0)=1, cu soluţia P0(t) = e-λt
Probabilitatea ca în cele două intervale
succesive să înregistrăm una sau mai multe
sosiri (n>0):
n
Pn(t+t)= Pn(t) P0( t)+Pn-1(t) P1( t)+  Pn-k (t) Pk ( t)
k=2
=Pn(t)(1-t -o( t))+Pn-1(t)t+o( t)
Distribuţia Poisson: soluţia
P n'(t) = - P n(t)+  P n-1(t), P 0 (0) = 1, P n(0) = 0 pentru n > 0.

Soluţia acestei ecuaţii diferenţiale este distribuţia Poisson


generală de parametru λ:
n
( t ) e- t
P n (t) = ,
n!

având atât media cât si dispersia egale cu λt


Triunghiul distribuţiilor fara memorie
Următoarele 3 propoziţii sunt echivalente:
A. Timpul între sosiri este distribuit exponenţial, după legea
F(x)=P(tx)=P(t  T+xt>T)=1-e-λx,
având media 1/λ si dispersia 1/λ2 (un proces Poisson de sosire are
o distribuţie exponenţiala pentru timpii între sosiri).
B. Probabilitatea de a avea o singura sosire în sistem într-un interval
de timp de mărime Δt (mic) este λ·Δt + o(Δt).
C. Probabilitatea de a avea n sosiri în sistem în intervalul (0,t)
respecta distribuţia Poisson:
(  t )n e -  t
P n (t) = ,
n!
obţinuta prin rezolvarea ecuaţiei diferenţiale
dP n (t)
= -  P n +  P n -1
dt
Descompunerea si compunerea
proceselor Poisson
Daca un proces Poisson cu media
λ, X=A(t), t0, consta din
evenimente de doua tipuri diferite,
cu probabilitati de apariţie p, p
respectiv 1-p, atunci si v.a. 
X1=A1(t), X2=A2(t) ce număra
apariţiile pt. cele 2 tipuri de 
(1-p)
evenimente, sunt procese Poisson
independente, cu media λp,
respectiv λ(1-p).

Daca X1=A1(t) si X2=A2(t) sunt
procese Poisson cu media λ1, 
respectiv λ2, atunci si
X=A(t)=A1(t)+A2(t) constituie un 
proces Poisson cu media λ=λ1+λ2.
Sisteme cu cozi de aşteptare
Caracterizează un sistem prin:
fluxul de intrare - descrie modul in care sosesc clienţii
(unităţile) in sistem
 in general sosirile sunt aleatoare si independente;
coada (cozile) de aşteptare, caracterizata(e) printr-o
anumita disciplina (o regula), care precizează:
 modul de formare a cozii
 modul de comportare a unităţilor care aşteaptă
 ordinea de servire a unităţilor
staţia (staţiile) de servire
 putem avea staţii multiserver
fluxul de ieşire, important in sistemele constituite din
reţele de cozi de aşteptare
Notaţia Kendall generalizată
(A/B/C):(D/E/F)
A - tipul distribuţiei de intrare
(distribuţia timpilor intre sosiri)
B - tipul distribuţiei de servire
(distribuţia timpilor de serviciu)
C - numărul de staţii (servere) in sistem
D - disciplina de servire din partea staţiilor
E - numărul maxim de clienţi admişi in sistem
(cei care aşteaptă + cei in curs de servire)
F - sursa apelanta
(populaţia din care pot proveni clienţii, finita sau nu)
Notaţia Kendall simplificată
(pentru sisteme cu coada unica de aşteptare, 1+ servere)

A/B/k/m
A - tipul distribuţiei de intrare
(distribuţia timpilor intre sosiri)
B - tipul distribuţiei de servire
(distribuţia timpilor de serviciu)
k - numărul de staţii (servere) in sistem
m - dimensiunea maxima a cozii
Codificarea tipului distribuţiei
(de intrare sau de servire)
M - distribuţia exponenţiala (notaţia M provine
de la faptul că succesiunea stărilor sistemului
formează un proces Markov, sau Memoryless)
U - distribuţia uniforma
Ek - o distribuţie Erlang cu k nivele
Hh - o distribuţie hiperexponenţială cu h nivele
G sau GI - o distribuţie generală
D - o distribuţie deterministă

Disciplina de servire
FIFO (FCFS): unităţile sunt servite in ordinea sosirii in
sistem
LIFO (LCFS): unităţile sunt servite in ordinea inversa
sosirii in sistem
SIRO: unităţile sunt servite in ordine aleatoare
SPT: prima unitate servita este cea cu timpul minim de
servire
PS (partajarea procesorului): pentru intervalul de timp in
care k unităţi solicita servirea, serverul va asigura
servirea fiecăreia pentru un timp proporţional cu 1/k
Disciplina de servire (cont.)
PR (scheme pe baza de priorităţi): clienţilor le
sunt date priorităţi la intrarea in coada, clientul
prioritar este primul servit
 Non-preemptive: o unitate aflata in curs de servire
nu poate fi întrerupta
 Preemptive: o unitate aflata in servire poate fi scoasa
de o alta intrata in sistem cu o prioritate mai mare;
reintrarea unităţii întrerupte in servire se poate face
din punctul in care a fost întrerupta sau de la început
Sisteme de aşteptare cu server unic

Procesele de sosire a unităţilor în sistem si de servire a


clienţilor sunt in general modelate ca procese aleatoare
Bufferul poate avea capacitate finita sau infinita (un
buffer de capacitate finita poate conduce la blocaje în
sistem)
Indicatori de performanta
numărul mediu de unităţi in sistem, fie in coada
de aşteptare, fie in curs de servire
timpul mediu de aşteptare
timpul mediu de răspuns sau timpul sistem
(timpul de aşteptare + timpul de servire)
lungimea maxima a cozii de aşteptare
coeficientul de utilizare a serverului (fracţiunea
de timp în care serverul este efectiv ocupat)
Legea lui Little (formula de conservare)
Daca:
N este numărul mediu de unităţi în sistem
λ este rata medie de sosire a unităţilor
(clienţilor) în sistem
T este timpul mediu de rămânere a unui client
în sistem
Atunci:
N = λ•T
Demonstraţie (grafica)


s(t) - numărul de sosiri în sistem în intervalul [0,t]
p(t) - numărul de plecări din sistem în intervalul [0,t]
 N(t)=s(t)-p(t), numărul de clienţi în sistem la mom. t
Ti - timpul petrecut de clientul i în sistem
Dreptunghiurile ce compun aria haşurata au baza egala cu
Ti, iar înălţimea egala cu 1 (sosirile au loc pe rând)
t s(t)

 N(  )d  = (  T i ) - 
0 i=1
t t

 N( )d
0
 N( )d s(t)  
lim = lim 0  lim - lim ; dar lim = 0.
t  t t  s(t ) t  t t  t t  t

t s(t)

 N( τ ) dτ s(t) T i

N = lim 0
; λ= lim ; T = lim i= 1

t t t t t s(t)


Aplicaţia 1:
Nod de reţea în regim de testare
Un nod de reţea (server) asincron aflat în testare,
primeşte/ transmite pachete de date de lungime
fixa, la intervale de timp deterministe si fixe
Timpul sistem al unui mesaj are 4 componente:
timpul de prelucrare în nod (împachetare, despachetare)
timpul de aşteptare, înaintea prelucrării și transmiterii
timpul de transmitere la nodul următor, de la primul bit
la ultimul bit (vom considera transmisia seriala)
timpul de propagare, între transmisia primului bit de
către nodul curent si recepţionarea sa de către nodul
următor (0)
Un mesaj este echivalat cu un pachet de date
Condiţii de calcul
(1) timpul (S secunde) între sosirea mesajelor este fix (deci
si rata sosirilor în sistem este fixa: λ=1/S)
(2) nodul poate prelucra si transmite simultan câte un mesaj
(3) timpii de prelucrare P si de transmitere kS pentru un
mesaj îndeplinesc cerinţele: k  1, kS+P < 2S
Rezulta ca:
Timpii de prelucrare P si transmitere kS sunt singurii
relevanţi, deoarece, datorita capacitaţii de prelucrare si
transmisie asincrona a serverului, mesajele nu aşteaptă!
Timpul sistem al fiecarui mesaj este acelaşi, egal si cu
media sa: T = kS+P
Aplicarea legii lui Little
Numărul mediu de clienţi în sistem:
N = λT = k+P/S
Interpretare:
N nu este o limita catre care converge numărul de clienţi
n sistem, N(t) - de fapt N(t) nu converge, deoarece
în
sistemul nu atinge o stare de echilibru statistic!
Totuşi, aplicarea legii lui Little este riguroasa prin
interpretarea lui N ca valoare fixa a mediei temporale a
numărului de unitati în sistem, determinat la momente
discrete de timp, în timp (foarte lung):
k
1
N = lim  N (t)dt
k  k
0
Aplicaţia 2:
Sistem de calcul în time-sharing
Task-urile necesita un timp mediu de pregătire G si de prelucrare P
(dar pot fi ţinute în coada de către procesor, în aşteptarea servirii)
Condiţii de calcul
Există întotdeauna un utilizator gata sa ia locul altuia care se
ridica de la terminal (deoarece suntem interesaţi în estimarea
valorii maxime pentru rata de ieşire a unităţilor din sistem)
Echivalent, numărul de utilizatori din sistem este constant (N)
Echivalent, putem considera reintrarea imediata în sistem a
oricărui utilizator ce încheie un task
T este timpul sistem mediu pentru un utilizator, cu structura:
T = G+D+P,
unde D este timpul de aşteptare al task-ului utilizator, ce ia
valori discrete între 0 (intrare directa în execuţie) si (N-1)•P
(aşteptare maximala după toţi ceilalţi utilizatori)
Aplicarea legii lui Little
Intre punctele A si C: λ = N/T
N N
0  D  (N-1)•P  G+P  T  G+N•P   
G+N  P G+P

Intre punctele B si C (intrarea si iesirea serverului):


N 1 N
   min{ , }
G+ N  P P G+P
(rata de procesare a joburilor nu poate depăşi 1/P)
Limitele de variaţie ale timpului mediu de aşteptare per
utilizator atunci când sistemul este integral utilizat:

max{N  P,G + P}  T  G + N  P
Variaţia ratei de prelucrare

Variaţia timpului sistem mediu
pentru un utilizator
Discuţie
Când N creste:
 rata de ieşire tinde spre valoarea maxima 1/P
 timpul mediu de aşteptare pentru un utilizator
creste proporţional
Rata de ieşire maximala depinde de parametrii-
sistem ca:
 proporţia între timpii de pregătire si de execuţie
 disciplina de servire
Limitele obţinute nu depind de parametrii-
sistem
Interpretări
Cât timp N<1+G/P, N reprezintă un factor de
blocaj în sistem, deoarece procesorul rămâne
nefolosit o fracţiune importanta din timp
(corespunzătoare momentelor de angajare simultana a
tuturor utilizatorilor în pregătirea task-urilor lor)
Când N>1+G/P, puterea de procesare a
serverului este cea care determina blocajul
Reţele de cozi de aşteptare
O reţea de cozi este un sistem ce constă din mai
multe servere, fiecare având asociat un buffer
Unităţile (clienţii) pot aparţine mai multor clase
Clienţi aparţinând unor clase diferite pot necesita
servicii diferite, chiar de la acelaşi server
După un serviciu, un client poate fi dirijat într-un
anumit mod
 De ex., pentru a cere efectuarea unui alt serviciu la
un server diferit de primul sau a părăsi sistemul
Clasificarea reţelelor de cozi după
modalitatea de dirijare
Reţele deschise - au loc:
 sosiri în sistem ale unităţilor din exterior (de obicei
modelate ca procese Poisson)
 parasiri ale sistemului de către clienţi după efectuarea
unor servicii
Reţele închise
 fiecare client circula între servere, pentru serviri, fara a
părăsi sistemul;
 din exterior nu pot intra noi clienţi în sistem, deci
numărul total de clienţi este o constanta sistem
Reţele mixte
 deschise pentru anumite clase de clienţi si închise
pentru altele
Reţele de cozi factorizabile
Distribuţia staţionara a reţelei poate fi descompusa într-un
produs de distribuţii ale fiecăruia dintre subsistemele de
aşteptare (cozile) componente, analizabile separat
 Pentru reţelele deschise  independenta distribuţiilor
staţionare ale cozilor individuale (distribuţia staţionara e
produs de distribuţii individuale obţinute considerând o rata
de sosire adecvată, modificată, ce reflectă modalitatea de
rutare în reţea, prin analiza separată a fiecărei cozi)
 Pentru reţelele închise  dependenta dintre cozi poate fi
capturata prin normalizarea soluţiei independente peste un
spaţiu de stare normalizat; în acest caz, pot apare dificultati
computaţionale în calculul constantei de normalizare
Reţele Jackson deschise
Caracteristici:
M staţii de servire (cu server unic), fiecare având un
buffer de capacitate infinita
Sosirile din exterior ale clienţilor la fiecare staţie i dintre
cele M sunt procese Poisson cu media λ0,i
După efectuarea unui serviciu de către serverul i, un
client poate cere servirea din partea unui alt server j -
cu probabilitatea qi,j, sau poate parasi sistemul - cu
probabilitatea qi,0 :
M
q i,0 = 1 -  q i, j
j=1
Ecuaţii de flux
Daca:
 timpul de [de]servire al serverului i este exponenţial
distribuit cu media si=1/μi
 λi este rata de sosire medie a clienţilor la serverul i
(includem atât clienţii ce sosesc din exteriorul
sistemului la serverul i, cât si pe cei care sosesc din
sistem, după servirea lor de către alt server)
Atunci:
M
 i =  0,i +   j  qi, j , i = 1,2,..., M
j=1
Reţele Gordon-Newell închise
Caracteristici:
Se bazează pe aceleaşi premise ca si o reţea Jackson,
exceptând faptul ca λ0,i=0 si qi,0=0, pentru orice i
(aceasta exprima faptul ca reţeaua este închisa -
numărul total N de clienţi în sistem este fix)
Daca notam starea sistem cu n=(n1,n2,...nM), unde ni e
numărul de clienţi în bufferul serverului i:
M

n= N
i=1
i
Modelarea sistemelor de calcul
Curs, anul III Calculatoare

Simularea sistemelor dinamice cu


evenimente discrete (SDED)
Simularea (Shannon): Procesul construirii
unui model pentru un sistem/proces real și
efectuare de experimente folosind modelul
pentru:
Înțelegerea comportării sistemului real
Urmărirea evoluției dinamice a sistemului
Evaluarea unor strategii de operare
Procese de modelare și simulare
Model: o reprezentare a unui sistem
 Modelele matematice (MM) – folosesc notații simbolice

și ecuații matematice
 Modelele de simulare (MS) – tipuri particulare de MM:

- Deterministe, în care un set cunoscut de intrări


corespunde cu un set unic de ieșiri
- Stochastice, una sau mai multe intrări sunt v.a.,
fapt ce determină ieșiri aleatoare
 Modelele constructive (MC), fizice

Modelare: procesul de construire a unui model


Simulare: procesul ce imită modul de operare în timp al
unui sistem/ proces real, experimentare folosind un model
Modalități de simulare discretă
stochastică (1)
Statică (ex. simularea Monte-Carlo )
1. Se definește un domeniu al intrărilor posibile
2. Se generează aleator intrări din domeniu pe baza
unei distribuții de prob. (cel mai adesea uniformă)
3. Se fac calcule deterministe folosind aceste intrări
4. Se compun rezultatele individuale în cel final
 Ex: valoarea lui /4 este aproximată de raportul
între aruncările într-un cerc și cele în pătratul
“circumscris” (vezi problema lui Buffon)
Simularea statică (Monte-Carlo)
Algoritmul de bază în simularea Monte-Carlo:
1. Este inerent paralel, prin faptul că, pe baza intrărilor posibile, se
pot realiza cvasi-simultan simulări independente
2. Eșantioane (realizări) ale fenomenului real conduc la realizări ale
iesirilor, dar și la o medie a lor
3. Simularea Monte-Carlo poate fi oprită atunci cand media realizarilor
iesirilor converge (nu se modifică semnificativ odata cu generarea
de noi intrari), sau după un număr de realizări
PROGRAM monte_carlo
CALL read_input(…)
FOR realization = 1, number_of_realizations
CALL generate_random_realization(…)
CALL compute_properties(…)
END FOR
CALL compute_average(…)
END PROGRAM monte_carlo
Modalități de simulare discretă
stochastică (2)
Dinamică (ex. simularea sistemelor dinamice cu
evenimente discrete, ca modalitate sistematică
de generare a traiectoriilor sistem dinamice)
 Producerea unor secvenţe de ipostaze (imagini) ale
SDED reprezintă dinamica (evoluţia) în timp
 Concept important: starea, caracterizată prin
variabilele de stare ce iau valori discrete
 variabilele continue nu sunt considerate independent,
ci doar în relaţie cu apariţia unor evenimente
 ele (ex. timpul) sunt discretizate si considerate ca
variabile-anexă sau deduse
Starea în simularea SDED
starea fizică – cea uzuala in TS, aici tipic discreta
Ex: nr.unităţilor din coada unui server intr-o reţea de cozi
starea matematică (ipostaza la mom. t), include:
 o informaţie completa asupra stării fizice a sistemului
la momentul t
 toate elementele necesare pentru determinarea in
mod unic a evoluţiei viitoare a sistemului,
 o ”listă a evenimentelor viitoare” (LEV) ce determină
tranziţiile de stare
 valori curente ale statisticilor cumulative/contorilor ce
vor fi folosite in calculul statisticilor rezumative finale
Dinamica simulării SDED
Este determinată de evenimente, ce pot fi:
 externe (ex. sosirea unei unităţi in sistem)
 interne (ex. terminarea servirii unui client la un server)
Apariţia unui eveniment împreună cu îndeplinirea
unor condiţii logice (reguli de operare) determină o
tranziţie de stare
În noua stare noi evenimente pot fi planificate
Celelalte evenimente ce se aflau în listă continuă
să rămână în LEV sau vor fi eliminate, conform cu
execuția evenimentului curent
Evenimentele
apariţii instantanee care schimbă starea sistem
delimitează activităţi in sistem
pot fi:
 endogene: apariţii in interiorul sistemului
 exogene: apar in mediu (in afara sistemului) dar
afectează sistemul
în simulare, parametrul timp este doar asociat
apariţiei evenimentelor, iar progresia temporală a
simulării este implicită avansului în procesarea LEV
Simulatoare
Un simulator este un program de calculator prin
care se modelează:
 comportamentul intern al unui sistem real
 procesele de intrare ce dirijează sau controlează
sistemul simulat
Ieșirea unui simulator constă dintr-un set de
măsurători, legate de reacțiile observabile și
performanța sistemului real
Măsuratorile obținute sunt doar estimatori ai
masurilor reale, deoarece simularea nu are ca
suport sistemul real, ci un model al acestuia
(mai mult sau mai puțin fidel)
Metodologii de simulare
Construcţia unui simulator se face pe baza unei
metodologii de simulare
simularea condusă de timp implică existența unui
ceas de timp central avansat cu increment fix
 generează algoritmi ineficienţi și este mult mai puţin
utilizată
 prezintă un anumit interes doar în cazul simulării
paralele (distribuite)
simularea condusă de evenimente (metodologia
generală de simulare pentru SED)
 planificarea corectă a execuţiei evenimentelor impune
cu necesitate includerea lor in lista ordonată după
timpii de apariţie ai evenimentelor (LEV)
Abordări în simularea condusă de
evenimente
Interacţiunea proceselor
 se descriu procesele asociate cu entităţile – acestea
pot fi permanente sau temporare
 simularea se constituie ca un ansamblu de procese,
ce dispun de propriile LEV
 mai multe procese pot fi simultan active in model si
interacţiunea dintre ele poate fi complexa
Planificarea de evenimente
 impune ca atunci când o activitate începe, durata ei
sa fie calculata (sau generata aleator) si evenimentul
ei de sfârşit sa fie plasat in LEV (unica)
 se definesc schimbări de stare pt. fiecare eveniment
 mecanismul de avans temporal si garantarea apariţiei
cronologice a evenimentelor e complet bazat pe LEV
Dinamica simulării in interacţiunea
proceselor
Se identifică entităţile caracteristice in sistem
Pot coexista, interacţiona si intra in competiţie
multiple copii ale entităţilor
Codul de simulare este non-procedural: in mod
separat, se descriu entităţile “tipice”
Pot exista multe tipuri de entităţi, inclusiv cele
de “excepţie” (de ex. pentru tratarea defectelor)
Este de obicei necesar un soft specializat
 Altfel, se recurge la serializare si planificare de
evenimente
 Oricum, eficienţa este mai scăzută in cazul execuţiei
secvenţiale
Diagrama proceselor asociate entităţilor

Creare Nod Nod in Coada Terminare Nod

Activitate Servire

Această tehnică este adecvată când rezolvarea


unei probleme este echivalentă cu:
 descrierea unor activităţi relativ independente
desfăşurate în paralel
 ce comunică și interacţionează pe tot parcursul
execuţiei lor 14
Planificarea de evenimente
LEV, menţinută ordonată, se compune din:
 “evenimentul iminent" - cel aflat in fruntea

listei, ce poate fi deja in curs de tratare


 alte evenimente (“potenţiale”), numite astfel
deoarece ele pot decalate, modificate sau chiar
anulate prin simularea evenimentului iminent
“Activitate" - predeterminată in cadrul simulării:
apariţia unui eveniment, urmata de tratarea lui,
modifică starea sistem și (potenţial) LEV
”Întârziere” - determinată prin calcul în decursul
simulării
Studiu de caz (cu vizualizarea LEV)
Un sistem simplu de aşteptare:
Server
Sosirea unitatilor Plecarea unitatilor
7 6 5 4

Coada (FIFO) Unitate in servire

Se urmăreşte estimarea:
 Capacitaţii de procesare
 Timpului de aşteptare in coada
 Lungimii utile a cozii
 Proporţiei de timp in care serverul este ocupat
 etc.
Modelarea analitica
Este aici posibila si utila, ca prima aproximaţie,
folosind un model M/M/1
Necesita insa presupuneri suplimentare:
 Timpii intre sosiri ~ distribuiţi exponenţial
 Timpii de servire ~ exponenţial, independent
 Trebuie ca E(t_servire) < E(t_inter-sosiri)
 Analiza se face doar in starea stabila
 Se pot obţine rezultate exacte; de ex., timpul mediu
de aşteptare in coada:
S2  A  E(interarrival time)
,
 A  S S  E(service time)
Specificare și iniţializare model
de simulare
La momentul iniţial (t=0) sistemul este gol
Date de intrare (observate sau generate, nu interesează
deocamdată cum), de ex. in minute:
Client (unit) Timp de sosire Timp intre sosiri Timp de servire
1 0.00 1.73 2.90
2 1.73 1.35 1.76
3 3.08 0.71 3.39
4 3.79 0.62 4.52
5 4.41 14.28 4.46
6 18.69 0.70 4.36
7 19.39 15.52 2.07
8 34.91 3.15 3.36
9 38.06 1.76 2.37
10 39.82 1.00 5.38
11 40.82 . .
. . . .
. . . .
Condiţie de oprire: t>20
Obiective & Măsuri de performanţă
Capacitatea de procesare totală pe durata
simulării (P)
Timpul de aşteptare mediu al unităţilor in coada
N N = nr. unităţilor ce aşteaptă in coada
 WQi WQi = timpul de aşteptare in coada al unităţii i
i 1 Ştim ca: WQ1 = 0 (?)
N N > 1 (de ce?)
Timpul de aşteptare maxim al unităţilor in coada
max WQi
i 1,...,N
Măsuri de performanţă (2)
Media (in timp) a numărului de unităţi in coada
20
0 Q (t ) dt Q(t) = numărul de unităţi in coada
20 la momentul t
Numarul maxim de unităţi in coada
max Q(t )
0t 20

Timpul mediu si maxim total in sistem al clienţilor


P
(sau timpul de ciclare)
TSi TSi = timp in sistem al clientului i
i 1 , max TSi
P i 1,...,P
Măsuri de performanţă (3)
Gradul de utilizare a serverului (proporţia
de timp in care serverul este ocupat)
20
 B(t ) dt 1 daca serveruleste ocupat la mom.t
0
, B(t )  
20 0 daca serveruleste liber la mom.t
Simularea pas cu pas: set-up
System Clock B(t) Q(t) Arrival times of Event calendar
custs. in queue

Number of Total of Area under Area under


completed waiting waiting times in queue Q(t) B(t)
times in queue

4
3
Q(t) graph 2
1
0
0 5 10 15 20

2
B(t) graph 1
0
0 5 10 15 20

Time (Minutes)
Interarrival times 1.73, 1.35, 0.71, 0.62, 14.28, 0.70, 15.52, 3.15, 1.76, 1.00, ...
Service times 2.90, 1.76, 3.39, 4.52, 4.46, 4.36, 2.07, 3.36, 2.37, 5.38, ...
Iniţializări la t = 0.00
System Clock B(t) Q(t) Arrival times of Event calendar
custs. in queue [1, 0.00, Arr]
0.00 0 0 <empty> [–, 20.00, End]

Number of Total of Area under Area under


completed waiting waiting times in queue Q(t) B(t)
times in queue
0 0.00 0.00 0.00

4
3
Q(t) graph 2
1
0
0 5 10 15 20
2
B(t) graph 1
0
0 5 10 15 20

Time (Minutes)
Interarrival times 1.73, 1.35, 0.71, 0.62, 14.28, 0.70, 15.52, 3.15, 1.76, 1.00, ...
Service times 2.90, 1.76, 3.39, 4.52, 4.46, 4.36, 2.07, 3.36, 2.37, 5.38, ...
Validarea consistenței datelor de intrare
Timpul mediu intre sosiri = 4.08 min.
Timpul mediu de servire = 3.46 min.
Deci unităţile sunt procesate mai repede decât
sosesc (in medie), ceea ce înseamnă ca:
 Sistemul va opera in regim stabil după un timp
 Daca toţi timpii intre sosiri si cei de servire ar fi exact
pe medie, unităţile nu ar intra in coada
 Acest lucru este improbabil, datele aleatoare au in
general o anumita variabilitate → coada se va forma
 Daca timpul mediu intre sosiri < timpul mediu de
servire, coada va creste “exploziv”
Statistici cumulative și contori
Numărul curent de unităţi servite
Totalul timpilor de aşteptare in coada
Numărul curent de unităţi ce au stat in coada
Timpul maxim de aşteptare in coada (curent)
Totalul timpilor in sistem
Timpul maxim in sistem (curent)
Aria de sub curba Q(t) (ce dă media lungimii cozii)
Maximul curent pentru Q(t)
Aria de sub curba B(t) (ce dă gradul de ocupare a
serverului)
Dinamica simulării in abordarea
prin planificarea de evenimente
Se identifica evenimentele caracteristice
Se iniţializează si se menţine un ceas de timp global
Se creează si se menţine LEV
Se decide logica fiecărui tip de eveniment pentru
 Tranziţiile de stare
 Actualizarea statisticilor
 Actualizarea LEV
Se procesează logic evenimentele pe rând, in ordinea
stricta a LEV (numita si calendar de evenimente)
Trebuie specificata si o regula de oprire (timp maxim
de simulare, număr maxim de unităţi procesate)
Tratarea evenimentelor (1)
La sosirea unei noi unităţi in sistem
Actualizează variabilele statistice (acumulatori persistenţi)
 Valoarea ariei de subQ(t)
 Max {Q(t)}
 Valoarea ariei de sub B(t)
Se aplica unităţii sosite “stampila de timp” curenta (se va
utiliza ulterior)
Daca serverul este liber:
 Start procesare (planifica plecarea), pune serverul pe ocupat,
pune timpul de aşteptare in coada pe 0
Altfel, daca serverul este ocupat:
 Pune unitatea “la coada”, incrementează lungimea cozii
Planifica următorul eveniment de sosire
Tratarea evenimentelor (2)
La plecarea unei unităţi din sistem, după servire
Incrementează acumulatorul corespunzător
Calculează timpul in sistem al unităţii (momentul curent –
momentul sosirii)
Actualizează variabilele statistice (ca la sosire)
Daca coada este nevidă:
 Scoate prima unitate din coada, calculează timpul sau de
aşteptare in coada, începe servirea (planifica evenimentul de
plecare)
Altfel (daca coada este vida):
 Trece serverul in starea liber (nu se mai planifica vreun
eveniment de plecare in LEV)
Tratarea evenimentelor (3)
La sfârşitul simulării:
Se actualizează statisticile
Se calculează masurile de performanta folosind valorile
curente, care sunt si finale, ale acumulatorilor

Observaţii:
La începutul simulării, trebuie făcute iniţializări (de ex. in
LEV se pune primul eveniment de sosire si evenimentul
de sfârşit)
După tratarea fiecărui eveniment, se continua cu primul
eveniment din LEV (eveniment iminent)
t = 0.00, sosirea unităţii 1
System Clock B(t) Q(t) Arrival times of Event calendar
custs. in queue [2, 1.73, Arr]
1 0.00 1 0 <empty> [1, 2.90, Dep]
[–, 20.00, End]
Number of Total of Area under Area under
completed waiting waiting times in queue Q(t) B(t)
times in queue
1 0.00 0.00 0.00

4
3
Q(t) graph 2
1
0
0 5 10 15 20
2
B(t) graph 1
0
0 5 10 15 20

Time (Minutes)
Interarrival times 1.73, 1.35, 0.71, 0.62, 14.28, 0.70, 15.52, 3.15, 1.76, 1.00, ...
Service times 2.90, 1.76, 3.39, 4.52, 4.46, 4.36, 2.07, 3.36, 2.37, 5.38, ...
t = 1.73, sosirea unităţii 2
System Clock B(t) Q(t) Arrival times of Event calendar
custs. in queue [1, 2.90, Dep]
2 1 1.73 1 1 (1.73) [3, 3.08, Arr]
[–, 20.00, End]
Number of Total of Area under Area under
completed waiting waiting times in queue Q(t) B(t)
times in queue
1 0.00 0.00 1.73

4
3
Q(t) graph 2
1
0
0 5 10 15 20
2
B(t) graph 1
0
0 5 10 15 20

Time (Minutes)
Interarrival times 1.73, 1.35, 0.71, 0.62, 14.28, 0.70, 15.52, 3.15, 1.76, 1.00, ...
Service times 2.90, 1.76, 3.39, 4.52, 4.46, 4.36, 2.07, 3.36, 2.37, 5.38, ...
t = 2.90, plecarea unităţii 1
System Clock B(t) Q(t) Arrival times of Event calendar
custs. in queue [3, 3.08, Arr]
2 2.90 1 0 <empty> [2, 4.66, Dep]
[–, 20.00, End]
Number of Total of Area under Area under
completed waiting waiting times in queue Q(t) B(t)
times in queue
2 1.17 1.17 2.90

4
3
Q(t) graph 2
1
0
0 5 10 15 20
2
B(t) graph 1
0
0 5 10 15 20

Time (Minutes)
Interarrival times 1.73, 1.35, 0.71, 0.62, 14.28, 0.70, 15.52, 3.15, 1.76, 1.00, ...
Service times 2.90, 1.76, 3.39, 4.52, 4.46, 4.36, 2.07, 3.36, 2.37, 5.38, ...
t = 3.08, sosirea unităţii 3
System Clock B(t) Q(t) Arrival times of Event calendar
custs. in queue [4, 3.79, Arr]
3 2 3.08 1 1 (3.08) [2, 4.66, Dep]
[–, 20.00, End]
Number of Total of Area under Area under
completed waiting waiting times in queue Q(t) B(t)
times in queue
2 1.17 1.17 3.08

4
3
Q(t) graph 2
1
0
0 5 10 15 20
2
B(t) graph 1
0
0 5 10 15 20

Time (Minutes)
Interarrival times 1.73, 1.35, 0.71, 0.62, 14.28, 0.70, 15.52, 3.15, 1.76, 1.00, ...
Service times 2.90, 1.76, 3.39, 4.52, 4.46, 4.36, 2.07, 3.36, 2.37, 5.38, ...
t = 3.79, sosirea unităţii 4
System Clock B(t) Q(t) Arrival times of Event calendar
custs. in queue [5, 4.41, Arr]
4 3 2 3.79 1 2 (3.79, 3.08) [2, 4.66, Dep]
[–, 20.00, End]
Number of Total of Area under Area under
completed waiting waiting times in queue Q(t) B(t)
times in queue
2 1.17 1.88 3.79

4
3
Q(t) graph 2
1
0
0 5 10 15 20
2
B(t) graph 1
0
0 5 10 15 20

Time (Minutes)
Interarrival times 1.73, 1.35, 0.71, 0.62, 14.28, 0.70, 15.52, 3.15, 1.76, 1.00, ...
Service times 2.90, 1.76, 3.39, 4.52, 4.46, 4.36, 2.07, 3.36, 2.37, 5.38, ...
t = 4.41, sosirea unităţii 5
System Clock B(t) Q(t) Arrival times of Event calendar
custs. in queue [2, 4.66, Dep]
5 4 3 2 4.41 1 3 (4.41, 3.79, 3.08) [6, 18.69, Arr]
[–, 20.00, End]
Number of Total of Area under Area under
completed waiting waiting times in queue Q(t) B(t)
times in queue
2 1.17 3.12 4.41

4
3
Q(t) graph 2
1
0
0 5 10 15 20
2
B(t) graph 1
0
0 5 10 15 20

Time (Minutes)
Interarrival times 1.73, 1.35, 0.71, 0.62, 14.28, 0.70, 15.52, 3.15, 1.76, 1.00, ...
Service times 2.90, 1.76, 3.39, 4.52, 4.46, 4.36, 2.07, 3.36, 2.37, 5.38, ...
t = 4.66, plecarea unităţii 2
System Clock B(t) Q(t) Arrival times of Event calendar
custs. in queue [3, 8.05, Dep]
5 4 3 4.66 1 2 (4.41, 3.79) [6, 18.69, Arr]
[–, 20.00, End]
Number of Total of Area under Area under
completed waiting waiting times in queue Q(t) B(t)
times in queue
3 2.75 3.87 4.66

4
3
Q(t) graph 2
1
0
0 5 10 15 20
2
B(t) graph 1
0
0 5 10 15 20

Time (Minutes)
Interarrival times 1.73, 1.35, 0.71, 0.62, 14.28, 0.70, 15.52, 3.15, 1.76, 1.00, ...
Service times 2.90, 1.76, 3.39, 4.52, 4.46, 4.36, 2.07, 3.36, 2.37, 5.38, ...
t = 8.05, plecarea unităţii 3
System Clock B(t) Q(t) Arrival times of Event calendar
custs. in queue [4, 12.57, Dep]
5 4 8.05 1 1 (4.41) [6, 18.69, Arr]
[–, 20.00, End]
Number of Total of Area under Area under
completed waiting waiting times in queue Q(t) B(t)
times in queue
4 7.01 10.65 8.05

4
3
Q(t) graph 2
1
0
0 5 10 15 20
2
B(t) graph 1
0
0 5 10 15 20

Time (Minutes)
Interarrival times 1.73, 1.35, 0.71, 0.62, 14.28, 0.70, 15.52, 3.15, 1.76, 1.00, ...
Service times 2.90, 1.76, 3.39, 4.52, 4.46, 4.36, 2.07, 3.36, 2.37, 5.38, ...
t = 12.57, plecarea unităţii 4
System Clock B(t) Q(t) Arrival times of Event calendar
custs. in queue [5, 17.03, Dep]
5 12.57 1 0 () [6, 18.69, Arr]
[–, 20.00, End]
Number of Total of Area under Area under
completed waiting waiting times in queue Q(t) B(t)
times in queue
5 15.17 15.17 12.57

4
3
Q(t) graph 2
1
0
0 5 10 15 20
2
B(t) graph 1
0
0 5 10 15 20

Time (Minutes)
Interarrival times 1.73, 1.35, 0.71, 0.62, 14.28, 0.70, 15.52, 3.15, 1.76, 1.00, ...
Service times 2.90, 1.76, 3.39, 4.52, 4.46, 4.36, 2.07, 3.36, 2.37, 5.38, ...
t = 17.03, plecarea unităţii 5
System Clock B(t) Q(t) Arrival times of Event calendar
custs. in queue [6, 18.69, Arr]
17.03 0 0 () [–, 20.00, End]

Number of Total of Area under Area under


completed waiting waiting times in queue Q(t) B(t)
times in queue
5 15.17 15.17 17.03

4
3
Q(t) graph 2
1
0
0 5 10 15 20
2
B(t) graph 1
0
0 5 10 15 20

Time (Minutes)
Interarrival times 1.73, 1.35, 0.71, 0.62, 14.28, 0.70, 15.52, 3.15, 1.76, 1.00, ...
Service times 2.90, 1.76, 3.39, 4.52, 4.46, 4.36, 2.07, 3.36, 2.37, 5.38, ...
t = 18.69, sosirea unităţii 6
System Clock B(t) Q(t) Arrival times of Event calendar
custs. in queue [7, 19.39, Arr]
6 18.69 1 0 () [–, 20.00, End]
[6, 23.05, Dep]
Number of Total of Area under Area under
completed waiting waiting times in queue Q(t) B(t)
times in queue
6 15.17 15.17 17.03

4
3
Q(t) graph 2
1
0
0 5 10 15 20
2
B(t) graph 1
0
0 5 10 15 20

Time (Minutes)
Interarrival times 1.73, 1.35, 0.71, 0.62, 14.28, 0.70, 15.52, 3.15, 1.76, 1.00, ...
Service times 2.90, 1.76, 3.39, 4.52, 4.46, 4.36, 2.07, 3.36, 2.37, 5.38, ...
t = 19.39, sosirea unităţii 7
System Clock B(t) Q(t) Arrival times of Event calendar
custs. in queue [–, 20.00, End]
7 6 19.39 1 1 (19.39) [6, 23.05, Dep]
[8, 34.91, Arr]
Number of Total of Area under Area under
completed waiting waiting times in queue Q(t) B(t)
times in queue
6 15.17 15.17 17.73

4
3
Q(t) graph 2
1
0
0 5 10 15 20
2
B(t) graph 1
0
0 5 10 15 20

Time (Minutes)
Interarrival times 1.73, 1.35, 0.71, 0.62, 14.28, 0.70, 15.52, 3.15, 1.76, 1.00, ...
Service times 2.90, 1.76, 3.39, 4.52, 4.46, 4.36, 2.07, 3.36, 2.37, 5.38, ...
t = 20.00, sfârşitul simulării
System Clock B(t) Q(t) Arrival times of Event calendar
custs. in queue [6, 23.05, Dep]
7 6 20.00 1 1 (19.39) [8, 34.91, Arr]

Number of Total of Area under Area under


completed waiting waiting times in queue Q(t) B(t)
times in queue
6 15.17 15.78 18.34

4
3
Q(t) graph 2
1
0
0 5 10 15 20
2
B(t) graph 1
0
0 5 10 15 20

Time (Minutes)
Interarrival times 1.73, 1.35, 0.71, 0.62, 14.28, 0.70, 15.52, 3.15, 1.76, 1.00, ...
Service times 2.90, 1.76, 3.39, 4.52, 4.46, 4.36, 2.07, 3.36, 2.37, 5.38, ...
Operaţii la sfârşitul simulării
Timpul mediu de aşteptare in coada:
Timpul total in coada 15 .17
  2.53 min./unit.
Nr.de unitati 6
Media in timp a numărului de unităţi in coada:
Aria de sub curba Q(t ) 15.78
  0.79 unitati
Valoarea finala de ceas 20

Utilizarea serverului:
Aria de sub curba B(t ) 18.34
  0.92
Valoarea finala de ceas 20
Replicarea simulării
Valoarea unei singure simulări (“replicări”) nu este foarte
semnificativa dpdv statistic
Tabelul următor permite compararea a 5 replicări:

Se poate observa variabilitatea mare intre replicări


Modificarea parametrilor
In mod uzual, simularea se aplica in mod repetat
nu doar prin simpla replicare, ci pentru diferite
configuraţii ale modelului, cu parametri modificaţi
In acest fel se face acordarea si optimizarea
modelului (după anumite criterii)
Exemplu: ce se întâmplă dacă se dublează rata
sosirilor? (coada crește exponențial!)
 Datele de intrare se obţin prin înjumătăţirea timpilor
intre sosiri
 Se va relua execuţia modelului pentru configuraţia
modificata
 Se vor executa 5 replici ale simulării
Fazele unui studiu de simulare
Formularea problemei si planului Nu

Model programat valid?


Da
Colectare date si definire model
Proiectarea experimentelor

Model conceptual valid? Executia experimentelor


Nu
Da

Constructia programului si verificarea Analiza rezultatelor simularilor

Executii pilot
Interpretare si documentare program
Faza de planificare
a) Specificarea problemei
• intrebari esentiale: “Ce se cere? La ce va folosi?”
• uneori se poate formula doar obiectivul atasat unei
descrieri vagi a procesului studiat
b) Estimarea resurselor
• implica alegerea modalitatii de abordare, studii de
fezabilitate, evaluarea costurilor de timp si personal,
ca si stabilirea graficului de derulare a activitatilor
c) Analiza sistemului si a datelor
• se identifica diversele nivele de detaliere necesare
Faza de modelare
Consta in:
a) Construcţia modelului: pot exista mai multe
modele candidate, trebuie ales unul
b) Colectarea datelor: datele reale permit
identificarea modelului adecvat
c) Translaţia modelului: codificarea intr-un
program ("model programat")
Faza de verificare/validare (1)
Verificarea consta in depanare si testare program
Validarea este mai ampla – la întrebarea “reflecta
programul in mod fidel sistemul?” răspunsul e DA
numai daca se respecta câteva principii de lucru
In dezvoltarea unui model valid asociat datelor de
intrare distingem următorii paşi:
a. colectarea datelor brute din sistemul studiat
b. identificarea distribuţiei statistice a datelor, prin:
- construirea distribuţiei frecvenţiale a datelor de intrare
(histograma);
- asumarea unei presupuneri distribuţionale (in practica apar mai
frecvent doar câteva distribuţii standard)
Faza de verificare/validare (2)
Paşi in validare (cont.):
c. estimarea parametrilor distribuţiei asumate
d. testarea concordantei intre distribuţia asumata (cu
parametri estimaţi) si datele de intrare, folosind:
 testul χ2
 testul Kolmogorov-Smirnov
Daca testul de concordanta eşuează, ipoteza că datele
urmează legea distribuţionala propusa trebuie respinsa
si se încearcă o noua ipoteza distribuţionala (se reia cu
pasul b)
Daca mai multe iteraţii ale acestei proceduri eşuează
in găsirea unei concordante intre distribuţia asumata si
datele colectate, trebuie folosita distribuţia empirica
Faza de execuţie
Consta in:
a) Proiectarea experimentelor: se aleg execuţii
generice
b) Experimentare: se executa programul cu date
reale!
c) Analiza: se interpretează rezultatele
d) Implementarea/Documentarea:
• cum se implementează deciziile rezultate din simulare?
• cum se documentează modelul in vederea reutilizării?
Măsurători de performanţă
Fundamentale sunt răspunsurile la câteva întrebări:
Ce alternative se simulează (se executa)?
Cat de lunga este o execuţie?
Ce se măsoară?
Maximul, minimul, totalul, media, varianta, momente de
ordin superior, distribuţii specifice de frecventa, timpii
intre sosiri, timpii de servire, lungimi ale cozilor, rate de
pierdere sau eroare etc.
Care sunt proprietăţile (statistice) ale "masurilor"
de care suntem interesaţi?
Sunt necesare si alte execuţii? Trebuie schimbat
modelul? Trebuie schimbaţi parametrii?
Planificarea de evenimente
Rămâne cea mai adecvată programării standard,
si cea mai eficienta in cazul execuţiei secvenţiale
Se utilizează de obicei funcţii de biblioteca pentru
 Prelucrarea listelor
 Generarea numerelor aleatoare
 Generarea variabilelor aleatoare
 Colectarea statisticilor
 Managementul (ordonarea) LEV si ceasului de timp
“Nod de sincronizare" - ansamblul procedurilor ce
implica întreţinerea LEV (adăugarea, suprimarea
sau modificarea de evenimente)
Ipostaza sistem tipica
Exemplu de programare
Pentru același sistem simplu de aşteptare compus
din coada de dimensiune maxima n=500 si server
COADA SERVER

Sosirea clienţilor
Clienţi in Client in Plecarea clienţilor
aşteptare servire

Considerat complet stochastic:


 Procesul de sosire este aleator
 Timpul de servire este aleator
Definire sistem si obiective
Entităţi: Clienţi, Coada, Server
 nu este necesara reprezentarea explicita a clienţilor
(individualizarea lor)
Evenimente: sosire client, plecare client
Date colectate
 Utilizare server
 Lungimea maxima a cozii

 Timp de aşteptare client(i)

 Timp de răspuns al sistemului

 Procentajul clienţilor ce aşteaptă peste o valoare prag


Definirea statica a modelului
Starea sistem este descrisa de variabilele:
 lqt=numărul de clienţi aflaţi in coada de aşteptare la un
moment dat
 lst=numărul de clienţi aflaţi in servire la un moment dat, 1 sau
0 (sau starea serverului, ocupat sau liber)
Evenimente:
 sosirea unui client in sistem;
 plecarea unui client din sistem prin terminarea servirii sale;
Activităţi:
 timpul între sosiri, definit de o tabela ce se generează aleator
 timpul de servire, definit in acelaşi mod
Întârzieri: aşteptări in coada, pana serverul devine liber
Descrierea dinamica a modelului
Cum afectează fiecare eveniment starea sistem,
atributele entităţilor, conţinutul seturilor?
Cum sunt activităţile definite (determinist, probabilistic,
printr-o ecuaţie matematica)?
Care sunt evenimentele de început/sfârşit al activităţii?
Poate o activitate începe indiferent de starea sistem,
sau este condiţionata de starea sistem?
Care sunt evenimentele de început/sfârşit al fiecărui tip
de întârziere?
Care sunt condiţionările pentru ca o întârziere sa
“înceapă" sau sa se "termine"?
Care este starea sistemului la momentul iniţial?
Ce evenimente "primare" trebuie generate la momentul
iniţial pentru ca simularea sa poată începe?
Exemplu numeric
Timpi
Timp Unit Timp Unit Timp Încep Timp Termin
Unit între
sosire servire sosire servire servire servire
sosiri

1 - 0 1 2 1 0 0 2 2

2 2 2 2 1 2 2 2 1 3

3 4 6 3 3 3 6 6 3 9

4 1 7 4 2 4 7 9 2 11

5 2 9 5 1 5 9 11 1 12

6 6 15 6 4 6 15 15 4 19
Algoritmul de planificare evenimente/
avans al timpului simulării
1) Scoaterea evenimentului iminent din LEV
2) Avansul ceasului sistem (CLOCK) la momentul
apariţiei evenimentului
3) Execuţia evenimentului iminent
actualizarea stării sistemului, a atributelor entităţilor
sistemului, a seturilor
4) Generarea evenimentelor viitoare si plasarea lor
in LEV in poziţia corecta
5) Actualizarea rezultatelor cumulative si statistice
Tratare eveniment “sosire client”
Planifica următoarea sosire

Server ocupat?
Nu Da

Plasează clientul sosit in coada


Ocupa server

Planifica eveniment de plecare client

Return
Tratare eveniment “plecare client”
Coada vida?
Nu Da

Selecteaza client din coada Elibereaza serverul


pentru servire

Actualizeaza statisticile pentru server


Actualizeaza statisticile pentru coada
si noul client in servire

Colecteaza datele pentru clientul


care pleaca
Planifica evenimentul de plecare

Return
Programarea modelului
Poate fi făcuta intr-un limbaj procedural (C)
Proiectul C (anexat in fisierul SimProg.pdf) e
compus din fişierele sursa:
 "sp.c“: simulatorul principal, ce conţine rutinele de
iniţializare, avans timp, tratare a evenimentelor si
generare a rapoartelor
 "rndevg.c“: conţine rutine pentru generarea
distribuţiilor statistice
 "rndevg.h“: fişierul header ce conţine definiţiile de
prototipuri si constante
Un număr de 10 execuţii fără modificarea
parametrilor modelului permite o analiza simpla
Execuţia modelului programat
Valoarea de Utilizarea Lungimea Timpul total % clientilor ramasi Timpul de Numarul
start (seed) serverului maxima a al simularii > 4 min.în sistem raspuns plecarilor din
(%) cozii (min.) mediu (min.) sistem

61011 72.55 13 44095.2 71.47 3.2 10 000

61136 70.65 16 45352.9 70.59 3.2 10 000

61190 71.47 11 44751.2 71.08 3.2 10 000

61209 71.39 20 44774.6 71.07 3.2 10 000

61225 72.11 11 44569.0 71.45 3.2 10 000

61237 70.95 13 45121.3 70.01 3.2 10 000

61249 72.03 11 44461.9 70.73 3.2 10 000

61265 72.25 10 44412.3 71.32 3.2 10 000

61280 71.40 16 44675.1 71.23 3.2 10 000

61299 71.57 14 44909.6 71.07 3.2 10 000

Media 71.64 13.5 44712.3 71.002 3.2 10 000

Abaterea 0.564 2.94 343.1 0.426 0 0


Modelarea sistemelor de calcul
Curs, anul III Calculatoare

Generarea datelor de intrare pentru


simulare
Date de intrare în simularea
dinamică discretă
Fie un SED pentru care “știm” că timpul necesar
servirii unui client este cuprins între 10 si 20 de
minute, fiind distribuit uniform (media fiind 15
minute). Cum putem determina timpii de servire
ai primilor 100 clienți – ca date de bază de
intrare pentru simularea SDED?
 Recurgând din nou la sistemul și procesul real
și la colectarea datelor
 Prin generarea automată (distribuțională), cu
grija de a respecta parametrii procesului real
Colectarea datelor
În general grea, costisitoare, frustrantă – în plus:
 Sistemul real poate să nu existe
 Datele sunt din sisteme/ procese “similare” modelului si
pot sa nu fie nu exact coincidente, (in)disponibilitatea
lor poate impune chiar schimbarea modelului
 Datele pot fi incomplete sau prea “incărcate” (zgomot
sau cantități mari de date)
Ieșirile sunt sensibile la incertitudinea intrărilor
(“garbage in, garbage out”)
Gradul de acuratețe (detaliere) al modelului este
dependent (și) de calitatea datelor
 Variabilitatea datelor e o condiție a validității modelului
Generarea datelor
Ca alternativă la colectarea datelor, în exemplul
anterior, am putea folosi un șir de 100 numere
aleatoare uniform distribuite între 10 si 20, cu
media “apropiată” de 15 (cât de apropiată? cu
atât mai mult cu cât numărul lor este mai mare)
Apare ca metodă generală aceea de a desprinde
observații sintetice din proces pentru a genera
date de intrare pentru model
Problema este de a “potrivi” datele generate cu
cele observate, deci:
 Datele de intrare să fie generate dar și validate!
Discuție
Este clar ca in multe cazuri simularea implica
elemente aleatoare/ stochastice
In exemplul anterior nu stim exact, apriori cat va
lua servirea unui client, dar stim ca timpul de
servire urmeaza o distributie de probabilitate
Fiindca modelul de simulare este oricum o
aproximare, scopul generarii n.a. si v.a. este sa
aproximam “corect” datele de intrare
“Corect” inseamna ca generarea de numere si
variabile aleatoare trebuie sa produca dintr-o
formula distributionala un set de esantioane
(numerice), avand doua proprietati importante…
Proprietățile eșantioanelor
Identitatea distribuției (potrivire, uniformitate):
Esantioanele produse trebuie sa aiba aceeasi
distributie ca si datele reale din proces
 in termeni statistici, c.p. media si varianta esantionului
sunt aceleasi cu media si varianta populatiei de intrare
Independența: Cand un set de esantioane este
plasat in secventa in care este produs, NU trebuie
sa existe vreun sablon (chiar si neintentionat!) de
repetare a acelei secvente
Independenţa datelor
Două seturi de date (eșantioane) sunt independente dacă
orice subset de valori dintr-unul nu oferă nici o informaţie
despre alt subset de valori (“corespondente”) din celălalt
2 sau mai multe v.a. sunt independente dacă pentru orice
submulţime proprie de v.a. orice eveniment determinat de
v.a. din submulţime este independent de orice eveniment
determinat de variabilele din mulţimea complementară
2 sau mai multe v.a. {X1, X2, . . . , } sunt independente
şi identic distribuite dacă variabilele au aceeaşi distribuţie
de probabilitate şi sunt independente (i.i.d.)
2 observaţii sunt independente dacă obţinerea primei
observaţii nu influenţează obţinerea celeilalte observaţii
Echivalent, includerea în eşantion a unui element nu
influenţează includerea altui element
Cum garantăm similaritatea
distribuției cu datele?
Presupunem ca datele ce pot fi culese din sistem
sunt IID (independente si identic distribuite)
Mai intai se incearca gasirea unei distributii de
probabilitate, ce va fi apoi utilizata in generarea
intrarilor modelului de simulare
Cea mai buna distributie “teoretica” este cea
care se potriveste cel mai bine cu cea a datelor
empirice (culese)
“Adecvarea” distributiei teoretice (tip, parametri)
cu datele empirice este uneori dificilă
Metoda histogramelor
Modalitate simpla de a vedea daca un esantion
de date este adecvat unei distributii; etape:
 Se deseneaza histograma frecvențelor aparitiei datelor
 Se estimeaza parametrii unei distributii posibile
 Se deseneaza functia densitatii de probabilitate
 Se determina cat de similare sunt cele doua forme
frecvente

valori ale datelor


Testul Hi-patrat (Pearson)
Formalizeaza notiunea ant. de Oi

frecvente
similaritate a distributiilor
 Oi reprezinta numarul valorilor
de date observate in cel de-al
i-lea interval (sunt k intervale)
valori ale datelor
 pi este prob. ca o valoare sa
intre in cel de-al i-lea interval Ei  npi
sub distributia ipotetica
 Ar fi de asteptat sa observam

pdf
in intervalul I, Ei = npi, dintr-un
total de n observatii
 Se calculeaza χ02, care, daca
pp. distributionala este corecta, valori ale datelor
va urma o distr.χ2 cu k-s-1 gr. k
 Oi  Ei 
2
2
de libertate (k e nr. intervale, s    
0 
este nr.parametrilor distributiei i 1  Ei 
ipotetice)
Generarea numerelor aleatoare
Apare ca instrument de lucru in cazul sistemelor si
proceselor stochastice (nedeterministe) – ce necesita
modele cu elemente stochastice
Implica utilizarea distributiilor de probabilitate ca
elemente de baza de modelare
Larg utilizata si in alte domenii:
 Simularea statica (Monte-Carlo) – de ex. calculul lui 
 Analiza probabilistica a algoritmilor – cu conditia sa putem
caracteriza in mod rezonabil distributia datelor de intrare
 Criptografia – la baza constructiei cheilor de criptare si a
altor parametri ai algoritmilor si protocoalelor criptografice
...
Ce este un numar “aleator”?
Când putem spune că un anumit număr e aleator?
“Aleatorizarea” (randomness) este un proces
nedeterminist ce produce astfel de numere (fara
insa a putea fi siguri niciodata asupra urmatoarei
valori produse)
Surse bune de numere pur
aleatoare: ruleta, dar si alte
dispozitive fizice (electronice,
radioactive) mult mai rapide
 Totusi, acestea sunt foarte greu
de utilizat in simulare
Numere pseudo-aleatoare
Cel mai important in simulari, care de obicei se
fac pentru a compara diverse evolutii ale unui
sistem, este pastrarea conditiilor de operare
Aceste conditii sunt influentate de esantioanele
datelor de intrare, la randul lor determinate de
numerele aleatoare folosite
trebuie pastrata sursa de numere aleatoare in
toate simularile
chiar daca sunt pseudo-aleatoare (generate de
algoritmi - deterministi) acestea trebuie sa
satisfaca anumite proprietati statistice
Proprietati ale unui “bun” generator
si numerelor aleatoare generate
Generatorul trebuie sa fie rapid
Memoria necesara algoritmului de generare nu trebuie
sa fie excesiva
Numerele generate trebuie sa fie independente statistic
(fara autocorelare)
Perioada de repetitie a numerelor generate trebuie sa fie
suficient de mare
Pericolul degenerarii sirului de numere trebuie eliminat
(nu trebuie ca de la un anumit rang, numerele sa nu mai
respecte conditiile impuse)
Sirul de numere aleatoare trebuie sa fie reproductibil
Metode analitice de generare a n.a.(1)
Mijlocul patratului (Von Neumann)
 Un numar initial (seed) este ridicat la patrat, si cifrele
din mijloc formeaza primul n.a. (prin repozitionarea
punctului zecimal se poate obtine un numar intre 0 si
1); acesta se ridica din nou la patrat si se obtine prin
aceeasi tehnica al doilea n.a., iar procedeul continua
 Sursă slaba de n.a. – prin faptul ca anumite secvente

de numere aleatoare se repeta


 Pornind de la ideea de baza, s-au construit algoritmi
mai buni, bazati pe metode recurente de generare
Exemplul 1
X0 = 9524 (seed)
X02 = 95242 = 90706576  X1=7065
R1= 0.7065
X12 = 70652 = 49914225  X2=9142
R2 = 0.9142
X22= 91422=83576164  X3 = 5761
R3 = 0.5761

Exemplul 2
X0 = 1258 (seed)
1258, la patrat = 1582564
5825 33930625
9306 86601636
6016 36192256
1922 3694084
6940 48163600
1636 2676496
6764.....

Probleme ale algoritmului “mid-square”.
Repetarea secventelor
Exemplu
X0 = 5197
X02 = 51972 = 27008809  X1=0088
R1= 0.0088
X12 = 882 = 00007744  X2=0077
R2= 0.0077
X22= 772=00005929  X3 = 0059
R3 = 0.0059
Zero-urile dupa punct apar in fiecare n.a. Ri din sir
Probleme ale algoritmului “mid-square”.
Degenerarea sirului
Exemplu
Xi = 6500
Xi2 = 65002 = 42250000  Xi+1=2500
Ri= 0.2500
Xi+12 = 25002 = 06250000  Xi+2=2500
Ri+1=0.2500
...
Toate valorile ulterioare ale lui Xi, Ri vor fi 2500
Concluzie: algoritmul mid-square nu este bun!
Metode analitice de generare a n.a.(2):
Metode congruentiale liniare (Lehmer,1951)
LCG produc secvente de intregi X1, X2,… intre 0..m -1
conform cu urmatoarea relatie recursiva:
Xi+1 = (aXi + c) mod m, i = 0, 1, 2,…
 Numim valoarea initiala X0 sămânţa generatorului (seed), a
este multiplicatorul constant, c e incrementul, iar m modulul
 Toti parametri sunt intregi
 Dupa cum c ≠ 0 sau c = 0, avem doua forme:
 Metoda congruentiala mixta
 Metoda congruentiala multiplicativa
 Selectia valorilor pentru a, c, m si x0 afecteaza foarte mult
proprietatile statistice si lungimea ciclului
 N.a. distribuite uniform intre 0 si 1, U(0,1) se genereaza cu
relatia: Ui = Xi /m, i = 1, 2, …
Metoda congruentiala mixta
Se caracterizeaza prin c ≠ 0
Exemplu:
O secventa de n.a. cu x0 = 27, a = 17, c = 43,
m = 100
X1 = (17 x 27 + 43) mod 100 = 502 mod 100 = 2
R1 = 2/100 = 0.02
X2 = (17 x 2 + 43) mod 100 = 77 mod 100 = 77
R2 = 77/100 = 0.77
X3 = (17 x 77 + 43) mod 100 = 1352 mod 100 = 52
R3 = 52/100 = 0.52
...
Metoda congruentiala multiplicativa
Se caracterizeaza prin c = 0
Exemplu:
Putem genera n.a. intre 0 si 1 prin aplicarea
relatiei:
xi
x i 1 
m
si limitarea numarului de cifre zecimale retinut
dupa efectuarea impartirii
Probleme ale LCG
X0=19, Xi+1=(22Xi + 4)mod 63
i 22Xi+4 Xi+1 Ui i 22Xi+4 Xi+1 Ui
-------------------------- ---------------------------
0 19 11 378 0 .0000
1 422 44 .6984 12 4 4 .0635
2 972 27 .4286 13 92 29 .4603

3 598 31 .4921
62 708 15 .2381
4 686 56 .8889 63 334 19 .3016
5 1236 39 .6190 64 422 44 .6984
6 862 43 .6825 …
7 950 5 .0794 Observam: repetarea sirului dupa
8 114 51 .8095 generarea a 64 valori (modulul), dar
9 1126 55 .8730 si faptul ca repetitia valorilor nu s-a
10 1214 17 .2698 produs inainte.
Proprietati generale ale LCG
Orice LCG va cicla (cel mult dupa generarea a m n.a.);
lungimea ciclului s.n. perioada LCG
Perioada maxima pentru un LCG este m
Conditia necesara de a obtine un bun generator este “m
foarte mare”
Perioada este de obicei mai mica decat m
Exemplu:
X0 = 20, Xi+1 = (50Xi + 20)mod 100
X1 = (50*20 + 20)mod 100 = (1020)mod 100 = 20
Conditia “m foarte mare” nu este si suficienta pentru a
obtine un bun generator
Exista conditii generale ce garanteaza un bun generator?
Teorema 1
Un LCG are perioada maxima d.d.:
1. (m,c)=1, adică m si c sunt prime intre ele
2. daca exista q, prim, ce divide m, atunci acesta divide a-1
3. daca 4 divide m, atunci 4 divide a-1.
Demonstratia este f. dificila (teorema de numere prime)
Exemplu:
d
 m=10 , pentru un intreg pozitiv d.

 a se alege din seria 1, 21, 41, 61, 81,.....

 c se alege din seria 1, 3, 7, 9, 11, 13, 17, 19,...


(intregi impari ce nu se divid cu 5)
Aplicatie: demonstrati ca LCG din exemplu verifica
conditiile teoremei
Modalitati de accelerare a LCG
Depasirea (Overflow Division)
 Ideea: intr-un calculator zecimal cu lungimea cuvantului 4,
6000+4001=0001; sau 34561332 mod 10000 = 1332, deci
stocarea pe 4 biti implica efectuarea operatiei modulo
 Putem alege m=2b unde b=lungimea cuvantului calculator
 Exemplu: pentru un PC cu procesor pe 32 de biti, m=232 sau
chiar m=231, tinand cont de lungimea reala (fara semn)
Eliminarea lui c si obtinerea unui LCG multiplicativ
 Totusi, fara c rezultatul din teorema 1 nu are sens
 Exista o teorema ce stabileste conditii asemanatoare pentru
generatoare multiplicative cu modul prim (PMMG)
Teorema 2
Perioada generatorului este m-1 daca:
1. m este cel mai mare numar prim mai mic decat 2b
2. cel mai mic numar k pentru care ak-1 este divizibil
prin m este k=m-1
Exemplu:
 m=231-1, prim; a=75=16807
 Nu putem aplica “overflow division” pt. accelerare
 O metoda apropiata, numita “simulated division”,
asigura practic aceeasi viteza (principiu asemanator)
Modalitate de verificare a n.a. generate
Utilizarea unei simulări statice
(Monte-Carlo) pentru a calcula
valoarea numarului π (pi)
• Fie (x, y) coordonatele unui
punct P din patrat
P(x,y)
• Pentru punctele de pe
circumferinta cercului:
x2 +y2 = r2 y
• Folosind generatorul de n.a. r
pe care il avem, acoperim
patratul prin 10 000 puncte
aleatoare; fie a numarul de x
puncte din sfertul de cerc
Acuratetea determinarii lui pi depinde de
calitatea generatorului de n.a.
Fie a numarul de puncte din sfertul de cerc
Aria sfertului de cerc = Numar de puncte in sfertul de cerc
Aria patrat Numar de puncte in patrat

r 2
4  a
P(x,y) r*r 10000
 12
4  a
y 1 *1 10000
r a
 
2500
x
Functii de generare a n.a. in C/C++.
Functiile rand() si srand()
Returneaza valori intregi generate (pseudo) aleator
rand() – returneaza acelasi sir de numere
 Aplica metoda congruentiala multiplicativa (factor 232) si
returneaza secvente de n.a. intre 0..RAND_MAX (constanta
simbolica e definita in stdlib.h, valoarea uzuala este 32767)
 Sirul de numere returnat poate fi schimbat daca se modifica
valoarea implicita a variabilei seed (reinitializare generator)
srand() – face (re)initializarea generatorului de n.a.
 Utilizare: srand(int iSeed)
 iSeed poate fi data explicit, ca o constanta (1=val.implicita),
sau setata diferit la fiecare rulare, in functie de timp
Functia time() si operatorul %
Trebuie inclus header-ul <time.h> ce contine definitia:
“time_t time(time_t *tloc);”, echivalenta cu:
“int time(int *tloc);”
 tloc este locatia de memorie a unei variabile intregi unde poate fi
stocata valoarea generata (optional)
Descriere: time() returneaza valoarea intreaga (in sec.) de
la 1/1/1970, pentru a obtine o valoare diferita a sămânţei
la fiecare rulare a unui program
 Daca tloc ≠ 0, valoarea returnata este si stocata in locatia spre
care pointeaza tloc
Operatorul % (modulo) permite scalarea valorilor:
 rand( ) % 10  un n.a. intre 0 si 9 inclusiv
 rand( ) % b + a  un n.a. intre a si b-1 inclusiv
Exemplu: generarea a 10 numere intre 0..20
// printing 10 random numbers // printing 10 random numbers
// between 0 and 20: // between 0 and 20
// Same numbers each run // Different numbers each run
#include <iostream.h>
#include <iostream.h> #include <time.h>
using namespace std; using namespace std;
main() main()
{ {
int i, iNum; int i = 1;
i=1 // print the time
while ( i<=10 ) cout << time(NULL) << endl;
{ // seed the random number
// generator with the time
iNum = rand() % 21; srand( time(NULL) );
cout << iNum << " "; while( i<=10 )
i++; {
} cout << rand() % 21 << " ";
} i++;
}
}
Tema1: Proiect + Referat
Construiti pachetul propriu de rutine de generare
de numere aleatoare; implementati cel putin trei
metode (functii) de generare de n.a.
Implementati functii-criteriu de verificare privind
calitatea numerelor generate
Implementati pe baza generatorului de n.a. 2-3
generatoare de distributii simple (de ex.uniforma,
binomiala, Bernoulli)
Studiati proprietatile esantioanelor generate, prin
comparatie si cu date generate folosind Excel
Notiuni avansate

Generarea distribuţiilor
Generarea distribuţiilor
Fiind data o v.a. X si o variabila x, se defineste funcţia de
repartitie (cdf):
Cazuri:
 FX(x): functie continua in x, daca X este v.a. continua

 FX(x): discreta in x, daca X este v.a. discreta

 FX(x): continua pe portiuni, daca X este v.a. mixta

Proprietăţi :
 0 ≤ FX(x) ≤ 1, -∞ < x <∞

 FX(x) este functie monoton crescatoare in x

 Avem lim
FX ( x)  0, lim FX ( x)  1
x  x 
Functia densitatii de probabilitate (pdf)
Daca X este v.a. continua, atunci

Proprietati ale pdf :


1.

2.
Functia de repartitie (pmf)
Daca X este v.a. discreta, cu valorile posibile:
x1, x2, ..., xn (altfel scris xi unde i=1, 2,...,n)
cu probabilităţile de aparitie p(xi) = P(X=xi), vom numi:
p(xi) – functia masei de probabilitate pentru v.a. X
(xi, p(xi)) – distributia de probabilitate (repartitia) lui X
Proprietati ale pmf (probabilităţii elementare):
1. p ( xi )  0, pentru orice i
n

2. 
i 1
p( xi )  1
Distribuţia eșantionată (de sondaj)
Este data de o functie de tipul pdf sau pmf (sau
echivalent de cdf) ce caracterizeaza valorile ce
trebuie obtinute (si pe care statistica si le poate
asuma) din esantioane aleatoare repetate
O modalitate simpla de aproximare a distributiei
eșantionate: selecţia repetată a unui mare numar
de esantioane aleatoare din multimea de intrare
Calculul valorilor statistice pentru fiecare esantion
si construirea unei histograme dă o imagine
aproximata a distributiei esantionate
Histograma
Se consideră un număr mare de secvenţe de aruncare a
unei monede netrucate, și proporţia medie de apariţie a
a banului (cap)
Histograma apariţiilor,
la 10000 aruncări:
(cf. Wikipedia)
Alte ex. de statistici:
 Suma v.a.
 Media v.a.
 Dispersia v.a.
Media aritmetică de sondaj
(sample average, sample mean-value)
Raportul dintre suma tuturor valorilor x
observate în eşantionul considerat şi numărul
total n al acestora: n
1
x   x *i
n i 1
Observaţii
În cazul valorilor observate, aranjate în ordine
crescătoare sau descrescătoare:
1 n n
x  
n i 1
n ix i   fix i
i 1
unde:
n - numărul total al valorilor observate;
ni - frecvenţa absolută corespunzătoare valorii xi;
fi - frecvenţa relativă corespunzătoare valorii xi.
Dispersia de sondaj (σ2)
(sample variance)
S.n. și moment centrat de ordinul doi:
n
1
 2   ni ( xi  x ) 2
n i 1
Valoarea numerică a sa caracterizează în modul cel mai
adecvat împrăştierea repartiţiei statistice
Dispersia de sondaj poate fi folosită ca estimare
aproximativă a dispersiei din populaţia originară,
considerându-se formula corectă:
n
1
2   (xi  x)2

n1 i1
Metode de esantionare (sampling)
Generarea unor esantioane aleatoare de date
dupa identificarea unei distributii de probabilitate
trebuie sa respecte doua proprietati importante:
 Uniformitate: Distributia esantionului aleator si cea
identificata pentru datele colectate sunt identice  in
termeni statistici, media si varianta esantionului sunt
identice cu media si varianta populatiei de intrare
 Independenţă: Atunci cand setul de esantioane e plasat
in secventa in care a fost produs, nu exista un sablon
neintentionat in aceasta secventa
Teoreme importante:
Inegalitatea lui Cebîşev
Putem avea o imagine asupra repartiţiei prin
cunoaşterea mediei şi dispersiei
Inegalitatea lui Cebîşev arata cat de mari sunt
probabilităţile abaterilor de la medie:
2
P (| x   |  )  2

Se poate aplica atât v.a. discrete cat şi continue
Teoreme importante:
Legea numerelor mari
Bernoulli: Probabilitatea ca modulul diferenţei intre frecventa
relativa de aparitie a unui eveniment E şi probabilitatea p a
lui E sa fie mai mic decât un ε pozitiv, arbitrar de mic, este
≈1 pentru un nr. de experimente n suficient de mare
n1 1
P (|  p |  )  1  2
n 4 n
Cebîşev: Probabilitatea ca modulul diferenţei intre media
aritmetica A a valorilor medii a n v.a. independente şi media
aritmetica a v.a. sa fie mai mica decât un ε pozitiv, arbitrar
de mic, este ≈1 pentru n suficient de mare
1 n b2
P (|  X i  A |  )  1  2
n i 1  n
Proprietăți generale ale distribuțiilor
eșantionate
1. Distributia esantionata a unei statistici tinde sa
se centreze pe valoarea estimata a parametrului
statistic corespunzator
2. “Imprastierea” valorilor distributiei esantionate
a multor statistici tinde sa fie tot mai mica pe
masura ce marimea esantionului creste
3. Tot pe masura ce marimea esantionului creste,
distributia esantionata a multor statistici devine
tot mai similara unei distributii normale (forma
de “clopot”)
Proprietăți generale ale distribuțiilor
eșantionate (cont.)
Cand distributia esantionata a unei statistici este
coincidenta cu parametrul corespunzator al
populatiei din care este extrasa, statistica s.n.
nebalansata (unbiased) și constituie un estimator
nebalansat al parametrului populatiei
 Ex. x este un estimator nebalansat al mediei
Deviatiile standard ale distributiilor generate sunt
in general mai mici decat deviatia standard a
populatiei de intrare ().
Variatia in distributia generata scade pe masura
ce marimea esantionului creste
Distribuţia normală (Gauss-Laplace)
Este definită de
 funcţia de repartiţie:
x  x 2
1 
 2
F x; ;    e 2 2
dx
 2 
unde:
μ R, σ  0, xR
 funcţia de densitate a repartiţiei v.a. X:
 x   2
1 
f x   e 2 2

 2
Distributia esantionata a mediei
Distributia esantionata a mediei, x, este acea
distributie de probabilitate descriind esantioane
aleatoare repetate dintr-o populatie (proces)
Daca se considera valori
dintr-o populatie de intrare
cu media  si deviatia
standard , formand mai
multe esantioane (n),
valorile medii formeaza
distributia esantionata a
mediilor (simple)
Media si deviatia standard a distributiei
esantionate a mediilor ( x )
Daca x este media esantioanelor aleatoare x1, x2,
…,xn, dintr-o populatie sau proces cu media  si
deviatia standard , atunci media distributiei
esantionate a mediilor coincide cu  , indiferent
de numarul de esantioane (n)
Abaterea distributiei esantionate descrise de x,
este egala cu abaterea standard a populatiei,  x
raportata la radicalul marimii esantionului

 x   si  x 
n
Teorema de limita centrala (TLC)
TLC (eng. Central Limit Theorem) afirmă că: pentru n
variabile aleatoare continue, identic repartizate cu
aceeaşi medie (m) şi aceeaşi dispersie (σ2), atunci v.a.
medie a eșantioanelor este aprox. normal repartizată, cu
aceeaşi medie (m) și dispersia mai mică (σ2/n)
Acest fapt are loc chiar pentru valori mici ale lui n
De fapt, TLC este un rezultat important și pentru că
stabilește o “cheie de verificare”: x , distribuţia
esantionata a mediilor, este aproximativ normala,
independent de tipul distributiei populatiei de intrare
Teorema de limita
centrala (cont.)

Pe masura
ce marimea Distributia de
esantionului esantionare
creste destul devine aproape
de mult normala.
( 30) ...

X
(cf. Kendall – Introduction to Statistics)
Metode de generare a v.a. de
repartitie data (non-uniforma)
Metoda transformarii inverse
Metoda transformarii directe – se
aplica pentru distributia normala
Metoda convolutiei
Metoda acceptarii-rejectarii
Metoda transformarii inverse (1)
Este aplicabila daca functia de distributie
este inversabila
Metoda se aplica unor distributii continue:
 Exponentiala
 Uniforma ( U[0,1])
 Geometrica
cat si tuturor distributiilor discrete
Desi cea mai directa, nu este si cea mai
eficienta dpdv computational
Metoda transformării inverse (2)
Fie o distributie oarecare descrisa prin cdf FX(x),
pentru care exista inversa F-1X(y) pe 0 ≤ y ≤ 1:
F-1(y) = min { x | F(x)  y }
Daca U[0,1] e distributia uniforma, atunci v.a. X
= F-1(U) are cdf F(x)
Justificare. Se poate da ca o consecinta directa a
relatiei:
[U<F(x)]  [Xx]  [UF(x)] pentru orice x
sau:
Justificare: v.a. X = F-1(U) are cdf F(x)
Daca v.a. X are cdf FX(x) si exista inversa F-1X(y)
pe 0 ≤ y ≤ 1, putem defini o noua v.a. Z=FX(X)
pentru care FZ(z) = P(Z ≤ z) = P(FX(X) ≤ z) daca
0 ≤ z ≤ 1.
Deoarece exista F-1X(y) si din cauza proprietatii
de monotonie:
P(FX(X) ≤ z) = P(X ≤ F-1X(y)) = FX(F-1X(z)) = z
care defineste v.a. Z ca U[0,1] (distrib.uniforma)
atunci v.a. X = F-1(U) are cdf F(x)
Transformarea inversa
Transformarea inversa aplicata
unei distributii continue oarecare
•Fie o v.a. avand pdf f(x) = x/2, pentru 0<x<2
•Prin integrare directa rezulta F(x) = x2/4, pentru
0<x<2
-1
•Inversa este F (U)  2 U
•Prin urmare, pe baza generatorului de n.a. cu
distributie uniforma U[0,1], se obtine v.a. X cu
cdf F(x) = x2/4, data de:

X2 U
Transformarea inversa aplicata
unei distributii discrete oarecare
•Fie o v.a. avand pmf f(x) data de:
P[ X  x]  x / 10, pentru x  1,2,3,4.
•Transformarea inversa conduce la obtinerea v.a.
X pe baza generatorului de n.a. cu distributie
uniforma U[0,1]:
1 U  0.1
2 0.1  U  0.3
1 
X  F (U )  
3 0.3  U  0.6
4 0.6  U
Transformarea inversa aplicata la
generarea distributiei exponentiale
Interpretand parametrul  ca medie a nr.de aparitii
pe unitatea de timp, stiind ca daca U este distributie
uniforma pe [0,1] si 1-U este U[0,1], avem:
Transformarea inversa aplicata la
generarea distributiei geometrice
Functiile distributionale sunt:
pmf : f ( x)  (1  p ) x 1 p, pentru x  1,2,...

cdf : F ( x)  1  (1  p )  x  , unde   denota partea intreaga


Atunci:

unde prin log(1-U)=-E s-a notat exponentiala


Distributii uzuale si aplicatiile lor
Distributie Aplicatii
Bernoulli • Modelarea unui calculator, daca e functional sau nu
• Un pachet intr-o retea isi atinge sau nu destinatia
• Un bit dintr-un pachet soseste la destinatie cu
eroare (afectat de zgomot)

Binomiala • Modelarea numarului de procesoare functionale


intr-un sistem multiprocesor
• Numarul de pachete dintr-o retea care isi ating
destinatia, fara pierderi
• Numarul de biti dintr-un pachet ce sosesc la
destinatie cu eroare
• Numarul de articole dintr-un lot ce au anumite
caracteristici
Distributii uzuale si aplicatiile lor (2)
Distributie Aplicatii
Binomiala • Numarul de interogari locale intr-o baza de date
distribuita, inaintea accesului n la distanta
negativa • Numarul de retransmiteri necesar pentru un mesaj
continand n pachete
• Numarul de biti succesivi fara eroare intr-un
pachet, inaintea primirii celui de-al n-lea bit eronat
Geometrica • Numarul de interogari locale intr-o baza de date
distribuita, inaintea acceselor succesive la distanta
• Numarul de pachete transmise cu succes, intre cele
ce necesita retransmiterea
• Numarul de biti succesivi fara eroare intr-un pachet
Distributii uzuale si aplicatiile lor (3)
Distributie Aplicatii
Poisson • Numarul de cereri la un server intr-un interval de
timp dat
• Numarul de defectari ale componentelor, in timp
unitar
• Numarul de interogari intr-o baza de date in t sec.
• Numarul de erori de tiparire intr-un formular
Exponentiala • Timpul intre cereri succesive de servire
• Timpul intre caderi succesive ale unui dispozitiv

Erlang • Modelarea timpilor de servire intr-o retea de cozi


(m servere cu timpi de servire distribuiti
exponential)
Distributii uzuale si aplicatiile lor (4)
Distributie Aplicatii
Normala • Modelarea erorilor de masurare
• Distributia mediilor simple ale esantioanelor unui
mare numar de observatii independente (cf.
teoremei de limita centrala)

Log-normala • Modelarea unei distributii normale transformate

Uniforma • Modelarea dispozitivelor de i/e selectate pentru


urmatoarea operatie de i/e
• Numerele de inregistrari returnate de cautarile
intr-un fisier
• Numerele de pista returnate de cautarile pe disc
Tema2: Proiect + Referat
Construiti un pachet propriu de generare de
distributii; folositi metoda transformarii inverse
acolo unde ea se aplica
Reprezentati grafic distributiile obtinute
Calculati momentele (statisticile) semnificative
pentru esantioanele generate; comparati-le cu
cele teoretice
Studiati proprietatile esantioanelor generate, prin
comparatie si cu date generate folosind Excel

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