1.

ALGORITMI SI COMPLEXI TATE

1. 1. ALGORI TMI

Def i ni ţ i e: Un al gor i t m est e o pr ocedur ă ( o mul ţ i me f i ni t ă de r egul i bi ne def i ni t e) car e
î ndepl i neşt e un obi ect i v pr eci s. Al gor i t mul pl eacă de l a o st ar e i ni ţ i al ă şi se t er mi nă î nt r - o
st ar e f i nal ă.

Un exempl u si mpl u de al gor i t m est e r eţ et a de bucăt ăr i e. Maj or i t at ea al gor i t mi l or sunt mai
compl ecşi : au paşi care se r epet ă, necesi t ă deci zi i . Mai mul t , al gor i t mi i pot f i compuşi
pent r u a cr ea al ţ i al gor i t mi .
I ni ţ i al concept ul de al gor i t m a r epr ezent at o pr ocedur ă pent r u r ezol var ea unei pr obl eme
mat emat i ce ( ex. găsi r ea di vi zor ul ui comun a două numer e, î nmul ţ i r ea a două numer e) .
Î n f or ma sa act ual ă, concept ul a f ost f or mal i zat de căt r e Al an Tur i ng şi Al onzo Chur ch î n
l ucr ăr i l e l or " Maşi ni Tur i ng" şi r espect i v " Lambda Cal cul " .
Al gor i t mi i sunt esenţ i al i î n pr ocesar ea i nf or maţ i ei î n cal cul at or deoar ece un pr ogr am de
cal cul at or est e pr act i c, un al gor i t m. Di n acest punct de veder e, al gor i t mul poat e f i
consi der at ca " o secvenţ ă de oper aţ i i car e pot f i execut at e de căt r e un si st em Tur i ng
compl et " . Exi st ă def i ni ţ i i al e noţ i uni i de al gor i t mi car e î i l eagă de " Maşi na Tur i ng" ( $1. 2) .

Def i ni ţ i e: Un al gor i t m est e un pr oces de cal cul def i ni t de căt r e o maşi nă Tur i ng ( Gur evi ch,
2000) .

Deoar ece pr ocesează i nf or maţ i e, al gor i t mul ci t eşt e dat e de l a un di spozi t i v şi poat e
î nr egi st r a ( sal va) dat e necesar e al t or pr ocesăr i . Dat el e sal vat e sunt pr i vi t e ca o par t e a
st ăr i i i nt er ne a al gor i t mul ui . Î n pr act i că ast f el de st ăr i sunt î nr egi st r at e î n " st r uct ur i de
dat e" . Un al gor i t m necesi t ă şi dat e i nt er ne pent r u oper aţ i i speci f i ce. Acest ea se numesc
" t i pur i de dat e abst r act e" .

Un al gor i t m t r ebui e să se t er mi ne sau nu ?
Uni i aut or i r est r i cţ i onează def i ni ţ i a al gor i t mul ui l a o pr ocedur ă car e se t er mi nă. Al ţ i i
consi der ă că al gor i t mi i sunt pr ocedur i car e pot să se execut e l a i nf i ni t , o ast f el de
pr ocedur ă numi ndu- se " met odă de cal cul " . Î n acest e cazur i se consi der ă că al gor i t mul
t r ebui e să “ gener eze obi ect e” .

Exempl u: Un al gor i t m car e ver i f i că dacă exi st ă mai mul t de un zer o î nt r - o secvenţ ă i nf i ni t ă
de ci f r e bi nar e al eat oar e t r ebui e să se execut e l a i nf i ni t .

1. 1. 1. Expri marea al gori t mi l or

Al gor i t mi i pot f i expr i maţ i pr i n mai mul t e modur i :
− l i mbaj nat ur al ;
− pseudocod;
− scheme l ogi ce;
− l i mbaj e de pr ogr amar e.
Expr i mar ea pr i n l i mbaj nat ur al t i nde să f i e compl i cat ă şi , uneor i , ambi guă.
Pseudocodul şi schemel e l ogi ce sunt modal i t ăţ i st r uct ur at e de expr i mar e a al gor i t mi l or şi
sunt i ndependent e de l i mbaj ul de pr ogr amar e.
Î n f i nal , l i mbaj ul de pr ogr amar e est e pr ef er at deoar ece r epr ezi nt ă expr i mar ea
al gor i t mul ui î nt r - o f or mă ce poat e f i execut at ă de căt r e cal cul at or .

Exempl ul 1: Un al gor i t m car e găseşt e cel mai mar e număr di nt r - o l i st ă de numer e.

Li mbaj nat ur al :
1. Admi t em că pr i mul el ement est e cel mai mar e.
2. Exami nează f i ecar e di n el ement el e r ămase î n l i st ă şi dacă est e mai mar e decât " cel mai
mar e" , at unci not ează acest f apt ( not ează- l ca f i i nd " cel mai mar e" ) .
3. Ul t i mul el ement not at est e " cel mai mar e" .

Pseudocod :
I nt r ar e: O l i st ă L de el ement e nevi dă
I eşi r e: Cel mai mar e el ement di n l i st a L
cel _mai _mar e ←
0
L
f or el ement î n
1 >
L do
i f ( el ement > cel _mai _mar e) t hen
cel _mai _mar e ← el ement
end_i f
r et ur n cel _mai _mar e

Exempl ul 2: Al gor i t mul l ui Eucl i d pent r u af l ar ea cel ui mai mar e di vi zor comun a două
numer e nat ur al e.

Li mbaj nat ur al :
Fi i nd dat e două numer e nat ur al e a şi b, t est ează dacă b est e zer o. Dacă da, a est e cel mai mar e
di vi zor comun. Dacă nu, r epet ă pr ocesul ut i l i zând pe b şi ce r ămâne după î mpăr ţ i r ea l ui a l a b.

Pseudocod:
f unct i on cmmdc( a, b)
i f 0 = b t hen r et ur n a
el se r et ur n cmmdc( b, a mod b)
end_i f

sau
f unct i on cmmdc( a, b)
whi l e b a ≠ do
i f b a > t hen b a a − ←
el se a b b − ←
end_i f
end_whi l e

