FAKULTA STROJNÍHO INŽENÝRSTVÍ ÚSTAV MATEMATIKY

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

Download "FAKULTA STROJNÍHO INŽENÝRSTVÍ ÚSTAV MATEMATIKY"

Transkript

1 VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA STROJNÍHO INŽENÝRSTVÍ ÚSTAV MATEMATIKY FACULTY OF MECHANICAL ENGINEERING INSTITUTE OF MATHEMATICS MATEMATICKÉ MODELY DOPRAVNÍCH ÚLOH MATHEMATICAL MODELS FOR TRANSPORTATION PROBLEMS BAKALÁŘSKÁ PRÁCE BACHELOR S THESIS AUTOR PRÁCE AUTHOR VEDOUCÍ PRÁCE SUPERVISOR HELENA PASCHKEOVÁ RNDr. PAVEL POPELA, Ph.D. BRNO 2012

2

3 Vysoké učení technické v Brně, Fakulta strojního inženýrství Ústav matematiky Akademický rok: 2011/2012 ZADÁNÍ BAKALÁŘSKÉ PRÁCE student(ka): Helena Paschkeová který/která studuje v bakalářském studijním programu obor: Matematické inženýrství (3901R021) Ředitel ústavu Vám v souladu se zákonem č.111/1998 o vysokých školách a se Studijním a zkušebním řádem VUT v Brně určuje následující téma bakalářské práce: v anglickém jazyce: Matematické modely dopravních úloh Mathematical models for transportation problems Stručná charakteristika problematiky úkolu: Student se seznámí s problematikou matematických modelů dopravních úloh, včetně jejich významu pro logistické aplikace. Zaměří se zejména na úlohy matematického programování s důrazem na úlohy o toku v sítích a úlohy založené na modifikacích úlohy obchodního cestujícího. Budou studovány vlastnosti vybraných úloh, modifikovány algoritmy a realizovány testovací výpočty s využitím dat z realných aplikací. Cíle bakalářské práce: Předpokládá se vývoj původních i modifikace existujících modelů a algoritmů a jejich aplikace v návaznosti na problémy řešené v rámci spolupráce ústavu matematiky FSI VUT v Brně se specialisty v oblasti logistiky z norské Molde University College (prof. Kjetil Kare Haugen).

4 Seznam odborné literatury: Christofides. N..: Graph Theory - an Algorithmic Approach. Academic Press Wolsey L. A.: Integer programming. John Wiley and Sons, Ghiani, G., Laporte, G., Musmanno, R.: Introduction to Logistics Systems Planning and Control. John Wiley and Sons, New York, Vedoucí bakalářské práce: RNDr. Pavel Popela, Ph.D. Termín odevzdání bakalářské práce je stanoven časovým plánem akademického roku 2011/2012. V Brně, dne L.S. prof. RNDr. Josef Šlapal, CSc. prof. RNDr. Miroslav Doupovec, CSc., dr. h. c. Ředitel ústavu Děkan fakulty

5 Abstrakt Práce se zabývá modelováním a řešením vybraných dopravních úloh. Nejprve jsou uvedeny historické postřehy, praktické poznatky a formulovány vybrané problémy. Potom se práce věnuje modelování vybraných dopravních úloh pomocí matematického (lineárního a celočíselného) programování a teorie grafů. Pozornost je především věnována problému obchodního cestujícího a různým metodám jeho řešení a jejich modifikacím. V práci jsou rovněž uvedeny komentáře k originální programové implementaci modelů a algoritmů, a to jak modelů v systému GAMS, tak grafových algoritmů v jazyce Python. Algoritmy byly testovány na úloze zahrnující 73 bývalých okresních měst v ČR. Vysledky testování jsou v závěrečné části porovnány a vyhodnoceny. Summary The thesis deals with modelling and solution techniques for the selected transportation problems. Firstly, historical remarks and application-related comments are introduced. Then the selected transportation problems are defined and mathematical programming and graph theory concepts are utilised to model them. The travelling salesman problem and suitable algorithms are under focus. The original implementation in GAMS and Python is discussed. Algorithms have been tested for the instance based on the set of 73 towns in the Czech Republic. Finally, the test results are evaluated and compared. Klíčová slova dopravní úlohy, optimalizace, teorie grafů, problém obchodního cestujícího, heuristiky Keywords transportation problem, optimization, graph theory, travelling salesman problem, heuristics PASCHKEOVÁ, H. Matematické modely dopravních úloh. Brno: Vysoké učení technické v Brně, Fakulta strojního inženýrství, s. Vedoucí RNDr. Pavel Popela, Ph.D.

6

7 Prohlašuji, že jsem bakalářskou práci Matematické modely dopravních úloh vypracovala samostatně s použitím materiálů uvedených v seznamu literatury. Helena Paschkeová

8

9 Ráda bych zde poděkovala vedoucímu bakalářské práce RNDr. Pavlu Popelovi, PhD. za jeho cenné rady a čas, který mi věnoval při řešení dané problematiky. V neposlední řadě také děkuji všem, kteří se podíleli na jazykové korektuře této bakalářské práce. Helena Paschkeová

10

11 Obsah 1 Dopravní úlohy Historie Praktické poznatky Typy úloh Problém obchodního cestujícího Problém čínského listonoše Matematické programování Lineární programování Model dopravní úlohy Úlohy celočíselného programování Model problému obchodního cestujícího Teorie grafů Základní pojmy Cykly v grafu Hamiltonův cyklus Eulerův cyklus Heuristiky Význam heuristik Heuristiky pro úlohu obchodního cestujícího Metoda hledání nejbližšího souseda Metoda hladového algoritmu Metoda vkládání měst do trasy Metoda dvojité minimální kostry grafu Christofidesova metoda Algoritmy pro zlepšení vlastností trasy obchodního cestujícího optimální algoritmus optimální algoritmus k-optimální algoritmus Porovnání výsledků testování metod 47 6 Pokročilé algoritmy a modely Pokročilé algoritmy Vehicle routing problem Závěr 55 8 Přílohy Minimální kostra grafu Algoritmus pro minimální párování v grafu Seznam příloh na CD

12

13 1. Dopravní úlohy Za dopravní úlohy a logistiku označujeme organizaci, přepravu a uskladnění materiálu či výrobků na cestě k zákazníkovi a přepravu samotných osob z jednoho místa na jiné. [4] Přestože mělo slovo logistika dříve čistě vojenský význam, dnes se týká převážně distribuce výrobků každodenní potřeby. Cílem je vytvořit systém, ve kterém je ten správný produkt přepraven na dané místo v daný čas. Tento problém, ač se zdá jednoduchý, zahrnuje rozsáhlou problematiku od zásobování po konečný prodej a mohou na něm záviset dokonce i lidské životy. Málokterá firma totiž zajišt uje celý výrobní cyklus od vytěžení surovin až po distribuci výrobků a musí se proto spoléhat i na subdodavatele. Navíc mnoho zákazníků si dnes již zvyklo na trh s neustálým přísunem nových modelů, které nutí firmy k inovacím a tedy i neustálému vývoji a využívání nových materiálů. Tím se se sít přepravy materiálů a výrobků mění takřka kontinuálně. Při tomto procesu, který je pro každou firmu nepostradatelný, dochází k utrácení nemalého množství peněz, a proto se jej firmy snaží co nejvíce zefektivnit. K tomu jim pomáhají moderní modely dopravních sítí, které jsou schopny přizpůsobit se změně dodavatelů i odběratelů a ušetřit peníze, které mohou být reinvestovány do výzkumu Historie Historie řešení dopravních úloh začíná v polovině 19. století při rozvoji manufaktur ve větších městech a rozvoji sériové výroby. Z počátku bylo možné výrobky dodávat jen do nejbližšího okolí továren, protože doprava zboží byla drahá. Nejvíce využívanou dopravou zboží na větší vzdálenosti byly lodě (především z Indie a jiných kolonií). Snížení nákladů na dopravu probíhalo jednoduše tak, že se lodě naložily vždy plné a jednotliví prodejci se domlouvali na rozdělení nákladů na přepravu. V průběhu 19. století došlo k rozvoji železniční sítě a tím i dopravy vnitrozemské. Železniční doprava přispěla především k rozvoji na západní straně Spojených států amerických, kam se dopravovalo mnoho výrobků z východu země. Opravdová revoluce přišla ale až s vynálezem automobilu na přelomu 19. a 20. století. Auta byla relativně levná, způsobila rozvoj silniční sítě a umožnila dopravovat individuálně mnohem menší zásilky než vlakem nebo lodí a to přímo na místo určení. Díky rozvoji silniční sítě se mnohonásobně rozrostly možnosti dopravy a přepravy zboží k zákazníkovi. Proto se také ve 30. letech začíná hovořit o tzv. dopravní úloze, tedy minimalizování nákladů na distribuci zboží. Rozvíjející se teorie je pak využíváno i v průběhu druhé světové války k zásobování armád. Po válce dochází k prudkému rozvoji dopravní techniky (díky válečným technologiím) a zefektivnění dopravních sítí až do dnešních dní. Více o historii viz [5] Praktické poznatky V praxi je třeba zajistit přepravu výrobků od výrobce k odběrateli a minimalizovat možná zpoždění a prodražování zakázek. V angličtině se takový postup označuje jako Supply chain. Jedná se o komplexní logistický systém, který začíná u výběru a dovozu základních surovin, pokračuje zpracováním v příslušných závodech a skladováním v meziskladech a končí u konečného zákazníka. Typický příklad vidíme na obrázku 1.1. V průběhu zpra- 13

14 cování surovin na výrobky můžeme zvolit i strategii výroby polotovarů. Výroba tedy může být rozdělena na více závodů, či můžeme hotové polotovary přímo nakupovat. Obrázek 1.1: Schéma distribuce výrobků [4] Logistika se ale často výrobou a konkrétním zpracováním v rámci jednotlivých závodů nezabývá a považuje je za objekty, pro které stačí vědět potřebné vstupy, výstupy a dobu zpracování materiálu na výrobek. Pokud se soustředíme na konkrétní výrobek, který v průběhu svého vzniku projde celým tímto systémem, můžeme rozlišit dva základní modely distribuce: push supply chains jsou modely distribuce výrobků takové, kde jsou výrobky zpracovávány průběžně a jejich množství je regulováno pomocí předpovědi poptávky. K těmto výrobkům patří drtivá většina komerčně zpracovávaného zboží. pull supply chains jsou modely distribuce, kde je výrobek vyroben pouze v případě, že o něj zákazník požádá. Jedná se tedy především o kusovou výrobu. Pro distribuci výrobků v praxi lze pak využít kombinaci obou metod a to tak, že jednotlivé polotovary zpracováváme průběžně a konečné výrobky sestavujeme až po vyžádání zákazníka. Zkrátíme tím podstatně dobu výroby u pull systému, ale zároveň máme větší variabilitu výrobků oproti push systému. Důležité je uvědomit si nejen cestu výrobku k zákazníkovi, ale zároveň i cestu od zákazníka k výrobci. Pokud dojde v jakémkoli stupni výroby k závadě na výrobku, je třeba jej opravit. Pokud závadu objeví až zákazník, je třeba zajistit převoz zpět do závodu a opravu. Pokud je tedy přepravní sít zvolena nevhodně a přeprava samostatného vadného výrobku zpět je vedena neefektivně, může nastat i případ, kdy vadné výrobky jednoduše vyhazujeme a ztrácíme tak i případné náhradní díly na další výrobky Typy úloh V případě sestavování jakéhokoli modelu je třeba si uvědomit, které skutečnosti jsou natolik podstatné, že je nezbytně nutné je do modelu zahrnout. Většinou stačí pouze 14

