Sunteți pe pagina 1din 4

- 1 -

Universitatea Al.I.Cuza Iasi


Facultatea de Informatic!
Nume:
Grupa:




Proiectarea algoritmilor Test scris 11.04.2014, A
Observa!ii:
1. Nu este permis! consultarea bibliografiei.
2. Toate ntreb!rile sunt obligatorii.
3. Fiecare ntrebare/item este notat! cu un num!r de puncte indicat n parantez!. Descrie"i conceptele utilizate n r!spunsuri.
4. Algorimii vor fi descri#i n limbajul Alk. Se adimit extensii cu sintax! inspirat! din C++ (de exemplu, for, do-while, repeat-
until, etc.). Pentru structurile de date utilizate se va preciza opera"iile (f!r! implementare daca nu se cere explicit) #i
complexit!"ile timp #i spa"iu ale acestora.
5. Nu este permis! utilizarea de foi suplimentare.
6. Timp de r!spuns: 1 or!.
!" CLul impr(lrll inLregl a dou numere inLregl poaLe fl calculaL prln scderl repeLaLe.
a) [0.3p] S se formuleze problema impr(lrll inLregl, noLaL ulv, ca pereche (lnpuL, ouLpuL).
b) [0.3p] S! se descrie un algoritm care rezolv! DIV.
c) [0.3p] S! se scrie configura"iile ini"iale #i finale #i s! se arate cum sunt reprezentate componentele perechii (lnpuL, ouLpuL) de
la a) in acesLe conflgura(ll.
d) [0.3p] S se araLe ca algorlLmul de la b) rezolv corecL problema descrls la a).
e) [1p] Se conslder ca dlmenslune a lnLrrll numrul de bl(l ! necesarl reprezenLrll blnare deimpr(lLulul. S se preclzeze
care esLe cazul cel mal nefavorabll penLru un ! daL sl care esLe complexlLaLea Llmp penLru acesL caz (se va consldera cosLul
unlform).
$%&'()&.
a) lnpuL: a,b numere inLregl.
CuLpuL: q = cLul impar(lrll inLregl a lul a la b, l.e. a = bq + r cu 0 <= r < |b|, daca b != 0, eroare daca b == 0.
b) funcLle care deLermlna semnul
dlv(a, b) [ slng(x) [
lf (b == 0) reLurn eroare", lf (x < 0) reLurm -1,
lf (slgn(a) + slgn(b) == 0) s = -1, // semne conLrare lf (x > 0) reLurm 1,
else s = 1, // acelasl semn reLurn 0,
lf (a < 0 ) a = -a, // se reduce la lmparLlre }
lf (b < 0) b = -b, // de numere pozlLlve
q = 0,
whlle (a >= b) [
a = a-b, q = q + 1,
}
reLrun s*q,
}
c) conflgura(la lnl(lal: < dlv(a,b), a |-> a0 b |-> b0 >
conflgura(la flnal: < . , a |-> a1 b |-> b1 q |-> q0 s|-> s1 >, a0 = b0*q0 + a1, a1 < b
d) 8elaLla a < b esLe daLa de Lermlnarea lnsLrucLlunll whlle (lmedlaL dupa Lermlnare are loc lnLoLdeauna negaLla condlLlel), lar
la lncepuLul sl la sfarslLul buclel whlle avem relaLla a + b * q = |a0| (lnvarlanLul) deoarece a + b * q = (a - b) + b * (q + 1) .
e) valoarea cea mal mare lul a reprezenLaL pe n blLl esLe 2
n
-1. Cazul cel mal negfavorabll esLe cand bucla whlle se execuLa de
un numar maxlm de orl, adlca a esLe maxlm, l.e. 2
n
-1, sl b mlnlm, l.e., b =1. 8ucla whlle se execuLa ln acesL caz de 2
n
-1 orl, de
unde rezulLa complexlLaLe Llmp esLe C(2
n
).

CbservaLll:
1) S-a depuncLaL cu 0.23 daca nu s-a prevazuL cazul b = 0.
2) S-au admls sl [usLlflcarl corecLe bazaLe pe exemple (LesLare).
3) s-au admls sl rezolvare corecLa penLru cazul cand a,b >= 0, cu preclzarea celelalLe cazurl poL fl reduse la acesLa.