Vom demonst r a cor ect i t udi nea acest ui al gor i t m.
Fi e r qb a b a N b a + = ⇒ > ∈ , , . Să ar ăt ăm că or i ce di vi zor al l ui a şi b est e di vi zor şi
pent r u r . Avem qb a r − = . Dacă d est e un di vi zor al l ui a şi b , f i e sd a = , td b = . Rezul t ă
( ) d qt s qtd sd r − = − = . Deci d est e di vi zor al l ui r . Cum or i ce di vi zor al l ui a şi b est e di vi zor
şi pent r u r at unci şi cel mai m mar e di vi zor se r ef er ă şi l a r . Est e suf i ci ent să cont i nuăm
pr ocesul cu numer el e b şi r . Cum r est e mai mi c ca b î n val oar e absol ut ă, vom găsi 0 = r
î nt r - un număr f i ni t de paşi .

1. 1. 2. Cl asi fi carea al gori t mi l or

Î n mul t e cazur i se dor eşt e a se r ecunoaşt e, pent r u un al gor i t m dat , cât e r esur se par t i cul ar e
sunt necesar e ( t i mp de execuţ i e, memor i e de st ocar e) . Est e vor ba despr e " anal i za
al gor i t mi l or " . Aceast a depi nde de " cl asi f i car ea al gor i t mi l or " .

Cl asi f i car e f uncţ i e de i mpl ement ar e:
• r ecur si vi ( se i nvocă pe ei î nşi şi ) ⁄ i t er at i vi ( au const r ucţ i i r epet i t i ve) ;
• l ogi ci ( cont r ol ează deducţ i i l ogi ce) ;
• ser i al i ( un si ngur pr ocesor şi o si ngur ă i nst r ucţ i une execut at ă l a un moment dat ) ⁄
par al el i ( mai mul t e pr ocesoar e car e execut a i nst r ucţ i uni î n acel aşi t i mp) ;
• det er mi ni st i ci ( o deci zi e exact ă l a f i ecar e pas) / nedet er mi ni st i ci ( r ezol vă pr obl ema
pl ecând de l a pr esupuner i ) ;

Cl asi f i car e f ucţ i e de "desi gn" ( met odă) , ex. :
• î mpar t e şi st ăpâneşt e ( î mpar t e pr obl ema î n una sau mai mul t e i nst anţ e mai
mi ci ) ;
• pr ogr amar e di nami că ( caut ă st r uct ur i opt i mal e - o sol uţ i e opt i mal ă a pr obl emei
poat e f i const r ui t ă pl ecând de l a sol uţ i i l e opt i mal e al e subpr obl emel or ) ;
• met oda ″Gr eedy″ ( caut ă t ot st r uct ur i opt i mal e cu deosebi r ea că sol uţ i i l e l a
subpr obl eme nu t r ebui e să f i e cunoscut e l a f i ecar e pas; al eger ea ″Gr eedy″ se
r ef er ă l a ″ce ar at ă″ mai bi ne l a un moment dat ) .

Cl asi f i car e f uncţ i e de domeni ul de st udi u – al gor i t mi i sunt :
de căut ar e, de sor t ar e, numer i ci , al gor i t mi de gr af ur i , de geomet r i e
comput aţ i onal ă, de î nvăţ ar e aut omat ă, de cr i pt ogr af i e, et c.

Cl asi f i car e f uncţ i e de compl exi t at e
Uni i al gor i t mi se î nchei e î nt r - un t i mp l i near , al ţ i i î n t i mp exponenţ i al , i ar al ţ i i nu se
î nchei e. Di n acest punct de veder e al gor i t mi i sunt cl asi f i caţ i î n cl ase de echi val enţ ă bazat e
pe compl exi t at e.
I n cont i nuar e noi vom f i i nt er esaţ i de acest ul t i m t i p de cl asi f i car e.
Pent r u a f or mal i za concept el e l egat e de ″Compl exi t at ea Al gor i t mi l or ″ est e nevoi e de un
model comput aţ i onal . Un ast f el de model est e ″Maşi na Tur i ng″.


1. 2. MASI NA TURI NG

Def i ni ţ i a 1. Un al f abet Σ est e o mul ţ i me nevi dă şi f i ni t ă de el ement e, numi t e si mbol ur i :
{ }
n
σ σ σ , ... , ,
2 1
= Σ .
Def i ni ţ i a 2. Un cuvânt pest e Σ est e un t - upl u
k
i i i
x σ σ σ ....
2 1
= sau mai si mpl u
k
i i i
σ σ σ ....
2 1
.
Def i ni ţ i a 3. Un l i mbaj L pest e Σ est e o submul ţ i me a l ui

Σ . Compl ement ul l ui L est e
L L
c


Σ = . Cuvi nt el e î n

Σ pot f i puse î n or di ne l exi cogr af i că. Ast f el :
− pent r u N n∈ ∀ cuvi nt el e de l ungi me n pr ecedă cuvi nt el e de l ungi me ( ) 1 + n ;
− pent r u or i ce l ungi me, or di nea est e al f abet i că.

Maşi na Tur i ng const ă di n ur măt oar el e:
a. 1 ≥ k benzi i nf i ni t e î n două di r ecţ i i . Benzi l e sunt const i t ui t e di nt r - un număr i nf i ni t de
cel ul e î n ambel e di r ecţ i i . Fi ecar e bandă ar e o cel ul ă di st i nct ă, ″cel ul a de st ar t ″ sau ″cel ul a
0″. Î n f i ecar e cel ul ă a f i ecăr ei benzi , se poat e scr i e un si mbol al unui al f abet Σ . Se poat e
admi t e şi ″cel ul a goal ă″, car e conţ i ne ″si mbol ul nul ″ al al f abet ul ui .
b. Fi ecar e bandă ar e un cap de ci t i r e/ scr i er e şi f i ecar e pas al acest ui a se f ace pe bandă.
Depl asar ea poat e f i Le f t , Ri gh t , St ay .
c. O uni t at e cent r al ă car e est e un aut omat f i ni t . St ăr i l e acest ui a sunt di n mul ţ i mea Q.
Exi st ă o st ar e di st i nct ă ″START″ şi una ″STOP″. Unel e maşi ni Tur i ng i au î n consi der aţ i e o
submul ţ i me F a l ui Q ca f i i nd mul ţ i mea de st ăr i f i nal e. La f i ecar e pas, aut omat ul se af l ă
î nt r - o st ar e
i
q , având ca i nt r ăr i k si mbol ur i ( de pe cel e k benzi ) pe car e capet el e de ci t i r e
l e ci t esc ( si mbol ur i l e cur ent e) . I eşi r ea est e r epr ezent at ă de al t e k si mbol ur i pe car e
capet el e l e scr i u pe benzi l e cor espunzăt oar e ( si mbol ur i l e noi ) si o noua st ar e
j
q . Fi ecar e
capăt excut ă apoi o depl asar e sânga, dr eapt a sau st ă pe l oc.