15 vytvořit model míst důležitých pro výrobu a distribuci a vzájemných cest mezi nimi. Mohou zde být ovšem i požadavky na převoz výrobku, který může být křehký, chemicky nebezpečný nebo rychle se kazící. Může se jednat například i o živá zvířata. Zároveň mohou mít zákazníci požadavky na čas doručení a je tedy třeba navštívit zákazníky v určitém časovém pořadí. Při vykládání a nakládání zboží je třeba zvážit, zda je potřeba tuto časovou prodlevu zanedbat nebo je podstatná vzhledem k době přepravy. Obecně se však snažíme modely vytvářet co nejjednodušší a tím si výrazně uspořit práci a výpočetní čas. Dále se ve zbytku práce budeme zabývat pouze řešením problémů, které závisí na přepravě mezi danými místy a nebudeme uvažovat žádné speciální požadavky na výrobky nebo od zákazníků. Rozebereme si základní úlohu přepravy řešenou pomocí lineárního programování a dále úlohu obchodního cestujícího, která je důležitou základní úlohou pro řešení dalších složitějších úloh Problém obchodního cestujícího Problém obchodního cestujícího je jedním z nejznámějších problémů z oblasti diskrétní optimalizace. Zadání úlohy zní takto: Obchodní cestující má schůzku v n městech a chce je navštívit v takovém pořadí, aby mu cestování zabralo nejméně času. Každé město je navštíveno minimálně jednou a po navštívení všech měst se obchodní cestující vrací do původního města. [13] Jedná se tedy o úlohu nalezení nejkratší cesty mezi všemi městy, které chce daný obchodní cestující navštívit. Formulace minimálně jednou je často nahrazena formulací právě jednou. Formulace minimálně jednou vede na obecnější zadání úlohy. Obecně totiž graf měst s cestami může mít tvar tzv. stromu a nemusí být Hamiltonovský. Více k tomuto tématu najdete v kapitole Úloha samozřejmě obecně nemusí být symetrická, tedy z města A do města B může být jiná vzdálenost než z města B do A. Pro lepší představu je vhodné představit si parník, který pluje po a proti proudu řeky. Zatímco po proudu bude parník překonávat vzdálenost s minimální námahou, proti proudu bude třeba motorů, které spotřebovávají palivo a prodražují cestu. Cena cesty tedy nemusí záviset pouze na vzdálenosti, ale i na převýšení, použitém prostředku dopravy a podobně. Ve své práci se budu podrobně zabývat hlavně tímto problémem, který budu pro názornost řešit na mapě České republiky. Jako testovací města jsem využila všech 73 bývalých okresních měst České republiky a vytvořila matici určující vzdálenosti, mezi těmito městy. Domnívám se, že právě tento model poskytne čtenáři dostatečnou orientaci a představu o tom, jak jednotlivé výpočty a postupy řešení probíhají. Počet měst se mi zdá dostatečný pro znázornění složitosti problému. Uspořádání měst ukazuje obrázek 1.2. Vzájemná poloha měst je převzata z kartografických map [1]. Jako vzdálenost mezi městy počítám vzdušnou spojnici mezi nimi. Vzdálenost mezi městy je Eulerovská a na všech algoritmech je tedy jasně vidět princip jejich postupu. Pro libovolné další modely lze samozřejmě vytvořit obecnou matici vzdáleností a aplikovat algoritmy s touto maticí. 15

16 Obrázek 1.2: Stylizovaná mapa okresních měst České republiky 1.5. Problém čínského listonoše Problém čínského listonoše je zadáním velmi podobný problému obchodního cestujícího, přesto se řešení velmi liší. Zadání úlohy zní takto: Čínský listonoš musí roznést poštovní psaní do všech ulic ve svém městě a vrátit se zpět na místo, ze kterého vycházel. V jakém pořadí a v jakém směru má ulice projít, aby jeho trasa byla nejkratší možná? Tuto úlohu formuloval čínský matematik M. K. Kwan roku Tato úloha lze opět zobrazit v grafu, kde jednotlivé ulice reprezentují hrany a křižovatky mezi ulicemi reprezentují vrcholy v grafu. Více o této problematice a Eulerových cyklech lze nalézt v kapitole Platí, že pokud v grafu existuje Eulerovský tah, pak je tento Eulerovský tah optimální cestou listonoše. [13] 16

17 2. Matematické programování 2.1. Lineární programování Lineární programování řeší problémy související s hledáním vázaných extrémů u lineárních funkcí více proměnných. Omezující podmínky těchto funkcí jsou ve tvaru lineárních rovnic nebo nerovností. Řešením těchto problémů se jako jeden z prvních matematiků zabýval J. B. J. Fourier, který je využil ve své teorii pravděpodobnosti a v analytické mechanice. Od čtyřicátých let se využívalo lineárního programování v ekonomii a později i k řešení dopravních problémů. Rozvoj efektivních metod řešení těchto úloh představil G. B. Dantzig, který vytvořil tzv. simplexovou metodu. 1, která je dnes již všeobecně známou metodou. V současné době se stále pracuje na dalších metodách řešení těchto úloh. S rozvojem počítačů se otevírají možnosti pro řešení pomocí paralelních výpočtů. Matematickou formulací úlohy lineárního programování ve standardním tvaru rozumíme: min{ n c j x j a ij x j = b i, i = 1,..., m, x j 0, j = 1,..., n}, j=1 kde c j, b i, a ij R jsou konstantní koeficienty úlohy a x j R jsou neznámé proměnné úlohy. V literatuře je uvedeno, že každou úlohu lineárního programování lze převést na standardní tvar. [9] Tímto přístupem lze vyřešit i širokou paletu dalších problémů, dopravních úloh a organizace přepravy. Zadání některých z těchto problémů se pokusím naznačit na několika dalších řádcích. Přeprava zboží dodavatel odběratel Základní úlohou je úloha přepravy zboží od různých dodavatelů k odběratelům. Přičemž lze do modelu přidat mezisklady, či továrny, které případné polotovary od dodavatelů přemění v konečný výrobek a poté jej transportují k odběrateli. Úkolem je pak minimalizovat celkovou cenu přepravy, případně celkový přepravní čas. Lepší pochopení šíře problému pak uvádí obrázek 1.1. Proces výroby Jedná se o úlohu nalezení optimálního postupu výroby výrobku. At už z hlediska množství použitých materiálů, tak pořadím jednotlivých kroků výroby. Dobrým příkladem může být výroba určitého typu oceli a jejího dodatečného legování. [9] Jak můžeme vidět, jsou metody lineárního programování poměrně užitečné na praktické aplikace v dopravě a ekonomii výroby. Pomocí vhodných algoritmů tzv. řešičů stačí pak jen vhodně formulovat úlohu a zadat ji danému vhodnému řešiči na vyřešení. S rozvojem počítačové technologie a výpočetní kapacity pak mají i tyto metody reálné použití v praxi. 1 Srozumitelné vysvětlení lze nalézt na internetové adrese: 17

18 Řešiče jsou často vyvíjeny jednotlivými univerzitami nebo prestižními firmami. Jsou často specializované na daný typ úloh. Řešiče můžeme obecně dělit na řešiče určené pro lineární programování (LP), lineární programování s celočíselnými proměnnými (MIP) či nelineární programování (NLP). Program GAMS nabízí širokou paletu velmi efektivních řešiců, které můžeme použít pro náš výpočet. Pro problém v následující kapitole byl zvolen řešič CPLEX pro lineární programování vyvíjený společností IBM. Pro lepší orientaci v zadání úloh jsem se rozhodla uvést jedno vzorové sestavení modelu a jeho vyřešení. Především chci přiblížit postup a řešení konkrétně a pak také ukázat, že k vyřešení těchto modelů stačí i obyčejný tabulkový kalkulátor, který může být i zdarma dostupný ke stažení na internetu Model dopravní úlohy Ukázkový příklad Mějme firmu se třemi továrnami (v Českých Budějovicích, Kutné Hoře a Olomouci) vyrábějícími hračky, která má pobočky ve třech městech (v Praze, Brně a Ostravě). Do poboček ve městech chodí lidé nakupovat tyto hračky a tím vytvářejí poptávku. Firma se snaží mít co největší zisk a neutrácet proto mnoho na přepravě. Je tedy zapotřebí minimalizovat náklady. Obrázek 2.1: Jednoduchý model Sestavíme tedy následující model, kde indexem i označíme proměnné související s továrnami a indexem j proměnné související s pobočkami. Problém: 3 3 minimalizuj c ij x ij Kde proměnná x ij označuje, kolik hraček se poveze z továrny i do pobočky j. Cenu cesty určuje matice cen C, jejíž prvky jsou ceny přepravy c ij mezi továrnou i a pobočkou j. Podmínky: každá továrna může vyprodukovat maximálně a i výrobků xij a i, i {1, 2, 3} i=1 j=1 každá pobočka musí být zásobena minimálně tak, aby se uspokojili všichni zákazníci v ní nakupující. Musí mít dovezeno minimálně b j výrobků. xij b j, j {1, 2, 3} 18

19 cenová matice C Praha Brno Ostrava Kutná Hora České Budějovice Olomouc Dále udáme výrobní kapacity jednotlivých továren a velikost poptávky v jednotlivých pobočkách matice kapacity výroby A Kutná Hora České Budějovice Olomouc kapacita výroby a i matice poptávky B Praha Brno Ostrava poptávka b j Takto lze tedy definovat základní úlohu dopravy zboží. Tuto úlohu lze jednoduše řešit simplexovou metodou pomocí algoritmu a nalézt řešení. Literatura uvádí další efektivnější algoritmy [13]. Výhodou použití simplexové metody je její rozšíření a dostupnost. V dnešní době existuje řada programů, které mají standardní řešiče a lze je bez problému využít. Úlohu jsem tedy řešila ukázkově v programech GAMS a MS Excel. GAMS je specializovaný software pro řešení optimalizačních úloh a je tedy vhodné uvést alespoň jednoduchou ukázku z něj. Tabulkové kalkulátory Microsoft Excel či Open Office Calc jsou dnes již rozšířenými programy na téměř každém počítači a jedná se o obecně použitelný nástroj i pro pokročilé matematické výpočty, proto jsem si dovolila zařadit i řešení tohoto příkladu v těchto programech. Zdrojové kódy a programy jsou přiložené na CD v deskách práce. Řešením této úlohy tedy bude matice přepravy X: matice přepravy výrobků X Praha Brno Ostrava Kutná Hora České Budějovice Olomouc Grafické řešení pak bude vypadat takto: Obrázek 2.2: Grafické řešení úvodního příkladu Červené šipky ukazují řešení této úlohy. Modré spojnice reprezentují cesty, které zůstávají nevyužity. 19

