Sunteți pe pagina 1din 2

Tehnici de Proiectare i Analiz a Algoritmilor - Tema 1 2009-2010

Termen de predare: 29 ianuarie 2010 (vinerea din sptmna a XV-a)


Reguli
1. Algoritmii vor fi descrii n limbajul algoritmic utilizat la curs.
2. Algoritmii vor fi nsoii de explicaiile necesare pentru neleger ea lor. Algoritmii nensoii de comentarii i
explicaii nu vor fi luai n cosiderare la calculul punctajului.
3. Vor fi apreciate claritatea i simplitatea soluiei, corectitudinea, modul de redactare, acurateea
demonstraiilor i calculelor, explicaiile nsoite de ex emple.
4. Dac se cere implementarea unor algoritmi, aceasta se va realiza ntr -un limbaj de programare la alegere.
5. Tema va fi prezentat cadrului didactic care conduce seminarul sub forma unui referat scris de mn (lizibil)
pe care se vor meniona numele i prenumele (complet), anul i grupa. Temele redactate nelizibil sau
neinteligibil nu vor fi corectate i vor fi notate cu 0 (zero) puncte. Excepie fac programele ce implementeaz
algoritmii ntr-un limbaj de programare i rezultatele raportate de acestea, care vor fi listate la imprimant i
anexate la referat.
6. Fiecare student va prezenta soluia sa proprie (e vorba de o tem individual i nu de una n echip). Dac se
constat c dou sau mai multe lucrri au fost efectuate n colectiv, atunci acele lucrri vor fi notate cu 0 (zero)
puncte.
7. Dac se utilizeaz documentaie suplimentar, atunci aceasta va fi referit n lucrare i se va meniona clar
care idei au fost preluate i care este partea original (proprie) a lucrrii.
8. Tema va fi nsoit de urmtoarea declaraie:
Declar c toate sursele utilizate, inclusiv cele preluate de pe Internet, sunt indicate n lucrare, cu respectarea
regulilor de evitare a plagiatului:
- toate fragmentele de tex t reproduse exact, chiar i n traducere proprie din alt limb, sunt scrise ntre
ghilimele i dein referina precis a sursei;
- reformularea n cuvinte proprii a textelor scrise de ctre ali autori deine referina precis;
- codul surs, imagini etc. preluate din proiecte open-source sau alte surse sunt utilizate cu repsectarea
drepturilor de autor i dein referine precise;
- rezumarea ideilor altor autori precizeaz referina precis la textul original.
9. n cazul n care consider c e necesar, profesorul corector poate pune ntrebri autorului unei teme pentru
stabilirea nivelului de contribuie proprie.
10. Tema va primi un punctaj cuprins ntre 0 si 20.

Exerciii
Scopul acestui execiiu este de a gsi i evalua algoritmi cat mai eficieni pentru probleme NPcomplete la care intereseaz soluiile exacte, aa cum este SAT sau 3SAT.
Fie F o formul n form normal conjuctiv (FNC) i fie l un literal care apare n F. Prin F(l = 1) notm
formula obinut din F prin urmtoarele reguli:

Toate clauzele care conin pe l sunt eliminate.

Dac o clauz a lui F conine l (negaia lui l) i cel puin un literal diferit de l, atunci l este
eliminat din clauz.
Dac o clauz conine numai l, atunci F(l = 1) este formula 0 (adic o formul nesatisfiabil).

Formula F(l = 0) este definit asemntor:

Toate clauzele care conin pe l sunt eliminate.


Dac o clauz a lui F conine cel puin doi literali i unul este l, atunci l este eliminat din
clauz.
Dac o clauz conine numai l, atunci F(l = 0) este formula 0.

Notaiile de mai sus se extind n mod natural: F(l1 = 1, l2 = 1, ..., k1 = 0, k2 = 0) desemneaz de fapt
formula F(l1 = 1)(l2 = 1)...(k1 = 0)(k2 = 0)... .
Se noteaz cu 3FNC formulelor n care fiecare clauz are exact trei literali i cu 3FNC(n, r) mulimea
formulelor 3FNC cu cel mult n variabile i cel mult r clauze.
1. S se arate arate c o formul F n 3FNC(n, r), ce conine o clauz (l1 l2 l3), este
satisfiabil dac i numai dac cel puin uma dintre formulele F(l1 = 1), F(l1 = 0, l2 = 1) i F(l1
= 0, l2 = 0, l3 = 1) este satisfiabil.
2. S se arate c F(l1 = 1) 3FNC(n 1, r 1) , F(l1 = 0, l2 = 1) 3FNC(n 2, r 1) i F(l1 = 0, l2 =
0, l3 = 1) 3FNC(n 3, r 1).
3. Utiliznd 1. i 2., s se proiecteze un algoritm divide-et-impera care avnd la intrare o
formul 3FNC F, decide dac F este satisfiabil.
4. S se arate c algoritmul de la 3. are complexitatea timp n cazul cel mai nefavorabil
O(r1.84n).
5. S se implementeze lagoritmul de la 3. i sa se analizeze timpul de execuie pentru di ferite
valori ale lui n si r. Descriei modul n care au fost alei n i r i modul n care au fost generate
intrrile.

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