Obs: Pe o bandă, si mbol ul cur ent şi cel nou nu sunt neapăr at di f er i t e.
Rezumând, o maşi nă Tur i ng det er mi ni st i că cu k benzi ( 1 ≥ k ) est e qui nt - upl ul 〉 Σ 〈 F q I Q , , , ,
0
,
unde:
Q : mul ţ i mea f i ni t ă de st ăr i ;
Σ : mul ţ i me f i ni t ă − al f abet ul ( unde Σ ∈ est e si mbol ul nul ) ;
I : o mul ţ i me f i ni t ă de el ement e 〉 ′ ′ 〈 q m s s q , , , , , unde

∈ ′ Q q q, ,
k
s s Σ ∈
'
, , { }
k
tay ight eft
S R L m , , ∈
mi şcăr i l e pe cel e k benzi .
0
q est e st ar ea i ni ţ i al ă. Vom mai consi der a şi Q F ⊂ o mul ţ i me de st ăr i f i nal e.
Qui nt - upl ul 〉 ′ ′ 〈 q m s s q , , , , est e un pas ( o i nst r ucţ i une) al ( a) maşi ni i Tur i ng unde:
q : st ar ea cur ent ă;
) ,... , (
2 1 k
s s s s = : cel e k si mbol ur i cur ent e l uat e î n consi der aţ i e pe cel e k benzi ;
) ,..., , (
' '
2
'
1 k
s s s s = ′ : cel e k si mbol ur i car e t r ebui e scr i se;
) ,..., , (
2 1 k
m m m m= : mi şcăr i l e pe cel e k benzi .

'
q : st ar ea nouă.

Enumer am cât eva el ement e car e car act er i zează o mşi nă Tur i ng.
I nt r ar ea maşi ni i Tur i ng: cel e k cuvi nt e de pe cel e k benzi , scr i se i ni ţ i al î ncepand cu
cel ul el e ″zer o″.
I eşi r ea maşi ni i Tur i ng: cel e k cuvi nt e scr i se pe benzi î n moment ul când maşi na Tur i ng se
opeşt e. Î n mod f r ecvent , sunt em i nt er esaţ i doar e de unul si ngur .
St ar ea gl obal ă a maşi ni i Tur i ng o not ăm cu S = {st ar ea cur ent ă a aut omat ul ui , conţ i nut ul
cur ent al cel or k benzi , pozi ţ i i l e cur ent e al e cel or k capet e}.
Not ăm cu S0 st ar ea gl obal ă i ni ţ i al ă.
Cal cul ul det er mi ni st al maşi ni i Tur i ng T pent r u i nt r ar ea x ( unde ( )
k
x x x , ... ,
1
= , i ar
k
x x , ... ,
1

sunt cuvi nt e) î l not ăm cu ( ) x T şi est e secvenţ a de st ăr i gl obal e car e î ncepe cu st ar ea
i ni ţ i al ă
0
S , i ar f i ecar e st ar e gl obal ă ur mează al t ei a î n şi r .
Rezul t ă că maşi na Tur i ng det er mi ni st ă est e car act er i zat ă de f apt ul că ar e cel mul t o
i nt r ar e pent r u or i ce combi naţ i e de si mbol ur i şi st ăr i .
Dacă x est e un cuvânt de i nt r ar e, at unci spunem că pr ocesul de cal cul al maşi ni i Tur i ng,
pent r u x , se opr eşt e dacă ( ) x T est e f i ni t ă şi ul t i ma st ar e est e f i nal ă.
Cuvât ul x est e accept at de maşi na Tur i ng T dacă ( ) x T est e f i ni t ă şi dacă ul t i ma st ar e
est e o st ar e de accept ar e. Vom consi der a două st ăr i f i nal e mai i mpor t ant e:

A
q : st ar ea de accept ar e;

R
q : st ar ea de r ej ect ar e.
Pent r u maşi na Tur i ng T not ăm cu ( ) ( ) { }
A
q cu incheie se x T x T L /

Σ ∈ = , l i mbaj ul accept at de
maşi na T .

Maşi na Tur i ng nedet er mi ni st ă est e car act er i zat ă de f apt ul că pent r u or i ce st ar e q şi si mbol
s , or i car e di nt r e st ăr i l e di n Q poat e f i st ar e ur măt oar e. Unei st ăr i gl obal e S î i poat e ur ma
or i ce st ar e gl obal ă P .

Pr ezent ăm cât eva exempl e de maşi ni Tur i ng. Vom descr i e i nst r ucţ i uni l e ast f el :
( st ar e_cur ent a, si mbol _cur ent ) → ( st ar e_noua, si mbol _nou, i ncr ement ) .

Exepl ul 1. Maşi nă Tur i ng car e nu ar e l a i nt r ar e ni ci un cuvânt i ar l a i eşi r e t i păr eşt e
cuvânt ul “ HELLO” .

St are
curent ă
Si mbol
curent
St are nouă Si mbol nou I ncrement
0
q

H
q
H + 1
H
q

E
q
E + 1
E
q

1
L
q
L + 1
1
L
q

2
L
q
L + 1
2
L
q

O
q
O 0
O
q
0
A
q O 0
q0

1. □ □ □ □ □ □ □

0
s

H
q

2. H

H
s


E
q

3. H E □

E
s


1
L
q

4. H E L □

1
L
s

2
L
q

5. H E L L O

O
q

6. H E L L O

0
s
A
q

7. H E L L O

A
s


Exempl ul 2. Maşi na Tur i ng car e det er mi nă cuvi nt el e pol i ndr om al e al f abet ul ui { } 1 , 0 .

St are curent ă Si mbol curent St are nouă Si mbol nou I ncrement
0
s
0
0
q
□ + 1
0
q
0
0
q
0 + 1
0
q
1
0
q
1 + 1
0
q

0
R
q
□ − 1
s0 1
1
q
□ + 1
1
q
0
1
q
0 + 1
1
q
1
1
q
1 + 1
1
q

1
R
q
□ − 1
0
R
q
0
REV
q
□ − 1
1
R
q
1
REV
q
□ − 1
0
R
q
1
R
q
□ 0
1
R
q
0
R
q
□ 0
REV
q
0
REV
q
0 − 1
REV
q
1
REV
q
1 − 1
REV
q

0
s
□ + 1
0
s

A
q
□ 0

Mul ţ i mea st ăr i l or est e { } , , , , , , , q
0 1
0 0 R R REV A R
q q q q q s Q = .
I n ur măt oar el e exempl e de cal cul pent r u aceast ă maşi nă, cuvânt ul s = 0110 va f i accept at
i ar cuvânt ul s = 0111 va f i r ej ect at .





P1 :
0
s ,
0 1 1 0

P2 :
0
q ,
□ 1 1 0

P3 :
0
q ,
□ 1 1 0

P4 :
0
q ,
□ 1 1 0

P5 :
0
q ,
□ 1 1 0 □

P6 :
0
R
q ,
□ 1 1 □ □

P7 :
REV
q ,
□ 1 1 □ □

P8 :
REV
q ,
□ 1 1 □ □

P9 :
REV
q ,
□ 1 1 □ □

P10 :
0
s ,
□ 1 1 □ □

P11 :
1
Q ,
□ □ 1 □ □

P12 :
1
Q ,
□ □ 1 □ □

P13 :
1
R
q ,
□ □ 1 □ □

P14 :
REV
q ,
□ □ □ □ □

P15 : s0 , □ □ □ □ □

P16 :
A
q
Accept

P1 :
0
s ,
0 1 1 1

P2 :
0
q ,
□ 1 1 1

P3 :
0
q ,
□ 1 1 1

P4 :
0
q ,
□ 1 1 1

P5 :
0
q ,
□ 1 1 1 □

P6 :
0
R
q ,
□ 1 1 1 □

P7 :
R
q , □ 1 1 □ □
Rej ect ↑


I n cont i nuar e dăm enunţ ul a două t eor eme.

Teorema 1. Pent r u or i ce 1 ≥ k şi or i ce al f abet Σ , exi st ă o maşi nă Tur i ng cu ( ) 1 + k benzi .

Teorema 2. Pent r u or i ce maşi nă Tur i ng S cu k benzi , exi st ă o maşi nă Tur i ng T cu o
bandă car e î nl ocui eşt e pe S î n ur măt or ul sens: pent r u or i ce cuvânt

Σ ∈ x , maşi na S se
opr eşt e î nt r - un număr f i ni t de paşi l a i nt r ar ea x dacă şi numai dacă T se opr eşt e l a
i nt r ar ea x şi , l a opr i r e, acel aşi l ucr u est e scr i s pe ul t i ma bandă a l ui S şi pe banda l ui T .
Mai mul t , dacă S f ace N paşi , at unci : T f ace ( )
2
N O paşi .

O maşi nă Tur i ng car e est e capabi l ă să si mul eze or i ce al t ă maşi nă Tur i ng, se numeşt e
″Maşi nă Tur i ng Uni ver sal ă″.

Cal cul at oar el e moder ne, cu pr ogr ame î nr egi st r at e sunt ″i nst anţ e″ al e unei maşi ni Tur i ng
mai sof i st i cat e numi t ă ″Maşi nă Pr ogr am cu acces al eat or ″ ( Random Acces St or ed Pr ogr am
Machi ne − RASP) .
RASP î nr egi st r ează pr ogr amul î n memor i e. Pr ogr amul est e o secvenţ ă f i ni t ă de st ăr i al e
maşi ni i ( numi t e şi i nst r ucţ i uni ) . RASP ar e un umăr i nf i ni t de r egi st r i i − cel ul e de memor i e
car e pot conţ i ne or i ce î nt r eg.
RASP est e car act er i zat ă de ″adr esar ea i ndi r ect ă″ − conţ i nut ul unui r egi st r u poat e ″ar ăt a″
spr e adr esa or i căr ui al t r egi st r u.

1. 3. MĂSURAREA COMPLEXI TĂŢI I

Exi st ă două t i pur i de măsur ă a compl exi t ăţ i i al gor i t mi l or .

Măsur a st at i că est e bazat ă pe st r uct ur a al gor i t mul ui .
Măsur a di nami că est e bazat ă pe cal i t at ea al gor i t mul ui , i nt r ăr i l e l ui , compor t ament ul
cal cul at or ul ui î n t i mpul execuţ i ei al gor i t mul ui .
De i nt er es est e măsur a di ami că.
Î n gener al , o măsur ă a compl exi t ăţ i i Φ est e i ndependent ă de model ul comput aţ i onal dacă,
î n r apor t cu o mul ţ i me { }
i
P de al gor i t mi , ar e pr opr i et ăţ i l e:
1. i ∀ domeni ul l ui
i
Φ est e acel aşi cu al l ui
i
P , i ar codomeni ul est e i ncl us î n N , unde
i
Φ est e măsur a l ui
i
P ;
2. Exi st ă un pr edi cat M , ast f el î ncât : ( ) ( ) m x m x i M
i
, , = Φ ↔ , m x i , , ∀ .
Vom da o măsur ă a compl exi t ăţ i i di n punct de veder e al t i mpul ui de execuţ i e al unui
al gor i t m. Vom f ol osi ca model comput aţ i onal maşi na Tur i ng.
Î n gener al , când vor bi m despr e t i mpul de execuţ i e al unui al gor i t m, ne gândi m l a număr ul
de paşi execut aţ i de pr ocesul comput aţ i onal ( cal cul ul det er mi ni st ) asoci at al gor i t mul ui .
Când pr ocesul de cal cul nu se opr eşt e, consi der ăm t i mpul ca f i i nd nedef i ni t .

Def i ni ţ i e. Anal i za compl exi t ăţ i i det er mi nă t i mpul î n car e oper aţ i i l e de bază al e unui
al gor i t m sunt execut at e pet r u f i ecar e set de dat e de i nt r ar e.

Sunt mai mul t e cazur i î n car e se det er mi nă compl exi t at ea unui al gor i t m:
1. Cazul def avor abi l , ( ) n W : î n cât t i mp oper aţ i i l e de bază sunt execut at e î n cazul
def avor abi l .
2. Cazul cel mai bun, ( ) n B : î n cât t i mp oper aţ i i l e de bază sunt execut at e î n cazul cel
mai bun.
3. Fi ecar e caz, ( ) n T : î n cât t i mp oper aţ i i l e de bază sunt execut at e pent r u f i ecar e
caz.
4. Cazul medi u, ( ) n A : î n cât t i mp oper aţ i i l e de bază sunt execut at e î n medi e.

Î n cont i nuar e dăm cât eva exempl e de cal cul a compl exi t ăţ i i .

Exempl ul 1. Căut ar ea secvenţ i al ă î nt r - un t abl ou [ ] n s ,..., 1 = :
begi n
l ocaţ i e ← 1
whi l e ( l ocaţ i e ≤ n) and ( s[ l ocaţ i e] ≠ x) do
l ocaţ i e ← l ocaţ i e + 1
end_whi l e
i f ( l ocaţ i e > n) t hen
l ocaţ i e ← 0 / ∗ el ement negăsi t ∗/
end_i f
end

Să anal i zăm compl exi t at ea î n cel e pat r u cazur i .
1. ( ) 1 + = n n W ⇔ el ement ul x nu est e î n t abl ou.
2. ( ) n B = 1 ⇔ x se af l ă î n pr i mul el ement .
3. ( ) n T nu se cal cul ează deoar ece oper aţ i i l e de bază nu sunt execut at e de acel aşi
număr de or i pent r u t oat e i nst anţ el e de di mensi une n .
4. Pent r u ( ) n A :
Cazul 1. x est e î n t abl ou. Toat e component el e t abl oul ui au val or i di f er i t e. Rezul t ă că
x poat e f i găsi t î n f i ecar e di nt r e el e cu aceeaşi pr obabi l i t at e,
n
1
. Rezul t ă că
( )
( )
2
1

2
1

1

1

1

1 1
+
=
+
⋅ = = ⋅ =
∑ ∑
= =
n n n
n
k
n n
k n A
n
k
n
k
.
2
1 + n
est e, pr act i c, val oar ea medi e aşt ept at ă a
compar aţ i i l or .
Cazul 2. x se af l ă sau nu î n t abl ou. Fi e p pr obabi l i t at ea ca el să se af l e î n t abl ou.
Pr obabi l i t at ea ca el să se af l e î n unul di n el ement e est e
n
p
, i ar pr obabi l i t at ea ca el să nu
f i e î n t abl ou est e ( ) p − 1 .
Dacă x se af l ă pe pozi ţ i a k , vom avea k t r ecer i pr i n bucl ă, i ar dacă x nu apar ţ i ne
t abl oul ui , vom avea n t r ecer i . At unci
( ) ( ) ( )
= − +

+ = − +
+

= − + = − + ⋅ =
∑ ∑
= =
np n
n p p
np n
n
p
p n k
n
p
p n
n
p
k n A
n
k
n
k
2 2 2
1
1 1
1 1
.
2
1
2 2 2
|
¹
|

\
|
− + =

− + =
p
n
p n p
n
p

Pent r u 1 = p r ezul t ă ( )
2
1

+
=
n
n A şi pent r u 5 , 0 = p r ezul t ă ( ) 1 3 + = n n A .

Exempl ul 2. Sor t ar ea unui t abl ou [ ] n s ,..., 1 = pr i n met oda i nt er schi mbăr i i .

begi n
f or 1 = i t o 1 − n do
f or 1 + = i j t o n do
i f [ ] [ ] ( ) i s j s < t hen
] [ ] [ j s i s ↔
end_i f
end

Not ăm cu ( ) n T . număr ul de paşi execut aţ i de al gor i t m.
Oper aţ i i l e de bază sunt : compar aţ i a [ ] i s cu [ ] j s şi schi mbar ea [ ] i s cu [ ] j s .
Bucl a ext er i oar ă se execut ă de 1 − n or i .
La pr i mul pas al bucl ei ext er i oar e se vor execut a 1 − n paşi î n bucl a i nt er i oar ă.
La al doi l ea pas al bucl ei ext er i oar e vor f i 2 − n paşi î n bucl a i nt er i oar ă. Apoi 3 − n , 4 − n
paşi , et c.
Deci ( ) ( ) ( )
( )
2
1
1 2 .... 2 1

= + + + − + − =
n n
n n n T , i ar compl exi t at ea est e ) (
2
n O .
Ur măt oar el e def i ni ţ i i r epr ezi nt ă cazur i de măr gi ni r e a compl exi t ăţ i i .

Def i ni ţ i a 1. Pent r u o f uncţ i e ( ) n f not ăm cu ( ) ( ) n f O mul ţ i mea f uncţ i i l or ( ) n g , cu
pr opr i et at ea că R c∈ ∃ şi N n ∈
0
, ast f el î ncât ( ) ( ) n f c n g ⋅ ≤ ,
0
n n ≥ ∀ .

Exempl u. ( )
2
n n f = şi ( ) n n n g 10
2
+ = .

2 2
10 n c n n ⋅ ≤ + ; ( ) 0 10 1
2
≤ + − n n c ; ( ) [ ] 0 10 1 ≤ + − n c n ; ( ) [ ] 0 10 1 ≥ + − n c n
Pent r u un
1
10
0

>
c
n , pr i ma i negal i t at e est e adevăr at ă.

Def i ni ţ i a 2. Pent r u o f uncţ i e ( ) n f not ăm cu ( ) ( ) n f Ω mul ţ i mea f uncţ i i l or ( ) n g , cu
pr opr i et at ea că R c ∈ ∃ şi
+
∈N n
0
, ast f el î ncât ( ) ( ) n f c n g ⋅ ≥ ,
e
n n ≥ ∀ .
Exempl ul 1. ( )
2
3
n n Ω ∈ pent r u că n n ⋅ ≥ 1
3
pent r u 1 ≥ ∀n .
Exempl ul 2.
( )
( )
2

2
1
n
n n
Ω ∈
+
. Ast f el ,

( )
4

2

2

2
1

2

2
1
2
n n n n n n n
= ⋅ ≥
+
⋅ ≥
+
pent r u 2 ≥ n .
Deci pent r u
4
1
= c şi 2
0
= n avem î ndepl i ni t ă condi ţ i a i mpusă î n def i ni ţ i e.

Def i ni ţ i a 3. Pent r u o f uncţ i e ( ) n f not ăm cu ( ) ( ) ( ) ( ) ( ) ( ) n f n f O n f Ω ∩ = Φ mul ţ i mea f uncţ i i l or
( ) n g , cu pr opr i et at ea că
2 1
, c c ∃ şi N n ∈
0
ast f el î ncât ( ) ( ) ( ) n f c n g n f c
2 1
⋅ ≤ ≤ ⋅ ,
0
n n ≥ ∀ .

Exempl e de cl ase de compl exi t at e:
( )
2
n O : ( ) , 8 log 3 + n
2
4 n , 7 5 + n , 9 6
2
+ n , ( ) n n log 2 , n n 2 5
2
+
( )
2
n Ω :
2
4 n ,
2 3
3 4 n n + , 9 6
2
+ n ,
4 6
6 n n + , n n 2 5
2
+ , n
n
4 2 +
( )
2
n Φ :
2
4 n , 9 6
2
+ n , n n 2 5
2
+

Pr ezent ăm î n cont i nuar e un al gor i t m de caut ar e car e ar e o compl exi t at e mai bună decât
al ogor i t mul de caut ar e secvenţ i al ă.


Căut ar ea bi nar ă î n t abl oul [ ] , ... , 1 n s .
begi n
mi n ← 1; max ← n; l ocaţ i e ← 0;
whi l e ( mi n ≤ max) and ( l ocaţ i e = 0) do
mi j l oc ← ( mi n + max) di v 2;
i f ( x = s [ mi j l oc] ) t hen l ocaţ i e ← mi j l oc
el se i f ( x < s [ mi j l oc] ) t hen max ← mi j l oc−1
el se mi n ← mi j l oc + 1
end_i f
end_i f
end_whi l e
end

Anal i za compl exi t ăţ i i .
Consi der ăm cazul def avor abi l ( ) n W . Pr esupunem că n est e put er e a l ui 2, mai pr eci s
k
n 2 = . Pr i ma i nst r ucţ i une di n bucl ă î nj umăt ăţ eşt e di mensi unea t abl oul ui de căut ar e.
Aceast a se î nt âmpl ă de f i ecar e dat ă când se t r ece pr i n bucl ă.
Pent r u cazul când x est e mai mi c sau mai mar e decât t oat e el ement el e di n l i st ă vom ar ăt a
că ( ) ( ) 1 log + = n n W .
Di n î nj umăt ăţ i r ea secvenţ ei de căut ar e deducem:
( ) 1
2
+ |
¹
|

\
|
=
n
W n W
( ) 1 1 = W
( ) ( ) 2 1 1 2 = + = W W
( ) ( ) 3 1 2 4 = + = W W
( ) ( ) 4 1 3 1 4 8 = + = + = W W
( ) ( ) 5 1 4 1 8 16 = + = + = W W
Să demonst r ăm pr i n i nducţ i e că ( ) ( ) 1 log + = n n W .
Pent r u 1 = n : ( ) ( ) 1 1 log 1 1 + = = W
Pr esupunem ( ) ( ) 1 log + = n n W
( ) ( ) ( ) ( ) ( )
( ) 1 2 log
1 2 log log 1 1 log 1 2
+
= + + = + + = + =
n
n n n W n W

Î n cazul când
k
n 2 ≠ avem î n gener al compl exi t at ea
¸ ¸
)) ( (log 1 1 ) ( log n O n = + + .
Al gor i t mul de sor t ar e bi nar ă est e un exempl u de pr obl emă Di vi de- et - I mper a ( $Err or !
Ref erence source not f ound. ) .

1. 3. 1. Ti puri de probl eme şi compl exi tatea l or

( ) ( ) n O log apar e când o pr obl emă mai mar e est e r ezol vat ă pr i n t r ansf or mar ea ei î nt r - o
pr obl emă de di mesi une mai mi că ( t i p l ogar i t mi c) ;
( ) n O apar e când f i ecar e el ement al pr obl emei necesi t ă un mi c ef f or t ( t i mp) de
pr ocesar e ( t i p l i near ) ;
( ) ( ) n n O lg apar e când o pr obl emă est e ″spar t ă″ î n mai mul t e subpr obl eme r ezol vabi l e
i ndependent , i ar apoi sunt combi nat e sol uţ i i l e ( t i p l i near i t mi c) ;
( )
2
n O
apar e când al gor i t mul pr ocesează t oat e per echi l e de el ement e al e unei
mul ţ i mi ( t i p quadr at i c) ;
( )
n
O 2
t i p exponenţ i al .



Pr i mel e t r ei cur be di n st ânga gr af i cul ui de mai sus r epr ezi nt ă î n or di ne ( de l a st ânga l a
dr eapt a) compl exi t ăţ i l e ( )
n
O 2 , ( )
2
n O şi ( ) ( ) n n O lg .

I at ă cât eva cazur i pr act i ce de st abi l i r e a compl exi t ăţ i i .

Cazul de r ezol var e al unei si ngur e i nst r ucţ i uni ce se execut ă o si ngur ă dat ă:
( ) 1 O
Cazul de r ezol var e:
f or 1 = i t o n do
s ;
unde s est e ( ) 1 O . Rezul t ă compl exi t at ea ( ) ( ) n O O n 1 = ⋅ .
Cazul de r ezol var e:
f or 1 = i t o n do
f or 1 = j t o n do
s ;
unde s est e ( ) 1 O . Rezul t ă compl exi t at ea ( ) ( )
2
n O n O n = ⋅ .
Cazul de r ezol var e:
1 = h
whi l e ( ) n h ≤ do
s ;
h h ∗ ←2
end_whi l e
ai ci var i abi l a h i a val or i l e 1, 2, 4, 8…, până când depăşeşt e pe n . Rezul t ă că sunt
¸ ¸
n
2
log 1+
t r ecer i . Avem compl exi t at ea ( ) n O
2
log .
Cazul de r ezol var e:
f or 1 = i t o 1 − n do
f or i j = t o n do
s ;
Bucl a i nt er i oar ă se execut ă de i or i unde i = 1, 2, …, n. Număr ul de execuţ i i est e

=
+
=
n
i
n n
i
1
2
) 1 (
, deci compl exi t at ea est e ( )
2
n O .
Cazul de r ezol var e:
h = n; j =1
whi l e j < h do
f or i = 1 t o n do
s;
h ← h/ 2
end_whi l e
Bucl a i nt er i oar ă ar e compl exi t at ea ( ) n O i ar bucl a ext er i oar ă execut ă
¸ ¸
n
2
log i t er aţ i i .
Compl exi t at ea est e deci ( ) n n O
2
log .

1. 4. RECURSI VI TATE
Î n gener al , spunem că un obi ect sau o met odă est e r ecur si v ( ă) dacă se poat e def i ni î n
f uncţ i e de el ( ea) î nsuşi ( î nsăşi ) . Mai pr eci s, un ast f el de obi ect sau met odă, se poat e
def i ni pr i n:
− cât eva cazur i si mpl e sau met ode si mpl e;
− r egul i car e t r ansf or mă cazur i l e compl exe î n cazur i si mpl e.

Exempl u :
− or i ce păr i nt e ar e un st r ămoş;
− păr i nţ i i or i căr ui st r ămoş sunt de asemenea st r ămoşi ai per soanei consi der at e.

Cazul f uncţ i i l or :
O f uncţ i e est e def i ni t ă r ecur si v dacă por ni nd de l a anumi t e val or i al e ei , se pot cal cul a
al t e val or i pr i n aut oapel ar ea f uncţ i ei . Al t f el spus, o f uncţ i e r ecur si vă est e par ţ i al def i ni t ă î n
t er meni de ea î nsăşi .
Def i ni ţ i a unei f uncţ i i r ecur si ve t r ebui e să sat i sf acă condi ţ i a de consi st enţ ă: val oar ea
f uncţ i ei r ecur si ve t r ebui e să f i e di r ect cal cul abi l ă sau cal cul abi l ă cu aj ut or ul unor val or i
di r ect cal cul abi l e.
Î n def i ni r ea unei f uncţ i i r ecur si ve t r ebui e să apar ă cel puţ i n o condi ţ i e de opr i r e di n
r ecur si vi t at e.
Expr esi a unei f i ncţ i i r ecur si ve est e dat ă de o r el aţ i e de r ecur enţ ă. Fi e o secvenţ ă { }
1 ≥ n n
t
şi N k ∈ . Dacă avem:

k k k n k n k n
t a t a t a t ....
2 2 1 1
+ + ⋅ + ⋅ =
− + − + +

at unci secvenţ a est e o secvenţ ă r ecur si vă de or di n k , i ar r el aţ i a pr ecedent ă est e o r el aţ i e
r ecur si vă de or di n k .

1. 4. 1. Exempl e de funcţi i recursi ve

1. For mul ă r ecur si vă pent r u al gor i t mul l ui Eucl i d
Pent r u N n m , ∈ , n m > avem ( ) ( )
1
, , r n cmmdc n m cmmdc = , unde
1
r est e r est ul î mpăr ţ i r i i l ui m
l a n . Deci
¸ ¸
n m n m r /
1
∗ − = .
At unci ( ) , cmmdc n m cmmdc = (
¸ ¸
n m n m n / , ∗ − ) .
Al gor i t m Eucl i d scr i s ca f uncţ i e r ecur si vă:
f unct i on ( ) n m cmmdc ,
i f ( ) 0 = n t hen r et ur n m
el se
ret urn cmmdc (
¸ ¸
n m n m n / , ∗ − )
end_i f
end_f unc
Apel : r ăspuns ← ( ) b a cmmdc ,

Agor i t mul Eucl i d scr i s ca pr ocedur ă r ecur si vă
procedure cmmdc ( i n : m, n; out r esul t )
i f ( ) 0 = n t hen r esul t ← m
el se cmmdc
|
|
¹
|

\
|
(
¸
(

¸

∗ − result
n
m
n m n ; ,
end_i f
end_proc.
Apel : ( ) raspuns b a cmmdc ; ,

2. Funcţ i a f act or i al
: fact N N →
( )
( )
¹
´
¦
≥ − ∗
=
=
1 , 1
0 1,

n daca n fact n
n daca
n fact

f unct i on ( ) n fact
i f ( ) 0 = n t hen ret urn 1
el se ret urn ( ) 1 − ∗ n fact n ;
end_i f
end_f unc.

Exempl u de cal cul ef ect i v pent r u f uncţ i a f act or i al :
f act or i al ( 3)
f act or i al ( 2)
f act or i al ( 1)
f act or i al ( 0) r et ur n ( 0)
r et ur n 2 1 2 = ∗
r et ur n 1 1 1 = ∗
r et ur n 6 2 3 = ∗


3. Funcţ i a put er e
n
x
Pent r u un î nt r eg 0 > x să se cal cul eze
n
x , unde 0 ≥ n . Vom consi der a f uncţ i a
( ) n x putere , : N N N → × . Evi dent ( ) 1 0 , = x putere . At unci , expr esi a r ecur ent ă a f uncţ i ei est e:
( )
( )
¹
´
¦
≥ − ∗
=
=
1 , 1 ,
0 1,
,
n dacă n x putere x
n dacă
n x putere
Cor ect i t udi nea def i ni ţ i ei r ezul t ă di n 1
0
= x ( pasul de ver i f i car e) şi
n n
x x x ⋅ =
+

1
( pasul de
i nducţ i e) .
Af i r măm că f uncţ i a ( 1) ar e compl exi t at ea ( ) n O .
Not ăm cu ( ) n T t i mpul de execuţ i e a f uncţ i ei put er e.
( ) ( ) ( ) 1 1 O n T n T + − = , unde ( ) 1 O est e t i mpul necesar pent r u a r et ur na val oar ea x .
( ) ( ) ( ) ( ) ( ) .... 1 2 2 1 1 + ∗ + − = + − = O n T O n T n T
( ) ( ) ( ) 1 0 O n T n T ∗ + = .
Rezul t ă compl exi t at ea ( ) n O .
Expr i mând al t f el f uncţ i a put er e, vom obţ i ne un al gor i t m cu o compl exi t at e mai bună.
Obser văm că
4
x se poat e cal cul a mai uşor dacă am cal cul at
2
x , deoar ece ( )
2
2 4
x x = . La
f el , ( )
2
3 6
x x = . Not ăm
¸ ¸
2 2 / div n n =
Consi der ăm ) 2 , (
2
div n x putere x
div n
= şi not ăm cu sqr r i di car ea l a put er ea doi . At unci
( ) ( )
¦
¹
¦
´
¦
=

par n dacă x
impar n dacă x
div n x putere sqr
n
n
,
,
2 ,
1

At unci :

( ) ( )
( ) ( )
¹
´
¦
=
par n dacă div n x putere sqr
impar n dacă div n x putere sqr x
x
n
, 2 ,
, 2 , *
,
i ar al gor i t mul compl et est e:
( ) ( ) ( )
( ) ( )
¦
¹
¦
´
¦

=
=
par n dacă div n x putere sqr
impar n dacă div n x putere sqr x
n dacă
n x putere
, 2 ,
, 2 ,
0 , 1
,
Not ăm cu ( ) n T t i mpul de execuţ i e pent r u aceast ă f or mul ă. Fi e
m
n 2 = . At unci :
( )
¦
¹
¦
´
¦
> + |
¹
|

\
|
=
=
1 , 1
2

1 , 1

n pentru
n
T
n pentru
n T

( ) ( ) ( ) ( ) ( ) ( ) 1 log 1 1 2 .... 2 2 1 2 2
2
0 2 1
+ = + = + = + = = + = + = =
− −
n m m T m T T T T n T
m m m
Rezul t ă compl exi t at ea
( ) n O
2
log .

4. Al t e exempl e de f uncţ i i r ecur si ve:

a) Fi bonacci : N N fib → :
( )
( ) ( )
¹
´
¦
> − + −
= =
=
2 , 2 1
2 , 1 , 1

n n n fib
n n
n fib



b) Acker man:
( ) ( )
( ) ( )
¦
¹
¦
´
¦
− −
= −
= +
=
rest n m , ack m ack
n , m ack
m n
n m ack
, 1 , 1
0 , 1 1
0 , 1
,



c) Manna − Punel l i
( )
( ) ( ) [ )
¹
´
¦
∈ +
≥ −
=
12 0 , 2
12 , 1

, x x f f
x x
n mana

1. 4. 2. Ti puri de recursi e
Pent r u expr i mar e, vom f ol osi f uncţ i i l e: ( ) x f , ( ) x g , ( ) x h , ( ) x i , ( ) v u, ϕ .

a) Recur si a l i ni ar ă
( )
( ) ( )
( ) ( ) ( ) ( )
¹
´
¦
=
=
altfel x i x h f
true x p dacă x g
x f
, ,
,

