Fakulta elektrotechnická

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

Download "Fakulta elektrotechnická"

Transkript

1 České vysoké učení technické v Praze Fakulta elektrotechnická Diplomová práce Veronika Crkvová Evoluční metaheuristiky pro zobecněný problém obchodního cestujícího Katedra počítačů Vedoucí práce: Ing. Jiří Kubalík, Ph.D.

2

3

4

5

6

7 Poděkování Poděkování patří Ing. Jiří Kubalíkovi, Ph.D. za nikdy nekončící podporu, odborné vedení a hlavně velké nadšení pro věc.

8

9 Abstrakt Evoluční algoritmy jsou vhodným a často používaným způsobem, jak řešit úlohy s příliš vysokou časovou složitostí. V této práci navrhuji evoluční algoritmus, který řeší úlohu zobecněného obchodního cestujícího. Úloha zobecněného obchodního cestujícího je rozšířením klasického problému obchodního cestujícího a je také NP-těžká. Důležitým aspektem navrhovaného algoritmu je i použití heuristik a algoritmů, které lokálně vylepšují existující řešení v populaci. V experimentální části diplomové práce jsem tento algoritmus porovnala s jinými úspěšnými algoritmy řešící tuto úlohu a i když nedosahoval nejlepších výsledků, stále se dá řešení považovat za dobré. Abstract Evolutionary algorithms are suitable and often used way how to solve tasks with high time complexity. In this thesis I suggest an evolutionary algorithm which solves the generalized travelling salesman problem. The generalized travelling salesman problem is an extension of the classical travelling salesman problem and is an NP-hard problem. Important features of the proposed algorithm include heuristics and local search algorithms, which locally improve genetically evolved solutions. In the experimental part of this thesis I compared proposed algorithm with state-of-the-art algorithms designed for the generalized travelling salesman problem. My proposed algorithm didn t perform as good as the state-of-the-art algorithms, however the obtained solutions can be still considered good.

10

11 OBSAH Obsah 1 Úvod 1 2 Zobecněný problém obchodního cestujícího Problém obchodního cestujícího Problém zobecněného obchodního cestujícího Rešerše Evoluční algoritmus s nepřímou reprezentací Ant Colony System algoritmus Vylepšení známých technik řešení problému zobecněného obchodního cestujícího Branch-And-Cut algoritmus Memetický algoritmus s použitím speciálního operátoru křížení Použití diskrétního přechodového systému Memetický algoritmus s použitím heuristik pro lokální vylepšení Genetický algoritmus Chromozom Fitness Populace Křížení jedinců Mutace Selekce Inicializace populace Obecné schéma genetického algoritmu Ukončení algoritmu Navržený evoluční algoritmus pro řešení GTSP Základní verze navrženého evolučního algoritmu Chromozom Fitness Model GA Křížení Mutace Inicializace počáteční populace Ukončení algoritmu Pseudokód hlavního cyklu navrženého genetického algoritmu Heuristika nejbližšího souseda Přímá reprezentace pořadí klastrů Nepřímá reprezentace pořadí klastrů Vzdálenost dvou klastrů Aplikace heuristiky nejbližšího souseda i

12 OBSAH 4.3 Algoritmus optimalizace klastrů Základní princip CO Zvolení prvního klastru pro běh CO opt optimalizace elitních jedinců opt obecně k-opt Vlastní implementace 2-opt na elitní jedince populace Očekávaný výsledek Vylepšení genetického algoritmu o pertubaci populace Motivace Popis pertubace populace Míra pertubace Konkrétní použití pertubace na genetický algoritmus popsaný v této práci Modifikace heuristiky nejbližšího souseda Popis použitého algoritmu Pseudokód modifikované heuristiky Pravděpodobnostní 2-opt heuristika celé populace Popis implementace pravděpodobnostní 2-opt optima Implementace Diagram tříd programu TSPInstance Settings Chromosome ExpectedResults Main class GeneticAlgorithm class Utils.NNUtils class Utils.COAlgorithm class Utils.TwoOptHeuristic class Utils.DNNUtils class TSPLibFormat Experimenty Experimenty k základní verzi genetického algoritmu Experimenty ke genetickému algoritmu vylepšeného algoritmem CO Experimenty ke genetickému algoritmu vylepšeného o přidání algoritmu CO a 2-opt heuristiky na elitní jedince Experimenty ke genetickému algoritmu vylepšeného o přidání algoritmu CO, 2-opt heuristiky a modifikované verze nej- bližšího souseda Experimenty po přidání možnosti pertubace populace Experimenty nad verzí po přidání lokálního doladění pomocí CO algoritmu 47 ii

13 OBSAH 6.7 Experimenty nad verzí rozšířené o pravděpodobnostní 2-opt heuristiky Závěr 51 A Obsah CD 55 B Seznam zkratek 57 C Spuštění programu 59 iii

14 SEZNAM OBRÁZKŮ Seznam obrázků 1 Obrázek vrstevnatého grafu z pohledu jednoho vrcholu z prvního klastru. Celkem má původní graf 4 klastry (první a poslední vrstva jsou kopie) Obrázek instance před použitím CO (vlevo) a po použití CO (vpravo). Lze si všimnout, že algoritmus přepočítá cestu a vymění vrcholy tak, aby pro dané pořadí klastrů byla kružnice nejkratší Obrázek instance před použitím 2-opt (vlevo) a po použití 2-opt (vpravo) Diagram tříd programu iv

15 SEZNAM TABULEK Seznam tabulek 1 Testy základního genetického algoritmu na vybraných instancích Testy genetického algoritmu vylepšeného o algoritmus CO na vybraných instancích Testy genetického algoritmu vylepšeného o algoritmus CO a 2-opt heuristiku aplikovanou na elitní jedince Testy genetického algoritmu vylepšeného o algoritmus CO, 2-opt heuristiku a modifikovanou verzi heuristiky nejbližšího souseda na vybraných instancích Testy porovnání genetického algoritmu vylepšeného o algoritmus CO a 2-opt heuristiku vůči stejného algoritmu navíc rozšířeného o modifikovanou verzi heuristiku nejbližšího souseda na vybraných instancích Testy genetického algoritmu vylepšeného o algoritmus CO, 2-opt heuristiku a pertubaci populace. Včetně druhé verze, která navíc využívá modifikovanou verzi heuristiky nejbližšího souseda Testy porovnání genetického algoritmu vylepšeného o algoritmus CO a 2-opt (GA CO 2OPT) vůči stejného algoritmu navíc rozšířeného o modifikovanou verzi heuristiky nejbližšího souseda (DNN Modif). Vůči stejným dvěma, ale rozšířených o pertubaci populace - pert GA a pert DNN Testy porovnání genetického algoritmu vylepšeného o algoritmus CO, 2-opt heuristiku a pertubaci (pert GA), stejného algoritmu navíc rozšířeného o modifikovanou verzi heuristiky nejbližšího souseda (pert DNN). Vůči stejným dvěma, ale rozšířeným o lokální doladění jedinců pomocí CO - lco GA a lco DNN Testy genetického algoritmu vylepšeného o algoritmus CO, 2-opt heuristiku, pertubaci populace a lokální doladění pomocí CO. Včetně druhé verze, která navíc využívá modifikovanou verzi heuristiky nejbližšího souseda Testy genetického algoritmu vylepšeného o algoritmus CO, pertubaci populace, lokální doladění elitních jedinců pomocí CO a pravděpodobnostní 2-opt heuristiky na celou populaci. Včetně druhé verze, která navíc využívá modifikovanou verzi heuristiky nejbližšího souseda Testy porovnání genetického algoritmu vylepšeného o algoritmus CO, 2-opt heuristiku na elitní jedince, pertubaci populace, lokální doladění elitních jedinců pomocí CO (lco GA) a stejného algoritmu navíc rozšířeného o modifikovanou verzi heuristiky nejbližšího souseda (lco DNN). Vůči stejným dvěma, ale 2-opt heuristika na elitní jedince byla vyměněna za pravděpodobnostní 2-opt heuristiku - p2opt GA a p2opt DNN Obsah CD Seznam zkratek v

16 SEZNAM ALGORITMŮ Seznam algoritmů 1 Základní schéma genetického algoritmu Základní schéma navrženého evolučního algoritmu pro řešení GTSP Algoritmus heuristiky nejbližšího souseda pro získání přímého pořadí klastrů 21 4 Schéma CO algoritmu Schéma 2-opt algoritmu Pseudokód použití pertubace nad daným genetickým algoritmem Schéma modifikace heuristiky nejbližšího souseda vi