20 Výše popsaný model je samozřejmě velmi zjednodušený a vhodný spíše jako ilustrační příklad. V praxi programy pracují s mnohem větším množstvím dat. Úlohu lze především rozšířit a přiblížit realitě modelováním: skladů a meziskladů výrobků závislostí produkce výrobků na daném čase nebo dnu v týdnu závislostí prodeje výrobků na daném čase nebo dnu v týdnu postupné přepravy mezi továrnami (dle technologického postupu výroby) přeprava přímo k zákazníkovi přeprava do lokální pobočky Více podrobností ke všem těmto variantám lze nalézt v knize Introduction to logistics systems planning and control [4]. 20

21 2.2. Úlohy celočíselného programování Celočíselné programování se vyznačuje tím, že jedna nebo více proměnných je celočíselného charakteru, či speciálně binárního charakteru. Matematickou formulací úlohy celočíselného lineárního programování ve standardním tvaru rozumíme min{ n c j x j a ij x j = b i, i = 1,..., m, x j 0, j = 1,..., n, x j M, j J M } j=1 kde c j, b i, a ij R jsou konstantní koeficienty úlohy a x j R jsou neznámé proměnné úlohy. Konkrétně pak můžeme rozlišit úlohy: Integer Program (IP) jedná se o typ lineárního programování, kde všechny proměnné mají celočíselný charakter: M = Z, J M = {1,..., n} Mixed Integer Program (MIP) jedná se o typ lineárního programování, kde některé proměnné mají celočíselný charakter: M = Z, J M {1,..., n} Binary Integer Program (BIP) jedná se o speciální typ celočíselného programování, kde proměnné mají binární charakter, tedy jsou rovny bud 0 nebo 1: M = {0, 1}, J M = {1,..., n} Této skutečnosti se pak využívá při zadání mnoha úloh s dopravní tématikou. Reálně totiž platí, že můžeme vždy vypravit celočíselné násobky vlaků nebo letadel. Problematiku lze tedy využít při: Plánování jízdních řádů vlaků Pro daný plán trat ové sítě víme, že odjezdy a příjezdy vlaků do námi určených stanic se mají opakovat po určitém časovém odstupu. Například ze stanice A má vyjíždět aspoň jeden vlak každou hodinu. Vzdálenosti mezi jednotlivými stanicemi v síti známe, stejně tak čas potřebný k překonání této vzdálenosti. Platí zároveň podmínka, že dva vlaky jedoucí po sobě na dané trati musí mít nějaký námi daný časový rozestup. Pro pasažéry musí zase řešení umožnit přestup z jedné vlakové linky na druhou a poskytnout jim dostatek času pro tento přestup. Úkolem pak je najít takový plán přepravy, aby vyhovoval všem těmto podmínkám. [13] Plánování pohybu leteckých posádek Pro daný pravidelný plán letů pro daný typ letadla je třeba najít pravidelný plán letů pro posádku. Každý den musí být každá posádka přiřazena k letu na jedné, či více linkách, které zároveň musí splňovat letový plán dle zájmu zákazníků na dané trase letět. Zároveň je požadováno, aby jednotlivé linky na sebe navazovaly, aby byl nejkratší čas přeletu a aby se letadla zbytečně nezdržovala na letišti z důvodů tax. Hledáme tedy minimum vynaložených prostředků na posádky letadel, což je funkcí času letu letadla, délky pracovní doby a pauz mezi lety letadla. Zároveň ale musíme minimalizovat i letové časy a letištní taxy. [13] 21

