Sunteți pe pagina 1din 6

Barem Examen AA

2 Februarie 2021

Contents
1 Algoritmi Nedeterminis, ti 1
1.1 Rezolvare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Barem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2 Teorema Master 3
2.1 Barem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

3 Induct, ie Structurală 3
3.1 Barem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.2 Rezolvare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1 Algoritmi Nedeterminis, ti
Scriet, i un algoritm nedeterminist polinomial pentru următoarea problemă s, i
calculat, i complexitatea sa angelică?
Se dă o matrice de dimensiune nxm cu elemente numere ı̂ntregi. Se poate
obt, ine o submatrice de sumă S interschimbând maxim k coloane s, i/sau linii?

1
1.1 Rezolvare
function Solve(Ar1..nsr1..ms, S, k)
for i “ 0; i ă k; i ` ` do
onLines = choice({false, true})
if onLines then
l1 = choice({1..n})
l2 = choice({1..n})
for j “ 1; j ă“ m; j ` ` do
swap(A[l1][j], A[l2][j])
end for
else
c1 = choice({1..m})
c2 = choice({1..m})
for j “ 1; j ă“ n; j ` ` do
swap(A[j][c1], A[j][c2])
end for
end if
for l1 “ 1; l1 ă n; l1 ` ` do
for c1 “ 1; c1 ă m; c1 ` ` do
for l2 “ l1 ` 1; l2 ă“ n; l2 ` ` do
for c2 “ c1 ` 1; c2 ă“ m; c2 ` ` do
sum = 0
for l “ l1; l ă“ l2; l ` ` do
for c “ c1; c ă“ c2; c ` ` do
sum += A[l][c]
end for
end for
if sum==S then
Success
end if
end for
end for
end for
end for
end for
Fail
end function

Algoritmul face k interschimbări, ı̂ncercând pe ramuri diferite toate combinat, iile


de linii s, i coloane. Indecs, ii ales, i pot fi s, i egali, astfel ı̂ncât pot fi făcute s, i mai
put, in de k interschimbări.
Verificarea nu este cea mai eficientă posibil, ı̂nsă este polinomială, for-urile
interioare având complexitatea Θpn3 ˚ m3 q. Tot algoritmul va avea o complexi-
tate angelică de Θpk ˚ n3 ˚ m3 q.

2
1.2 Barem
• (3p) Generarea solut, iei.
• (2p) Verificarea constrângerilor.
• (1p) Identificarea complexitatăt, ii.

2 Teorema Master
?
T pnq “ 3 ˚ T p 3˚n
10 q ` n ˚ n ´ Opnq

2.1 Barem
• (0.5p) identificare corectă: a “ 3, b “ 10
3
?
• (1p) identificare corectă: f pnq “ n ˚ n ´ Opnq “ Opn1.5 q
• (1p) stabilit că: nlogb paq “ Opn1.5´ q cu  ą 0 (depinde cum este făcută
3
10 2
discut, ia, cel mai simplu ar fi să arate că 3 ă 3 )
• (0.25p+0.25p) discutat + demonstrat condit, ia de regularizare pentru
f pnq
• (1p) concluzionat că putem
? aplica cazul 3 din Teorema Master s, i trasa
concluzia ca T pnq “ θpn ˚ nq “ θpn1.5 q

3 Induct, ie Structurală
List 1: Constructori

• rs :Ñ ListT

• px : xsq : T Ñ ListT Ñ ListT

List 2: member : T Ñ ListT Ñ Bool

M1: memberpe, rsq “ F alse


M2: memberpe, x : xsq “ px ““ eq _ memberpe, xsq

List 3: unique : ListT Ñ Bool

U1: uniqueprsq “ T rue


U2: uniquepx : xsq “!memberpx, xsq ^ uniquepxsq

3
List 4: intersection : ListT Ñ ListT Ñ ListT

INT1: intersectionprs, yq “ rs

INT2: intersectionpx : xs, yq


“ x : intersectionpxs, yq, if memberpx, yq
INT3: intersectionpx : xs, yq
“ intersectionpxs, yq, if !memberpx, yq

De demonstrat P1

uniquepl1q ^ uniquepl2q “ñ uniquepintersectionpl1, l2qq.

3.1 Barem
• (2p) Demonstrat, ia pentru cazul de bază.
• (2p) Specificarea ipotezei inductive s, i a pasului de induct, ie.
• (3p) Demonstrat, ia pasului de induct, ie.
• (1p) Identificarea proprietăt, ii adit, ionale.
• (2p) Demonstrat, ia proprietăt, ii adit, ionale.

3.2 Rezolvare

• Cazul de bază: l1 ““ rs
Ne propunem să demonstrăm:
uniqueprsq ^ uniquepl2q “ñ uniquepintersectionprs, l2qq.

uniquepintersectionprs, l2qq “IN T 1 uniqueprsq “M 1 T rue.

• Ipoteza inductivă: P(xs)


uniquepxsq ^ uniquepl2q “ñ uniquepintersectionpxs, l2qq .

• Pasul de induct, ie: P pxsq “ñ P px : xsq.


Ne propunem să demonstrăm:
uniquepx : xsq ^ uniquepl2q “ñ uniquepintersectionpx : xs, l2qq.

Presupunem uniquepx : xsq, respectiv uniquepl2q adevărate, ı̂n caz con-


trar, implicat, ia este trivial adevărată. Cum uniquepx : xsq este adevărat,

4
putem folosi din ipoteza inductivă faptul că uniquepintersectionpxs, l2qq
este adevărat.

U2
(O1) uniquepx : xsq “ñ !memberpx, xsq ^ uniquepxsq
Fie E “ uniquepintersectionpx : xs, l2qq.

Avem de analizat două cazuri:


1. memberpx, l2q

E “IN T 2 uniquepx : intersectionpxs, l2qq.

E “U 2 !memberpx, intersectionpxs, l2qq^uniquepintersectionpxs, l2qq.

Pentru a demonstra că expresia E este adevărată avem nevoie de o


proprietate adit, ională PA(xs):
!memberpe, xsq “ñ !memberpe, intersectionpxs, Lqq, @L : ListT

E “O1,P A,II T rue


2. !memberpx, l2q
E “IN T 3 uniquepintersectionpxs, l2qq “II T rue.

Mai avem de demonstrat proprietatea adit, ională PA(xs):


!memberpe, xsq “ñ !memberpe, intersectionpxs, Lqq, @L : ListT .

• Cazul de bază xs ““ rs.


Ne propunem să demonstrăm:
!memberpe, rsq “ñ !memberpe, intersectionprs, Lqq, @L : ListT .

E “!memberpx, intersectionprs, Lqq “pIN T 1q !memberpx, rsq “pM 1q T rue.

• Ipoteza inductivă P pxsq.


!memberpe, xsq “ñ !memberpe, intersectionpxs, Lqq, @L : ListT

• Pasul de induct, ie P pxsq “ñ P px : xsq.


Ne propunem să demonstrăm că:
!memberpe, x : xsq “ñ !memberpe, intersectionpx : xs, Lqq, @L : ListT .

Presupunem !memberpe, x : xsq “ T rue.


(O1) !memberpe, x : xsq “ pe ‰ xq ^ !memberpe, xsq.
Fie E “!memberpe, intersectionpx : xs, Lqq

Avem de analizat două cazuri:

5
1. memberpx, Lq

E “IN T 2 !memberpe, x : intersectionpxs, Lqq


E “M 2 pe ‰ xq^!memberpe, intersectionpxs, Lqq “O1,II T rue.

2. !memberpx, Lq

E “IN T 3 !memberpe, intersectionpxs, Lqq “II T rue.

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