Documente Academic
Documente Profesional
Documente Cultură
În ştiinţa şi ingineria calculatoarelor se ı̂ntâlnesc adesea fenomene, evenimente, a căror
producere este incertă. De exemplu:
• timpul de execuţie a unui program;
• cererea de memorie pentru o aplicaţie;
• lungimea cozii pachetelor ı̂ntr-un buffer al unui router internet sau mai general ı̂ntr-
un sistem client–server;
• durata de viaţă a componentelor electronice;
• erorile ı̂ntr-un modul de program;
• expunerea la virusuri.
Incertudinea se manifestă şi ı̂n economie:
• valoarea acţiunilor la SIF Banat–Crişana;
• numărul locurilor de muncă;
• preţul petrolului;
• raportul RON/Euro;
sau ı̂n mediul ı̂nconjurător:
• temperatura azi după masă;
• nivelul poluării Bucureştiului;
• producerea cutremurelor ı̂n zona Vrancea;
Există incertitudine şi la facultate:
• problemele ce se vor da la examen;
• notele la examen;
• timpul de studiu afectat unei discipline;
În fiecare zi ne confruntăm cu incertitudini, facem numeroase supoziţii, prognoze,
calculăm riscuri, rezultate ale unor ”jocuri”, etc. Traversăm o stradă printr-un loc unde
nu există semafor, atunci când considerăm că probabil nici o maşină, ce se vede la o
oarecare distanţă, nu va ajunge la locul pe unde traversăm ı̂n timpul traversării (sperăm
să avem această şansă). Nu luăm dimineaţa umbrela pentru că este improbabil să plouă
ı̂n ziua ı̂n curs. Plecăm la o anumită oră dimineaţa la serviciu, deoarece intervalul de
timp până la ora ı̂nceperii programului este probabil suficient ca să ajungem la timp.
1
2 c E. Petrişor, 2008
Cursul 1, Probabilităţi şi Statistică ı̂n CS °
Toate aceste decizii le luăm atribuind o probabilitate relativă tuturor rezultatelor posi-
bile, chiar dacă acest lucru ı̂l facem ı̂n mod inconştient sau intuitiv.
Deciziile ı̂n afaceri se iau, la fel, ı̂n condiţii de incertitudine. Un brocker decide să
vândă anumite acţiuni pentru că, conform unui model financiar, este probabil ca preţul
lor să scadă. Estimarea greşită a şanselor şi deci luarea deciziilor greşite poate conduce
la inconveniente minore, dar şi la ”dezastre”. De aceea ı̂n ı̂n ştiinţă, inginerie şi afaceri
incertitudinea se măsoară folosind rezultate de teoria probabilităţilor.
Teoria probabilităţilor este un domeniu vast al matematicii. Noi studiem bazele teo-
retice necesare pentru abordarea unor probleme din CS:
• analiza algoritmilor;
• structuri de date probabiliste: skip list, stochastic networks;
• inteligenţă artificială;
• reţele de calculatoare: analiza comportamentului protocoalelor, algoritmilor de rutare
şi a congestiei ı̂n reţele;
• information retrival;
• algoritmi distribuiţi.
Teoria probabilităţilor stă la baza metodelor de studiu a performanţelor sistemelor de
calcul şi a sistemelor software, punând la dispoziţie fundamentul teoretic pentru simularea
proceselor din astfel de sisteme.
Cursul de teoria probabilitaţilor cu aplicaţii ı̂n CS are ca scop dezvoltarea bazelor teo-
retice, care să permită apoi construirea şi analiza unor modele probabiliste frecvent uti-
lizate ı̂n ingineria şi ştiinţa calculatoarelor, precum şi fundamentarea algorimilor de gener-
are de numere aleatoare, de simulare a sistemelor ce includ componente aleatore: simularea
cozilor, a serviciului CPU, a navigării aleatoare ı̂n WWW (algorimul PageRank-Google)
etc. Bazele teoretice sunt prezentate la curs, dezvoltarea abilităţii de modelare proba-
bilistă şi analiza modelului, se realizează la seminar şi prin exersare individuală (teme),
iar ı̂nsuşirea tehnicilor de simulare se realizează prin conceperea ı̂n echipă (6 studenţi) a
codului C ce implementează algoritmi de simulare, la proiect.
Numele de eveniment sigur este folosit doar ı̂n limba română. În limba engleză colecţia
tuturor realizărilor posibile se numeşte sample space.
• Evenimentul sigur se produce cu certitudine la fiecare efectuare a experimentului.
• Evenimentul care nu se produce, ori de câte ori repetăm experimentul ı̂n condiţii
identice, se numeşte eveniment imposibil.
Evenimentul sigur se notează Ω, evenimentul imposibil cu ∅, iar evenimentele partic-
ulare ce sunt părţi ale evenimentului sigur se notează cu A, B, C, . . ..
Experimentul clasic, ce ilustrează aceste noţiuni, este aruncarea zarului. Realizările
posibile ale experimentului sunt apariţia feţei cu numărul 1, 2, 3, 4, 5, 6. Evenimentele de
apariţie a feţei cu numărul k, k = 1, 6, se numesc evenimente elementare. Evenimentul
de apariţie a unei feţe cu număr par este reprezentat simbolic de mulţimea A = {2, 4, 6},
ı̂n timp ce evenimentul apariţiei unei feţe cu numărul mai mare sau egal ca 3 este B =
{3, 4, 5, 6}.
În orice experiment aleator, unui eveniment A ı̂i corespunde evenimentul contrar sau
opus notat {Ω A ({ notează complementara mulţimii A faţa de Ω). Pentru simplitate vom
nota evenimentul opus lui A, prin A. Producerea evenimentului A ı̂nseamnă nerealizarea
evenimentului contrar şi reciproc ({Ω ({Ω (A)) = A). Evenimentul sigur şi evenimentul
imposibil sunt contrare unul altuia: {Ω ∅ = Ω.
Probabilitatea unui eveniment A este un număr notat P (A) ∈ [0, 1], ce reprezintă
şansa pe care o are evenimentul de a se produce.
În concluzie noţiunile primare ı̂n teoria probabilităţilor sunt cele de eveniment ı̂ntr-un
experiment aleator şi de probabilitate a evenimentului.
Ω = {ω1 , ω2 , . . . , ωn , . . .}
4 c E. Petrişor, 2008
Cursul 1, Probabilităţi şi Statistică ı̂n CS °
Notăm cu P(Ω) mulţimea părţilor lui Ω, adică mulţimea tuturor submulţimilor sale.
Dacă mulţimea Ω are n elemente, atunci P(Ω) are 2n elemente.
Dacă mulţimea Ω este numărabilă, atunci mulţimea părţilor sale P(Ω) este
infinită dar ne-numărabilă.
Având precizat evenimentul sigur asociat unui experiment aleator, sarcina cea mai
dificilă este să atribuim o probabilitate de producere fiecărui eveniment posibil ı̂n acel
experiment.
Avem două cazuri ı̂n care probabilitatea unui eveniment se atribuie relativ simplu şi
intuitiv:
a) Mulţimea observabilelor este finită şi toate realizările experimentului sunt egal
probabile (adică nu există motiv ca o realizare să se producă mai frecvent ca alta). În
acest caz se defineşte probabilitatea unui eveniment A:
|A|
P (A) =
|Ω|
ca raportul dintre numărul cazurilor favorabile şi numărul cazurilor posibile. Numărul
cazurilor favorabile este numărul realizărilor a căror colecţie constituie evenimentul A,
a cărui probabilitate o calculăm. De exemplu ı̂n aruncarea zarului (presupus ca un cub
3 1
”perfect”) probabilitatea de apariţie a unei feţe cu număr par este = . 6 este numărul
6 2
cazurilor posibile, iar 3 numărul cazurilor favorabile.
Ori de câte ori ı̂ntr-un enunţ sau problemă se afirmă că se alege, se se-
lectează la ı̂ntâmplare o variantă din n, se presupune (prin convenţie) că cele
n variante sunt echiprobabile, adică au aceeaşi probabilitate.
Exemplul 1. Să se calculeze probabilitatea ca alegând la ı̂ntâmplare un număr de patru
cifre ı̂n baza 10 acesta să fie un număr valid şi ı̂n baza 8.
adică mulţimea tuturor 4–listelor de elemente din {0, 1, 2, 3, . . . , 9}, minus mulţimea 4–
listelor ce ı̂ncep cu 0, care este ı̂n corespondenţa bijectivă cu mulţimea 3–listelor de ele-
mente din {0, 1, 2, 3, . . . , 9}. Evenimentul de interes (mulţimea cazurilor favorabile) este
Cardinalul lui Ω este 104 − 103 , iar al lui E este 84 − 83 . Deci probabilitatea lui E este:
µ ¶3
|E| 84 − 83 4 7
P (E) = = 4 3
=
|Ω| 10 − 10 5 9
1.3. Spaţiu discret de probabilitate 5
k(n)
p = lim ,
n→∞ n
k(n)
p = lim ,
n→∞ n
k(n)
atunci cu cât n este mai mare cu atât aproximează mai bine probabilitatea exactă,
n
p.
De exemplu dacă avem un algoritm ce generează biţi aleatori (deci simulează două
evenimente posibile: bitul 0 si bitul 1), atunci generând n = 1000 de biţi şi numărând
câţi biţi 1 a generat (de exemplu k(1000) = 335), se estimează probabiliatea de a genera
bitul 1 prin 335/1000 ≈ 1/3.
Chiar dacă atribuirea probabilităţii se face ı̂n mod intuitiv sau bazat pe experienţă
sau experimentare, ea trebuie să respecte nişte axiome care fundamentează ştiinţific
predicţiile. În teoria probabilităţilor familia tuturor evenimentelor asociate unui ex-
periment aleator este reprezentată de o familie K de părţi ale evenimentului sigur Ω,
6 c E. Petrişor, 2008
Cursul 1, Probabilităţi şi Statistică ı̂n CS °
K ⊆ P(Ω). Familia K nu se alege ı̂n mod arbitrar, ci ı̂n aşa fel ı̂ncât să verifice următoarele
condiţii:
1. Ω ∈ K;
2. A ∈ K ⇒ {Ω A ∈ K
3. A, B ∈ K ⇒ A∪B ∈ K; (Reuniunea a două evenimente A şi B este evenimentul
care se produce dacă cel puţin unul dintre cele două se produce.
O astfel de familie o numim ı̂n continuare, familie admisibilă de evenimente.)
P (A ∪ B) = P (A) + P (B \ A) (1.2)
Pe de altă parte B = (A ∩ B) ∪ (B \ A) şi cum aceasta este o reuniune de evenimente
disjuncte (mutual exclusive) rezultă că:
P (B) = P (A ∩ B) + P (B \ A) (1.3)
Scăzând relaţia (1.3) din (1.2) obţinem:
P
1≤i1 <i2 <i3 ≤n P (Ai1 ∩ Ai2 ∩ Ai3 ) + · · ·
P (1.5)
k+1
(−1) 1≤i1 <i2 <···<ik ≤n P (Ai1 ∩ Ai2 ∩ · · · ∩ Aik ) + · · · +
(−1)n+1 P (A1 ∩ A2 ∩ · · · ∩ An )
notaţie
Ω = {0, 1}{1,2,...,n} = {0, 1}n ,
Cardinalul mulţimii este |Ω| = 2n . Un element al lui {0, 1}n se numeşte mesaj şi se notează
cu m. O probabilitate pe {0, 1}n este definită de o funcţie pozitivă p : {0, 1}n → R+ , ce
asociază fiecărui mesaj un număr din intervalul [0, 1] şi
X
p(m) = 1
m∈{0,1}n
Prezentăm ı̂n continuare o problemă celebră ı̂n teoria probabilităţilor, numită problema
zilei de naştere, care a constituit punctul de plecare pentru dezvoltarea unor metode de
analiză a algoritmilor, precum şi ı̂n criptografie
Exemplul 4. (Problema zilei de naştere) n persoane participă la un reuniune. Care este
probabilitatea ca cel puţin două dintre ele să aibă aceeaşi zi de naştere, ı̂n ani diferiţi sau
nu?
Presupunem că anul are 365 de zile (ignorăm anii bisecţi). Notăm cu A mulţimea
participanţilor la reuniune, A = {1, 2, . . . , n} şi cu B = {1, 2, 3, . . . , 365} mulţimea co-
durilor pentru zilele anului.
• Mulţimea Ω a tuturor posibilităţilor pentru zilele de naştere ale celor n persoane
coincide cu mulţimea n–listelor cu elemente din B sau echivalent cu mulţimea aplicaţiilor
de la A la B, adică Ω = B A . De exemplu, dacă n = 15 o lista posibilă de zile de naştere
este:
(32, 24, 125, 51, 73, 84, 279, 330, 23, 127, 71, 95, 199, 211, 5),
unde 32 inseamna 1 februarie, 24 este 24 ianuarie, 125 calculati voi, etc.
Cardinalul lui Ω este |Ω| = 365n .
• Lucrăm ı̂n ipoteza că zilele de naştere sunt aleator (la ı̂ntâmplare) distribuite ı̂n cele
365 zile şi n–listele de zile de naştere sunt echiprobabile.
1.3. Spaţiu discret de probabilitate 9
• Fie En evenimentul ”cel puţin două persoane din cele n ce participă la reuniune au
aceeaşi zi de naştere”. Probabilitea acestui eveniment este P (En ) = |En |/|Ω|. Este mai
simplu ı̂nsă să calculăm probabilitatea complementarei lui En .
• Complementul {Ω En este evenimentul ca printre cele n persoane să nu existe două
cu aceeaşi zi de naştere, adică:
{Ω En = {f ∈ B A | f este injecţie}
Qn−1 k
= k=1 (1 − )
365
Deci,
Yµ
n−1
k
¶
P (En ) = 1 − P ({Ω En ) = 1 − 1−
k=1
365
Pentru a extrage informaţie din această formulă de calcul procedăm astfel: pentru
n = 2, 3, 4, . . . 100, calculăm probabilitatea pn = P (En ), adică probabilitatea ca ı̂ntr-un
grup de n persoane să fie cel puţin două cu aceeaşi zi de naştere. Într-un sistem de axe
ortogonale vizualizăm punctele de coordonate (n, pn ). Fig.1.1 ilustrează aceste puncte.
Pentru a vă convinge că aceasta este ”distribuţia” probabilităţilor rezolvaţi:
n pn
b) Aflaţi câte persoane trebuie să participe la reuniune pentru a avea o probabilitate mai
mare de 1/2 pentru ca cel puţin doi participanţi să aibă aceeaşi zi de naştere.
c) Câte persoane trebuie să participe pentru ca probabilitatea aceluiaşi eveniment să
crească la 0.8.
Atât din figură cât şi din tabelul ce va rezulta, se constată că probabilitatea de a găsi
ı̂ntr-un grup de 23 de persoane cel puţin două cu aceeaşi zi de naştere este mai mare decât
1/2: p23 = 0.507297.
10 c E. Petrişor, 2008
Cursul 1, Probabilităţi şi Statistică ı̂n CS °
0.8
pn
0.6
0.4
0.2
0
0 10 20 30 40 50 60 70
n
Acest rezultat este contrar intuiţiei umane. Pare nefiresc ca ı̂ntr-un grup de doar 23
persoane să existe cel puţin două cu aceeaşi zi de naştere, cu o probabilitate mai mare de
1/2. De aceea, acest fenomen este cunoscut ı̂n CS ca the birthday paradox.
Generalizare. Problema probabilităţii coincidenţei zilei de naştere apare ı̂ntr-o formă
generalizată ı̂n criptografie şi analiza algoritmilor. Şi anume: avem n obiecte numero-
tate 1, 2, . . . , n şi N containere (recipienţi), N ≥ n. Pe rând obiectele sunt atribuite
la ı̂ntâmplare containerelor (sunt aruncate la ı̂ntâmplare ı̂n containere). La ı̂ntâmplare
ı̂nseamnă că fiecare obiect poate ateriza ı̂n oricare container cu aceeaşi probabilitate. Dacă
ı̂ntr-un container au căzut cel puţin două obiecte spunem că s-a produs o coliziune. Prob-
abilitatea să se producă cel puţin o coliziune după aruncarea celor n obiecte ı̂n cele N
containere se calculează similar cu probabilitatea să participe la reuniune cel puţin două
persoane cu aceeaşi zi de naştere. În cazul coliziunii 365 se ı̂nlocuieşte cu N . Astfel avem:
Demonstraţie: OPŢIONAL
Probabilitatea de nu se produce nici o coliziune după aruncarea celor n obiecte ı̂n N
containere este:
1.3. Spaţiu discret de probabilitate 11
Yµ
n−1
k
¶
1 − P (C(N, n)) = 1−
k=1
N
Folosind inegalitatea 1 − x ≤ e−x , valabilă pentru orice x ∈ [0, 1], avem că:
µ ¶ Yµ
n−1 ¶ n−1
Y
k −k/N k 1 2 n−1
1− ≤e şi 1− ≤ e−k/N = e− N − N −···− N = e−n(n−1)/2N
N k=1
N k=1
Deci probabilitatea producerii a cel puţin unei coliziuni este cel puţin 1 − e−n(n−1)/2N ,
adică:
2 /2N
P (C(N, n)) ≥ 1 − e−n(n−1)/2N ≥ 1 − e−(n−1)
2 /2N
Notând această probabilitate cu P (n) din P (n) ≥ 1 − e−(n−1) obţinem prin inversare
r
1
n(P ) ≤ 1 + 2N ln (1.7)
1−P
În concluzie pentru a preveni succesul unui atac birthday, se construiesc funcţii
hash cu valori exprimate printr-un număr mare de biţi. De exemplu algoritmul
SHA1 folosit pentru semnături digitale generează valori hash ı̂n {0, 1}160 .
Există situaţii când evenimentul sigur (colecţia tuturor realizărilor unei experiment)
este o mulţime infinită. În acest caz şi familia evenimentelor poate fi infinită şi deci
familia admisibilă de evenimente este neadecvat, deoarece definiţia sa nu include referiri
la reuniunea unei familii arbitrare (nu neapărat finită) de evenimente. În acest caz se
defineşte familia boreliană de evenimente:
este o funcţie de probabilitate pe K = P(Ω) şi deci (Ω, P(Ω), P ) este un spaţiu de probabil-
itate. Reciproc, orice probabilitate definită pe P(Ω) este de acest tip, cu p(ω) = P ({ω}).
În cazul ı̂n care Ω este infinit numărabilă, elementele unei submulţimi A ⊂ Ω se
pot numerota, adică există o aplicaţie bijectivăPn 7→ an de la N la A. Probabilitatea
evenimentului A, P (A), este atunci suma seriei ∞ n=0 p(an ) şi nu depinde decât de A nu
şi de numerotarea particulară a elementelor sale.
Exemplul 5. Fie P o probabilitate pe (N∗ , P(N∗ )), definită de funcţia p : N∗ → R prin
p(k) = 2−k Interpretând {n} ca evenimentul ca un algoritm să genereze numărul n să se
calculeze probabilitatea de a genera un număr n > 3; un număr multiplu de 3; un număr
al cărui rest prin ı̂mpărţirea la 4 este 3.
P
Funcţia p defineşte o probabilitate pe (N∗ , P(NP∗
)) dacă seria ∞n=1 p(n) este convergentă
∞ n
şi are suma 1. Şirul sumelor parţiale ale seriei n=1 1/2 este:
1 1 1 1 1 − ( 12 )m
sm = + 2 + ··· m = şi lim sm = 1
2 2 2 2 1 − 12 m→∞
1 1 1 1 1 − ( 21 )m−4+1 1
lim 4 (1 + + · · · + m−4 ) = lim 4 1 = 3
m→∞ 2 2 2 m→∞ 2 1− 2 2
Temă: Calculaţi probabilităţile celorlate două evenimente precizate ı̂n enunţ.