[3] Compl Probl

46

Click here to load reader

description

[3] Compl Probl

Transcript of [3] Compl Probl

  • Complexitatea problemelor

    Dorel Lucanu

    Faculty of Computer ScienceAlexandru Ioan Cuza University, Iasi, Romania

    [email protected]

    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