1. Vyhledávací stromy

Rozměr: px
Začít zobrazení ze stránky:

Download "1. Vyhledávací stromy"

Transkript

1 1. Vyledávací stromy V této kapitole budeme postaveni před následující problém. Je dáno nějaké univerzum prvků U a naším úkolem bude navrnout datovou strukturu, která udržuje konečnou množinu prvků X U. Pod univerzem si můžeme představit například přirozená čísla, tedy univerzum může být nekonečné na rozdíl od X. Na našic datec budeme ctít provádět následující operace: Insert vložit novou položku Delete smazat položku Find najít položku Způsob realizace jednotlivýc operací a jejic časová složitost se bude zjevně odvíjet od vlastností prvků univerza. V našem případě budeme ctít udržovat slovník, tedy množinu dvojic (k, v) kde k U se nazývá klíč a v odnota. Dále předpokládejme, že univerzum U je lineárně uspořádané (důležitá vlastnost!) a s klíči i odnotami pracujeme v konstantním čase. Po slovníku budeme ctít: Insert(k, v) vložit novou odnotu spolu s klíčem (předpokládáme, že ve struktuře dosud tento klíč není přítomen) Delete(k) smazat položku podle klíče Find(k) najít položku podle klíče Tyto operace je možné realizovat nad množstvím různýc datovýc struktur, od jednoducýc po značně složité. Věříme, že čtenáři nedělá větší problém vymyslet, jak by požadované operace realizoval například nad setříděnýc čí nesetříděným polem, setříděným či nesetříděným spojovým seznamem. Hlavním cílem této kapitoly je popsat datovou strukturu vyledávacío stromu, nicméně než se pustíme do bližšío vysvětlování, uvedeme ještě srovnání časovýc složitostí operací nad vyledávacími stromy a nad jednoducými datovými strukturami. Insert Delete Find pole Θ(1) Θ(n) Θ(n) setříděné pole Θ(n) Θ(n) Θ(log n) spojový seznam Θ(1) Θ(n) Θ(n) setříděný seznam Θ(n) Θ(n) Θ(n) vyledávací stromy Θ(log n) Θ(log n) Θ(log n) 1.1. Denice binárnío vyledávacío stromu Zavzpomínáme nyní, jak funguje algoritmus vyledávání prvku půlením intervalů nad setříděným polem. Zvolíme prvek uprostřed pole, porovnáme s ledaným a podle výsledku porovnání se zaměříme buďto na levý nebo na pravý interval, kde opakujeme stejný algoritmus

2 Stejnou myšlenku je možné zopakovat s jiným uložením dat než je pole. Představme si, že máme binární strom s prvky uloženými ve vrcolec, jeož jednotlivé podstromy ztotožníme s intervaly, nad kterými pracuje půlící vyledávání, a vrcoly stromu ztotožníme se zvolenými prvky pole, se kterými půlící algoritmus porovnává ledaný prvek. Jeden průbě půlícío vyledávání potom odpovídá průcodu tímto stromem z kořene dolů do nějakéo listu. Dále si povšimněme, že pro správnou funkci vyledávacío algoritmu nebylo potřeba volit vždy prostředky intervalů, stačí volit libovolný vnitřní prvek intervalu. Tato volba se projeví pouze na čase, v jakém bude vyledávání probíat. ni příslušný ztotožněný strom tedy nemusí být stejné pravidelný jako Tyto postřey nyní přetavíme do přesné definice binárníc vyledávacíc stromů. Definice: Strom T nazveme binární, pokud je zakořeněný a každý vrcol v V (T ) má nejvýše dva syny, u nicž rozlišujeme, který je levý a který pravý. Definice: Pro vrcol v binárnío stromu T značíme: l(v) a r(v) levý a pravý syn vrcolu v L(v) a R(v) levý a pravý podstrom vrcolu v p(v) otec vrcolu v (pokud eistuje) T (v) příslušný podstrom s kořenem v d(v) loubka stromu T (v) délka nejdelší cesty z kořene do listu Definice: Binární strom T nazveme binární vyledávací strom (BVS), pokud v každém vrcolu T je uložena dvojice (klíč, odnota) [ztotožníme vrcol s klíčem] a pro každý vrcol v V (T ) platí: ( u L(v) : u < v) & ( u R(v) : u > v). Poznamenejme ještě, že právě zavedená podmínka na uspořádání prvků uvnitř binárnío vyledávacío stromu je velmi silná, neboť dává kompletní informaci o uspořádání prvků reprezentované množiny. Pro lepší ilustraci definice BVS uveďme na obr. 1.1 několik příkladů Obr. 1.1: Příklady binárníc vyledávacíc stromů

3 1.2. Operace nad BVS Nyní popíšeme operace nad binárním vyledávacím stromem. Operaci vyledávání prvku jsme už nastínili v neformálním úvodu. Začneme v kořeni, klíč v něm uložený porovnáme s ledaným prvek. Buďto jsme měli štěstí a klíč našli, nebo víme, že se klíč může být jen v levém nebo naopak pravém podstromu, kde celý postup zopakujeme. lgoritmus Find Vstup: kořen BVS v, vyledávaný klíč Výstup: ukazatel na vrcol obsaující (nebo ) 1. Pokud v =, vrať. 2. Pokud v =, vrať v. 3. Pokud v <, vrať Find(r(v), ). 4. Pokud v >, vrať Find(l(v), ). Vkládání novéo prvku funguje velmi podobně jako vyledávání, s tím rozdílem, že v okamžiku, kdy by vyledávací algoritmus měl přejít do neeistujícío vrcolu, tento nový vrcol vytvoříme a vložíme do něj vkládaný prvek. lgoritmus Insert Vstup: kořen BVS v, vkládaný klíč 1. Pokud v =, skonči. (Případně nějak vyřeš duplicitu prvků.) 2. Pokud v <, s r(v), jinak s l(v). 3. Jestliže s =, vytvoř nový vrcol s klíčem, napoj o pod p(s) a skonči. 4. Jinak zavolej Insert(s, ). lgoritmus Delete Vstup: ukazatel na mazaný vrcol v 1. Pokud v je list, jednoduše list utrni. 2. Pokud v má jednoo syna s, napojíme s pod p(v) namísto v a vrcol v zrušíme. 3. Jinak má v oba syny, potom do vrcolu v vložíme minimum z R(v) nacázející se ve vrcolu m. Vrcol m umíme smazat protože je to buď list nebo má jen pravéo syna. Poznámka: Pokud má vrcol v při operaci Delete oba syny, je vložení minima z R(v) ekvivalentní s vložením maima z L(v). Příklady operací Insert a Delete aplikovanýc na BVS ilustrujeme na obr Čtenáři ponecáváme ve cvičeni k rozmyšlení, jak všecny výše uvedené operace realizovat i bez použití rekurze. To je ve většině imperativníc programovacíc jazyků i podstatně ryclejší a jednodušší implementace. Zároveň si však povšimněme, že rekurzivní povaa BVS i operací nad ním z něj činí přirozenou datovou strukturu k použití v čistě funkcionálníc programovacíc jazycíc

