Complexitatea problemelor
Dorel Lucanu
Faculty of Computer ScienceAlexandru Ioan Cuza University, Iasi, Romania
PA 2014/2015
D. Lucanu (FII - UAIC) Complexitatea problemelor PA 2014/2015 1 / 46
Outline
1 Complexitatea problemelor
2 Complexitatea sortarii
3 Complexitatea cautarii divide-et-impera
4 Reducerea polinomiala problemelor
D. Lucanu (FII - UAIC) Complexitatea problemelor PA 2014/2015 2 / 46
Complexitatea problemelor
Plan
1 Complexitatea problemelor
2 Complexitatea sortarii
3 Complexitatea cautarii divide-et-impera
4 Reducerea polinomiala problemelor
D. Lucanu (FII - UAIC) Complexitatea problemelor PA 2014/2015 3 / 46
Complexitatea problemelor
De ce definim complexitatea unei probleme
Pana acum am clasificat problemele n rezolvabile si nerezolvabile.
Pentru o problema rezolvabila pot exista mai multi algoritmi care sa orezolve.
De fapt daca exista unul, atunci exista o infinitate. (De ce?)
Am vazut cum se masoara eficienta unui algoritm.Ce putem spune despre eficienta rezolvarii unei probleme?
Definitiile de la eficienta algoritmilor pot fi usor transferate la probleme.De exemplu, complexitatea timp a unei probleme se refera la complexitateatimp a algoritmilor care rezolva problema. Pentru fiecare versiune adefinitiei pentru algorimi (n cazul cel mai nefavorabil, medie, cost uniform,cost logaritmic,. . . ), vom avea una corespunzatoare pentru probleme.
D. Lucanu (FII - UAIC) Complexitatea problemelor PA 2014/2015 4 / 46
Complexitatea problemelor
Definitia complexitatii O(f (n)) a unei probleme
Ofera o margine superioara pentru efortul computational necesar rezolvariiunei probleme.
Definitie
Problema P are complexitatea timp n cazul cel mai nefavorabil O(f (n))daca exista un algoritm A care rezolva P si TA(n) = O(f (n)).
Pentru a arata ca o problema P are complexitatea timp n cazul cel mainefavorabil O(f (n)), este suficient de gasit un algoritm A care rezolva P sisa aratam ca A are complexitatea timp n cazul cel mai nefavorabilO(f (n)). Valoarea lui f (n) ne da o margine superioara pentru timpulnecesar rezolvarii unei instante de dimensiune n.
D. Lucanu (FII - UAIC) Complexitatea problemelor PA 2014/2015 5 / 46
TeaHighlight
TeaHighlight
TeaHighlight
Complexitatea problemelor
Definitia complexitatii (f (n)) a unei probleme
Ofera o margine inferioara pentru efortul computational necesar rezolvariiunei probleme.
Definitie
P are complexitatea timp n cazul cel mai nefavorabil (f (n)) daca oricealgoritm A care rezolva P are TA(n) = (f (n)).
Acest tip de informatie este mult mai dificil de obtinut deoarece trebuiearatat ca nu exista algoritmi care sa rezolve orice instanta de dimensiune nntr-un timp mai mic decat f (n) multiplicat cu o constanta. Vom studiadoar doua probleme pentru care exista dovedita aceasta margine inferioara:sortarea si cautarea.
D. Lucanu (FII - UAIC) Complexitatea problemelor PA 2014/2015 6 / 46
TeaHighlight
TeaHighlight
TeaHighlight
Complexitatea problemelor
Algoritm optim pentru o problema
Definitie
A este algoritm optim (din punct de vedere al complexitatii timp pentrucazul cel mai nefavorabil) pentru problema P daca
A rezolva P si
P are complexitatea timp n cazul cel mai nefavorabil (TA(n)).
Se poate dovedi ca un algoritm este optim din punct de vedere al timpuluide executie numai daca se cunoaste limita inferioara pentru problema; dinacest motiv se cunosc putini algoritmi optimi.
D. Lucanu (FII - UAIC) Complexitatea problemelor PA 2014/2015 7 / 46
Complexitatea sortarii
Plan
1 Complexitatea problemelor
2 Complexitatea sortarii
3 Complexitatea cautarii divide-et-impera
4 Reducerea polinomiala problemelor
D. Lucanu (FII - UAIC) Complexitatea problemelor PA 2014/2015 8 / 46
Complexitatea sortarii
Problema sortarii
Consideram cazul particular al sortarii tablourilor:
SORTIntrare n si tabloul a = {i 7 vi | i = 0, . . . , n 1}.Iesire tabloul a = {i 7 wi | i = 0, . . . , n 1} cu proprietatile:
w0 wn1 si (w0, . . . ,wn1) este o permutare asecventei (v0, . . . , vn1); convenim sa notam aceastaproprietate prin Perm(a, a).
Notam cu SORT (a, n) predicatul care ia valoarea true daca si numai dacatabloul a cu n elemente este sortat.
D. Lucanu (FII - UAIC) Complexitatea problemelor PA 2014/2015 9 / 46
Complexitatea sortarii
Sortare prin interschimbare (BubbleSort)
Metoda bubble sort se bazeaza pe urmatoarea definitie a predicatuluiSORT (a, n):
SORT (a, n) (i)(0 i < n 1) a[i ] a[i + 1]Descrierea algoritmului este urmatoarea:bubbleSort(a, n) {
ultim = n-1;
while (ultim > 0) {
n1 = ultim;
ultim = 0;
for (i=0; i < n1; i = i+1) {
if (a[i] > a[i+1]) {
swap (a, i, i+1);
ultim = i;
}
}
}
}
swap(a, i, j) {
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
D. Lucanu (FII - UAIC) Complexitatea problemelor PA 2014/2015 10 / 46
TeaHighlight
Complexitatea sortarii
Evaluarea algoritmului BubbleSort
Corectitudine Invariant bucla while: a[ultim .. n 1] include cele maimari n 1 ultim elemente din a initial (v0, . . . , vn1) ordonate crescatorInvariant bucla for: a[j] a[i] pentru j = 0, . . . , i .Ambele bucle mentin invariant si predicatul Perm(a, a), unde a estevaloarea curenta a variabilei a.
Timp de executie Cazul cel mai nefavorabil este obtinut cand secventa deintrare este ordonata descrescator si, n acest caz, procedura executaO(n2) operatii.
D. Lucanu (FII - UAIC) Complexitatea problemelor PA 2014/2015 11 / 46
Complexitatea sortarii
Sortare prin insertie directa (InsertSort)
Principiul de baza al algoritmului de sortare prin insertie este urmatorul:Se presupune ca subsecventa a[0 .. j 1] este sortata. Se cauta n aceastasubsecventa locul i al elementului a[j ] si se insereaza a[j ] pe pozitia i .Pozitia i este determinata astfel:
i = 0 daca a[j ] < a[0];
0 < i < j si satisface a[i 1] a[j ] < a[i ];i = j daca a[j ] a[j 1].
D. Lucanu (FII - UAIC) Complexitatea problemelor PA 2014/2015 12 / 46
Complexitatea sortarii
InsertSort: algoritmul
insertSort(a, n) {
for (j = 1; j < n; j = j+1) {
i = j - 1;
temp = a[j];
while ((i >= 0) && (temp < a[i])) {
a[i+1] = a[i];
i = i -1;
}
if (i != j-1) a[i+1] = temp;
}
}
D. Lucanu (FII - UAIC) Complexitatea problemelor PA 2014/2015 13 / 46
Complexitatea sortarii
Evaluarea algoritmului InsertSort
Corectitudine Invariantul buclei for este format din Perm(a, v0, . . . , vn1)si din proprietatea ca primele j 1 sunt ordonate crescator. Invariantulbuclei while include ca temp a[i + 1], . . . , a[j 1], iar dupa whileavem invariantul si a[i] temp sau i < 0.Timp de executie Cazul cel mai nefavorabil este obtinut cand secventa deintrare este ordonata descrescator. Cautarea pozitiei i n subsecventaa[0 .. j 1] necesita j 1 translatii j 1 comaparatii. Rezulta ca timpultotal n cazul cel mai nefavorabil este O(1 + + n 1) = O(n2).
D. Lucanu (FII - UAIC) Complexitatea problemelor PA 2014/2015 14 / 46
Complexitatea sortarii
Selectia sistematica
Se bazeaza pe structura de date de tip max-heap. Metoda de sortare prinselectie sistematica consta n parcurgerea a doua etape:
Construirea pentru secventa curenta a proprietatii MAXHEAP(a).
Selectarea n mod repetat a elementului maximal din secventa curentasi refacerea proprietatii MAXHEAP pentru secventa ramasa.
D. Lucanu (FII - UAIC) Complexitatea problemelor PA 2014/2015 15 / 46
Complexitatea sortarii
Algoritmul HeapSortinsertInHeap(a, n, l) {
isHeap = false; j = l;
while ((2*(j-1) = 0; l = l-1)
insertInHeap(a, n, l);
r = n-1;
while (r >= 1) {
swap(a, 0, r);
insertInHeap(a, r, 0);
r = r - 1;
}
}D. Lucanu (FII - UAIC) Complexitatea problemelor PA 2014/2015 16 / 46
Complexitatea sortarii
Evaluarea algoritmului HeapSort
Corectitudine Se bazeaza pe corectitudinea implementarii operatiilor pestemax-heap.Explicatii pe tabla.
Timp de executie Cazul cel mai nefavorabil este dat de un tablou dejaordonat (!).Operatia de inserttie ntr-un max-heap se realizeaza n timpul O(log n).Prima etapa se va realiza n timpul O((n/2) log n) = O(n log n).Etapa a doua necesita timpulO(log(n 1) + + log 1) = O(log n!) = O(n log n).Rezulta ca timpul de executie n cazul cel mai nefavorabil este O(n log n).
D. Lucanu (FII - UAIC) Complexitatea problemelor PA 2014/2015 17 / 46
TeaHighlight
Complexitatea sortarii
Alti algoritmi de sortare
Exercitii pentru seminar.
D. Lucanu (FII - UAIC) Complexitatea problemelor PA 2014/2015 18 / 46
Complexitatea sortarii
Doua ntrebari despe algoritmii de sortare
Algoritmii de sortare prezentati pana acum se bazeaza pe executarea adoua operatii primitive: compararea si interschimbarea a doua elemente.Deoarece orice interschimbare este, n general, precedata de o comparatie(prin care se decide daca interschimbarea este necesara) putem spune caoperatiile de comparare domina calculul oricarui algoritm prezentat panaacum.
Ne punem urmatoarele doua ntrebari:
care este numarul minim de comparatii executate n cazul cel mainefavorabil?
care algoritmi de sortare realizeaza minimul de comparatii, i.e. carealgoritmi sunt optimali?
Pentru a putea raspunde la cele doua ntrebari trebuie mai ntai saprecizam modelul de calcul peste care sunt construiti acesti algoritmi.
D. Lucanu (FII - UAIC) Complexitatea problemelor PA 2014/2015 19 / 46
Complexitatea sortarii
Arborii de decizie pentru sortare: intuitiv
Pentru simplitate vom presupune ai 6= aj daca i 6= j . Deoarece raspunsuldat de comparatia i ? j are numai doua posibilitati de alegere, rezulta caputem reprezenta cele doua multimi de comparatii prin intermediul unuiarbore binar:
radacina va contine o comparatie i ? j ;
subarborele din stanga contine comparatiile facute n cazul ai < aj ;
subarborele din dreapta contine comparatiile facute n cazul ai > aj .
D. Lucanu (FII - UAIC) Complexitatea problemelor PA 2014/2015 20 / 46
Complexitatea sortarii
Algoritmi reprezentati ca arborii de decizie (pentru sortare)
Definitie
Un arbore de decizie pentru n elemente este un arbore binar n care varfurileinterne sunt etichetate cu perechi de forma i ? j , iar varfurile de pe frontiera suntetichetate cu permutari ale multimii {0, 1, . . . , n 1}.
Definitie
Fie t un arbore de decizie de dimensiune n si secventa a = (a0, . . . , an1).Calculul lui t pentru intrarea a consta n parcurgerea unui drum de la radacina laun varf de pe frontiera definit astfel:
1. Initial se pleaca din radacina.
2. Presupunem ca varful curent este i ? j . Daca ai < aj atunci fiul din stangalui i ? j devine varf curent; altfel fiul din dreapta devine varf curent.
3. Calculul se opreste daca varful curent este pe frontiera.
D. Lucanu (FII - UAIC) Complexitatea problemelor PA 2014/2015 21 / 46
Complexitatea sortarii
Arbori de decizie pentru sortare
Definitie
Fie t un arbore de decizie pentru n elemente. Spunem ca t rezolvaproblema sortarii daca pentru orice intrare a = (a0, . . . , an1), calculul luit pentru a se termina ntr-un varf cu permutarea pi astfel ncatapi(0) < < api(n1). Un arbore de decizie care rezolva problema sortariiva mai fi numit si arbore de decizie pentru sortare iar modelul de calcul vafi numit modelul arborilor de decizie pentru sortare.
D. Lucanu (FII - UAIC) Complexitatea problemelor PA 2014/2015 22 / 46
Complexitatea sortarii
Arborele de decizie pentru InsertSort
0?1
1?2
0?2
0?2
1?2
0,1,2 1,0,2
0,2,1 2,0,1 1,2,0 2,1,0
<
<
<
<
<
>
>
>
>
>
D. Lucanu (FII - UAIC) Complexitatea problemelor PA 2014/2015 23 / 46
Complexitatea sortarii
Complexitatea sortarii
Putem defini acum timpul de executie minim pentru cazul cel mainefavorabil prin expresia:
T (n) = mint
maxpi
length(pi, t)
unde length(pi, t) reprezinta lungimea drumului de la radacina la varful pefrontiera etichetat cu pi n arborele de decizie pentru sortare t.
Teorema
Problema sortarii are timpul de executie pentru cazul cel mai nefavorabil(n log n) n modelul arborilor de decizie pentru sortare.
Demonstratie. Un arbore de decizie de dimensiune n care rezolva problemasortarii are n! varfuri pe frontiera. Un arbore de naltime k are cel mult 2k varfuripe frontiera. De aici rezulta
2T (n) n!care implica T (n) log2(n!) = (n log2 n). sfdem
Corolar
Algoritmul HeapSort este optimal n modelul arborilor de decizie pentru sortare.
D. Lucanu (FII - UAIC) Complexitatea problemelor PA 2014/2015 24 / 46
TeaHighlight
Complexitatea cautarii divide-et-impera
Plan
1 Complexitatea problemelor
2 Complexitatea sortarii
3 Complexitatea cautarii divide-et-impera
4 Reducerea polinomiala problemelor
D. Lucanu (FII - UAIC) Complexitatea problemelor PA 2014/2015 25 / 46
Complexitatea cautarii divide-et-impera
Problema cautarii
Instanta o multime univers U , o submultime S U si un element a dinU ;
Intrebare a S ?Presupunem ca U este total ordonata si multimea S este reprezentata detabloul (s[i] | 0 i n 1) cu s[0] < < s[n 1].
D. Lucanu (FII - UAIC) Complexitatea problemelor PA 2014/2015 26 / 46
Complexitatea cautarii divide-et-impera
Algoritm generic divide-et-impera de cautare: ideea
Mai ntai generalizam problema presupunand ca se cauta a n secventa(s[p], . . . , s[q]). Reamintim ca are loc s[p] < < s[q]. Algoritmii de cautarebazati pe paradigma divide-et-impera au o descriere recursiva definita dupaurmatoarea strategie:
se determina m cu p m q;daca a = s[m] atunci cautarea se termina cu succes;
daca a < s[m] atunci cautarea continua cu subsecventa (s[p], . . . , s[m 1]);daca a > s[m] atunci cautarea continua cu subsecventa (s[m + 1], . . . , s[q]);
In functie de modul de alegere a valorii m prin instructiunile 2 si 5, se disting maimulti algoritmi de cautare. Cei mai cunoscuti dintre acestia sunt:
Cautare liniara (secventiala). Se alege m = p.
Cautare binara. Se alege m = dp + q2e.
Cautare Fibonacci. Se presupune q + 1 p = Fib(k) 1 unde Fib(k) este lak-lea numar Fibonacci. Se alege m astfel ncat m p = Fib(k 1) 1 siq m = Fib(k 2) 1.
D. Lucanu (FII - UAIC) Complexitatea problemelor PA 2014/2015 27 / 46
Complexitatea cautarii divide-et-impera
Algoritm generic divide-et-impera de cautare
pos(s, n, a) {
p = 0; q = n - 1;
2: alege m ntre p si qwhile ( (a != s[m]) && (p < q)) {
if (a < s[m]) q = m -1; else p = m + 1;
5: alege m ntre p si q}
if (a == s[m]) return m; else return -1;
}
D. Lucanu (FII - UAIC) Complexitatea problemelor PA 2014/2015 28 / 46
Complexitatea cautarii divide-et-impera
Algoritmi reprezentati ca arbori de decizie (pentru cautare)
Definitie
Arborele de decizie pentru cautare de dimensiune n atasat unui algoritmbazat pe metoda divide-et-impera este definit dupa cum urmeaza:
Mai ntai se defineste recursiv arborele T (p, q) astfel:
daca p > q atunci T (p, q) este arborele vid;altfel, radacina este m calculata de algoritmul utilizate de instructiunea2 sau 5, iar subarborele stang este T (p,m 1) si cel drept esteT (m + 1, q).
Arborele de decizie pentru cautare de dimensiune n este T (0, n 1)la care se adauga varfurile externe avand ca etichete intervalele(,X0), (X0,X1), . . . , (Xn1,+) n aceasta ordine de la stanga ladreapta, unde X0, . . . ,Xn1 sunt n variabile.
D. Lucanu (FII - UAIC) Complexitatea problemelor PA 2014/2015 29 / 46
Complexitatea cautarii divide-et-impera
Exemplu de arbore de decizie pentru cautarea binara
T(p,q) m
T(p,m-1) T(m+1,q)
T = T(0,n-1)
n = 6
1 3 5
4
2
0
D. Lucanu (FII - UAIC) Complexitatea problemelor PA 2014/2015 30 / 46
Complexitatea cautarii divide-et-impera
Algoritmi reprezentati ca arbori de decizie (pentru cautare)
Definitie
Calculul unui arbore de decizie pentru intrarea x0, . . . , xn1, a, undex0 < < xn1, consta n:
1 etichetarea nodurilor interne cu x0, . . . , xn1 astfel ncat lista inordine ne daordinea crescatoare a etichetelor, si
2 parcurgerea unui drum de la radacina spre frontiera determinat astfel: dacavarful curent v este etichetat cu xm (vom vedea ca m este dat deinstructiunea 2 sau 5 din schema procedurala divide-et-impera) atunci:
1 daca v este varf extern etichetat (Xi ,Xi+1) atunci a (xi , xi+1)(variabila Xi este interpretata ca avand valoarea xi ) si calculul setermina cu insucces;
2 daca a = xm atunci calculul se termina cu succes;3 daca a < xm atunci radacina subarborelui stang devine varf curent;4 daca a > xm atunci radacina subarborelui drept devine varf curent.
D. Lucanu (FII - UAIC) Complexitatea problemelor PA 2014/2015 31 / 46
Complexitatea cautarii divide-et-impera
Cazul particular al cautarii binare
Lema
Fie t arborele de decizie pentru cautare cu n varfuri corespunzator cautariibinare. Daca 2h1 n < 2h, atunci naltimea lui t este h.
Corolar
Timpul de executie pentru cazul cel mai nefavorabil al cautarii binare esteO(log2 n).
D. Lucanu (FII - UAIC) Complexitatea problemelor PA 2014/2015 32 / 46
TeaHighlight
TeaHighlight
Complexitatea cautarii divide-et-impera
Proprietati ale arborilor de decizie pentru cautare
Definitie
Fie t un arbore de decizie pentru cautare. Lungimea interna a lui t, notataIntLength(t), este suma lungimilor drumurilor de la radacina la varfurileinterne. Lungimea externa a lui t, notata ExtLength(t), este sumalungimilor drumurilor de la radacina la varfurile de pe frontiera (pendante).
Lema
Fie t un arbore de decizie pentru cautare cu n varfuri interne. Atunci:
ExtLength(t) IntLength(t) = 2n.
Lema
Lungimea interna minima a unui arbore de decizie cu n varfuri interne este:
(n + 1)(h 1) 2h + 2
unde h = dlog2(n + 1)e.
Corolar
Lungimea externa minima a unui arbore de decizie este
(n + 1)(h + 1) 2h.
D. Lucanu (FII - UAIC) Complexitatea problemelor PA 2014/2015 33 / 46
TeaHighlight
TeaHighlight
Complexitatea cautarii divide-et-impera
Complexitatea cautarii
Teorema
Problema cautarii are timpul de executie n cazul cel mai nefavorabil(log n) n modelul arborilor de decizie pentru cautare.
Corolar
Cautarea binara este optima din punct de vedere al timpului mediu deexecutie n modelul arborilor de decizie pentru cautare.
D. Lucanu (FII - UAIC) Complexitatea problemelor PA 2014/2015 34 / 46
TeaHighlight
TeaHighlight
Reducerea polinomiala problemelor
Plan
1 Complexitatea problemelor
2 Complexitatea sortarii
3 Complexitatea cautarii divide-et-impera
4 Reducerea polinomiala problemelor
D. Lucanu (FII - UAIC) Complexitatea problemelor PA 2014/2015 35 / 46
Reducerea polinomiala problemelor
Motivatie
Mentalitate: Daca stiu sa rezolv problema Q, pot utiliza acel algoritm sarezolv P?
Intuitiv: Problema P se reduce la Q daca un algoritm care rezolva Qpoate ajuta la rezolvarea lui P.
Aplicatii:
proiectarea de algoritmi
demonstrarea limitelor: daca P este dificila atunci si Q este dificila
clasificarea problemelor
D. Lucanu (FII - UAIC) Complexitatea problemelor PA 2014/2015 36 / 46
Reducerea polinomiala problemelor
Cazul comun (reducerea Turing sau reducerea Cook)
Problema P se reduce polinomial la problema (rezolvabila) Q, notamP Q, daca se poate construi un algoritm care rezolva P dupaurmatoarea schema:
1 se considera la intrare o instanta p a lui P;
2 preproceseaza n timp polinomial intrarea p
3 se apeleaza algoritmul pentru Q, posibil de mai multe ori (un numarpolinomial)
4 se postproceseaza rezultatul dat de Q n timp polinomial
Daca pasii de preprocesare si postprocesare necesita O(g(n)) timp, atunciscriem P g(n) Q.
D. Lucanu (FII - UAIC) Complexitatea problemelor PA 2014/2015 37 / 46
Reducerea polinomiala problemelor
Exemplu: MAX SORT
Fie MAX problema determinarii elementului maxim dintr-o multime:
Intrare O multime S total ordonata.Iesire Cel mai mare element din S .
Urmatorul algoritm rezolva MAX:
1 reprezinta S cu un tablou s (preprocesare);
2 apeleaza un algoritm de sortare pentru s;
3 ntoarce ultimul element din s (postprocesarea);
Deoarece algoritmul de mai sus este mai complex decat algoritmul caredetermina maximul enumerand toate elementele din S , rezulta ca nueste ntotdeauna o reducere de la o problema mai complexa la una maisimpla. De aceea termenul de transformare este mai potrivit.Mentinem totusi si termenul de reducere pentru ca asa este cunoscut nliteratura.
D. Lucanu (FII - UAIC) Complexitatea problemelor PA 2014/2015 38 / 46
Reducerea polinomiala problemelor
Variante pentru submultimea de suma data
SSD1Intrare O multime S de numere ntregi, M numar ntreg pozitiv.Iesire Cel mai mare numar ntreg M cu proprietatile M M si
exista o submultime S S cu xS x = M.SSD2Instanta O multime S de numere ntregi, M,K doua numere ntregi
pozitive cu K M.Intrebare Exista numar ntreg M cu proprietatile K M M si
xS x = M pentru o o submultime oarecare S S?
SSD3Instanta O multime S de numere ntregi, M un numar ntreg pozitiv.Intrebare Exista o submultime S S cu xS x = M?
D. Lucanu (FII - UAIC) Complexitatea problemelor PA 2014/2015 39 / 46
Reducerea polinomiala problemelor
Exemplu: SSD1 SSD2SSD1
Intrare O multime S de numere ntregi, M numar ntreg pozitiv.
Iesire Cel mai mare numar ntreg M cu proprietatile M M si exista osubmultime S S cu xS x = M.
SSD2
Instanta O multime S de numere ntregi, M,K doua numere ntregi pozitivecu K M.
Intrebare Exista numar ntreg M cu proprietatile K M M sixS x = M
pentru o o submultime oarecare S S?
1 nu exista preprocesare;
2 cauta binar pe M n intervalul (0,M] apeland un algoritm carerezolva SSD2;
Acesta este un exemplu de reducerea unei probleme de optim la versiuneaei ca problema de decizie.
D. Lucanu (FII - UAIC) Complexitatea problemelor PA 2014/2015 40 / 46
Reducerea polinomiala problemelor
Exemplu: SSD2 SSD1
SSD1
Intrare O multime S de numere ntregi, M numar ntreg pozitiv.
Iesire Cel mai mare numar ntreg M cu proprietatile M M si exista osubmultime S S cu xS x = M.
SSD2
Instanta O multime S de numere ntregi, M,K doua numere ntregi pozitivecu K < M.
Intrebare Exista numar ntreg M cu proprietatile K M M sixS x = M
pentru o o submultime oarecare S S?
1 nu exista preprocesare;
2 calculeaza M M apeland un algoritm care rezolva SSD1;3 daca M K ntoarce DA, altfel ntoarce NU;
D. Lucanu (FII - UAIC) Complexitatea problemelor PA 2014/2015 41 / 46
Reducerea polinomiala problemelor
Exemplu: SSD3 SSD1
SSD1
Intrare O multime S de numere ntregi, M numar ntreg pozitiv.
Iesire Cel mai mare numar ntreg M cu proprietatile M M si exista osubmultime S S cu xS x = M.
SSD3
Instanta O multime S de numere ntregi, M un numar ntreg pozitiv.
Intrebare Exista o submultime S S cu xS x = M?1 nu exista preprocesare;
2 calculeaza M M apeland un algoritm care rezolva SSD1;3 daca M = M ntoarce DA, altfel ntoarce NU;
D. Lucanu (FII - UAIC) Complexitatea problemelor PA 2014/2015 42 / 46
Reducerea polinomiala problemelor
Reducerea Karp
Se considera P si Q probleme de decizie.Problema P se reduce polinomial la problema (rezolvabila) Q, notamP Q, daca se poate construi un algoritm care rezolva P dupaurmatoarea schema
1 se considera la intrare o instanta p a lui P;
2 preproceseaza n timp polinomial intrarea p
3 se apeleaza (o singura data) algoritmul pentru Q
4 raspunsul pentru Q este acelasi cu cel al lui P (fara postprocesare)
Daca pasul de preprocesare necesita O(g(n)) timp, atunci scriemP g(n) Q.
D. Lucanu (FII - UAIC) Complexitatea problemelor PA 2014/2015 43 / 46
TeaHighlight
TeaHighlight
TeaHighlight
TeaHighlight
Reducerea polinomiala problemelor
Exemplu: SSD3 SSD2
SSD2
Instanta O multime S de numere ntregi, M,K doua numere ntregi pozitivecu K M.
Intrebare Exista numar ntreg M cu proprietatile K M M sixS x = M
pentru o o submultime oarecare S S?SSD3
Instanta O multime S de numere ntregi, M un numar ntreg pozitiv.
Intrebare Exista o submultime S S cu xS x = M?1 nu exista preprocesare;
2 apeleaza un algoritm care rezolva SSD2 pentru instanta S ,M,M;
D. Lucanu (FII - UAIC) Complexitatea problemelor PA 2014/2015 44 / 46
Reducerea polinomiala problemelor
Exemplu: SUBSET DISJOINT
SUBSETInstanta Doua multimi S1 si S2 (S1, S2 U , U multime univers).Intrebare S1 S2?DISJOINTInstanta Doua multimi S1 si S2.Intrebare S1 S2 = ?
SUBSET DISJOINT:1 se considera la intrare o instanta S1, S2 a lui SUBSET;
2 calculeaza t(S1, S2) = S1, S23 ntoarce rezultatul ntors de un algoritm care rezolva DISJOINT
pentru instanta S1,S2.
D. Lucanu (FII - UAIC) Complexitatea problemelor PA 2014/2015 45 / 46
Reducerea polinomiala problemelor
Reducerea: proprietati
Teorema
a) Daca P are complexitatea timp (f (n)) si P g(n) Q (versiunea Karp)atunci Q are complexitatea timp (f (n) g(n)).b) Daca Q are complexitatea O(f (n)) si P g(n) Q (versiunea Karp)atunci P are complexitatea O(f (n) + g(n)).
D. Lucanu (FII - UAIC) Complexitatea problemelor PA 2014/2015 46 / 46
TeaHighlight
TeaHighlight
Complexitatea problemelorComplexitatea sortariiComplexitatea cautarii divide-et-imperaReducerea polinomiala problemelor