Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Algoritmi liniari

Informatica


Algoritmi liniari

În acest capitol vom demonstra optimalitatea unor algoritmi ce intervin (sau pot fi formulati) în calculul matricial.



Notiunea de algoritm liniar

Fie K un corp comutativ. Un algoritm liniar este un ansamblu format din:

o multime de nedeterminate a1,...,an ce nu apartin lui K, numite intrari;

o multime finita de (nume de) variabile, distincte de intrari si de elementele lui K

o secventa finita de pasi de forma a b c, unde:

a este o variabila care nu a aparut în pasii precedenti;

b si c sunt fie intrari, fie variabile ce au primit valoare (au aparut în st 151h76b ânga semnului ) în pasii precedenti.

Vom scrie prescurtat a b si a -b în loc de a 0+b, respectiv a 0-b

Algoritmii liniari se executa pas cu pas, începând cu primul si terminând cu ultimul.

Pentru a putea preciza rezultatul executarii unui algoritm, vom introduce notiunea de valoare v(a) a unei intrari sau variabile a astfel:

v(a)=a daca a este intrare;

v(a)=v(b) v(c) daca unicul pas în care a primeste valoare este a b c

Rezulta ca v(a) K[a1,...,an], unde K[a1,...,an] este inelul polinoamelor peste K în a1,...,an si este spatiu vectorial peste K

Spunem ca un algoritm liniar calculeaza E K[a1,...,an] daca pentru orice e E, exista  în algoritm o variabila f cu v(f)=e

Exemplul 1. Fie K=R. Un algoritm liniar ce calculeaza produsul (a+bi)(c+di)=ac-bd + i(ad+bc) a doua numere complexe este urmatorul:

f1 a * c v(f1)=ac

f2 b * d v(f2)=bd

f3 f1 - f2 v(f3)=ac-bd

f4 a * d v(f4)=ad

f5 b * c v(f5)=bc

f6 f4 + f5 v(f6)=ad+bc

deoarece calculeaza E= R[a,b,c,d]

Un alt algoritm liniar pentru aceeasi problema este urmatorul:

f1 a * c v(f1)=ac

f2 b * d v(f2)=bd

f3 f1 - f2 v(f3)=ac-bd

f4 a + d v(f4)=a+b

f5 c + d v(f5)=c+d

f6 f4 * f5 v(f6)=(a+b)(c+d)

f7 f6 - f1 v(f7)=ad+bc+bd

f8 f7 - f2 v(f8)=ad+bc

care foloseste însa doar 3 înmultiri.

Observatie. Multe calcule se pot reprezenta ca produsul dintre o matrice si un vector. De exemplu produsul de numere complexe de mai sus se poate scrie:

Ne vom îndrepta atentia asupra numarului de înmultiri, deoarece efectuarea unei înmultiri necesita mai mult timp decât o adunare; în plus, în exemplele tratate, numarul de adunari/scaderi nu va depasi numarul de înmultiri.

Fie K un corp comutativ si fie Km[a1,...,an] spatiul vectorial al vectorilor cu m componente din K[a1,...,an]

Fie v1,...,vk Km[a1,...,an]. Spunem ca v1,...,vk sunt liniar independenti (modulo Km) daca "a ak K cu a v1+...+akvk Km a ak

Fie Ml,c(K[a1,...,an]) spatiu vectorial peste K al matricilor cu l linii si c coloane. Cum elementele unor astfel de matrici apartin unui inel si nu unui corp, rangul pe linii nu coincide neaparat cu cel pe coloane. De exemplu matricea:

are rangul pe linii egal cu 2, iar rangul pe coloane egal cu 3.

Fie si doua multimi disjuncte de nedeterminate ce nu fac parte din K

Fie M Ml,c(K[a1,...,an]) si fie x vectorul coloana x=(x1,...,xc)T. Ne punem problema determinarii numarului de înmultiri necesare calculului produsului Mx

Rangul pe linii al matricilor

Teorema 1. Daca rangul pe linii al lui M este r, atunci orice algoritm liniar ce calculeaza produsul Mx necesita cel putin r pasi de înmultire.

Vom numara numai înmultirile în care nici un factor nu este din K. Presupunem ca primele linii din M sunt liniar independente. Fie M' matricea formata din primele l linii ale lui M. Cum orice algoritm ce calculeaza Mx calculeaza si M'x, putem presupune ca l=r

Fie e1,...,es K[a1,...,an,x1,...,xc] rezultatele pasilor de înmultire efectuati în calculul produsului Mx. Vom arata ca s r

Mx se poate scrie Mx=Ne+f, unde N Ml,s(K), iar f are ca elemente functii liniare în a1,...,an,x1,...,xc

Sa presupunem ca r>s. Atunci matricea N, cu elemente în corpul K, are mai multe linii decât coloane, deci liniile sale sunt liniar dependente. Rezulta ca exista y1,...,yr K nu toti nuli, cu yTN=0T