17 1 ÚVOD 1 Úvod Tato práce se zabývá řešením úlohy zobecněného cestujícího pomocí genetického algoritmu. Jedná se o úlohu, kde máme zadáno několik měst, která jsou rozdělena do skupin. Jejím cílem je najít cestu, která začne a skončí ve stejném městě a která navíc navštíví právě jedno město z každé skupiny (žádné město ale nesmí být navštíveno dvakrát). Zobecněný problém obchodního cestujícího je NP-těžký problém, který má mnoho uplatnění jako například plánování trasy letadel nebo doručování poštovních zásilek. Díky tomu, že se jedná o NP-těžký problém, je vhodné použít pro jeho řešení evoluční algoritmy. Konkrétně je často pro řešení použit genetický algoritmus, který při hledání řešení používá podobné principy, jako při vývoji živočichů v přírodě. Každé řešení pak považujeme za jedince a těchto řešení vždy máme celou množinu (populaci). V populaci se poté řešení kombinují různě mezi sebou (tzv. křížení), nebo podstupují mutaci (náhodně změní nějakou část řešení). Na úlohu zobecněného cestujícího bylo historicky ve vědeckých pracích použito již mnoho přístupů. Najdeme zde řešení, kdy se zobecněná úloha obchodního cestujícího převede na asymetrickou úlohu obchodního cestujícího a vyřeší se nějakým známým solverem pro tuto úlohu [5]. Dále lze úlohu řešit pomocí lineárního programování [3] nebo například Ant Colony System algoritmem [9]. Často se autoři uchylují k řešení úlohy pomocí genetického algoritmu [4] [1]. Pro velké instance úlohy všechny tyto nalezené přístupy nevracejí optimální, ale pouze suobtimální řešení. Tato práce řeší úlohu zobecněného obchodního cestujícího pomocí genetického algoritmu, který navíc využije heuristiku nejbližšího souseda. V průběhu tvoření nové populace budou navíc na jedince aplikovány různé algoritmy a heuristiky, které se běžně používají jako součást jednotlivých návrhů řešení tohoto problému. Jedná se o 2-opt heuristiku, která je jednou z nejčastěji používaných heuristik pro řešení jak problému obchodního cestujícího, tak zobecněného obchodního cestujícího. Dále je použit algoritmus Cluster Optimization (CO algoritmus), který byl představen panem Fischetti a dalšími v roce 1997 [3]. CO algoritmus dokáže najít nejkratší řešení pro předem definované pořadí klastrů. Také se pokusím vylepšit použitou heuristiku nejbližšího souseda tak, že bude nový jedinec zároveň přebírat od rodiče celé části jeho kružnice. Kvůli předčasné konvergenci řešení do suboptima bude nakonec do celého algoritmu také přidána pertubace populace. To je proces, který, pokud se nezmění hodnota nejlepšího řešení po několik generací, kompletně pozmění podobu jedinců v populaci tak, aby při další aplikaci algoritmu mohlo být nalezeno jiné optimum. Cílem této práce je přiblížit se a nebo i překonat výsledky ostatních publikovaných prací na toto téma. Součástí řešení je i postupné přidávání různých vylepšujících heuristik a algoritmů do stávajícího řešení tak, aby algoritmus ideálně dosahoval stále lepší výsledky. V druhé kapitole si představíme problém zobecněného obchodního cestujícího a pro- 1/60

18 1 ÚVOD jdeme důležité práce, které se řešením blížily navrhovanému algoritmu. V třetí kapitole si poté obecně popíšeme genetické algoritmy a následně ve čtvrté kapitole si konkrétně popíšeme navržený evoluční algoritmus pro řešení problému zobecněného obchodního cestujícího. Dále si v podkapitolách dopodrobna popíšeme obecný popis heuristiky nejbližšího souseda a její konkrétní použití v genetickém algoritmu. Další podkapitoly jsou přidávány přesně tak, jak budou v experimentech přidávány vylepšení algoritmu. Nejprve byl do základní verze přidán CO algoritmus, dále heuristika 2-opt na elitní jedince, následně byla vyzkoušena modifikace nejbližšího souseda taková, která dědí části cesty od rodičovského řešení. Jako další vylepšení se do algoritmu přidala možnost pertubace populace a nakonec byla 2-opt heuristika použita na celou populaci (tedy nejen na elitní jedince). Pátá kapitola se věnuje vysvětlení implementace programu, který byl napsán na základě předchozích kapitol. Šestá kapitola se věnuje experimentům. Experimenty jsou seřazeny tak, jak byly postupně přidávány jednotlivá vylepšení do algoritmu a jsou vždy popsány i s příslušnými výsledky. 2/60

19 2 ZOBECNĚNÝ PROBLÉM OBCHODNÍHO CESTUJÍCÍHO 2 Zobecněný problém obchodního cestujícího V této sekci si představíme problém zobecněného obchodního cestujícího a také si uvedeme přehled existujících přístupů pro řešení zobecněného obchodního cestujícího. 2.1 Problém obchodního cestujícího Úloha obchodního cestujícího neboli tzv. Travelling Salesman Problem (zkráceně TSP) je NP-těžký problém, což znamená, že zatím pro tento problém nebyl nalezen polynomiální deterministický algoritmus. Laicky popsáno máme několik bodů na mapě (města) a obchodní cestující má procestovat všechny tak, aby žádné nenavštívil vícekrát a skončil ve městě, kde začal. Matematicky máme neorientovaný úplný graf s hranami, které jsou ohodnoceny přirozeným číslem. Úplný graf znamená, že mezi všemi vrcholy v grafu vede hrana. Cílem úlohy je najít nejkratší hamiltonovskou kružnici (taková kružnice, která projde každý vrchol v grafu právě jednou). Úloha může být nadefinována jako symetrická nebo asymetrická. Symetrická znamená, že vezmeme-li vzdálenost z bodu v 0 do v 1 v grafu, je přesně stejná, jako vzdálenost z v 1 do v 0. U asymetrické úlohy může být vzdálenost z bodu v 0 do v 1 jiná, než vzdálenost z v 1 do v 0. Díky velké obtížnosti úlohy v kombinaci s praktickým využitím v praxi vzniklo větší množství heuristik, které pomáhají úlohu řešit. Příkladem takové heuristiky je 2-opt algoritmus, který je popsán v samostatné kapitole této práce. 2.2 Problém zobecněného obchodního cestujícího V této práci je hledáno efektivní řešení právě problému zobecněného obchodního cestujícího neboli tzv. Generalized Travelling Salesman Problem (zkráceně GTSP). Ten vychází z problému obchodního cestujícího, který je obecně popsán výše. Nyní si problém GTSP do podrobna popíšeme. Nechť V = {1, 2,..., n} je množina n vrcholů, které jsou rozděleny do m neprázdných podmnožin V = C 1 C 2 C m, které nazýváme klastry. Platí, že i, j {1... m}, kde i j je C i C j =. Pro účely této práce budeme uvažovat, že mezi všemi vrcholy vede hrana s kladným ohodnocením a platí, že vzdálenost mezi body v i a v j zn. d i,j je rovna vzdálenosti d j,i. Dále také předpokládáme, že mezi body platí tzv. trojúhelníhová nerovnost, tedy že v i, v j, v k platí d i,j d i,k + d k,j. 3/60

20 2 ZOBECNĚNÝ PROBLÉM OBCHODNÍHO CESTUJÍCÍHO Úkolem je najít v grafu nejkratší kružnici, která pro každý klastr projde právě jedním jeho vrcholem. Obyčejná úloha obchodního cestujícího je tedy zvláštní případ zobecněného problému obchodního cestujícího, kdy mají všechny klastry přesně jeden vrchol. Laicky popsáno by se úloha dala přirovnat k problému obchodního cestujícího, kde ale máme města rozděleny do krajů a obchodní cestující má v každém kraji navštívit právě jedno město (a nenavštívit žádné jiné město ve stejném kraji) tak, aby jeho cesta byla co nejkratší a skončila přesně ve městě, ve kterém začala. 2.3 Rešerše V této části postupně projdeme práce, které měly podobné téma, jako tato diplomová práce. Některé byly přímou inspirací pro zvolené řešení problému Evoluční algoritmus s nepřímou reprezentací Tato publikace [7] se zabývá evolučním algoritmem použitým pro řešení tzv. routing problémů (jako například problém obchodního cestujícího, Vehicle Routing Problem, Job Shop Scheduling Problem a jejich variant). Jedním z nejdůležitějších aspektů je využití heuristiky nejbližšího souseda, která byla modifikována a aplikována i v této práci. Chromozom se skládá z prioritní fronty vrcholů, na které aplikuje algoritmus heuristiku nejbližšího souseda. Platí, že jedno řešení může být reprezentováno více chromozomy, ale zároveň některé permutace mohou být nedosažitelné. Algoritmus postupně prochází tuto permutaci měst (tedy jeden konkrétní chromozom) a vybírá k nim nejbližšího souseda tak, aby nevznikl cyklus. Pokud procházený bod není krajním bodem komponenty, nalezne nejbližšího souseda pro jeden z krajních bodů této komponenty (vybere ten, který je výhodnější). Jako operátor křížení je použit tzv. order-based crossover, který byl použit i v této práci. Pracuje tak, že prvního rodiče náhodně vybere pozice a nakopíruje města z těchto pozic na stejné pozice do vznikajícího potomka. Zbylá volná místa v potomkovi zaplní z druhého rodiče tak, že města bere od začátku chromozomu v rodičovském chromozomu a vkládá dosud nepoužitá města na dosud nezaplněná místa v potomkovi. Mutace náhodně změní pořadí nějakého města v chromozomu. Model použitého genetického algoritmu je tzv. Iterated evolutionary model. Je to elitistický model, který vybere N nejlepších jedinců a ty přímo zkopíruje do nové generace. Zbytek populace tvoří nově vytvoření jedinci. Ti vznikli buď jako výsledek mutace chromozomu z předchozí gene- race, nebo po křížení, kdy první rodič byl vybrán náhodně z množiny nejlepších jedinců a druhý vybrán pomocí turnajového výběru (velikost turnaje 4/60

21 2 ZOBECNĚNÝ PROBLÉM OBCHODNÍHO CESTUJÍCÍHO zvolili 3). Každý jedinec, který vznikne křížením je dále vystaven mutaci s předem určenou pravděpodobností mutace. Pokud se nejlepší řešení nezmění po několika generacích vývoje, je populace změněna za pomoci procesu pertubace populace Ant Colony System algoritmus Práce [9], která k řešení úlohy zobecněného obchodního cestujícího využívá tzv. Ant Colony System algoritmus. Jde o algoritmus, který při řešení napodobuje hledání nejkratší cesty za jídlem, jako to dělají v přírodě mravenci. Ti zanechávají na zemi feromonovou stopu a ta je pak nejsilnější na místech, kterými prošlo nejvíce jedinců. Jejím cílem je ukázat, že jejich metoda lokálního prohledávání vylepší výkon ACS algoritmu a tím z něj udělá jednoho z nejlepších heuristických algoritmů řešící GTSP. Při inicializaci algoritmu nejprve náhodně rozestaví K mravenců. Další uzly se vybírají z množiny uzlů ještě nenavštívených klastrů konkrétního mravence. V každé iteraci vyberou pro každého mravence jeden další vrchol z nějakého ještě nenavštíveného klastru (buď podle nejsilnějšího feromonu na všech možných hranách, nebo náhodně) a upraví sílu feromonu právě prošlé hraně. Po N-1 krocích dokončí každý mravenec kružnici v grafu (taková kružnice je zároveň validní řešení problému zobecněného obchodního cestujícího). Na konec cyklu se vezme doposud nejlepší nalezené řešení a upraví se feromon po jeho celé kružnici. Ukončovací podmínkou je počet cyklů. Algoritmus využívá lokální heuristiku na vylepšení řešení. Aplikuje 3-opt heuristiku a tzv. CO neighborhood algoritmus. CO ve zkratce znamená, že pro již vytvořenou kružnici vezme její pořadí klastrů a vytvoří vícevrstvý graf (vrstvy jsou vrcholy z jednotlivých klastrů) a hrany povolí jen mezi nimi. Poté vylepší minimální cestu v tomto multigrafu a to je nová kružnice T (pro toto pořadí klastrů nejkratší možná). Při 3-opt heuristice hledá okolí existující kružnice, které se liší v maximálně 3 hranách. CO algoritmus i k- opt heuristika jsou dále vysvětleny v této práci jako zvláštní kapitoly, protože se v mírné modifikaci využívají i v navrhovaném algoritmu v této práci Vylepšení známých technik řešení problému zobecněného obchodního cestujícího V práci [6] vylepšují již známé techniky GTSP neighborhoods (původně dobré v hledání řešení, ale pomalé) tak, že jejich výpočet zrychlují pomocí heuristik. V úvodu práce říká, že Fischetti a kol. pomocí branch-and-bound algoritmu (1997) vyřešili instance pro počet klastrů < 90 a řešit větší instance k optimalitě je stále těžké. Používají se různé heuristické algoritmy pro nalezení přibližného řešení. Tato práce detailně rozebírá různá GTSP neighborhoods a detailně zkoumá důsledek aplikace různých známých 5/60

