0. Ukázka použití maker (zapsal Martin Mareš) 1. Toky v sítích (zapsala Markéta Popelová)
|
|
- Kristina Holubová
- před 6 lety
- Počet zobrazení:
Transkript
1 0. Ukázka použití maker (zapsal Martin Mareš) Předposlední kapitola Jesvačvečer.Lysperníjezelenisevírněvrtáčejívmokřavě. 1 Takhle. Vypadají. Odrážky. Druhá kapitola Věta: Pařez není strom. Důkaz: Strom je speciálním případem lesa. Les je(podle definice) graf bez kružnic. Pařez obsahuje alespoň jednu kružnici. Proto pařez nemůže být les, a tedy ani strom. Algoritmus:(tříděníposloupnosti a 1,...,a n pomocístupidsortu) 1. π identickápermutacenamnožině {1,...,n}. 2. Opakuj: 3. Ověř,zdajeposloupnost a π(1), a π(2),..., a π(n) uspořádánavzestupně. Pokud je, vrať ji jako výsledek. 4. Nahraď π jejím lexikografickým následníkem. 1. Toky v sítích (zapsala Markéta Popelová) První motivační úloha: Rozvod čajovodu do všech učeben. Představme si, že by v budově fakulty na Malé Straně existoval čajovod, který by rozváděl čaj do každé učebny. Znázorněme si to orientovaným grafem, kde by jeden významný vrchol představoval čajovar a druhý učebnu, ve které sedíme. Hrany mezi vrcholy by představovaly větvící se trubky, které mají čaj rozvádět. Jak rozvést co nejefektivněji dostatek čaje do dané učebny? Čajovod Druhá motivační úloha: Přenos dat. 1 VizLewisCaroll:Jabberwocky
2 Jinýmpříklademmůžebýtpočítačovásíťnapřenosdat,kterásesestávázpřenosových linek spojených pomocí routerů. Data se sice obvykle přenášejí po paketech, ale to můžeme při dnešních rychlostech přenosu zanedbat a považovat data za spojitá. Jak přenášet data mezi dvěma počítači v síti co nejrychleji? Definice:Síťjeuspořádanápětice(V, E, z, s, c),kdeplatí: (V, E)jeorientovanýgraf. c:e Ê + 0 jekapacitahran. z, s V jsoudvavrcholygrafu,kterýmříkámezdrojastok(spotřebič). Grafjesymetrický,tedy u, v V : uv E vu E(tutopodmínku simůžemezvolitbezújmynaobecnosti,neboťvždymůžemedografu přidat hranu, která v něm ještě nebyla, a dát jí nulovou kapacitu). π 2π 9 6 z 6 8 s Příklad sítě. Čísla představují kapacity jednotlivých hran. Definice:Tokjefunkce f: E Ê + 0 taková,žeplatí: 1.Tokpokaždéhranějeomezenjejíkapacitou: e E: f(e) c(e). 2. Kirchhoffův zákon: v V \ {z, s}: u:uv E f(uv)= u:vu E f(vu). Neboliprokaždývrcholkromězdrojeastokuplatí,žeto,codonějpřitéká, jestejněvelkéjakoto,coznějodtéká. Poznámka: Pro zjednodušení zaveďme speciální značení: f + (v)= u:uv E f(uv)(to,codovrcholupřitéká) f (v)= u:vu E f(vu)(to,cozvrcholuodtéká) f (v)=f + (v) f (v)(rozdíltěchtohodnot) Pak můžeme Krichhoffův zákon zapsat jednoduše jako: v V \ {z, s}: f (v)=
3 π (π) π (2π) 2 (9) π + 2 (6) 6(6) 2 2 (8) z s w(f) = π (2) 1 2 (1 2 ) 1(3) 9 2 (5) 7 2 (4) Příklad toku. Čísla představují toky po hranách, v závorkách jsou kapacity. Poznámka: V angličtině se obvykle zdroj značí s a stok t jako source a target. Pozorování: Nějaký tok vždy existuje. V libovolné síti můžeme vždy zvolit funkci nulovou(po žádné hraně nic nepoteče). Tato funkce splňuje podmínky toku, a tedy takovýto nulový tok je zcela korektní. Definice: Velikost toku f je rozdíl součtu velikostí toku na hranách vedoucích do s asoučtuvelikostítokunahranáchvedoucíchzs.neboliodtoho,codostokupřitéká odečteme to, co ze stoku odtéká. f := f (s). Cíl: Budeme chtít najít v zadané síti tok, jehož velikost je maximální. Otázka: Má vůbec smysl mluvit o maximálním toku? Bude vždy existovat? Nevybírámezdetotižzkonečněmnohapřípadůanaprvnípohledneníjasné,žesupremum množiny všech toků bude zároveň i maximum této množiny. Odpověď: Ano, pro každou síť existuje maximální tok. Toto poměrně překvapivé tvrzení můžeme nahlédnout za pomoci matematické analýzy. Nástin důkazu je takový, že množina toků je kompaktní a velikost toku je spojitá(dokonce lineární) funkcezmnožinytokůdo Ê.Protonabývávelikosttokunamnožiněvšechtoků svého maxima. Poznámka: Pro naše případy předpokládejme, že kapacity jsou racionální. Poměrně námtozjednodušípráciapřílišnámtoneublíží,neboťprácesreálnýmičíslyje stejně pro informatika poměrně zapeklitá. Prvnířešení:Hledejmecestu Pze zdo stakovou,že e P: f(e) < c(e)(povšech jejích hranách teče ostře méně, než jim dovolují jejich kapacity). Pak zjevně můžeme tok upravit tak, aby se jeho velikost zvětšila. Zvolme ε:=min(c(e) f(e)). e P Novýtok f pakdefinujmejako f (e) := f(e)+ǫ.kapacitynepřekročíme(ǫje největší možná hodnota, abychom tok zvětšili, ale nepřekročili kapacitu ani jedné
4 zhrancesty P)aKirchhoffovyzákonyzůstanouneporušeny,neboťzdrojastok nezahrnujíakaždémujinémuvrcholunacestě P sepřítok f + (v)iodtok f (v) zvětšípřesněoǫ. Otázka: Najdeme takto ovšem opravdu maximální tok? Odpověď: Nemusíme. Např. na obrázku je vidět, že když najdeme nejdříve cestu přes hranuskapacitou1(naobrázkutučně)aužhodnotutokunatétohraněnesnížíme, tak dosáhneme velikost toku nejvýše 19. Ale maximální tok této sítě má velikost 20. Čísla představují kapacity jednotlivých hran. Zde by ovšem situaci zachránilo, kdybychom poslali tok velikosti 1 proti směru prostřední hrany to můžeme udělat třeba odečtením jedničky od toku po směru hrany. Někdy je tedy potřeba poslat něco i v protisměru. Definujme si rezervu hrany. Tanámříká,kolikmůžemedanýmsměremještěposlat.Využijemezde,žesíťje symetrická. Definice:Rezervahrany uvje r(uv):= c(uv) f(uv)+f(vu). Ukažme si nyní algoritmus, který rezervy využívá, a dokažme, že je konečný a že najde maximální tok každé racionální sítě. Algoritmus(Fordův-Fulkersonův) 1. f libovolnýtok,např.všudenulový( e E: f(e) 0). 2.Dokud Pcestaze zdo staková,že e P: r(e) >0,opakujeme: 3. ε min{r(e) e P }. 4. Provšechnyhrany uv P: 5. δ min{f(vu), ε} 6. f(vu) f(vu) δ 7. f(uv) f(uv)+ε δ 8. Prohlásíme f za maximální tok. Problém: Zastaví se Fordův-Fulkersonův algoritmus? Pro celočíselné kapacity se v každém kroku zvětší velikost toku alespoň o 1. Algoritmus se tedy zastaví po nejvíce tolika krocích, jako je nějaká horní závora pro velikost maximálního toku např. součet kapacit všech hran vedoucích do stoku c(us). u:us E
5 Pro racionální kapacity využijeme jednoduchý trik kapacity vynásobíme společným jmenovatelem a převedeme na původní případ. Uvědomme si, že algoritmus nikde kapacity hran ale ani toky na hranách nedělí, takže už zůstanou celočíselné. A tak jsme převedli racionální kapacity na celočíselné, pro které už víme, že se algoritmus zastaví. Na síti s iracionálními kapacitami se algoritmus chová mnohdy divoce, nemusí se zastavit ale dokonce ani konvergovat ke správnému výsledku. K zamyšlení: Zkuste vymyslet příklad takové sítě. Otázka: Vydá algoritmus maximální tok? Odpověď: Vydá. Abychom si to dokázali, zaveďme si řezy a použijme je jako certifikát maximality nalezeného toku. Definice:Řez jeuspořádanádvojicemnožinvrcholů(a, B)taková,že AaBjsou disjunktní, pokrývají všechny vrcholy, A obsahuje zdroj a B obsahuje stok. Neboli A B=, A B= V, z A, s B. Definice:Hranyřezu E(A, B):= E A B. Poznámka:Řezysedajídefinovatvícezpůsoby,jednazdefinicje,žeřezjemnožina hran grafu takových, že po jejich odebrání se graf rozpadne na více komponent. Tuto definicisplňujeitanaše,alenenaopak. Definice: Kapacita řezu je Definice:Tokpřesřezje c(a, B):= f(a, B):= e E(A,B) e E(A,B) f(e) c(e). e E(B,A) f(e). Pozorování:Prokaždýtok fakaždýřez(a, B)platí,že f(a, B) c(a, B). Důkaz: f(a, B)= e (A,B) f(e) e E(B,A) f(e) e E(A,B) f(e) e E(A,B) Lemmátko:Prokaždýtok faprokaždýřez(a, B)platí f(a, B)= f. Důkaz: Indukcí a obrázkem. c(e)=c(a, B). Začnemesřezem(V \ {s}, {s}).protentořezlemmaplatízdefinicevelikosti toku. Dále budu postupně přesouvat vrcholy z množiny B do množiny A. Libovolný řez může být takto vytvořen z toho triviálního. Představmesi,žemámejižlibovolnýřez(A, B)apřesouvámevrchol vza do B.Tedy A = A \ {v}ab = B {v}
6 Uvědommesi,ževšechnyhranyjednohotypu(např.vedoucízAdo v)sechovají stejně, takže stačí uvažovat hrany pouze 4 typů(+ ostatní hrany(ty, které přesun neovlivní) označíme ε): α hranyvedoucízado v β hranyvedoucízvdo B γ hranyvedoucízvdo A δ hranyvedoucízbdo v Přesunvrcholu vzado B. Předpřesunem(v A)se f(a, B)skládázε+β δ.popřesunu(v B) se f(a, B )skládázε+α γ.rozdíltěchtohodnotje α+δ β γ. Nicméně z Kirchhoffova zákonu o vrcholu v(což není ani zdroj ani stok) víme, že α+δ β γ= f (v)=0,neboť α+δjeto,codo vpřitéká,aβ+ γjeto, cozvvytéká.tedytokpřesřezpředpřesunemjestejněvelkýjakotokpřesřez po přesunu. Pokud lemma platilo před přesunem, musí platit i po přesunu. Důsledek:Prokaždýtok fařez(a, B)platí,že f =f(a, B) c(a, B). Pozorování:Pokudnajdemedvojicitok fařez(a, B)takovou,žeplatí f =c(a, B), paktok fjemaximálnía řez(a, B)minimální. Věta: Pokud se Fordův-Fulkersonův algoritmus zastaví, tak vydá maximální tok. Důkaz: NechťseFordův-Fulkersonůvalgoritmuszastaví.Definujme A={v V; cestaze zdo vjdoucípohranáchsr>0}ab= V \ A. Uvědommesi,že(A, B)jeřez,neboť z A(ze zdo zexistujecestadélky0) a s B(kdyby s B,takbymuselaexistovatcestaze zdo sskladnourezervou, tudíž by algoritmus neskončil, nýbrž tuto cestu vzal a stávající tok vylepšil). Dálevíme,ževšechnyhranyřezumajínulovourezervu,neboli uv E(A, B): r(uv)=0(kdybymělahrana uvrezervunenulovou,tedykladnou,takbyvrchol v patřildo A).ProtopovšechhranáchřezuvedoucíchzAdo Btečetolik,kolikjsou kapacitytěchtohran,apohranáchvedoucíchz Bdo Anetečenic,tedy f(uv)=c(uv) a f(vu)=0.mámeřez(a, B)takový,že f(a, B)=c(A, B).Toznamená,žejsme našli maximální tok a minimální řez. Zformulujme si, co jsme zjistili a dokázali o algoritmu pánů Forda a Fulkersona. Věta: Pro síť s racionálními kapacitami se Fordův-Fulkersonův algoritmus zastaví a vydá maximální tok a minimální řez
7 Věta:(Fordova-Fulkersonova) Důkaz: min c(a, B)=max f. (A,B)řez f tok Jižvíme,žemin (A,B) c(a, B) max f f.stačítedydokázat,ževždyexistují tok f ařez(a, B)takové,že c(a, B)= f.proracionálníkapacitynámfordův- Fulkersonův algoritmus takový tok(maximální) a řez(minimální) vydá. Jak je to ale s reálnými kapacitami? Využijeme tvrzení, že maximální tok existuje vždy. Pak můžeme spustit Fordův-Fulkersonův algoritmus rovnou na tento maximální tok(místo nulového). Algoritmus se nutně ihned zastaví, neboť neexistuje cesta, která by měla alespoň jednu hranu s kladnou rezervou. A my víme, že pokud se algoritmus zastaví,takvydáminimálnířez.protoiprosíťsreálnýmikapacitamiplatí,žeexistuje maximálnítok faminimálnířez(a, B)ac(A, B)= f. Věta: Síť s celočíselnými kapacitami má aspoň jeden z maximálních toků celočíselný a Fordův-Fulkersonův algoritmus takový tok najde. Důkaz: Když dostane Fordův-Fulkersonův algoritmus celočíselnou síť, tak najde maximální tok a ten bude zase celočíselný(algoritmus nikde nedělí). To, že umíme najít celočíselné řešení není úplně samozřejmé.(u jiných problémů takové štěstí mít nebudeme.) Ukažme si rovnou jednu aplikaci, která právě celočíselný tok využije. Aplikace: Hledání maximálního párování v bipartitních grafech. Definice:Množinahran F Esenazývápárování,jestližežádnédvěhranytéto množinynemajíspolečnýanijedenvrchol.neboli e, f F: e f=. Definice: Párování je maximální, pokud obsahuje největší možný počet hran. Mějme bipartitní graf G =(V, E). V něm hledáme maximální párování. Sestrojmesisíťtakovou,ževezmemevrcholy V grafu Gapřidámeknimdvaspeciální vrcholy z(zdroj)as(stok)azezdrojepřidámehranydovšechvrcholůlevépartity a ze všech vrcholů pravé partity povedeme hrany do stoku. Všechny kapacity nastavme na 1. Hrany bipartitního grafu zorientujme z levé partity do pravé. Nyní stačí jen na tuto síť spustit Fordův-Fulkersonův algoritmus(nebo libovolný jiný algoritmus, který najde maximální celočíselný tok) a až doběhne, tak prohlásit hrany s tokem 1 za maximální párování. Hledání maximálního párování v bipartitním grafu
8 Existuje totiž bijekce mezi párováním a celočíselnými toky při zachování velikosti. Z každého toku na výše zmíněném grafu(viz obrázek) lze sestrojit párování o stejné velikosti(velikost toku zde odpovídá počtu hran bipartitního grafu, po kterých poteče 1) a naopak. Důležité je si uvědomit, že definice toku(omezení toku kapacitou a Kirchhoffovy zákony) nám zaručují, že hrany s nenulovým tokem(tedy jedničkovým) budou tvořit párování(nestane se, že by dvě hrany začínaly nebo končily ve stejném vrcholu, neboť by se nutně porušila jedna ze dvou podmínek definice toku). Potom i maximální tok bude odpovídat maximálnímu párování a naopak. V bipartitním grafu najdeme maximální párování v čase O(n (m+n)). Fordův- Fulkersonův algoritmus stráví jednou iterací čas O(m + n)(za prohledání do šířky) a při jednotkových kapacitách bude iterací nejvýše n, protože každou se tok zvětší alespoňo1avšechnytokyjsouomezenéřezemkolemzdroje,kterýmákapacitu nejvýše n. Výsledná časová složtost hledání maximálního párování bude tedy O(n (m+n)). 2. Dinicův algoritmus (zapsala Markéta Popelová) Na minulé přednášce jsme si ukázali Fordův-Fulkersonův algoritmus. Tento algoritmus hledal maximální tok tak, že začal s tokem nulovým a postupně ho zvětšoval. Pro každé zvětšení potřeboval v síti najít cestu, na které mají všechny hrany kladnou rezervu(po takovéto cestě můžeme poslat více, než po ní aktuálně teče). Ukázali jsme, že pokud takováto cesta existuje, jde tok vylepšit(zvětšit). Zároveň pokud tok jde vylepšit, pak takováto cesta existuje. Dokázali jsme, že pro racionální kapacity je algoritmus konečný a najde maximální tok. Fordův-Fulkersonův algoritmus má ovšem značné nevýhody. Funguje pouze pro racionální kapacity a je poměrně pomalý. Nyní si ukážeme jiný algoritmus, kterýnevylepšujetokpomocícest,alepomocítoků...budemektomupotřebovatsíť rezerv. Definice:Síťrezervktoku fvsíti S=(V, E, z, s, c)jesíť R=(S, f)=(v, E, z, s, r), kde r(e)jerezervahrany evtoku f. Konvence:Prohranu eznačí e hranuopačnou.např.pokud e=uv,tak e = vu. Jedůležitésiuvědomit,žesíťrezervjezávislájaknapůvodnísíti S,tak nanějakémtoku f vsíti S.Síťrezerv Rsepakodsítě S lišípouzekapacitami síť Rmájakokapacituhranyrezervuhranyvpůvodnísíti.Propřipomenutí: rezervuhrany evsíti S=(V, E, z, s, c)stokem f jsmesidefinovalijako r(e)= c(e) f(e)+f( e). Než si ukážeme samotný algoritmus, dokážeme si následující lemma. Lemma:Prokaždýtok fvsíti Saprokaždýtok gvsíti R=(S, f)lzevčase O(m) nalézttok f vsíti Stakový,že f = f + g. Důkaz: Důkazrozdělímedotříkroků.Vprvnímkrokusiukážeme,jakbudemetok f vsíti Skonstruovat.Vdruhémkrokudokážeme,žetaktozkonstruované f jeoprav
9 du tok. A nakonec ukážeme, že splňuje požadovanou vlastnost, tedy že jeho velikost jesoučetvelikostítoků fa g. 1.konstrukce f Prokaždoudvojicihran e, e určíme f (e)af ( e)následovně: Pokud g(e)=g( e)=0,paknastavme: f (e):= f(e), f ( e):= f( e). Pokud g(e) >0ag( e)=0,pakpoložme: ε:=min(g(e), f( e)), f (e):= f(e)+g(e) ε, f ( e):= f( e) ε. Případ g(e)=0ag( e) >0vyřešímeobdobně. Pokud g(e) >0ag( e) >0,pakodečtemeodtoku gcirkulacipocyklu tvořenémhranami ea e: δ:=min(g(e), g( e)), g (e):= g(e) δ, g ( e):= g( e) δ. Tok g nyníspadápodněkterýzpředchozíchpřípadů,kteréužumíme vyřešit. 2. f jetok 1.Nejdříveověřmeprvnípodmínku: e E:0 f(e) c(e).vezměme libovolnouhranu e E.Podletoho,cotečepohranách ea e vtoku g, jsme rozdělili konstrukci toku na tři případy: 1.Pokudpohranách ea e neteklžádnýtok g,pakjsmenastavili f (e):= f(e)af ( e):= f( e).tedypokud fdodržoval kapacity,takpro f musíplatittosamé. 2.Pokudpohraně etekltok gnenulovýapoopačnénulový,tak jsmezvolili: f (e):= f(e)+g(e) ε.víme,žejsmesi εvybrali tak,že ε g(e).proto f (e) 0. Teďověřme,že f (e) c(e).vpřípadě,že ε = g(e), tak f (e)=f(e) c(e).vopačnémpřípaděplatí,že ε=f( e). Pak ovšem f (e)=f(e)+g(e) f( e) f(e)+[c(e) f(e)+f( e)] f( e)=c(e). Využilijsme,že gjetokvsítirezerv,tedy g(e) c(e) f(e)+ f( e). Protok f ( e)platí,že ε f( e).proto f ( e)=f( e) ε 0.Zároveň f ( e) f( e) c( e)
10 Tímjsmedokázali,že f (e)if ( e)dodržujíkapacity. 3.Vposlednímpřípaděteklpoobouhranáchkladnýtok g.menší tokzg(e)ag( e)jsmevynulovaliaodvětšíhoodečetliten menší.tok g (e) a g ( e)tedyzůstalkorektníatok f už konstruujeme podle předchozího případu. 2. Teď musíme ještě dokázat, že nový tok neporušuje Kirchhoffovy zákony: v V \ {z, s}:f (v)=0. Vezměmesilibovolnouhranu e=uv E.Uvědommesi,žepřipřechodu z f(e)na f (e)azf( e)na f ( e)bylo: f (u)sníženoog(e) f (v)zvýšenoog(e). Sečteme-li úpravy na všech hranách, dostaneme: f (v)=f (v)+ u:uv E g(uv) u:vu E g(vu) = = f (v)+g + (v) g (v)=f (v)+g (v). Jelikož fbyltok,tak f (v)=0ajelikož gbyltok,tak g (v)=0.proto f (v)=f (v)+g (v)=0. Tímjsmedokázali,že f jetokvsíti S. 3. f = f + g Použijme vztah pro součet přebytků z předchozího kroku: f =f (s)=f (s)+g (s)= f + g. Pro algoritmus budeme potřebovat vybírat kvalitní toky g v síti rezerv. Pokud senámtobudedařit,budesetok f rychlezvětšovat,ažbychommohlidojítkmaximálnímu toku. Nejlépe by se nám hodily co největší toky v síti rezerv. Kdybychom sidalizacílnajítvždymaximálnítokvsítirezerv,výsledekbybylsicekrásný (dostali bychom tak rovnou i maximální tok v původní síti), ale problém hledání maximálního toku bychom pouze přenesli na jinou síť. Naše požadavky na tento tok budou tedy takové, aby byl dostatečně velký, ale abychom během jeho hledání nestrávili moc času. Podívejme se, jak se s tímto problémem vyrovná Dinicův algoritmus. Nejdříve si ale zadefinujme několik pojmů. Definice:Tok f jeblokující,jestližeprokaždouorientovanoucestu P ze z do s existujehrana e Ptaková,že f(e)=c(e). Definice: Síť je vrstevnatá(pročištěná), když všechny vrcholy a hrany leží na nejkratšíchcestáchze zdo s
11 Dinicův algoritmus začíná s nulovým tokem. Potom vždy podle toku f sestrojí síťrezervavnívymažehranysnulovourezervou.pokudvtétopromazanésíti rezerv neexistuje cesta ze zdroje do stoku, tak skončí a prohlásí tok f za maximální. Jinakpročistísíťrezervtak,abyseznístalavrstevnatásíť(rozdělívrcholydovrstev podle vzdálenosti od zdroje a odstraní přebytečné hrany). Ve vrstevnaté síti najde blokující tok, pomocí něhož zlepší tok f. Pak opět pokračuje sestrojením sítě rezerv na tomto vylepšeném toku f atd. z s Pročištěná síť rozdělená do vrstev Algoritmus(Dinicův) 1. f nulovýtok. 2.Sestrojímesíťrezerv Rasmažeme e:r(e)=0. 3. l délkanejkratšícestyze zdo svr. 4.Pokud l=,zastavímeseavrátíme f. 5.Pročistímesíť R síť C. 6. g blokujícítokvc. 7.Zlepšímetok fpomocí g. 8.GOTO2. Pozorování: Pokud se algoritmus zastaví, vydá maximální tok. Důkaz:Víme,že fjestálekorektnítok(jediné,jakhoměnímejepřičítánítoku g, cožje,jakjsmesidokázali, neškodnáoperace ).Jakmileneexistujecestaze zdo s v R,takje fmaximálnítok,neboťvtutodobubysezastavil(avydalmaximální tok) i Fordův-Fulkersonův algoritmus, který je korektní. A teď ještě musíme ujasnit, jak budeme čistit síť rezerv a vybírat blokující tok g. Algoritmus pročištění sítě rezerv 1. Rozdělíme vrcholy do vrstev podle vzdálenosti od z. 2. Odstraníme vrstvy za s (tedy vrcholy, které jsou od z vzdálenější než s), hrany do minulých vrstev a hrany uvnitř vrstev. 3.Odstraníme slepéuličky,tedyvrcholysdeg out (v)=0,atoopakovaně pomocí fronty.(nejdříve zařadíme do fronty všechny vrcholy s deg out (v)=0.pakdokudnenífrontaprázdná,vždyvyberemevrchol vzfronty,odstraníme vavšechnyhrany uv.prokaždýtakový vrchol u zkontrolujeme, zda se tím nesnížil výstupní stupeň vrcholu u nanulu(deg out (u)=0).pokudsnížil,takhozařadímedofronty.)
12 z s Nepročištěná síť. Obsahuje zpětné hrany, hrany uvnitř vrstvy a slepé uličky. Hledání blokujícího toku začneme s tokem nulovým. Pak vezmeme vždy orientovanoucestuzezdrojedostokuvsíti C.Vtétocestěnajdemehranusnejnižší hodnotouvýrazu r(e) g(e)(neboli c(e) f(e)vpůvodnísíti).tutohodnotuoznačíme ε.pakke všemhranámnatétocestěpřičteme ε.pokudtok g nanějaké hraně dosáhne kapacity hrany, což je zde r(e), tak hranu vymažeme. Následně síť dočistíme, aby splňovala podmínky vrstevnaté sítě. A pokud ještě existuje nějaká orientovaná cesta ze zdroje do stoku, tak opět pokračujeme s touto cestou. Algoritmus hledání blokujícího toku 1. g nulovýtok. 2.Dokudexistujeorientovanácesta Pze zdo svc,opakuj: 3. ε min e P (r(e) g(e)). 4. Pro e P: g(e) g(e)+ε. 5. Pokud g(e)=r(e),smažeme ezc. 6. Dočistíme síť zase pomocí fronty. Časová složitost Rozeberme si jednotlivé kroky algoritmu. 1.Inicializacetoku f... O(m). 2.Sestrojenísítěrezervasmazáníhransnulovourezervou... O(m+n). 3.Najitínejkratšícesty(prohledávánímdošířky)... O(m+n). 4. Zkontrolování délky nejkratší cesty... O(1). 5.Pročištěnísítě... O(m+n). 1. Rozdělení vrcholů do vrstev provedlo již prohledávání do šířky... O(1). 2.Odstraněníněkterýchhran... O(m+n). 3.Odstranění slepýchuliček pomocífronty každouhranuodstraníme nejvýše jedenkrát, každý vrchol se dostane do fronty nejvýšejedenkrát... O(m+n). 6.Najitíblokujícíhotoku g... O(m n). 1.Inicializacetoku g... O(m)
13 2. Najití orientované cesty v pročištěné síti rezerv(stačí vzít libovolnoucestuzezdroje,neboťkaždáznichvtétosítivede dostoku)... O(n). 3.Výběrminimazvýrazu r(e) g(e)přesvšechnyhranycesty tamůžebýtdlouhánejvýše n... O(n). 4.Přepočítánívšechhrancesty... O(n). 5.Smazáníhrancesty,jejichžtok g(e)sezvýšilnahodnotu r(e)... O(n). 6. Dočišťování vyřešme zvlášť. Vnitřnícyklus(kroky2až6)provedemenejvýše mkrát,neboťpřikaždém průchodu vymažeme alespoň jednu hranu(tak jsme si volili ε). Čištění během celého hledání blokujícího toku g v pročištěné síti rezerv trvá dohromady O(m + n), neboť každou hranu a vrchol smažeme nejvýše jedenkrát. Najitíblokujícíhotokubudetedytrvat O(m n+(m+n))=o(m n). 7.Zlepšenítoku fpomocítoku g... O(m). 8.Skokna2.krok... O(1). Zbývá nám jen určit, kolikrát projdeme vnějším cyklem(fází). Dokážeme si lemma,žehodnota lvzrostemeziprůchodyvnějšímcyklem(fázemi)alespoňo1.ztoho plyne,ževnějšímcyklemmůžemeprojítnejvýše n-krát,neboťcestavsítina nvrcholech může být dlouhá nejvýše n. Uvědomme si, že uvnitř vnějšího cyklu převládá člen O(m n), takže celková časovásložitostbude O(n 2 m). Lemma:Hodnota l(délkanejkratšícestyze zdo svpročištěnésíti)vzrostemezi fázemi alespoň o 1. Důkaz: Podíváme se na průběh jednoho průchodu vnějším cyklem. Délku aktuálně nejkratšícestyzezdrojedostokuoznačme l.všechnypůvodnícestydélky lseběhem průchodu zaručeně nasytí, protože tok g je blokující. Musíme však dokázat, že nemohouvzniknoutžádnénovécestydélky lnebomenší.vsítirezervtotižmohou hranynejenubývat,aleipřibývat:pokudpošlemetokpohraně,pokteréještěnic neteklo, tak v protisměru z dosud nulové rezervy vyrobíme nenulovou. Rozmysleme si tedy, jaké hrany mohou přibývat. Hrany mohou přibývat jen tehdy, když jsme po opačné hraně něco poslali. Ale my něco posíláme po hranách pouze z vrstvy do té následující. Hrany tedy přibývají do minulé vrstvy. Vznikem nových hran by proto mohly vzniknout nové cesty ze zdroje do stoku, které používají zpětné hrany. Jenže cesta ze zdroje do stoku, která použije zpětnou hranu,musíalespoňjednouskočitovrstvuzpětanikdynemůžeskočitovícenež jednuvrstvudopředu,aprotojejejídélkaalespoň l+2.pokudcestanovouzpětnou hranunepoužije,mábuďdélku > l,cožjevpořádku,nebomádélku=l,pakje zablokovaná
14 z s Tím je lemma dokázáno. Cesta užívající novou zpětnou hranu Všechna dokázaná tvrzení můžeme shrnout do následující věty: Věta:Dinicůvalgoritmusnajdemaximálnítokvčase O(n 2 m). Poznámka: Algoritmus se chová hezky na sítích s malými celočíselnými kapacitami, ale kupodivu i na různých jiných sítích. Často se používá, neboť se chová efektivně. A je mnoho způsobů, jak ho ještě vylepšovat, či odhadovat nižší složitost na speciálních sítích. Poznámka: Algoritmus nevyžaduje racionální kapacity! Další z důvodů, proč maximální tok existuje i v síti s iracionálními kapacitami. 3. Goldbergův algoritmus (zapsala Markéta Popelová) Představíme si nový algoritmus pro hledání maximálního toku v síti, který seukážebýtstejnědobrýjakodinicůvalgoritmus(o(mn 2 ))aponěkolikavylepšeních bude i lepší. Nejdříve si připomeňme definice, které budeme potřebovat: Definice:Mějmesíť S=(V, E, z, s, c),tok falibovolnývrchol v.pak f (v)nazývámepřebytekvevrcholu vadefinujemehotakto: f (v):= uv E f(uv) vu E f(vu). Přebytekvevrcholu vjetedysoučetvšeho,codovrcholu vpřiteče,minussoučet všeho,cozvodteče. Definice: Dále pro libovolnou hranu uv E definujeme její rezervu následovně: r(uv)=c(uv) f(uv)+f(vu). Rezervahranyznačí,coještějemožnopotétohraněposlat. Poznámka: Dále budeme označovat písmenem N počet vrcholů a M počet hran, tedy N= V am= E. Goldbergův algoritmus na rozdíl od Dinicova algoritmu začíná s ohodnocením hran, které pravděpodobně není tokem(budeme ho nazývat vlna), a postupně ho zmenšuje až na korektní tok. Definice:Funkce f: E Ê + 0 následující dvě podmínky: jevlnavsíti(v, E, z, s, c)tehdy,kdyžjsousplněny
15 1. e E: f(e) c(e)(vlnanahraněnepřekročíkapacituhrany) 2. v V \ {z, s}: f (v) 0(přebytekvevrcholujenezáporný). Pozorování: Každý tok f je také vlna, ale opačně to obvykle platit nemusí. Operace: Převedení přebytku Algoritmus bude potřebovat převádět přebytky z vrcholu u na sousední vrchol v.mějmehranu uvskladnourezervou r(uv) >0akladnýmpřebytkemvevrcholu u: f (u) >0.Částpřebytkubudemechtítposlatzvrcholu udovrcholu v. Vezmeme δ:=min(f (u), r(uv))apohraně uvpošlemetokovelikosti δ.výsledná situace bude vypadat následovně: f (u)=f (u) δ. f (v)=f (v)+δ. r (uv)=r(uv) δ. r (vu)=r(vu)+δ. Kdybychom ovšem nepřidali žádnou jinou podmínku, náš algoritmus by se mohl krásnězacyklit(např.posílatpřebytekzudo vazasezpátky).abychomsetomu vyhnuli, zavedeme výšku vrcholu h: V Æa dovolíme převádět přebytek pouze zvyššíhovrcholu unanižší v: h(u) > h(v). Shrnutí: Podmínky pro převedení přebytku po hraně uv E: 1.Vevrcholu ujenenulovýpřebytek: f (u) >0. 2.Vrchol ujevýšnežvrchol v: h(u) > h(v). 3.Hrana uvmánenulovourezervu: r(uv) >0. Operace: Pro vrchol u V definujme zvednutí vrcholu: Pokud během výpočtu narazíme ve vrcholu u na přebytek, který nelze nikam převést, zvětšíme výšku vrcholu u ojedničku,tj. h(u) h(u)+1. Algoritmus(Goldbergův) 1. v V : h(v) 0(všemvrcholůmnastavímepočátečnívýškunula) a h(z) N(zdrojzvednemedovýšky N). 2. e E : f(e) 0(pohranáchnejdřívenenechámeprotékatnic) a zu E : f(zu) c(zu)(zezdrojepustímemaximálnímožnou vlnu). 3.Dokud u V \ {z, s}:f (u) >0: 4. Pokud v V : uv E, r(uv) >0ah(u) > h(v),pakpřevedeme přebytekpohranězudo v. 5. Vopačnémpřípadězvedneme u: h(u) h(u) Vrátíme tok f jako výsledek. Nyní bude následovat několik lemmat a invariantů, jimiž dokážeme správnost a časovou složitost Goldbergova algoritmu. Invariant A(základní): 1.Funkce fjevkaždémkrokualgoritmuvlna
16 2. h(v)nikdyneklesáprožádné v. 3. h(z)=na h(s)=0poceloudobuběhualgoritmu. Důkaz: Indukcí dle počtu průchodů cyklem(3. 5. krok algoritmu). Nazačátkujevševpořádku(fjenulováfunkce,přebytkyvšechvrcholůjsou nezáporné,tedy fjevlna, h(z)=na h(s)=0).vprůběhusetytohodnotymění pouze při: Převedenípohraně uv:pohraně uvsenepošlevícenežjejírezerva.přebytek usesníží,alenejméněnanulu.přebytek vsezvýší.tedy fzůstává vlnou. Výšky se nemění. Zvednutívrcholu u:měnípouzevýšky atovrcholůrůznýchodzdroje čistoku apouzesezvyšují. InvariantS(oSpádu):Neexistujehrana uv E: r(uv) >0&h(u) > h(v)+1 (s kladnou rezervou a spádem větším než jedna). Důkaz: Indukcí dle běhu algoritmu. Na začátku mají všechny hrany ze zdroje rezervu nulovou a všechny ostatní vedoumezivrcholysvýškou0.vprůběhubysetentoinvariantmohlpokazitpouze dvěma způsoby: Zvednutímvrcholu u,zekteréhovedehrana uvskladnourezervouaspádem 1. Tento případ nemůže nastat, neboť hranu zvedáme pouze tehdy, kdyžneexistujevrchol vtakový,žehrana uvmákladnourezervuaspád alespoň 1. Takový vrchol v našem případě existuje, proto se místo zvednutí vrcholu u pošle přebytek po hraně uv. Zvětšenímrezervyhranysespádemvětšímnež1.Tototakénemůženastat, neboť rezervu bychom mohli zvětšit jedině tak, že bychom poslali něcovprotisměru atonesmíme,jelikožbychomposlalipřebytekznižšího vrcholu na vyšší. Definice: Cestu P nazveme nenasycenou, pokud všechny její hrany mají kladnou rezervu.neboli e P: r(e) >0. Lemma K(o Korektnosti): Když se algoritmus zastaví, je f maximální tok. Důkaz:Důkazrozložmedodvoukroků.Nejdříveukážeme,že fjetok,apakjeho maximalitu. 1. Nechť se algoritmus zastavil. Pak nemohl existovat žádný vrchol v(kromě zdrojeastoku)skladnýmpřebytkem.tedy v V \ {z, s}:f (v)=0. (Vímejiž,že fjepoceloudobuvlna,takžepřebyteknemůžebýtnikdy záporný.) V tom případě splňuje f podmínky toku. 2. Pro spor předpokládejme, že tok f není maximální. Pak existuje nenasycená cesta ze zdroje do stoku. Vezměme si libovolnou takovou cestu. Zdroj jestálevevýšce N aspotřebičvevýšce0(vizinvarianta).tatocesta tedypřekonávávýšku N,alemůžemítnejvýše N 1hran.Protoexistuje alespoň jedna hrana se spádem alespoň 2. Tato hrana tedy nemůže mít
17 kladnou rezervu(viz invariant S). Tato cesta proto nemůže být zlepšující, cožjespor.tímjsmedokázali,že fjenutněmaximálnítok. LemmaC(Cesta):Mějmevrchol v V.Pokud f (v) >0,pakexistujenenasycená cestazvrcholu vdozdroje. Důkaz:Provrchol v Vs f (v) >0definujmemnožinu A:= {u V : nenasycená cestazvdo u}. Sečtěme přebytky ve všech vrcholech množiny A. Přebytek každého vrcholu se spočítá jako součet toků do něj vstupujících minus součet toků z něj vystupujících. Všechny hrany, jejichž oba vrcholy leží v A, se jednou přičtou a jednou odečtou. Proto násbudouzajímatpouzehranymezi AaV \ A. f (u)= u A ab E ((V \A) A) f(ab) } {{ } =0 ab E (A (V \A)) f(ab) } {{ } 0 0. Ukažmesi,pročjeprvnísvorkarovnanule.Mějmevrcholy a V \ Aab A takové,že ab E.Onichvíme,že r(ba)=0(jinakby apatřilodo A) f(ba)= c(ba) f(ab)=0.protodo Anicnepřitéká. Obrázek k důkazu lemmatu C Pročjedruhásvorkanezáporná,jezřejmé,neboťtoknahranějevždynezáporný a součet nezáporných čísel je nezáporné číslo. Proto u A f (u) 0.ZároveňvšakvAjeaspoňjedenvrcholskladným přebytkem,totiž v,protovamusíbýttakévrcholsezápornýmpřebytkem ajediný takovýjezdroj.tímjedokázáno,že z A,tedyževedenenasycenácestazvrcholu v do zdroje. InvariantV(Výška): v V platí h(v) 2N. Důkaz:Kdybyexistovalvrchol v svýškou h(v) > 2N,takbymuselbýtněkdy zvednutzvýšky2n.tehdymuselmítkladnýpřebytek f (v) >0(jinakbynemohl být zvednut). Dle lemmatu C musela existovat nenasycená cesta z v do zdroje. Tato cestamělaspádalespoň N,alemohlamítnejvýše N 1hran(jinakbytonebyla cestavsítina Nvrcholech).Tudížmuselanatétocestěexistovathranasespádem alespoň2,cožjesporsinvariantems(neboťvšechnyhranytétocestymajízdefinice nenasycené cesty kladné rezervy). LemmaZ(početZvednutí):Početvšechzvednutíjemaximálně2N
18 Důkaz: Stačí si uvědomit, že každý vrchol můžeme zvednout maximálně 2N-krát avrcholůje N. Teď nám ještě zbývá určit počet provedených převedení. Bude se nám hodit, když převedení rozdělíme na dva druhy: Definice: Řekneme, že převedení je nasycené, pokud po převodu rezerva na hraně uv kleslananulu,tedy r(uv)=0.vopačnémpřípadějenenasycené,atehdyurčitě klesnepřebytekvevrcholu unanulu,tedy f (u)=0(přinasycenémpřevedení setoalemůžestáttaké). Lemma S(naSycená převedení): Počet všech nasycených převedení je nejvýš N M. Důkaz: Pro každou hranu uv spočítejme počet nasycených převedení(tedy takových převedení, že po nich klesne rezerva hrany na nulu). Abychom dvakrát nasyceně převedlipřebytek(nebojehočást)zvrcholu udovrcholu v,takjsmemuseli u mezitím alespoň dvakrát zvednout: Po prvním nasyceném převedení z vrcholu u do vrcholu v se vynulovala rezerva hrany uv.uvědommesi,žepřitétooperacimuselobýt uvýšenež v,adokoncevíme, žebylovýšepřesněo1(vizlemmas).potétohranětedynemůžemeužnicvíce převést. Aby došlo k druhému nasycenému převedení z u do v, musíme nejprve opět zvýšit rezervu hrany uv. Jediný způsob, jak toho lze dosáhnout, je převést částpřebytkuzvzpátkydo u.ktomusemusí vdostat(alespoňo1)výšenež u. Po přelití bude rezerva uv opět kladná. A abychom provedli nasycené převedení znovuvesměruzudo v,musímezase udostat(alespoňo1)výšenež v.proto musíme ualespoňo2zvednout nejprvenaúroveň vapakještěo1výše. Ukázali jsme si tedy, že mezi každými dvěma nasycenými převedeními jsme vrchol u zvedli alespoň dvakrát. Nicméně libovolnou hranu můžeme zvednout nejvýše2n-krát(vizinvariantv).všechhranje M,tudížpočetvšechnasycených převedeníjenejvýše NM. LemmaN(Nenasycenápřevedení):Početvšechnenasycenýchpřevedeníje O(N 2 M). Důkaz: Důkaz provedeme pomocí potenciálové metody nadefinujme si následující funkci jako potenciál: Φ:= h(v). v:f (v)>0 v z,s Nyní se podívejme, jak se náš potenciál během algoritmu vyvíjí a jaké má vlastnosti: NapočátkujeΦ=0. BěhemceléhoalgoritmujeΦ 0,neboťjesoučtemnezápornýchčlenů. ZvednutívrcholuzvýšíΦojedničku(Abybylvrcholzvednut,muselmít kladný přebytek vrchol do sumy již přispíval, teď jen přispěje číslem o1vyšším.).jižvíme,žezacelýprůběhalgoritmujevšechzvednutí maximálně2n 2,protozvedánímvrcholůzvýšímepotenciáldohromady nejvýšeo2n 2. NasycenépřevedenízvýšíΦnejvýšeo2N,protožebuďpopřevoduhranou uv v u zůstal nějaký přebytek, takže se mohl potenciál zvýšit nejvýše
19 o h(v) 2N,nebojepřebytekvupopřevodunulovýapotenciálsedokonceojednasnížil.Zacelýprůběhtakdojdekmaximálně NMtakovýmto převedením,díkynimžsepotenciálzvýšímaximálněo2n 2 M. Konečně když převádíme po hraně uv nenasyceně, tak od potenciálu určitě odečteme výšku vrcholu u(neboť se vynuluje přebytek ve vrcholu u) amožnápřičtemevýškuvrcholu v.jenže h(v)=h(u) 1,aprotonenasycené převedení potenciál vždy sníží alespoň o jedna. Z tohoto rozboru chování potenciálu Φ v průběhu algoritmu získáváme, že počet všechnenasycenýchpřevedenímůžebýtnejvýše2n 2 +2N 2 M,cožje O(N 2 M). Implementace: Budeme si pamatovat seznam P všech vrcholů v z, s s kladným přebytkem. Neboli P= {v V \ {z, s} f (v) >0}. Když měníme přebytek nějakého vrcholu, můžeme náš seznam v konstantním čase aktualizovat(např. tak, že si každý vrchol pamatuje pozici, na které v seznamu P je). V konstantním čase také umíme odpovědět, zda existuje nějaký vrchol s přebytkem. Dálesiprokaždývrchol u V budemepamatovat L(u)-seznamhran uv E takových, které vedou dolů(mají spád alespoň 1) a kladnou rezervu. Neboli L(u)={uv E v V, r(uv) >0, h(v) < h(u)}. Díky tomu můžeme přistupovat k patřičným sousedům u v čase O(1), stejně jako přidávat hrany do L(u), resp. je mazat. Opět každá hrana si bude pamatovat pozici, nakterésenacházívseznamu L. Rozbor časové složitosti algoritmu: 1.Inicializacevýšek... O(N). 2.Inicializacevlny f... O(M). 3.Výběrvrcholu uskladnýmpřebytkem vezmemeprvnívrcholvp... O(1). 4.Výběrvrcholu v,dokteréhovedezuhranaskladnourezervouakterýje níženež u vezmemeprvníhranuzl(u)... O(1). Převedenípřebytku:... O(1). Nasycenépřevedení... O(1). Rezervahrany uvklesnenanulu hrana uvvypadnezl(u)... O(1). Přebytekvrcholu vsezvýší pokudještěnebyl vseznamu P,taksetampřidá... O(1). Přebytekvrcholu umožnátakéklesnenanulu pakbyvrchol uvypadnulzp... O(1). Nenasycenépřevedení... O(1)
20 Rezervahrany uvzůstanenezáporná hrana uv zůstanevl(u)... O(1). Vynulujesepřebytekvrcholu u vrchol uvypadnezp... O(1). Přebytekvrcholu vsezvýší pokudještěnebyl vseznamu P,taksetampřidá... O(1). 5.Zvednutívrcholu u... O(N). Musímeobejítvšechnyhranydo uazu,kterýchjenejvýše2n 2, porovnat výšky a případně tyto hrany uv odebrat ze seznamu L(v) resp. přidat do L(u). Abychom pro odebrání hrany uv ze seznamu L(v) nemuseli procházetcelýseznam,budemesi u V pamatovatještě L 1 (u):= seznam ukazatelů na hrany uv v seznamech L(v). Vidíme,žekaždézvednutíjesicedrahé,alejejichzasepoměrněmálo.Naopak převádění přebytků je častá operace, takže je výhodné, že trvá konstantní čas. Shrnutí: Všechzvednutíje O(N 2 )(vizlemmaz),každétrvá O(N)... O(N 3 ). Všechnasycenýchpřevedeníje O(NM)(vizlemmaS),každétrvá O(1)... O(NM). Všechnenasycenýchpřevedeníje O(N 2 M)(vizlemmaN),každétrvá O(1)... O(N 2 M). DohromadymátedyGoldbergůvalgoritmusčasovousložitost O(N 2 M).Vidíme, že už v tomto obecném případě to není horší než Dinicův algoritmus. Příště si ukážeme, že může mít i mnohem lepší. Nejdříve ale zformulujme všechna dokázaná tvrzení do následující věty: Věta:Goldbergůvalgoritmusnajdemaximálnítokvčase O(N 2 M). Pozorování: Pokud bychom volili vždy nejvyšší z vrcholů s přebytkem, tak by se mohl algoritmus chovat lépe. Podívejme se na to pozorněji a vylepšený Goldebrgův algoritmus označme G. Algoritmus(Vylepšený Goldbergův algoritmus) 1. v V : h(v) 0(všemvrcholůmnastavímepočátečnívýškunula) a h(z) N(zdrojzvednemedovýšky N). 2. e E : f(e) 0(pohranáchnejdřívenenechámeprotékatnic) a zu E : f(zu) c(zu)(zezdrojepustímemaximálnímožnou vlnu). 3.Dokud u V \ {z, s}:f (u) >0: 4. Vybereme z vrcholů s přebytkem ten s nejvyšší výškou, označíme ho u. 5. Pokud v V : uv E, r(uv) >0ah(u) > h(v),pak převedemepřebytekpohranězudo v. 6. Vopačnémpřípadězvedneme u: h(u) h(u)
21 7. Vrátíme tok f jako výsledek. Rozmysleme si, o kolik bude vylepšený algoritmus G lepší než ten původní. Tenpůvodnímělčasovousložitost O(N 2 M)apřevládalčlen,kterýodpovídalnenasyceným převedením. Zkusme tedy právě počet nenasycených převedení odhadnout ve vylepšeném algoritmu o něco těsněji. LemmaN (Nenasycenápřevedení):AlgoritmusG provede O(N 3 )nenasycených převedení. Důkaz: Dokazovat budeme opět pomocí potenciálové metody. Zadefinujme si potenciál nejvyšší hladinu s přebytkem: H:=max{h(v) v z, s&f (v) >0}. Rozdělímeběhalgoritmunafáze.Každáfázekončítím,žese Hzmění.Jaksemůže změnit?buďse H zvýší,cožznamená,ženějakývrcholspřebytkemvnejvyšší hladiněbylo1zvednut,nebose Hsníží.Myvíme,žezvednutíjevcelémalgoritmu O(N 2 ).Zároveňsimůžemeuvědomit,že H jenezápornýpotenciál,kdysnížení izvýšeníhozměnío1,tedypočetsníženíbudestejnýjakopočetzvýšení,aproto obojíhoje O(N 2 ).Tudížpočetfázíjetaké O(N 2 ). Je důležité, že během jedné fáze provedeme nejvýše jedno nenasycené převedení z každého vrcholu. Po každém nenasyceném převedení po hraně uv se totiž vynuluje přebytekvuaabyseprovedlodalšínenasycenépřevedenízvrcholu u,museloby nejdřívebýtcopřevádět.muselobytedydo uněcopřitéci.myalevíme,žepřevádíme pouze shora dolů a u je v nejvyšší hladině(to zajistí právě to vylepšení algoritmu), tedynejdřívebymuselbýtnějakýjinývrcholzvednut.tímbysealezměnilo H askončilabytatofáze. Proto počet všech nenasycených převedení během jedné fáze je nejvýše N. Ajižjsmedokázali,žefázíje O(N 2 ).Tedypočetvšechnenasycenýchpřevedení je O(N 3 ). Tentoodhadjehezký,alestálenenítěsnýaalgoritmussechoválépe.Dokažme si ještě jeden těsnější odhad na počet nenasycených převedení. LemmaN (Nenasycenápřevedení):Početnenasycenýchpřevedeníje O(N 2 M). Poznámka: Tato časová složitost je výhodná například pro řídké grafy. Ty mají totiž poměrně malý počet hran. Důkaz:Rozdělmesifázenadvadruhy:lacinéadrahépodletoho,koliksevnich provede nenasycených převedení. Zvolme si nějaké nezáporné K. Zatím nebudeme určovat jeho hodnotu. Uvidíme, že časová složitost algoritmu bude závislá na tomto parametru K.Protojehohodnotuzvolímeažpozdějiatotak,abybylasložitostco nejnižší. Laciné fáze budou ty, během nichž se provede nejvýše K nenasycených převedení.drahéfázebudoutyostatní,tedytakové,běhemnichžseprovedevícejak K nenasycených převedení
22 Teď potřebujeme odhadnout, kolik nás budou stát oba typy fází. Začněme s těmijednoduššími slacinými.víme,ževšechfázíje O(N 2 ).Těchlacinýchbude tedyurčitětaké O(N 2 ).Nenasycenýchpřevedeníseběhemjednélacinéfázeprovedenejvíce K.Tedycelkemseběhemlacinýchfázíprovede O(N 2 K)nenasycených převedení. Pro počet nenasycených převedení v drahých fázích si zaveďme nový potenciál definovaný následovně: Φ:= p(v) K, v z,s f (v) 0 kde p(v)jepočettakovýchvrcholů u,kterénejsouvýšenež v.neboli p(v)= {u V h(u) h(v)}. Tedyplatí,že p(v)jevždynezápornéanejvýšemáhodnotu N.Dálevíme,žeΦ bude vždy nezáporné(neboť je to součet nezáporných členů) a nejvýše bude nabývat hodnoty N2 K.Rozmyslemesi,jaknámovlivnítentopotenciálnašetřioperace: Zvednutí:Zakaždýzvednutývrcholpřibudenejvýše N K (tentovrchol může být nadzvednut nejvýše nad všechny ostatní vrcholy) a možná něco ubude(např. když vrchol vyzvedneme na úroveň k ostatním). Nasycené převedení po hraně uv: Může vynulovat přebytek ve vrcholu u,pakseφsníží.můžezvýšitpřebytekve vznuly,pakseφzvýší.ale nejvýšesezvýšío N K,neboťdoΦpřibudejenjedensčítaneczavrchol v atenpřispějenejvýšehodnotou N K (podnímmůžebýtnejvíce Nvrcholů). Nenasycená převedení po hraně uv v drahých fázích: Tato operace vynulujepřebytekvu,tedyφklesnealespoňo p(u) K.Zároveňmůžezvýšit přebytekve vznuly,aleφstoupnenejvýšeo p(v) K.CelkemtedyΦklesne alespoňo p(u) p(v) K. Uvědommesi,žepokudpřevádímepohraně uv,takplatí,že h(u)=h(v)+1. Pak p(u) p(v)jepřesněpočetvrcholůnahladině H.Těchjealespoňtolik,kolikje nenasycených převedení během jedné fáze(to jsme dokázali již v lemmatu N ), a my jsme si zadefinovali, že v drahé fázi je počet nenasycených převedení alespoň K. Tedy p(u) p(v) > K. Proto během jednoho nenasyceného převedení Φ klesne alespoňo K K =1.Nenasycenápřevedenípotenciálnezvyšují. Potenciál Φ se může zvětšit pouze při operacích zvednutí a nasycené převedení. Zvednutíseprovedecelkem O(N 2 )akaždézvýšípotenciálnejvýšeo N K.Nasycených převedeníseprovedecelkem O(NM)akaždézvýšípotenciáltaktéžnejvýšeo N K. CelkemsetedyΦzvýšínejvýšeo N K O(N2 )+ N ( ) N 3 K O(NM)=O K + N2 M. K
23 Teď využijeme toho, že Φ je nezáporný potenciál, tedy když každé nenasycené převdenívdrahéfázisnížíφalespoňo1,takvšechnenasycenýchpřevdenívdrahých fázíchje O( N3 K + N2 M K ).Užjsmeukázali,ženenasycenýchpřevednívlacinýchfázích je O(N 2 K).Protocelkemvšechnenasycenýchpřevedeníje ) ( ) O (N 2 K+ N3 K + N2 M = O N 2 K+ N2 M K K (neboťprosouvislégrafyplatí,že M N N 2 M N 3 ).Amychceme,abyjich byloconejméně.tatofunkcemáminimumtehdy,když N 2 K= N2 M K,čili K= M. Protovšechnenasycenýchpřevedeníje O(N 2 M). 4. Hradlové sítě (zapsal: Petr Jankovský) Výkon počítačů nelze zvyšovat donekonečna a přestože již pěkných pár let platí, že se jejich rychlost s časem exponenciálně zvětšuje, jednou určitě narazíme přinejmenším na fyzikální limity. Když tedy nemůžeme zvyšovat rychlost jednoho procesoru, jak počítat rychleji? Řešenímbymohlobýtpoříditsiprocesorůvíc.UždnesnaběžnémPéCéčkumáme k dispozici vícejádrové procesory, díky nimž můžeme využít pararelní počítání a úlohu řešit tak, že práci šikovně rozdělíme mezi procesory(či jádra) a zaměstnáme je při výpočtu všechny. My se podíváme na abstraktní výpočetní model, který je ještě paralelnější. Techniky,kterésiukážemenatomtomodelu,sevšakdajípřekvapivěvyužítipřireálném paralelizování na několika málo procesorech. Konec konců i proto, že vnitřní architektura procesoru se našemu modelu velmi podobá. Budeme se zabývat jednoduchým modelem paralelního počítače, totiž hradlovou sítí. Hradlové sítě Definice: Hradlo je prvek, který umí vyhodnocovat nějakou funkci nad konečnou abecedou Σ. Obecněsenahradlodívámejakonafunkci f:σ k Σ,kterádostane kvstupů a vrátí jeden výstup, přičemž hodnoty, nad kterými pracuje, budou z nějaké konečné abecedy tedyznějakékonečnémnožinysymbolůσ.písmenku kzdeříkámearita hradla. Příklad: Často studujeme hradla booleovská(pracující nad abecedou {0, 1}), která počítají logické funkce. Z nich nejčastěji potkáme: nulární: to jsou konstanty(false=0, TRUE=1), unární: např. negace(značíme ), binární:logickýsoučin(and,&),součet(or, ),
24 Hradla kreslíme třeba následovně: Binární hradlo provádící logickou operaci and. Jednotlivá hradla můžeme navzájem určitým způsobem propojovat a vytvářet z nich hradlové sítě. Pokud používáme pouze booleovská hradla, říkáme takto vytvořeným sítím booleovské obvody. Pokud pracujeme s operacemi nad nějakou obecnější (ale konečnou) množinou symbolů(abecedou), nazývají se kombinační obvody. Každá hradlová síť má nějaké vstupy, nějaké výstupy a uvnitř jsou propojovaná hradla. Každý vstup hradla je připojen buďto na některý ze vstupů sítě nebo na výstup jiného hradla. Výstupy hradel mohou být propojeny na vstupy dalších hradel(mohou se větvit), nebo na výstupy sítě. Přitom máme zakázáno vytvářet cykly. Než si řekneme formální definici, podívejme se na obrázek. Hradlová síť třívstupová verze funkce majorita. Obrazek znázorňuje hradlovou síť, která počítá, zda je alespoň na dvou ze vstupů jednička. Pojďme si ale hradlovou síť definovat formálně. Definice: Hradlová síť je určena: abecedouσ(tojenějakákonečnámnožinasymbolů,obvykleσ={0,1}); po dvou disjunktními konečnými množinami I(vstupy), O(výstupy) a H(hradla); acyklickýmorientovanýmmultigrafem(v, E),kde V = I O H; zobrazením F,kterékaždémuhradlu h Hpřiřadínějakoufunkci F(h): Σ a(h) Σ,cožjefunkce,kteroutotohradlovykonává.Číslu a(h)říkáme arita hradla h; zobrazením z:e Æ,kterékaždéhraněvedoucídonějakéhohradla přiřazuje některý ze vstupů tohoto hradla
25 Přitom jsou splněny následující podmínky: i I:deg in (i)=0(dovstupůnicnevede); o O:deg in (o)=1° out (o)=0(zvýstupůnicnevedeadokaždého vede právě jedna hrana); h H :deg in (v)=a(v)(dokaždéhohradlavedetolikhran,kolikje jeho arita); h H j:1 j a(h)existujeprávějedenahrana etaková,že ekončí v haz(e)=j,(všechnyvstupyhradeljsouzapojeny). Pozorování: Kdybychom připustili hradla s libovolně vysokým počtem vstupů, mohli bychom libovolný problém se vstupem délky n vyřešit jedním hradlem o n vstupech, kterému bychom přiřadili funkci, která by naši úlohu rovnou vyřešila. Tento model však není ani realistický, ani pěkný. Proto přijměme omezení, že arity všech hradel budou omezeny nějakou pevnou konstantou k(ukáže se, že nám bude stačit dvojka a vystačíme si tedy pouze s nulárními, unárními a binárními hradly). Následující obrázky ukazují, jak hradla o více vstupech nahradit dvouvstupovými: Trojvstupové hradlo or. Jeho nahrazení 2-vstupovými hradly. Nyní bychom ještě měli definovat, co taková hradlová síť vlastně počítá a jak její výpočet probíhá. Definice: Výpočet sítě probíhá po taktech. V nultém taktu jsou definovány pouze hodnotynavstupechsítěanavýstupechhradelarity0.můžemesitopředstavittak,ženazačátkunemážádnéhradlodefinovánuvýstupníhodnotu(ažnajiž zmíněná hradla nulární). V každém dalším taktu pak vydají výstup hradla, která na konci minulého taktu měla definovány všechny hodnoty na vstupech. Jakmile budou po nějakém konečném počtu taktů definované i hodnoty všech výstupů, síť se zastaví a vydá výsledek. Pozorování: Protože je síť acyklická, je jasné, že jakmile jednou nějaké hradlo vydá výstup, tak se tento výstup během dalšího výpočtu sítě již nezmění. Podletoho,jaksíťpočítá,sijimůžemerozdělitnavrstvy: Definice: i-távrstva S i obsahujeprávětakovévrcholy v,prokterénejdelšícesta zevstupůsítědo vmádélkurovnou i
26 Výpočet hradlové sítě. Pozorování:Všimněmesi,ževi-témtaktuvydajíhodnotyprávěhradlazS i. Dává tedy smysl prohlásit za časovou složitost sítě počet jejích vrstev. Podobně prostorovou složitost definujeme jako počet hradel v síti. Příklad: Sestrojme síť, která zjistí, zda se mezi jejími n vstupy vyskytuje alespoň jedna jednička. První řešení: zapojíme hradla za sebe(sériově). Časová i prostorová složitost odpovídají Θ(n). Zde ovšem vůbec nevyužíváme toho, že by mohlo počítat více hradel současně. Hradlová síť, která zjistí, zdali je na vstupu alespoň jedna jednička. Druhé řešení: Hradla budeme spojovat do dvojic, pak výsledky z těchto dvojic opět do dvojic a tak dále. Díky paralelnímu zapojení dosáhneme časové složitosti Θ(log n), prostorová složitost zůstane lineární. 5. Paralelní sčítání, bitonické třídění(zapsal: Petr Jankovský) Minule jsme si zavedli paralelní výpočetní model, ve kterém si nyní něco naprogramujeme... Sčítání binárních čísel Mějme dvě čísla x a y zapsané ve dvojkové soustavě. Jejich číslice označme x n 1...x 0 a y n 1... y 0,kde i-týřádmáváhu2 i.nyníbudemechtíttatočísla sečíst
27 Chytřejší řešení stejného problému pro vstup velikosti 16. Ktomutoúčeluseihnednabízípoužítstarýdobrý školníalgoritmus,který funguje ve dvojkové soustavě stejně dobře jako v desítkové. Zkrátka sčítáme čísla zprava doleva. Vždy sečteme příslušné číslice pod sebou a přičteme přenos z nižšího řádu. Tím dostaneme jednu číslici výsledku a přenos do vyššího řádu. Formálně bychom to mohli zapsat třeba takto: z i = x i y i c i, kde z i je i-táčíslicesoučtu, značíoperacixor(součetmodulo2)ac i jepřenos z(i 1)-ního řádu do i-tého. Přenos přitom nastane tehdy, pokud se nám potkají dvě jedničky pod sebou, nebo když se vyskytne alespoň jedna jednička a k tomu přenos z nižšího řádu. Jinými slovy tehdy, když ze tří xorovaných číslic jsou alespoň dvě jedničky(pomocí obvodu pro majoritu z minulé přednášky lehce zkonstruujeme): c 0 =0, c i+1 =(x i & y i ) (x i & c i ) (y i & c i ). Takovéto sčítání sice perfektně funguje, nicméně je bohužel poměrně pomalé. Pokud bychom stavěli hradlovou síť podle tohoto předpisu, byla by složená z nějakýchpodsítí( krabiček ),kterébudoumítnavstupu x i, y i a c i ajejichvýstupem bude z i a c i+1. Všiměme si, že každá krabička závisí na výstupu té předcházející. Jednotlivé krabičky tedy musí určitě ležet na různých hladinách. Celkově bychom museli použít Θ(n) hladin a jelikož je každá krabička konstantně velká, také Θ(n) hradel. To dává lineární časovou i prostorovou složitost, čili oproti sekvenčnímu algoritmu jsme si nepomohli. Zamysleme se nad tím, jak by se proces sčítání mohl zrychlit
28 Sčítání školním algoritmem. Přenosy v blocích Jediné, co nás při sčítání brzdí, jsou přenosy mezi jednotlivými řády. Každý řád, aby vydal součet, musí počkat na to, až dopočítají všechny předcházející řády. Teprve pak se totiž dozví přenos. Kdybychom ovšem přenosy dokázali spočítat nějakým způsobem paralelně, máme vyhráno. Jakmile známe všechny přenosy, součet už zvládneme dopočítat na konstantně mnoho hladin tedy v konstantním čase. Podívejme se na libovolný blok v našem součtu. Tak budeme říkat číslům x j... x i a y j... y i vnějakémintervaluindexů i, j.přenos c j+1 vystupujícíztohoto blokuzávisímimohodnotsčítancůužpouzenapřenosu c i,kterýdoblokuvstupuje. Blok součtu. Ztohotopohledusemůžemenabloktakédívatjakonanějakoufunkci,která dostane jednobitový vstup a vydá jednobitový výstup. To je nám příjemné, neboť takových funkcí existují jenom čtyři typy: 1. f(x)=0, (0) 2. f(x)=1, (1) 3. f(x)=x, (< kopírování) 4. f(x)= x. Jak se za chvíli ukáže, poslední případ, kdy by nějaký blok předával opačný přenos, než do něj vstupuje, navíc nikdy nemůže nastat. Pojďme si to rozmyslet. Jednobitové bloky se chovají velice jednoduše: Z prvního bloku evidentně vždy vyleze 0, ať do něj vstoupí jakýkoli přenos. Posledníbloknaopaksámosoběpřenosvytváří,aťjiždonějvlezejakýkoliv.Blokyprostřednísechovajístejně,atotak,žesamyosoběžádnýpřenosnevytvoří, ale pokud do nich nějaký přijde, tak také odejde
29 Tabulka triviálních bloků. Mějmenynínějakývětšíblok C složenýzedvoumenšíchpodbloků AaB, jejichžchováníužznáme.ztohomůžemeodvodit,jaksechovácelýblok: Skládání chování bloků. Pokud vyšší blok přenos pohlcuje, pak ať se už nižší blok chová jakkoli, složení těchto bloků musí vždy pohlcovat. V prvním řádku tabulky jsou tudíž nuly. Analogicky,pokudvyššíblokgenerujepřenos,taktennižšínatomnicnezmění.Vdruhém řádku tabulky jsou tedy samé jedničky. Zajímavější případ nastává, pokud vyšší blok kopíruje tehdy záleží čistě na chování nižšího bloku. Všimněme si, že skládání chování bloků je vlastně úplně obyčejné skládání funkcí. Nyní bychom mohli prohlásit, že budeme počítat nad tříprvkovou abecedou, a že celou tabulku dokážeme spočítat jedním jediným hradlem. Pojďmě si však rozmyslet, jak bychom takovouto věc popsali čistě binárně. Jak tedy tyto tři stavy popisovat pouze několika bity? Evidentně nám k tomuto binárnímu zakódování tří stavů budou stačit bity dva. Označmesijejako paq.tatodvojicemůženabývathnedčtyřmožnýchhodnot, kterým přiřadíme tři možná chování bloku. Toto kódování můžeme zvolit zcela libovolně, ale pokud si ho zvolíme šikovně, ušetříme si dále práci při kompozici. Zvolme si tedy kódování takto: (1, )=<, (0,0)=0, (0,1)=1 Tomu,žeblokkopíruje,odpovídádvojice p = 1; q =cokoliv.vostatních případechbude pnulovéaqnámbudeříkat,cojenavýstupupříslušnéhobloku. Jinýmislovy p=0znamená,žefunkcejekonstanta,přičemž qříkájaká;naproti tomu p=1znamená,žefunkcejeidentita,aťužje qcokoli. Pojďme si nyní ukázat, jak bude celé skládání bloků vypadat. Rozmysleme si, kdy je p celého dvojbloku jedničkové, tedy kdy celý dvojblok kopíruje. To nastane
1. Toky v sítích (zapsala Markéta Popelová)
1. Toky v sítích (zapsala Markéta Popelová) První motivační úloha: Rozvod čajovodu do všech učeben. Představme si, že by v budově fakulty na Malé Straně existoval čajovod, který by rozváděl čaj do každé
2.Tokyvsítích. Čajovod
2.Tokyvsítích Představme si, že by v budově fakulty na Malé Straně existoval čajovod, který by rozváděl čaj do všech učeben. Znázorněme si to orientovaným grafem, v němž jeden významný vrchol představuje
5. Paralelní sčítání, bitonické třídění(zapsal: Petr Jankovský)
5. Paralelní sčítání, bitonické třídění(zapsal: Petr Jankovský) Minule jsme si zavedli paralelní výpočetní model, ve kterém si nyní něco naprogramujeme... Sčítání binárních čísel Mějme dvě čísla x a y
1. Toky, řezy a Fordův-Fulkersonův algoritmus
1. Toky, řezy a Fordův-Fulkersonův algoritmus V této kapitole nadefinujeme toky v sítích, odvodíme základní věty o nich a také Fordův-Fulkersonův algoritmus pro hledání maximálního toku. Také ukážeme,
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
1. Toky v sítích. 1.1. Toky v sítích
1. Toky v sítích Už jste si někdy přáli, aby do posluchárny, kde právě sedíte, vedl čajovod a zpříjemňoval vám přednášku pravidelnými dodávkami lahodného oolongu? Nemuselo by to být komplikované: ve sklepě
1. Toky v sítích. 1.1. Toky v sítích
1. Toky v sítích Už jste si někdy přáli, aby do posluchárny, kde právě sedíte, vedl čajovod a zpříjemňoval vám přednášku pravidelnými dodávkami lahodného oolongu? Nemuselo by to být komplikované: ve sklepě
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
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
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é
= je prostý orientovaný graf., formálně c ( u, v) 0. dva speciální uzly: zdrojový uzel s a cílový uzel t. Dále budeme bez
Síť Síť je čtveřice N = ( G, s, t, c) kde G ( V, A) = je prostý orientovaný graf a každé orientované hraně ( u, v) je přiřazeno nezáporné číslo, které se nazývá kapacita hrany ( u, v), formálně c ( u,
TGH10 - Maximální toky
TGH10 - Maximální toky Jan Březina Technical University of Liberec 23. dubna 2013 - motivace Elektrická sít : Elektrická sít, jednotlivé vodiče mají různou kapacitu (max. proud). Jaký maximální proud může
Diskrétní matematika. DiM /01, zimní semestr 2018/2019
Diskrétní matematika Petr Kovář petr.kovar@vsb.cz Vysoká škola báňská Technická univerzita Ostrava DiM 470-2301/01, zimní semestr 2018/2019 O tomto souboru Tento soubor je zamýšlen především jako pomůcka
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
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é
TOKY V SÍTÍCH II. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze
TOKY V SÍTÍCH II Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze BI-GRA, LS 010/011, Lekce 10 Evropský sociální fond Praha & EU: Investujeme do vaší
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
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ýhody a nevýhody jednotlivých reprezentací jsou shrnuty na konci kapitoly.
Kapitola Reprezentace grafu V kapitole?? jsme se dozvěděli, co to jsou grafy a k čemu jsou dobré. rzo budeme chtít napsat nějaký program, který s grafy pracuje. le jak si takový graf uložit do počítače?
STROMOVE ALGORITMY Prohledavani do sirky (level-order) Po vodorovnejch carach fronta
STROMOVE ALGORITMY Prohledavani do sirky (level-order) Po vodorovnejch carach vlož do fronty kořen opakuj, dokud není fronta prázdná 1. vyber uzel z fronty a zpracuj jej 2. vlož do fronty levého následníka
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
10 Přednáška ze
10 Přednáška ze 17. 12. 2003 Věta: G = (V, E) lze nakreslit jedním uzavřeným tahem G je souvislý a má všechny stupně sudé. Důkaz G je souvislý. Necht v je libovolný vrchol v G. A mějme uzavřený eurelovský
Texty k přednáškám z MMAN3: 4. Funkce a zobrazení v euklidovských prostorech
Texty k přednáškám z MMAN3: 4. Funkce a zobrazení v euklidovských prostorech 1. července 2008 1 Funkce v R n Definice 1 Necht n N a D R n. Reálnou funkcí v R n (reálnou funkcí n proměnných) rozumíme zobrazení
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
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
dají snadno využít i prakticky. Konec konců sama vnitřní architektura procesorů se našemu modelu velmi podobá.
1. Hradlové sítì Pomocí počítačů řešíme stále složitější a rozsáhlejší úlohy a potřebujeme k tomu čím dál víc výpočetního výkonu. Rychlost a kapacita počítačů zatím rostla exponenciálně, takže se zdá,
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,
PRIMITIVNÍ FUNKCE. Primitivní funkce primitivní funkce. geometrický popis integrály 1 integrály 2 spojité funkce konstrukce prim.
PRIMITIVNÍ FUNKCE V předchozích částech byly zkoumány derivace funkcí a hlavním tématem byly funkce, které derivace mají. V této kapitole se budou zkoumat funkce, které naopak jsou derivacemi jiných funkcí
Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace
Vektory a matice Aplikovaná matematika I Dana Říhová Mendelu Brno Obsah 1 Vektory Základní pojmy a operace Lineární závislost a nezávislost vektorů 2 Matice Základní pojmy, druhy matic Operace s maticemi
1.5.2 Číselné soustavy II
.. Číselné soustavy II Předpoklady: Př. : Převeď do desítkové soustavy čísla. a) ( ) b) ( ) 4 c) ( ) 6 = + + + = 7 + 9 + = a) = 4 + 4 + 4 = 6 + 4 + = 9 b) 4 = 6 + 6 + 6 = 6 + 6 + = 6 + + = 69. c) 6 Pedagogická
2. přednáška 8. října 2007
2. přednáška 8. října 2007 Konvergence v metrických prostorech. Posloupnost bodů (a n ) M v metrickém prostoru (M, d) konverguje (je konvergentní), když v M existuje takový bod a, že lim n d(a n, a) =
Kolik existuje různých stromů na pevně dané n-prvkové množině vrcholů?
Kapitola 9 Matice a počet koster Graf (orientovaný i neorientovaný) lze popsat maticí, a to hned několika různými způsoby. Tématem této kapitoly jsou incidenční matice orientovaných grafů a souvislosti
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é
Základy teorie množin
1 Základy teorie množin Z minula: 1. Cantorovu větu (x P(x)) 2. základní vlastnosti disjunktního sjednocení, kartézského součinu a množinové mocniny (z hlediska relací, ) 3. vztah P(a) a 2 4. větu (2 a
PRIMITIVNÍ FUNKCE DEFINICE A MOTIVACE
PIMITIVNÍ FUNKCE V předchozích částech byly zkoumány derivace funkcí a hlavním tématem byly funkce, které derivace mají. V této kapitole se budou zkoumat funkce, které naopak jsou derivacemi jiných funkcí
H {{u, v} : u,v U u v }
Obyčejný graf Obyčejný graf je dvojice G= U, H, kde U je konečná množina uzlů (vrcholů) a H {{u, v} : u,v U u v } je (konečná) množina hran. O hraně h={u, v} říkáme, že je incidentní s uzly u a v nebo
Důkaz Heineho Borelovy věty. Bez újmy na obecnosti vezmeme celý prostor A = M (proč? úloha 1). Implikace. Nechť je (M, d) kompaktní a nechť.
Přednáška 3, 19. října 2015 Důkaz Heineho Borelovy věty. Bez újmy na obecnosti vezmeme celý prostor A = M (proč? úloha 1). Implikace. Nechť je (M, d) kompaktní a nechť X i = M i I je jeho pokrytí otevřenými
1.3. Číselné množiny. Cíle. Průvodce studiem. Výklad
1.3. Cíle Cílem kapitoly je seznámení čtenáře s axiomy číselných oborů a jejich podmnožin (intervalů) a zavedení nových pojmů, které nejsou náplní středoškolských osnov. Průvodce studiem Vývoj matematiky
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
Dnešní látka Variačně formulované okrajové úlohy zúplnění prostoru funkcí. Lineární zobrazení.
Předmět: MA4 Dnešní látka Variačně formulované okrajové úlohy zúplnění prostoru funkcí. Lineární zobrazení. Literatura: Kapitola 2 a)-c) a kapitola 4 a)-c) ze skript Karel Rektorys: Matematika 43, ČVUT,
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),
Algoritmus pro hledání nejkratší cesty orientovaným grafem
1.1 Úvod Algoritmus pro hledání nejkratší cesty orientovaným grafem Naprogramoval jsem v Matlabu funkci, která dokáže určit nejkratší cestu v orientovaném grafu mezi libovolnými dvěma vrcholy. Nastudoval
Zavedení a vlastnosti reálných čísel
Zavedení a vlastnosti reálných čísel jsou základním kamenem matematické analýzy. Konstrukce reálných čísel sice není náplní matematické analýzy, ale množina reálných čísel R je pro matematickou analýzu
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)
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ň
doplněk, zřetězení, Kleeneho operaci a reverzi. Ukážeme ještě další operace s jazyky, na které je
28 [181105-1236 ] 2.7 Další uzávěrové vlastnosti třídy regulárních jazyků Z předchozích přednášek víme, že třída regulárních jazyků je uzavřena na sjednocení, průnik, doplněk, zřetězení, Kleeneho operaci
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é
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
Množinu všech slov nad abecedou Σ značíme Σ * Množinu všech neprázdných slov Σ + Jazyk nad abecedou Σ je libovolná množina slov nad Σ
Abecedou se rozumí libovolná konečná množina Σ. Prvky abecedy nazýváme znaky (symboly) Slovo (řetězec) v nad abecedou Σ je libovolná konečná posloupnost znaků této abecedy. Prázdné posloupnosti znaků odpovídá
Lineární algebra : Báze a dimenze
Lineární algebra : Báze a dimenze (5. přednáška) František Štampach, Karel Klouda LS 2013/2014 vytvořeno: 9. dubna 2014, 13:33 1 2 5.1 Báze lineárního prostoru Definice 1. O množině vektorů M z LP V řekneme,
Věta 12.3 : Věta 12.4 (princip superpozice) : [MA1-18:P12.7] rovnice typu y (n) + p n 1 (x)y (n 1) p 1 (x)y + p 0 (x)y = q(x) (6)
1. Lineární diferenciální rovnice řádu n [MA1-18:P1.7] rovnice typu y n) + p n 1 )y n 1) +... + p 1 )y + p 0 )y = q) 6) počáteční podmínky: y 0 ) = y 0 y 0 ) = y 1 y n 1) 0 ) = y n 1. 7) Věta 1.3 : Necht
Lineární algebra Kapitola 1 - Základní matematické pojmy
Lineární algebra Kapitola 1 - Základní matematické pojmy 1.1 Relace a funkce V celém textu budeme používat následující označení pro číselné množiny: N množina všech přirozených čísel bez nuly, N={1, 2,
Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice
Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice Vektorové podprostory K množina reálných nebo komplexních čísel, U vektorový prostor nad K. Lineární kombinace vektorů u 1, u 2,...,u
6 Skalární součin. u v = (u 1 v 1 ) 2 +(u 2 v 2 ) 2 +(u 3 v 3 ) 2
6 Skalární součin Skalární součin 1 je operace, která dvěma vektorům (je to tedy binární operace) přiřazuje skalár (v našem případě jde o reálné číslo, obecně se jedná o prvek nějakého tělesa T ). Dovoluje
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
Necht tedy máme přirozená čísla n, k pod pojmem systém lineárních rovnic rozumíme rovnice ve tvaru
2. Systémy lineárních rovnic V této kapitole se budeme zabývat soustavami lineárních rovnic s koeficienty z pole reálných případně komplexních čísel. Uvádíme podmínku pro existenci řešení systému lineárních
Přednáška 9, 28. listopadu 2014 Část 4: limita funkce v bodě a spojitost funkce
Přednáška 9, 28. listopadu 2014 Část 4: limita funkce v bodě a spojitost funkce Zápisem f : M R rozumíme, že je dána funkce definovaná na neprázdné množině M R reálných čísel, což je množina dvojic f =
Kreslení grafů na plochy Tomáš Novotný
Kreslení grafů na plochy Tomáš Novotný Úvod Abstrakt. V první části příspěvku si vysvětlíme základní pojmy týkající se ploch. Dále si ukážeme a procvičíme možné způsoby jejich zobrazování do roviny, abychom
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 -
Limita a spojitost funkce. 3.1 Úvod. Definice: [MA1-18:P3.1]
KAPITOLA 3: Limita a spojitost funkce [MA-8:P3.] 3. Úvod Necht je funkce f definována alespoň na nějakém prstencovém okolí bodu 0 R. Číslo a R je itou funkce f v bodě 0, jestliže pro každé okolí Ua) bodu
Číselné soustavy a převody mezi nimi
Číselné soustavy a převody mezi nimi Základní požadavek na počítač je schopnost zobrazovat a pamatovat si čísla a provádět operace s těmito čísly. Čísla mohou být zobrazena v různých číselných soustavách.
Hypergrafové removal lemma a Szemérediho
Hypergrafové removal lemma a Szemérediho věta Zdeněk Dvořák 7. prosince 207 Hypergrafové removal lemma a jeho důsledek Definice. Dvojice (V, E) je k-uniformní hypergraf, je-li E množina neuspořádaných
Definice (Racionální mocnina). Buď,. Nechť, kde a a čísla jsou nesoudělná. Pak: 1. je-li a sudé, (nebo) 2. je-li liché, klademe
Úvodní opakování. Mocnina a logaritmus Definice ( -tá mocnina). Pro každé klademe a dále pro každé, definujeme indukcí Dále pro všechna klademe a pro Později budeme dokazovat následující větu: Věta (O
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í,
Úvod do informatiky. Miroslav Kolařík. Zpracováno dle učebního textu R. Bělohlávka: Úvod do informatiky, KMI UPOL, Olomouc 2008.
Úvod do informatiky přednáška čtvrtá Miroslav Kolařík Zpracováno dle učebního textu R. Bělohlávka: Úvod do informatiky, KMI UPOL, Olomouc 2008. Obsah 1 Pojem relace 2 Vztahy a operace s (binárními) relacemi
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ší
2. LIMITA A SPOJITOST FUNKCE
. LIMITA A SPOJITOST FUNKCE Průvodce studiem Funkce y = je definována pro ( ) (>. Z grafu funkce (obr. 3) a z tabulky (a) je vidět že čím více se hodnoty blíží k -3 tím více se funkční hodnoty blíží ke
Rovnice se separovanými proměnnými
Rovnice se separovanými proměnnými V této kapitole se budeme zabývat následující diferenciální rovnicí: y = g(y)f(x), (1) kde f a g jsou reálné funkce reálné proměnné. Tato rovnice se nazývá rovnice se
[1] Determinant. det A = 0 pro singulární matici, det A 0 pro regulární matici
[1] Determinant je číslo jistým způsobem charakterizující čtvercovou matici det A = 0 pro singulární matici, det A 0 pro regulární matici používá se při řešení lineárních soustav... a v mnoha dalších aplikacích
4. Goldbergův algoritmus
4. Goldbergův algoritmus Představíme si ještě jeden algoritmus pro hledání maximálního toku v síti. Bude daleko jednodušší než Dinicův algoritmus z předchozí kapitoly a po pár snadných úpravách bude mít
III přednáška Toky v sítích
S Dalsi aplikace OOOOOOOO Matematika III - 11. přednáška Toky v sítích Michal Bulant Masarykova univerzita Fakulta informatiky 27. 11. 2007 O Toky v sítích Q Problém maximálního toku v síti Q Další aplikace
Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy
Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy Lukáš Havrlant Univerzita Palackého 10. ledna 2014 Primární zdroj Jiří Adámek: Foundations of Coding. Strany 137 160. Na webu ke stažení, heslo:
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
BCH kódy. Alena Gollová, TIK BCH kódy 1/27
7. přednáška z algebraického kódování Alena Gollová, TIK 1/27 Obsah 1 Binární Alena Gollová, TIK 2/27 Binární jsou cyklické kódy zadané svými generujícími kořeny. Díky šikovné volbě kořenů opravuje kód
Jednoduchá exponenciální rovnice
Jednoduchá exponenciální rovnice Z běžné rovnice se exponenciální stává, pokud obsahuje proměnnou v exponentu. Obecně bychom mohli exponenciální rovnici zapsat takto: a f(x) = b g(x), kde a, b > 0. Typickým
V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti
Kapitola 5 Vektorové prostory V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti operací sčítání a násobení
Úvod do řešení lineárních rovnic a jejich soustav
Úvod do řešení lineárních rovnic a jejich soustav Rovnice je zápis rovnosti dvou výrazů, ve kterém máme najít neznámé číslo (neznámou). Po jeho dosazení do rovnice musí platit rovnost. Existuje-li takové
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..........................
Jan Březina. 7. března 2017
TGH03 - stromy, ukládání grafů Jan Březina Technical University of Liberec 7. března 2017 Kružnice - C n V = {1, 2,..., n} E = {{1, 2}, {2, 3},..., {i, i + 1},..., {n 1, n}, {n, 1}} Cesta - P n V = {1,
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
Vzdálenost uzlů v neorientovaném grafu
Vzdálenosti a grafy Vzdálenost uzlů v neorientovaném grafu Je dán neorientovaný neohodnocený graf G = (V,E,I) vzdálenost uzlů u a v v neorientovaném souvislém grafu G je délka nejkratší cesty spojující
Rozšiřování = vynásobení čitatele i jmenovatele stejným číslem různým od nuly
Rozšiřování a krácení zlomků Rozšiřování vynásobení čitatele i jmenovatele stejným číslem různým od nuly rozšířený zlomek vznikl tak, že jsme čitatel i jmenovatel původního zlomku vynásobili číslem rozšířený
64. ročník matematické olympiády Řešení úloh krajského kola kategorie A
64. ročník matematické olympiády Řešení úloh krajského kola kategorie A 1. Středy stran AC, BC označme postupně, N. Střed kružnice vepsané trojúhelníku KLC označme I. Úvodem poznamenejme, že body K, L
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
z nich byla poprvé dokázána v 19. století velikány analytické teorie čísel (Pafnutij Lvovič Čebyšev, Charles-Jean de la Vallée Poussin a další).
0. Tři věty o prvočíslech Martin Mareš Úvodem Při analýze algoritmů se často využívají různá tvrzení o prvočíslech. Většina z nich byla poprvé dokázána v 9. století velikány analytické teorie čísel (Pafnutij
Úlohy nejmenších čtverců
Úlohy nejmenších čtverců Petr Tichý 7. listopadu 2012 1 Problémy nejmenších čtverců Ax b Řešení Ax = b nemusí existovat, a pokud existuje, nemusí být jednoznačné. Často má smysl hledat x tak, že Ax b.
5. Lokální, vázané a globální extrémy
5 Lokální, vázané a globální extrémy Studijní text Lokální extrémy 5 Lokální, vázané a globální extrémy Definice 51 Řekneme, že f : R n R má v bodě a Df: 1 lokální maximum, když Ka, δ Df tak, že x Ka,
Matematická logika. Miroslav Kolařík
Matematická logika přednáška šestá 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
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í
VZOROVÝ TEST PRO 3. ROČNÍK (3. A, 5. C)
VZOROVÝ TEST PRO 3. ROČNÍK (3. A, 5. C) max. 3 body 1 Zjistěte, zda vektor u je lineární kombinací vektorů a, b, je-li u = ( 8; 4; 3), a = ( 1; 2; 3), b = (2; 0; 1). Pokud ano, zapište tuto lineární kombinaci.
3. Třídy P a NP. Model výpočtu: Turingův stroj Rozhodovací problémy: třídy P a NP Optimalizační problémy: třídy PO a NPO MI-PAA
Jan Schmidt 2011 Katedra číslicového návrhu Fakulta informačních technologií České vysoké učení technické v Praze Zimní semestr 2011/12 MI-PAA EVROPSKÝ SOCIÁLNÍ FOND PRAHA & EU: INVESTUJENE DO VAŠÍ BUDOUCNOSTI
i=1 Přímka a úsečka. Body, které leží na přímce procházející body a a b můžeme zapsat pomocí parametrické rovnice
I. Funkce dvou a více reálných proměnných 1. Úvod Značení: V textu budeme používat označení: N pro množinu všech přirozených čísel; R pro množinu všech reálných čísel; R n pro množinu všech uspořádaných
Gymnázium Vysoké Mýto nám. Vaňorného 163, 566 01 Vysoké Mýto
Gymnázium Vysoké Mýto nám. Vaňorného 163, 566 01 Vysoké Mýto Registrační číslo projektu Šablona Autor Název materiálu CZ.1.07/1.5.00/34.0951 III/2 INOVACE A ZKVALITNĚNÍ VÝUKY PROSTŘEDNICTVÍM ICT Mgr. Jana
1 Báze a dimenze vektorového prostoru 1
1 Báze a dimenze vektorového prostoru 1 Báze a dimenze vektorového prostoru 1 2 Aritmetické vektorové prostory 7 3 Eukleidovské vektorové prostory 9 Levá vnější operace Definice 5.1 Necht A B. Levou vnější
Interpolace Uvažujme třídu funkcí jedné proměnné ψ(x; a 0,..., a n ), kde a 0,..., a n jsou parametry, které popisují jednotlivé funkce této třídy. Mějme dány body x 0, x 1,..., x n, x i x k, i, k = 0,
Lineární algebra : Metrická geometrie
Lineární algebra : Metrická geometrie (16. přednáška) František Štampach, Karel Klouda LS 2013/2014 vytvořeno: 6. května 2014, 10:42 1 2 Úvod Zatím jsme se lineární geometrii věnovali v kapitole o lineárních
7 = 3 = = Učivo Vysvětlení Př. + pozn. Zlomek = vyjádření části celku 3 část snědla jsem 3 kousky
0 Učivo Vysvětlení Př. + pozn. Zlomek vyjádření části celku část snědla jsem kousky celek a pizza byla rozdělena na kousky Pojem zlomek Vyjádření zlomku Základní tvar: čitatel a jmenovatel jsou nesoudělná
07 Základní pojmy teorie grafů
07 Základní pojmy teorie grafů (definice grafu, vlastnosti grafu, charakteristiky uzlů, ohodnocené grafy) Definice grafu množina objektů, mezi kterými existují určité vazby spojující tyto objekty. Uspořádaná
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ří
Přednáška 11, 12. prosince Část 5: derivace funkce
Přednáška 11, 12. prosince 2014 Závěrem pasáže o spojitých funkcích zmíníme jejich podtřídu, lipschitzovské funkce, nazvané podle německého matematika Rudolfa Lipschitze (1832 1903). Fukce f : M R je lipschitzovská,