22 Plánování letů na letišti Jedná se o podobný problém jako plánování pohybu leteckých posádek, ale tentokrát ze strany letištního personálu. Na základě příchozích letů je třeba rozhodnout, které letadlo kam přistavit, aby pasažéři mohli mezi letadly přestoupit a aby měli dostatečný čas na přestup. To vše s minimalizací nákladů a nehodovosti na letišti. [13] Z předchozího popisu celočíselného programování by se mohlo zdát, že se jedná o velmi podobnou úlohu, jako je lineární programování. Bohužel pouhým zaokrouhlením výsledků z lineárního programování se nedostaneme k optimálnímu řešení celočíselného programování. Je tedy třeba použít jiné řešiče, než v případě lineárního programování. Tuto problematiku podrobně rozebírá kniha [13], kde lze nalézt mnoho příkladů z celočíselného programování a technik řešení tohoto typu úloh. Dále se budeme zabývat pouze konkrétní úlohou v oblasti dopravy a vysvětlíme si základní formulaci úlohy celočíselného programování a význam jednotlivých podmínek Model problému obchodního cestujícího Problém obchodního cestujícího budeme řešit na grafu, který bude symetrický a formulujeme jej jako metodu celočíselného programování následovně: minimalizuj n n c ij x ij i=1 j=1 n x ij = 1, i=1 n x ij = 1, j=1 x ij 1 i S j / S x ij {0, 1} i = 0, 1,..., n j = 0, 1,..., n pro S N, S V tomto modelu jsou opět c ij koeficienty cenové matice C. Číslo c ij určuje cenu přepravy z města i do města j. Pokud je graf symetrický, pak je i matice C symetrická. Matice X je binární matice, která určuje pořadí měst, která budou navštívena. Platí pro ni: { 1 pokud cesta z města i do města j leží v trase obchodního cestujícího x ij = 0 jinak Ze zápisu jednoduše vyplývá podmínka, že součet v každém řádku a v každém sloupci je jedna, nebot z každého a do každého města vede právě jedna cesta. Jedná se vlastně o speciální případ dříve probrané dopravní úlohy 2.1.1, tzv. přiřazovací problém, kdy z každého z n měst přepravujeme co nejlevněji jednotková množství zboží do jednoho ze zbývajících n 1 měst. Zdá se tedy, že by k vyřešení mohlo stačit lineární programování. Tato specifikace ale k vyřešení úlohy ještě nestačí. Poslední podmínka zaručuje, že nebudou 22

23 Obrázek 2.3: Příklad jedné souvislé trasy vznik dvou subcyklů vznikat tzv. lokální smyčky, ale vytvoří se jeden velký cyklus obsahující všechna města, jak ukazuje obrázek 2.3. Hledaným řešením je pak to řešení s minimální ohodnocenou trasou. Zadání vypadá tedy poměrně jednoduše. Jaká je ovšem náročnost a rozsáhlost této úlohy? Můžeme začít v libovolném městě z n měst a z něj máme n 1 možností jak pokračovat dál. Pro další město už to bude n 2 možností a tak dále. V konečném důsledku tedy máme (n 1)! možných řešení. Pro malá n je tedy problém dobře řešitelný, ale pro rozsáhlejší úlohy náročnost neúměrně roste. Pro lepší představu na našem modelu máme 73 okresních měst. To je přibližně 4, možností cest, které splňují všechny výše určené podmínky modelu. Odtud je již jasně vidět, že nalezením všech možností a jejich tříděním rozhodně nedosáhneme efektivního výpočtu. Navíc i při dnešním pokroku v oblasti počítačových technologií bychom měli velké problémy s pamětí počítače. S výhodou jsem využila již funkční řešení podobné úlohy, která je součástí knihovny ukázkových řešení programu GAMS. Programu tsp42, který původně počítal optimální trasu skrz 42 největších měst Spojených států, jsem jako vstup poskytla data všech okresních měst a vzdáleností mezi nimi. Program funguje na principu řešení, které navrhli v roce 1954 autoři Dantzig, Fulkerson a Johnson. V jednoduchosti se jedná o dva kroky. Prvním krokem je tzv. relaxace řešení, ve které se matice řešení X transponuje a sečte s původní maticí X. X + X T = Y Pro lepší představu uvedeme jednoduchý příklad. Matice X 1 a X 2 odpovídají podmínkám n x ij = 1 a n x ij = 1. X 2 ovšem reprezentuje dvě uzavřené trasy, X 1 tvoří jednu i=1 j=1 uzavřenou trasu. X 1 = , X 2 = Pokud dojde k součtu těchto matic s jejich traspozicemi, vzniknou nové matice Y 1 a Y 2. Které budou symetrické a na diagonále nulové. Zabýváme se tedy pouze prvky pod diagonálou. Y 1 = , Y 2 =

24 Pak tedy reformulujeme prodmínky n x ij = 1 a n x ij = 1 na jedinou podmínku: i=1 j, j<i y ij + i, i>j j=1 y ij = 2 Tímto postupem získáme tzv. relaxované řešení, které program tsp42 spočte. Výsledek zobrazíme převodem matice X do syntaxe L A TEXu. Obrázek 2.4: Relaxované řešení úlohy pomocí programu GAMS Poté dochází k postupnému sdružování jednotlivých subcyklů tohoto řešení. Zároveň musíme kontrolovat, zda dochází ke splnění daných podmínek pro řešení původní úlohy. Podrobněji jsou metody popsány přímo v článku Solution of a Large-Scale Traveling- Salesman Problem [2]. Program tsp42 z relaxovaného řešení postupným spojováním a optimalizováním jednotlivých subcyklů úlohu vyřeší a nalezne optimum. Toto optimum má celkovou délku trasy (po korekci zaokrouhlování) 4095 km. Obrázek 2.5: Optimum úlohy Délka řešeni je km. Další přístupy řešení úlohy TSP založené na celočíselném lineárním programování lze nalézt v knize [13] a jejich implementace v GAMSu najdeme v [3]. Dále se ale chci zabývat efektivnějšími algoritmy založenými na teorii grafů. 24

25 3. Teorie grafů K dalšímu výkladu je třeba definovat základní pojmy z teorie grafů pro lepší pozdější orientaci v textu. Grafy pak lze velmi dobře využít k vytvoření modelu měst a jejich vzájemných vzdáleností a k názorné ukázce postupu jednotlivých algoritmů pro hledání nejlepších tras obchodního cestujícího Základní pojmy Definice Graf (obyčejný či jednoduchý neorientovaný graf) je uspořádaná dvojice množin G = (V, E), kde V je libovolná konečná neprázdná množina a E 2 V je libovolná množina dvouprvkových podmnožin množiny V. Množinu V nazýváme množinou vrcholů a množinu E množinou hran. [6] Je nutno také poznamenat, že jako neorientovaný graf lze interpretovat i symetrickou ireflexivní relaci, kde hrany tvoří právě dvojice prvků této relace. [6] Grafy specifikujeme bud výčtem vrcholů a hran nebo obrázkem. Obrázek 3.1: Příklad zobrazení grafu Pro naši úlohu budeme reprezentovat města vrcholy grafu a cesty mezi městy hranami grafu. Definice Stupněm vrcholu v v grafu G rozumíme počet hran vycházejících 1 z v. Stupeň v v grafu G značíme d G (v). [6] Věta Součet stupňů v grafu je vždy sudý a roven dvojnásobku počtu hran. [6] Důkaz této věty je triviální. Tuto větu však o pár kapitol dále vhodně využijeme u aplikace Christofidesovy metody. Definice Podgrafem grafu G rozumíme libovolný graf H na podmnožině vrcholů V (H) V (G), který má za hrany libovolnou podmnožinu hran grafu G majících oba vrcholy ve V (H). Píšeme H G. [6] Definice Isomorfismus grafů G a H je bijektivní (vzájemně jednoznačné) zobrazení f : V (G) V (H), pro které platí, že každá dvojice vrcholů u, v V (G) je spojená hranou v G právě tehdy, když je dvojice f(u), f(v) spojená hranou v H. Grafy G a H jsou izomorfní, pokud mezi nimi existuje isomorfismus. Píšeme G = H. [6] 25

26 Obrázek 3.2: Příklad dvou isomorfních grafů Isomorfismus nám v jednoduchosti říká, že dva různě nakreslené grafy o určitých vlastnostech jsou stejné a můžeme všechny grafy dle této bijekce roztřídit do tříd, kde každou třídu může reprezentovat graf s určitými danými vlastnostmi. Tedy například dle obrázku jsou tyto dva grafy isomorfní, tj. nezáleží, jak graf kreslíme, když zachováme vzájemné vlastnosti. Definice Sledem délky n v grafu G rozumíme posloupnost vrcholů a hran v 0, e 1, v 1, e 2, v 2,... e 1, v 0 ve které vždy hrana e i má koncové vrcholy v i 1, v i. [6] Definice Tah je sled v grafu bez opakování hran. Uzavřený tah je tahem, který končí ve vrcholu, ve kterém začal. Otevřený tah je tahem, který končí v jiném vrcholu, než sám začal. [6] Sledy a tahy nám pomohou lépe specifikovat trasu obchodního cestujícího. Řešením obchodního cestujícího bude vždy uzavřený tah v grafu měst a cest. Nyní už jen zbývá definovat vzdálenost. Definice Vzdálenost d G (u, v) dvou vrcholů u, v v grafu G je dána délkou nejkratšího sledu mezi u a v v G. Pokud sled mezi u, v neexistuje, definujeme vzdálenost d G (u, v) =.[6] Věta Vzdálenost v grafech splňuje trojúhelníkovou nerovnost [6]: u, v, w V (G) : d G (u, v) + d G (v, w) d G (u, w). Definice Souvislý graf je takový neorientovaný graf, v němž platí, že pro každé dva vrcholy x a y existuje alespoň jedna cesta z x do y. Definice Vážený graf je graf G spolu s ohodnocením w hran reálnými čísly w : E(G) R. Kladně vážený graf je dvojice (G, w) taková, že w(e) > 0 pro všechny hrany e.[6] Definice Vážená vzdálenost. Mějme kladně vážený graf (G, w). Délkou váženého sledu S = (v 0, e 1, v 1, e 2, v 2,... e 1, v 0 ) v G myslíme součet: d w G(S) = w(e 1 ) + w(e 2 ) + + w(e n ). Váženou vzdáleností v (G, w) mezi dvěma vrcholy u, v pak myslíme d w G(u, v) = min{d w G(S) : S je sled s konci u, v} 1 Pozn. U hran v češtině říkáme, že vychází z obou vrcholů současně. 26

27 Definice Celkovým ohodnocením podgrafu rozumíme součet ohodnocení všech jeho hran. Tím jsme tedy definovali váženou vzdálenost mezi vrcholy a délku váženého sledu. Při řešení úlohy obchodního cestujícího se dle grafové terminologie snažíme o uzavřený tah, který bude mít minimální váženou vzdálenost. Dále je třeba definovat strom a další důležité pojmy. Definice Neorientovaný uzavřený tah v grafu G nazveme kružnicí v grafu G. [10] Definice Strom je jednoduchý souvislý graf G bez kružnic. [6] Díky znalosti těchto pojmů pak můžeme lépe pochopit kostru grafu a minimální kostru grafu. Definice Kostrou souvislého grafu G je podgraf v G, který je sám stromem a obsahuje všechny vrcholy grafu G. [6] Definice Minimální kostrou souvislého váženého grafu G definujeme jako takovou kostru grafu G, která má nejmenší možné celkové ohodnocení. [6] Definice Párování v grafu G je podmnožina hran M E(G) taková, že žádné dvě hrany z M nesdílejí koncový vrchol. [6] Definice Minimální párování ve váženém grafu G je takové párování, které má minimální celkové ohodnocení. Definice Perfektní párování ve váženém grafu G je takové párování, které pokryje všechny vrcholy grafu G. Pojem minimální kostry grafu využijeme v dalších kapitolách ke konstrukci řešení úlohy obchodního cestujícího. Zároveň také ke konstrukci využijeme tzv. párování v grafech. 27

28 3.2. Cykly v grafu Další důležitou kapitolou k pochopení algoritmů obchodního cestujícího jsou cykly (uzavřené tahy) v grafech. Cyklus v grafu může představovat jednoduchou posloupnost pohybu zboží mezi vrcholy případně skrz dané hrany grafu. Tato tématika se již v minulosti aplikovala na některé dopravní problémy a hry, proto si u této kapitoly dovolím několik historických poznámek Hamiltonův cyklus Historie vzniku problému Hamiltonova úloha byla formulována poprvé W. R. Hamiltonem v roce 1857 [12]. Hamilton ji jako nápad prodal londýnskému prodejci her, který z ní vyrobil dřevěnou deskovou hru a tím problém rozšířil do celého světa. Jednalo se o hru na dvanáctistěnu, jehož plášt se rozložil do roviny a vytvořil se graf vrcholů a hran dvanáctistěnu. Cílem je všech 20 vrcholů dvanáctistěnu propojit tak, aby vznikl cyklus, který každým vrcholem projde právě jednou. Proto se této hře říkalo The Icosian game, tedy Hra na dvanáctistěnu. Obrázek 3.3: Graf hran a vrcholů dvanáctistěnu a jedno z možných řešení úlohy Obecná definice Definice Hamiltonův cyklus v grafu G definujeme jako uzavřený tah, který každý vrchol při průchodu grafem zahrne právě jednou. Graf, který obsahuje Hamiltonův cyklus se nazývá Hamiltonovský graf. Pokud se tedy budeme na úlohu obchodního cestujícího dívat jako na graf s městy jako vrcholy a cestami jako hranami, pak Hamiltonův cyklus je jedno z možných řešení problému a cyklus s nejmenším celkovým ohodnocením je optimálním řešením této úlohy. 28

29 Eulerův cyklus Historie vzniku problému Eulerův cyklus byl poprvé řešen Leonardem Eulerem, když se roku 1736 pokoušel vyřešit slavný problém sedmi mostů města Královce. Úkolem bylo v městě Královci (nyní Kaliningradu) přejít všech sedm mostů právě jednou. Právě Euler jako první dokázal, že tato úloha nemá řešení a proto není možné mosty žádným takovým způsobem přejít. Právě po něm jsou proto grafy s danou vlastností pojmenovány. Mezi známý případ Eulerova cyklu patří i kreslení obrázku domečku jedním tahem. Obrázek 3.4: Typický příklad Eulerova cyklu na kreslení domečku jedním tahem Obecná definice Definice Eulerovský cyklus v grafu je takový tah, který každou hranu grafu projde právě jednou. Pokud tedy vytvoříme graf, který bude reprezentovat město, způsobem takovým, že vrcholy budou představovat křižovatky a hrany mezi nimi budou představovat ulice mezi nimi, pak stačí najít v tomto grafu libovolný Eulerův cyklus a tím vyřešíme úlohu čínského listonoše. Pro Eulerovy cykly platí také několik známých zákonitostí, které dále v textu využijeme. Věta Neorientovaný graf je Eulerovský, je-li souvislý a každý jeho vrchol má sudý stupeň. Eulerův cyklus pak bude uzavřený tah. Věta Neorientovaný graf je Eulerovský, je-li souvislý a má-li právě dva vrcholy lichého stupně. Eulerův cyklus pak bude otevřený tah. 29

30 30

31 4. Heuristiky 4.1. Význam heuristik Heuristiky jsou takové algoritmy, které poskytnou dostatečně přesné řešení v rozumném výpočetním čase. Toto řešení nemusí být optimální, přesto je při velkých modelech výhodné jej využít. Často heuristik využíváme i v případech, kdy neexistuje metoda nalezení přesného řešení. V praxi jsou tyto metody velmi často užívané a některé z nich nám dokonce zaručují danou procentuální vzdálenost od optimálního řešení. [7] 4.2. Heuristiky pro úlohu obchodního cestujícího Heuristiky pro TSP jsou algoritmy, které po nalezení řešení problému TSP již nijak toto řešení nezlepšují. Nejlepší z těchto algoritmů dokonce zaručují, že spočítají řešení, které se bude lišit maximálně o % od optimálního řešení. Nemusí být ovšem pravidlem, že pro získání nejlepšího řešení musíme použít nejlepší konstrukční algoritmus. Mnoho takto získaných řešení lze zlepšovat pomocí tzv. zlepšovacích algoritmů, které mohou být velmi výkonné a mohou řešení posunout mnohem blíže k optimu. V našem modelu opět předpokládáme, že pro množinu měst můžeme určit graf cest, který bude úplný a bude pro něj platit trojúhelníková nerovnost. Jednoduchý model měst a cest si lze prohlédnout na obrázku 4.1. Jednotlivé metody budou prezentovány napřed pomocí několika prvních kroků právě na tomto modelu. Vlastní programování a výpočty pak byly provedeny v jazyce Python a za modelový příklad množiny měst byla opět vybrána bývalá okresní města České republiky. Obrázek 4.1: Modelový příklad měst a cest mezi nimi Typy těchto metod a jejich uplatnění jsem studovala v rámci spolupráce s norskou univerzitou Molde University College. Z vlastní zkušenosti a studia literatury [13], [7] vidím, že tyto metody jsou používány a mohou být často velmi efektivní při hledání řešení na velmi velkých modelech. Často se používají i v případech nestandardních doplňujících podmínek či v případě, že budeme potřebovat flexibilní model, při kterém se podmínky mohou široce měnit. Výhodou je také to, že řešení si pomocí bezplatného softwaru můžeme naprogramovat sami a nemusíme se spoléhat na řešiče, pokud budeme úlohu řešit pomocí metod matematického programování. 31

32 Metoda hledání nejbližšího souseda Jedná se o nejjednodušší metodu hledání řešení, která napadne téměř každého. Algoritmus startuje v zadaném počátečním vrcholu grafu (neboli v startovním městě). Z tohoto vrcholu tvoříme sled a přidáváme do sledu další hranu a vrchol tak, aby následující vrchol měl nejmenší váženou vzdálenost od vrcholu předešlého. Podmínkou je, že každý vrchol musí být použít ve sledu právě jednou. Jinak řečeno začneme ve startovním městě a vždy přidáme do posloupnosti jemu nejbližší město a postup opakujeme se zbývajícími městy, dokud nenavštívíme všechna města právě jednou v celém grafu. Tento algoritmus bohužel nijak nezaručuje efektivnost řešení. Většinou neposkytuje dostatečně dobrou aproximaci a je nutné jej zlepšovat dalšími algoritmy. Navíc není zcela jasné, které město by mělo být startovní. Naštěstí se jedná o poměrně jednoduchou techniku výpočtu a proto není problém vypočítat více variant tras a po té vybrat tu nejvhodnější ze všech. [8] Lepší představu postupu tohoto algoritmu doplňuje obrázek. Obrázek 4.2: Naznačení postupu řešení pomocí metody nejbližšího souseda Základní algoritmy bud uvádět dále v pseudokódu, který je obdobný tomu, který se při publikaci grafových algoritmů obvykle používá. Algoritmus hledání nejbližšího souseda Vstupem je seznam měst mesta a matice vzdáleností dist. Výstupem je trasa tour. begin tour = [ ]; vychozi mesto = mesta(1); mesta.odeber(vychozi mesto); while length(mesta) > 0 nasledujici mesto = najdi nejblizsi mesto(vychozi mesto, mesta); tour.pridej(nasledujici mesto); mesta.odeber(vychozi mesto); end end 32

33 Konkrétní řešení Tuto metodu jsem naprogramovala ve skriptovacím jazyce Python a analyzovala jsem její vlastnosti. Řešení všech modelů jsem pak zobrazila pomocí rozšiřujícího balíku funkcí pro jazyk Python s názvem NumPy. Za data jsem si opět zvolila všechna bývalá okresní města (tj. 73 uzlů grafu) v České republice, nebot se jedná o větší vzorek dat a bude lépe vidět variabilitu v závislosti na počátečním zvolení výchozího města. Za vzdálenosti mezi městy používám vzdušnou vzdálenost, která dobře aproximuje vzdálenosti skutečné. Ze simulací vyplývá, že obecně nelze nijak určit, které město by bylo pro začátek algoritmu nejvhodnější. Mezi mnou vypočteným nejlepším a nejhorším řešením je značný rozdíl, který je po vykreslení grafu zcela patrný. Tím se jen potvrzuje, že tato metoda není vhodná pro konečné řešení tohoto problému a bude třeba řešení dále posunout nějakou další metodou blíže k optimálnímu řešení. Konkrétně pak pro můj případ je nejlepší aproximací výchozí město Kolín a nejhorší výchozí město Tachov. Z tohoto srovnání by se mohlo zdát, že okrajová města jsou na tom vždy o trochu hůře, obecně se však toto tvrzení simulacemi nepotvrdilo. Obrázek 4.3: Nejlepší řešení na okresních městech Celková délka trasy = km. 33

34 Obrázek 4.4: Nejhorší řešení na okresních městech Celková délka trasy = km Metoda hladového algoritmu Tato metoda tvoří cestu mezi městy tak, že utřídí všechny hrany grafu (cesty mezi městy) dle velikosti. Vybere nejkratší hranu a pokud tato hrana splní podmínku, že jejím přidáním nevznikne cyklus s méně městy než je celkový počet měst a že přidáním této hrany nevzroste u libovolného vrcholu (města) stupeň vrcholu na více než dva, pak je tato hrana přidána do cyklu. Poté se vybírá nejmenší hrana následující. Algoritmus se ukončí po nalezení cyklu se všemi městy. Postup algoritmu je podobný Kruskalovu hladovému algoritmu, kterým se budeme zabývat u Christofidesovy metody. [8] Postup algoritmu lze dobře pochopit z ilustračního obrázku 4.5, který navazuje na obrázek 4.1. Čísla u jednotlivých hran reprezentují pořadí přidání hrany do cyklu. Obrázek 4.5: Vývoj hladového algoritmu Tuto metodu jsem dále žádným způsobem nezpracovala ani neprogramovala. 34

35 Metoda vkládání měst do trasy Tato metoda je opět poměrně přímá a má mnoho variant. Algoritmus načíná na podmnožině vrcholů (měst) a postupně se k nim po jednom přidávají další města. Počáteční podmnožinou je často trojice či dvojice vrcholů. Princip metody spočívá v tom, že v každém kroku se snažíme přidat další vrchol do uzavřeného tahu tak, aby přírůstek vzdálenosti, který vznikne přidáním tohoto vrcholu, byl minimální. Takto opakujeme, až do uzavřeného tahu přidáme všechny vrcholy a vynikne nám tedy cyklus měst. Obrázek ilustruje několik prvních kroků metody na modelovém příkladě, kde počáteční podmnožinou byly vybrány vrcholy grafu, které spojuje nejkratší hrana. Pořadí u šedých hran naznačuje postup celého algoritmu. Obrázek 4.6: Vývoj metody vkládání cest do trasy Tuto metodu jsem opět zpracovala ve skriptovacím jazyce Python a zobrazila pomocí NumPy. Výsledem výpočtu můžete vidět na obrázku níže. Délkou trasy je metoda srovnatelná s metodou hledání nejbližšího souseda. Obrázek 4.7: Použití metody vkládání měst do trasy na bývalých okresních městech ČR Celková délka trasy = km. 35

36 Metoda dvojité minimální kostry grafu Tato metoda patří již mezi sofistikovanější metody. Základem je sestrojení tzv. minimální kostry grafu. Jedná se o podgraf grafu, pro který platí, že mezi každými dvěma vrcholy lze najít spojnici a celkové ohodnocení hran v tomto grafu bude minimální. Při konstrukci tohoto podgrafu lze využít Kruskalova algoritmu. Postup tohoto algoritmu lze najít v příloze na konci práce. Obrázek 4.8: Sestrojení minimální kostry grafu na bývalých okresních městech ČR Celková délka cest = km. Metoda dvojité minimální kostry grafu pak spočívá pouze v dublování kostry grafu. Tedy vytvoříme novou množinu a každá hrana v minimální kostře grafu bude v námi nově vytvořené množině hran obsažena právě dvakrát. Na této množině hran pak lze sestrojit Eulerův cyklus použitím všech hran. Eulerův cyklus pak jednoduše převedeme na Hamiltonův. Procházením Eulerova cyklu si postupně zapisujeme navštívené vrcholy a vrcholy, které se v seznamu budou opakovat vynecháme. Tím vznikne Hamiltonův cyklus, kde každý vrchol navštívíme právě jednou. [8] Tato metoda zaručuje nejhůře dvojnásobně dlouhou dráhu oproti optimálnímu řešení, nebot platí, že kostra grafu bude mít vždy menší celkové ohodnocení trasy než trasa optimální. 36

37 Christofidesova metoda Algoritmus Christofides je pojmenován podle Nicose Christofidese, který jako první navrhl tento způsob výpočtu. Většina heuristik garantuje nejhorší výsledek ve dvojnásobné výši oproti optimu (tedy nalezená trasa heuristikou je v nejhorším případě dvakrát tak dlouhá než optimální trasa). Nicos Christofides navrhl rozšíření algoritmu tak, aby nejhorší možný výsledek měl vůči optimu poměr 3/2 (tedy nejhorší případ nalezené trasy bude o polovinu delší než délka optimální trasy). Tento algoritmus je zároveň i nejlepším dosud známým algoritmem. [7] Vytvoříme graf G = (V, E), kde vrcholy grafu budou námi navštívená města a E budou hrany mezi nimi. Konstrukce trasy pak probíhá následovně: vytvoříme minimální kostru grafu G vytvoříme podmnožinu vrcholů C grafu, která obsahuje pouze vrcholy s lichým stupněm na množině C vytvoříme minimální perfektní párování hrany minimální kostry grafu a minimálního perfektního párování sjednotíme do jedné množiny 1 Z tohoto sjednocení vytvoříme Eulerův cyklus Eulerův cyklus transformujeme na Hamiltonův cyklus [7] Nyní s výhodou využijeme pojmů vysvětlených v kapitole 3. Je důležité si uvědomit, že Eulerův cyklus sestrojíme v takto upraveném podgrafu vždy. Po konstrukci minimální kostry grafu vybíráme právě vrcholy s lichým stupněm, které nám brání v konstrukci Eulerova cyklu. Ty pak díky minimálnímu párování a sjednocení budou mít všechny sudý stupeň. Z věty ale víme, že lze sestrojit Eulerův cyklus. Převod Eulerova cyklu na Hamiltonův pak vytvoříme jednoduše tak, že utvoříme posloupnost po sobě jdoucích vrcholů v Eulerově cyklu a opakující se vrcholy vynecháme. Tím vznikne Hamiltonův cyklus na všech vrcholech grafu G. Tuto metodu jsem opět zpracovala ve skriptovacím jazyce Python. Na grafu jsem vytvořila minimální kostru grafu pomocí hladového algoritmu (viz přílohy práce). Po té jsem určila vrcholy grafu s lichým počtem stupňů a na nich provedla minimální pseudopárování. Vzhledem k pokročilé tématice pro algoritmy na minimální perfektní párování v grafech jsem se rozhodla pro zjednodušený algoritmus, který na těchto bodech vytvoří tzv. pseudopárování. Algoritmus funguje tak, že setřídí hrany mezi vybranými městy dle velikosti a vybere nejkratší hranu. Poté tyto dva již spojené vrcholy odstraní a opět zbývající hrany setřídí a vybere nejkratší z nich. Takto pokračuje, až spáruje všechny města. Tento problém jsem řešila i pomocí programů, které vytvoří minimální párování na mnou dané množině vrcholů s lichým stupněm. Ukázalo se, že mnou navržený algoritmus generuje pro mnou navržený příklad 73 okresních měst v České republice stejné řešení, jako algoritmus určující minimální párování. Tyto dvě množiny jsem po té sjednotila a vytvořila Eulerův 1 Zde je nutno poznamenat, že pokud bude libovolná hrana zastoupena v obou podmnožinách, pak je nutné ji ve sjednocení počítat jako objekt, který se v této množině vyskytne dvakrát. Což je bohužel i částečné porušení definice grafu. Tuto konstrukci je nutné provést, abychom v dalším kroku mohli sestrojit Eulerův cyklus. 37

38 cyklus. Ten jsem pak jednoduchým způsobem transformovala na Hamiltonův cyklus, a tím jsem získala Christofidesovo řešení. Obrázek 4.9: Minimální kostra grafu a pseudominimální párovaní Celková délka cest = km. Obrázek 4.10: Řešení motodou Christofides Celková délka trasy = km. 38

39 4.3. Algoritmy pro zlepšení vlastností trasy obchodního cestujícího V předchozím textu jsme shrnuli několik metod, jak spočítat řešení problému obchodního cestujícího s dostatečně dobrou aproximací od optimální trasy. Dále je nutno uvést, že tyto algoritmy mohou být účinné, ale stále je tu mnohdy možnost posunout dané nalezené přibližné řešení ještě více k řešení optimálnímu. Vzniká tedy nová třída algoritmů, které na vstupu dostanou již nějaké libovolně nalezené přibližné řešení problému obchodního cestujícího a dále jej pouze přibližují k optimu a trasu jako takovou již nekonstruují. Z těchto algoritmů lze vybrat od jednoduchých a rychlých až po sofistikované a velmi efektivní. Pak má tento přístup výhodu tedy i v tom, že lze libovolně kombinovat konstrukční a zlepšující heuristiky a tedy i na daném problému použít danou nejvhodnější kombinaci metod. Tyto metody jsem studovala i v rámci spolupráce s norskou univerzitou Molde University College při řešení úkolů projektu, na kterém jsem se mohla podílet. Z vlastní zkušenosti tedy vím, že řada těchto metod (především pokročilejších) se používá v praxi a velmi dobře funguje i na velkých modelech, které by v případě celočíselného lineárního programování stály podstatně více výpočetního času optimální algoritmus Jedním z prvních algoritmů je tzv. 2-optimální algoritmus, který jako jeden z prvních navrhl G. A. Croes již v roce Tento algoritmus staví na jednoduché metodě záměny dvou cest v celkové trase a testování, zda je ohodnocení nově vytvořené trasy menší, než ohodnocení trasy původní. Názorně je možno si tuto metodu představit na obrázku Tato metoda je poměrně jednoduchá a rychlá, a proto se její použití doporučuje téměř vždy. Laicky lze říci, že po aplikování tohoto algoritmu vznikne kolem měst tzv. bublina. Tedy z grafického pohledu, kde všechny cesty budou znázorněny jako úsečky, které budou proporcionálně odpovídat své vzdálenosti mezi městy, se cesty nemohou křížit a budou obepínat města ve formě jedné velké zdeformované bubliny. Nejlépe je tento efekt vidět na následujících aplikacích, především na obrázku Obrázek 4.11: Schéma 2-optimálního algoritmu Metodu lze konkrétně velmi dobře pochopit na algoritmu zapsaném na další straně textu. Trasu obchodního cestujícího reprezentujeme jednotlivými body, poskládanými za sebou v posloupnosti, v pořadí, v jakém jsou navštíveny. Tuto počáteční posloupnost 2 G. A. CROES (1958). A method for solving traveling salesman problems. 39

TGH02 - teorie grafů, základní pojmy

TGH02 - teorie grafů, základní pojmy TGH02 - teorie grafů, základní pojmy Jan Březina Technical University of Liberec 28. února 2017 Metainformace materiály: jan.brezina.matfyz.cz/vyuka/tgh (./materialy/crls8.pdf - Introduction to algorithms)

Více

TGH02 - teorie grafů, základní pojmy

TGH02 - teorie grafů, základní pojmy TGH02 - teorie grafů, základní pojmy Jan Březina Technical University of Liberec 31. března 2015 Počátek teorie grafů Leonard Euler (1707 1783) 1735 pobyt v Královci (Prusko), dnes Kaliningrad (Rusko)

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

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

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

Více

Grafy. RNDr. Petra Surynková, Ph.D. Univerzita Karlova v Praze Matematicko-fyzikální fakulta.

Grafy. RNDr. Petra Surynková, Ph.D. Univerzita Karlova v Praze Matematicko-fyzikální fakulta. 6 RNDr., Ph.D. Katedra didaktiky matematiky Univerzita Karlova v Praze Matematicko-fyzikální fakulta petra.surynkova@mff.cuni.cz http://surynkova.info množina vrcholů a množina hran hrana vždy spojuje

Více

Základy informatiky. Teorie grafů. Zpracoval: Pavel Děrgel Úprava: Daniela Szturcová

Základy informatiky. Teorie grafů. Zpracoval: Pavel Děrgel Úprava: Daniela Szturcová Základy informatiky Teorie grafů Zpracoval: Pavel Děrgel Úprava: Daniela Szturcová Obsah přednášky Barvení mapy Teorie grafů Definice Uzly a hrany Typy grafů Cesty, cykly, souvislost grafů Barvení mapy

Více

TGH02 - teorie grafů, základní pojmy

TGH02 - teorie grafů, základní pojmy TGH02 - teorie grafů, základní pojmy Jan Březina Technical University of Liberec 5. března 2013 Počátek teorie grafů Leonard Euler (1707 1783) 1735 pobyt v Královci (Prusko), dnes Kaliningrad (Rusko) Úloha:

Více

Grafy. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 13.

Grafy. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 13. Grafy doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 13. března 2017 Jiří Dvorský (VŠB TUO) Grafy 104 / 309 Osnova přednášky Grafy

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

H {{u, v} : u,v U u v }

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

Více

Obsah prezentace. Základní pojmy v teorii o grafech Úlohy a prohledávání grafů Hledání nejkratších cest

Obsah prezentace. Základní pojmy v teorii o grafech Úlohy a prohledávání grafů Hledání nejkratších cest Obsah prezentace Základní pojmy v teorii o grafech Úlohy a prohledávání grafů Hledání nejkratších cest 1 Základní pojmy Vrchol grafu: {množina V} Je to styčná vazba v grafu, nazývá se též uzlem, prvkem

Více

Optimalizace. Obsah přednášky. DÚ LP - Okružní problém. Lineární optimalizace. DÚ LP - Okružní problém. DÚ LP - Okružní problém

Optimalizace. Obsah přednášky. DÚ LP - Okružní problém. Lineární optimalizace. DÚ LP - Okružní problém. DÚ LP - Okružní problém Obsah přednášky Mgr. Květuše Sýkorová Optimalizace Lineární programování Distribuční úlohy Okružní problém KI Př UJEP Ústí nad Labem Nederivační metody Metody 1D optimalizace Derivační metody Optimalizace

Více

Základní pojmy teorie grafů [Graph theory]

Základní pojmy teorie grafů [Graph theory] Část I Základní pojmy teorie grafů [Graph theory] V matematice grafem obvykle rozumíme grafické znázornění funkční závislosti. Pro tento předmět je však podstatnější pohled jiný. V teorii grafů rozumíme

Více

HEURISTICKÉ ALGORITMY PRO ŘEŠENÍ ÚLOH OBCHODNÍHO CESTUJÍCÍHO

HEURISTICKÉ ALGORITMY PRO ŘEŠENÍ ÚLOH OBCHODNÍHO CESTUJÍCÍHO HEURISTICKÉ ALGORITMY PRO ŘEŠENÍ ÚLOH OBCHODNÍHO CESTUJÍCÍHO Heuristické algoritmy jsou speciálními algoritmy, které byly vyvinuty pro obtížné úlohy, jejichž řešení je obtížné získat v rozumném čase. Mezi

Více

Úvod do úloh plánování rozvozu (Vehicle Routing Problems)

Úvod do úloh plánování rozvozu (Vehicle Routing Problems) Úvod do úloh plánování rozvozu (Vehicle Routing Problems) RNDr. Martin Branda, Ph.D. Univerzita Karlova v Praze Matematicko-fyzikální fakulta Katedra pravděpodobnosti a matematické statistiky Výpočetní

Více

Hlavolamy a teorie grafů

Hlavolamy a teorie grafů Hlavolamy a teorie grafů Petr Kovář 1 petr.kovar@vsb.cz 1 Vysolá škola báňská Technická univerzita Ostrava, Škola matematického modelování, 2009 Přehled přednášky Úloha hanojských věží Část 1. Co není

Více

Definice 1 eulerovský Definice 2 poloeulerovský

Definice 1 eulerovský Definice 2 poloeulerovský Dále budeme předpokládat, že každý graf je obyčejný a má aspoň tři uzly. Definice 1 Graf G se nazývá eulerovský, existuje-li v něm uzavřený tah, který obsahuje každou hranu v G. Definice 2 Graf G se nazývá

Více

fakulty MENDELU v Brně (LDF) s ohledem na disciplíny společného základu http://akademie.ldf.mendelu.cz/cz (reg. č. CZ.1.07/2.2.00/28.

fakulty MENDELU v Brně (LDF) s ohledem na disciplíny společného základu http://akademie.ldf.mendelu.cz/cz (reg. č. CZ.1.07/2.2.00/28. Základy lineárního programování Vyšší matematika, Inženýrská matematika LDF MENDELU Podpořeno projektem Průřezová inovace studijních programů Lesnické a dřevařské fakulty MENDELU v Brně (LDF) s ohledem

Více

Metody síťové analýzy

Metody síťové analýzy Metody síťové analýzy Řeší problematiku složitých systémů, zejména pak vazby mezi jejich jednotlivými prvky. Vychází z teorie grafů. Základní metody síťové analýzy: CPM (Critical Path Method) deterministický

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

Úvod do teorie grafů

Úvod do teorie grafů Úvod do teorie grafů Neorientovaný graf G = (V,E,I) V množina uzlů (vrcholů) - vertices E množina hran - edges I incidence incidence je zobrazení, buď: funkce: I: E V x V relace: I E V V incidence přiřadí

Více

LDF MENDELU. Simona Fišnarová (MENDELU) Základy lineárního programování VMAT, IMT 1 / 25

LDF MENDELU. Simona Fišnarová (MENDELU) Základy lineárního programování VMAT, IMT 1 / 25 Základy lineárního programování Vyšší matematika, Inženýrská matematika LDF MENDELU Podpořeno projektem Průřezová inovace studijních programů Lesnické a dřevařské fakulty MENDELU v Brně (LDF) s ohledem

Více

4EK311 Operační výzkum. 5. Teorie grafů

4EK311 Operační výzkum. 5. Teorie grafů 4EK311 Operační výzkum 5. Teorie grafů 5. Teorie grafů definice grafu Graf G = uspořádaná dvojice (V, E), kde V označuje množinu n uzlů u 1, u 2,, u n (u i, i = 1, 2,, n) a E označuje množinu hran h ij,

Více

Kurz operačního výzkumu pro posluchače kombinovaného studia na FAST VUT v systému MOODLE

Kurz operačního výzkumu pro posluchače kombinovaného studia na FAST VUT v systému MOODLE Kurz operačního výzkumu pro posluchače kombinovaného studia na FAST VUT v systému MOODLE Jiří Novotný Ústav matematiky a deskriptivní geometrie Stavební fakulta VUT v Brně Veveří 95, 602 00 Brno e-mail:

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 Grafové úlohy Daniela Szturcová Tento

Více

Diskrétní matematika. DiM /01, zimní semestr 2018/2019

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

Více

Základy informatiky. 07 Teorie grafů. Kačmařík/Szturcová/Děrgel/Rapant

Základy informatiky. 07 Teorie grafů. Kačmařík/Szturcová/Děrgel/Rapant Základy informatiky 07 Teorie grafů Kačmařík/Szturcová/Děrgel/Rapant Obsah přednášky barvení mapy teorie grafů definice uzly a hrany typy grafů cesty, cykly, souvislost grafů Barvení mapy Kolik barev je

Více

Operační výzkum. Síťová analýza. Metoda CPM.

Operační výzkum. Síťová analýza. Metoda CPM. Operační výzkum Síťová analýza. Metoda CPM. Operační program Vzdělávání pro konkurenceschopnost Název projektu: Inovace magisterského studijního programu Fakulty ekonomiky a managementu Registrační číslo

Více

Přílohy. Příloha 1. Obr. P1.1 Zadání úlohy v MS Excel

Přílohy. Příloha 1. Obr. P1.1 Zadání úlohy v MS Excel Přílohy Příloha 1 Řešení úlohy lineárního programování v MS Excel V této příloze si ukážeme, jak lze řešit úlohy lineárního programování pomocí tabulkového procesoru MS Excel 2007. Výpočet budeme demonstrovat

Více

4EK201 Matematické modelování. 2. Lineární programování

4EK201 Matematické modelování. 2. Lineární programování 4EK201 Matematické modelování 2. Lineární programování 2.1 Podstata operačního výzkumu Operační výzkum (výzkum operací) Operational research, operations research, management science Soubor disciplín zaměřených

Více

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28. INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.0141 Báze vektorových prostorů, transformace souřadnic Michal Botur Přednáška

Více

1 Úvod do celočíselné lineární optimalizace

1 Úvod do celočíselné lineární optimalizace Úvod do celočíselné lineární optimalizace Martin Branda, verze 7.. 7. Motivace Reálné (smíšeně-)celočíselné úlohy Optimalizace portfolia celočíselné počty akcií, modelování fixních transakčních nákladů,

Více

10 Podgrafy, isomorfismus grafů

10 Podgrafy, isomorfismus grafů Typické příklady pro zápočtové písemky DiM 470-2301 (Kovář, Kovářová, Kubesa) (verze: November 25, 2018) 1 10 Podgrafy, isomorfismus grafů 10.1. Určete v grafu G na obrázku Obrázek 10.1: Graf G. (a) největší

Více

MATEMATIKA A 3 Metodický list č. 1

MATEMATIKA A 3 Metodický list č. 1 Metodický list č. 1 Název tématického celku: Úvod do problematiky diskrétní matematiky Cíl: Cílem tohoto tématického celku je vymezení oblasti diskrétní matematiky a příprava na další výklad kurzu. Jedná

Více

Problém obchodního cestujícího(tsp) Vstup: Množina n měst a vzdálenosti mezi nimi. Výstup: Nejkratší okružní cesta procházející všemi městy.

Problém obchodního cestujícího(tsp) Vstup: Množina n měst a vzdálenosti mezi nimi. Výstup: Nejkratší okružní cesta procházející všemi městy. Problém obchodního cestujícího(tsp) Vstup: Množina n měst a vzdálenosti mezi nimi. Výstup: Nejkratší okružní cesta procházející všemi městy. Poznámka:Slovem okružní myslíme,žecestakončívestejném městě,

Více

TEORIE GRAFŮ TEORIE GRAFŮ 1

TEORIE GRAFŮ TEORIE GRAFŮ 1 TEORIE GRAFŮ 1 TEORIE GRAFŮ Přednášející: RNDr. Jiří Taufer, CSc. Fakulta dopravní ČVUT v Praze, letní semestr 1998/99 Zpracoval: Radim Perkner, tamtéž, v květnu 1999 ZÁKLADNÍ POJMY Říkáme, že je dán prostý

Více

5. Lokální, vázané a globální extrémy

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,

Více

Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace

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

Více

Grafové algoritmy. Programovací techniky

Grafové algoritmy. Programovací techniky Grafové algoritmy Programovací techniky Grafy Úvod - Terminologie Graf je datová struktura, skládá se z množiny vrcholů V a množiny hran mezi vrcholy E Počet vrcholů a hran musí být konečný a nesmí bý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

= 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

= 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,

Více

Obr. P1.1 Zadání úlohy v MS Excel

Obr. P1.1 Zadání úlohy v MS Excel Přílohy Příloha 1 Řešení úlohy lineárního programování v MS Excel V této příloze si ukážeme, jak lze řešit úlohy lineárního programování pomocí tabulkového procesoru MS Excel. Výpočet budeme demonstrovat

Více

Algoritmus pro hledání nejkratší cesty orientovaným grafem

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

Více

Parametrické programování

Parametrické programování Parametrické programování Příklad 1 Parametrické pravé strany Firma vyrábí tři výrobky. K jejich výrobě potřebuje jednak surovinu a jednak stroje, na kterých dochází ke zpracování. Na první výrobek jsou

Více

Grafové algoritmy. Programovací techniky

Grafové algoritmy. Programovací techniky Grafové algoritmy Programovací techniky Grafy Úvod - Terminologie Graf je datová struktura, skládá se z množiny vrcholů V a množiny hran mezi vrcholy E Počet vrcholů a hran musí být konečný a nesmí být

Více

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

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í

Více

4EK213 LINEÁRNÍ MODELY

4EK213 LINEÁRNÍ MODELY 4EK213 LINEÁRNÍ MODELY Úterý 11:00 12:30 hod. učebna SB 324 3. přednáška SIMPLEXOVÁ METODA I. OSNOVA PŘEDNÁŠKY Standardní tvar MM Základní věta LP Princip simplexové metody Výchozí řešení SM Zlepšení řešení

Více

4EK213 LINEÁRNÍ MODELY

4EK213 LINEÁRNÍ MODELY 4EK213 LINEÁRNÍ MODELY Úterý 11:00 12:30 hod. učebna SB 324 Mgr. Sekničková Jana, Ph.D. 2. PŘEDNÁŠKA MATEMATICKÝ MODEL ÚLOHY LP Mgr. Sekničková Jana, Ph.D. 2 OSNOVA PŘEDNÁŠKY Obecná formulace MM Množina

Více

Vzdálenost uzlů v neorientovaném grafu

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í

Více

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od podzimu 2015

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od podzimu 2015 Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od podzimu 05 Zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia

Více

Triangulace. Význam triangulace. trojúhelník je základní grafický element aproximace ploch předzpracování pro jiné algoritmy. příklad triangulace

Triangulace. Význam triangulace. trojúhelník je základní grafický element aproximace ploch předzpracování pro jiné algoritmy. příklad triangulace Význam triangulace trojúhelník je základní grafický element aproximace ploch předzpracování pro jiné algoritmy příklad triangulace Definice Triangulace nad množinou bodů v rovině představuje takové planární

Více

Učební texty k státní bakalářské zkoušce Matematika Základy lineárního programování. študenti MFF 15. augusta 2008

Učební texty k státní bakalářské zkoušce Matematika Základy lineárního programování. študenti MFF 15. augusta 2008 Učební texty k státní bakalářské zkoušce Matematika Základy lineárního programování študenti MFF 15. augusta 2008 1 15 Základy lineárního programování Požadavky Simplexová metoda Věty o dualitě (bez důkazu)

Více

GRAFY A GRAFOVÉ ALGORITMY

GRAFY A GRAFOVÉ ALGORITMY KATEDRA INFORMATIKY PŘÍRODOVĚDECKÁ FAKULTA UNIVERZITA PALACKÉHO GRAFY A GRAFOVÉ ALGORITMY ARNOŠT VEČERKA VÝVOJ TOHOTO UČEBNÍHO TEXTU JE SPOLUFINANCOVÁN EVROPSKÝM SOCIÁLNÍM FONDEM A STÁTNÍM ROZPOČTEM ČESKÉ

Více

10 Přednáška ze

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ý

Více

Výhody a nevýhody jednotlivých reprezentací jsou shrnuty na konci kapitoly.

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?

Více

VYSOKÁ ŠKOLA EKONOMICKÁ V PRAZE. Optimalizace trasy při revizích elektrospotřebičů

VYSOKÁ ŠKOLA EKONOMICKÁ V PRAZE. Optimalizace trasy při revizích elektrospotřebičů VYSOKÁ ŠKOLA EKONOMICKÁ V PRAZE FAKULTA INFORMATIKY A STATISTIKY Hlavní specializace: Ekonometrie a operační výzkum Název diplomové práce Optimalizace trasy při revizích elektrospotřebičů Diplomant: Vedoucí

Více

4EK213 Lineární modely. 12. Dopravní problém výchozí řešení

4EK213 Lineární modely. 12. Dopravní problém výchozí řešení 4EK213 Lineární modely 12. Dopravní problém výchozí řešení 12. Distribuční úlohy LP Úlohy výrobního plánování (alokace zdrojů) Úlohy finančního plánování (optimalizace portfolia) Úlohy reklamního plánování

Více

CLARKEOVA-WRIGHTOVA METODA ŘEŠENÍ ÚLOHY VRP

CLARKEOVA-WRIGHTOVA METODA ŘEŠENÍ ÚLOHY VRP CLARKEOVA-WRIGHTOVA METODA ŘEŠENÍ ÚLOHY VRP 1. Definice úlohy Úloha VRP (Vehicle Routing Problem problém okružních jízd) je definována na obecné dopravní síti S = (V,H), kde V je množina uzlů sítě a H

Více

BRNO UNIVERSITY OF TECHNOLOGY FAKULTA STROJNÍHO INŽENÝRSTVÍ ENERGETICKÝ ÚSTAV FACULTY OF MECHANICAL ENGINEERING ENERGY INSTITUTE

BRNO UNIVERSITY OF TECHNOLOGY FAKULTA STROJNÍHO INŽENÝRSTVÍ ENERGETICKÝ ÚSTAV FACULTY OF MECHANICAL ENGINEERING ENERGY INSTITUTE VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA STROJNÍHO INŽENÝRSTVÍ ENERGETICKÝ ÚSTAV FACULTY OF MECHANICAL ENGINEERING ENERGY INSTITUTE SAMONASÁVACÍ ČERPADLO SELF-PRIMING PUMP DIPLOMOVÁ

Více

Teorie grafů. Teoretická informatika Tomáš Foltýnek

Teorie grafů. Teoretická informatika Tomáš Foltýnek Teorie grafů Teoretická informatika Tomáš Foltýnek foltynek@pef.mendelu.cz Opakování z minulé přednášky Co je to složitostní třída? Jaké složitostní třídy známe? Kde leží hranice mezi problémy řešitelnými

Více

4EK311 Operační výzkum. 4. Distribuční úlohy LP část 1

4EK311 Operační výzkum. 4. Distribuční úlohy LP část 1 4EK311 Operační výzkum 4. Distribuční úlohy LP část 1 4. Distribuční úlohy LP Úlohy výrobního plánování (alokace zdrojů) Úlohy finančního plánování (optimalizace portfolia) Úlohy reklamního plánování (plánování

Více

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru: 3 Maticový počet 3.1 Zavedení pojmu matice Maticí typu (m, n, kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru: a 11 a 12... a 1k... a 1n a 21 a 22...

Více

Numerické řešení variačních úloh v Excelu

Numerické řešení variačních úloh v Excelu Numerické řešení variačních úloh v Excelu Miroslav Hanzelka, Lenka Stará, Dominik Tělupil Gymnázium Česká Lípa, Gymnázium Jírovcova 8, Gymnázium Brno MirdaHanzelka@seznam.cz, lenka.stara1@seznam.cz, dtelupil@gmail.com

Více

Řešení 1b Máme najít body, v nichž má funkce (, ) vázané extrémy, případně vázané lokální extrémy s podmínkou (, )=0, je-li: (, )= +,

Řešení 1b Máme najít body, v nichž má funkce (, ) vázané extrémy, případně vázané lokální extrémy s podmínkou (, )=0, je-li: (, )= +, Příklad 1 Najděte body, v nichž má funkce (,) vázané extrémy, případně vázané lokální extrémy s podmínkou (,)=0, je-li: a) (,)= + 1, (,)=+ 1 lok.max.v 1 2,3 2 b) (,)=+, (,)= 1 +1 1 c) (,)=, (,)=+ 1 lok.max.v