22 2 ZOBECNĚNÝ PROBLÉM OBCHODNÍHO CESTUJÍCÍHO algoritmů pro lokální vylepšení. Navrhovaná vylepšení značně zrychlila běh známých algoritmů na řešení problému zobecněného obchodního cestujícího. Nicméně v této práci se stále u velkých instancí nedostali k uspokojujícím výsledkům oproti známým optimům. Rozdělují GTSP neighborhoods do 3 tříd: 1. Cluster optimization neighborhood (CO neighborhood): Nové řešení zachová pořadí navštívených klastrů, ale může změnit použité vrcholy v klastru. 2. TSP - inspired neighborhoods: Používají se techniky pro TSP na řešení GTSP. Pořadí klastrů, při vytváření nové kružnice, je změněno. 3. Fragment optimization neighborhoods: nové řešení se od starého řeší jen ve velice malé části. Tyto 3 třídy řešení si dále více popíšeme, protože tato práce byla velkou inspirací pro řešení popsané v této práci. Byla využita především první třída z těchto 3 tříd. Cluster optimization neighborhood Z původní kružnice T se vytvoří vrstevnatý graf. Jednotlivé vrstvy tvoří klastry v pořadí, ve kterém by byly v T. Hrany jsou vedeny pouze mezi sousedními klastry. V původní kružnici T zafixujeme jeden klastr a budeme hledat nejkratší kružnici v tomto vrstevnatém grafu (postupně pro každý vrchol ze zafixovaného klastru). Jako novou kružnici vybereme tu nejkratší nalezenou. CO byl představen panem Fischetti a dalšími v roce Volba klastru, který se zafixuje, je libovolná. Vždy najdeme nejlepší vylepšení v tomto pořadí klastrů. K zafixování je početně nejvýhodnější vzít nejmenší klastr (sníží časovou náročnost). Dále metodu vylepšují pomocí redukce zafixovaného klastru (lze odstranit vrchol, pokud pro každou dvojici vrcholů z klastru před ním a za ním existuje cesta, která je lepší vzít přes jiný vrchol zafixovaného klastru). Hledání nejkratší cesty ve vrstevnatém grafu je provedeno pomocí postupné redukce prostředních vrstev. Vrstvu nahradíme hranami, které by odpovídaly nejkratší cestě přes vrcholy mazané vrstvy mezi vrcholy vrstev sousedních. Toto se opakuje m - 2 krát (kde m je počet klastrů), dokud nezbude pouze zafixovaná vrstva a kopie zafixované vrstvy (což stále reprezentuje kružnici). V práci je ukázán důkaz, že je lepší na odstranění vybírat vrstvy s větším počtem uzlů. Navrhli algoritmus na výběr vrstvy, která se má redukovat. Konkrétně se vypočte výsledek velikosti zkoumané vrstvy vynásobenou vrstvou před ní a pak tou za ní. Jsou tedy 2 případy: V prvním se vypočítá, co by se stalo, kdyby byla vymazána vrstva před tou zkoumanou a v druhém co by se stalo, kdyby se vymazala až ta následující. 6/60

23 2 ZOBECNĚNÝ PROBLÉM OBCHODNÍHO CESTUJÍCÍHO Takto jsou vždy prozkoumány možnosti u druhé a třetí vrstvy a vždy je jedna z okolních vrstev poté smazána a pokračuje se, dokud v grafu existují více než dvě vrstvy. Jejich testy ukázaly, že redukce velikosti klastru je velice efektivní. TSP-inspired neighborhood částí: Renaud a Boctor (1998) navrhli problém rozdělit do dvou 1. Použití TSP neighborhoods techniky na nalezení pořadí klastrů. 2. Poté na toto pořadí aplikovat CO. Nicméně bylo již dokázáno, že tento přístup nezaručí nalezení nejkratší cesty. TSP neighborhoods známé techniky: k-opt: Najde všechny kružnice, které jsou rozdílné od nalezené v maximálně k hranách. Insertion neighborhood: Všechny kružnice, které vzniknou tak, že odebereme vrchol a vložíme ho v dané kružnici na libovolnou pozici jinam. Swap (neboli Exchange): Všechny nové kružnice lze vytvořit náhodným vyměněním jejich dvou vrcholů (změna jejich pořadí). Lin-Kernigan: Je použita heuristika založená na k-opt, která nefixuje hodnotu k pro celý běh algoritmu. Nemá fixní velikost neighborhood, a proto není v této práci zahrnutá. Myšlenkou je rozšířit existující kružnici pomocí jedné z rychlých heuristik a pokud bude kružnice kratší, než ta původní, aplikujeme navíc ještě jednu z pomalejších heuristik (v této práci je to CO). Navíc dokázali, že obrácený postup by byl časově náročnější a vedl by ke stejným výsledkům. Speciálním případem je tzv. global adaptation: Je to další možnost uplatnění TSP neighborhoods. Spočívá v tom, že je CO aplikována na každou vygenerovanou kružnici ještě před tím, než je ohodnocena. V této práci je tato myšlenka ještě rozšířena o to, že generování kružnic není náhodné, ale kružnice jsou generovány po sobě tak, aby se vypočtené nejkratší cesty mezi body daly znovu využít. To podstatně zkracuje dobu běhu původního algoritmu. Další možnou technikou spadající pod tuto kapitolu je použití 2-opt a po každé jeho aplikaci na kružnici T, opět prozkoumat celé jeho neighborhood. (Lze i pro 3-opt, ale výpočet je pomalejší). Dále je možné použít insertion a swap a poté opět CO algoritmus. Nicméně swap se nevyplatí, pokud je řešení již blízko optimu. 7/60

24 2 ZOBECNĚNÝ PROBLÉM OBCHODNÍHO CESTUJÍCÍHO Fragment optimization neighborhood Jde o pouze lokální úpravy kružnice - malé části. Upraví se jen určitá množina po sobě následujících uzlů (velikosti k). Buď pomocí tzv. branch and bound algoritmu nebo dynamického programování (které je zde zvolené jako kombinace Held a Karpova TSP algoritmu s hledáním nejkratší cesty ve vrstevnatém grafu) Branch-And-Cut algoritmus Cílem této práce [3] je efektivně řešit úlohu zobecněného obchodního cestujícího. Zaměřili se tedy především na rychlost běhu. Nejprve definovali LP problém, který řeší GTSP. Jako výslednou kružnici obsahující alespoň jeden vrchol z každého klastru. Postupují tak, že počítají lower bound a postupně jí v každé iteraci zpřísňují. Poté postupně přidávají další podmínky a přibližují se tak k řešení. Dodržuje se obecně známý branch and cut algoritmus Memetický algoritmus s použitím speciálního operátoru křížení Cílem této práce [1] je výrazně zrychlit existující řešení GTSP. Práce řeší GTSP pomocí memetického algoritmu (kdy používá genetický algoritmus a lokální heuristiky na doladění řešení). Hlavním bodem této práce je její operátor křížení. Jako chromozom mají pořadí klastrů (první a poslední jsou identické). V práci ohodnocují délku kružnice pomocí Renaud a Boctor Shortest tour algoritmu. Vytvoří se vrstevnatý graf klastrů a potom se počítá vzdálenost v polynomiální složitosti. Mutace probíhá tak, že nejprve vyberou jedince k mutaci podle pravděpodobnosti mutace a poté náhodně prohodí pořadí dvou klastrů a poté opět najdou nejkratší cestu. Operátor křížení nejprve vybere matčinný a otcovský chromozom. Poté všechny města z matčinného vloží do otcovského tak, že je vkládá podle pořadí v matčinném chromozomu tak, aby vzdálenosti u nově vloženého po vložení byly minimální a aby v nově vznikajícím nebyly nikdy stejné klastry hned vedle sebe. Vznikl tak redundantní chromozom, který je potřeba redukovat. Pro každou vrstvu jsou vytvořeny vrcholy příslušející jednotlivým městům a hrany vedou jen ve směru této sekvence. Poté je hledána nejkratší cesta v grafu, která splňuje, že každý klastr navštíví pouze jednou. Tato cesta je hledána pomocí dynamického programování, kdy je využit algoritmus navržený Feilletem a kol. tzv. Elementary Shortest Path Problem with Resource Constrains [2] a zároveň je to rozšíření klasického Bellmanova labeling algoritmu. 8/60