4 5 5 2 Insert Delete Delete Delete Obr. 1.2: Příklad operací Insert a Delete aplikovanýc na strom vlevo V průběu všec tří operací se kráčí od kořene v nejorším případě až do nejlubšío listu. Hloubka N-prvkovéo stromu může být Θ(N), když strom bude (téměř) lineární spojový seznam. Takovéto degenerované stromy vzniknou snadno, například přidáváním setříděné posloupnosti. Naopak když bude strom pěkně vyváženě vystavěný, dostaneme složitost Θ(log N). Vidíme tedy, že složitost operací stojí a padá s loubkou stromu. Srneme tedy složitost v následujícím tvrzení. Důsledek: Pro N-prvkový binární vyledávací strom T je časová složitost operací Find, Insert a Delete Θ(loubka T ). Uvedeme nyní podmínku, která zajišťuje dobrou loubku stromu. Definice: Binární vyledávací strom T nazveme dokonale vyvážený, pokud pro každý jeo vrcol v platí L(v) P (v) 1. Dokonale vyvážený binární strom bude mít určitě logaritmickou loubku. Jak lze takový strom konstruovat nebo dokonce průběžně udržovat při mazání a vkládání prvků? Odpověď není snadná; buďto strom zkonstruujeme naráz staticky, anebo se smíříme s tím, že operace na něm budou pomalejší než Θ(log N). lgoritmus pro postavení dokonale vyváženéo BVS ze setříděnéo pole ponecáme čtenáři jako cvičení. Lemma: Buď operace vkládání nebo operace mazání v dokonale vyváženém BVS trvá Ω(N). Důkaz: Necť N = 2 k 1 je počet vrcolů BVS T. Pak má dokonale vyvážený BVS T určený tvar a je jednoznačné, která odnota je ve kterém vrcolu. Necť nejmenší číslo v T je a největší je + N 1. Proveďme posloupnost operací Insert( + N), Delete(), Insert( + N + 1), Delete( + 1),

5 Za každou dvojicí operací se aspoň polovina listů posune o patro výš. Víme, že listů ve stromě T je (N + 1)/2. Tedy aspoň jedna z operací Insert nebo Delete trvá Ω(N). Poznamenejme ještě, že ve skutečnosti obě operace Insert i Delete současně musí trvat Ω(N), ale důkaz je o trocu obtížnější. vičení: 1. Operace Find, Insert a Delete jsme popsali rekurzivně. Navrněte, jak je dělat bez použití rekurze. 2. Navrněte algoritmus, který ze setříděnéo pole vyrobí v lineárním čase dokonale vyvážený BVS. 3. Navrněte algoritmus, který ze setříděnéo pole vyrobí v lineárním čase dokonale vyvážený BVS. 4. Navrněte algoritmus, který dostane dva BVS T 1 a T 2 sloučí jejic obsa do jedinéo BVS. lgoritmus by měl pracovat v čase O( T 1 + T 2 ). 5. Navrněte operaci Split, která dostane BVS T a odnotu s, a rozdělí strom na dva BVS T 1 a T 2 takové, že odnoty v T 1 jsou menší než s a odnoty v T 2 jsou větší než s Zavedení VL stromù Vidíme tedy, že dokonale vyvážené stromy nejsou vodné. Potřebovali bycom totiž, aby se strom dal také efektivně udržovat. Zavedeme proto slabší podmínku. Definice: Binární vyledávací strom T nazveme loubkově vyvážený, pokud pro každý jeo vrcol v V (T ) platí (L(v)) (P (v)) 1. Stromům s loubkovým vyvážením se říká VL stromy 1. Důležitou vlastností VL stromů je jejic logaritmická loubka. Tvrzení: VL strom na N vrcolec má loubku Θ(log N). Důkaz: Definujme čísla k = minimální počet vrcolů VL stromu loubky k. Stačí nyní ukázat, že posloupnost k roste eponenciálně. Jak bude vypadat minimální VL strom o k ladinác? S počtem ladin určitě poroste počet vrcolů, proto pro každý vrcol budeme ctít, aby se loubky jeo synů lišily. Tedy kořen v bude mít syna a loubky k 1 a syna b loubky k 2 1 Navrli je ruští matematikové G. M. děľson-veľskij a E. M. Landis, podle nicž jsou také pojmenovány

6 takové, že stromy T (a) a T (b) jsou minimální VL stromy o počtu ladin k 1 a k 2. Pro malá k dokážeme určit k ručně, pro větší k jsme právě sestrojili rekurentní vzta. 0 = 1 1 = 2 2 = 4 3 = 7. k = 1 + k 1 + k 2. Rekurentní vzorec jsme dostali rekurzivním stavěním stromu loubky k: nový kořen a 2 podstromy o loubkác k 1 a k 2. Lze poměrně snadno dokázat, že n = F n+2 1 (kde F n je n-té Fibonaccio číslo). My se však bez analýzy Fibonaccio posloupnosti obejdeme, protože nám stačí dokázat, že k rostou eponenciálně a nepotřebujeme přesný vzorec pro odnotu k. Tento fakt přenecáme čtenáři do cvičení Indukcí dokážeme, že k 2 k 2. První indukční krok jsme již ukázali. Pro k 2 platí k = 1 + k 1 + k 2 > 2 k k 2 2 = 2 k 2 ( ) = 2 k > 2 k 2. Tímto jsme dokázali, že na každé ladině je minimálně eponenciálně vrcolů, což nám zaručuje loubku O(log N). Druou nerovnost nalédneme zkoumáním B k maimálnío počtu vrcolů VL stromu loubky k. Ta je však sora omezena počtem vrcolů v dokonale vyváženém stromě, který je Θ(log N), z čeož vyplývá výsledná loubka VL stromů Θ(log N) Operace nad VL stromy Operace vyledání prvku je naprosto stejná jako Find v binárníc stromec. Důraz klademe na operace Insert a Delete, protože při nic musíme ošetřit udržení struktury VL stromů. První nutnou podmínkou je pro návr těcto operací je, že v každém vrcolu VL stromu budeme udržovat informaci o vyvážení loubky jeo podstromů. Protože definice VL stromů povoluje v rozdíly loubek pouze o 1, vystačíme s třemi symboly. Dostaneme tedy tři typy vrcolů VL stromu, pro které budeme používat následující značení: Vrcol typu, pokud je pravý podstrom lubší Vrcol typu, pokud je levý podstrom lubší a Vrcol typu (nula), který má oba podstromy sodné loubky

7 Stromové rotace V průběu algoritmů vkládání a mazání prvku bude nějak třeba průběžně udržovat vyváženost VL stromů. Dosáneme too tzv. rotacemi. Jde v zásadě o převrácení rany mezi původním otcem (kořenem podstromu) a nevyváženým vrcolem tak, aby byli i po přeskupení synové vzledem k otcům správně uspořádáni. My budeme používat dva typy rotací: jednoducou a dvojitou. Namísto slovnío popisu tentokrát čtenáře odkážeme na popis obrázkem. Jednoducá rotace je na obr. 1.3 a dvojitá na obr y y B B Obr. 1.3: Jednoducá rotace z y D y z B D B Obr. 1.4: Dvojitá rotace Vkládání do VL stromu Nový prvek vložíme jako list. Nový list má vždy znaménko nula. Předpokládáme, že patří nalevo od poslednío otce. Podíváme se na znaménko jeo otce: měl (neměl syna) teď má, po struktuře stromu naoru posíláme informaci, že se podstrom proloubil o 1, což může mít samozřejmě vliv na znaménka vrcolů na cestě ke kořeni. měl (měl pravéo syna, který je listem) teď má, loubka podstromu se nemění měl nenastane, protože v binární struktuře nemoou být dva leví synové Připadne-li přidaný list napravo, řešíme zrcadlově