- 2 -
*" a) [0.3p] descrle(l problema CLl MAl A8ClA|l vLClnl.
b) [0.3p] uescrle(l problema LCCuL CLCML18lC AL CLLC8 MAl A8ClA1L unC1L.
c) [1p] S se araLe c CLl MAl A8ClA|l vLClnl !
n
LCCuL CLCML18lC AL CLLC8 MAl A8ClA1L unC1L.
d) [0.3p] S se araLe c CLl MAl A8ClA|l vLClnl are complexlLaLea C(n log n). !usLlflca(l.
e) [0.3p] Ce se poaLe spune despre complexlLaLea " a problemel CLl MAl A8ClA|l vLClnl? !usLlflca(l.
$%&'()&"
a) CLl MAl A8ClA1l vLClnl
lnLrare: C mulLlme S cu n puncLe ln plan.
leslre: Cel mal aproplaL vecln dln S penLru flecare puncL dln S.
CbservaLle: se recomanda de daL un exemplu penLru a dovedl ca s-a lnLeles problema de rezolvaLa.
b)
LCCuL CLCML18lC AL CLLC8 MAl A8ClA1L unC1L
lnLrare: C mul Llme S cu n puncLe ln plan.
le slre: enLru flecare puncL dln S, locul geomeLrlc la celor mal aproplaLe puncLe, adlca mulLlmea puncLelor mal aproplaLe de
decaL de orlce alL puncL dln S.
CbservaLle: urmaLorul LexL a[uLa la expllcaLll (se puLea uLlllza sl un exemplu ln loc):
Diagrame Voronoi
Denit ie
Problema de care ne ocupam este LOCUL GEOMETRIC AL CELOR MAI
APROPIATE PUNCTE.
Presupunem S = {P
0
, . . . , P
n1
}.
Mediatoarea segmentului [P
i
P
j
] mparte planul n doua semiplane.
Notam cu H(P
i
, P
j
) semiplanul care include punctele mai aproape de P
i
decat de
P
j
.
Denit ie
Poligonul Voronoi al lui P
i
este V(i ) =
T
i 6=j
H(P
i
, P
j
), adica intersect ia
semiplanelor punctelor mai apropiate de P
i
decat orice alt punct P
j
.
Partit ia planului n cele n regiuni V(0), . . . , V(n 1) se numeste diagrama
Voronoi asociata lui S si o notam cu Vor (S).
Asadar, LOCUL GEOMETRIC AL CELOR MAI APROPIATE PUNCTE cere
construct ia diagramei Voronoi.
Observat ie. Poligoanele Voronoi pot si nemarginite, dar ramand suprafet e
poligonale convexe.
D. Lucanu (FII - UAIC) Geometrie computat inonala PA 2013/2014 7 / 40

c)
enLru un
l
daL, cel mal aproplaL vecln se gasesLe lnLr-o reglune veclna dln dlagrama voronol. urmaLorul algorlLm rezolva CLl
MAl A8ClA1l vLClnl:
1. se consLrulesLe dlagrama voronol, reprezenLaLa cu SLC.
2. se parcurge sLrucLura SLC descrllnd doagrama voronol sl penLru flecare reglune deflnlLa de un l slnvesLlgheaza reglunlle
veclne penLru a se deLermlna cel mal aproplaL vecln.

reprocesare nu exlsLa lar posLprocesarea (parcurgerea SLCulul) neceslLa Llmpul C(n).

d)
Reducerea polinomiala problemelor
Reducerea: proprietat i
Teorema
a) Daca P are complexitatea timp (f (n)) si P
g(n)
Q atunci Q are
complexitatea timp (f (n) g(n)).
b) Daca Q are complexitatea O(f (n)) si P
g(n)
Q atunci P are
complexitatea O(f (n) + g(n)).
D. Lucanu (FII - UAIC) Complexitatea problemelor PA 2013/2014 46 / 46


