You are on page 1of 3

Analiza Algoritmilor Tema 2

10 decembrie 2011

1
1.1

Problema 1: 0/1 Programare ntreag


Descrierea problemei

Se d o matrice A Rnn i un vector b Rn1 . Exist un vector x Rn1 cu x(i) {0, 1}, i : 1 i n astfel nct A x = b?
1.2 Cerine
0/1 Programare ntreag

Artai c problema
1.3 Observaii

este NP-dur.

Demonstraia va  predat ntr-un document pdf: nume_prenume_grupa_P1.pdf. Problema valoreaz 2 puncte.

2
2.1

Problema 2
Descrierea problemei

S presupunem c am gsit un algoritm de rezolvare pentru problema 3SAT care este determinist i polinomial. Ce concluzii putei trage din aceast descoperire?
2.2 Observaii

Rezolvarea  predat ntr-un document pdf: nume_prenume_grupa_P2.pdf. Problema valoreaz 1 punct.

3
3.1

Problema 3
Descrierea problemei

tefan i Nicu vor s joace cri, ns au doar pachete incomplete (care conin un subset al crtilor cunoscute). Ei trebuie s construiasc un set de cri pentru un joc anume folosind crile din maxim k pachete. De exemplu, dac tefan i Nicu vor s joace mini-eptic pentru care au nevoie de urmtorul set de cri: {A, 2, Q, 7} i au la dispoziie urmtoarele pachete de cri:
P1 = {K, A, 2} P2 = {2, 8, Q} P3 = {A, 2, 7} P4 = {7, 5, 6}

atunci pentru
k = 2 nu exist soluie, k = 3 exist soluiile {P1 , P2 , P3 } i {P1 , P2 , P4 }
3.2 Cerine

1. Este aceast problem NP-dur? Demonstai. (2 puncte) 2. Construii un algoritm ecient care rezolv problema i scriei un program C care l implementeaz. (4 puncte) 3. Gsii un algoritm nedeterminist care rezolv problema. (1 punct)
3.3
3.3.1

Detalii de implementare
Convenii

Programul va primi 3 argumente: numele ierului de intrare, numele ierului de ieire i k. Fiierul de intrare va avea pe prima linie setul cri pe care trebuie s-l obin cei doi prieteni. Pe linia a doua va  numrul de pachete m, iar pe liniile 3, 4, , m + 2 vor  crile din cele m pachete. Pe liniile 1, 3, 4, , m+2, crile vor  separate prin spaii i vor  reprezentate prin dou caractere: c1 c2 astfel:
c1 {2, 3, 4, 5, 6, 7, 8, 9, A, J, Q, K}, c2 {R, C, P, T } unde R , C , P i T .

Fiierul de ieire va  gol dac nu exist soluie sau va avea pe prima linie numerele pachetelor care alctuiesc o soluie. 2

3.3.2

Exemplu

Pentru exemplul din seciunea 3.1 i k = 3, ierul de intrare arat aa: AP 4 KC 2T AR 7R 2T QC 7R AP 8P 2R 5T 2T QC 7R 6T

iar pentru un apel ./pachete pachete.in pachete.out 3, un ier corect de ieire ar : 1 2 3


3.4 Observaii

Rezolvrile cerinelor 1, 2 (pseudocodul algoritmului) i 3 vor  predate ntr-un document pdf: nume_prenume_grupa_P3.pdf. Codul pentru cerina 2 se va scrie n unul sau mai multe iere cu extensia .c. Fiierul pachete.c va  folosit pentru testare. Construii un ier Makefile care compileaz programul n executabilul pachete. Vericai nainte de a trimite tema c secvena urmtoare funcioneaz

corect.

make a l l . / pachete pachete . i n pachete . out Pentru testarea automat se va folosi un script asemntor.
Problema valoreaz 7 puncte.

Trimiterea temei

Construii o arhiv cu urmtorul nume: nume_prenume_grupa.zip care conine: nume\_prenume\_grupa . z i p | P1 | | nume\_prenume\_grupa\_P1 . pdf | P2 | | nume\_prenume\_grupa\_P2 . pdf | P3 | | nume\_prenume\_grupa\_P3 . pdf | | pachete . c | | Makefile

You might also like