Více

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, 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

Více

12. Lineární programování

12. Lineární programování . Lineární programování. Lineární programování Úloha lineárního programování (lineární optimalizace) je jedním ze základních problémů teorie optimalizace. Našim cílem je nalézt maximum (resp. minimum)

Více

Modely teorie grafů, min.kostra, max.tok, CPM, MPM, PERT

Modely teorie grafů, min.kostra, max.tok, CPM, MPM, PERT PEF ČZU Modely teorie grafů, min.kostra, max.tok, CPM, MPM, PERT Okruhy SZB č. 5 Zdroje: Demel, J., Operační výzkum Jablonský J., Operační výzkum Šubrt, T., Langrová, P., Projektové řízení I. a různá internetová

Více

Přijímací zkouška - matematika

Přijímací zkouška - matematika Přijímací zkouška - matematika Jméno a příjmení pište do okénka Číslo přihlášky Číslo zadání 1 Grafy 1 Pro který z následujících problémů není znám žádný algoritmus s polynomiální časovou složitostí? Problém,

Více

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA STROJNÍHO INŽENÝRSTVÍ ÚSTAV KONSTRUOVÁNÍ FACULTY OF MECHANICAL ENGINEERING INSTITUTE OF MACHINE AND INDUSTRIAL DESIGN DESIGN PC MONITORU

