Vybrané partie z dátových štruktúr
2-INF-237, LS 2016/17

Úvod · Pravidlá · Prednášky · Prezentácia · Ako poznámkovať · Moodle
Táto stránka sa týka školského roku 2016/17. V školskom roku 2017/18 predmet vyučuje Jakub Kováč, stránku predmetu je https://people.ksp.sk/~kuko/ds


Sylabus na skúšku: Rozdiel medzi revíziami

Z VPDS
Prejsť na: navigácia, hľadanie
 
6 medziľahlých revízií od jedného používateľa nie je zobrazených.
Riadok 1: Riadok 1:
Na tejto stránke bude postupne vznikať sylabus na skúšku, zatiaľ však nie je kompletný.
+
Na tejto stránke je sylabus na skúšku v školskom roku 2016/17
 +
(neobsahuje úplný obsah všetkých prednášok)
  
'''Amortizovaná zložitosť a splay stromy'''
+
'''Úsporné dátové štruktúry'''
 +
* štruktúra pre rank a select
 +
* wavelet tree
 +
* štruktúra RRR a jej súvis s entropiou
 +
* úsporné stromy, počet binárnych stromov
 +
 
 +
'''Amortizovaná zložitosť'''
 
* definícia amortizovanej zložitosti, potenciálová funkcia
 
* definícia amortizovanej zložitosti, potenciálová funkcia
* splay stromy (algoritmus, zložitosť a potenciálová funkcia, netreba celý dôkaz)
+
 
 +
'''Prioritné rady'''
 +
* Fibonacciho halda a jej amortizovaná analýza
  
 
'''RMQ a LCA'''
 
'''RMQ a LCA'''
 +
* jednoduché algoritmy
 
* algoritmy s O(n) predspracovaním a O(1) dotazom
 
* algoritmy s O(n) predspracovaním a O(1) dotazom
 +
* segmentové/intervalové stromy
 +
 +
'''Scapegoat stromy, splay stromy a link-cut stromy'''
 +
* scapegoat stromy, vrátane analýzy
 +
* splay stromy (algoritmus, zložitosť a potenciálová funkcia, netreba celý dôkaz)
 +
* použitie splay stromov na join a split
 +
* link-cut stromy (štruktúra, expose, netreba analýzu zložitosti)
  
 
'''Vyhľadávanie kľúčových slov'''
 
'''Vyhľadávanie kľúčových slov'''
 
* invertovaný index
 
* invertovaný index
 
* lexikografický strom  
 
* lexikografický strom  
* prienik triedených zoznamov (doubling search/galloping search)
 
  
 
'''Sufixové stromy a polia'''
 
'''Sufixové stromy a polia'''
Riadok 19: Riadok 35:
 
* lineárny algoritmus na konštrukciu sufixového poľa
 
* lineárny algoritmus na konštrukciu sufixového poľa
 
* konverzia zo sufixového poľa na sufixový strom a naopak
 
* konverzia zo sufixového poľa na sufixový strom a naopak
* hľadanie maximálnych opakovaní
+
* použitie sufixového stromu a lca na hľadanie približných výskytov vzorky pri Hammingovej vzdialenosti  
* použitie sufixového stromu a lca na hľadanie približných výskyty vzorky pri Hammingovej vzdialenosti  
+
 
 +
'''Burrowsova–Wheelerova transformácia '''
 +
* vytváranie, spätná transformácia, použitie na kompresiu, FM index
  
 
'''Vyhľadávanie vzorky v texte'''
 
'''Vyhľadávanie vzorky v texte'''
 
* triviálny algoritmus na presné výskyty  
 
* triviálny algoritmus na presné výskyty  
 
* použitie konečných algoritmov, Morrisov-Prattov a Knuthov-Morrisov-Prattov algoritmus
 
* použitie konečných algoritmov, Morrisov-Prattov a Knuthov-Morrisov-Prattov algoritmus
* dynamické programovanie na výpočet editačnej vzdialenosti a hľadanie približných výskytov vzorky
+
* dynamické programovanie na výpočet editačnej vzdialenosti a na hľadanie približných výskytov vzorky
 
+
'''Burrowsova–Wheelerova transformácia '''
+
* vytváranie, spätná transformácia, použitie na kompresiu, FM index
+
 
+
'''Úsporné dátové štruktúry'''
+
* štruktúra pre rank a select
+
* wavelet tree (rank nad väčšou abecedou)
+
* štruktúra RRR a jej súvis s entropiou
+
* úsporné stromy, počet binárnych stromov
+
 
+
'''Prioritné rady'''
+
* Fibonacciho halda a jej amortizovaná analýza
+
* Tri verzie meldable háld: random, leftist a skew, v každej algoritmus pre zjednotenie a jeho analýza
+
  
 
'''Hešovanie'''
 
'''Hešovanie'''
 
* Perfektné hešovanie: algoritmus, odhad očakávanej veľkosti pamäte pri použití univerzálnej triedy hešovacích funkcií
 
* Perfektné hešovanie: algoritmus, odhad očakávanej veľkosti pamäte pri použití univerzálnej triedy hešovacích funkcií
 
