Strukture podataka i algoritmi 9 REKURENTNE JEDNAINE Rekurentne

  • Slides: 26
Download presentation
Strukture podataka i algoritmi 9. REKURENTNE JEDNAČINE

Strukture podataka i algoritmi 9. REKURENTNE JEDNAČINE

Rekurentne jednačine □ □ □ U analizi rekurzivnih algoritama obično se srećemo sa rekurentnim

Rekurentne jednačine □ □ □ U analizi rekurzivnih algoritama obično se srećemo sa rekurentnim jednačinama koje na neki način treba riješiti. Rekurentnom jednačinom se definiše vrijednost funkcije za neki argument pomoću vrijednosti iste funkcije za manje argumente. Zadatak je naći formulu za T(n) izraženu samo pomoću veličine ulaza n. Strukture podataka i algoritmi

Metodi za rješavanje rekurentnih jednačina • Metod višestruke zamjene • Metod stabla rekurzije •

Metodi za rješavanje rekurentnih jednačina • Metod višestruke zamjene • Metod stabla rekurzije • Metod nagađanja • Opšti metod Strukture podataka i algoritmi

Metod višestruke zamjene • Sastoji se od višestrukog zamjenjivanja vrijednosti T(m) za m<n opštim

Metod višestruke zamjene • Sastoji se od višestrukog zamjenjivanja vrijednosti T(m) za m<n opštim oblikom rekurentnog dijela jednačine za T(n) • Nakon nekoliko zamjena bi se trebao dobiti opšti obrazac za T(n) (trenutak kada taj opšti oblik prelazi u bazni slučaj) • Primjer: merge-sort i quick-sort Strukture podataka i algoritmi

