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. ij, xjxi (adica timpii de prelucrare ponderati sunt distincti)
Cazul 2. ij, 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 mk1, 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 .
|