25 2 ZOBECNĚNÝ PROBLÉM OBCHODNÍHO CESTUJÍCÍHO Použití diskrétního přechodového systému Práce [12] řeší problém zobecněného obchodního cestujícího pomocí tzv. diskrétního přechodového systému (discrete state transition algorithm). Autoři vezmou platné řešení tohoto problému a postupně na toto řešení v každé iteraci aplikují několik operátorů, které pozmění pořadí klastrů. Toto pořadí je modifikováno pomocí CO algoritmu (které pro dané pořadí klastrů vybere co nejvýhodnější body z jednotlivých klastrů). Použité operátory jsou swap (prohození klastrů), insert (vložení klastru na jinou pozici), symmetry (otočí pořadí podsekvence klastrů kružnice), k-circle a k-shift Memetický algoritmus s použitím heuristik pro lokální vylepšení Cílem této práce [4] je ukázat nový memetický algoritmus se sílou v lokálním prohledávání, které překoná známé heuristiky na GTSP v kvalitě řešení a délce běhu algoritmu. První generace genetického algoritmu obsahuje řešení, které je nejprve náhodně vygenerováno a poté je vylepšeno jako lokální minimum. Poté probíhá reprodukce, křížení a mutace. Operátor křížení je modifikované dvoubodové křížení, kdy ze dvou rodičovských jedinců vznikne jeden potomek. Mutace probíhá tak, že se vybere fragment jedince a ten se posune na jinou pozici. Ukončovací podmínka algoritmu je ta, že se fitness nejlepšího řešení několik generací po sobě nezměnila. Na každém nově vzniklém jedinci, který patří do nové generace, je spuštěno několik heuristik lokálního vylepšení řešení. Např. 2-opt, direct 2-opt, swaps, cluster optimization algoritmus atd. 9/60

26 3 GENETICKÝ ALGORITMUS 3 Genetický algoritmus Genetické algoritmy řadíme mezi evoluční algoritmy, které navíc obsahují například evoluční programování, genetické programování a evoluční strategii. Je to algoritmus, který se snaží aplikovat Darwinovu teorii přirozeného výběru a zároveň Mendelovu teorii genetiky na množinu řešení. Na každé řešení je v tomto algoritmu pohlíženo jako na jedince. Algoritmus se snaží do další generace přenést prvky řešení, které byly úspěšnější než ostatní. Další řešení vznikají spojením původních řešení (tedy křížením jedinců v populaci) nebo i úpravou stávajících (jedinec může projít mutací). Takto je postupně prohledáván stavový prostor řešení a tím se hledají stále lepší řešení problému, až algoritmus dokonverguje. Genetické algoritmy jsou používány především na problémy, které neexistuje použitelný exaktní algoritmus. Příkladem takových problémů jsou jistě NP-těžké nebo NP-úplné problémy. 3.1 Chromozom Každé řešení je zakódováno do tzv. chromozomu. Jeho reprezentaci nazýváme genotyp, zatímco interpretaci reprezentace fenotyp. Chromozom se dále skládá z genů. Gen může nabývat různých hodnot, tedy například celé číslo, reálné číslo nebo hodnotu zastupující true/false. Například problém batohu může mít chromozom, jehož genotyp vypadá takto [true, true, f alse] Jeho význam (fenotyp) je, že do batohu jsou vybrané položky 1 a 2, zatímco 3 nikoliv (podle hodnot true/false). Nebo například pro úlohu obchodního cestujícího může vypadat chromozom takto [3, 1, 2, 4] Znamená to, že kružnici složíme tak, že postupně spojíme bod 3 s 1, 1 s 2, 2 s 4 a 4 s Fitness Pro genetický algoritmus je zásadní, aby bylo možné ke každému řešení přiřadit číslo, které odpovídá kvalitě jeho řešení. Takové ohodnocení jedince nazýváme jeho fitness. V přímém důsledku tedy potom lze dvě řešení porovnat mezi sebou a rozhodnout, které 10/60

27 3 GENETICKÝ ALGORITMUS řešení je lepší. Každý genetický algoritmus má tedy tzv. fitness funkci, která na vstupu dostane chromozom a na výstupu vrátí fitness daného jedince. Např. u problému obchodního cestujícího je fitness řešení délka kružnice, která je reprezentována chromozomem. 3.3 Populace Populací v genetickém algoritmu rozumíme množinu jedinců (chromozomů). Je to množina aktuálně zkoumaných řešení. Při křížení jsou jedinci vybíráni z populace a mutace probíhá opět nad jedinci, kteří jsou v aktuální populaci. 3.4 Křížení jedinců Křížení se snaží nakombinovat dvě řešení tak, aby vzniklo nové, rozdílné od obou původních. Nejprve jsou z populace procesem selekce vybráni 2 rodičovské chromozomy (selekci si blíže popíšeme níže). Poté vznikne jeden nebo dva jedinci na základě kombinace genů z prvního a druhého rodiče. O tom, jak jsou jednotlivé geny poděděny z rodičovských chromozomů rozhoduje vybraný operátor křížení. Dále si uvedeme některé známé operátory křížení. Jednobodové křížení Při jednobodovém křížení ze dvou rodičovských chromozomů vzniknou dva potomci. Nejprve se zvolí pozice v chromozomu. Podle té se potom oba chromozomy rozdělí na dvě části. První potomek vznikne jako první část z prvního rodiče a druhá část z druhého rodiče. Druhý potomek vznikne obdobně jako první část z druhého rodiče a druhá část z prvního rodiče. Dvoubodové křížení Je obdobné jako jednobodové, ale v tomto případě je potřeba chromozomy rozdělit na 3 části. Vybereme tedy dvě fixní pozice a podle nich oba rodičovské chromozomy na 3 části rozdělíme (nazvěme je levá, prostřední a pravá). Poté první potomek vznikne jako složení levé a pravé části z prvního rodiče a prostřední z druhého (v pořadí levá, prostřední a pravá část). Druhý potomek vznikne opět obdobně, ale podědí levou a pravou část z druhého rodiče a jeho prostřední překopírujeme z prvního rodiče. Uniformní křížení Při tomto křížení zvolíme tzv masku. Na masku můžeme například nahlížet jako na pole true/false hodnot, které je stejně dlouhé jako chromozom. Poté vygenerujeme prvního potomka jako kombinaci genů z true pozic z prvního rodiče a genů z false pozic hodnot z druhého rodiče. Druhého potomka podobně, ale prohodíme rodiče, ze kterého vezmeme true pozice a false pozice. 11/60

28 3 GENETICKÝ ALGORITMUS Aritmetické křížení Pod toto křížení patří například použití některého z logických operátorů AND, OR, XOR (pokud vezmeme chromozomy, které mají hodnoty genů rovny true nebo false). Logický operátor je potom aplikován mezi geny, které jsou v rodičovských chromozomech na stejné pozici. Pro chromozomy, které mají geny reprezentované reálnými čísly to může být například průměr jednotlivých genů na stejných pozicích v rodičovských chromozomech. Operátorů křížení existuje mnoho. Často jsou aplikovatelné pouze na jeden typ úlohy (byly pro tento ty úlohy přímo navrženy). Zde jsem uvedla jen zlomek z množství, které existuje. 3.5 Mutace Mutace představuje náhodný prvek, který často způsobí, že algoritmus prohledá i jinou část stavového prostoru řešení, než kam původně algoritmus konvergoval. Proces mutace prochází celou populaci a s pravděpodobností mutace náhodně pozmění vybraného jedince. Pokud například máme chromozomy, které mají geny reprezentované hodnotami true/false, potom projde chromozom a náhodně mu může změnit hodnoty z true na false nebo obráceně. Mutace může také například prohodit pořadí dvou náhodně vybraných genů v chromozomu. 3.6 Selekce V genetickém algoritmu musíme často vybrat z populace nějakého jedince. S tímto jedincem můžeme například počítat jako s rodičem při křížení, nebo ho rovnou překopírovat do další generace řešení. V procesu selekce je důležité zvýhodnit jedince, kteří mají lepší fitness před jedinci s horší fitness. Selekce ale musí mít zároveň i element náhody tak, aby nebyla nejlepší řešení preferována příliš (potom hrozí předčasná konvergence do suboptimálního řešení úlohy). Ruletová selekce (Roulette-wheel selection) Je to asi nejčastěji zvolená selekce. Vezme se imaginární ruletové kolo, které je rozdělené na části, které odpovídají jednotlivým chromozomům z populace. Každý chromozom má tak velkou část, že to odpovídá velikosti jeho fitness vůči hodnotám fitness napříč populací (je to tedy různě veliká výseč z kruhu, přičemž tyto výseče jsou navzájem disjunktní). Pro každého jedince je jeho procentuální d i část kola rulety spočtena vzorcem: d i = f i N j=1 f j 100, i {1,.., N} 12/60

29 3 GENETICKÝ ALGORITMUS Kde N je počet jedinců v populaci a f i je fitness i-tého jedince. Poté, co máme ruletové kolo rozvrženo, náhodně vybereme nějakou pozici na okraji. Vyhraje jedinec, kterému patří daná výseč. Pořadová selekce (Rank selection) Tato selekce je velice podobná ruletové selekci, protože opět využívá ruletové kolo pro rozhodnutí. Rozdíl je v tom, na jaké části je kolo rozděleno. Nejprve kolo rozdělíme na p stejně velkých částí, kde p = N i. Poté jedince v populaci seřadíme podle fitness tak, aby nejhorší byli na začátku této seřazené posloupnosti. Posloupnost postupně projdeme a první jedinec dostane přesně jeden díl, druhý dva, třetí o jeden více a tak dále. Vezměme například případ, kdy jedinec P 1 má fitness 50 a jedinec P 2 má fitness 1. Potom v ruletové selekci by první jedinec zabíral 50 z kola, zatímco jedinec P 51 2 by měl jen 1 z kola. Vezmeme-li ale pořadovou selekci, potom bude mít jedinec P z kola a jedinec 3 1 P 2 z kola a šance na vybrání jedince P 3 2 se zvedne. i=1 Turnajový výběr (Tournament selection) Pro každý výběr jedince z populace se uspořádá tzv. turnaj. Na začátku se zvolí velikost turnaje K a poté přesně tolik jedinců zcela náhodně vybereme z populace. Nakonec porovnáme fitness jedinců, kteří se do K -tice dostali a zvolíme toho, který má nejlepší fitness. Velikostí turnaje můžeme přímo řídit, zda budou zvýhodněni silnější nebo slabší jedinci. Velmi malá velikost turnaje znamená větší šance pro horší jedince. Toto byly některé z důležitých selekcí, které se u genetických algoritmů využívají. Stejně jako operátorů křížení jich je ale mnoho. Selekce a i její parametry vždy záleží na konkrétní úloze. 3.7 Inicializace populace Aby mohl algoritmus začít, musí mít k dispozici počáteční populaci jedinců (řešení). Ta je nejčastěji vygenerována zcela náhodně. Tedy tak, že každému jedinci je zvolena náhodná hodnota genů (z povolené množiny hodnot). V určitých případech se může stát, že hodnoty v chromozomu jsou vázány nějakou podmínkou. Například v úloze obchodního cestujícího se nesmí opakovat čísla měst v jednom chromozomu. Často se pak volí nějaká speciální metoda generování, nebo se po náhodném vygenerování ještě spustí nějaký proces, který daný chromozom opraví tak, aby odpovídal konzistentnímu chromozomu úlohy. 13/60

30 3 GENETICKÝ ALGORITMUS 3.8 Obecné schéma genetického algoritmu Algoritmus 1 Základní schéma genetického algoritmu populace = inicializacep opulace() ohodnotf itness(populace) while!ukoncovacipodminka do novap opulace = novap opulace+ = zkopirujelitnijedince(populace) while velikost(populace)!= velikost(novapopulace) do prvnirodic = operatorselekce(populace) druhyrodic = operatorselekce(populace) prvnip otomek = krizeni(prvnirodic, druhyrodic) druhyp otomek = krizeni(druhyrodic, prvnirodic) prvnip otomek = mutujsp ravdepodobnostim utace(prvnip otomek) druhyp otomek = mutujsp ravdepodobnostim utace(druhyp otomek) novap opulace+ = prvnip otomek novap opulace+ = druhyp otomek end while populace = novap opulace ohodnotf itness(populace) end while return vratn ejlepsihojedince(populace) Do této chvíle jsme si popisovali důležité prvky genetického algoritmu. Nyní si popíšeme, jak takový obecný genetický algoritmus funguje. Nejprve je vygenerována počáteční populace. To je první generace řešení genetického algoritmu. Tato populace je celá ohodnocena fitness funkcí a poté je vystavena operátorům křížení a mutace (každý s vlastní pravděpodobností, že nastane) a nový jedinci, kteří tímto procesem vzniknou, jsou kopírováni do populace nové. To se opakuje, dokud není nová populace plná. Jedinci, kteří se mají křížit a mutovat jsou vybráni procesem selekce (kde hraje roli jejich fitness). Nově vzniklá populace se poté prohlásí za současnou generaci řešení, opět se celá ohodnotí fitness funkcí a z ní se dále generuje další. To probíhá, dokud není naplněna ukončovací podmínka. V okamžiku, kdy platí ukončovací podmínka, algoritmus na výstup vydá doposud nejlepší nalezené řešení problému. Toto nejobecnější schéma si můžete prohlédnout jako pseudokód v Algoritmu 1. Druhou možností je místo populace nové, vkládat nové jedince do té staré, kterou poté budeme dále používat v další generaci. O tom, kterého jedince v aktuální populaci 14/60

31 3 GENETICKÝ ALGORITMUS nahradit, můžeme rozhodnout tzv. replacement strategií. Nový jedinci můžou například nahradit vlastní rodiče, nebo nejhorší jedince v populaci. 3.9 Ukončení algoritmu Jako ukončovací podmínku je nejčastěji zvolen počet generací, které se mají v algoritmu vytvořit. Další možností je ukončit algoritmus po určitém časovém úseku. V neposlední řadě je možné algoritmus ukončit, pokud se nejlepší řešení po mnoha generací již nemění. 15/60

32 4 NAVRŽENÝ EVOLUČNÍ ALGORITMUS PRO ŘEŠENÍ GTSP 4 Navržený evoluční algoritmus pro řešení GTSP 4.1 Základní verze navrženého evolučního algoritmu Genetický algoritmus je velice široký pojem. V této sekci budou dopodrobna popsány konkrétní části použitého genetického algoritmu. Postupně přes použitý model, zvolené operátory a výpočet fitness funkce Chromozom Každý jedinec (tj. řešení problému) se skládá ze dvou částí: 1. Nepřímá reprezentace pořadí klastrů, která obsahuje pořadí klastrů, na které se postupně aplikuje heuristika nejbližšího souseda. 2. Ve druhé části chromozomu je zaznamenáno, který vrchol je vybraný v konkrétním klastru (tedy vrcholy výsledné kružnice) Fitness Protože chromozom obsahuje pouze nepřímou reprezentaci pořadí klastrů, je potřeba nejprve aplikovat heuristiku nejbližšího souseda a tak získat přímé pořadí klastrů. Z této přímé reprezentace lze již zrekonstruovat výslednou kružnici tak, že jsou postupně vybrány body z klastrů v pořadí, ve kterém jsou čteny z přímé reprezentace. Jako výsledná fitness je poté spočtena délka kružnice (jako součet vzdáleností bodů, které jsou v kružnici přímo za sebou). O tom, jak funguje nepřímá reprezentace pořadí klastrů, která hraje velice důležitou roli v počítání fitness jedince, si více povíme v sekci, která se heuristice nejbližšího souseda věnuje Model GA Navrhovaný algoritmus pro řešení GTSP problému vytvoří novou populaci ze staré pomocí nahrazovací strategie, která využívá elitistické selekční schéma. Elitistické selekční schéma znamená, že je nejprve do nové populace zkopírováno K nejlepších jedinců z populace předchozí (kde K je pevně zvolené číslo, které se ale může měnit při různě velkých vstupních datech). 16/60

33 4 NAVRŽENÝ EVOLUČNÍ ALGORITMUS PRO ŘEŠENÍ GTSP Zbytek nové populace je vyplněno tak, že jsou vždy vybrány dva chromozomy z předchozí generace, které projdou křížením a mutací a výslední dva nový jedinci jsou vloženi do nově vznikající populace. První chromozom je vybrán z K elitních jedinců a druhý chromozom pomocí turnajového výběru ze zbytku populace Křížení Poté, co jsou dva jedinci vybráni tak, jak je to popsáno výše, je rozhodnuto (na základě pravděpodobnosti křížení), zda na ně bude použit operátor křížení. Pokud operátor křížení být použit nemá, potom algoritmus jen vytvoří kopie rodičovských chromozomů a ty pošle do nové generace. Pokud je ale rozhodnuto, že křížení proběhne, je použit tzv. order-based crossover operátor. Order-based crossover operátor křížení byl převzat z práce od autora G. Syswerda [11]. Nejprve je zvolena pravděpodobnost překopírování klastru z nepřímé reprezentace pořadí klastrů prvního rodiče. Poté je procházen první rodič a nad každým genem chromozomu (ten vlastně obsahuje číslo klastru) se na základě této pravděpodobnosti rozhodne, zda do potomka překopírovat klastr na této pozici. Zbylé pozice v potomkovi (ty pozice, které nebyly vybrány z prvního rodiče) jsou vyplněny z druhého rodiče. Ten se postupně od začátku prochází a pokud je nalezeno číslo klastru, které potomek ještě neobsahuje, potom je vložen do potomka na první volnou pozici. Takto je postupně vytvořeno opět konzistentní řešení (takové, které obsahuje každé číslo klastru právě jednou). Tento postup vytvoří prvního potomka. Druhý potomek je vytvořen tak, že je vyměněno pořadí prvního a druhého rodičovského jedince pro proces křížení a opět aplikován orderbased crossover Mutace Po křížení je na základě pravděpodobnosti mutace u každého potomka rozhodnuto, zda na něj bude aplikován nějaký z operátorů mutace. V této práci je použit více než jeden operátor mutace a proto je pro každý operátor mutace aplikována vlastní pravděpodobnost mutace. Může se stát, že na jednoho jedince jsou aplikovány všechny operátory mutace a stejně tak se může stát, že není aplikovaný žádný. Po důkladném zvážení pro a proti možných operátorů mutace byly zvoleny tyto: Vrcholová mutace: Mutace nahradí v rámci klastru náhodně vrchol. Mutace pořadí klastrů: Mutace vybere náhodně dva klastry a prohodí jejich pořadí v chromozomu. 17/60

34 4 NAVRŽENÝ EVOLUČNÍ ALGORITMUS PRO ŘEŠENÍ GTSP Inicializace počáteční populace Jako první krok musí algoritmus vygenerovat počáteční populaci. Pro každého nového jedince je potřeba vygenerovat pořadí klastrů v nepřímé reprezentaci pro heuristiku nejbližšího souseda a také část chromozomu, která říká, který vrchol je vybraný v daném klastru. Nepřímé pořadí klastrů je pole čísel klastrů a vznikne naprosto náhodně. Vezme se pole se všemi čísly klastrů a náhodně je v něm prohozeno jejich pořadí. Vrcholová část chromozomu je vygenerována tak, že pro každý klastr je vybrán vrchol, přes který povede výsledná kružnice. Tento vrchol je vybrán tak, že u každého klastru je spočten tzv. centroid. Centroid je bod, který má x-ovou souřadnici v místě aritmetického průměru všech x-ových souřadnic bodů v klastru a y-ovou souřadnici opět v místě aritmetického průměru všech y-ových souřadnic bodů v klastru. Nakonec je pro daný klastr vybrán bod, který je nejblíže vypočítanému centroidu. Algoritmus 2 Základní schéma navrženého evolučního algoritmu pro řešení GTSP populace = inicializacep opulace() ohodnotf itness(populace) while!ukoncovacipodminka do novap opulace = novap opulace+ = zkopirujelitnijedince(populace) while velikost(populace)!= velikost(novapopulace) do prvnirodic = vyberzelitnich(populace) druhyrodic = vybert ournamentv yberem(populace) if pravdepodobnostkrizeni then prvnip otomek = krizeni(prvnirodic, druhyrodic) druhyp otomek = krizeni(druhyrodic, prvnirodic) else prvnip otomek = vytvorkopii(prvnirodic) druhyp otomek = vytvorkopii(druhyrodic) end if prvnip otomek = mutujsp ravdepodobnostim utace(prvnip otomek) druhyp otomek = mutujsp ravdepodobnostim utace(druhyp otomek) novap opulace+ = prvnip otomek novap opulace+ = druhyp otomek end while populace = novap opulace ohodnotf itness(populace) end while return vratn ejlepsihojedince(populace) 18/60

35 4 NAVRŽENÝ EVOLUČNÍ ALGORITMUS PRO ŘEŠENÍ GTSP Ukončení algoritmu Jako ukončovací podmínku byl zvolen počet generací populace Pseudokód hlavního cyklu navrženého genetického algoritmu Pseudokód základní verze navrženého genetického algoritmu je v Algoritmu 2. Funkce ohodnotfitness() uloží vypočtené fitness hodnoty rovnou do chromozomů v populaci a z nich se poté v případě potřeby čtou. Funkce mutujspravdepodobnostimutace() může jedince zmutovat. O tom, zda ho zmutovat mutací vrcholů, klastrů nebo oběma, je rozhodnuto podle jednotlivých pravděpodobností mutace. 4.2 Heuristika nejbližšího souseda V této sekci si detailně popíšeme použití heuristiky nejbližšího souseda v navrhovaném genetickém algoritmu. Inspirací pro konkrétní použití v genetickém algoritmu byla práce IRREAN [7]. V této sekci je počítáno s tím, že každý klastr má svoje unikátní číslo tak, že začínají od 1 a pokračují za sebou do počtu klastrů Přímá reprezentace pořadí klastrů Přímou reprezentací rozumíme takovou reprezentaci, která nám dává pořadí klastrů tak, jak jak jsou postupně seřazeny ve výsledné kružnici. Je to tedy vlastně seznam čísel klastrů, který od začátku procházíme a složíme výslednou kružnici Nepřímá reprezentace pořadí klastrů Nepřímá reprezentace je prioritní seznam čísel klastrů. Jde o pořadí, ve kterém bude na jednotlivé klastry aplikována heuristika nejbližšího souseda. Tato heuristika, která bude více popsána níže, bude aplikována postupně na všechny klastry a postupně tak získá výsledné pořadí klastrů (tedy přímou reprezentaci). Na tomto principu je založeno počítání fitness hodnoty chromozomů v této práci. Nejprve se vezme nepřímá reprezentace chromozomu, na kterou je aplikována heuristika nejbližšího souseda tak, aby vnikla přímá reprezentace. Poté se postupně projde přímá reprezentace a ke každému klastru se vybere příslušný bod (toto přiřazení vybraného bodu pro každý klastr je také součástí chromozomu). Výsledná kružnice je spojení těchto bodů. 19/60

36 4 NAVRŽENÝ EVOLUČNÍ ALGORITMUS PRO ŘEŠENÍ GTSP Důležitou součástí nepřímé reprezentace je to, že jedna výsledná kružnice může být reprezentována různými prioritními seznamy klastrů. Je tedy více možností, jak do výsledného optimálního řešení dokonvergovat. Dalším důležitým aspektem nepřímé reprezentace je to, že některá pořadí klastrů mohou být nedosažitelné Vzdálenost dvou klastrů Aby bylo možné hledat pro nějaký klastr nejbližšího souseda, je potřeba definovat vzdálenost mezi klastry. Pro tento typ úlohy byla zvolena metoda spočtení centroidu pro oba klastry a vzdálenost mezi nimi je potom vzdálenost mezi centroidy jednotlivých klastrů. Centroid klastru je bod, jehož x-sová souřadnice je spočtena jako aritmetický průměr všech x-ových souřadnic bodů v tomto klastru. Stejně se vypočítá i y-ová souřadnice - tedy aritmetický průměr všech y-ových souřadnic bodů v klastru. Další zřejmou možností, jak spočítat vzdálenost dvou klastrů, by bylo vzít dva nejbližší body obou klastrů a spočíst jejich vzdálenost. Tato možnost byla ale nakonec vyloučena, protože by bylo výpočetně náročné vždy hledat dva nejbližší body dvou klastrů. Výhoda centroidu spočtívá v tom, že ho lze využít na spočtení vzdáleností ke všem ostatním klastrům Aplikace heuristiky nejbližšího souseda Klasická heuristika nejbližšího souseda funguje tak, že nejprve vezme startovní vrchol v a ten dále rozšíří o nejbližší vrchol u. V další iteraci je rozšiřován nově připojený vrchol u opět o nejbližšího souseda tak, aby nevznikl cyklus. Takto se pokračuje, dokud není kružnice dokončená. Tento postup je jednoduché naprogramovat a má malou časovou složitost. Často ovšem, díky jeho hladové povaze, najde pouze suboptimální kružnici. Proto navržený algoritmus v této práci používá upravenou heuristiku nejbližšího souseda tak, jak je navržena v práci IREANN [7]. V této heuristice je vzána nepřímá reprezentace klastrů. To je vlastně prioritní seznam čísel klastrů, který bude od začátku procházen. Např. {1, 3, 2, 4} znamená, že nejprve je heuristika nejbližšího souseda aplikována na klastr 1, poté 3, 2 a nakonec 4. Komponenta nějakého vrcholu je v tomto případě maximální souvislý podgraf, který obsahuje daný vrchol. Evidentně komponenta může obsahovat více vrcholů a stejně tak 20/60

Genetické algoritmy. Informační a komunikační technologie ve zdravotnictví

Genetické algoritmy. Informační a komunikační technologie ve zdravotnictví Genetické algoritmy Informační a komunikační technologie ve zdravotnictví Přehled přednášky Úvod Historie Základní pojmy Principy genetických algoritmů Možnosti použití Související metody AI Příklad problém

Více

Evoluční algoritmy. Podmínka zastavení počet iterací kvalita nejlepšího jedince v populaci změna kvality nejlepšího jedince mezi iteracemi

Evoluční algoritmy. Podmínka zastavení počet iterací kvalita nejlepšího jedince v populaci změna kvality nejlepšího jedince mezi iteracemi Evoluční algoritmy Použítí evoluční principů, založených na metodách optimalizace funkcí a umělé inteligenci, pro hledání řešení nějaké úlohy. Populace množina jedinců, potenciálních řešení Fitness function

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

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

Metaheuristiky s populacemi

Metaheuristiky s populacemi Metaheuristiky s populacemi 8. března 2018 1 Společné vlastnosti 2 Evoluční algoritmy 3 Optimalizace mravenčí kolonie Zdroj: El-Ghazali Talbi, Metaheuristics: From Design to Implementation. Wiley, 2009.

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

Optimalizační algoritmy inspirované chováním mravenců

Optimalizační algoritmy inspirované chováním mravenců Optimalizační algoritmy inspirované chováním mravenců Biologická analogie ACO metaheuristic Ant system a jeho modifikace Specifikace problémů Aplikace Motivace NP-hard problémy časová náročnost nalezení

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

Hranová konzistence. Arc consistency AC. Nejprve se zabýváme binárními CSP. podmínka odpovídá hraně v grafu podmínek

Hranová konzistence. Arc consistency AC. Nejprve se zabýváme binárními CSP. podmínka odpovídá hraně v grafu podmínek Hranová konzistence Arc consistency AC Nejprve se zabýváme binárními CSP podmínka odpovídá hraně v grafu podmínek Hrana (V i, V j ) je hranově konzistentní, právě když pro každou hodnotu x z aktuální domény

Více

Gramatická evoluce a softwarový projekt AGE

Gramatická evoluce a softwarový projekt AGE Gramatická evoluce a softwarový projekt AGE Adam Nohejl Matematicko-fyzikální fakulta Univerzita Karlova v Praze http://nohejl.name/ 4. 4. 2010 Poznámka: Prezentace založené na variantách těchto slajdů

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

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

Prohledávání do šířky = algoritmus vlny

Prohledávání do šířky = algoritmus vlny Prohledávání do šířky = algoritmus vlny - souběžně zkoušet všechny možné varianty pokračování výpočtu, dokud nenajdeme řešení úlohy průchod stromem všech možných cest výpočtu do šířky, po vrstvách (v každé

Více

Evoluční výpočetní techniky (EVT)

Evoluční výpočetní techniky (EVT) Evoluční výpočetní techniky (EVT) - Nacházejí svoji inspiraci v přírodních vývojových procesech - Stejně jako přírodní jevy mají silnou náhodnou složku, která nezanedbatelným způsobem ovlivňuje jejich

Více

Dynamické datové struktury III.

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

Více

Projekční algoritmus. Urychlení evolučních algoritmů pomocí regresních stromů a jejich zobecnění. Jan Klíma

Projekční algoritmus. Urychlení evolučních algoritmů pomocí regresních stromů a jejich zobecnění. Jan Klíma Urychlení evolučních algoritmů pomocí regresních stromů a jejich zobecnění Jan Klíma Obsah Motivace & cíle práce Evoluční algoritmy Náhradní modelování Stromové regresní metody Implementace a výsledky

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

Základy umělé inteligence

Základy umělé inteligence Základy umělé inteligence Automatické řešení úloh Základy umělé inteligence - prohledávání. Vlasta Radová, ZČU, katedra kybernetiky 1 Formalizace úlohy UI chápe řešení úloh jako proces hledání řešení v

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

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

Genetické algoritmy a jejich praktické využití

Genetické algoritmy a jejich praktické využití Genetické algoritmy a jejich praktické využití Pavel Šturc PB016 Úvod do umělé inteligence 21.12.2012 Osnova Vznik a účel GA Princip fungování GA Praktické využití Budoucnost GA Vznik a účel GA Darwinova

Více

Paralelní grafové algoritmy

Paralelní grafové algoritmy Paralelní grafové algoritmy Značení Minimální kostra grafu Nejkratší cesta z jednoho uzlu Nejkratší cesta mezi všemi dvojicemi uzlů Použité značení Definition Bud G = (V, E) graf. Pro libovolný uzel u

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

PŘEDNÁŠKA 03 OPTIMALIZAČNÍ METODY Optimization methods

PŘEDNÁŠKA 03 OPTIMALIZAČNÍ METODY Optimization methods CW057 Logistika (R) PŘEDNÁŠKA 03 Optimization methods Ing. Václav Venkrbec skupina obecných modelů slouží k nalezení nejlepšího řešení problémů a modelovaných reálií přináší řešení: prvky konečné / nekonečné

Více

Heuristické řešení problémů. Seminář APS Tomáš Müller 6. 7. 2002

Heuristické řešení problémů. Seminář APS Tomáš Müller 6. 7. 2002 Heuristické řešení problémů Seminář APS Tomáš Müller 6. 7. 00 Heuristické řešení problémů Popis několika základních metod lokální prohledávání branch and bound simulated annealing, TABU evoluční algoritmy

Více

11. Tabu prohledávání

11. Tabu prohledává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

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

Optimalizační algoritmy inspirované chováním mravenců

Optimalizační algoritmy inspirované chováním mravenců Optimalizační algoritmy inspirované chováním mravenců Motivace a biologická analogie ACO metaheuristic Ant system a jeho modifikace Specifikace problémů vhodných pro ACO Aplikace Motivace NP-hard problémy

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

VUT Brno Fakulta informačních technologií Simulační nástroje a techniky (SNT) 2014/2015 Vehicle routing problem Ant colony

VUT Brno Fakulta informačních technologií Simulační nástroje a techniky (SNT) 2014/2015 Vehicle routing problem Ant colony VUT Brno Fakulta informačních technologií Simulační nástroje a techniky (SNT) 2014/2015 Vehicle routing problem Ant colony František Němec (xnemec61) xnemec61@stud.fit.vutbr.cz 19. července 2015 1 Úvod

Více

bfs, dfs, fronta, zásobník, prioritní fronta, halda

bfs, dfs, fronta, zásobník, prioritní fronta, halda bfs, dfs, fronta, zásobník, prioritní fronta, halda Petr Ryšavý 20. září 2016 Katedra počítačů, FEL, ČVUT prohledávání grafů Proč prohledávání grafů Zkontrolovat, zda je sít spojitá. Hledání nejkratší

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

07 Základní pojmy teorie grafů

07 Základní pojmy teorie grafů 07 Základní pojmy teorie grafů (definice grafu, vlastnosti grafu, charakteristiky uzlů, ohodnocené grafy) Definice grafu množina objektů, mezi kterými existují určité vazby spojující tyto objekty. Uspořádaná

Více

TGH09 - Barvení grafů

TGH09 - Barvení grafů TGH09 - Barvení grafů Jan Březina Technical University of Liberec 15. dubna 2013 Problém: Najít obarvení států na mapě tak, aby žádné sousední státy neměli stejnou barvu. Motivační problém Problém: Najít

Více

Genetické algoritmy. Vysoká škola ekonomická Praha. Tato prezentace je k dispozici na: http://www.utia.cas.cz/vomlel/

Genetické algoritmy. Vysoká škola ekonomická Praha. Tato prezentace je k dispozici na: http://www.utia.cas.cz/vomlel/ Genetické algoritmy Jiří Vomlel Laboratoř inteligentních systémů Vysoká škola ekonomická Praha Tato prezentace je k dispozici na: http://www.utia.cas.cz/vomlel/ Motivace z Darwinovy teorie evoluce Přírodní

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

jednoduchá heuristika asymetrické okolí stavový prostor, kde nelze zabloudit připustit zhoršují cí tahy Pokročilé heuristiky

jednoduchá heuristika asymetrické okolí stavový prostor, kde nelze zabloudit připustit zhoršují cí tahy Pokročilé heuristiky Pokročilé heuristiky jednoduchá heuristika asymetrické stavový prostor, kde nelze zabloudit připustit zhoršují cí tahy pokročilá heuristika symetrické stavový prostor, který vyžaduje řízení 1 2 Paměť pouze

Více

Seminář z umělé inteligence. Otakar Trunda

Seminář z umělé inteligence. Otakar Trunda Seminář z umělé inteligence Otakar Trunda Plánování Vstup: Satisficing task: počáteční stav, cílové stavy, přípustné akce Optimization task: počáteční stav, cílové stavy, přípustné akce, ceny akcí Výstup:

Více

Ant Colony Optimization 1 / 26

Ant Colony Optimization 1 / 26 GoBack Ant Colony Optimization 1 / 26 Vznik Chování mraveců Double Bridge Experiment Řešení via ACO Metaheuristika 2 / 26 Vznik Vznik Chování mraveců Double Bridge Experiment Řešení via ACO Metaheuristika

Více

bfs, dfs, fronta, zásobník, prioritní fronta, halda

bfs, dfs, fronta, zásobník, prioritní fronta, halda bfs, dfs, fronta, zásobník, prioritní fronta, halda Petr Ryšavý 19. září 2017 Katedra počítačů, FEL, ČVUT prohledávání grafů Proč prohledávání grafů Zkontrolovat, zda je sít spojitá. Hledání nejkratší

Více

Genetické programování

Genetické programování Genetické programování Vyvinuto v USA v 90. letech J. Kozou Typické problémy: Predikce, klasifikace, aproximace, tvorba programů Vlastnosti Soupeří s neuronovými sítěmi apod. Potřebuje značně velké populace

Více

Semestrální práce z KIV/PRO. Využití Voroného diagramu pro inicializaci K-means

Semestrální práce z KIV/PRO. Využití Voroného diagramu pro inicializaci K-means Semestrální práce z KIV/PRO Využití Voroného diagramu pro inicializaci K-means shlukování Jméno Příjmení (Osobní číslo) 11. prosince 2014 Obsah 1 Úvod 2 2 Vysvětlení pojmů 3 2.1 K-means shlukování.........................

Více

Náplň. v.0.03 16.02.2014. - Jednoduché příklady na práci s poli v C - Vlastnosti třídění - Způsoby (algoritmy) třídění

Náplň. v.0.03 16.02.2014. - Jednoduché příklady na práci s poli v C - Vlastnosti třídění - Způsoby (algoritmy) třídění Náplň v.0.03 16.02.2014 - Jednoduché příklady na práci s poli v C - Vlastnosti třídění - Způsoby (algoritmy) třídění Spojení dvou samostatně setříděných polí void Spoj(double apole1[], int adelka1, double

Více

Algoritmy na ohodnoceném grafu

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

Více

Řešení: PŘENESVĚŽ (N, A, B, C) = přenes N disků z A na B pomocí C

Řešení: PŘENESVĚŽ (N, A, B, C) = přenes N disků z A na B pomocí C Hanojské věže - 3 kolíky A, B, C - na A je N disků různé velikosti, seřazené od největšího (dole) k nejmenšímu (nahoře) - kolíky B a C jsou prázdné - úkol: přenést všechny disky z A na B, mohou se odkládat

Více

Algoritmy a datové struktury

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

Více

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

Aproximativní algoritmy UIN009 Efektivní algoritmy 1

Aproximativní algoritmy UIN009 Efektivní algoritmy 1 Aproximativní algoritmy. 14.4.2005 UIN009 Efektivní algoritmy 1 Jak nakládat s NP-těžkými úlohami? Speciální případy Aproximativní algoritmy Pravděpodobnostní algoritmy Exponenciální algoritmy pro data

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

OPTIMALIZACE. (přehled metod)

OPTIMALIZACE. (přehled metod) OPTIMALIZACE (přehled metod) Typy optimalizačních úloh Optimalizace bez omezení Nederivační metody Derivační metody Optimalizace s omezeními Lineární programování Nelineární programování Globální optimalizace

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

STROMOVE ALGORITMY Prohledavani do sirky (level-order) Po vodorovnejch carach fronta

STROMOVE ALGORITMY Prohledavani do sirky (level-order) Po vodorovnejch carach fronta STROMOVE ALGORITMY Prohledavani do sirky (level-order) Po vodorovnejch carach vlož do fronty kořen opakuj, dokud není fronta prázdná 1. vyber uzel z fronty a zpracuj jej 2. vlož do fronty levého následníka

Více

4. NP-úplné (NPC) a NP-těžké (NPH) problémy

4. NP-úplné (NPC) a NP-těžké (NPH) problémy 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 4. NP-úplné (NPC) a NP-těžké (NPH) problémy Karpova redukce

Více

Úloha ve stavovém prostoru SP je <s 0, C>, kde s 0 je počáteční stav C je množina požadovaných cílových stavů

Úloha ve stavovém prostoru SP je <s 0, C>, kde s 0 je počáteční stav C je množina požadovaných cílových stavů Stavový prostor a jeho prohledávání SP = formalismus k obecnějšímu uchopení a vymezení problému, který spočívá v nalezení posloupnosti akcí vedoucích od počátečního stavu úlohy (zadání) k požadovanému

Více

10. Složitost a výkon

10. Složitost a výkon Jiří Vokřínek, 2016 B6B36ZAL - Přednáška 10 1 Základy algoritmizace 10. Složitost a výkon doc. Ing. Jiří Vokřínek, Ph.D. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Jiří

Více

Navrženy v 60. letech jako experimentální optimalizační metoda. Velice rychlá s dobrou podporou teorie

Navrženy v 60. letech jako experimentální optimalizační metoda. Velice rychlá s dobrou podporou teorie Evoluční strategie Navrženy v 60. letech jako experimentální optimalizační metoda Založena na reálných číslech Velice rychlá s dobrou podporou teorie Jako první zavedla self-adaptation (úpravu sebe sama)

Více

A0M33EOA: Evoluční optimalizační algoritmy

A0M33EOA: Evoluční optimalizační algoritmy A0M33EOA: Evoluční optimalizační algoritmy Zkouškový test Pátek 8. února 2011 Vaše jméno: Známka, kterou byste si z předmětu sami dali, a její zdůvodnění: Otázka: 1 2 3 4 5 6 7 8 Celkem Body: 1 3 2 1 4

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

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

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

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

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA STROJNÍHO INŽENÝRSTVÍ ÚSTAV AUTOMATIZACE A INFORMATIKY FACULTY OF MECHANICAL ENGINEERING INSTITUTE OF AUTOMATION AND COMPUTER SCIENCE

Více

Státnice odborné č. 20

Státnice odborné č. 20 Státnice odborné č. 20 Shlukování dat Shlukování dat. Metoda k-středů, hierarchické (aglomerativní) shlukování, Kohonenova mapa SOM Shlukování dat Shluková analýza je snaha o seskupení objektů do skupin

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

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

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

Více

Stromy, haldy, prioritní fronty

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

Více

NP-ÚPLNÉ PROBLÉMY. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

NP-ÚPLNÉ PROBLÉMY. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze NP-ÚPLNÉ PROBLÉMY Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze BI-GRA, LS 2010/2011, Lekce 13 Evropský sociální fond Praha & EU: Investujeme do

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

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

12. Globální metody MI-PAA

12. Globální metody 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

TGH08 - Optimální kostry

TGH08 - Optimální kostry TGH08 - Optimální kostry Jan Březina Technical University of Liberec 14. dubna 2015 Problém profesora Borůvky řešil elektrifikaci Moravy Jak propojit N obcí vedením s minimální celkovou délkou. Vedení

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

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

TGH05 - aplikace DFS, průchod do šířky

TGH05 - aplikace DFS, průchod do šířky TGH05 - aplikace DFS, průchod do šířky Jan Březina Technical University of Liberec 31. března 2015 Grafová formulace CPM (critical path method) Orientovaný acyklický graf (DAG) je orientovaný graf neobsahující

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

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

Evolučníalgoritmy. Dále rozšiřována, zde uvedeme notaci a algoritmy vznikléna katedře mechaniky, Fakulty stavební ČVUT. Moderní metody optimalizace 1

Evolučníalgoritmy. Dále rozšiřována, zde uvedeme notaci a algoritmy vznikléna katedře mechaniky, Fakulty stavební ČVUT. Moderní metody optimalizace 1 Evolučníalgoritmy Kategorie vytvořená v 90. letech, aby se sjednotily jednotlivémetody, kterévyužívaly evoluční principy, tzn. Genetickéalgoritmy, Evolučnístrategie a Evoluční programování (v těchto přednáškách

Více

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

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

Více

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

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

Více

ZÁPADOČESKÁ UNIVERZITA V PLZNI FAKULTA STROJNÍ BAKALÁŘSKÁ PRÁCE. 2016/2017 Monika Knolová

ZÁPADOČESKÁ UNIVERZITA V PLZNI FAKULTA STROJNÍ BAKALÁŘSKÁ PRÁCE. 2016/2017 Monika Knolová ZÁPADOČESKÁ UNIVERZITA V PLZNI FAKULTA STROJNÍ BAKALÁŘSKÁ PRÁCE 2016/2017 ZÁPADOČESKÁ UNIVERZITA V PLZNI FAKULTA STROJNÍ Studijní program: B 2301 Strojní inženýrství Studijní zaměření: Průmyslové inženýrství

Více

Ant Colony Optimization

Ant Colony Optimization Ant Colony Optimization I am lost! Where is the line?! A Bug s Life, Walt Disney, 1998 ACO je metaheuristika, shrnující poznatky ze studia společenstev různých druhů mravenců. Heuristické algoritmy postavené

Více

Rozdělování dat do trénovacích a testovacích množin

Rozdělování dat do trénovacích a testovacích množin Rozdělování dat do trénovacích a testovacích množin Marcel Jiřina Rozpoznávání je důležitou metodou při zpracování reálných úloh. Rozpoznávání je definováno dvěma kroky a to pořízením dat o reálném rozpoznávaném

Více

Algoritmy pro shlukování prostorových dat

Algoritmy pro shlukování prostorových dat Algoritmy pro shlukování prostorových dat Marta Žambochová Katedra matematiky a informatiky Fakulta sociálně ekonomická Univerzita J. E. Purkyně v Ústí nad Labem ROBUST 21. 26. leden 2018 Rybník - Hostouň

Více

Emergence chování robotických agentů: neuroevoluce

Emergence chování robotických agentů: neuroevoluce Emergence chování robotických agentů: neuroevoluce Petra Vidnerová, Stanislav Slušný, Roman Neruda Ústav Informatiky, AV ČR Kognice a umělý život VIII Praha 28. 5. 2008 Evoluční robotika: EA & neuronové

Více

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

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

Více

Drsná matematika III 10. demonstrovaná cvičení Kostry grafů

Drsná matematika III 10. demonstrovaná cvičení Kostry grafů Drsná matematika III 10. demonstrovaná cvičení Kostry grafů Martin Panák Masarykova univerzita Fakulta informatiky 21.11. 2006 1 Domácí úlohy z minulého týdne Příklad 1 Příklad 2 Příklad 3 2 Borůvkův algoritmus

Více

2. úkol MI-PAA. Jan Jůna (junajan) 3.11.2013

2. úkol MI-PAA. Jan Jůna (junajan) 3.11.2013 2. úkol MI-PAA Jan Jůna (junajan) 3.11.2013 Specifikaci úlohy Problém batohu je jedním z nejjednodušších NP-těžkých problémů. V literatuře najdeme množství jeho variant, které mají obecně různé nároky

Více

TGH12 - Problém za milion dolarů

TGH12 - Problém za milion dolarů TGH12 - Problém za milion dolarů Jan Březina Technical University of Liberec 7. května 2013 Složitost problému Co je to problém? Složitost problému Co je to problém? K daným vstupním datům (velkému binárnímu

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

Použití dalších heuristik

Použití dalších heuristik Použití dalších heuristik zkracování cesty při FIND-SET UNION podle hodností Datové struktury... p[x] - předchůdce uzlu x MAKE-SET(x) p[x] := x hod[x] := 0 hod[x] - hodnost (aprox. výšky) UNION(x,y) LINK(FIND-SET(x),

Více

5.5 Evoluční algoritmy

5.5 Evoluční algoritmy 5.5 Evoluční algoritmy Jinou skupinou metod strojového učení, které vycházejí z biologických principů, jsou evoluční algoritmy. Zdrojem inspirace se tentokrát stal mechanismus evoluce, chápaný jako Darwinův

Více

TGH06 - Hledání nejkratší cesty

TGH06 - Hledání nejkratší cesty TGH06 - Hledání nejkratší cesty Jan Březina Technical University of Liberec 26. března 2013 Motivační problémy Silniční sít reprezentovaná grafem. Najdi nejkratší/nejrychlejší cestu z místa A do místa

Více

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INTELIGENTNÍCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INTELLIGENT SYSTEMS ŘEŠENÍ OPTIMALIZAČNÍCH

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

bfs, dfs, fronta, zásobník

bfs, dfs, fronta, zásobník bfs, dfs, fronta, zásobník Petr Ryšavý 25. září 2018 Katedra počítačů, FEL, ČVUT prohledávání grafů Proč prohledávání grafů Zkontrolovat, zda je sít spojitá. Hledání nejkratší cesty, plánování cest. Prohledávání

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

State Space Search Step Run Editace úloh Task1 Task2 Init Clear Node Goal Add Shift Remove Add Node Goal Node Shift Remove, Add Node

State Space Search Step Run Editace úloh Task1 Task2 Init Clear Node Goal Add Shift Remove Add Node Goal Node Shift Remove, Add Node State Space Search Po spuštění appletu se na pracovní ploše zobrazí stavový prostor první předpřipravené úlohy: - Zeleným kroužkem je označen počáteční stav úlohy, který nemůže být změněn. - Červeným kroužkem

Více

AVDAT Mnohorozměrné metody, metody klasifikace Shluková analýza

AVDAT Mnohorozměrné metody, metody klasifikace Shluková analýza AVDAT Mnohorozměrné metody, metody klasifikace Shluková analýza Josef Tvrdík Katedra informatiky Přírodovědecká fakulta Ostravská univerzita Shluková analýza Cílem shlukové analýzy je nalézt v datech podmnožiny

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 28. února 2017 Metainformace materiály: jan.brezina.matfyz.cz/vyuka/tgh (./materialy/crls8.pdf - Introduction to algorithms)

Více

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21. Vyhledávání doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 21. září 2018 Jiří Dvorský (VŠB TUO) Vyhledávání 242 / 433 Osnova přednášky

Více