Více

NP-úplnost problému SAT

NP-úplnost problému SAT Problém SAT je definován následovně: SAT(splnitelnost booleovských formulí) Vstup: Booleovská formule ϕ. Otázka: Je ϕ splnitelná? Příklad: Formule ϕ 1 =x 1 ( x 2 x 3 )jesplnitelná: např.přiohodnocení ν,kde[x

Více

Úloha - rozpoznávání číslic

Úloha - rozpoznávání číslic Úloha - rozpoznávání číslic Vojtěch Franc, Tomáš Pajdla a Tomáš Svoboda http://cmp.felk.cvut.cz 27. listopadu 26 Abstrakt Podpůrný text pro cvičení předmětu X33KUI. Vysvětluje tři způsoby rozpoznávání

Více

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=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

Více

Teorie grafů. Kostra grafu. Obsah. Radim Farana Podklady pro výuku pro akademický rok 2013/2014

Teorie grafů. Kostra grafu. Obsah. Radim Farana Podklady pro výuku pro akademický rok 2013/2014 Teorie grafů Radim Farana Podklady pro výuku pro akademický rok 013/014 Obsah Kostra grafu. Tahy,. Úloha čínského pošťáka. Zdroj: Vítečková, M., Přidal, P. & Koudela, T. Výukový modul k předmětu Systémová

Více

Numerické metody 6. května FJFI ČVUT v Praze

Numerické metody 6. května FJFI ČVUT v Praze Extrémy funkcí Numerické metody 6. května 2018 FJFI ČVUT v Praze 1 Úvod Úvod 1D Více dimenzí Kombinatorika Lineární programování Programy 1 Úvod Úvod - Úloha Snažíme se najít extrém funkce, at už jedné

Více

Hledáme efektivní řešení úloh na grafu

Hledáme efektivní řešení úloh na grafu Hledáme efektivní řešení úloh na grafu Mějme dán graf následující úlohy: G = ( V, E), chceme algoritmicky vyřešit Je daný vrchol t dosažitelný z vrcholu s? Pokud ano, jaká nejkratší cesta tyto vrcholy

Více

Graf. Uzly Lokality, servery Osoby fyzické i právní Informatické objekty... atd. Hrany Cesty, propojení Vztahy Informatické závislosti... atd.

Graf. Uzly Lokality, servery Osoby fyzické i právní Informatické objekty... atd. Hrany Cesty, propojení Vztahy Informatické závislosti... atd. Graf 2 0 3 1 4 5 Uzly Lokality, servery Osoby fyzické i právní Informatické objekty... atd. Hrany Cesty, propojení Vztahy Informatické závislosti... atd. Běžné reprezentace grafu Uzly = indexy Stupně uzlů

Více

GRAFICKÉ ŘEŠENÍ ROVNIC A JEJICH SOUSTAV

GRAFICKÉ ŘEŠENÍ ROVNIC A JEJICH SOUSTAV GRAFICKÉ ŘEŠENÍ ROVNIC A JEJICH SOUSTAV Mgr. Jitka Nováková SPŠ strojní a stavební Tábor Abstrakt: Grafické řešení rovnic a jejich soustav je účinná metoda, jak vysvětlit, kolik různých řešení může daný

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

2 Spojité modely rozhodování

2 Spojité modely rozhodování 2 Spojité modely rozhodování Jak již víme z přednášky, diskrétní model rozhodování lze zapsat ve tvaru úlohy hodnocení variant: f(a i ) max, a i A = {a 1, a 2,... a p }, kde f je kriteriální funkce a A

Více

4EK311 Operační výzkum. 1. Úvod do operačního výzkumu

4EK311 Operační výzkum. 1. Úvod do operačního výzkumu 4EK311 Operační výzkum 1. Úvod do operačního výzkumu Mgr. Jana SEKNIČKOVÁ, Ph.D. Nová budova, místnost 433 Konzultační hodiny InSIS E-mail: jana.seknickova@vse.cz Web: jana.seknicka.eu/vyuka Garant kurzu:

Více

0.1 Úvod do lineární algebry

0.1 Úvod do lineární algebry Matematika KMI/PMATE 1 01 Úvod do lineární algebry 011 Vektory Definice 011 Vektorem aritmetického prostorur n budeme rozumět uspořádanou n-tici reálných čísel x 1, x 2,, x n Definice 012 Definice sčítání

Více

Funkce a lineární funkce pro studijní obory

Funkce a lineární funkce pro studijní obory Variace 1 Funkce a lineární funkce pro studijní obory Autor: Mgr. Jaromír JUŘEK Kopírování a jakékoliv další využití výukového materiálu je povoleno pouze s uvedením odkazu na www.jarjurek.cz. 1. Funkce

Více

10. Soustavy lineárních rovnic, determinanty, Cramerovo pravidlo

10. Soustavy lineárních rovnic, determinanty, Cramerovo pravidlo 0. Soustavy lineárních rovnic, determinanty, Cramerovo pravidlo (PEF PaA) Petr Gurka aktualizováno 9. prosince 202 Obsah Základní pojmy. Motivace.................................2 Aritmetický vektorový

Více

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28. INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ107/2200/280141 Soustavy lineárních rovnic Michal Botur Přednáška 4 KAG/DLA1M: Lineární

Více

4EK213 Lineární modely. 10. Celočíselné programování

4EK213 Lineární modely. 10. Celočíselné programování 4EK213 Lineární modely 10. Celočíselné programování 10.1 Matematický model úlohy ILP Nalézt extrém účelové funkce z = c 1 x 1 + c 2 x 2 + + c n x n na soustavě vlastních omezení a 11 x 1 + a 12 x 2 + a

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

VYUŽITÍ NĚKTERÝCH METOD TEORIE GRAFŮ PŘI ŘEŠENÍ DOPRAVNÍCH PROBLÉMŮ

VYUŽITÍ NĚKTERÝCH METOD TEORIE GRAFŮ PŘI ŘEŠENÍ DOPRAVNÍCH PROBLÉMŮ VYUŽITÍ NĚKTERÝCH METOD TEORIE GRAFŮ PŘI ŘEŠENÍ DOPRAVNÍCH PROBLÉMŮ Markéta Brázdová 1 Anotace: Metody operačního výzkumu mají při řešení praktických problémů široké využití. Článek se zabývá problematikou

Více

Algoritmizace diskrétních. Ing. Michal Dorda, Ph.D.

Algoritmizace diskrétních. Ing. Michal Dorda, Ph.D. Algoritmizace diskrétních simulačních modelů Ing. Michal Dorda, Ph.D. 1 Úvodní poznámky Při programování simulačních modelů lze hlavní dílčí problémy shrnout do následujících bodů: 1) Zachycení statických