ϕ

Exempl u: ( ) n fact

b) Recur si a nel i ni ar ă de t i p cascadă
( )
( ) ( )
( ) ( ) ( ) ( ) ( )
¹
´
¦
=
=
altfel x i f x h f
true x p dacă x g
x f
, ,
,

ϕ

Exempl u: ( )
( ) ( )
¹
´
¦
> − + −
= =
=
2 , 2 1
2 1 , 1

n altfel n fib n fib
n sau n
n fib

c) Recur si a nel i ni ar ă de t i p î mpachet at
( )
( ) ( )
( ) ( ) ( ) ( )
¹
´
¦
=
=
altfel x h f f f
true x p dacă x g
x f
, ........ , ..... .
,

Exempl u: ( ) n mana




1. 4. 3. Ecuaţi i recurent e
Î n mul t e cazur i , anal i za compl exi t ăţ i i conduce l a ecuaţ i i r ecur ent e şi l a r ezol var ea
acest or a. Pr ezent ăm două t ehni ci gener al e pent r u r ezol var ea ecuaţ i i l or r ecur ent e.

Teorema 1. Fi e ecuaţ i a r ecur ent ă, omogenă şi l i ni ar ă cu coef i ci enţ i const anţ i ,
0 ....
1 1 0
= + + ⋅ +
− − k n k n n
t a t a t a .
Dacă ecuaţ i a sa car act er i st i că, 0 ....
0 1
1 0
= + + ⋅ +

