• No results found

Seznam železničních tras

Trasa č. Trasa mezi městy Vrcholy jízd/d Kapacita c

010 Kolín, Přelouč, Pardubice 47, 46, 45 54 44280

020 Hradec Králové, Chlumec n/C, Velký Osek 43, 58, 48 6 1980

030 Liberec, Turnov, Železný Brod, Semily, Stará Paka 11, 24, 25, 26, 31 19 4750

030 Stará Paka, Dvůr Králové n/L, Jaroměř 31, 41, 40 16 2400

031 Jaroměř, Smiřice, Hradec Králové, Rosice, Pardubice 40, 42, 43, 44, 45 34 8160 032 Jaroměř, Starkoč, Červený Kostelec, Trutnov 40, 39, 38, 35 14 5040

034 Smržovka, Josefův Důl 8, 7 10 800

035 Železný Brod, Tanvald 25, 9 14 1960

036 Liberec, Jablonec n/N, Smržovka, Tanvald 11, 6, 8, 9 22 2640

036 Tanvald, Harrachov 9, 10 13 1300

037 Liberec, Raspenava, Frýdlant 11, 4, 2 8 1280

037 Frýdlant, Černousy 2, 1 5 800

038 Raspenava, Bílý Potok 4, 5 8 720

039 Frýdlant, Jinřichovice p. Smrkem 2, 3 6 510

040 Stará Paka, Martinice, Kunčice, Hostinné, Trutnov 31, 32, 33, 59, 35 8 2160 040 Stará Paka, Lázně Bělohrad, Ostroměř, Chlumec n/C 31, 56, 55, 58 13 3510

041 Turnov, Libuň, Jičín 24, 30, 54 10 2000

041 Jičín, Ostroměř, Hněvčeves, Hradec Králové 54, 55, 57, 43 11 2200

042 Martinice, Jablonec n/J 32, 27 9 720

042 Jablonec n/J, Rokytnice 27, 60 1 80

043 Trutnov, Královec 35, 37 3 255

044 Kunčice, Vrchlabí 33, 34 17 1530

045 Trutnov, Svoboda n/Ú 35, 36 12 1080

061 Veleliby, Křinec, Kopidlno, Jičín 51, 52, 53, 54 11 1650

062 Chlumec n/C, Křinec 58, 52 6 480

064 Stará Paka, Libuň, Dolní Bousov, Mladá Boleslav 31, 30, 29, 28 6 720 820

Hodnoty v tabulce 4 plně definují celou uvedenou železniční síť. Na obrázku 12 lze vyhledat libovolnou trasu a pomocí tabulky 4 zjistit o který úsek se jedná a jaká je maximální kapacita tohoto úseku (této hrany). Pokud například zjišťujeme kapacitu hrany mezi vrcholy 11 a 6 a postupujeme následovně:

1. Na obrázku 12 zjistíme číslo trasy mezi vrcholy 11 a 6. V tomto případě je to číslo trasy 036.

2. V tabulce 4 vyhledáme řádek popř. řádky s číslem trasy 036.

3. V případě, že řádků je více je nutné vybrat ten řádek, ve kterém se jedná o trasu mezi vrcholy 11 a 6.

4. Z hodnot v tabulce lze nyní vyčíst, že se jedná o trasu mezi městy:

Liberec, Jablonec n/N, Smržovka, Tanvald. Dalším údajem je, že na této trase se pohybuje během dne několik typů vlakových souprav, jejichž průměrný maximální počet pasažérů je 120. Vlaky projedou na trase 22 krát denně, a proto je výsledná kapacita hrany mezi těmito vrcholy rovna číslu 2640.

Informace v tabulce jsou podloženy skutečnými daty uváděnými Českými drahami. Pro zjištění hodnot uvedených v tabulce 4 byl zvolen konkrétní den v roce a to svátek z důvodu zpřehlednění informací. Zdrojem byl internetový server

„http://www.zelpage.cz/razeni“. Přičemž maximální kapacita soupravy je počet míst pro pasažéry udávaný výrobcem vagonů. Podle pravidel Českých drah se na konkrétních trasách železnice pohybují přesně dané vlakové soupravy. Z toho vyplývá, že při zanedbání dnů s rozdílným denním provozem, získáváme přesný popis železniční sítě. Jinými slovy na trase č. 036 z Tanvaldu do Harrachova jezdí soupravy, jejichž průměrná maximální kapacita je 100 pasažérů, 13 krát denně, a proto je kapacita této hrany vždy 1300. Soupravy jezdí po trasách vždy ve stejném počtu v obou směrech, a proto je kapacita hran v obou směrech stejná.

S takto definovaným grafem je možné řešit pomocí vytvořené aplikace různé úlohy o propustnosti. Oblast železniční sítě na obrázku 12 je součástí elektronické přílohy v adresáři „\priklady XMG\zeleznicni_trat.xmg“.

3.2 Řešení úloh

První úloha s tímto grafem bude zjišťovat propustnost po železniční síti mezi Libercem a Hradcem Králové (nebude uvažována časová dostupnost nalezené cesty).

Do již nadefinovaného grafu v programu přibude nový zdroj a spotřebič. Jako zdroj bude zvolen vrchol 11 (Liberec). Město Liberec má zhruba sto tisíc obyvatel, a proto hodnota produkce tohoto zdroje bude 100 000. Pro zjištění maximální propustnosti mezi těmito vrcholy bude označen vrchol 43 (Hradec Králové) jako spotřebič a jeho požadavek bude také hodnota 100 000. Po spuštění analýzy končí všechny tři algoritmy se stejným výsledkem. Výstup aplikace pro Ford-Fulkersonův algoritmus bez použití podrobného výpisu je následující:

>>FORD-FULKERSON | Začínám analyzovat|

>>FORD-FULKERSON | Dokončeno | Nelze zásobovat spotřebiče, zbývá: 91370

>>FORD-FULKERSON | čas: | 3031 (tiks)

>>FORD-FULKERSON | čas: | 1 (ms)

Z výpisu lze vyčíst, že spotřebiče nelze zásobovat a z celkového požadavku 100 000 stále chybí 91 370. Propustnost železniční sítě mezi Libercem a Hradcem Králové je tedy 8630 pasažérů za jeden den. Další informace z výsledného výpisu oznamují, že software pomocí Ford-Fulkersonova algoritmu, vyřešil tuto úlohu za 1 milisekundu a pro dokončení analýzy procesor vykonal 3031 instrukčních cyklů.

Ve druhé úloze bude probíhat analýza s jedním zdrojem a třemi spotřebiči.

V tomto případě bude potřeba zjistit maximální propustnost z jednoho města do tří odlišných. Řekněme, že z určitého důvodu bude třeba všechny občany jednoho města transportovat do konkrétních tří měst, například kvůli přítomnosti kvalitní nemocnice.

Aby řešení nebylo na první pohled jednoznačné, všechna čtyři města byla zvolena tak, aby se v nich křížilo více tras s většími kapacitami.

kapacitu v obou směrech. Zdroje tak budou vrcholy 28 (Mladá Boleslav), 43 (Hradec Králové), 11 (Liberec). Produkce všech zdrojů bude počet obyvatel města Turnov tedy 14 400. Spotřebič bude vrchol 24 (Turnov) s požadavkem také 14 400.

Výstup po analýze pomocí Dinicova algoritmu je následující:

>>DINIC | Začínám analyzovat | Graf - počet vrcholů: 62 počet hran: 147

>>DINIC | Dokončeno | Nelze zásobovat spotřebiče, zbývá: 180

>>DINIC | čas: | 10374 (tiks)

>>DINIC | čas: | 5 (ms)

Výpis oznamuje, že maximální tok mezi zdroji a spotřebičem je o hodnotu 180 menší než požadovaný. Z tohoto vyplývá, že pomocí nadefinované železniční sítě je možné během jednoho dne dopravit až na posledních 180 lidí všechny obyvatele města Turnov do měst Liberec, Hradec Králové a Mladá Boleslav.

Závěr

V rámci bakalářské práce byla úspěšně vytvořena aplikace pro analýzu toků v síti. Program byl vytvořen pomocí vývojového prostředí Microsoft Visual Studio v programovacím jazyce C#. Aplikace umožňuje definovat libovolný orientovaný graf a v tomto grafu definovat vybrané vrcholy jako zdroje či spotřebiče. Program korektně analyzuje toky v sítích pomocí Ford-Fulkersonova, Dinicova a Golbergova push-relabel algoritmu. Analýzu je možné spustit s volbou podrobného výpisu, kdy aplikace vypisuje důležité kroky algoritmu a umožňuje tak pochopit chování algoritmů v praxi.

V programu je dále implementována možnost ukládání a načítaní veškerých vstupů z a do speciálního XMG souboru. Součástí aplikace je generátor náhodných grafů a generátor označení náhodných vrcholů za zdroje a spotřebiče. Součástí bakalářské práce je popis práce s vytvořenou aplikací.

V rámci bakalářské práce byly jednotlivé implementované algoritmy porovnány z hlediska rychlosti výpočtu.

Pomocí vytvořené aplikace byly vyřešeny úlohy o propustnosti v síti, tvořené skutečnou oblastí železniční sítě v České republice.

Použitá literatura

[1] ČERNÝ, Jakub. Obsah. Základní grafové algoritmy [online]. MFF UK,

Praha, 2010 [cit. 2013-05-15]. Dostupné z:

http://kam.mff.cuni.cz/~kuba/ka/

[2] DEMEL, Jiří. Grafy a jejich aplikace. Vyd. 1. Praha: Academia, 2002, 257 s. ISBN 80-200-0990-6.

[3] DVOŘÁK, Tomáš. Toky v sítích. 2009, 22 s. Dostupné z:

http://ksvi.mff.cuni.cz/~dvorak/vyuka/UIN009/Toky.pdf

[4] JIROVSKÝ, Lukáš. Toky v sítích. Teorie grafů [online]. 2010 [cit. 2013-05-15]. Dostupné z: http://teorie-grafu.cz/vybrane-problemy/toky-v-sitich.php

[5] DRAYTON, Peter, Ben ALBAHARI a Ted NEWARD. C# v kostce:

pohotová referenční příručka. 1. vyd. Překlad Karel Voráček. Praha:

Grada, 2003, 764 s. ISBN 80-247-0443-9.

[6] MAREŠ, Martin. Krajinou grafových algoritmů: průvodce pro středně pokročilé. Vyd. 1. Praha: ITI, 2007, 71 s. ISBN 978-80-239-9049-2.

[7] Tok v síti. In: Wikipedia: the free encyclopedia [online]. San Francisco (CA): Wikimedia Foundation, 2001 [cit. 2013-05-15]. Dostupné z:

http://cs.wikipedia.org/wiki/Tok_v_s%C3%ADti

[8] CORMEN, Thomas H. Introduction to algorithms. 3rd ed. Cambridge:

MIT Press, 2009, 1292 s. ISBN 978-0-262-03384-8.

Elektronická příloha

 Soubor BakalarskaPrace.pdf s textem bakalářské práce ve formátu pdf.

 Složka s aplikací.

 Složka s vytvořenými grafy v souborech XMG.

 Složka se zdrojovými kódy aplikace.

Related documents