Více

Teorie her a ekonomické rozhodování. 2. Maticové hry

Teorie her a ekonomické rozhodování. 2. Maticové hry Teorie her a ekonomické rozhodování 2. Maticové hry 2.1 Maticová hra Teorie her = ekonomická vědní disciplína, která se zabývá studiem konfliktních situací pomocí matematických modelů Hra v normálním tvaru

Více

Jordanova křivka a její využití

Jordanova křivka a její využití Jordanova křivka a její využití Lukáš Dvořák Ústav matematiky, Fakulta strojního inženýrství, Vysoké učení technické v Brně Technická 2, Brno 616 69 e-mail: hoopoo@centrum.cz Abstrakt Tato práce pojednává

Více

7. přednáška Systémová analýza a modelování. Přiřazovací problém

7. přednáška Systémová analýza a modelování. Přiřazovací problém Přiřazovací problém Přiřazovací problémy jsou podtřídou logistických úloh, kde lze obecně říci, že m dodavatelů zásobuje m spotřebitelů. Dalším specifikem je, že kapacity dodavatelů (ai) i požadavky spotřebitelů

Více

Ing. Tomáš MAUDER prof. Ing. František KAVIČKA, CSc. doc. Ing. Josef ŠTĚTINA, Ph.D.

Ing. Tomáš MAUDER prof. Ing. František KAVIČKA, CSc. doc. Ing. Josef ŠTĚTINA, Ph.D. OPTIMALIZACE BRAMOVÉHO PLYNULÉHO ODLÉVÁNÍ OCELI ZA POMOCI NUMERICKÉHO MODELU TEPLOTNÍHO POLE Ing. Tomáš MAUDER prof. Ing. František KAVIČKA, CSc. doc. Ing. Josef ŠTĚTINA, Ph.D. Fakulta strojního inženýrství