yTMx = yTNe + yTf = yTf

Cum yTf, deci si (yTM)x este liniar în a1,...,an,x1,...,xc, rezulta ca elementele vectorului yTM sunt din K, adica liniile lui M sunt liniar dependente. Contradictie, deoarece rangul pe linii al lui M este r

Rangul pe coloane al matricilor

Lema. Fie v1,...,vk Km[a1,...,an] dintre care cel putin p sunt liniar independenti (modul Km). Fie v'i=vi+biv1 cu bi K, "i=2,...,k. Atunci în apar cel putin p-1 vectori liniar independenti.

Deosebim doua cazuri:

Daca v1 apare printre cei p vectori liniar independenti.

Fie v1,...,vp vectorii liniar independenti. Aratam ca v'2,...,v'p sunt liniar independenti.

Fie a ap K cu a v'2+...+apv'p Km

a v2+...+apvp+(a b2+...+apbp)v1 Km a ap

Daca v2,...,vp+1 sunt liniar independenti.

Daca v'2,...,v'p sunt liniar independenti, s-a obtinut rezultatul dorit.

În caz contrar, exista a ap K nu toti nuli, cu a v'2+...+apv'p Km

Fie w=a v1+a v2+...+apvp Km, unde a a b2+...+apvp

Sa observam ca a , pentru ca daca a , atunci v2,...,vp ar fi liniar independenti.

Atunci v1 = a [w-(a v2+...+apvp)]

si putem presupune ca a

Daca v'3,...,v'p+1 sunt liniar independenti, s-a obtinut rezultatul dorit.

În caz contrar, exista b bp+1 K nu toti nuli, cu b v'3+...+bp+1v'p+1 Km

Fie w'=β1v1+ β3v3 +...+ βp+1vp+1 Km, unde β13b3+...+apvp

Sa observam ca , pentru ca daca , atunci v3,...,vp+1 ar fi liniar independenti.