r a r a r a
k
k k
, ar e k sol uţ i i di st i nct e,
k
r r r , ... , ,
2 1
, at unci si ngur el e sol uţ i i al e ecuaţ i ei r ecur ent e sunt de f or ma
0 ....
2 2 1 1
= + + + =
k
k k
n n
n
r c r c r c t .

Exempl u: 0 6 5
1 1
= + −
− − n n n
t t t , 0
0
= t , 1
1
= t .
Ecuaţ i a car act er i st i că est e 0 6 5
2
= + − r r . Rezul t ă 3
1
= r , 2
2
= r . Sol uţ i a gener al ă est e
n n
n
c c t 2 3
2 1
+ = şi di n condi ţ i i l e i ni ţ i al e avem
n n
n
t 2 3 − = .

Teorema 2. Fi e r r ădăci na de mul t i pl i ci t at e m pent r u ecuaţ i a car act er i st i că a unei ecuaţ i i
omogene, l i ni ar e şi r ecur ent e cu coef i ci enţ i const anţ i :
0 ....
1 1 0
= + + ⋅ +
− − k n k n n
t a t a t a
At unci
n
n
r t = ,
n
n
nr t = ,
n m
n
n
n
r n t r n t , ..... ,
1 2 −
= = sunt t oat e sol uţ i i al e ecuaţ i i r ecur ent e.
Fi ecar e di nt r e aceşt i t er meni t r ebui e i nt r odus î n sol uţ i a gener al ă ( pr i n adunar e) .

Exempl u: Să se r ezol ve: 0 9 15 7
3 2 1
= + + −
− − − n n n n
t t t t , 0
0
= t , 1
1
= t , 2
2
= t .
Ecuaţ i a car act er i st i că est e 0 9 15 7
2 3
= − + − r r r . Rezul t ă 1
1
= r , 3
3 , 2
= r .
Sol uţ i a gener al ă est e
n n n
n
n c c c t 3 3 1
3 2 1
⋅ ⋅ + + = şi di n condi ţ i a i ni ţ i al ă, sel ect ăm sol uţ i a
1
3 3 1

− + − =
n n
n
n t .

Sign up to vote on this title
UsefulNot useful