8 + y 0 z 0 y 0 z 0 + Proloubil-li se strom vložením novéo listu, musíme pracovat s vyvážením: Informace o proloubení přišla zleva do vrcolu typu mění jej na vrcol se znaménkem a informace o proloubení je třeba poslat o úroveň výš. Informace o proloubení přišla zleva do vrcolu typu mění jej na vrcol se znaménkem, loubka je vyrovnána, dál nic neposíláme. Informace o proloubení přišla zleva do vrcolu s rozebereme na tři případy podle znaménka vrcolu, ze kteréo přišla informace o proloubení: Informace přišla z vrcolu typu provedeme rotaci doprava tak, že novým kořenem se stane vrcol y, ze kteréo přišla informace o proloubení. [ + 1] [] + 1 y 1 B y 0 B 1 1 Pozorování 1: znaménko vrcolů y a je Pozorování 2: loubka před vkládáním byla + 1 a nyní je také + 1, tedy nemusíme dále posílat informaci o proloubení a můžeme skončit Informace přišla z vrcolu typu uvažme ješte vrcol z jako pravéo syna vrcolu y, ze kteréo prišla informace o proloubení, a jeo podstromy B a vrcoly B a mají loubku nebo 1 označme ji tedy (to zřejmě protože vrcol y má znaménko, tedy jeo pravý podstrom s kořenem z má loubku + 1 )

9 provedeme dvojrotaci tak, že novým kořenem se stane vrcol z [ + 1] + 2 [ + 2] y + B z z 0 D y + 1 B D + 1 Pozorování 1: znaménko vrcolu z bude Pozorování 2: znaménka vrcolu a y se dopočítají v závislosti na loubce B a Pozorování 3: rozdíl loubky pravéo a levéo podstromu bude u těcto vrcolů 0 nebo 1 Pozorování 4: loubka před vkládáním byla + 2 a nyní je také + 2, tedy nemusíme dále posílat informaci o proloubení a můžeme skončit informace přišla z vrcolu typu to nemůže nastat, protože v tom případě by nešlo o proloubení Delete odebrání vrcolu z VL stromu který měl nějaké syny. Buď mažeme list nebo mažeme vrcol, pokud mažeme list, podíváme se na typ otce. Předpokládáme mazání levéo syna. byl typu (neměl pravéo syna) změní se na (vrcol teď nemá žádné syny) byl typu (měl oba syny) změní se na (mažeme-li pravý list, řešíme zrcadlově) mažeme vrcol s jedním (levým nebo pravým) synem syn nastupuje na místo otce a získává typ V obou případec posílame informaci o změně loubky stromu... mazaný vrcol měl oba syny (listy) vybereme jednoo ze synů na místo smazanéo otce. Hloubka se nemění. mazaný vrcol měl syny podstromy na jeo místo vezmeme největší prvek levéo podstromu (nebo nejmenší prvek pravéo podstromu) a od odebranéo (narazujícío) listu kontrolujeme vyvážení podstromu. Úprava vyvážení stromu po odebrání listu z podstromu

10 informace o změně loubky přišla z levéo podstromu do vrcolu typu vrcol se změní na a dál se loubka nemění informace přišla zleva do vrcolu s mění se na a posíláme informaci o změně loubky. y y 0 + problémová situace nastává, když informace o změně přišla zleva do vrcolu se znaménkem Rozebereme na tři případy podle znaménka pravéo syna nevyváženéo vrcolu pravý syn je typu provedeme rotaci vlevo, novým kořenem se stává y (pravý syn), oba vrcoly změní typ na a posíláme informaci o změně loubky. [ + 3] [ + 1] + 2 y 0 y B B + 1 pravý syn je typu provedeme opět rotaci vlevo, kořenem se stává y, následně se u y změní typ na, u vrcolu se typ nemění. Hloubka stromu se nemění, tudíž není třeba posílat informaci. [ + 3] [ + 1] + 2 y y B B pravý syn je typu v tomto případě uvažujeme ještě vrcol z jako levéo syna vrcolu y, s podstromy B a, podstromy B a

11 vičení: mají loubku nebo 1. Provedeme dvojrotaci, napřed vpravo rotujeme vrcoly z a y, potom vlevo vrcoly a z tak, že se z stane novým kořenem, typ vecolu bude potom nebo, typ y nebo (podle too, jaké znaménko měl původně vrcol z), typ z bude a opět posíláme informaci o změně loubky stromu. [ + 3] z [ + 1] y + 1 y P z Q P Q 1. Dokažte, že pro minimální velikost k VL stromu loubky k platí vzta k = F k+2 1 (kde F n je n-té Fibonaccio číslo)

Programování 3. hodina. RNDr. Jan Lánský, Ph.D. Katedra informatiky a matematiky Fakulta ekonomických studií Vysoká škola finanční a správní 2015

Programování 3. hodina. RNDr. Jan Lánský, Ph.D. Katedra informatiky a matematiky Fakulta ekonomických studií Vysoká škola finanční a správní 2015 Programování 3. hodina RNDr. Jan Lánský, Ph.D. Katedra informatiky a matematiky Fakulta ekonomických studií Vysoká škola finanční a správní 2015 Umíme z minulé hodiny Implementace zásobníku a fronty pomocí

Více

Vyvažování a rotace v BVS, všude se předpokládá AVL strom

Vyvažování a rotace v BVS, všude se předpokládá AVL strom Vyvažování a rotace v BVS, všude se předpokládá AVL strom 1. Jednoduchá levá rotace v uzlu u má operační složitost a) závislou na výšce levého podstromu uzlu u b) mezi O(1) a Θ(n) c) závislou na hloubce

Více

Datové struktury Úvod

Datové struktury Úvod Datové struktury Úvod Navrhněte co nejjednodušší datovou strukturu, která podporuje následující operace: 1. Insert a Delete v O(n), Search v O(log n); Datové struktury Úvod Navrhněte co nejjednodušší datovou

Více

1. Vyhledávací stromy

1. Vyhledávací stromy 1. Vledávací strom V minulé kapitole jsme se vdali po stopě datovýc struktur pro efektivní reprezentaci množin a slovníků. To nás nní dovede k různým variantám vledávacíc stromů. Začneme těmi binárními,

Více

bin arn ı vyhled av an ı a bst Karel Hor ak, Petr Ryˇsav y 23. bˇrezna 2016 Katedra poˇ c ıtaˇ c u, FEL, ˇ CVUT

bin arn ı vyhled av an ı a bst Karel Hor ak, Petr Ryˇsav y 23. bˇrezna 2016 Katedra poˇ c ıtaˇ c u, FEL, ˇ CVUT binární vyhledávání a bst Karel Horák, Petr Ryšavý 23. března 2016 Katedra počítačů, FEL, ČVUT Příklad 1 Naimplementujte binární vyhledávání. Upravte metodu BinarySearch::binarySearch. 1 Příklad 2 Mysĺım

