Calculul recursiv al coeficientilor functiei generatoare
Fie o retea
închisa de calculatoare cu N
noduri de retea si n
tranzactii la prelucrare si fie g(t)
functia generatoare a sa.
g(t)= (1+xit+
t2
5.2.4.1.2.a Algoritm pentru determinarea coeficientilor functiei generatoare [17]
Efectuând produsul în functia generatoare obtinem :
g(t)=1+tG(1)+t2G(2)+.+G(j)+.
Construim recursiv urmatorul sir de functii (gi(t))i=:
g1(t)=x1(t)=
1+x1t+t2
g2(t)= g1(t)x2(t)=g1(t) =g1(t)[1+
]=
=g1(t)[1+]=g1(t)[1+
]=
=g1(t)+ =g1(t)+
gi(t)= gi-1(t)
Cum =1
si astfel
gi(t)=gi-1(t)[]=gi-1(t)+
=gi-1(t)+
Astfel am construit sirul (gi(t)) i= , unde :
g1(t)=x1(t),
gi(t)=gi-1(t)+
, i=
.
Se observa ca
gN(t)=gN-1(t)xN(t)=g(t)
si astfel coeficientii functiei generatoarte g sunt coeficientii functiei gN.
Notam cu Gi(j) coeficientul lui tj din gi(t).
Astfel G(j)=GN(j), pentru orice j1.
Din relatia de definitie a lui gi(t) se observa ca :
Gi(j)= Gi-1(j)+xi
Gi(j-1) j
si
i
Aceasta relatie se obtine identificând coeficientul lui tj din relatia lui gi(t).
Formula gasita permite obtinerea unui algoritm simplu
si eficient pentru calcularea coeficientilor Gi(j) si în particlar pentru calculul
coeficientilor G(j)=GN(j), j0 ai functiei generatoare a relatiei.
Analizând mai atent formula de mai sus observam :
Pentru i=
, Gi(0)=1 (coeficientul lui t0 din gi(t))
Pentru i=2 G2(j)=G1(j)+x2G2(j-1)
Rezulta G2(j)=+x2G2(j-1)
Se obtine o ecuatie neomogena de ordinul 1 cu coeficienti constanti ecuatie a carei solutie este :
G2(j)
Pentru aceasta s-a folosit si conditia initiala G2(0)=1.
Pentru j=1, Gi(1)=Gi-1(1)+xiGi(0) dar Gi(0)=1 si astfel Gi(1)= Gi-1(1)+xi de unde prin inserare ? ? ? de la 2 la i obtinem
Gi(1)=
5.2.4.1.2.b Implementarea algoritmului
Pornim de la relatia de recurenta
P1. Definim o
matrice G de ordin (n+1)N, în care G(j,i)=
(j).
P2. Prima linie
din G are toate elementele 1, pentru ca Gi(0)=1,
i
P3. Coloana 1
din G are pe locul j elementul , j=
, conform observatiei O2.
P4. Pentru j= si i=
elementele G(j,i) ale
matricei G se calculeaza pornind de la G(1,2)
si folosind relatiile :
G(j,i)=(j), unde
(j)=
(j)+
(j-1)
de unde rezulta G(j,i)=+
G(j-1,i)
Astfel :
"Înmultind elementul G(j-1,i)
de deasupra lui G(j,i) cu si rezultatul
îl adunam la elementul G(j,i-1) din stânga lui G(j,i) ;
ceea ce obtinem, punem pe locul G(j,i)
din matrice", ca în figura 5.17.
P5. Elementele
ultimei coloane din G, adica G(j,N)=GN(j), j=, sunt coeficientii
lui tj din functia generatoare, deci G(j)=GN(j)=G(j,N), j=
Se
observa ca formula implementata în acest algoritm permite
calculul lui pentru orice i=
.
gi(t)=( 1+x1t+t2+.)(1+x2t+
t2+.).(1+xit+
t2
Matricea G
are forma :
5.2.4.1.3 Calculul direct al coeficientilor G(j) ai functiei generatoare [17].
Pornim de la
g(t)==
=
Astfel
g(t)=1+tG(1)+t2G(2)+.=
Pentru transformarea lui g(t), de mai sus, în sume de fractii simple apar doua cazuri :
Cazul 1. i
j, xj
xi (adica timpii de prelucrare ponderati
sunt distincti)
Cazul 2. i
j, astfel încât xi=xj
(timpi de prelucrare multipli).
În primul caz putem scrie
g(t)=,
unde coeficientii Ak se obtin astfel :
=
/1-xjt
si apoi luam t=
Aj=
Deci Ak=
Astfel
g(t)= =
=
dar g(t)=, si prin identificare obtinem :
G(j) ,
deci G(j) este o functie liniara în puterea j a variabilelor x1,x2,.,xN .
G(j)
În cazul 2 (timpi de prelucrare multipli) avem de dezvoltat în sume de fractii simple, functii cu poli multipli.
În cazul polilor multipli
functia rationala se scrie
=
,
unde sk este
radacina multipla de ordinul mk a polinomului B(s) pentru k=
În acest caz
=
Aici coeficientii Akj sunt dati de formula:
Akj=,
si
Observam ca
s=
Exemplul 5.2.4.3. [17]. Fie
B(s)=s3+6s2+7s+4=0
Astfel
=
unde
A11=
A12=
A2=
Astfel :
Exemplul 5.2.4.4 [17]. Se da o retea de calculatoare locala cu 4 noduri de prelucrare în care timpii ponderati de prelucrare sunt : x1=3.25, x2=4.75, x3=4.75, x4=5.30.
Pentru evaluarea performantelor acestei retele de calculatoare, trebuie sa determinam coeficientii functiei generatoare asociate,
g(t)=
Dezvoltând în sume de fractii simple avem
g(t)=, unde coeficientii se obtin prin :
Prin urmare A1=7.44, A21=263.40, A22=1553.89, A4=240.09
Cu aceasta
g(t)=
Pornind de aici se pot determina coeficientii G(j) ai lui tj.
5.2.4.1.4 Solutia generala pentru o clasa de tranzitii [17]
Fie g(t)=. Presupunem ca numitorul are p radacini
multiple
, cu ordinul de multiplicitate mk
1, k=
si n-p
radacini simple. Rearanjam factorii de la numitor astfel încât
radacinile simple sa fie la început iar radacinile
multiple sa fie la sfârsit ; aici n este numarul radacinilor distincte. Astfel N=n-p+
.
Observatia 5.2.4.5.
Daca f(t)= atunci f(t)=
,
unde :
f (t)=n(1-t)-n-1, f (t)=n(n+1)(1-t)-n-2,.,
., f j(t)=n(n+1).(n+j-1)(1-t)-n-j=.
Astfel f i(0)= si deci
f(t)=.
Prin urmare
Se observa ca:
Cum g(t)=, prin identificare obtinem
G(i)=
Observam ca pentru mk=1 j=1 si deci
.
|