Atunci v1 = β1-1 [w'-(β3v3+...+ βp+1vp+1)] (2)

Egalam cele doua expresii ale lui v1 din (1) si (2) si înmultim cu a

β1w-β1(a v2+...+apvp) = a w'-a 3v3+...+ βp+1vp+1)

Rezulta ca o combinatie liniara a vectorilor v2,...,vp+1, în care coeficientul lui v2 este a , este egala cu β1w-a w' Km. Contradictie, deoarece v2,...,vp+1 sunt liniar independenti.

În continuare vom întelege prin înmultire activa o înmultire în care un factor contine o nedeterminata xi, iar celalalt factor nu este din K

Altfel spus, A.B este înmultire activa daca v(A) K[a1,...,an] si v(B) K (sau invers).

De exemplu axi βai aiaj cu a b K nu sunt active (deci în esenta o înmultire activa presupune o înmultire dintr-un xi si un aj

Teorema 2. Daca rangul pe coloane al lui M este r, atunci orice algoritm ce calculeaza Mx+y, unde y Kl[a1,...,an], necesita cel putin r înmultiri active.

Facem demonstratia prin inductie dupa r

Pentru r=1, din ipoteza rezulta ca exista mij K[a1,...,an]\K. Atunci:

(Mx+y)i = mi1x1+...+mijxj+...+micxc+yi contine înmultirea activa mijxj

Presupunem proprietatea din enunt adevarata pentru r si o demonstram pentru r+1

Fie A un algoritm ce calculeaza Mx+y. Punem în evidenta prima înmultire activa f g.h cu:

cu g , iar v(h) K

Observam ca pentru (*)

obtinem v(g)=0, deci v(f)=0

Construim un nou algoritm A' astfel:

prima instructiune este (*);

urmeza A în care f g.h se înlocuieste cu f

În A' apare o multime activa în minus. Este suficient sa arat ca ceea ce calculeaza A' necesita cel putin r-1 înmultiri active.

A' calculeaza Mx'+y, unde x'=(,x2,...,xc)

Putem scrie Mx'+y=N+y', unde:

N=M, iar y'=M+y

Se observa ca în y' nu apar x1,...,xc

Fie n1,...,nl liniile lui N

ni=-mi1g g x2+...+gcxc)+mi2x2+...+micxc

ni=(mi2-g g mi1)x2+...+(mc-g g m1)xc

Daca notam prin m1,...,mc coloanele lui M, atunci:

N=(m2-g g m1)x2+...+(mc-g g m1)xc

Deci putem scrie N=M'(x2,...,xc)T, unde M' are l linii si c-1 coloane.

Conform lemei de mai sus, rezulta ca M' are cel putin r-1 coloane liniar independente. Deducem ca A' necesita cel putin r-1 înmultiri active, deci A necesita cel putin r înmultiri active.

Consecinta 1. Fie A o matrice cu m linii si n coloane, iar x un vector cu n elemente. Atunci produsul Ax necesita cel putin m.n înmultiri.

Produsul Ax mai poate fi scris si sub forma:

unde rangul pe coloane al noii matrici ce intervine în produs este m.n

Consecinta 2 Schema lui Horner este optima ca numar de înmultiri.

stim ca schema lui Horner calculeaza valoarea unui polinom de grad n

P(x)=a0+a1x+...+anxn

folosind n înmultiri. Dar P(x) se mai poate scrie:

P(x)=(1 x ... xn)(a0 a1 ... an)T

Cum rangul pe coloane al matricii (1 x ... xn) este n, rezulta ca sunt necesare cel putin n înmultiri.

Propozitie. Schema lui Horner este optima si ca numar de adunari/scaderi.

Fie A un algoritm liniar ce calculeaza P(x). Consideram algoritmul A'   în care:

prima instructiune este s

urmeaza algoritmul A în care x este înlocuit cu s

A' calculeaza a0+...+an

Aratam prin inductie dupa n ca A' necesita cel putin n adunari/scaderi.

Pentru n=1, calculul a0+a1 necesita cel putin o adunare, deoarece în caz contrar putem calcula doar expresii de forma

Presupunem afirmatia din enunt adevarata pentru n-1 si demonstram ca este adevarata si pentru n

Deoarece în A' nu e posibil ca în toate adunarile sa apara numai termeni din K, rezulta ca va exista un pas la care apare cu a . Putem presupune ca apare an. Daca înlocuim pe an cu , noul algoritm va calcula a0+...+an-1 si are o adunare/scadere mai putin.

Rangul pe linii si coloane al matricilor

Teorema 3 Fie S Mm,d(K[a1,...,an]) o submatrice a lui M astfel încât:

daca pentru "u Km si v Kd cu uTSv K u=0 sau v=0

atunci orice algoritmul liniar ce calculeaza Mx necesita cel putin m+d-1 înmultiri.

Printr-o permutare de linii si coloane, putem presupune ca M are forma:

l

 
Putem neglija ultimele l-m linii si atunci M are forma:

cu l=m linii.

Vom întelege în continuare prin înmultiri numai produsele în care nici un factor nu este din K

Fie A un algoritm liniar ce calculeaza Mx si fie:

e1,...,es K[a1,...,an,x1,...,xc]

rezultatele (în ordinea calculului lor) a celor s pasi de înmultire.

Atunci putem scrie Mx=Ne+f unde N Ml,s(K), iar elementele lui f sunt liniare în a1,...an,x1,...,xc

Daca l>s, atunci liniile matricii N sunt liniar dependente, deci exista y Kl cu yTN=0. Atunci yTMx=yTf, ceea ce este posibil doar daca yTM are toate elementele în K. Aleg atunci z=(1,...,1,0,...,0)T cu d de si l de si obtinem yTSz K cu y≠0 si z≠0. Contradictie.

Rezulta ca l≤s. Atunci N are forma:


Notând prin e' primele s-l+1, iar prin e" ultimele l-1 elemente din e, putem scrie Mx=N1e'+N2e"+f

Cum liniile din N2 sunt liniar dependente, exista y Kl cu yTN2=0. Atunci yTMx=yTN1e'+yTf. Fie M'=yTM. Deci M'x poate fi calculata folosind |e'|=s-l+1 pasi de înmultire (conform modului în care au fost alese e1,...,es

Daca am sti ca d dintre coloanele (elementele) lui M' sunt liniar independente, ar rezulta ca pentru calculul lui M'x sunt necesare cel putin d înmultiri, ar rezulta ca s-l+1 d, deci s l+d-1=m+d-1, ceea ce trebuia demonstrat.

Aratam ca primele d coloane ale lui M' sunt liniar independente. Ele sunt:

, j=1,...d

Daca aceste coloane ar fi liniar dependente, ar exista z Kd cu , adica yTSz K. Contradictie.

Aplicatie. Produsul (a+bi)(c+di) necesita cel putin 3 înmultiri de numere reale.

Calculul produsului revine la înmultirea de matrici:

Aratam ca matricea joaca rolul matricii S din Teorema 3.

Fie y1,y2,z1,z2 R cu:

R

Atunci y1(az1-bz2)+y2(by1+az2) R cu a,b nedeterminate. Obtinem sistemul omogen în z1,z2

y1z1+y2z2=0

y2z1-y1z2=0

Determinantul este D=-(y12+y22)

Daca D atunci y1=y2=0

Daca D atunci z1=z2=0 (sistemul este omogen).

Conform Teoremei 3, rezulta ca sunt necesare cel putin 3 înmultiri. Amintim ca la începutul capitolului am prezentat un algoritm liniar ce calculeaza produsul a doua numere complexe folosind 3 înmultiri (de numere reale); deci acel algoritm este optim.


Document Info


Accesari: 12427
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )