Optimální plánování rozvozu pomocí dopravních prostředků

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

Download "Optimální plánování rozvozu pomocí dopravních prostředků"

Transkript

1 Univerzita Karlova v Praze Matematicko-fyzikální fakulta DIPLOMOVÁ PRÁCE Ondřej Kafka Optimální plánování rozvozu pomocí dopravních prostředků Katedra pravděpodobnosti a matematické statistiky Vedoucí diplomové práce: Studijní program: Studijní obor: RNDr. Martin Branda, Ph.D. Matematika Pravděpodobnost, matematická statistika a ekonometrie Praha 2013

2 Na tomto místě bych rád poděkoval RNDr. Martinovi Brandovi, Ph.D. za vedení práce a cenné připomínky.

3 Prohlašuji, že jsem tuto diplomovou práci vypracoval samostatně a výhradně s použitím citovaných pramenů, literatury a dalších odborných zdrojů. Beru na vědomí, že se na moji práci vztahují práva a povinnosti vyplývající ze zákona č. 121/2000 Sb., autorského zákona v platném znění, zejména skutečnost, že Univerzita Karlova v Praze má právo na uzavření licenční smlouvy o užití této práce jako školního díla podle 60 odst. 1 autorského zákona. V... dne... Podpis autora

4 Název práce: Optimální plánování rozvozu pomocí dopravních prostředků Autor: Ondřej Kafka Katedra: Katedra pravděpodobnosti a matematické statistiky Vedoucí diplomové práce: RNDr. Martin Branda, Ph.D. Abstrakt: Práce se zabývá optimalizačními problémy, které vznikají při plánování rozvozu pomocí dopravních prostředků. Tyto problémy lze často formulovat jednoduše jako úlohy celočíselného programování, ale málokdy je možné je řešit přímo technikami celočíselného programování. Proto je třeba zkoumat také schopnosti heuristických algoritmů. Hlavním zaměřením práce je rozvozní problém s časovými okny. Pro tento problém byl navržen a implementován algoritmus tabu prohledávání. Algoritmus využívá celočíselné programování při řešení dělícího problému za účelem nalezení optimálního rozdělení všech zákazníků do přípustných tras nalezených během vyhledávacího procesu. V numerické studii jsou porovnány výsledky postupů klasického celočíselného programování, jednoduché vkládací heuristiky a navrženého algoritmu tabu prohledávání. Klíčová slova: rozvozní problém, problém obchodního cestujícího, celočíselné programování, heuristiky, tabu prohledávání Title: Vehicle Routing Problem Author: Ondřej Kafka Department: Department of Probability and Mathematical Statistics Supervisor: RNDr. Martin Branda, Ph.D. Abstract: The thesis deals with optimization problems which arise at distribution planning. These problems can often be easily formulated as integer programming problems, but rarely can be solved using mixed integer programming techniques. Therefore, it is necessary to study the efficiency of heuristic algorithms. The main focus of the thesis is on the vehicle routing problem with time windows. A tabu search algorithm for this problem was developed and implemented. It uses integer programming to solve the set partitioning problem in order to find optimal distribution of all customers into feasible routes found during the search. The results of the classical integer programming approach, basic insertion heuristic and presented tabu search algorithm are compared in a numerical study. Keywords: vehicle routing problem, traveling salesman problem, integer programming, heuristics, tabu search

5 Obsah Úvod 1 1 Časová složitost Třídy složitosti Problém obchodního cestujícího Formulace pomocí celočíselného programování Podmínky zamezující vytváření subcyklů Přesné metody řešení problému obchodního cestujícího Heuristiky pro problém obchodního cestujícího Metoda nejbližšího souseda Christofidova metoda Algoritmus k-opt Další problémy související s problémem obchodního cestujícího Časově závislý problém obchodního cestujícího Problém obchodního cestujícího s časovými okny Úloha s více obchodními cestujícími Rozvozní problém Rozvozní problém Obecně o rozvozních problémech Kapacitně omezený rozvozní problém Clarkova-Wrightova heuristika Rozvozní problém s časovými okny Metody řešení rozvozních problémů Postup pomocí matematického programování Metoda generování sloupců Heuristiky Tabu prohledávání Základní terminologie Aplikace tabu prohledávání na rozvozní problém s časovými okny Implementace Datové struktury Metody Obecný postup Numerická studie Přístup pomocí matematického programování Heuristiky Solomonova vkládací heuristika Tabu prohledávání Závěr 55 Reference 56

6 Seznam použitých zkratek 61 Přílohy 62 A Základní pojmy z teorie grafů 63 B Diagram rozmístění zákazníků problémů typu R 65 C Diagram rozmístění zákazníků problémů typu C (otočeno o 90 ) 66 D Diagram rozmístění zákazníků problémů typu RC (otočeno o 90 ) 67 E Nejlepší nalezená řešení algoritmem tabu prohledávání 68

7 Úvod Přeprava zboží a osob je důležitou součástí dnešního světa. Denně se utratí obrovské částky za palivo, platy řidičům, údržbu vozidel a mnoho dalšího. Je tedy jasné, že otázka přepravy nabízí velký prostor k optimalizaci nákladů ať už vylepšováním technického vybavení, infrastruktury nebo kvalitním plánováním. Při plánování distribuce zboží jsou v praxi úspěšně uplatňovány techniky operačního výzkumu. Odhadem lze obvykle docílit snížení nákladů o 5 až 20 % [58]. Asi nejznámější úlohou kombinatorické optimalizace je problém obchodního cestujícího (traveling salesman problem, TSP). Úkolem cestujícího je obejít v libovolném pořadí daných n měst a vrátit se do výchozího tak, aby celková délka či cena cesty byla minimální. Svoji popularitu si tato úloha získala díky snadné formulaci, širokému uplatnění a zároveň obtížnému řešení. Zobecněním TSP je pak rozvozní problém (vehicle routing problem, VRP), ve kterém skupina vozů vycházející z jednoho místa objíždí zákazníky a navrací se zpět. Úkolem je nalézt plán tras minimalizující celkovou ujetou vzdálenost či počet použitých vozidel. K VRP se často přidávají další omezení. Typicky to bývají časová okna, během kterých musí dojít k obsloužení zákazníka (vehicle routing problem with time windows, VRPTW). Protože výpočetní složitost přesných deterministických algoritmů exponenciálně roste s velikostí těchto úloh, velké praktické úlohy je často nutné řešit pomocí heuristických algoritmů, zajišťujících pouze suboptimální řešení. Diplomová práce je rozdělena do kapitol. První kapitola popisuje základní definice NP-těžkých a NP-úplných úloh. Ve druhé kapitole je popsán problém obchodního cestujícího včetně několika způsobů řešení. Třetí kapitola se zabývá rozvozními problémy a metodami jejich řešení. Ve čtvrté kapitole je navržen algoritmus tabu prohledávání pro rozvozní problém s časovými okny. Poslední, pátá kapitola shrnuje numerické výsledky algoritmu tabu prohledávání i běžného postupu pomocí celočíselného programování. 1

8 1. Časová složitost Algoritmus je seznam instrukcí k vyřešení problému. Časovou složitostí algoritmu budeme rozumět počet všech instrukcí z hlediska nejhoršího případu v závislosti na velikosti vstupních dat a vyjadřovat pomocí velké O notace. Formálně: f(x) je O(g(x)), jestliže existuje konstanta c > 0 a přirozené n 0 tak, že pro každé přirozené n n 0 platí f(n) c g(n). Má-li tedy algoritmus časovou složitost O(n 2 ), doba trvání jeho průběhu se zvyšuje kvadraticky v proměnné velikosti vstupu n. Tento způsob odhadu složitosti rozděluje algoritmy na dvě skupiny - polynomiální 1 a nepolynomiální (typicky exponenciální). Rozdíl v rychlosti mezi polynomiálním a exponenciálním algoritmem je zřejmý zejména při úlohách asymptotické velikosti. Zároveň polynomiální algoritmy mnohem lépe využijí případný technologický pokrok. Jasné jsou také matematické výhody tohoto rozdělení. Sečtením, vynásobením i složením dvou polynomů dostaneme opět polynom. Budeme-li tedy rozlišovat algoritmy na dobré a špatné v závislosti na tom, zda mají, či nemají polynomiální složitost, můžeme rovněž klasifikovat problémy jako lehké a těžké podle toho, zda je umíme nebo neumíme vyřešit polynomiálním algoritmem. Výpočetní složitost problému obchodního cestujícího je podrobně popsána v [30]. Odtud jsou také převzaty základní definice této kapitoly. Rozhodovací úlohy jsou úlohy, jejichž výstupem je pouze odpověď na otázku ve smyslu ANO/NE. Každý optimalizační problém lze snadno převést na rozhodovací úlohu, kdy místo hledání optima účelové funkce, se pouze ptáme, jestli existuje řešení splňující nějaké omezení účelové funkce. Pro většinu optimalizačních úloh navíc platí, že pro ně existuje polynomiální algoritmus právě tehdy, když existuje polynomiální algoritmus pro jejich rozhodovací verze. Lze se tak víceméně bez újmy na obecnosti omezit na rozhodovací úlohy. Definice 1. Úloha A je polynomiálně redukovatelná na úlohu B, existuje-li polynomiální algoritmus, který z libovolných vstupních dat a úlohy A vyrobí vstupní data b pro úlohu B takovým způsobem, že odpovědi na otázky spojené s oběma úlohami budou stejné. Zde předpokládáme, že velikost b je také polynomiální funkcí velikosti a. Z vlastnosti skládání polynomů plyne následující věta. Věta 1. Pokud je problém A polynomiálně redukovatelný na problém B a existuje polynomiální algoritmus pro B, pak existuje polynomiální algoritmus pro A. 1.1 Třídy složitosti Definice 2. Třídu P tvoří rozhodovací úlohy řešitelné deterministickými algoritmy v polynomiálním čase (tzn. jejich složitost je O(n k ) pro nějaké k). Definice 3. Třídu NP (nedeterministicky polynomiální) tvoří rozhodovací úlohy řešitelné v polynomiálním čase na nedeterministickém Turingově stroji, tj. na pomyslném počítači, který dokáže v každém kroku rozvětvit výpočet na n větví a v nich poté současně hledat řešení. 1 Mezi polynomiální patří i např. algoritmy složitosti log(n), neboť O(log(n)) O(n). 2

9 Celková odpověď nedeterministického algoritmu je ANO, pokud nějaká z větví odpoví ANO, jinak je odpověď NE. Například TSP je zřejmě z třídy NP. Nedeterministický počítač může začít v libovolném městě a rozvětvit výpočet na tolik větví, kolik vede z města cest, a v každém z dalších měst postupovat stejně s výjimkou již navštívených měst. Jedním z největších otevřených problémů v teoretické informatice je otázka, zda P = NP. Inkluze P NP je zřejmá. Obecně se však předpokládá, že P NP, ale důkaz takového tvrzení dosud nebyl objeven. Protože třída NP obsahuje rozhodovací úlohu TSP, těžko budeme ukazovat, že TSP není řešitelný v polynomiálním čase, pokud nejprve nedokážeme, že P NP. Lze totiž ukázat, že problém P = NP je ekvivalentní problému, zda rozhodovací TSP patří do P. Klíčem k tomu je tzv. NP-úplnost. Definice 4. Řekneme, že optimalizační nebo rozhodovací problém je NP-těžký, jestliže každý problém z NP je na něj polynomiálně redukovatelný. Definice 5. Řekneme, že rozhodovací problém A je NP-úplný, jestliže je NP-těžký a zároveň platí A NP. Důsledkem těchto definic je tvrzení, že pokud rozhodovací verze problému je NP-úplná, pak jeho optimalizační verze je NP-těžká. NP-úplné úlohy jsou v jistém smyslu nejtěžší úlohy z NP. Pokud by existoval polynomiální algoritmus pro libovolný NP-úplný problém, potom by existoval polynomiální algoritmus pro všechny úlohy z NP a bylo by P = NP. I mezi různými NP-těžkými problémy lze ještě poukázat na rozdíl v obtížnosti jejich řešitelnosti. K některým problémům existují i tzv. pseudopolynomiální algoritmy. Definice 6. Řekneme, že algoritmus řešící problém A je pseudopolynomiální, jestliže jeho časová složitost je omezena polynomem proměnných len(i), max(i), kde jsme označili len(i) velikost vstupu instance I v nějakém kódování a max(i) největší číselný parametr v instanci I. Jednoduchým příkladem pseudopolynomiálního algoritmu je testování prvočíselnosti čísla n postupným dělením čísly {2, 3,..., n 2 }. Definice 7. Nechť A je rozhodovací nebo optimalizační problém. Označme A(p) restrikci problému A na instance I takové, že max(i) p(len(i)). Řekneme, že A je silně NP-těžký, jestliže existuje polynom p takový, že A(p) je NP-těžký. A nazveme silně NP-úplný, pokud A NP a existuje polynom p takový, že A(p) je NP-úplný. Pokud A je silně NP-těžký nebo silně NP-úplný problém, pak pokud P NP, neexistuje k A pseudopolynomiální algoritmus. 3

10 VRP Obecný TSP Symetrický TSP TSP splňující trojúhelníkovou nerovnost Symetrický TSP splňující trojúhelníkovou nerovnost Euklidovský TSP Problém hamiltonovské kružnice Obrázek 1.1: Schéma speciálních případů souvisejících s TSP Problém A je speciálním případem problému B, pokud oba řeší stejnou otázku a množina všech možných vstupních dat problému A je podmnožinou všech možných vstupních dat problému B. Zřejmě tak obecnější případ problému nemůže být lehčí než jeho speciální verze. Bylo dokázáno, že samotné nalezení libovolné hamiltonovské kružnice (kružnice, která právě jednou projde všemi vrcholy) v daném neorientovaném (i orientovaném) grafu je NP-úplný problém [35], dokonce silně, jelikož zadání ani neobsahuje numerická data. Také euklidovský TSP je silně NP-těžký problém [46]. A protože se tato vlastnost v diagramu na obrázku 1.1 zachovává směrem vzhůru, jsou všechny úlohy na diagramu rovněž silně NP-těžké. Dokonce rozhodovací verze problémů jsou z třídy NP, a jsou tedy i silně NP-úplné. Jednotlivé typy problému obchodního cestujícího na obrázku 1.1 se odlišují vlastnostmi vzdáleností svých zákazníků. Matematicky budou popsány v další kapitole. 4

11 2. Problém obchodního cestujícího Je dáno n měst a v jednom z nich se nachází obchodní cestující. Potřebuje obejít zbývající města a vrátit se zpět. Přitom pro každou dvojici měst zná náklady na cestu oběma směry a hledá celkovou nejlevnější trasu. Jsou-li každá dvě města vzájemně dosažitelná, přípustným řešením úlohy je libovolná permutace n měst, která představuje posloupnost po sobě navštívených měst. Asi nejjednodušší znění úlohy obchodního cestujícího je tedy následující: Pro danou matici C = (c ij ) n n, reprezentující ceny, nalezněte permutaci π množiny {1, 2,..., n}, která minimalizuje součet c π(n),π(1) + n 1 i=1 c π(i),π(i+1). Je-li například n = 5, očíslujme města 1, 2,..., 5, pak řešení a jsou zřejmě totožná. Snadno si tak představíme, že na výchozím městě v úloze obchodního cestujícího nezáleží a počet všech přípustných řešení TSP je (n 1)!. Jiná formální definice TSP vychází z teorie grafů. Použité definice z teorie grafů jsou shrnuty v příloze A. Nechť G = (V, E) je graf (orientovaný nebo neorientovaný). Označme V = {1, 2,..., n}. Pro každou hranu (i, j) E resp. {i, j} E je dána její cena c ij. Potom úlohou obchodního cestujícího je nalézt hamiltonovskou kružnici v G, jejíž součet cen hran je nejmenší možný. Bez újmy na obecnosti předpokládejme, že G je úplný graf. Chybějící hrany lze jinak dodefinovat jako hrany vysoké ceny. Matici C = (c ij ) n n, kde c ij odpovídá ceně hrany vedoucí z vrcholu i do vrcholu j, nazveme maticí cen (vzdáleností, vah). Diagonální prvky matice C nejsou zajímavé, později je z praktických důvodů definujeme jako nekonečno. Nicméně povaha matice C definuje dvě velké třídy TSP. Je-li C symetrická (tj. G neorientovaný), mluvíme o symetrickém problému obchodního cestujícího (STSP). Pokud C obecně není symetrická (tj. G orientovaný), jde o nesymetrický problém obchodního cestujícího (ATSP). Poznamenejme, že je možné ATSP formulovat jako STSP s dvojnásobným počtem vrcholů [31] M M M 1 2 Obrázek 2.1: Transformace nesymetrického TSP na symetrický Uvažujme ATSP na orientovaném grafu D = (N, A), N = {1, 2,..., n}, C = (c ij ) n n. Sestavme neorientovaný graf G = (V, E ) s množinou vrcholů 5

12 V = N {1, 2,..., n }. Ke každé hraně (i, j) D vytvoříme hranu {i, j } G s cenou c ij. Dále přidáme hrany {i, i } s cenou M pro nějaké velké M. Ostatní hrany mají cenu M. Nyní stačí jen ověřit, že řešení ATSP na D je ekvivalentní řešení STSP na G. Jednoduchý příklad této transformace je znázorněn na obrázku 2.1. Jinou transformaci nesymetrického problému na symetrický s trojnásobným počtem vrcholů navrhl Karp [35]. Splňují-li prvky C trojúhelníkovou nerovnost c ij + c jk c ik, i, j, k, jedná se o metrický TSP. Speciálně je-li c ij přímo euklidovská vzdálenost měst i a j v rovině, jde o euklidovský TSP. 2.1 Formulace pomocí celočíselného programování V následujících formulacích budeme předpokládat orientované hrany grafů i u symetrických problémů. Formulace celočíselného programování TSP zpravidla vychází z tzv. přiřazovacího problému. Definujme n 2 binárních proměnných x ij takových, že x ij = 1, pokud cesta prochází hranou (i, j) neboli městu i je přiřazeno následující město j. Úlohu minimalizovat za podmínek n n c ij x ij (2.1) i=1 j=1 n x ij = 1, j = 1, 2,..., n, (2.2) i=1 n x ij = 1, i = 1, 2,..., n, (2.3) j=1 x ij {0, 1}, i, j = 1, 2,..., n, (2.4) nazýváme přiřazovací problém. Podmínky (2.3), (2.2) zajistí, že každému městu bude přiřazen právě jeden následník a každé město bude přiřazeno právě jednomu předchůdci. V podstatě je přiřazovací problém zvláštní případ známého vyváženého dopravního problému minimalizovat za podmínek n m c ij x ij (2.5) i=1 j=1 n x ij = b j, j = 1, 2,..., m, (2.6) i=1 m x ij = a i, i = 1, 2,..., n, (2.7) j=1 x ij 0, i = 1, 2,..., n, j = 1, 2,..., m. (2.8) ve kterém x ij představují převážený náklad ze skladu i k zákazníkovi j a požadujeme přesné splnění požadavků b j s přesným využitím všech kapacit skladů a i (podmínky (2.6), (2.7) ve tvaru rovnosti). Pokud požadavky b j a kapacity a i nahradíme 1 a položíme n = m neboli mezi n městy přepravujeme jen jednotková množství, dostáváme již přiřazovací problém. Podmínku (2.4) skutečně lze nahradit podmínkou (2.8), a je tedy možné nahlížet na přiřazovací problém jako 6

13 na úlohu lineárního programování (LP). Důvodem, proč vždy existuje celočíselné řešení, je fakt, že matice A ve formulaci LP přiřazovacího problému je totálně unimodulární, tj. determinant každé její čtvercové podmatice je roven 0, 1 nebo 1 a platí následující věta. Věta 2. Nechť matice A je totálně unimodulární a b Z m. Potom konvexní polyedrická množina M = {x R n Ax = b, x 0} má všechny krajní body celočíselné. Důkaz. Nechť A je typu m n. Každý krajní bod z je určen n n regulární submaticí A ve smyslu A z = b, kde hodnoty b odpovídají příslušným hodnotám vektoru b. Označme (A ) i matici, kterou získáme z A nahrazením i-tého sloupce vektorem b. Podle Cramerova pravidla z i = det((a ) i ) det(a ) Z. Protože lineární programování je problém z P (např. metoda vnitřního bodu [34]), přiřazovací problém patří také do třídy P a jsou pro tento problém známy i polynomiální algoritmy, např. maďarská metoda [37]. Přiřazovací problém je důležitou relaxací TSP, ale sám o sobě k formulaci TSP nestačí. Zřejmě je schopen zajistit, že z každého a do každého města vede právě jedna cesta, řešení ale nemusí tvořit jeden cyklus. Mohou tak vzniknout lokální smyčky jako je tomu na pravé straně obrázku Obrázek 2.2: Souvislá trasa vs. dva subcykly na příkladu 5 měst Je tedy nutné přidat další omezení, které zamezí vytváření subcyklů. Tím se bohužel pokazí vlastnosti úlohy Podmínky zamezující vytváření subcyklů Budeme postupně eliminovat subcykly různé délky. Subcyklem délky 1 rozumíme přiřazení města sobě samému a přirozeně definujeme subcykly vyšších délek. K eliminaci subcyklů délky 1 stačí položit x ii = 0, i = 1, 2,... n. Pokud položíme x ii = 0, není nutné tyto proměnné vůbec uvažovat, mírně se tím ale komplikuje matematický zápis úloh. Eliminace těchto subcyklů se obvykle provádí také definováním cen c ii =, i = 1, 2,... n. Podmínka x ij +x ji 1, i, j zřejmě zamezí vzniku subcyklů délky 2. Podobně subcykly délky 3 lze eliminovat podmínkou x ij + x jk + x ki 2, i, j, k a dále lze postupovat analogicky, což dohromady dává x ij S 1, S {1, 2,..., n}; 2 S n 1, (2.9) i S j S 7

14 kde značí mohutnost množiny. Bohužel celkový počet těchto nerovností je téměř 2 n. Sice je možné jejich počet snížit úvahou, že stačí eliminovat subcykly do délky n 2, neboť případná existence delšího subcyklu už implikuje přítomnost subcyklu kratšího, ale stále jich pro rozumný zápis do paměti počítače může být příliš mnoho. Podmínka (2.9), prvně formulovaná v [11], se přesto stala velmi užitečnou. Vhodné nerovnosti lze totiž například iterativně přidávat až v průběhu výpočtu. Později byla objevena jiná formulace podmínek vylučujících subcykly se skutečně polynomiálním počtem nerovností [42]: u i u j + nx ij n 1, i, j = 2, 3,..., n, (2.10) kde u i, i = 2, 3,..., n jsou nově přidané neomezené reálné proměnné. Ukážeme, že tyto podmínky skutečně eliminují subcykly délek 1 až n 1. Předpokládejme, že řešení netvoří hamiltonovský cyklus. Protože z každého a do každého vrcholu vede jen jedna hrana, řešení je tvořeno více cykly. Alespoň jeden cyklus neprochází vrcholem 1, označme jej C, počet hran cyklu C označme E(C). Sečteme-li nerovnosti (2.10) přes všechny hrany cyklu C, dostaneme n E(C) (n 1) E(C), což je spor. Nechť naopak E(C) = {(i, j) x ij = 1} je množina hran hamiltonovského cyklu s vrcholy v pořadí v 1, v 2,..., v n a v 1 = 1. Položme u i = l, je-li i = v l. Pak pro každou hranu (i, j) E(C), i, j 2, platí u i u j = u vl u vl+1 = 1. Tedy u i u j + nx ij = 1 + n n 1. Pro ostatní hrany (i, j) / E(C), pro které i, j 2, nerovnost (2.10) přirozeně platí. Každý hamiltonovský cyklus je tedy přípustný. Přiřazovací problém (2.1) (2.4) spolu s některou z popsaných podmínek je vhodnou formulací problému obchodního cestujícího, přesněji ATSP. V případě STSP je možné formulaci ještě zjednodušit: minimalizovat za podmínek n n c ij x ij (2.11) i=1 j=1 n x ij = 2, j = 1, 2,..., n, (2.12) i=1 x ij {0, 1}, i, j = 1, 2,..., n, (2.13) {(i, j) x ij = 1} neobsahuje subcykly. (2.14) Podmínky (2.12) zajistí každému zákazníkovi j, že bude součástí právě 2 hran výsledné kružnice v grafu. Pro další různé podmínky eliminující subcykly a jiné formulace TSP lze doporučit [50]. 2.2 Přesné metody řešení problému obchodního cestujícího Některé způsoby hledání optimálního řešení TSP jsou založeny na principu větví a mezí (branch and bound). Jeden z nejjednodušších takových algoritmů budeme 8

15 demonstrovat na příkladě. Uvažujme symetrický TSP zadaný grafem na obrázku 2.3, resp. v tabulce 2.1. Primitivní dolní mez, tedy délku trasy, pro kterou můžeme bezpečně tvrdit, že neexistuje řešení kratší, získáme přímo z tabulky 2.1 prostým sečtením řádkových minim: = 13, tj. sečtením minimálních cen, za které je možné opustit každé dané město Obrázek 2.3: TSP zadaný grafem Tabulka 2.1: TSP zadaný tabulkou Nyní rozdělíme výpočet do čtyř větví. V první větvi předpokládáme x 12 = 1, v druhé x 13 = 1, ve třetí x 14 = 1 a konečně ve čtvrté x 15 = 1. Pro každou tuto větev spočteme novou dolní mez za uvedeného předpokladu. 13 x 12 = 1 x 13 = 1 x 14 = 1 x 15 = x23 = 1 x 25 = 1 x 24 = x52 = 1 x 54 = 1 x 53 = x 34 = 1 16 Obrázek 2.4: Průběh výpočtu algoritmu větví a mezí Tedy například ve větvi x 12 = 1 vynecháme z tabulky 2.1 první řádek a druhý sloupec, protože z města 1 do města 2 už vede cesta a přičteme součet řádkových minim k ceně hrany (1, 2): ( ) + 3 = 14. 9

16 Jediný rozdíl při výpočtu nových dolních mezí je, že již by mohl vzniknout subcyklus. Ve větvi x 12 = 1 už nechceme x 21 = 1. Tedy na příslušném místě v tabulce 2.2 je pomlčka Tabulka 2.2: Zadaný TSP za předpokladu x 12 = 1 Pro každou větev dostaneme postupně nové dolní meze 14, 18, 17, 14. Například ve větvi předpokládající x 13 = 1 nelze nalézt řešení s lepší hodnotou než 18. Dále algoritmus pokračuje rozvětvením tam, kde je nejmenší dolní mez. Tedy například k předpokladu x 12 = 1 se postupně přidávají x 23 = 1, x 24 = 1, x 25 = 1. Aby opět nevznikaly subcykly, tak např. ve větvi x 12 = 1, x 23 = 1 požadujeme x 31 = 0. Tedy opět na příslušném místě v tabulce 2.3, vzniklé z 2.2 vynecháním sloupce 3 a řádku 2, je pomlčka Tabulka 2.3: Zadaný TSP za předpokladu x 12 = x 23 = 1 Po těchto krocích zůstává nejlepší dolní mez 14 v pravé části diagramu na obrázku 2.4, proto algoritmus dále pokračuje ve výpočtu v této větvi. Protože necyklická trojice hran již jednoznačně určuje řešení problému s pěti vrcholy, na třetí úrovni větvení už dostáváme přípustná řešení problému a s nimi i horní meze (optimální řešení nemůže být horší). Ve větvi x 12 = x 23 = 1 algoritmus nalézá řešení s délkou trasy 16. V tuto chvíli přestává prohledávat všechny větve (uzly), pro které dolní mez je větší nebo rovna 16, tzn. v našem případě se algoritmus zastaví. Algoritmy založené na principu větvení a mezí se mohou lišit způsobem výpočtu dolní meze (nejčastěji lineární relaxace, přiřazovací problém), způsobem větvení (např. binárně x 12 = 0, x 12 = 1), ale i způsobem výběru dalších uzlů k prozkoumání. Jejich nevýhodou mohou být slabé dolní meze, kvůli kterým je pak nelze použít k řešení větších problémů. V této práci měl příklad hlavně ilustrovat exponenciální složitost exaktních algoritmů. Obecně bývají mnohem rychlejší algoritmy založeny na principu větvení a řezů (branch and cut), což kombinuje metodu větvení a mezí s metodou sečné nadroviny (cutting plane method), podrobný přehled v [43]. Toto schéma využívá i jeden z nejrychlejších současných exaktních algoritmů pro symetrický problém obchodního cestujícího Concorde [2], který například v roce 2006 dokázal vyřešit problém o velikosti měst. 10

17 Z hlediska nejhoršího případu dosud nejlepší známý exaktní algoritmus pro libovolný TSP funguje na principu dynamického programování a má složitost O(n 2 2 n ) [24]. 2.3 Heuristiky pro problém obchodního cestujícího Jiná možnost, jak přistupovat k řešení složitých problémů, je nehledat přesně optimální řešení, ale spokojit se pouze s nějakým kvalitním řešením, které lze hledat v polynomiálním čase. K tomuto účelu slouží různé heuristiky. Klasické heuristiky lze obecně rozdělit na dvě skupiny. Konstrukční heuristiky, sloužící k nalezení nějakého přípustného řešení, a zlepšovací heuristiky, které se používají k vylepšování nalezeného řešení. Pokud algoritmus dokonce zaručuje, že délka nalezené trasy nepřekročí určitý násobek optima, mluvíme o aproximačním algoritmu Metoda nejbližšího souseda Vůbec nejjednodušší konstrukční heuristikou je metoda nejbližšího souseda. Algoritmus startuje v jednom z vrcholů a postupně tvoří posloupnost vrcholů tak, aby vždy následující vrchol měl nejmenší vzdálenost od předešlého. Přitom každý vrchol musí být použit právě jednou. Protože řešení závisí na volbě startovního vrcholu, lze tuto proceduru provést pro každý vrchol v grafu a vybrat nejlepší řešení. Kvalita výsledného řešení se bohužel zhoršuje s rostoucí velikostí problému. Na druhou stranu jedinou podmínkou pro použití je úplnost zadaného grafu Christofidova metoda Mnohem zajímavější konstrukční heuristikou je tzv. Christofidova metoda pro symetrický TSP [26]. Konstrukce trasy probíhá v několika krocích. Nechť symetrický problém obchodního cestujícího je určen úplným grafem G = (V, E). Nalezneme minimální kostru T grafu G. Označme C množinu vrcholů lichého stupně v T. Z věty A.12 víme, že C je sudé, tedy podgraf v G příslušící vrcholům z C obsahuje perfektní párování. Spočteme minimální perfektní párování M a přidáme ho ke kostře T. Některé hrany se mohou zduplikovat a tím mírně i porušit definici grafu. V T M pak mají všechny vrcholy sudý stupeň a můžeme nalézt Eulerův cyklus R. Odstraněním opakujících se vrcholů v R dostaneme řešení Obrázek 2.5: Minimální kostra grafu TSP 11

18 Lépe je opět postup vidět na příkladě. Mějme symetrický TSP popsán grafem vlevo na obrázku 2.5. Vpravo je pak jeho zřejmá minimální kostra. Vrcholy 5, 1, 4, 3 mají lichý stupeň, hledáme tedy minimální perfektní párování. Jsou tři možnosti: {{1, 3}, {4, 5}}, {{1, 4}, {3, 5}} a {{1, 5}, {3, 4}}, přičemž poslední možnost je minimální s hodnotou 8. Tyto hrany můžeme zakreslit do grafu minimální kostry a získat tím Eulerův cyklus po vrcholech postupně 1, 2, 3, 4, 1, 5, Obrázek 2.6: Eulerův cyklus Zbývá vybrat Hamiltonův cyklus vynecháním některých vrcholů. V tomto případě jsou možnosti dvě: , První možnost je dokonce i jedno z optimálních řešení. Hledání minimální kostry i minimálního perfektního párování lze provádět v polynomiálním čase. Nalezení optima v poslední fázi algoritmu je již NP-těžký problém [47]. I přesto ale Christofidův algoritmus zaručuje jistý nejhorší možný výsledek. Jestliže je graf G úplný a vzdálenosti c ij jsou nezáporné a splňují trojúhelníkovou nerovnost, pak lze ukázat, že celková délka libovolného řešení nalezeného heuristikou nepřekročí 1.5 násobek optima [26] Algoritmus k-opt Algoritmus k-opt patří do třídy zlepšovacích heuristik. Vstupem do algoritmu je spolu s problémem i nějaké řešení, které se následně snažíme zlepšit sérií dalších úprav. Krok 2-opt [9] jednoduše odebere z řešení nějaké dvě hrany, které nemají společný vrchol, a vzniklé dvě cesty opět spojí do nového cyklu. Takto definuje množinu sousedních řešení, tj. řešení, která lze získat krokem 2-opt. Od nejlepšího sousedního řešení pokračuje stejným způsobem až do chvíle, kdy žádný krok typu 2-opt nenalezne zlepšení. Algoritmus 3-opt pracuje podobně, namísto dvou hran odstraňuje tři. Drobný rozdíl je v opětovném propojení, neboť zde již existuje více způsobů propojení do nového cyklu. Algoritmus je možné zobecnit i pro k > 3, nicméně s rostoucím k roste také náročnost výpočtu a naopak efekt zlepšení 12

19 vzhledem ke k 1 se zmenšuje 1. Nejlepší algoritmy tohoto typu mají proměnlivé k podle toho, které k přinese největší zlepšení. Algoritmus opět předpokládá symetrický problém, protože výměny hran mohou způsobit změnu směru průchodu mezi některými městy Obrázek 2.7: Krok 2-opt 1 2 Obrázek 2.8: Krok 3-opt Jedno z nejstarších tvrzení o problému obchodního cestujícího říká, že v optimálním řešení euklidovského TSP se nemohou hrany křížit, např. proto, že 2-opt krok na křížící se hrany by určitě vytvořil lepší řešení (viz obrázek 2.7). Krok typu 3-opt je znázorněn na obrázku 2.8. Zde zmíněné algoritmy patří k těm nejpopulárnějším, samozřejmě ale existuje celá řada dalších heuristik pro STSP i ATSP. Speciální třídu heuristických algoritmů tvoří tzv. metaheuristiky (např. simulované žíhání, genetické algoritmy, tabu prohledávání, mravenčí kolonie aj.), které jsou schopné při prohledávání nalézt cestu i z lokálního minima. Podrobný přehled heuristických algoritmů pro TSP včetně analýzy chování nabízí [28, 29]. 2.4 Další problémy související s problémem obchodního cestujícího Podle potřeby se k problému obchodního cestujícího přidávají další podmínky, popřípadě se problém ještě více zobecňuje. Tím vznikají nové problémy, které je třeba řešit. Některé nejčastější varianty zobecnění TSP uvedeme při zavedeném značení i zde Časově závislý problém obchodního cestujícího Pro každou hranu (i, j) E grafu G = (V, E) jsou známy ceny c t ij, t = 1, 2,..., n, které představují náklady na cestu z i do j v závislosti na pořadí t. Počáteční, a tedy i koncové město je 1. Úkolem časově závislého problému obchodního cestujícího je opět nalézt okružní cestu přes všechna města, pro níž jsou náklady v popsané struktuře minimální. Podrobněji se o tomto problému lze dočíst v [48]. 1 S výjimkou 5-opt kroku, který dle [27] nabízí v tomto smyslu z kombinatorického hlediska více možností. 13

20 2.4.2 Problém obchodního cestujícího s časovými okny Pro každou hranu (i, j) E grafu G = (V, E) jsou kromě cen c ij dány také doby přesunu t ij. Dále je pak pro každý vrchol i dán interval [a i, b i ], 0 a i b i, který představuje časové okno, ve kterém má být obsloužen zákazník ve vrcholu i. Bez újmy na obecnosti předpokládáme, že doba obsluhy s i je již zahrnuta v t ij, tedy s i = 0 pro každé i. Pokud cestující dorazí do i dříve, než mu povoluje příslušné časové okno [a i, b i ], musí čekat do času a i. Také zde cestující vyráží a navrací se vrcholu 1, zvaného depo. Označíme-li proměnnou T i okamžik začátku obsluhy zákazníka i, formulace problému obchodního cestujícího s časovými okny (traveling salesman problem with time windows, TSPTW) je vzhledem k již popsanému TSP poměrně jasná: minimalizovat za podmínek n n c ij x ij (2.15) i=1 j=1 n x ij = 1, j = 1, 2,..., n, (2.16) i=1 n x ij = 1, i = 1, 2,..., n, (2.17) j=1 a i T i b i, i = 2, 3,..., n, (2.18) t 1j T j M(1 x 1j ), j = 2, 3,..., n, (2.19) T i + t ij T j M(1 x ij ), i, j = 2, 3,..., n, (2.20) x ij {0, 1}, i, j = 1, 2,..., n. (2.21) Podmínka eliminace subcyklů je tu nahrazena podmínkami (2.19) a (2.20). Poznamenejme, že místo vysoké kladné konstanty M lze psát M ij = max{b i + t ij a j, 0}. i,j Potom, je-li b i + t ij a j, jsou omezení (2.19) a (2.20) splněna vždy a stačí je použít jen pro taková i, j, pro která M ij > 0. Protože výchozí vrchol obvykle představuje nějakou vozovnu či sklad, odkud vozidla vyráží obsluhovat zákazníky, setkáváme se v literatuře s trochu jinou formulací tohoto problému. Nechť V = {0, 1, 2,..., n, n + 1}. Zákazníci jsou ve vrcholech 1, 2,..., n. Vrchol se skladem je duplicitně 0 i n + 1, přičemž 0 je výchozí bod a n + 1 konečný. Každému vrcholu i V přísluší časové okno [a i, b i ], kde a 0 je počáteční čas výjezdu a b n+1 nejpozdější možný čas návratu a opět klademe M ij = max{b i + t ij a j, 0}. i,j Pak lze problém obchodního cestujícího s časovými okny formulovat následovně [16]: minimalizovat za podmínek n+1 n+1 i=0 j=0 n+1 j=1 c ij x ij (2.22) x ij = 1, i = 1, 2,..., n, (2.23) 14

21 n x 0,j = 1, (2.24) j=1 n n+1 x ij x ji = 0, j = 1, 2,..., n, (2.25) i=0 i=1 n x i,n+1 = 1, (2.26) i=1 a i T i b i, i = 0, 1,..., n + 1, (2.27) T i + t ij T j M ij (1 x ij ), i, j; M ij > 0, (2.28) x ij {0, 1}, i, j = 0, 1,..., n, n + 1. (2.29) Podmínky (2.23) (2.26) určují cestu v grafu z 0 do n + 1 přes všechny vrcholy 1, 2,..., n. Z binárních proměnných (2.29) lze vynechat x 0,n+1, jelikož s výjimkou účelové funkce není ve formulaci nikde použita. Existují i verze s tzv. měkkými časovými okny, které je možné za cenu určité penalizace porušit Úloha s více obchodními cestujícími Jiným druhem zobecnění TSP je úloha s více obchodními cestujícími (multiple TSP, m-tsp), ve které uvažujeme m obchodních cestujících (vozidel) a jedno společné depo pro všechny. Obecně předpokládáme, že každé vozidlo musí opustit depo a každý zákazník musí být navštíven právě jedním vozidlem. Cílem je samozřejmě minimalizovat celkovou ujetou vzdálenost vozidel. Na rozdíl od rozvozních problémů se v m-tsp nekladou jednotlivým vozidlům žádné podmínky na kapacitu. Typicky tedy problém může najít uplatnění ve firmách poskytujících různé servisní služby. Problém m-tsp lze také snadno formulovat přímo jako TSP. Nicméně specializované algoritmy budou při řešení m-tsp určitě lepší volbou. Nechť C = (c ij) n n je matice vzdáleností n zákazníků a r je n-složkový vektor, kde r i udává vzdálenost i-tého zákazníka od depa. Potom řešení problému TSP s maticí vzdáleností C r r r r C = r r typu (n+m) (n+m) udává řešení m-tsp [56]. Posledních m sloupců a m řádků matice C náleží všechny depu, do kterého se cestující dohromady m-krát vrací Rozvozní problém Rozvozní problém vznikne z m-tsp, pokud každému zákazníkovi přísluší ještě nějaká poptávka po zboží, zároveň rozvážející vozidla mají omezenou (ne nutně stejnou) kapacitu. Součet poptávek na trase vozidla nesmí překročit jeho kapacitu. Optimalizovat se zde nemusí jen ujetá vzdálenost, ale často i počet použitých vozidel. Podrobněji se budeme věnovat rozvoznímu problému a především verzi s časovými okny v následující kapitole. 15

22 3. Rozvozní problém Rozvozní problém (popř. problém okružních jízd), v literatuře známý častěji pod zkratkou VRP (vehicle routing problem), dostaneme v situaci, kdy je k obsluze zákazníků k dispozici více než jedno vozidlo. Aby se zároveň nejednalo jen o zvláštní případ TSP, přidávají se navíc další omezení. Nejčastěji to bývá kapacita vozidla, ale je možné uvažovat i další omezení, např. maximální ujetou vzdálenost vozidla nebo maximální počet zákazníků, které může dané vozidlo obsloužit. Obecně se za zkratkou VRP skrývá celá třída problémů. Praktické problémy totiž přináší mnoho dalších omezení. Podrobnější přehled problémů VRP nabízí [58], nejdůležitější a nejčastější druhy podmínek popíšeme i zde. Široké aplikace problémy mají samozřejmě v dopravě a distribuci zboží, běžnými příklady mohou být rozvoz novin, nápojů a potravin nebo sběr odpadu (viz např. [21]). 3.1 Obecně o rozvozních problémech Struktura problémů VRP se opět většinou definuje pomocí orientovaného či neorientovaného grafu, jehož vrcholy představují umístění zákazníků a dep s vozidly a hrany cesty mezi dvojicemi vrcholů. Ke každé hraně je přiřazena cena, která obecně představuje vzdálenost. Rovněž bývá hranám přiřazen také čas potřebný k přesunu, který může záviset např. na typu vozidla. Vzhledem k běžnému předpokladu lineárního vztahu mezi těmito veličinami a předpokladu stejného typu vozidel stačí často uvažovat (vhodnou volbou jednotek) pouze jednu cenu hrany. Jednotliví zákazníci bývají nebo mohou být charakterizováni následující sadou vlastností: vrchol, ve kterém jsou umístěni, množství zboží (poptávaného či naopak odevzdávaného), povoleny jsou i různé druhy zboží, časové okno, ve kterém z jakýchkoli důvodů musí být zákazník obsloužen, čas potřebný k obsloužení zákazníka, může záviset i na typu vozidla, podmnožina vozidel, které je možné použít k obsluze klienta. Občas ani nemusí být možné splnit požadavky všech zákazníků, v takovém případě je pak třeba vhodně nastavit priority či penalizace za případná nesplnění. Jednotlivé trasy začínají a končí v nějakém depu. Každé depo charakterizují počty různých typů vozidel. V reálných aplikacích zákazníci často náleží jednomu danému depu, které se nachází v jejich blízkosti, a problém pak lze rozdělit na několik menších nezávislých problémů. Vozy se od sebe mohou lišit vlastnostmi: výchozí depo a depa, ve kterých je možné zakončit trasu, kapacita vozu - maximální hmotnost, objem či počet kusů, které vůz uveze, typy zboží, které může vůz převážet, podmnožina hran, po kterých je vůz schopen jet, 16

23 náklady spojené s provozem vozidla. Úloha si může rovněž klást různé cíle: minimalizace nákladů, minimalizace počtu použitých vozidel, vyvážení tras, minimalizace penalizací spojených s nesplněním požadavků, různé kombinace uvedených cílů. Další podmínky mohou být kladeny i na řidiče (pracovní doba, povinné přestávky apod.), případně může být pro daného zákazníka nutné navštívit dřív jiné zákazníky stejným vozidlem. A nebylo by obtížné nalézt nebo i vymyslet další různé verze VRP a podmínky, které musí splňovat. V praktických aplikacích bývá často i tolik omezení, že žádné přípustné řešení ani neexistuje. Bohužel ale i ty nejjednodušší varianty VRP bývají výpočetně velmi náročné. 3.2 Kapacitně omezený rozvozní problém Základní případ problému, ve kterém z možných podmínek uvažujeme pouze omezení na kapacitu vozidel, nazýváme kapacitně omezený rozvozní problém a značíme zkratkou CVRP (capacitated VRP). Poprvé jej navrhli Dantzig a Ramsey koncem 50. let minulého století ve svém článku [12]. Problém se stal velmi populárním díky širokým praktickým aplikacím, obtížné řešitelnosti a také proto, že přirozeně zobecňuje TSP. Poptávku po jednom druhu zboží známe od každého zákazníka předem, všechna vozidla jsou stejná (mají stejnou kapacitu) a jsou umístěna v jediné vozovně. Úkolem je obsloužit všechny zákazníky a přitom minimalizovat náklady. Zároveň každý zákazník musí být navštíven právě jednou (tzn. dodávku není možné rozdělit). Pokusme se nyní CVRP matematicky formulovat. Nechť je opět G = (V, E) úplný graf, kde V = {0, 1,..., n}, přičemž vrcholy 1, 2,..., n náleží zákazníkům a 0 výchozímu depu, c ij je cena hrany (i, j) E a c ii =, i V. V mnoha případech matice cen (c ij ) splňuje trojúhelníkovou nerovnost c ik + c kj c ij, i, j, k V, (3.1) což také bývá častý předpoklad pro různé algoritmy. Splnění (3.1) lze jednoduše docílit také přičtením vysokého čísla M > 0 k ceně každé hrany grafu, nicméně případná nějaká dolní či horní mez původního problému se může touto změnou značně zhoršit. Podobně jako u TSP můžeme s ohledem na vlastnosti matice (c ij ) rozlišovat mezi nesymetrickou, symetrickou nebo přímo euklidovskou verzí problému CVRP. U každého klienta i {1, 2,..., n} je známa poptávka d i 0. Pro depo případně definujeme d 0 = 0. Dále je dán počet vozidel K, z nichž každé má stejnou kapacitu Q > d i, i V. Označme K min minimální počet vozidel, kterými je možné obsloužit všechny zákazníky. Pro existenci nějakého řešení je tedy nutné předpokládat K K min. Hodnotu K min lze pro malé úlohy získat postupným 17

24 zkoušením nebo přímo vyřešením tzv. bin packing problému (BPP) odpovídajícího daným poptávkám a kapacitě vozidel. Potom tedy K min je v úplném grafu rovno optimální hodnotě úlohy n minimalizovat y i (3.2) za podmínek i=1 n j=1 n i=1 d j x ij Qy i, i = 1, 2,..., n, (3.3) x ij = 1, j = 1, 2,..., n, (3.4) y i {0, 1}, i = 1, 2,..., n, (3.5) x ij {0, 1}, i, j = 1, 2,..., n, (3.6) kde x ij = 1, pokud j-tý klient náleží vozidlu i, a y i = 1, pokud i-té vozidlo je použito. Podmínky (3.3) zajistí, že součet všech poptávek libovolně seřazených zákazníků na trase i-tého vozidla nepřekročí jeho kapacitu, dle (3.4) je každý zákazník součástí nějaké trasy. BPP je ale stále ještě silně NP-těžký problém (viz [18]). Ve své základní verzi hledá CVRP přesně K okruhů (tras příslušejících každému z K vozidel). Pokud je K > K min, lze některé vozy teoreticky ponechat nevyužity. Ve formulaci, která povoluje nevyužití všech vozů, se pak ale běžně ještě definují náklady na užití vozidla a přidávají se do účelové funkce. Z důvodu omezené kapacity vozidel totiž může nejkratší řešení zároveň potřebovat více vozidel než K min i v případě, že matice vzdáleností splňuje trojúhelníkovou nerovnost. Příklad je na obrázku 3.1, kde zákazníci ve vrcholech 2,4 požadují 3 jednotky zboží, ostatní požadují 2. Vozidla mají kapacitu 6. Zřejmě existuje řešení využívající pouze dvě vozidla , s celkovými náklady 45, ale nejkratší přípustné řešení je s celkovými náklady , , Obrázek 3.1: Ukázka grafu symetrického CVRP 18

25 CVRP vlastně spojuje dva NP-těžké problémy, což jej činí obzvlášť obtížným: TSP - v případě neomezené kapacity vozidel Q = dostáváme m-tsp, který lze formulovat jako TSP, BPP - otázka, zda existuje přípustné řešení je problém typu BPP, rozhodovací verze BPP je tak principiálně ekvivalentní rozhodovacímu CVRP s c ij = 0, i, j V. Nesymetrickou verzi CVRP lze formulovat jako úlohu smíšeného celočíselného programování minimalizovat za podmínek n n c ij x ij (3.7) i=0 j=0 n x ij = 1, j = 1, 2,..., n, (3.8) i=0 n x ij = 1, i = 1, 2,..., n, (3.9) j=0 n x i0 = K, (3.10) i=1 n x 0j = K, (3.11) j=1 u i u j + d j Q(1 x ij ), i, j = 1, 2,..., n, (3.12) d i u i Q, i = 1, 2,..., n, (3.13) x ij {0, 1}, i, j = 0, 1,..., n. (3.14) Omezení (3.12) je obdobou podmínek k eliminaci subcyklů (2.10) navržených pro TSP [42]. Zde kromě eliminace subcyklů také spolu s (3.13) zamezuje vzniku tras s celkovou poptávkou převyšující Q. Je-li totiž x ij = 1, pak u j u i + d j, naopak pokud x ij = 0, podmínka (3.12) je díky (3.13) splněna automaticky. Proměnná u j tak představuje horní odhad aktuálně převezeného nákladu na trase po navštívení zákazníka j. Podmínky (3.8) a (3.9) zajistí, že do každého vrcholu vstupuje, resp. jej opouští právě jedna trasa a podmínky (3.11) a (3.10) zaručí, že z depa vyjede a navrátí se přesně K vozů. Odkázat se s touto formulací můžeme na původní článek [15] nebo [33]. Kromě proměnných x ii = 0 se ještě běžně nevyužívají (pokládají rovny 0) proměnné x ij, pro které platí d i + d j > Q. Pokud nechceme nutně využít všechna vozidla, stačí nahradit (3.10), (3.11) podmínkami n x i0 K, (3.15) i=1 n n x 0j = x i0. (3.16) j=1 i=1 Problém pak bude minimalizovat čistě jen ujetou vzdálenost (tzn. počet vozidel má v účelové funkci nulovou váhu). Jiné formulace místo podmínek (3.12) a (3.13) uvažují nerovnosti x ij r(s), S V \{0}; S, (3.17) i/ S j S 19

26 kde r(s) značí minimální počet vozidel potřebný k obsloužení všech zákazníků z množiny S, přičemž r(s) stačí nahradit jednoduchou dolní mezí n i=1 d i / Q. Počet těchto nerovností ale exponenciálně roste s n. Tuto a mnoho jiných základních formulací CVRP lze dohledat v již zmiňovaném příspěvku [58]. Z tohoto zdroje uvedeme ještě jeden pěkný model CVRP. Zaveďme binární proměnnou x ijk, která představuje počet, kolikrát vozidlo k použilo hranu (i, j). Dále definujme y ik = 1, pokud zákazník i je obsloužen vozem k, a y ik = 0 jinak. Potom lze CVRP popsat úlohou minimalizovat za podmínek n n K c ij x ijk (3.18) i=0 j=0 k=1 K y ik = 1, i = 1, 2,..., n, (3.19) k=1 K y 0k = K, (3.20) k=1 n n x ijk = x jik = y ik, i = 0, 1,..., n, k = 1, 2,..., K, (3.21) j=0 j=0 u ik u jk + d j Q(1 x ijk ), i, j = 1, 2,..., n, k = 1, 2,..., K, (3.22) d i u ik Q, i = 1, 2,..., n, k = 1, 2,..., K, (3.23) y ik {0, 1}, i = 0, 1,..., n, k = 1, 2,..., K, (3.24) x ijk {0, 1}, i, j = 0, 1,..., n, k = 1, 2,..., K. (3.25) Podmínky (3.19) (3.21) zajistí, že každý klient je navštíven právě jednou, K vozů opouští depo a k daného zákazníkovi přijede a odjede od něj tentýž vůz. Model nalezne využití především u komplexnějších variant rozvozních problémů, kdy přípustnost či cena trasy nezávisí pouze na využitých hranách trasy. V případě různých vozidel například stačí jen přidat index k ke kapacitě Q nebo k ceně c ij Clarkova-Wrightova heuristika Clarkova-Wrightova heuristika [5] bývá prezentována také pod názvem savings, neboť v principu se snaží propojovat města i, j, jejichž spojením se ušetří nejvíce nákladů, než kdyby města i, j byla součástí rozdílných tras. j j i i 0 0 Obrázek 3.2: Princip metody savings 20

27 Pokud i je poslední město jedné trasy a j první město jiné trasy, ušetřené náklady s ij jsou definovány rozdílem (c 0i + c 0j + c i0 + c j0 ) (c 0i + c ij + c j0 ), tedy s ij = c i0 + c 0j c ij. Takto se z matice (c ij ) n i,j=0 vypočtou prvky s ij, i, j 1, i j, které na začátku algoritmus sestupně seřadí a za počáteční řešení zvolí řešení s každým zákazníkem ve vlastní trase. Dále postupuje od nejvyšších s ij, a je-li to možné (nová trasa dává smysl a celková poptávka nepřekročí kapacitu), trasy propojí hranou (i, j). Spojení měst i, j se obecně vyplatí, jen je-li s ij kladné. Pokud ale chceme minimalizovat počet vozidel, můžeme povolit i spojení s s ij < 0. Podle zvolené strategie lze ještě u Clarkovy-Wrightovy heuristiky rozlišovat mezi paralelní a sekvenční verzí. V sekvenční verzi je postupně budována vždy jen jedna trasa (v každém kroku jsou nejprve uvažovány pouze hrany, které lze připojit k poslední vylepšené trase), zatímco v paralelní se trasy spojují libovolně. Pokračujme v příkladu z obrázku 3.1. Vypočteme z matice vzdáleností C matici úspor S C S Nechť je ale nyní Q = 7. Paralelní verze spojí města 1, 2 a 3, 4, obojí s nejvyšší úsporou 9. Dále jakýmkoli způsobem k jedné z tras připojí město 5, všechny možnosti totiž ušetří 1 jednotku nákladů. Oproti tomu sekvenční verze nejprve spojí např. 1, 2 s nejvyšší úsporou a k této trase hned připojí další město s nejvyšší úsporou. V našem případě vybere jednu z možností s úsporou 1. Pokud v tomto kroku vytvoří trasu obsahující 3, již určitě neskončí u optimálního řešení, neboť z důvodu omezené kapacity přichází o možnost využití výhodné hrany (3,4). Paralelní přístup je tedy v tomto případě asi lepší volbou. Ke Clarkově-Wrightově heuristice bylo publikováno mnoho způsobů, jak zlepšit efektivitu algoritmu [1], [25], [59] aj. Zajímavou modifikací je například podobně jako v [1] definování ušetřených nákladů s ij = t(s i ) + t(s j ) t(s i S j ), kde S k značí množinu vrcholů trasy k a t(s k ) je délka optimálního (suboptimálního, pokud je hledáno čistě heuristicky) řešení TSP přes S k. Za jiné zobecnění lze považovat Moleovu-Jamesonovu sekvenční heuristiku 21

28 [41], kde je na budovanou trasu umístěn zákazník k mezi vrcholy i a j podle kritéria minimálního α(i, k, j) = c ik + c kj λc ij, popřípadě maximálního β(i, k, j) = µc 0k α(i, k, j), kde λ, µ jsou uživatelsky volitelné parametry. Po každém vložení nového zákazníka lze ještě pozměněnou trasu optimalizovat pomocí 3-opt kroků. Obsáhlý popis dalších klasických heuristik pro CVRP (konstrukčních, dvoufázových zahrnujících shlukování, ořezané metody větví a mezí - truncated branch and bound) nalezneme v [38]. Dvoufázové heuristiky obsahují dvě části, shlukování zákazníků a plánování tras. Typickým příkladem je heuristika nazvaná sweep, která nejprve rozdělí zákazníky na skupiny a potom v rámci skupin naplánuje trasy. Lze ji aplikovat na CVRP se zákazníky rozmístěnými v rovině. Algoritmus si nejprve vybere libovolného zákazníka a k němu do skupiny přiřazuje další, kterým například nejméně vzroste úhel v polárním systému souřadnic, samozřejmě dokud je možné obsloužit zákazníky jedním vozem. Ve druhé fázi pro každou skupinu zvlášť řeší problém obchodního cestujícího. Historie vývoje klasických heuristických algoritmů je jistě velice zajímavá, nicméně dnes již podobné algoritmy většinou naleznou nějaké přípustné řešení v minimálním čase a málokdy tak dokáží naplno využít možnosti dnešní výpočetní techniky. Proto se v posledních letech vývoj heuristických algoritmů ubírá směrem k metaheuristikám, které začínají právě tam, kde nějaká jiná jednoduchá heuristika skončila. Výchozí řešení jako takové samozřejmě má vliv na další průběh algoritmu, jeho kvalita by ovšem na kvalitu nejlepšího výsledku metaheuristiky téměř neměla mít vliv. V této práci se budeme zabývat tabu prohledáváním v rámci problému VRP s časovými okny. Protože VRP s časovými okny přímo zobecňuje CVRP, nebude problém algoritmus změnami parametrů přizpůsobit potřebám CVRP. 3.3 Rozvozní problém s časovými okny Rozvozní problém s časovými okny (VRPTW - vehicle routing problem with time windows) je přímým zobecněním CVRP. Nově obsluha zákazníka i musí začít v daném časovém intervalu [a i, b i ], b i a i 0. Vozidlům je povolen příjezd před okamžikem a i, pak ale musí čekat, až bude klient k dispozici. Příjezdy později než v čase b i povoleny nejsou. Protože porušení časových oken není povoleno, jedná se o problém s tzv. tvrdými časovými okny. Měkká časová okna porušení povolují obvykle za cenu penalizace v účelové funkci. V praktických situacích se omezení na časová okna přirozeně objevují. Často mohou být zákazníci obslouženi jen v určitých časových intervalech jako např. provozní doba, doba před otevřením obchodu apod. Proto je VRPTW důležitý optimalizační problém. VRPTW přejde v CVRP, když a i = 0 a b i =, i V. Odtud je opět jasná NP-obtížnost problému. Odpověď na otázku, zda vůbec existuje přípustné řešení problému VRPTW (TSPTW) je samo o sobě silně NP-úplný problém [51]. 22

Ú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

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

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

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

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

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

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

13. Lineární programování

13. Lineární programování Jan Schmidt 2011 Katedra číslicového návrhu Fakulta informačních technologií České vysoké učení technické v Praze Zimní semestr 2011/12 MI-PAA EVROPSKÝ SOCIÁLNÍ FOND PRAHA & EU: INVESTUJENE DO VAŠÍ BUDOUCNOSTI

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

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 Lineární rovnice o 2 neznámých Definice 011 Lineární rovnice o dvou neznámých x, y je rovnice, která může být vyjádřena ve tvaru ax + by = c, kde

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

Greenova funkce pro dvoubodové okrajové úlohy pro obyčejné diferenciální rovnice

Greenova funkce pro dvoubodové okrajové úlohy pro obyčejné diferenciální rovnice Greenova funkce pro dvoubodové okrajové úlohy pro obyčejné diferenciální rovnice Jan Tomeček Tento stručný text si klade za cíl co nejrychlejší uvedení do teorie Greenových funkcí pro obyčejné diferenciální

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

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

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic Přednáška třetí (a pravděpodobně i čtvrtá) aneb Úvod do lineární algebry Matice a soustavy rovnic Lineární rovnice o 2 neznámých Lineární rovnice o 2 neznámých Lineární rovnice o dvou neznámých x, y je

Více

Třídy složitosti P a NP, NP-úplnost

Třídy složitosti P a NP, NP-úplnost Třídy složitosti P a NP, NP-úplnost Cíle přednášky: 1. Definovat, za jakých okolností můžeme problém považovat za efektivně algoritmicky řešitelný. 2. Charakterizovat určitou skupinu úloh, pro které není

Více

Lineární programování

Lineární programování Lineární programování Petr Tichý 19. prosince 2012 1 Outline 1 Lineární programování 2 Optimalita a dualita 3 Geometrie úlohy 4 Simplexová metoda 2 Lineární programování Lineární program (1) min f(x) za

Více

Výpočetní složitost algoritmů

Výpočetní složitost algoritmů Výpočetní složitost algoritmů Slajdy pro výuku na KS Ondřej Čepek Sylabus 1. Definice časové a prostorové složitosti algoritmů. Příklady na konkrétních algoritmech. Prostředky pro popis výpočetní složitosti

Více

Kolik existuje různých stromů na pevně dané n-prvkové množině vrcholů?

Kolik existuje různých stromů na pevně dané n-prvkové množině vrcholů? Kapitola 9 Matice a počet koster Graf (orientovaný i neorientovaný) lze popsat maticí, a to hned několika různými způsoby. Tématem této kapitoly jsou incidenční matice orientovaných grafů a souvislosti

Více

3. Třídy P a NP. Model výpočtu: Turingův stroj Rozhodovací problémy: třídy P a NP Optimalizační problémy: třídy PO a NPO MI-PAA

3. Třídy P a NP. Model výpočtu: Turingův stroj Rozhodovací problémy: třídy P a NP Optimalizační problémy: třídy PO a NPO MI-PAA Jan Schmidt 2011 Katedra číslicového návrhu Fakulta informačních technologií České vysoké učení technické v Praze Zimní semestr 2011/12 MI-PAA EVROPSKÝ SOCIÁLNÍ FOND PRAHA & EU: INVESTUJENE DO VAŠÍ BUDOUCNOSTI

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

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

1 Linearní prostory nad komplexními čísly

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

Více

(Cramerovo pravidlo, determinanty, inverzní matice)

(Cramerovo pravidlo, determinanty, inverzní matice) KMA/MAT1 Přednáška a cvičení, Lineární algebra 2 Řešení soustav lineárních rovnic se čtvercovou maticí soustavy (Cramerovo pravidlo, determinanty, inverzní matice) 16 a 21 října 2014 V dnešní přednášce

Více

FIT ČVUT MI-LOM Lineární optimalizace a metody. Dualita. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

FIT ČVUT MI-LOM Lineární optimalizace a metody. Dualita. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti FIT ČVUT MI-LOM Lineární optimalizace a metody Dualita Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Michal Černý, 2011 FIT ČVUT, MI-LOM, M. Černý, 2011: Dualita 2/5 Dualita Evropský

Více

Problém lineární komplementarity a kvadratické programování

Problém lineární komplementarity a kvadratické programování Problém lineární komplementarity a kvadratické programování (stručný učební text 1 J. Rohn Univerzita Karlova Matematicko-fyzikální fakulta Verze: 17. 6. 2002 1 Sepsání tohoto textu bylo podpořeno Grantovou

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

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

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

Necht tedy máme přirozená čísla n, k pod pojmem systém lineárních rovnic rozumíme rovnice ve tvaru

Necht tedy máme přirozená čísla n, k pod pojmem systém lineárních rovnic rozumíme rovnice ve tvaru 2. Systémy lineárních rovnic V této kapitole se budeme zabývat soustavami lineárních rovnic s koeficienty z pole reálných případně komplexních čísel. Uvádíme podmínku pro existenci řešení systému lineárních

Více

ALGORITMY A DATOVÉ STRUKTURY

ALGORITMY A DATOVÉ STRUKTURY Název tématického celku: Cíl: ALGORITMY A DATOVÉ STRUKTURY Metodický list č. 1 Časová složitost algoritmů Základním cílem tohoto tematického celku je vysvětlení potřebných pojmů a definic nutných k popisu

Více

Úvod do teorie her

Úvod do teorie her Úvod do teorie her 2. Garanční řešení, hry s nulovým součtem a smíšené strategie Tomáš Kroupa http://staff.utia.cas.cz/kroupa/ 2017 ÚTIA AV ČR Program 1. Zavedeme řešení, které zabezpečuje minimální výplatu

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

Složitost 1.1 Opera ní a pam ová složitost 1.2 Opera ní složitost v pr rném, nejhorším a nejlepším p ípad 1.3 Asymptotická složitost

Složitost 1.1 Opera ní a pam ová složitost 1.2 Opera ní složitost v pr rném, nejhorším a nejlepším p ípad 1.3 Asymptotická složitost 1 Složitost 1.1 Operační a paměťová složitost Nezávislé určení na konkrétní implementaci Několik typů operací = sčítání T+, logické T L, přiřazení T A(assign), porovnání T C(compare), výpočet adresy pole

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

DEFINICE Z LINEÁRNÍ ALGEBRY

DEFINICE Z LINEÁRNÍ ALGEBRY DEFINICE Z LINEÁRNÍ ALGEBRY Skripta Matematické metody pro statistiku a operační výzkum (Nešetřilová, H., Šařecová, P., 2009). 1. definice Vektorovým prostorem rozumíme neprázdnou množinu prvků V, na které

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

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

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

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

1 Determinanty a inverzní matice

1 Determinanty a inverzní matice Determinanty a inverzní matice Definice Necht A = (a ij ) je matice typu (n, n), n 2 Subdeterminantem A ij matice A příslušným pozici (i, j) nazýváme determinant matice, která vznikne z A vypuštěním i-tého

Více

Riemannův určitý integrál

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

Více

Dynamické programování

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

Více

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

MATICE. a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij]

MATICE. a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij] MATICE Matice typu m/n nad tělesem T je soubor m n prvků z tělesa T uspořádaných do m řádků a n sloupců: a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij] a m1 a m2 a mn Prvek a i,j je prvek matice A na místě

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 2014

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 2014 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 204 Zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia

Více

Operace s maticemi. 19. února 2018

Operace s maticemi. 19. února 2018 Operace s maticemi Přednáška druhá 19. února 2018 Obsah 1 Operace s maticemi 2 Hodnost matice (opakování) 3 Regulární matice 4 Inverzní matice 5 Determinant matice Matice Definice (Matice). Reálná matice

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

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

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

Více

Množiny, relace, zobrazení

Množiny, relace, zobrazení Množiny, relace, zobrazení Množiny Množinou rozumíme každý soubor určitých objektů shrnutých v jeden celek. Zmíněné objekty pak nazýváme prvky dané množiny. Pojem množina je tedy synonymem pojmů typu soubor,

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

3. ANTAGONISTICKÉ HRY

3. ANTAGONISTICKÉ HRY 3. ANTAGONISTICKÉ HRY ANTAGONISTICKÝ KONFLIKT Antagonistický konflikt je rozhodovací situace, v níž vystupují dva inteligentní rozhodovatelé, kteří se po volbě svých rozhodnutí rozdělí o pevnou částku,

Více

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

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

Více

VI. Maticový počet. VI.1. Základní operace s maticemi. Definice. Tabulku

VI. Maticový počet. VI.1. Základní operace s maticemi. Definice. Tabulku VI Maticový počet VI1 Základní operace s maticemi Definice Tabulku a 11 a 12 a 1n a 21 a 22 a 2n, a m1 a m2 a mn kde a ij R, i = 1,, m, j = 1,, n, nazýváme maticí typu m n Zkráceně zapisujeme (a ij i=1m

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

e-mail: RadkaZahradnikova@seznam.cz 1. července 2010

e-mail: RadkaZahradnikova@seznam.cz 1. července 2010 Optimální výrobní program Radka Zahradníková e-mail: RadkaZahradnikova@seznam.cz 1. července 2010 Obsah 1 Lineární programování 2 Simplexová metoda 3 Grafická metoda 4 Optimální výrobní program Řešení

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

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

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

Aplikovaná numerická matematika - ANM

Aplikovaná numerická matematika - ANM Aplikovaná numerická matematika - ANM 3 Řešení soustav lineárních rovnic iterační metody doc Ing Róbert Lórencz, CSc České vysoké učení technické v Praze Fakulta informačních technologií Katedra počítačových

Více

1 Vektorové prostory.

1 Vektorové prostory. 1 Vektorové prostory DefiniceMnožinu V, jejíž prvky budeme označovat a, b, c, z, budeme nazývat vektorovým prostorem právě tehdy, když budou splněny následující podmínky: 1 Je dáno zobrazení V V V, které

Více

Báze a dimenze vektorových prostorů

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

Více

Úlohy nejmenších čtverců

Úlohy nejmenších čtverců Úlohy nejmenších čtverců Petr Tichý 7. listopadu 2012 1 Problémy nejmenších čtverců Ax b Řešení Ax = b nemusí existovat, a pokud existuje, nemusí být jednoznačné. Často má smysl hledat x tak, že Ax b.

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

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

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

ANTAGONISTICKE HRY 172

ANTAGONISTICKE HRY 172 5 ANTAGONISTICKÉ HRY 172 Antagonistický konflikt je rozhodovací situace, v níž vystupují dva inteligentní rozhodovatelé, kteří se po volbě svých rozhodnutí rozdělí o pevnou částku, jejíž výše nezávisí

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 2016

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 2016 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 2016 Zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia

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

= 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

Další NP-úplné problémy

Další NP-úplné problémy Další NP-úplné problémy Známe SAT, CNF, 3CNF, k-klika... a ještě následující easy NP-úplný problém: Existence Certifikátu (CERT ) Instance: M, x, t, kde M je DTS, x je řetězec, t číslo zakódované jako

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

3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem

3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem ČVUT FEL X36PAA - Problémy a algoritmy 3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem Jméno: Marek Handl Datum: 1. 1. 2009 Cvičení: Pondělí 9:00 Zadání Naprogramujte

Více

8.3). S ohledem na jednoduchost a názornost je výhodné seznámit se s touto Základní pojmy a vztahy. Definice

8.3). S ohledem na jednoduchost a názornost je výhodné seznámit se s touto Základní pojmy a vztahy. Definice 9. Lineární diferenciální rovnice 2. řádu Cíle Diferenciální rovnice, v nichž hledaná funkce vystupuje ve druhé či vyšší derivaci, nazýváme diferenciálními rovnicemi druhého a vyššího řádu. Analogicky

Více

Lineární algebra : Báze a dimenze

Lineární algebra : Báze a dimenze Lineární algebra : Báze a dimenze (5. přednáška) František Štampach, Karel Klouda LS 2013/2014 vytvořeno: 9. dubna 2014, 13:33 1 2 5.1 Báze lineárního prostoru Definice 1. O množině vektorů M z LP V řekneme,

Více

P 1 = P 1 1 = P 1, P 1 2 =

P 1 = P 1 1 = P 1, P 1 2 = 1 Výpočet inverzní matice Věta 1 Necht P U elementární matice vzniklá el úpravou U Pak je P U regulární Důkaz: Protože elementární úprava U je invertovatelná, existuje el úprava U, která vrací změny U

Více

2.6. VLASTNÍ ČÍSLA A VEKTORY MATIC

2.6. VLASTNÍ ČÍSLA A VEKTORY MATIC .6. VLASTNÍ ČÍSLA A VEKTORY MATIC V této kapitole se dozvíte: jak jsou definována vlastní (charakteristická) čísla a vektory čtvercové matice; co je to charakteristická matice a charakteristický polynom

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

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

IB112 Základy matematiky

IB112 Základy matematiky IB112 Základy matematiky Řešení soustavy lineárních rovnic, matice, vektory Jan Strejček IB112 Základy matematiky: Řešení soustavy lineárních rovnic, matice, vektory 2/53 Obsah Soustava lineárních rovnic

Více

Těleso racionálních funkcí

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

Více

Matematika 1 MA1. 2 Determinant. 3 Adjungovaná matice. 4 Cramerovo pravidlo. 11. přednáška ( ) Matematika 1 1 / 29

Matematika 1 MA1. 2 Determinant. 3 Adjungovaná matice. 4 Cramerovo pravidlo. 11. přednáška ( ) Matematika 1 1 / 29 Matematika 1 11. přednáška MA1 1 Opakování 2 Determinant 3 Adjungovaná matice 4 Cramerovo pravidlo 5 Vlastní čísla a vlastní vektory matic 6 Zkouška; konzultace; výběrová matematika;... 11. přednáška (15.12.2010

Více

Úvod do lineární algebry

Úvod do lineární algebry Úvod do lineární algebry 1 Aritmetické vektory Definice 11 Mějme n N a utvořme kartézský součin R n R R R Každou uspořádanou n tici x 1 x 2 x, x n budeme nazývat n rozměrným aritmetickým vektorem Prvky

Více

1 Báze a dimenze vektorového prostoru 1

1 Báze a dimenze vektorového prostoru 1 1 Báze a dimenze vektorového prostoru 1 Báze a dimenze vektorového prostoru 1 2 Aritmetické vektorové prostory 7 3 Eukleidovské vektorové prostory 9 Levá vnější operace Definice 5.1 Necht A B. Levou vnější

Více

příkladů do cvičení. V textu se objeví i pár detailů, které jsem nestihl (na které jsem zapomněl) a(b u) = (ab) u, u + ( u) = 0 = ( u) + u.

příkladů do cvičení. V textu se objeví i pár detailů, které jsem nestihl (na které jsem zapomněl) a(b u) = (ab) u, u + ( u) = 0 = ( u) + u. Několik řešených příkladů do Matematiky Vektory V tomto textu je spočteno několik ukázkových příkladů které vám snad pomohou při řešení příkladů do cvičení. V textu se objeví i pár detailů které jsem nestihl

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

Definice 13.1 Kvadratická forma v n proměnných s koeficienty z tělesa T je výraz tvaru. Kvadratická forma v n proměnných je tak polynom n proměnných s

Definice 13.1 Kvadratická forma v n proměnných s koeficienty z tělesa T je výraz tvaru. Kvadratická forma v n proměnných je tak polynom n proměnných s Kapitola 13 Kvadratické formy Definice 13.1 Kvadratická forma v n proměnných s koeficienty z tělesa T je výraz tvaru f(x 1,..., x n ) = a ij x i x j, kde koeficienty a ij T. j=i Kvadratická forma v n proměnných

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

Matice. a m1 a m2... a mn

Matice. a m1 a m2... a mn Matice Nechť (R, +, ) je okruh a nechť m, n jsou přirozená čísla Matice typu m/n nad okruhem (R, +, ) vznikne, když libovolných m n prvků z R naskládáme do obdélníkového schematu o m řádcích a n sloupcích

Více

Západočeská univerzita v Plzni. Fakulta aplikovaných věd. Ivana Kozlová. Modely analýzy obalu dat

Západočeská univerzita v Plzni. Fakulta aplikovaných věd. Ivana Kozlová. Modely analýzy obalu dat Západočeská univerzita v Plzni Fakulta aplikovaných věd SEMESTRÁLNÍ PRÁCE Z PŘEDMĚTU MATEMATICKÉ MODELOVÁNÍ Ivana Kozlová Modely analýzy obalu dat Plzeň 2010 Obsah 1 Efektivnost a její hodnocení 2 2 Základní

Více

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

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

Více

Základy maticového počtu Matice, determinant, definitnost

Základy maticového počtu Matice, determinant, definitnost Základy maticového počtu Matice, determinant, definitnost Petr Liška Masarykova univerzita 18.9.2014 Matice a vektory Matice Matice typu m n je pravoúhlé (nebo obdélníkové) schéma, které má m řádků a n

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

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

Generující kořeny cyklických kódů. Generující kořeny. Alena Gollová, TIK Generující kořeny 1/30

Generující kořeny cyklických kódů. Generující kořeny. Alena Gollová, TIK Generující kořeny 1/30 Generující kořeny cyklických kódů 6. přednáška z algebraického kódování Alena Gollová, TIK Generující kořeny 1/30 Obsah 1 Alena Gollová, TIK Generující kořeny 2/30 Hammingovy kódy Hammingovy kódy jsou

Více

Determinanty. Obsah. Aplikovaná matematika I. Pierre Simon de Laplace. Definice determinantu. Laplaceův rozvoj Vlastnosti determinantu.

Determinanty. Obsah. Aplikovaná matematika I. Pierre Simon de Laplace. Definice determinantu. Laplaceův rozvoj Vlastnosti determinantu. Determinanty Aplikovaná matematika I Dana Říhová Mendelu Brno Obsah 1 Determinanty Definice determinantu Sarrusovo a křížové pravidlo Laplaceův rozvoj Vlastnosti determinantu Výpočet determinantů 2 Inverzní

Více

Texty k přednáškám z MMAN3: 4. Funkce a zobrazení v euklidovských prostorech

Texty k přednáškám z MMAN3: 4. Funkce a zobrazení v euklidovských prostorech Texty k přednáškám z MMAN3: 4. Funkce a zobrazení v euklidovských prostorech 1. července 2008 1 Funkce v R n Definice 1 Necht n N a D R n. Reálnou funkcí v R n (reálnou funkcí n proměnných) rozumíme zobrazení

Více

Složitost Filip Hlásek

Složitost Filip Hlásek Složitost Filip Hlásek Abstrakt. Příspěvek popisuje dva základní koncepty teoretické informatiky, Turingovy stroje a složitost. Kromě definic důležitých pojmů uvádí také několik souvisejících tvrzení,

Více

10. DETERMINANTY " # $!

10. DETERMINANTY  # $! 10. DETERMINANTY $ V této kapitole zavedeme determinanty čtvercových matic libovolného rozměru nad pevným tělesem, řekneme si jejich základní vlastnosti a naučíme se je vypočítat včetně příkladů jejich

Více