+
* Bloomov filter - algoritmus, približný odhad pravdepodobnosti chyby
'''Štruktúry pre celočíselné kľúče'''
+
* van Emde Boas stromy, x-fast trees
+
  
 
'''Štruktúry pre externú pamäť'''
 
'''Štruktúry pre externú pamäť'''
Riadok 50: Riadok 53:
 
* B-stromy
 
* B-stromy
 
* statické cache-oblivious stromy s vEB rozložením
 
* statické cache-oblivious stromy s vEB rozložením
 +
 +
'''Štruktúry pre celočíselné kľúče'''
 +
* van Emde Boas stromy, x-fast trie, y-fast trie
 +
 +
'''Streaming model'''
 +
* count-min sketch vrátane odhadu chyby
  
 
'''Perzistentné dátové štruktúry'''
 
'''Perzistentné dátové štruktúry'''
 
* definícia (čiastočne a úplne) perzistentných a retroaktívnych dátových štruktúr
 
* definícia (čiastočne a úplne) perzistentných a retroaktívnych dátových štruktúr
* všeobecná transformácia dátovej štruktúry na čiastočne perzistentnú (za určitých predpokladov)
+
* všeobecné transformácie dátovej štruktúry na čiastočne perzistentnú (fat nodes, node copying)
 
* úplná retroaktivita pre problém nasledovníka (successor) a podobné rozložiteľné vyhľadávacie problémy
 
* úplná retroaktivita pre problém nasledovníka (successor) a podobné rozložiteľné vyhľadávacie problémy
  
Riadok 59: Riadok 68:
 
* lokalizácia bodu v rovine (planar point location) pomocou perzistentných a retroaktívnych štruktúr
 
* lokalizácia bodu v rovine (planar point location) pomocou perzistentných a retroaktívnych štruktúr
 
* rozsahové stromy (range trees) a ich zrýchlenie (layered range trees)
 
* rozsahové stromy (range trees) a ich zrýchlenie (layered range trees)
 +
* využitie wavelet trees namiesto statických rozsahových stromov

Aktuálna revízia z 15:07, 16. máj 2017

Na tejto stránke je sylabus na skúšku v školskom roku 2016/17 (neobsahuje úplný obsah všetkých prednášok)

Úsporné dátové štruktúry

  • štruktúra pre rank a select
  • wavelet tree
  • štruktúra RRR a jej súvis s entropiou
  • úsporné stromy, počet binárnych stromov

Amortizovaná zložitosť

  • definícia amortizovanej zložitosti, potenciálová funkcia

Prioritné rady

  • Fibonacciho halda a jej amortizovaná analýza

RMQ a LCA

  • jednoduché algoritmy
  • algoritmy s O(n) predspracovaním a O(1) dotazom
  • segmentové/intervalové stromy

Scapegoat stromy, splay stromy a link-cut stromy

  • scapegoat stromy, vrátane analýzy
  • splay stromy (algoritmus, zložitosť a potenciálová funkcia, netreba celý dôkaz)
  • použitie splay stromov na join a split
  • link-cut stromy (štruktúra, expose, netreba analýzu zložitosti)

Vyhľadávanie kľúčových slov

  • invertovaný index
  • lexikografický strom

Sufixové stromy a polia

  • sufixový strom
  • sufixové pole
  • vyhľadávanie vzorky v sufixovom strome a poli
  • lineárny algoritmus na konštrukciu sufixového poľa
  • konverzia zo sufixového poľa na sufixový strom a naopak
  • použitie sufixového stromu a lca na hľadanie približných výskytov vzorky pri Hammingovej vzdialenosti

Burrowsova–Wheelerova transformácia

  • vytváranie, spätná transformácia, použitie na kompresiu, FM index

Vyhľadávanie vzorky v texte

  • triviálny algoritmus na presné výskyty
  • použitie konečných algoritmov, Morrisov-Prattov a Knuthov-Morrisov-Prattov algoritmus
  • dynamické programovanie na výpočet editačnej vzdialenosti a na hľadanie približných výskytov vzorky

Hešovanie

  • Perfektné hešovanie: algoritmus, odhad očakávanej veľkosti pamäte pri použití univerzálnej triedy hešovacích funkcií
  • Bloomov filter - algoritmus, približný odhad pravdepodobnosti chyby

Štruktúry pre externú pamäť

  • výpočtový model externej pamäti, cache oblivious model
  • B-stromy
  • statické cache-oblivious stromy s vEB rozložením

Štruktúry pre celočíselné kľúče

  • van Emde Boas stromy, x-fast trie, y-fast trie

Streaming model

  • count-min sketch vrátane odhadu chyby

Perzistentné dátové štruktúry

  • definícia (čiastočne a úplne) perzistentných a retroaktívnych dátových štruktúr
  • všeobecné transformácie dátovej štruktúry na čiastočne perzistentnú (fat nodes, node copying)
  • úplná retroaktivita pre problém nasledovníka (successor) a podobné rozložiteľné vyhľadávacie problémy

Geometrické dátové štruktúry

  • lokalizácia bodu v rovine (planar point location) pomocou perzistentných a retroaktívnych štruktúr
  • rozsahové stromy (range trees) a ich zrýchlenie (layered range trees)
  • využitie wavelet trees namiesto statických rozsahových stromov