Více

4EK201 Matematické modelování 5. Speciální úlohy lineárního programování

4EK201 Matematické modelování 5. Speciální úlohy lineárního programování 4EK201 Matematické modelování 5. Speciální úlohy lineárního programování 4. Typické úlohy LP Úlohy výrobního plánování (alokace zdrojů) Úlohy finančního plánování (optimalizace portfolia) Směšovací problémy

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

Drsná matematika III 9. přednáška Rovinné grafy: Stromy, konvexní mnohoúhelníky v prostoru a Platónská tělesa

Drsná matematika III 9. přednáška Rovinné grafy: Stromy, konvexní mnohoúhelníky v prostoru a Platónská tělesa Drsná matematika III 9. přednáška Rovinné grafy: Stromy, konvexní mnohoúhelníky v prostoru a Platónská tělesa Jan Slovák Masarykova univerzita Fakulta informatiky 13. 11. 2006 Obsah přednášky 1 Literatura

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

P R O J E K T O V É Ř Í Z E N Í A M A R K E T I N G 1. Akad. rok 2015/2016, LS Projektové řízení a marketing - VŽ 1

P R O J E K T O V É Ř Í Z E N Í A M A R K E T I N G 1. Akad. rok 2015/2016, LS Projektové řízení a marketing - VŽ 1 P R O J E K T O V É Ř Í Z E N Í A M A R K E T I N G 1 Akad. rok 2015/2016, LS Projektové řízení a marketing - VŽ 1 Vznik a historie projektového řízení Akad. rok 2015/2016, LS Projektové řízení a marketing

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

Kostry. 9. týden. Grafy. Marie Demlová (úpravy Matěj Dostál) 16. dubna 2019

Kostry. 9. týden. Grafy. Marie Demlová (úpravy Matěj Dostál) 16. dubna 2019 Grafy 16. dubna 2019 Tvrzení. Je dán graf G, pak následující je ekvivalentní. 1 G je strom. 2 Graf G nemá kružnice a přidáme-li ke grafu libovolnou hranu, uzavřeme přesně jednu kružnici. 3 Graf G je souvislý

Více

4EK314 Diskrétní modely

4EK314 Diskrétní modely 4EK314 Diskrétní modely Jan Fábry Fakulta informatiky a statistiky Katedra ekonometrie fabry@vse.cz http://nb.vse.cz/~fabry Únor 2016, Praha Jan Fábry Diskrétní modely 1 / 153 Sylabus kurzu 1 Úloha celočíselného

Více