Sortiranje objedinjavanjem (merge-sort) □ Vrijeme izvršavanja za merge-sort(a, n): �� (�� )= { ako

Sortiranje objedinjavanjem (merge-sort) □ Vrijeme izvršavanja za merge-sort(a, n): �� (�� )= { ako je �� = 1 �� , 2�� (�� /2) + ���� , ako je �� > 1 Strukture podataka i algoritmi

Sortiranje objedinjavanjem (merge-sort) □ Vrijeme izvršavanja za merge-sort(a, n): �� (�� )= { □

Sortiranje objedinjavanjem (merge-sort) □ Vrijeme izvršavanja za merge-sort(a, n): �� (�� )= { □ ako je �� = 1 �� , 2�� (�� /2) + ���� , ako je �� > 1 Rješenje: �� (�� ) = �� (�� log �� ) Strukture podataka i algoritmi

Sortiranje objedinjavanjem (merge-sort) □ Zašto �� (�� ) = �� (�� log �� )?

Sortiranje objedinjavanjem (merge-sort) □ Zašto �� (�� ) = �� (�� log �� )? Strukture podataka i algoritmi

Metod stabla rekurzije • Rekurentna jednačina se predstavlja stablom u kojem nas svaka zamjena

Metod stabla rekurzije • Rekurentna jednačina se predstavlja stablom u kojem nas svaka zamjena rekurentnog dijela jednačine dovodi do jednog nivoa dublje u stablu • Da bismo dobili ukupno vrijeme za cijelo stablo rekurzije tj. rješenje rekurentne jednačine, sabiramo vremena po svim nivoima stabla Strukture podataka i algoritmi

Primjer 1: merge-sort (c=1) □ Vrijeme izvršavanja za merge-sort(a, n): �� (�� )= {

Primjer 1: merge-sort (c=1) □ Vrijeme izvršavanja za merge-sort(a, n): �� (�� )= { □ ako je �� = 1 �� , 2�� (�� /2) + �� , ako je �� > 1 Da bismo niz dužine n sortirali objedinjavanjem, moramo sortirati objedinjavanjem dva podniza dužine n/2 i uraditi n jedinica dodatnog posla za njihovo nerekurzivno objedinjavanje Strukture podataka i algoritmi

Primjer 1: merge-sort (c=1) □ Stablo rekurzije za rekurentnu jednačinu merge-sort: �� (�� )=2��

Primjer 1: merge-sort (c=1) □ Stablo rekurzije za rekurentnu jednačinu merge-sort: �� (�� )=2�� (�� /2) + �� Strukture podataka i algoritmi

Primjer 1: merge-sort (c=1) • Stablo ima logn + 1 nivo (to su nivoi

Primjer 1: merge-sort (c=1) • Stablo ima logn + 1 nivo (to su nivoi 0, 1, 2, . . . , logn) • Svaki nivo doprinosi istu vrijednost od n jedinica dodatnog vremena • Ukupno vrijeme je T (n) = n (logn + 1) = n logn + n Strukture podataka i algoritmi

Primjer 2: □ Vrijeme izvršavanja za rekurentnu jednačinu: �� (�� )= { □ ako

Primjer 2: □ Vrijeme izvršavanja za rekurentnu jednačinu: �� (�� )= { □ ako je �� = 1 �� , 2, 3�� (�� /2) + �� ako je �� > 1 Da bismo riješili problem veličine n, rješavamo 3 podproblema veličine n/2 i radimo n 2 jedinica dodatnog posla Strukture podataka i algoritmi

Primjer 2 – stablo rekurzije: 2 �� (�� ) = 3�� (�� /2) +

Primjer 2 – stablo rekurzije: 2 �� (�� ) = 3�� (�� /2) + �� Strukture podataka i algoritmi

Primjer 2: Strukture podataka i algoritmi

Primjer 2: Strukture podataka i algoritmi

Primjer 2 – rješenje rekurentne jednačine Strukture podataka i algoritmi

Primjer 2 – rješenje rekurentne jednačine Strukture podataka i algoritmi

Metod nagađanja • Prvo se promišljeno pretpostavi rješenje date rekurentne jednačine • Zatim se

Metod nagađanja • Prvo se promišljeno pretpostavi rješenje date rekurentne jednačine • Zatim se ta pretpostavka potvrdi, obično matematičkom imdukcijom • Ukoliko se pretpostavka ne ispostavi tačnom, pravi se nova i postupak ponavlja Strukture podataka i algoritmi

Primjer: □ Vrijeme izvršavanja za rekurentnu jednačinu: �� (�� )= { □ a, 2��

Primjer: □ Vrijeme izvršavanja za rekurentnu jednačinu: �� (�� )= { □ a, 2�� (�� /2) + b�� logn, ako je �� = 1 ako je �� > 1 S obzirom da je ova jednačina slična sortiranju objedinjavanjem, pretpostavljamo da je rješenje T(n) = O(n logn) ----- pretpostavka 1 Strukture podataka i algoritmi

Primjer – dokaz pretpostavke 1: Strukture podataka i algoritmi

Primjer – dokaz pretpostavke 1: Strukture podataka i algoritmi

Primjer – dokaz pretpostavke 1: Strukture podataka i algoritmi

Primjer – dokaz pretpostavke 1: Strukture podataka i algoritmi

Pretpostavka 2 – T(n) = O(n 2): Probamo neku funkciju koja brže raste npr.

Pretpostavka 2 – T(n) = O(n 2): Probamo neku funkciju koja brže raste npr. T(n) = O(n 2) Strukture podataka i algoritmi

Opšti metod Strukture podataka i algoritmi

Opšti metod Strukture podataka i algoritmi

Opšti metod - teorema: • • Opšti metod se zasniva na teoremi: TEOREMA: Neka

Opšti metod - teorema: • • Opšti metod se zasniva na teoremi: TEOREMA: Neka je nenegativna funkcija T(n) data rekurentnom jednačinom d, �� (�� )= { k, a�� (�� /b) + c�� Strukture podataka i algoritmi ako je �� ≤ �� 0 ako je �� > �� 0

Zaključak • • U analizi rekurzivnih algoritama obično se srećemo sa rekurentnim jednačinama koje

Zaključak • • U analizi rekurzivnih algoritama obično se srećemo sa rekurentnim jednačinama koje na neki način treba riješiti. Rješavanje rekurentne jednačine podrazumijeva pronalaženje formulu za T(n) izraženu samo pomoću veličine ulaza n. Metodi za rješavanje rekurentnih jednačina: metod višestruke zamjene, metod stabla rekurzije, metod nagađanja i opšti metod. Metod višestruke zamjene: sastoji se od višestrukog zamjenjivanja vrijednosti T(m) za m<n opštim oblikom rekurentnog dijela jednačine za T(n). Strukture podataka i algoritmi

Zaključak 2 Strukture podataka i algoritmi

Zaključak 2 Strukture podataka i algoritmi

Hvala na pažnji! Strukture podataka i algoritmi

Hvala na pažnji! Strukture podataka i algoritmi