Více

Binární vyhledávací stromy pokročilé partie

Binární vyhledávací stromy pokročilé partie Binární vyhledávací stromy pokročilé partie KMI/ALS lekce Jan Konečný 30.9.204 Literatura Cormen Thomas H., Introduction to Algorithms, 2nd edition MIT Press, 200. ISBN 0-262-5396-8 6, 3, A Knuth Donald

Více

Stromy, haldy, prioritní fronty

Stromy, haldy, prioritní fronty Stromy, haldy, prioritní fronty prof. Ing. Pavel Tvrdík CSc. Katedra počítačů FEL České vysoké učení technické DSA, ZS 2008/9, Přednáška 6 http://service.felk.cvut.cz/courses/x36dsa/ prof. Pavel Tvrdík

Více

Radek Mařík

Radek Mařík 2012-03-20 Radek Mařík 1. Pravá rotace v uzlu U a) v podstromu s kořenem U přemístí pravého syna U.R uzlu U do kořene. Přitom se uzel U stane levým synem uzlu U.R a levý podstrom uzlu U.R se stane pravým

Více

PQ-stromy a rozpoznávání intervalových grafů v lineárním čase

PQ-stromy a rozpoznávání intervalových grafů v lineárním čase -stromy a rozpoznávání intervalových grafů v lineárním čase ermutace s předepsanými intervaly Označme [n] množinu {1, 2,..., n}. Mějme permutaci π = π 1, π 2,..., π n množiny [n]. Řekneme, že množina S

Více

Základní datové struktury III: Stromy, haldy

Základní datové struktury III: Stromy, haldy Základní datové struktury III: Stromy, haldy prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní

Více

Algoritmy a datové struktury

Algoritmy a datové struktury Algoritmy a datové struktury Stromy 1 / 32 Obsah přednášky Pole a seznamy Stromy Procházení stromů Binární stromy Procházení BS Binární vyhledávací stromy 2 / 32 Pole Hledání v poli metodou půlení intervalu

Více

Algoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010

Algoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010 Dynamické programování Jiří Vyskočil, Marko Genyg-Berezovskyj 2010 Rozděl a panuj (divide-and-conquer) Rozděl (Divide): Rozděl problém na několik podproblémů tak, aby tyto podproblémy odpovídaly původnímu

Více

Stromy. Jan Hnilica Počítačové modelování 14

Stromy. Jan Hnilica Počítačové modelování 14 Stromy Jan Hnilica Počítačové modelování 14 1 Základní pojmy strom = dynamická datová struktura, složená z vrcholů (uzlů, prvků) propojených hranami hrany chápeme jako orientované, tzn. vedou z uzlu A

Více

prioritu a vždy je třeba začít pracovat na úkolu, který ma v daný okamžik

prioritu a vždy je třeba začít pracovat na úkolu, který ma v daný okamžik 1. Binární halda Uvažme následující problém ze života: jsme velmi vytíženým manažerem, kterému se plánovací diář stále plní obrovským množstvím úkolů. Každý úkol má předepsanou prioritu a vždy je třeba

Více

Základy algoritmizace c2005, 2007 Michal Krátký, Jiří Dvorský1/39

Základy algoritmizace c2005, 2007 Michal Krátký, Jiří Dvorský1/39 Základy algoritmizace Michal Krátký 1, Jiří Dvorský 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Základy algoritmizace, 2006/2007 Základy algoritmizace c2005, 2007 Michal Krátký, Jiří Dvorský1/39

Více

Volné stromy. Úvod do programování. Kořenové stromy a seřazené stromy. Volné stromy

Volné stromy. Úvod do programování. Kořenové stromy a seřazené stromy. Volné stromy Volné stromy Úvod do programování Souvislý, acyklický, neorientovaný graf nazýváme volným stromem (free tree). Často vynecháváme adjektivum volný, a říkáme jen, že daný graf je strom. Michal Krátký 1,Jiří

Více

a) b) c) Radek Mařík

a) b) c) Radek Mařík 2012-03-20 Radek Mařík 1. Čísla ze zadané posloupnosti postupně vkládejte do prázdného binárního vyhledávacího stromu (BVS), který nevyvažujte. Jak bude vypadat takto vytvořený BVS? Poté postupně odstraňte

Více

ADT STROM Lukáš Foldýna

ADT STROM Lukáš Foldýna ADT STROM Lukáš Foldýna 26. 05. 2006 Stromy mají široké uplatnění jako datové struktury pro různé algoritmy. Jsou to matematické abstrakce množin, kterou v běžném životě používáme velice často. Příkladem

Více

zejména Dijkstrův algoritmus pro hledání minimální cesty a hladový algoritmus pro hledání minimální kostry.