Se sLle c LCCuL CLCML18lC AL CLLC8 MAl A8ClA1L unC1L are complexlLaLea C(n log n) (algorlLmul facuL la curs). Se la
= CLl MAl A8ClA1l vLClnl sl C = LCCuL CLCML18lC AL CLLC8 MAl A8ClA1L unC1L.

e) Se sLle ca LCCuL CLCML18lC AL CLLC8 MAl A8ClA1L unC1L are complexlLaLea U(n log n) sl se apllca dln nou Leorema
de mal sus.

CbservaLll.
1) pesLe 90 nu au sLluL raspunsurlle la a) sl b), cee ce araLa ca nu s-au clLlL cursurlle.
2) LnunLarea Leoremel ar fl adus [umaLaLe dln puncLa[ daca raspunsul nu ar fl fosL corecL.
3) LnunLarea alLor probleme ln locul celor ceruLe nu a fosL puncLaLa.
- 3 -
+" AcesL exercl(lu se refer la algorlLmul dlvlde-eL-lmpera de consLruc(le a dlagramel voronol penLru mul(lmea S dln flgura
alLuraL.
a) [0.5p] S! se explice cum se calculeaz! dreapta vertical! care divizeaz! mul"imea
S n S1 #i S2.
b) [1p] S! se construiasc! diagramele Voronoi pentru S1 #i S2.
c) [1p] S! se arate cum se construie#te linia poligonal! #(S1, S2) care separ! cele doua diagrame.
d) [0.5p] S! se arate cum se construie#te diagrama Voronoi a lui S din cele doua! diagrame calculate recursiv #i #(S1, S2).
$%&'()&"
a) Se calculeaza mediana absciselor. Mediana este definta ca fiind cel
de-al n/2-lea element cel mai mic (echivalent, al n/2-lea cel mai mare).
Pentru multimea data este x
3
. Se duce o verticala la stanga sau la
dreapta lui x3. S1 va fi multimea punctelor din stanga vertivalei, S2
multimea punctelor din dreapta.




b) Fiind multimi cu putine puncte, se pot construi direct. Se duc
mediatoarele segementelor care unesc punctele.
Orice punct Voronoi va fi intersectia
mediatoarelor unui triunghi. Pentru multimile
considerate avem numai regiuni nemarginite.







c)
1. Se consLrulesc lnfasuraLorlle convexe, unlnd puncLele dln reglunlle nemarglnlLe.
2. Se deLermlna drepLele suporL
2

4
sl
3

3
penLru cele doua lnfasuraLorl.
3. Se duce perpendlculara pe dreapaLa suporL
2

4
superloara pana lnLalnesLe
prlma muchle voronol ln C
1
.
4. Se conLlnua cu perpendlculara pe
2

4
pana lnLalnesLe cea de-a doua llnle
voronol ln C2.
3. Se conLlnua cu perpendlculara pe
3

4
pana lnLalnesLe cea de-a doua llnle
voronol ln C3. Alcl se lnLalnesL cu perpendlculara pe ce-a de-a doua dreapLa
suporL
3

3
sl procesul se Lermlna.




d) Se fac lnLersecLllle dlnLre dlagramele voronol penLru S1 sl S2 sl llnla pollgonala
deLermlnaLa la c). Se sLerge dln vor(S2) ce e la sLanga llnlel sl dln vor(S1) ce e al
dreapLa llnlel.

,-&./01233"
1) uesenele fara expllcaLll nu s-au puncLaL deloc sau s-au puncLaL parLlal acolo
unde dln conLexL relesea caL de caL ldeea dln spaLele consLrucLlel.
2) MulLl dlnLre cel care au scrls caLe ceva la acesL exerclLlu, care descrle soluLla
problemel 2b), nu au sLluL sa formuleze problema 2b). Se poaLe sa se sLle soluLla
dar nu sl problema pe care o rezolva?








!
"








!
#
!
$
!
%
!
&








'
"

'
#








(
#








(
$

(
%

)
"

)
#

)
$

(
%

(
&

- 4 -
435/)%

S-ar putea să vă placă și