zejména Dijkstrův algoritmus pro hledání minimální cesty a hladový algoritmus pro hledání minimální kostry. Kapitola Ohodnocené grafy V praktických aplikacích teorie grafů zpravidla graf slouží jako nástroj k popisu nějaké struktury. Jednotlivé prvky této struktury mají často přiřazeny nějaké hodnoty (může jít

Více

Reprezentace aritmetického výrazu - binární strom reprezentující aritmetický výraz

Reprezentace aritmetického výrazu - binární strom reprezentující aritmetický výraz Reprezentace aritmetického výrazu - binární strom reprezentující aritmetický výraz (2 + 5) * (13-4) * + - 2 5 13 4 - listy stromu obsahují operandy (čísla) - vnitřní uzly obsahují operátory (znaménka)

Více

Výroková a predikátová logika - II

Výroková a predikátová logika - II Výroková a predikátová logika - II Petr Gregor KTIML MFF UK ZS 2017/2018 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - II ZS 2017/2018 1 / 17 Předběžnosti Základní pojmy n-ární relace a funkce

Více

Zpracoval: hypspave@fel.cvut.cz 7. Matematická indukce a rekurse. Řešení rekurentních (diferenčních) rovnic s konstantními koeficienty.

Zpracoval: hypspave@fel.cvut.cz 7. Matematická indukce a rekurse. Řešení rekurentních (diferenčních) rovnic s konstantními koeficienty. Zpracoval: hypspave@fel.cvut.cz 7. Matematická indukce a rekurse. Řešení rekurentních (diferenčních) rovnic s konstantními koeficienty. (A7B01MCS) I. Matematická indukce a rekurse. Indukční principy patří

Více

AVL stromy. pro každý uzel u stromu platí, že rozdíl mezi výškou jeho levého a pravého podstromu je nejvýše 1 stromy jsou samovyvažující

AVL stromy. pro každý uzel u stromu platí, že rozdíl mezi výškou jeho levého a pravého podstromu je nejvýše 1 stromy jsou samovyvažující Stromy 2 AVL AVL stromy jména tvůrců stromů: dva Rusové Adelson-Velskii, Landis vyvážené binární stromy pro každý uzel u stromu platí, že rozdíl mezi výškou jeho levého a pravého podstromu je nejvýše 1

Více

Binární vyhledávací strom pomocí směrníků Miroslav Hostaša L06620

Binární vyhledávací strom pomocí směrníků Miroslav Hostaša L06620 Binární vyhledávací strom pomocí směrníků Miroslav Hostaša L06620 1. Vymezení pojmů Strom: Strom je takové uspořádání prvků - vrcholů, ve kterém lze rozeznat předchůdce - rodiče a následovníky - syny.

Více

Maturitní téma: Programovací jazyk JAVA

Maturitní téma: Programovací jazyk JAVA Maturitní téma: Programovací jazyk JAVA Insert Sort (třídění vkládáním) 1. Jako setříděnou část označíme první prvek pole. Jako nesetříděnou část označíme zbytek pole. 2. Vezmeme první (libovolný) prvek

Více

5 Rekurze a zásobník. Rekurzivní volání metody

5 Rekurze a zásobník. Rekurzivní volání metody 5 Rekurze a zásobník Při volání metody z metody main() se do zásobníku uloží aktivační záznam obsahující - parametry - návratovou adresu, tedy adresu, kde bude program pokračovat v metodě main () po skončení

Více

4 Stromy a les. Definice a základní vlastnosti stromů. Kostry grafů a jejich počet.

4 Stromy a les. Definice a základní vlastnosti stromů. Kostry grafů a jejich počet. 4 Stromy a les Jedním ze základních, a patrně nejjednodušším, typem grafů jsou takzvané stromy. Jedná se o souvislé grafy bez kružnic. Přes svou (zdánlivou) jednoduchost mají stromy bohatou strukturu a

Více

Ukážeme si lineární algoritmus, který pro pevné k rozhodne, zda vstupní. stromový rozklad. Poznamenejme, že je-li k součástí vstupu, pak rozhodnout

Ukážeme si lineární algoritmus, který pro pevné k rozhodne, zda vstupní. stromový rozklad. Poznamenejme, že je-li k součástí vstupu, pak rozhodnout Ukážeme si lineární algoritmus, který pro pevné k rozhodne, zda vstupní graf má stromovou šířku nejvýše k, a je-li tomu tak, také vrátí příslušný stromový rozklad. Poznamenejme, že je-li k součástí vstupu,

Více

1. Vyhledávací stromy

1. Vyhledávací stromy 1. Vledávací strom V kapitole?? jsme se vdali po stopě datovýc struktur pro efektivní reprezentaci množin a slovníků. To nás nní dovede k různým variantám vledávacíc stromů. Začneme těmi binárními, ale

Více

1. Binomiální haldy. 1.1. Zavedení binomiální haldy

1. Binomiální haldy. 1.1. Zavedení binomiální haldy 1. Binomiální haldy V této kapitole popíšeme datovou strukturu zvanou binomiální halda. Základní funkcionalita binomiální haldy je podobná binární haldě, nicméně jí dosahuje jinými metodami a navíc podporuje

Více

TGH07 - Chytré stromové datové struktury

TGH07 - Chytré stromové datové struktury TGH07 - Chytré stromové datové struktury Jan Březina Technical University of Liberec 1. dubna 2014 Prioritní fronta Datová struktura s operacemi: Odeber Minum (AccessMin, DeleteMin) - vrat prvek s minimálním

Více

Adresní vyhledávání (přímý přístup, zřetězené a otevřené rozptylování, rozptylovací funkce)

Adresní vyhledávání (přímý přístup, zřetězené a otevřené rozptylování, rozptylovací funkce) 13. Metody vyhledávání. Adresní vyhledávání (přímý přístup, zřetězené a otevřené rozptylování, rozptylovací funkce). Asociativní vyhledávání (sekvenční, binárním půlením, interpolační, binární vyhledávací

Více

1 Linearní prostory nad komplexními čísly

1 Linearní prostory nad komplexními čísly 1 Linearní prostory nad komplexními čísly V této přednášce budeme hledat kořeny polynomů, které se dále budou moci vyskytovat jako složky vektorů nebo matic Vzhledem k tomu, že kořeny polynomu (i reálného)

Více

Nechť je číselná posloupnost. Pro všechna položme. Posloupnost nazýváme posloupnost částečných součtů řady.

Nechť je číselná posloupnost. Pro všechna položme. Posloupnost nazýváme posloupnost částečných součtů řady. Číselné řady Definice (Posloupnost částečných součtů číselné řady). Nechť je číselná posloupnost. Pro všechna položme. Posloupnost nazýváme posloupnost částečných součtů řady. Definice (Součet číselné

Více

Amortizovaná složitost. Prioritní fronty, haldy (binární, d- regulární, binomiální, Fibonacciho), operace nad nimi a jejich složitost

Amortizovaná složitost. Prioritní fronty, haldy (binární, d- regulární, binomiální, Fibonacciho), operace nad nimi a jejich složitost Amortizovaná složitost. Prioritní fronty, haldy binární, d- regulární, binomiální, Fibonacciho), operace nad nimi a jejich složitost 1. Asymptotické odhady Asymptotická složitost je deklarována na základě

Více

PŘEDNÁŠKA 2 POSLOUPNOSTI

PŘEDNÁŠKA 2 POSLOUPNOSTI PŘEDNÁŠKA 2 POSLOUPNOSTI 2.1 Zobrazení 2 Definice 1. Uvažujme libovolné neprázdné množiny A, B. Zobrazení množiny A do množiny B je definováno jako množina F uspořádaných dvojic (x, y A B, kde ke každému

Více

Diferencovatelné funkce

Diferencovatelné funkce Přednáška 5 Diferencovatelné funkce Jak jsme se zmínili v minulé přednášce, je lavní myšlenkou diferenciálnío počtu naradit danou funkci y = f) v okolí bodu a polynomem V této přednášce se budeme podrobně

Více

Modely Herbrandovské interpretace

Modely Herbrandovské interpretace Modely Herbrandovské interpretace Petr Štěpánek S využitím materialu Krysztofa R. Apta 2006 Logické programování 8 1 Uvedli jsme termové interpretace a termové modely pro logické programy a také nejmenší

Více

které je z různých pohledů charakterizují. Několik z nich dokážeme v této kapitole.

které je z různých pohledů charakterizují. Několik z nich dokážeme v této kapitole. Kapitola 7 Stromy Stromy jsou jednou z nejdůležitějších tříd grafů. O tom svědčí i množství vět, které je z různých pohledů charakterizují. Několik z nich dokážeme v této kapitole. Představíme také dvě

Více

Binární vyhledávací stromy

Binární vyhledávací stromy Binární vyhledávací stromy Definice: Binární vyhledávací strom (po domácku BVS) je buďto prázdná množina nebo kořen obsahující jednu hodnotu a mající dva podstromy (levý a pravý), což jsou opět BVS, ovšem

Více

Principy indukce a rekurentní rovnice

Principy indukce a rekurentní rovnice Principy indukce a rekurentní rovnice Jiří Velebil: X01DML 22. října 2010: Indukce 1/15 Příklad Místností rozměru n budeme rozumět šachovnici rozměru 2 n 2 n, ze které je jedno (libovolné) pole vyjmuto.

Více

Výroková a predikátová logika - IV

Výroková a predikátová logika - IV Výroková a predikátová logika - IV Petr Gregor KTIML MFF UK ZS 2018/2019 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - IV ZS 2018/2019 1 / 17 Tablo metoda Tablo Tablo - příklady F (((p q)

Více

Stromové rozklady. Definice 1. Stromový rozklad grafu G je dvojice (T, β) taková, že T je strom,

Stromové rozklady. Definice 1. Stromový rozklad grafu G je dvojice (T, β) taková, že T je strom, Stromové rozklady Zdeněk Dvořák 25. října 2017 Definice 1. Stromový rozklad grafu G je dvojice (T, β) taková, že T je strom, β je funkce přiřazující každému vrcholu T podmnožinu vrcholů v G, pro každé

Více

1. Vyhledávací stromy

1. Vyhledávací stromy 1. Vledávací strom V minulé kapitole jsme se vdali po stopě datovýc struktur pro efektivní reprezentaci množin a slovníků. To nás nní dovede k různým variantám vledávacíc stromů. Začneme těmi binárními,

Více

Lineární algebra : Polynomy

Lineární algebra : Polynomy Lineární algebra : Polynomy (2. přednáška) František Štampach, Karel Klouda LS 2013/2014 vytvořeno: 15. dubna 2014, 11:21 1 2 2.1 Značení a těleso komplexních čísel Značení N := {1, 2, 3... }... množina

Více

Prioritní fronta, halda

Prioritní fronta, halda Prioritní fronta, halda Priority queue, heap Jan Kybic http://cmp.felk.cvut.cz/~kybic kybic@fel.cvut.cz 2016 2018 1 / 26 Prioritní fronta Halda Heap sort 2 / 26 Prioritní fronta (priority queue) Podporuje

Více

1 Lineární prostory a podprostory

1 Lineární prostory a podprostory Lineární prostory a podprostory Přečtěte si: Učebnice AKLA, kapitola první, podkapitoly. až.4 včetně. Cvičení. Které z následujících množin jsou lineárními prostory s přirozenými definicemi operací?. C

Více

Těleso racionálních funkcí

Těleso racionálních funkcí Těleso racionálních funkcí Poznámka. V minulém semestru jsme libovolnému oboru integrity sestrojili podílové těleso. Pro libovolné těleso R je okruh polynomů R[x] oborem integrity, máme tedy podílové těleso

Více

Lineární algebra : Násobení matic a inverzní matice

Lineární algebra : Násobení matic a inverzní matice Lineární algebra : Násobení matic a inverzní matice (8. přednáška) František Štampach, Karel Klouda frantisek.stampach@fit.cvut.cz, karel.klouda@fit.cvut.cz Katedra aplikované matematiky Fakulta informačních

Více

Kapitola 1. Úvod. 1.1 Značení. 1.2 Výroky - opakování. N... přirozená čísla (1, 2, 3,...). Q... racionální čísla ( p, kde p Z a q N) R...

Kapitola 1. Úvod. 1.1 Značení. 1.2 Výroky - opakování. N... přirozená čísla (1, 2, 3,...). Q... racionální čísla ( p, kde p Z a q N) R... Kapitola 1 Úvod 1.1 Značení N... přirozená čísla (1, 2, 3,...). Z... celá čísla ( 3, 2, 1, 0, 1, 2,...). Q... racionální čísla ( p, kde p Z a q N) q R... reálná čísla C... komplexní čísla 1.2 Výroky -

Více

α β ) právě tehdy, když pro jednotlivé hodnoty platí β1 αn βn. Danou relaci nazýváme relace

α β ) právě tehdy, když pro jednotlivé hodnoty platí β1 αn βn. Danou relaci nazýváme relace Monotónní a Lineární Funkce 1. Relace předcházení a to Uvažujme dva vektory hodnot proměnných α = α,, 1 αn ( ) a β = ( β β ) 1,, n x,, 1 xn. Říkáme, že vekto r hodnot α předchází vektor hodnot β (značíme

Více

Základy matematické analýzy

Základy matematické analýzy Základy matematické analýzy Spojitost funkce Ing. Tomáš Kalvoda, Ph.D. 1, Ing. Daniel Vašata 2 1 tomas.kalvoda@fit.cvut.cz 2 daniel.vasata@fit.cvut.cz Katedra aplikované matematiky Fakulta informačních

Více

TGH07 - Chytré stromové datové struktury

TGH07 - Chytré stromové datové struktury TGH07 - Chytré stromové datové struktury Jan Březina Technical University of Liberec 5. dubna 2017 Prioritní fronta Datová struktura s operacemi: Odeber Minum (AccessMin, DeleteMin) - vrat prvek s minimálním

Více

Lineární algebra : Násobení matic a inverzní matice

Lineární algebra : Násobení matic a inverzní matice Lineární algebra : Násobení matic a inverzní matice (8. přednáška) František Štampach, Karel Klouda LS 2013/2014 vytvořeno: 17. března 2014, 12:42 1 2 0.1 Násobení matic Definice 1. Buďte m, n, p N, A

Více

Vyhledávací stromy. Slouží jako pomůcka pro organizaci dat umožňující efektivní vyhledávání.

Vyhledávací stromy. Slouží jako pomůcka pro organizaci dat umožňující efektivní vyhledávání. Vyhledávací stromy Slouží jako pomůcka pro organizaci dat umožňující efektivní vyhledávání. Vytvářejí se vždy nad již existující datovou strukturou (zpravidla tabulkou). Vyhledávací stromy můžeme rozdělit

Více

Pokročilé haldy. prof. Ing. Pavel Tvrdík CSc. Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010

Pokročilé haldy. prof. Ing. Pavel Tvrdík CSc. Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Pokročilé haldy prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy (I-EFA) ZS 2010/11,

Více

4 Pojem grafu, ve zkratce

4 Pojem grafu, ve zkratce Petr Hliněný, FI MU Brno, 2014 1 / 24 FI: IB000: Pojem grafu 4 Pojem grafu, ve zkratce Třebaže grafy jsou jen jednou z mnoha struktur v matematice a vlastně pouze speciálním případem binárních relací,

Více

autoři: Rudolf Bayer, Ed McCreight všechny vnější uzly (listy) mají stejnou hloubku ADS (abstraktní datové struktury)

autoři: Rudolf Bayer, Ed McCreight všechny vnější uzly (listy) mají stejnou hloubku ADS (abstraktní datové struktury) definice ( tree) autoři: Rudolf Bayer, Ed McCreight vyvážený strom řádu m ( ) každý uzel nejméně a nejvýše m potomků s výjimkou kořene každý vnitřní uzel obsahuje o méně klíčů než je počet potomků (ukazatelů)

Více

Stromy. Strom: souvislý graf bez kružnic využití: počítačová grafika seznam objektů efektivní vyhledávání výpočetní stromy rozhodovací stromy

Stromy. Strom: souvislý graf bez kružnic využití: počítačová grafika seznam objektů efektivní vyhledávání výpočetní stromy rozhodovací stromy Stromy úvod Stromy Strom: souvislý graf bez kružnic využití: počítačová grafika seznam objektů efektivní vyhledávání výpočetní stromy rozhodovací stromy Neorientovaný strom Orientovaný strom Kořenový orientovaný

Více

5 Orientované grafy, Toky v sítích

5 Orientované grafy, Toky v sítích Petr Hliněný, FI MU Brno, 205 / 9 FI: IB000: Toky v sítích 5 Orientované grafy, Toky v sítích Nyní se budeme zabývat typem sít ových úloh, ve kterých není podstatná délka hran a spojení, nýbž jejich propustnost

Více

Algoritmy výpočetní geometrie

Algoritmy výpočetní geometrie Algoritmy výpočetní geometrie prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy (BI-EFA)

Více

Diskrétní matematika. DiM /01, zimní semestr 2015/2016

Diskrétní matematika. DiM /01, zimní semestr 2015/2016 Diskrétní matematika Petr Kovář petr.kovar@vsb.cz Vysoká škola báňská Technická univerzita Ostrava DiM 470-2301/01, zimní semestr 2015/2016 O tomto souboru Tento soubor je zamýšlen především jako pomůcka

Více

6 Lineární geometrie. 6.1 Lineární variety

6 Lineární geometrie. 6.1 Lineární variety 6 Lineární geometrie Motivace. Pojem lineární varieta, který budeme v této kapitole studovat z nejrůznějších úhlů pohledu, není žádnou umělou konstrukcí. Příkladem lineární variety je totiž množina řešení

Více

Báze a dimenze vektorových prostorů

Báze a dimenze vektorových prostorů Báze a dimenze vektorových prostorů Buď (V, +, ) vektorový prostor nad tělesem (T, +, ). Nechť u 1, u 2,..., u n je konečná posloupnost vektorů z V. Existují-li prvky s 1, s 2,..., s n T, z nichž alespoň

Více

1 Kardinální čísla. množin. Tvrzení: Necht X Cn. Pak: 1. X Cn a je to nejmenší prvek třídy X v uspořádání (Cn, ),

1 Kardinální čísla. množin. Tvrzení: Necht X Cn. Pak: 1. X Cn a je to nejmenší prvek třídy X v uspořádání (Cn, ), Pracovní text k přednášce Logika a teorie množin 4.1.2007 1 1 Kardinální čísla 2 Ukázali jsme, že ordinální čísla reprezentují typy dobrých uspořádání Základy teorie množin Z minula: 1. Věta o ordinálních

Více

FREDHOLMOVA ALTERNATIVA

FREDHOLMOVA ALTERNATIVA FREDHOLMOVA ALTERNATIVA Pavel Jirásek 1 Abstrakt. V tomto článku se snažíme shrnout dosavadní výsledky týkající se Fredholmovy alternativy (FA). Postupně zmíníme FA na prostorech konečné dimenze, FA pro

Více

Přednáška 3: Limita a spojitost

Přednáška 3: Limita a spojitost 3 / 1 / 17, 1:38 Přednáška 3: Limita a spojitost Limita funkce Nejdříve je potřeba upřesnit pojmy, které přesněji popisují (topologickou) strukturu množiny reálných čísel, a to zejména pojem okolí 31 Definice

Více

Predik atov a logika - pˇredn aˇska () Predik atov a logika - pˇredn aˇska / 16

Predik atov a logika - pˇredn aˇska () Predik atov a logika - pˇredn aˇska / 16 Predikátová logika - přednáška 3 6. 1. 2015 () Predikátová logika - přednáška 3 6. 1. 2015 1 / 16 Věta (o dedukci) Bud L jazyk, T teorie pro L, ϕ L-sentence a ψ L-formule. Pak Věta (o kompaktnosti) T ϕ

Více

Dijkstrův algoritmus

Dijkstrův algoritmus Dijkstrův algoritmus Hledání nejkratší cesty v nezáporně hranově ohodnoceném grafu Necht je dán orientovaný graf G = (V, H) a funkce, která každé hraně h = (u, v) H přiřadí nezáporné reálné číslo označované

Více

Algoritmizace složitost rekurzivních algoritmů. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010

Algoritmizace složitost rekurzivních algoritmů. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010 složitost rekurzivních algoritmů Jiří Vyskočil, Marko Genyg-Berezovskyj 2010 Vyjádřen ení složitosti rekurzivního algoritmu rekurentním m tvarem Příklad vyjádření složitosti rekurzivního algoritmu rekurencí:

Více

Vrcholová barevnost grafu

Vrcholová barevnost grafu Vrcholová barevnost grafu Definice: Necht G = (V, E) je obyčejný graf a k N. Zobrazení φ : V {1, 2,..., k} nazýváme k-vrcholovým obarvením grafu G. Pokud φ(u) φ(v) pro každou hranu {u, v} E, nazveme k-vrcholové

Více

kopci a tuto představu přetavit do náčrtku celé situace, viz. obr.1. Aby však tento náčrt nebyl

kopci a tuto představu přetavit do náčrtku celé situace, viz. obr.1. Aby však tento náčrt nebyl Určete rovnici tečny ke grafu funkce f x x x v bodě dotyku [,?] Řešení: Protože máme zadánu složenou funkci, může být docela obtížné popsat její vlastnosti či nakreslit si její graf Nicméně vlastnosti

Více

9 Kolmost vektorových podprostorů

9 Kolmost vektorových podprostorů 9 Kolmost vektorových podprostorů Od kolmosti dvou vektorů nyní přejdeme ke kolmosti dvou vektorových podprostorů. Budeme se zabývat otázkou, kdy jsou dva vektorové podprostory na sebe kolmé a jak to poznáme.

Více

Dynamické datové struktury III.

Dynamické datové struktury III. Dynamické datové struktury III. Halda. Tomáš Bayer bayertom@natur.cuni.cz Katedra aplikované geoinformatiky a kartografie, Přírodovědecká fakulta UK. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované

Více

Riemannův určitý integrál

Riemannův určitý integrál Riemannův určitý integrál 1. Motivační příklad Příklad (Motivační příklad pro zavedení Riemannova integrálu). Nechť,. Vypočtěme obsah vybarvené oblasti ohraničené grafem funkce, osou a svislými přímkami

Více

Algoritmizace prostorových úloh

Algoritmizace prostorových úloh INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Třídění, vyhledávání Daniela Szturcová

Více

7 Ortogonální a ortonormální vektory

7 Ortogonální a ortonormální vektory 7 Ortogonální a ortonormální vektory Ze vztahu (5) pro výpočet odchylky dvou vektorů vyplývá, že nenulové vektory u, v jsou na sebe kolmé právě tehdy, když u v =0. Tato skutečnost nám poslouží k zavedení

Více

Lineární algebra : Lineární prostor

Lineární algebra : Lineární prostor Lineární algebra : Lineární prostor (3. přednáška) František Štampach, Karel Klouda LS 2013/2014 vytvořeno: 17. dubna 2014, 14:43 1 2 3.1 Aximotické zavedení lineárního prostoru Číselné těleso Celou lineární

Více

Hledání v textu algoritmem Boyer Moore

Hledání v textu algoritmem Boyer Moore Zápočtová práce z Algoritmů a Datových Struktur II (NTIN061) Hledání v textu algoritmem Boyer Moore David Pěgřímek http://davpe.net Algoritmus Boyer Moore[1] slouží k vyhledání vzoru V v zadaném textu

Více

Principy indukce a rekursivní algoritmy

Principy indukce a rekursivní algoritmy Principy indukce a rekursivní algoritmy Jiří Velebil: A7B01MCS 19. září 2011: Indukce 1/20 Příklad Místností rozměru n budeme rozumět šachovnici rozměru 2 n 2 n, ze které je jedno (libovolné) pole vyjmuto.

Více

NMAF 051, ZS Zkoušková písemná práce 16. ledna 2009

NMAF 051, ZS Zkoušková písemná práce 16. ledna 2009 Jednotlivé kroky při výpočtech stručně, ale co nejpřesněji odůvodněte. Pokud používáte nějaké tvrzení, nezapomeňte ověřit splnění předpokladů. Jméno a příjmení: Skupina: Příklad 3 5 Celkem bodů Bodů 8

Více

Algoritmy na ohodnoceném grafu

Algoritmy na ohodnoceném grafu Algoritmy na ohodnoceném grafu Dvě základní optimalizační úlohy: Jak najít nejkratší cestu mezi dvěma vrcholy? Dijkstrův algoritmus s t Jak najít minimální kostru grafu? Jarníkův a Kruskalův algoritmus

Více

Matematická analýza pro informatiky I. Limita posloupnosti (I)

Matematická analýza pro informatiky I. Limita posloupnosti (I) Matematická analýza pro informatiky I. 3. přednáška Limita posloupnosti (I) Jan Tomeček tomecek@inf.upol.cz http://aix-slx.upol.cz/ tomecek/index Univerzita Palackého v Olomouci 25. února 2011 tomecek@inf.upol.cz

Více

V každém kroku se a + b zmenší o min(a, b), tedy vždy alespoň o 1. Jestliže jsme na začátku dostali 2

V každém kroku se a + b zmenší o min(a, b), tedy vždy alespoň o 1. Jestliže jsme na začátku dostali 2 Euklidův algoritmus Doprovodný materiál pro cvičení Programování I. NPRM044 Autor: Markéta Popelová Datum: 31.10.2010 Euklidův algoritmus verze 1.0 Zadání: Určete největšího společného dělitele dvou zadaných

Více

Složitosti základních operací B + stromu

Složitosti základních operací B + stromu Složitosti základních operací B + stromu Radim Bača VŠB Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Katedra informatiky ŠKOMAM 2010-1- 28/1/2010 Složitosti základních operací B +

Více

TOPOLOGIE A TEORIE KATEGORIÍ (2017/2018) 4. PREDNÁŠKA - SOUČIN PROSTORŮ A TICHONOVOVA VĚTA.

TOPOLOGIE A TEORIE KATEGORIÍ (2017/2018) 4. PREDNÁŠKA - SOUČIN PROSTORŮ A TICHONOVOVA VĚTA. TOPOLOGIE A TEORIE KATEGORIÍ (2017/2018) 4. PREDNÁŠKA - SOUČIN PROSTORŮ A TICHONOVOVA VĚTA. PAVEL RŮŽIČKA 4.1. (Kvazi)kompaktnost a sub-báze. Buď (Q, ) uspořádaná množina. Řetězcem v Q budeme rozumět lineárně

Více

STACK

STACK Níže uvedené úlohy představují přehled otázek, které se vyskytly v tomto nebo v minulých semestrech ve cvičení nebo v minulých semestrech u zkoušky. Mezi otázkami semestrovými a zkouškovými není žádný

Více

BINARY SEARCH TREE

BINARY SEARCH TREE Níže uvedené úlohy představují přehled otázek, které se vyskytly v tomto nebo v minulých semestrech ve cvičení nebo v minulých semestrech u zkoušky. Mezi otázkami semestrovými a zkouškovými není žádný

Více

Bezkontextové jazyky. Bezkontextové jazyky 1 p.1/39

Bezkontextové jazyky. Bezkontextové jazyky 1 p.1/39 Bezkontextové jazyky Bezkontextové jazyky 1 p.1/39 Jazyky typu 2 Definice 4.1 Gramatika G = (N, Σ, P, S) si nazývá bezkontextovou gramatikou, jestliže všechna pravidla z P mají tvar A α, A N, α (N Σ) Lemma

Více

Binární Vyhledávací Stromy, u kterých je. složitost operací v nejhorším. rovná O(log n)

Binární Vyhledávací Stromy, u kterých je. složitost operací v nejhorším. rovná O(log n) Stromy Binární Vyhledávací Stromy, u kterých je č asová složitost operací v nejhorším případě rovná O(log n) Vlastnosti Red-Black Stromů Vlastnosti Red-Black stromů Každý uzel stromu je obarven červenou

Více

Limita a spojitost funkce a zobrazení jedné reálné proměnné

Limita a spojitost funkce a zobrazení jedné reálné proměnné Přednáška 4 Limita a spojitost funkce a zobrazení jedné reálné proměnné V několika následujících přednáškách budeme studovat zobrazení jedné reálné proměnné f : X Y, kde X R a Y R k. Protože pro každé

Více

Konstrukce relace. Postupně konstruujeme na množině všech stavů Q relace i,

Konstrukce relace. Postupně konstruujeme na množině všech stavů Q relace i, [161014-1204 ] 11 2.1.35 Konstrukce relace. Postupně konstruujeme na množině všech stavů Q relace i, kde i = 0, 1,..., takto: p 0 q právě tehdy, když bud p, q F nebo p, q F. Dokud i+1 i konstruujeme p

Více

Matematická logika. Rostislav Horčík. horcik

Matematická logika. Rostislav Horčík.  horcik Matematická logika Rostislav Horčík horcik@math.feld.cvut.cz horcik@cs.cas.cz www.cs.cas.cz/ horcik Rostislav Horčík (ČVUT FEL) Y01MLO Letní semestr 2007/2008 1 / 15 Splnitelnost množin Definice Množina

Více

Matematická logika. Miroslav Kolařík

Matematická logika. Miroslav Kolařík Matematická logika přednáška třetí Miroslav Kolařík Zpracováno dle textu R. Bělohlávka: Matematická logika poznámky k přednáškám, 2004. a dle učebního textu R. Bělohlávka a V. Vychodila: Diskrétní matematika

Více

Datové struktury 2: Rozptylovací tabulky

Datové struktury 2: Rozptylovací tabulky Datové struktury 2: Rozptylovací tabulky prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy

Více

Výroková a predikátová logika - II

Výroková a predikátová logika - II Výroková a predikátová logika - II Petr Gregor KTIML MFF UK ZS 2015/2016 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - II ZS 2015/2016 1 / 18 Základní syntax Jazyk Výroková logika je logikou

Více

Vlastnosti regulárních jazyků

Vlastnosti regulárních jazyků Vlastnosti regulárních jazyků Podobně jako u dalších tříd jazyků budeme nyní zkoumat následující vlastnosti regulárních jazyků: vlastnosti strukturální, vlastnosti uzávěrové a rozhodnutelné problémy pro

Více

Definice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují

Definice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují Definice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují 1. u + v = v + u, u, v V 2. (u + v) + w = u + (v + w),

Více

3. Prohledávání grafů

3. Prohledávání grafů 3. Prohledávání grafů Prohledání do šířky Breadth-First Search BFS Jde o grafový algoritmus, který postupně prochází všechny vrcholy v dané komponentě souvislosti. Algoritmus nejprve projde všechny sousedy

Více

Numerická matematika 1

Numerická matematika 1 Numerická matematika 1 Obsah 1 Řešení nelineárních rovnic 3 1.1 Metoda půlení intervalu....................... 3 1.2 Metoda jednoduché iterace..................... 4 1.3 Newtonova metoda..........................

Více