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

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

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

Transkript

1 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 ALGORITMY PRO HLEDÁNÍ CESTY ALGORITHMS FOR SEARCHING THE PATH BAKALÁŘSKÁ PRÁCE BACHELOR S THESIS AUTOR PRÁCE AUTHOR VEDOUCÍ PRÁCE SUPERVISOR MICHAL PAVLIŠ Ing. TOMÁŠ MARADA, Ph.D. BRNO 00

2 Strana

3 Strana ZADÁNÍ ZÁVĚREČNÉ PRÁCE Do práce je vložen vyplněný formulář Zadání BP s příslušnými razítky a podpisy děkana FS a ředitele ÚAI.

4 Strana

5 Strana. Pan/paní LICENČNÍ SMLOUVA POSKYTOVANÁ K VÝKONU PRÁVA UŽÍT ŠKOLNÍ DÍLO (dále jen autor ) Jméno a příjmení: uzavřená mezi smluvními stranami: Michal Pavliš Bytem: Štefánikova, Hradec Králové, 00 Narozen/a (datum a místo):. Vysoké učení technické v Brně Fakulta strojního inženýrství se sídlem Technická 9/, 9 Brno.. 9, Hradec Králové a jejímž jménem jedná na základě písemného pověření děkanem fakulty: Doc. RNDr. Ing. Miloš Šeda, Ph.D., ředitel ÚAI (dále jen nabyvatel ) Čl. Specifikace školního díla. Předmětem této smlouvy je vysokoškolská kvalifikační práce (VŠKP): disertační práce diplomová práce bakalářská práce jiná práce, jejíž druh je specifikován jako... (dále jen VŠKP nebo dílo) Název VŠKP: Vedoucí/ školitel VŠKP: Ústav: Datum obhajoby VŠKP: Algoritmy pro hledání cesty Ing. Tomáš Marada, Ph.D. Ústav automatizace a informatiky VŠKP odevzdal autor nabyvateli v * : tištěné formě počet exemplářů elektronické formě počet exemplářů * hodící se zaškrtněte

6 Strana. Autor prohlašuje, že vytvořil samostatnou vlastní tvůrčí činností dílo shora popsané a specifikované. Autor dále prohlašuje, že při zpracovávání díla se sám nedostal do rozporu s autorským zákonem a předpisy souvisejícími a že je dílo dílem původním.. Dílo je chráněno jako dílo dle autorského zákona v platném znění.. Autor potvrzuje, že listinná a elektronická verze díla je identická. Článek Udělení licenčního oprávnění. Autor touto smlouvou poskytuje nabyvateli oprávnění (licenci) k výkonu práva uvedené dílo nevýdělečně užít, archivovat a zpřístupnit ke studijním, výukovým a výzkumným účelům včetně pořizovaní výpisů, opisů a rozmnoženin.. Licence je poskytována celosvětově, pro celou dobu trvání autorských a majetkových práv k dílu.. Autor souhlasí se zveřejněním díla v databázi přístupné v mezinárodní síti ihned po uzavření této smlouvy rok po uzavření této smlouvy roky po uzavření této smlouvy let po uzavření této smlouvy 0 let po uzavření této smlouvy (z důvodu utajení v něm obsažených informací). Nevýdělečné zveřejňování díla nabyvatelem v souladu s ustanovením b zákona č. / 99 Sb., v platném znění, nevyžaduje licenci a nabyvatel je k němu povinen a oprávněn ze zákona. Článek Závěrečná ustanovení. Smlouva je sepsána ve třech vyhotoveních s platností originálu, přičemž po jednom vyhotovení obdrží autor a nabyvatel, další vyhotovení je vloženo do VŠKP.. Vztahy mezi smluvními stranami vzniklé a neupravené touto smlouvou se řídí autorským zákonem, občanským zákoníkem, vysokoškolským zákonem, zákonem o archivnictví, v platném znění a popř. dalšími právními předpisy.. Licenční smlouva byla uzavřena na základě svobodné a pravé vůle smluvních stran, s plným porozuměním jejímu textu i důsledkům, nikoliv v tísni a za nápadně nevýhodných podmínek.. Licenční smlouva nabývá platnosti a účinnosti dnem jejího podpisu oběma smluvními stranami. V Brně dne:... Nabyvatel Autor

7 Strana ABSTRAKT Tato bakalářská práce se zabývá přehledem a vysvětlením principů algoritmů pro hledání cesty, jak neinformovaných, tak informovaných. U každého algoritmu jsou uvedeny jejich vlastnosti, výhody a nevýhody. Dále je uvedena reálná aplikace těchto algoritmů na příkladu robotu v bludišti pro soutěže Micromouse, kde jsou vysvětleny obvyklé a základní metody jak bludiště řešit ve smyslu nejkratší a nejrychlejší cesty. Výstupem bakalářské práce jsou názorné prezentace funkce jednotlivých algoritmů pro výukové účely v Microsoft PowerPointu. ABSTRACT This bachelor s work deal with a summary and definition of principles algorithms for searching the paths as uninformed search methods, so informed search methods. There are introduced properties, advantages and disadvantages for each of algorithm. Further is introduced a real application of these algorithms on instance of robot in the maze for Micromouse contests, where there are explained usual and basic methods how to solve the maze in sence of the shortest and the fastest paths. Departure of bachelor`s work there are an objective presentations function of separate algorihms for tutorial purposes in Microsoft PowerPoint. KLÍČOVÁ SLOVA Algoritmy pro hledání cesty, neinformované metody prohledávání, informované metody prohledávání, Micromouse. KEYWORDS Algorithms for searching the path, uninformed search methods, informed search methods, Micromouse.

8 Strana

9 Strana 9 Obsah: Zadání závěrečné práce... Licenční smlouva... Abstrakt... Úvod.... Co je to algoritmus.... Algoritmy pro hledání cesty = pathfinding.... Aplikace Pathfindingu.... Příklady k řešení úloh... Implementace prostředí (stavový prostor).... Grafová reprezentace.... Mapová reprezentace... Neinformované metody vyhledávání (uninformed search methods) Hledání do hloubky (depth-first search) Hledání do šířky (breadth-first search).... Algoritmus iterativního vyhledávání (depth-first iterative deeping).... Hledání do hloubky s omezenou hloubkou prohledávání (depth limited).... Hledání do šířky v obou směrech (bidirectional breadth-first search).... Hledání naslepo (blind search) Hledání metodou rozděl a panuj (divide and conquer search)... 0 Základní porovnání neinformovaných algoritmů pro hledání cesty... Informované metody vyhledávání (informed search methods).... Gradientní algoritmus (hill-climbing algorithm).... Rovnoměrné prohledávání (uniform-cost search).... Algoritmus uspořádaného prohledávání (best-first search algorithm).... Paprskové prohledávání s aperturou n (beam search) Algoritmus A (A algorithm) Algoritmus A* (A* algorithm)... 0 Základní porovnání informovaných algoritmů pro hledání cesty... Reálné aplikace algoritmů pro hledání cesty.... Co je to Micromouse.... Pravidla soutěže..... Bludiště..... Robot myš..... Hodnocení.... Algoritmy pro řešení bludiště, kde neexistují tzv. ostrůvky..... Algoritmus levé nebo pravé ruky..... Flood-fill algoritmus (the flood-fill algorithm).... Algoritmy pro řešení bludiště, kde existují tzv. ostrůvky Standardní flood-fill algoritmus (the flood-fill algorithm) Modifikovaný flood-fill algoritmus (the modified flood-fill algorithm).... Algoritmus nejrychlejší cesty bludištěm... Závěr... Seznam použité literatury...

10 Strana 0

11 Strana ÚVOD Algoritmy pro hledání cesty jsou velmi často používanými algoritmy v oblasti umělé inteligence. Jednou z charakteristik problémů umělé inteligence je to, že k jejich vyřešení potřebujeme hledání, pokusy o nalezení řešení. Velkou část problémů umělé inteligence můžeme reprezentovat orientovaným grafem, proto často nalezneme řešení prohledáváním grafů. Řešení úloh (angl. problem solving) chápeme jako odborný termín k označení velmi důležité partie umělé inteligence. [9] Je-li dán počáteční model prostředí a požadovaný koncový model prostředí, je úkolem systému na řešení úloh hledat vhodnou posloupnost akcí, jejichž aplikací lze přejít od počátečního modelu ke koncovému. Tato posloupnost se nazývá plánem a metody vytváření plánů pak označujeme jako metody řešení úloh. Řešení úlohy lze pak formulovat jako hledání cesty v orientovaném grafu. [9] Každá řídící strategie, má-li být úspěšnou, musí splňovat dvě základní vlastnosti: a) Musí vést k prohledávání (způsobovat pohyb a zabraňovat cyklům v posloupnosti pravidel), b) musí být systematická, to znamená, že nevynechá žádný stav a také, že žádný stav nevybere dvakrát. Vzhledem k velikosti stavového prostoru může být systematické prohledávání stavového prostoru velice neefektivní. Je totiž možné, že se zbytečně prohledává značná část stavového prostoru, která nevede k cíli. Prohledávání lze omezit využitím znalostí o řešeném problému. Tyto znalosti mají někdy charakter empirický, mohou to být neexaktní poznatky, o nichž víme, že jsou často užitečné při řešení, přičemž mnohdy ani nezaručují, že nalezneme řešení. Tyto znalosti nazýváme znalostmi heuristickými (tzv. heuristikami). Heuristiky se používají tam, kde není k dispozici exaktní algoritmus. Mohou mít různou podobu. Ze dvou řešitelů stejného problému ten, který je vybaven lepším souborem heuristik, prohledává menší část stavového prostoru, postupuje přímočařeji k cíli a jeho způsob řešení se jeví jako inteligentnější. Podle toho, zda jsou využity znalosti o dané úloze či nikoliv, rozlišujeme algoritmy informované a neinformované. [] Neinformované metody prohledávání stavového prostoru jsou schopny najít řešení problémů systematickým generováním nových stavů a testováním, zda splňují cílové podmínky. Potíž je v tom, že ve většině případů jsou tyto metody vysoce neefektivní (úplnost, čas, prostor, optimalita). Informované metody prohledávání jsou založeny na specifických znalostech pro daný problém a nalezení cíle je mnohem efektivnější, včetně lepší možnosti dosáhnout optimálního řešení.

12 Strana. Co je to algoritmus Algoritmus nebo dřívějším pravopisem algorithmus, je přesný návod či postup, kterým lze vyřešit daný typ úlohy. Pojem algoritmu se nejčastěji objevuje při programování, kdy se jím myslí teoretický princip řešení problému (oproti přesnému zápisu v konkrétním programovacím jazyce). Obecně se ale algoritmus může objevit v jakémkoli jiném vědeckém odvětví. Jako jistý druh algoritmu se může chápat i např. kuchyňský recept. []. Algoritmy pro hledání cesty = pathfinding Problém hledání cesty (angl. pathfinding) je schopnost najít pro daný objekt dobrou cestu z místa A do místa B v mapě, orientovaném grafu, nebo orientovaném stromu. Dobrou cestou se rozumí: Nejvhodnější, nejkratší, nejrychlejší, nejlevnější, nejjednodušší (např. v dopravě), nejbezpečnější cesta, atd. Reálná aplikace: Přijde nám přirozené, že když klikneme myší na nějaký předmět ve scéně počítačové hry, postava k němu dojde, přičemž se inteligentně vyhne všem překážkám, které ji stojí v cestě. To zajišťuje právě pathfinding. Existuje mnoho algoritmů, jak toho dosáhnout. Zpravidla se některé části scény označí jako neprůchozí, a algoritmy poté hledají volné průchody mezi těmito blokovanými oblastmi.. Aplikace Pathfindingu Hledání cest má mnoho aplikací v umělé inteligenci, počítačových hrách, virtuální realitě, vojenství a robotice, kde je potřeba vhodně procházet prostředím a vyhýbat se překážkám. Příkladem může být robot na vzdálené planetě, který musí být schopen pohybu nezávisle, protože k němu signály buď neproniknou nebo díky velké latenci signálu je nemožné ho dálkově ovládat člověkem. Pathfinding je užitečný v automatickém řízení vozidel a jiných dopravních prostředků. V počítačových hrách má pathfinding velké uplatnění zejména ve strategiích nebo ve hrách s počítačem řízenými protihráči. Zde je simulováno chování člověka při hledání cesty nebo se požaduje hledání nejkratších cest. Pathfinding je široce uplatňován také při zjišťování nejlepšího propojení směrovačů pro přenos zpráv v sítích, také při navrhování desek s plošnými spoji. Aplikací je opravdu hodně. []

13 Strana. Příklady k řešení úloh Procesy řešení úloh jsou prováděny podle určité řídící strategie, realizované ve formě algoritmů pro řešení úloh. Tvorba a studium vlastností těchto strategií jsou hlavním obsahem části umělé inteligence, kterou nazýváme řešení úloh. Ke klasickým, dnes již školním úlohám efektivně řešitelným metodami prohledávání stavového prostoru například patří: - Hlavolam tzv. Lišák. (Máme čtvercovou hrací desku s devíti místy, kterou tvoří osm očíslovaných kamenů od do. Jedna z možných pozic zůstává vždy neobsazena. Začínáme s náhodným rozmístěním kamenů, což lze považovat za počáteční stav, a koncový stav je charakterizován přiřazením jednotlivých kamenů daným místům viz. obr.. Posouváním kamenů s číslicemi přes volné pole se má docílit uvedeného cílového postavení.) Obr. : Hlavolam - Úloha přelévání vody. (Jsou dány dva džbány, menší má obsah a větší litry viz. znázornění na obr., dále je k dispozici kohoutek s vodou a odtokový žlábek. Na počátku řešení úlohy jsou oba džbány prázdné a pomocí pouze tří operací přelití vody z jednoho džbánu do druhého, vylití vody do žlábku a naplnění džbánu po okraj se má naplnit jeden ze džbánů dvěma litry vody a druhý má zůstat prázdný. K dispozici je neomezený zdroj vody a nádoby nemají žádné označení míry. Úlohu lze řešit i obecně pro více džbánů.) Obr. : Úloha přelévání vody - Úloha obchodního cestujícího. (Obchodník musí navštívit N měst viz. obr., každé pouze jedenkrát, a vrátit se do výchozího města tak, aby celková délka cesty byla minimální.)

14 Strana Obr. : Úloha obchodního cestujícího - Problém osmi královen. (Úkolem je umístit na hrací pole královen tak, aby žádná nebyla v ohrožení té druhé, viz. obr..) Obr. : Problém osmi královen - Úloha misionáři a kanibalové. ( kanibalové a misionáři se mají přepravit pomocí dvoumístné loďky z jednoho břehu řeky na druhý. Ze zřejmých důvodů však nikdy nesmí být na žádném břehu více kanibalů než misionářů.) - Úloha vlk, koza, zelí. (Problém podobný předchozímu: převozník má převézt z jednoho břehu řeky na druhý po jednom vlka, kozu a zelí, přičemž opět ze zřejmých důvodů nesmí nechat na žádném břehu bez dozoru vlka s kozou, nebo kozu se zelím.) Situace se vážně komplikuje v případě, že se jedná o dynamicky se měnící stavový prostor například, při řešení problému v dynamickém prostředí, nebo hře s počítačem řízeným protihráčem. []

15 Strana IMPLEMENTACE PROSTŘEDÍ (STAVOVÝ PROSTOR) Každému modelu umělé inteligence odpovídá jistý stav prostředí, množina všech stavů tvoří stavový prostor. Přechody mezi modely odpovídají přechodům mezi stavy. Stavový prostor je (uspořádaná) dvojice S = ( D, Φ ), kde D { s i } je konečná množina stavů, Φ { ϕ i } je konečná množina operátorů reprezentujících přechody mezi stavy. Každý operátor ϕ i : D D je (parciálním) zobrazením D do D. Operátor ϕ i může být reprezentován hranou grafu. Stavový prostor bývá nejčastěji detailněji reprezentován například orientovaným grafem, kde stavy jsou reprezentovány uzly grafu a operátory ϕ i jsou reprezentovány orientovanými hranami grafu stavového prostoru. Tato reprezentace umožňuje využívat obecných poznatků teorie grafů. [] Reprezentace stavovým prostorem: Umožňuje formální definici problému pomocí převodu daných situací na nějaké požadované situace použitím množiny přípustných operátorů. Umožňuje definovat proces řešení daného problému pomocí prohledávání stavového prostoru.. Grafová reprezentace Stavový prostor lze reprezentovat orientovaným grafem. Orientovaný graf G je definován jako uspořádaná dvojice ( V, E ), kde V je nějaká množina vrcholů a E je množina uspořádaných dvojic prvků množiny V. Prvky V se jmenují vrcholy grafu a prvky množiny E orientované hrany grafu, kde E V = V V. Dále už budu psát o orientovaném grafu jen jako o grafu, o orientované hraně jako o hraně apod. Každý vrchol reprezentuje jednotlivý stav úlohy, každá hrana přechod mezi těmito stavy způsobené danými elementárními operátory. Řešení úloh lze pak formulovat jako hledání přijatelné cesty v grafu, a to cesty mezi vrcholem počátečního stavu a vrcholem cílového stavu grafu stavového prostoru. Cílových stavů může být obecně více. Navíc cílový stav nemusí být popsán explicitně, může být popsán pouze podmínkami, které musí splňovat.

16 Strana V práci budu používat následující terminologii: Obr. : Grafová reprezentace stavového prostoru - Uzel A je uzlem kořenovým, - uzly S, T,, Y, Y jsou uzly listové, - uzel O je bezprostředním předchůdcem uzlu W atd., - uzly A, C, H, N jsou předchůdci uzlu V atd., - uzel K je bezprostředním následovníkem uzlu E atd., - uzly I, P, Q, X jsou následníci uzlu C atd., - uzel A má hloubku 0, uzly B, C, D mají hloubku atd., - expanzí uzlu se rozumí určení všech jeho bezprostředních následovníků, - generací uzlu se nazývá proces jeho vytvoření, - ohodnocením uzlu se nazývá určení jeho ceny; později bude upřesněno. [] Hloubkou uzlu ve stromu řešení rozumíme počet hran na cestě od počátečního uzlu k danému uzlu, viz. následující obrázek: Obr. : Hloubka stromu

17 Strana. Mapová reprezentace Struktura, na které se převádějí algoritmy pro hledání cesty, je také mapa, která je reprezentována jako množina M = N N (dvojrozměrná čtvercová síť). Políčko je prvek množiny M. Každé políčko reprezentuje pozici v mapě a má své souřadnice x, y vzhledem k počátku P. Vyznačené políčko A v mapě je označeno jako start [ ] a políčko B jako cíl cesty. m m, m,..., m n taková, že každé následující políčko sousedí s předcházejícím políčkem na cestě. Žádná políčka se v cestě neopakují. Cesta v mapě je posloupnost políček mapy ( ) Úkolem algoritmu bude najít nejkratší cestu v mapě ze startu do cíle (nejkratší ve smyslu délky cesty). [] Obr. : Mapová reprezentace stavového prostoru Snadno nahlédneme, že mapová reprezentace odpovídá speciálnímu případu grafu. Vrcholy odpovídají políčkům = bijektivní zobrazení převádějící vrcholy grafu na políčka nazveme s indexem m. Přechod mezi sousedními políčky odpovídá hraně a počáteční vrchol v grafu P g odpovídá počátečnímu vrcholu v mapě P m. Je ihned vidět, že takový graf je souvislý a každý vrchol má hran z něj vystupujících a hran do něj vstupujících, protože každé políčko má sousedů kam, nebo odkud se může jít. Díky existenci bijekce map můžeme nadefinovat ekvivalentní pojmy v mapě a grafu, jako například cesta v mapě (odpovídá pojmu cesta v grafu z teorie grafů a příslušné hrany se dají jednoznačně určit z posloupnosti vrcholů). Bijektivní zobrazení je tedy zobrazení, které přiřazuje každému prvku z výchozí množiny právě jeden prvek z cílové množiny. []

18 Strana

19 Strana 9 NEINFORMOVANÉ METODY VYHLEDÁVÁNÍ (UNINFORMED SEARCH METHODS) Neinformované metody vyhledávání jsou použitelné pouze v nejjednodušších případech. Tím, že nevyužívají znalostí prostředí, je ta část stavového prostoru, která byla prohledána, obvykle příliš velká. [9] Algoritmy neinformovaného vyhledávání dělíme z hlediska pořadí, ve kterém jsou uzly expandovány, na slepé vyhledávání do hloubky, slepé vyhledávání do šířky a jejich další modifikace. [] V následujících neinformovaných algoritmech (kap..,.,. a.) budu ukazovat příklady algoritmů na úloze hlavolam. Kde budou čísla nad uzly značit pořadí jejich expanze (levé číslo) a dále jejich hloubku (pravé číslo). Uvnitř uzlu bude zobrazován stav úlohy.. Hledání do hloubky (depth-first search) Prvním, základním algoritmem neinformovaného vyhledávání je slepé vyhledávání do hloubky (angl. depth-first search). Při tomto vyhledávání se přednostně expanduje uzel s největší hloubkou. Tento typ vyhledávání lze popsat níže uvedeným algoritmem. K popisu algoritmu vyhledávání do hloubky, ale i k popisu dalších algoritmů vyhledávání, zavedeme tak jak je obvyklé dva seznamy, a to seznam neexpandovaných stavů OPEN a seznam již expandovaných stavů CLOSED. [] Algoritmus vyhledávání do hloubky:. Zapiš počáteční stav do seznamu OPEN, seznam CLOSED je prázdný. Je-li počáteční stav současně stavem cílovým, ukonči vyhledávání.. Pokud je seznam OPEN prázdný, řešení neexistuje, ukonči vyhledávání.. Vymaž první stav (označíme jej i) v seznamu OPEN a zapiš tento stav do seznamu CLOSED.. Expanduj stav i. Pokud tento stav nemá následovníky nebo všichni následovníci byli již expandováni (tj. jsou v seznamu CLOSED), pokračuj krokem č... Zapiš všechny následovníky stavu i, kteří nejsou v seznamu CLOSED, na začátek seznamu OPEN.. Pokud některý z následovníků stavu i je cílovým stavem, řešení bylo nalezeno, ukonči vyhledávání. Jinak pokračuj krokem č.. []

20 Strana 0 Obr. : Vyhledávání do hloubky Metoda slepého vyhledávání do hloubky je úplná za podmínky, že omezíme hloubku vyhledávání, a řešení se nachází do této hloubky. Výhodou vyhledávání do hloubky jsou nižší nároky na paměť, neboť se v ní uchovávají pouze uzly na cestě od počátečního stavu ke stavu právě expandovanému. [9] Tento způsob vyhledávání může vést k cíli mnohem rychleji, zvláště když se vydáme správným směrem, než vyhledávání do šířky popsané v kapitole., ale nemáme zaručeno (v případě nekonečné větve), že vždy nalezneme koncový stav. Na rozdíl od vyhledávání do šířky můžeme některými uzly procházet vícekrát, neboť se často musíme navracet. [] Vlastnosti vyhledávání do hloubky: b = efektivní faktor větvení (angl. branching factor) m = maximální hloubka větve/délka cesty (angl. maximum depth/path) kritérium hledání do hloubky úplné NE (Je-li v grafu nekonečná větev, nebo existují-li cykly.) čas + b + b + b b d = O(b m ) paměť O(b m) optimální NE (Upřednostňuje jednu větev oproti druhé, z toho důvodu některé problémy, obdobně složité, mohou trvat srovnatelný čas.) Tab. : Vlastnosti vyhledávání do hloubky

21 Strana Výhody vyhledávání do hloubky: Nižší nároky na paměť, protože se v ní uchovávají pouze uzly na cestě od počátečního stavu ke stavu právě expandovanému. Nevýhody vyhledávání do hloubky: Nemusí nalézt řešení. Nemusí být nalezena nejkratší cesta. Příklad vyhledávání do hloubky pro hlavolam : OPEN CLOSED Obr. 9: Příklad vyhledávání do hloubky pro hlavolam Poznámka: Kompletní ukázka příkladu vyhledávání do hloubky pro hlavolam se nachází na CD přiloženém k bakalářské práci.

22 Strana. Hledání do šířky (breadth-first search) Při slepém vyhledávání do šířky (angl. breadth-first search) se nejdříve expanduje uzel s minimální hloubkou. Tento typ vyhledávání lze popsat níže uvedeným algoritmem. [] Algoritmus vyhledávání do šířky:. Zapiš počáteční stav do seznamu OPEN, seznam CLOSED je prázdný. Je-li počáteční stav současně stavem cílovým, ukonči vyhledávání.. Pokud je seznam OPEN prázdný, řešení neexistuje, ukonči vyhledávání.. Vymaž první stav (označíme jej i) v seznamu OPEN a zapiš tento stav do seznamu CLOSED.. Expanduj stav i. Pokud tento stav nemá následovníky nebo všichni následovníci byli již expandováni (tj. jsou v seznamu CLOSED), pokračuj krokem č... Zapiš všechny následovníky stavu i, kteří nejsou v seznamu CLOSED, na konec seznamu OPEN.. Pokud některý z následovníků stavu i je cílovým stavem, řešení bylo nalezeno, ukonči vyhledávání. Jinak pokračuj krokem č.. [] Obr. 0: Vyhledávání do šířky Metoda slepého vyhledávání do šířky je úplná, tj. pokud existuje cesta k cíli, pak bude vždy nalezena. Může při tom však být expandován neúměrně větší počet uzlů, než je skutečně třeba k řešení (procházíme všechny uzly, které mají hloubku menší, než je hloubka koncového uzlu). Každý uzel v grafu navštívíme nejvýše jednou. Tato metoda vždy najde nejkratší řešení. [9]

23 Strana Vlastnosti vyhledávání do šířky: b = efektivní faktor větvení (angl. branching factor) d = hloubka řešení/cíle (angl. goal depth) kritérium hledání do šířky ANO (Je-li b konečné, jestliže existuje řešení, nalezne jej; jedná-li se úplné o nekonečný graf, algoritmus nebude divergovat k řešení, v praxi pak dříve nebo později dojde k vyčerpání paměťových prostředků.) čas + b + b + b b d = O(b d+ ) paměť O(b d+ ) optimální ANO, optimalizuje-li se hloubka. Výhody vyhledávání do šířky: Tab. : Vlastnosti vyhledávání do šířky Vždy nalezne řešení. Vždy vede k nalezení nejkratší cesty. Nevýhody vyhledávání do šířky: Vyšší nároky na paměť oproti vyhledávání do hloubky, neboť se v ní uchovávají všechny uzly na cestě od počátečního stavu ke stavu právě expandovanému.

24 Strana Příklad vyhledávání do šířky pro hlavolam : OPEN CLOSED Obr. : Příklad vyhledávání do šířky pro hlavolam Poznámka: Kompletní ukázka příkladu vyhledávání do šířky pro hlavolam se nachází na CD přiloženém k bakalářské práci.. Algoritmus iterativního vyhledávání (depth-first iterative deeping) Určitým kompromisem mezi výhodami a nevýhodami vyhledávání do hloubky a do šířky je tzv. algoritmus iterativního vyhledávání (angl. depth-first iterative deeping), označovaný obvykle jako algoritmus DFID, nebo pod jiným názvem taktéž jako hledání do hloubky s postupným zanořováním. Algoritmus začíná úplným vyhledávání do hloubky tak, že v každé iteraci roste povolená hloubka vyhledávání o jedničku. První nalezené řešení je řešením optimálním (ve smyslu nejkratší délky cesty). [9] Klíčovým bodem ve vyhledávání do hloubky je správné určení maximální přípustné hloubky. Pokud povolíme délku cesty příliš krátkou, algoritmus do cíle nedosáhne. Pokud naopak ponecháme délku příliš velkou, pak se budou zbytečně prozkoumávat slepé neperspektivní listy.

25 Strana To povede ke značnému zpomalení. Možným řešením je postupné zvyšování hranice maximální přípustné hloubky. Nejdřív algoritmus vyzkouší všechny cesty délky, poté délky,, a tak dále, dokud není nalezen cíl. Pokud máme kvalitní heuristiku, která je dolním odhadem vzdálenosti, můžeme rovnou začít se vzdáleností h(start, cíl). Toto řešení může být v některých případech efektivnější než klasické vyhledávání do hloubky (ne příliš členitá mapa, dobrý odhad hloubky heuristikou, malá vzdálenost start-cíl). Vlastnosti algoritmu iterativního vyhledávání: b = efektivní faktor větvení (angl. branching factor) d = hloubka řešení/cíle (angl. goal depth) kritérium algoritmus iterativního vyhledávání úplné ANO, je-li b konečné. čas d + (d ) b + (d ) b + (d ) b b d < db d = O(b d ) paměť O(b d) optimální ANO, optimalizuje-li se hloubka. Tab. : Vlastnosti algoritmu iterativního vyhledávání Výhody algoritmu iterativního vyhledávání: Jedná se o kompromis mezi výhodami a nevýhodami vyhledávání do šířky a do hloubky. Je nejvhodnější neinformovaná metoda pro velké stavové prostory s neznámou hloubkou, ve které se nachází řešení. Nevýhody algoritmu iterativního vyhledávání: Často nevíme, jaký určit limit pro hloubku vyhledávání, a proto můžeme vyzkoušet všechny hloubky počínaje nulovou.

26 Strana Příklad algoritmu iterativního vyhledávání pro hlavolam : 9 0 OPEN CLOSED Obr. : Příklad algoritmu iterativního vyhledávání pro hlavolam Poznámka: Kompletní ukázka příkladu algoritmu iterativního vyhledávání pro hlavolam se nachází na CD přiloženém k bakalářské práci.. Hledání do hloubky s omezenou hloubkou prohledávání (depth limited) Vyhledávání do hloubky je často spojeno s omezením maximální prohledávané hloubky, při jejímž dosažení se používá mechanismus navracení (angl. backtracking). Tuto strategii používá algoritmus vyhledávání ho hloubky s omezenou hloubkou prohledávání (angl. depth limited). [] V globální bázi dat eviduje jednu možnou cestu. U každého stavu eviduje použitelné a ještě nevyzkoušené uzly. Pravidla jsou na stavech definované uzly a pravidlo kroku zpět.

27 Strana Řídící strategie je jednoduchá: pravidlo kroku zpět použít, jestliže pro daný stav není možné použít žádné jiné pravidlo. Podstata vyhledávání za použití kroku zpět je taková, že najednou eviduje jednu cestu v reprezentačním grafu, a když se dostane do slepé uličky, vrátí se zpět na nejbližší rozcestí a zkouší jinou cestu. Tato jednoduchá strategie má dvě slabiny: Při výběru nevhodné cesty se může pouze po dlouhé době ukázat, že nevede k cíli. Tou samou slepou uličkou můžeme projít vícekrát, jestliže k ní vede víc cest, protože si nepamatujeme prošlé cesty, nebrání tedy cyklům v posloupnosti stavů a není systematická. [9] Velice výhodný pro použití např. u úlohy obchodního cestujícího, když je na mapě 0 měst, a my víme že nejkratší cestu z města A do města B není nutné vést přes víc než měst. Algoritmus vyhledávání do hloubky s omezenou hloubku prohledávání:. Zapiš počáteční stav do seznamu OPEN, seznam CLOSED je prázdný. Je-li počáteční stav současně stavem cílovým, ukonči vyhledávání.. Pokud je seznam OPEN prázdný, řešení neexistuje, ukonči vyhledávání.. Vymaž první stav (označíme jej i) v seznamu OPEN a zapiš tento stav do seznamu CLOSED.. Pokud se hloubka uzlu i rovná maximální přípustné hloubce, pokračuj krokem č... Expanduj stav i. Pokud tento stav nemá následovníky nebo všichni následovníci byli již expandováni (tj. jsou v seznamu CLOSED), pokračuj krokem č... Zapiš všechny následovníky stavu i, kteří nejsou v seznamu CLOSED, na začátek seznamu OPEN.. Pokud některý z následovníků stavu i je cílovým stavem, řešení bylo nalezeno, ukonči vyhledávání. Jinak pokračuj krokem č.. [] Vlastnosti vyhledávání do hloubky s omezenou hloubkou prohledávání: b = efektivní faktor větvení (angl. branching factor) l = použití maximální přípustné hloubky (dobrá volba limitu hloubky l se volí podle znalosti problému) kritérium hledání do hloubky s omezenou hloubkou prohledávání úplné NE (Díky limitování hloubky zanoření může nastat případ, kdy řešení se vyskytuje v hloubce limit +.) čas + b + b + b b l = O(b l ) paměť O(b l) optimální NE (Upřednostňuje jednu větev oproti druhé, z toho důvodu některé problémy, obdobně složité, mohou trvat nesrovnatelný čas.) Tab. : Vlastnosti vyhledávání do hloubky s omezenou hloubkou prohledávání

28 Strana Výhody vyhledávání do hloubky s omezenou hloubkou prohledávání: Odstraňuje nevýhodu vyhledávání do hloubky nekompletnosti. Nalezne řešení vždy, existuje-li v dané hloubce zanoření. Nevýhody vyhledávání do hloubky s omezenou hloubkou prohledávání: Nevíme předem, jak hluboko určit maximální přípustnou hloubku.. Hledání do šířky v obou směrech (bidirectional breadth-first search) Je jednoduché vylepšení algoritmu vyhledávání do šířky, které si všímá toho, že počet prozkoumaných políček roste kvadraticky s délkou cesty. Proto rozjíždí simultánně dvě vyhledávání do šířky. Jedno ze startu, druhé z cíle. Postupně provádí vždy jeden cyklus jedné, a jeden cyklus druhé šířky. Ve chvíli, kdy se šířky setkají, je možné zkonstruovat cestu ze startu do cíle. Pokud jedna z šířek dojde do stavu, kdy už nemá nová políčka na prozkoumání, pak cesta v mapě neexistuje a algoritmus může skončit. [] Opět se zde pochopitelně projeví nedostatky vyhledávání do šířky. Jedná se jen o optimalizaci původního algoritmu. Pokud počet prohledaných políček normálním vyhledávání do šířky je n, pak na stejné mapě vyhledávání v obou směrech prohledá typicky druhou odmocninu z n políček (experimentálně zjištěno). [] Obr. : Vyhledávání do šířky v obou směrech [] Vlastnosti vyhledávání do šířky v obou směrech: Paměťová i časová náročnost je závislá vzhledem k počtu políček mapy. Hledáme současně z počátečního i cílového stavu. Hledání skončí, když na druhém konci najdeme uzel, který si pamatujeme z prvního konce. Výhody vyhledávání do šířky v obou směrech: Rychlý algoritmus, protože počet prozkoumaných políček roste kvadraticky s délkou cesty.

29 Strana 9 Nevýhody vyhledávání do šířky v obou směrech: Paměťové nároky jsou mnohem vyšší než u vyhledávání do šířky. Příklad vyhledávání do šířky v obou směrech pro hlavolam : OPEN CLOSED 0 0 **** **** 0 OPEN Obr. : Příklad vyhledávání do šířky v obou směrech pro hlavolam Poznámka: Kompletní ukázka příkladu vyhledávání do šířky v obou směrech pro hlavolam se nachází na CD přiloženém k bakalářské práci.. Hledání naslepo (blind search) Tato metoda se používá na mapové reprezentaci stavového prostoru. Algoritmus vyhledávání naslepo (angl. blind search) je založen na triviálním postupu: jdi směrem k cíli, pokud narazíš na překážku, změň směr a snaž se postupovat podél hrany překážky a obejít ji. Tento algoritmus pracuje s výhledem jednoho políčka. Kvalita tohoto algoritmu se liší podle toho, jakým způsobem se snaží překážky obejít. Paměťová náročnost je konstantní. Časová náročnost závisí na typu mapy a překážek.

30 Strana 0 Nevýhody vyhledávání naslepo: Nemusí cestu najít vůbec, protože se může zacyklit. Algoritmus negarantuje nalezení nejkratší cesty. Výhody vyhledávání naslepo: Může být použit pro speciální jednoduché mapy kvůli rychlosti, paměťové nenáročnosti a jednoduchosti implementace.. Hledání metodou rozděl a panuj (divide and conquer search) Pro zajímavost uvedu ještě jeden způsob, jak řešit hledání cest na mapové reprezentaci stavového prostoru. Je jím použití rekurzivní metody rozděl a panuj: pro nalezení cesty ze startu do cíle, čili z A do B najdi prostřední bod, který leží na úsečce A,B. Pokud je jemu odpovídající X políčko překážkou, použij nějakou metodu na nalezení blízkého volného políčka (metoda spirály, náhodné testy, šířka, apod.). Poté spusť algoritmus na A,X a X,B. Pokud jsou nalezeny, tak výsledné cesty spoj, jinak vrať neúspěch. Zarážkou je stav, kdy A a B jsou sousední políčka (nebo ve složitější modifikaci: políčka, jejíchž spojnice rastrovaná do mapy nekoliduje s překážkami). Metoda opět nebere v potaz ohodnocení. Nemusí najít cestu, přestože cesta v mapě existuje. Zde je příklad takové situace je na obr., kdy je prostřední bod na spojnici ze startu do cíle překážkou. [] Obr. : Selhání metody rozděl a panuj[] Výhody vyhledávání metodou rozděl a panuj: Rychlá metoda pro jednoduché mapy. Nevýhody vyhledávání metodou rozděl a panuj: Je-li prostřední bod, který leží na úsečce A,B překážkou, musí se použít nějaká jiná metoda pro nalezení blízkého volného políčka. Složitost a správnost algoritmu závisí na volbě metody nalezení blízkého políčka.

31 Strana ZÁKLADNÍ POROVNÁNÍ NEINFORMOVANÝCH ALGORITMŮ PRO HLEDÁNÍ CESTY Základní porovnání neinformovaných metod vyhledávání stavového prostoru je uvedeno v tab.. Je zde provedeno porovnání z hlediska časové a paměťové náročnosti algoritmu. Dále porovnání jejich optimality a úplnosti metody. Optimalitou se myslí, zda algoritmus najde nejkratší řešení. Úplností metody, se rozumí, zda-li nalezne, nebo nenalezne řešení. b = efektivní faktor větvení (angl. branching factor) m = maximální hloubka větve/délka cesty (angl. maximum depth/path) d = hloubka řešení/cíle (angl. goal depth) l = použití maximální přípustné hloubky (dobrá volba limitu hloubky l se volí podle znalosti problému) kritérium / algoritmus hledání do hloubky hledání do šířky algoritmus iterativního vyhledávání hledání s omezenou hloubkou prohledávání hledání do šířky v obou směrech čas b m b d+ b d b l b d/ paměť bm b d+ bd bl b d/ optimalita ne ano ano ne ano úplnost ne ano ano ne ano Tab. : Porovnání neinformovaných algoritmů pro hledání cesty [],[]

32 Strana

33 Strana INFORMOVANÉ METODY VYHLEDÁVÁNÍ (INFORMED SEARCH METHODS) Informované metody vyhledávání stavového prostoru pro řešení problému často používají pro výběr nejvhodnějšího vrcholu k expandování různé typy heuristik. Heuristika je postup, jak postupovat při výpočtu konkrétní situace, který není hromadný, platí jen pro konkrétní hodnoty a konkrétní problémy a zpravidla byla odpozorována z praxe. K rozhodnutí, který uzel grafu expandovat se používají různé hodnotící funkce. Podle charakteru úlohy je možné definovat hodnotící funkci f, která pro každý uzel stromu řešení určí jeho ohodnocení. Hodnoty hodnotící funkce se pak používají k výběru uzlu pro další expanzi. Odtud je intuitivně zřejmé, že pokud hodnotící funkce dobře postihuje vlastnosti a charakter úlohy, budou vždy expandovány nejperspektivnější uzly a zabrání se prohledávání cest, které nevedou k cíli. Platí, že čím kvalitnější heuristické znalosti o daném problému jsou použity k formulaci hodnotící funkce, tím efektivnější bude vyhledávání. Hodnoty hodnotící funkce f, a její funkční hodnoty f(i) v i-tém stavu získáme ze vztahu: f ( i) = g( i) + h( i), () kde g(i) je cesta z počátečního stavu s 0 do stavu i, a h(i) je cesta ze stavu j do některého z cílových stavů. U hlavolamu by mohly být hodnotící funkce takové: h ) počet políček, ve kterých se dva stavy liší, h ) summa (horizontálních a vertikálních) vzdáleností, ve kterých se dva stavy liší. [] V následujících informovaných algoritmech (kap..,. a.) budu ukazovat příklady algoritmů na úloze hlavolam. Kde budou čísla nad uzly značit pořadí jejich expanze (levé číslo) a dále jejich ohodnocení (pravé číslo). Uvnitř uzlu bude zobrazován stav úlohy.. Gradientní algoritmus (hill-climbing algorithm) Jak už samotný název metody napovídá, je tato metoda inspirována reálnou situací. Chceme-li dosáhnout vrcholu kopce, bude nejrychlejší postup po spádnici, tedy cestou nejvyššího gradientu (pokud použijeme analogii z matematiky). Nejjednodušší verzí informovaného algoritmu je algoritmus gradientní (angl. hill-climbing algorithm) vycházející z vyhledávání do hloubky. Gradientní strategie vždy expanduje ten uzel, který byl dosud vyhodnocen pomocí hodnotící funkce f jako nejlepší, a vyhodnocuje jeho následovníky. Při expanzi se následovníci seřadí podle hodnotící funkce a v zásobníku na vrcholu bude nejperspektivnější z nich. Předchůdci, stejně jako následovníci daného uzlu jsou okamžitě zapomenuti, neboť algoritmus v každém kroku uchovává v paměti jen právě rozvíjený uzel, protože nás nezajímá rekonstrukce cesty. []

34 Strana Vyhledávání je zastaveno, jakmile je dosaženo cílového stavu, nebo takového stavu, který má lepší ohodnocení pomocí funkce f než jeho následovníci, případně nemá žádné následovníky. [] Gradientní algoritmus je vhodný pro úkoly, u kterých nás zajímá pouze řešení, cesta do něj vedoucí není důležitá. Algoritmus začíná u libovolného uzlu reprezentačního grafu a expanduje ho, pak na základě hodnotící funkce f vybere nejlepší z jeho přímých následovníků k další expanzi, atd. Jestliže je nejlepších následovníků více, tzn. mají stejné nejlepší ohodnocení na základě funkce f, pak algoritmus náhodně (obvykle funkcí random) vybere jeden z nich. [9] Čistě gradientní strategie má základní nevýhodu všech gradientních metod může skončit v lokálním extrému viz. obr., což nemusí být řešením dané úlohy. Navíc, vzhledem k tomu, že se neuschovává historie vyhledávání, není vyloučen ani pohyb po nekonečně dlouhé cestě (tj. zacyklení). [] Obr. : Globální a lokální extrém Názorný a přitom jednoduchý příklad zacyklení lze nalézt při hraní hry hlavolam, jak je tomu vidět na obr.. Definujme funkci f jako počet kamenů, které jsou na svém místě. Typický je pak případ, kdy musíme hnout kameny, které jsou již v cílové poloze a zhoršit hodnotu stavu jen proto, abychom mohli posunout jiný kámen žádaným směrem. Samozřejmě, pro jiný tvar funkce f to nemusí platit. [9]

35 Strana Obr. : Příklad zacyklení gradientního vyhledávání pro hlavolam Vlastnosti gradientního vyhledávání: Jako hodnotící funkci použijeme: f ( i) = h( i). Výhody gradientního vyhledávání: Je nejjednodušší verzí informovaného algoritmu. Nevýhody gradientního vyhledávání: Nebezpečí lokálního extrému.

36 Strana Příklad gradientního vyhledávání pro hlavolam : h= h= h= h= h= h= h= h= h= h= h= h= h= h= h= h= 9 h= h= OPEN CLOSED Obr. : Příklad gradientního vyhledávání pro hlavolam Poznámka: Kompletní ukázka příkladu gradientního vyhledávání pro hlavolam se nachází na CD přiloženém k bakalářské práci.

37 Strana. Rovnoměrné prohledávání (uniform-cost search) Tato metoda je taktéž označována jako prohledávání metodou stejných cen (angl. uniform-cost search). Metoda vychází z předpokladu ohodnocení uzlů cenami, které odpovídají vynaloženým nákladům na vygenerování těchto uzlů. K expanzi se vždy vybírá uzel, ke kterému v prohledávacím grafu vede cesta s nejnižšími náklady, tj. uzel s minimálním ohodnocením. Jsou-li ohodnocení uzlů rovny jejich hloubce, je metoda stejných cen shodná s metodou vyhledávání do šířky. [] Ať cena c( n, m) označuje náklady přiřazené k hraně vedoucí z uzlu n do uzlu m (odpovídají nákladům na uplatnění operátora vedoucího ze stavu reprezentovaného uzlem n do stavu reprezentovaného uzlem m). Můžeme pak zavést nákladovou funkci pro startovní uzel: g( s ) = 0, () a pro uzel m: g( m) = g( n) + c( n, m), () kde m je přímým následovníkem uzlu n, a c jsou náklady vynaložené na tuto cestu. Situace je názorně popsána na následujícím příkladu (viz. obr. 9.): Vlastnosti rovnoměrného prohledávání: Obr. 9: Příklad rovnoměrného prohledávání Jako hodnotící funkci použijeme nákladovou funkci: f ( i) = g( i). Vidíme, že slepé vyhledávání do šířky je speciálním případem prohledávání metodou stejných cen, a sice když náklady všech hran jsou jednotkové. Výhody rovnoměrného prohledávání: Vždy nalezne optimální řešení (za předpokladu, že řešení existuje). Vhodně se používá u úlohy obchodního cestujícího.

38 Strana Nevýhody rovnoměrného prohledávání: Je obecně málo efektivní, optimální řešení často nalezne za cenu expanze velkého počtu uzlů. Příklad rovnoměrného prohledávání pro hlavolam : [] [] [] [] [] + - [] [] - [] [0] [] OPEN CLOSED Obr. 0: Příklad rovnoměrného prohledávání pro hlavolam Poznámka: Kompletní ukázka příkladu rovnoměrného prohledávání pro hlavolam se nachází na CD přiloženém k bakalářské práci.. Algoritmus uspořádaného prohledávání (best-first search algorithm) Výrazně účinnějšího informovaného prohledávání lze dosáhnout algoritmem uspořádaného prohledávání (angl. best-first search algorithm), který vznikl rozšířením gradientního algoritmu o paměť. Tato paměť se opět skládá opět ze seznamů OPEN a CLOSED. Prvky těchto seznamů nejsou však pouhá jména uzlů (stavů), nýbrž trojice: < jméno uzlu, hodnota f, jméno rodičovského uzlu >. Zápisem stavu v seznamu rozumíme zápis uvedené trojice. [] Činnost algoritmu nejlépe pochopíme z následujícího podrobného popisu, v němž expandujeme stavy podle minimální hodnoty funkce f. []

39 Strana 9 Algoritmus uspořádaného prohledávání:. Počáteční stav zapiš do seznamu OPEN, seznam CLOSED je prázdný.. Pokud je seznam OPEN prázdný, řešení neexistuje, ukonči prohledávání.. Ze seznamu OPEN vyber stav i s nejmenší hodnotou f(i). V případě většího počtu stavů se stejnou minimální hodnotou f(i) prověř, zda některý z těchto stavů není stavem cílovým, v takovém případě jej vyber; jinak vyber mezi stavy se stejnou minimální hodnotou f(i) libovolně.. Vymaž stav i ze seznamu OPEN a zařaď jej do seznamu CLOSED.. Je-li stav i cílovým stavem, řešení je nalezeno, ukonči prohledávání.. Expanduj stav i; pro každého následovníka j stavu i vypočítej hodnotu f(j). Pokud stav j není ani v seznamu OPEN ani v seznamu CLOSED, zařaď jej do seznamu OPEN. Pokud je stav j již v seznamu OPEN nebo CLOSED, avšak s ohodnocením větším než právě vypočtené f(j) změň jeho ohodnocení na f(j), změň jméno rodičovského uzlu v zápisu uzlu a zařaď ho do seznamu OPEN.. Pokračuj krokem č.. [] V jistém smyslu je protějškem rovnoměrného prohledávání. Zatímco algoritmus rovnoměrného prohledávání expanduje vždy ten otevřený uzel, ke kterému našel (zatím) cestu s nejnižšími náklady, u uspořádaného prohledávání si nevšímá prošlé cesty a vybírá otevřený uzel pouze na základě odhadu nákladů na zbývající cestu. Úspěšnost uspořádaného prohledávání do velké míry závisí na výběru heuristické funkce. Úspěšné ukončení prohledávání není zaručeno, může se lehce stát, že prohledávání projde mimo řešení. [9] Vlastnosti uspořádaného prohledávání: Jako hodnotící funkci použijeme: f ( i) = h( i). Uzly jsou uspořádány tak, že ty s nejlepším ohodnocením jsou expandovány jako první. Výhody uspořádaného prohledávání: Nejrychlejší (u jednoduchých typů úloh). Nevýhody uspořádaného prohledávání: Není zaručeno nalezení nejkratší cesty. Nebere v úvahu náročnost úlohy.

40 Strana 0. Paprskové prohledávání s aperturou n (beam search) Kromě základní podoby obecného algoritmu prohledávání existují další varianty. Často se například užívá seznamu OPEN konečné délky n, přičemž v každém kroku se do seznamu OPEN zapíší jen ty nově expandované uzly, které mají lepší ohodnocení než uzly dosud zachycené v seznamu OPEN, ty se tím automaticky vyškrtnou. Tedy jenom n nejslibnějších uzlů se uchovává v seznamu OPEN, což má samozřejmě za následek značné zredukování expandovaného stromu, což může zabránit nalezení optimálního řešení. Právě popsaný algoritmus se nazývá algoritmem paprskového prohledávání (angl. beam-search) s aperturou n. [9]. Algoritmus A (A algorithm) Jednou z možností obecné formalizace funkce f je vyjádřit její hodnotu f(i) v i-tém stavu jako součet ceny g(i) tj. cesty z počátečního stavu s 0 do stavu i a ceny h(i) tj. cesty ze stavu j do některého z cílových stavů c ξ. Cenou rozumíme libovolné nezáporné ohodnocení cesty. Pak lze psát: f ( i) = g( i) + h( i) () a funkci f(i) chápat jako cenu přechodu z počátečního stavu do cílového stavu přes stav i. V každém kroku prohledávání bude tedy při aplikaci algoritmu A vybrán k expanzi ten uzel, který má minimální hodnotu hodnotící funkce f(i). Algoritmus uspořádaného prohledávání využívající takto chápanou hodnotící funkci bývá označován jako algoritmus A. []. Algoritmus A* (A* algorithm) Algoritmus A* (čteno A star ) vychází z algoritmu A s tím rozdílem, že ve většině praktických úloh však funkce g(i) a h(i) neznáme, a proto je nahrazujeme jejich odhady g*(i) a h*(i). Funkci g(i) odhadneme minimální dosud zjištěnou cenou g*(i) přechodu z počátečního stavu s 0 do stavu i. Funkci h(i) nahrazujeme funkcí h*(i), která kvantitativně vyjadřuje náš odhad cesty z uzlu i do cíle. Tento odhad vyjadřuje naši heuristickou znalost o tom, jaké jsou šance nalézt (optimální) řešení, pokračovali-li bychom expanzí daného uzlu. Funkce h*(i) je tedy nositelem heuristické informace a bývá proto nazývána heuristickou funkcí. Je zřejmé, že tato funkce je pro efektivní prohledávání velmi podstatná. V souvislosti s konstrukcí funkce f vyvstává zajímavá otázka tzv. přípustnosti algoritmu prohledávání. Říkáme, že algoritmus prohledávání je přípustný, jestliže vždy nalézá optimální cestu, pokud tato cesta existuje. Lze ukázat, že pokud funkce h*(i) je nezáporná a menší nebo rovna skutečné ceně přechodu ze stavu i do cílového stavu, je algoritmus A přípustný. Funkce h*(i) s touto vlastností se nazývá přípustnou heuristickou funkcí. Algoritmus A využívající přípustnou heuristickou funkci se označuje jako algoritmus A*.

41 Strana Čím je funkce h*(i) lepším spodním odhadem funkce h(i), tím menší část stavového prostoru se prohledává při hledání optimálního řešení. Jestliže je odhad h*(i) roven skutečné ceně přechodu do cílového stavu pro každý stav i a jestliže optimální řešení existuje, expanduje algoritmus A* pouze stavy na cestě k cílovému stavu. Říkáme, že algoritmus A * je lépe informován než algoritmus A *, jestliže pro každý stav i je h *(i) h *(i). Jestliže A * a A * jsou algoritmy s přípustnými funkcemi h * a h * a A * je lépe informován než A *, potom A * expanduje všechny stavy, které expanduje A *. Mohou však existovat stavy, které expanduje A * a neexpanduje A *. [] Volba heuristické funkce pro hlavolam je znázorněna na obr. a je taková, že h* je počet kamenů na chybných pozicích. Na prvním obrázku je umístěno z kamenů chybně, takže stav má h* =. Na druhém obrázku je umístěno z kamenů chybně, proto má stav h* = a na třetím obrázku jsou umístěny z kamenů chybně, takže stav má h* =. Je to přijatelná heuristika, protože každý chybně umístěný kámen musí být alespoň jednou posunut. Vlastnosti algoritmu A*: Obr. : Volba heuristické funkce pro hlavolam Jako hodnotící funkci použijeme: f*(i) = g*(i) + h*(i), kde pro i v h*(i) h(i) 0. Hledá za pomoci heuristiky. Zkouší vždy nejslibnější neprobraný stav. Výhody algoritmu A*: Cesta je vždy nalezená a je nejkratší možná. Volnost v ohodnocování polí nejrůznější druhy zvýhodnění. Použití s libovolnou reprezentací terénu. Jednoduchost implementace. Nevýhody algoritmu A*: Počet vrcholu v OPEN nebo CLOSED listu muže být v řádu stovek nebo tisíců. Cesta se musí spočítat celá najednou. Pokud cesta neexistuje, prohledá se celý prostor, což muže trvat extrémně dlouho. Pokud se změní prostředí, je nutné celou cestu přeplánovat.

42 Strana Příklad algoritmu A* pro hlavolam : OPEN CLOSED Obr. : Příklad algoritmu A* pro hlavolam Poznámka: Kompletní ukázka příkladu algoritmu A* pro hlavolam se nachází na CD přiloženém k bakalářské práci.

43 Strana ZÁKLADNÍ POROVNÁNÍ INFORMOVANÝCH ALGORITMŮ PRO HLEDÁNÍ CESTY Základní porovnání informovaných metod vyhledávání stavového prostoru je uvedeno v tab.. Je zde provedeno porovnání podle toho, jakou používají dané metody hodnotící funkci f(i), v i-tém stavu, která se skládá ze součtu ceny g(i) tj. cesty z počátečního stavu s 0 do stavu i a ceny h(i) tj. cesty ze stavu j do některého z cílových stavů. Cenou rozumíme libovolné nezáporné ohodnocení cesty. hodnotící funkce f(i) má tvar: strategie prohledávání f(i) = g(i) + h(i) g(i) h(i) gradientní algoritmus 0 h(i) rovnoměrné prohledávání g(i) 0 uspořádané prohledávání 0 h(i) algoritmus A g(i) h(i), kde pro i h(i) 0 algoritmus A* g*(i) h*(i), kde pro i h*(i) h(i) 0 Tab. : Porovnání informovaných algoritmů pro hledání cesty []

44 Strana

45 Strana REÁLNÉ APLIKACE ALGORITMŮ PRO HLEDÁNÍ CESTY Použití algoritmů pro hledání cesty se nejčastěji vyskytuje v oblasti umělé inteligence, jak již jsem psal v úvodu bakalářské práce. Proto jako reálnou aplikaci algoritmů pro hledání cesty uvedu robot pro Micromouse (vlastní UAI FSI VUT Brno), jehož úkolem je najít cestu bludištěm ze startovní do cílové polohy. Obr. : Robot pro Micromouse na UAI FSI VUT Brno Robot je postaven na diferenciálním podvozku, pro pohon je použita dvojice krokových motorů. Změna směru pohybu je realizována různou rychlostí otáčení kol. Aby se robot nepřevrátil, je vybaven dvěma kulovými podpěrami. Základní technické parametry robotu jsou v tab.. [] PARAMETR podvozek pohon senzory napájení komunikace délka šířka výška rozteč kol hmotnost HODNOTA diferenciální dvě hnaná kola dvě podpěry x krokový motor TEAC KP9HM-0 x senzor SHARP GPD0 x akumulátor LiIon CGR0/,V x RS/TTL/00Bd 0 mm 0 mm 0 mm 9 mm 990 g Tab. : Základní technické parametry robotu []

46 Strana. Co je to Micromouse Micromouse je soutěž, kde autonomní roboty závodí, kdo prozkoumá různé konfigurace bludiště a vyřeší optimální cestu ze startu do cíle v nejkratším možném čase. Moderní forma soutěže začala okolo roku 90. V podstatě se jedná o bludiště vytvořené z čtvercové mřížky, kterou tvoří řádků a sloupců (celkem buněk). Roboty musí najít bez pomoci cestu ze startovní předurčené výchozí polohy do cílové polohy, tím je obvykle centrum bludiště. Robot potřebuje sledovat, kde se nachází, prozkoumávat a objevovat, kde jsou stěny, mapovat bludiště a tím zjistit kdy dosáhne cíle. Provedení bludiště i robotu stanovují pravidla soutěže. []. Pravidla soutěže Ačkoliv jsou pravidla soutěže většinou shodné, tak i přes to se v různých zemích malinko liší. Tyto pravidla jsou vypracované na základě pravidel soutěží "IEEE Micromouse Contest", které probíhají po celém světě... Bludiště Bludiště se skládá ze sítě základních čtverců o velikosti x cm, maximální rozměr bludiště je omezen na x základních čtverců. Stěny představující bludiště jsou cm vysoké a, cm tlusté. Z toho plyne, že chodbičky bludiště jsou, cm široké. Vnější stěna uzavírá celé bludiště v jeden čtverec. Stěny bludiště jsou z boku bílé, horní strana stěn je červená. Podlaha bludiště je ze dřeva nebo z podobného materiálu, obvykle natřená matnou černou barvou. Barva na vrcholu stěn musí být vybrána tak, aby odrážela infračervené světlo, a barva na podlaze musí naopak absorbovat infračervené světlo. Start se nachází v jednom ze čtyřech rohů bludiště. Ve středu bludiště je otevřená část, tvořená čtyřmi základními čtverci. Tento centrální čtverec je cílem, vchod do tohoto čtverce je jen jeden. Je možné, že do cíle povede více než jedna cesta. [] Upřesňující parametry: Celkové rozměry bludiště musí být dodržené s přesností ±% nebo mm, vždy menší z obou hodnot. Spoje na podlaze nesmí vytvářet schůdky větší než mm. Změna sklonu nesmí být větší než. Mezery mezi souvisejícími stěnami jsou menší než mm... Robot myš Myš musí být autonomní. Nesmí používat zdroj energie, který využívá spalovací proces. Délka a šířka nesmí překročit cm. Pokud myš mění v průběhu jízdy svoje rozměry, v žádném okamžiku nesmí překročit x cm, výška není omezená. Myš nesmí během cesty bludištěm nic odhodit ani ztratit. Myš nesmí skákat, překračovat stěny, nebo po nich lézt. Také nesmí žádnou svou činností poškodit bludiště. []

47 Strana.. Hodnocení Vítězem se stane robot s nejnižším dosaženým soutěžním časem. Pokud v průběhu soutěže nedosáhne žádná myš cíle, porota určí vítěze na základě celkové úspěšnosti, např. jak blízko k cíli se podařilo dostat, nebo jestli byl pohyb v bludišti koordinovaný nebo náhodný apod. []. Algoritmy pro řešení bludiště, kde neexistují tzv. ostrůvky Ostrůvkem se rozumí ta část bludiště, která není nijak připojena k vnějšku bludiště stěnou. Záměrem tohoto zjednodušení je umožnit účast i začátečníkům, kteří se obvykle potřebují více soustředit na konstrukci robotu, než na samotný algoritmus. Robot nejprve projde celé bludiště pomoci algoritmu levé nebo pravé ruky (viz. kapitola..), aby zmapoval přesný tvar bludiště a zjistil, kde se nacházejí stěny, poté použije flood-fill algoritmus (viz. kapitola..) a nakonec se vydá směrem k cíli... Algoritmus levé nebo pravé ruky Obr. : Příklad bludiště bez ostrůvků Je mnoho algoritmů jak bludiště řešit, ale kohokoliv se zeptáte, jak se dostat ven z nějakého bludiště, tak vám odpoví, že položí ruku na stěnu a bude ji následovat kolem dokola bludiště, a dříve či později se dostane k východu, což je vlastně samotný algoritmus levé nebo pravé ruky. Avšak toto je pravda jen pro obzvlášť jednoduché typy bludišť a může být v pořádku s výjimkou tří věcí. Zaprvé oba směry nemusí být rovnocenné a zároveň to není nejkratší cesta do cíle. Zadruhé je to velmi pomalá metoda, protože se může stát, že následujeme celé bludiště, než se dostaneme k východu. Zatřetí může mít bludiště ostrůvky a můžeme chodit okolo nich pořád dokola.

48 Strana.. Flood-fill algoritmus (the flood-fill algorithm) Metoda taktéž známa pod českým názvem jako algoritmus rozlévání, protože angl. flood-fill = rozlévání, nebo-li záplava, dokonce i povodeň. Nejjednodušší metoda k dispozici pro Micromouse je flood-fill algoritmus. Základní myšlenka je taková, že každému políčku v mapě je přiřazena hodnota vzdálenosti do cíle, která je použita pro rozhodnutí, kterým směrem se má robot vydat. Cíli bude přiřazena hodnota nula a startu hodnota co nejvyšší. Při pohybu bludištěm k cíli je snaha jít jakoby z kopce dolů. Jestliže robot stojí na políčku s hodnotou, je vzdálený o pole od cíle. Jestliže robot stojí na políčku s hodnotou, je vzdálený o pole od cíle, atd. Flood-fill algoritmus:. Připrav si pole bytů k tomu, aby uchovávaly hodnoty vzdáleností do cíle pro kompletní bludiště (pro bludiště plné velikosti tj. x = bytů), kde jeden byte představuje každé políčko v bludišti.. Začni v cíli. Tomuto políčku přiřaď hodnotu 0.. Vezmi všechna neočíslovaná volná políčka sousedící s již očíslovaným políčkem a přiřaď jim hodnotu o jedna vyšší.. Opakuj krok do té doby, dokud není očíslovaný i start, nebo dokud nevyčerpáme všechna neočíslovaná políčka.. Při rekonstruování cesty začni ve startu. Následuj hodnoty do cíle v sestupném pořadí dokud nejsi v cíli. Příklad flood-fill algoritmu pro bludiště x: krok krok krok krok krok krok krok krok Obr. : Příklad flood-fill algoritmu pro bludiště x Poznámka: Kompletní ukázka příkladu flood-fill algoritmu pro bludiště x se nachází na CD přiloženém k bakalářské práci.

49 Strana 9 Výhody flood-fill algoritmu: Zajistí vždy nalezení nejkratší cesty, pokud nějaká existuje. Pokud existují dvě totožné cesty, jsou nalezeny obě. Tento algoritmus je rychlý a nenáročný na paměť (pro bludiště x potřebuje pouze bytů). Nevýhody flood-fill algoritmu: Délka hledání je velmi závislá na počtu cest vedoucích k cíli. Flood-fill algoritmus je dobrý způsob jak najít nejkratší cestu bludištěm, které již máme předem zmapované. Je to spolehlivá a snadno pochopitelná a realizovatelná metoda, avšak máme na výběr i jiné algoritmy (Tremauxův algoritmus, Tarryho algoritmus).. Algoritmy pro řešení bludiště, kde existují tzv. ostrůvky Bludiště pro mezinárodní soutěže Micromouse jsou navrženy tak, aby nebyly možné vyřešit algoritmem levé nebo pravé ruky, nebo nějakým náhodným mapováním terénu, protože cíl je v centru bludiště, a není připojen k vnějšku bludiště žádnou stěnou. Takže každý pokus o následování stěny nás přivede zpět tam, kde jsme začali, proto tedy musíme použít algoritmy jiné. Obr. : Příklad bludiště s ostrůvky Následující akce vykonává robot každým krokem, když přejde do nového políčka: Aktualizuje mapu a zjišťuje, jestli nenašel stěnu. Aktualizuje vzdálenosti do cíle (je-li to nezbytně nutné). Rozhoduje se, které sousední políčko má nejnižší vzdálenost do cíle. Přesune se do sousedního políčka s nejnižší vzdálenost do cíle.

50 Strana 0.. Standardní flood-fill algoritmus (the flood-fill algorithm) Jedná se o stejný princip algoritmu jako v kapitole.. s tou výjimkou, že v bludišti existují ostrůvky. Pro názornost budu vysvětlení algoritmů v kapitolách.. a.. ukazovat na bludišti o rozměrech x, které by po vyplnění standardním flood-fill algoritmem vypadalo jako na obr. (krok ). Číselné hodnoty udávají vzdálenost z daného pole do středu bludiště, tj. do cíle. V následujícím textu budu označovat vzdálenost do cíle bludiště jen jako vzdálenost. krok krok krok krok krok krok krok krok krok 9 krok 0 krok krok Obr. : Příklad standardního flood-fill algoritmu pro bludiště x Poznámka: Kompletní ukázka příkladu standardního flood-fill algoritmu pro bludiště x se nachází na CD přiloženém k bakalářské práci. Jakmile se má robot pohnout, musí prozkoumat všechny přiléhající políčka, které nejsou odděleny stěnami a vybrat si jedno s nejnižší hodnotou vzdálenosti. V našem výše uvedeném příkladu na obr. (krok ) si robot nebude všímat políčka na západě, protože je tam stěna. Robot si vybírá pouze z hodnot vzdáleností políček na severu, jihu a východě, protože tam nejsou žádné stěny. Políčko na severu má hodnotu, políčko na jihu má hodnotu a políčko na východě má hodnotu. Standardní flood-fill algoritmus třídí hodnoty tak, aby rozhodnul, které políčka mají nejnižší vzdálenost.

51 Strana To ukazuje, že obě políčka jak severní, tak východní mají vzdálenost, čili robot může jít na sever, nebo na východ a překročí stejné množství políček do cíle. Je jasné, že odbočení trvá robotu nějaký čas, tak si vybere cestu na políčko kupředu, čili na sever. Jak se robot postupně pohybuje v bludišti, tak nachází stěny. Jakmile jsou objeveny nové stěny, tak jsou vzdálenosti ovlivněny, a my je potřebujeme aktualizovat. V našem příkladu na obr. (krok ) je vidět, jak robot našel stěnu na východě. Nyní robot nemůže jít na západ, ani na východ, ale může jít pouze na sever, nebo jih. Ale při cestě na sever nebo na jih, by se nám vzdálenosti zvyšovaly a to my nechceme. Proto tedy následkem nalezení stěny v bludišti potřebujeme aktualizovat vzdálenosti v celém bludišti, což je na obr. (krok ). Robot by se následně pohyboval celým bludištěm, což je vidět na následujících krocích na obr.... Modifikovaný flood-fill algoritmus (the modified flood-fill algorithm) Modifikovaný flood-fill algoritmus je podobný jako standardní flood-fill algoritmus v tom, že robot používá hodnoty vzdáleností do cíle (dále jen vzdálenosti) k tomu, aby se pohyboval bludištěm. Vzdálenosti představují, jak daleko je robot od cílového políčka a jsou následované v patřičném sestupném pořadí, dokud robot nedosáhne cíle. krok krok krok krok krok krok krok krok krok 9 krok 0 krok krok Obr. : Příklad modifikovaného flood-fill algoritmu pro bludiště x

52 Strana Poznámka: Kompletní ukázka příkladu modifikovaného flood-fill algoritmu pro bludiště x se nachází na CD přiloženém k bakalářské práci. Jak robot nalézá nové stěny během prohledávání, je potřeba vždy aktualizovat vzdálenosti. Namísto aktualizování celého bludiště novými hodnotami, jak tomu je u standardního flood-fill algoritmu, modifikovaný flood-fill algoritmus změní jen ty vzdálenosti, které potřebují být aktualizovány. Jak je vidět na příkladu výše na obr. (krok ), tak se robot pohybuje vpřed o jedno políčko a nachází stěnu na východě. Nyní robot nemůže jít na západ, ani na východ, ale může jít pouze na sever, nebo jih. Ale při cestě na sever nebo na jih, by se nám vzdálenosti zvyšovaly, a to my nechceme, proto musíme aktualizovat vzdálenosti v bludišti, které potřebují být změněné. Nyní pro aktualizaci platí následující pravidlo: Jestliže políčko není cílovým políčkem, tak jeho hodnota vzdálenosti do cíle by měla být + minimální hodnota jeho přímých otevřených sousedů. Ve výše uvedeném příkladu na obr. (krok ) je minimální hodnota z jeho přímých otevřených sousedů. Přičtení k této hodnotě má za výsledek + =, a my musíme provést aktualizaci. Bludiště nyní po aktualizaci vypadá takto obr. (krok ). Nyní aktualizace vzdálenosti políčka způsobí, že i sousedé by mohli porušit pravidlo + minimální hodnota a tudíž i oni musí být zkontrolovány. V našem výše uvedeném příkladu na obr. (krok ) je vidět, že políčka na severu a na jihu mají sousedy, jejichž minimální hodnota je. Přičtení k této hodnotě má za následek + =, proto políčka na severu a na jihu neporušují pravidlo a aktualizace je splněna. Nyní byly vzdálenosti aktualizované, a robot může znovu následovat hodnoty vzdáleností do cíle ve správném pořadí. Modifikovaný flood-fill algoritmus:. Aktualizuj vzdálenosti do cíle (je-li to nezbytné).. Ujisti se, že je zásobník prázdný.. Ulož aktuální políčko (to, na kterém robot stojí) na vrchol zásobníku.. Opakuj následující soubor instrukcí dokud zásobník není prázdný: {Vytáhni políčko ze zásobníku Je hodnota do cíle tohoto políčka rovna + minimální hodnota z jeho otevřených sousedů? NE změní políčko na + minimální hodnota z jeho otevřených sousedů a umístí všechny otevřené sousední políčka navrchol zásobníku ke kontrole. ANO nedělej nic.} Shrnutí vlastností modifikovaného flood-fill algoritmu: Mnohokrát je modifikovaný flood-fill algoritmus rychlejší, než standardní flood-fill algoritmus. Aktualizují se jen ty vzdálenosti, které potřebují být aktualizované, robot může udělat svůj další pohyb tedy mnohem rychleji.

53 Strana. Algoritmus nejrychlejší cesty bludištěm Algoritmus předpokládá, že známe přesnou konfiguraci bludiště, a dá se použít pro oba typy bludiště, jak bez ostrůvků, tak s ostrůvky. Algoritmus nejrychlejší cesty bludištěm:. Začni flood-fill algoritmem z cílového políčka až do startovního.. Předělej celé bludiště na orientovaný graf, kde každé políčko bludiště představuje uzel, a přechod mezi políčky je hrana grafu.. Ty části grafu, kde robot jede rovně sluč, protože robot nabere rychlost, když nemusí zatáčet.. Vypočti časy, za jak dlouho robot přejede daný počet políček dle vzorce: S S = 0, a t t = () 0, a. Časově ohodnoť zatáčky a úseky políček, kde robot jede rovně.. Pro každou cestu bludištěm sečti všechny jednotlivé časy, a výsledky mezi sebou porovnej.. Ta cesta, která má nejmenší výsledný čas je nejrychlejší cesta bludištěm. Příklad algoritmu nejrychlejší cesty bludištěm x (bludiště UAI FSI VUT Brno): Obr. 9a): Bludiště FSI VUT x Obr. 9b): Bludiště FSI VUT x Podmínky, které vycházejí z konstrukce robotu Micromouse na UAI FSI VUT Brno: a = 0, políček/s, v max = v = políčko/s, odbočka = t = s s = počet políček, t = čas, a = zrychlení, v = rychlost Základní podmínka je zobrazena na obr. 0 a je taková, že robot dosáhne své maximální rychlosti až po dvou políčkách, jak je vidět níže. Systém je takový, že první dvě pole zrychluje, a poslední dvě naopak zpomaluje, tudíž jede přes jedno pole svou maximální rychlostí.

Ú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

Příloha 1. Náleţitosti a uspořádání textové části VŠKP

Příloha 1. Náleţitosti a uspořádání textové části VŠKP Příloha 1 Náleţitosti a uspořádání textové části VŠKP Náležitosti a uspořádání textové části VŠKP je určeno v tomto pořadí: a) titulní list b) zadání VŠKP c) abstrakt v českém a anglickém jazyce, klíčová

Více

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY NÁVRH STRATEGIE ROZVOJE MALÉ RODINNÉ FIRMY THE DEVELOPMENT OF SMALL FAMILY OWNED COMPANY

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY NÁVRH STRATEGIE ROZVOJE MALÉ RODINNÉ FIRMY THE DEVELOPMENT OF SMALL FAMILY OWNED COMPANY VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA PODNIKATELSKÁ ÚSTAV FACULTY OF BUSINESS AND MANAGEMENT INSTITUT OF NÁVRH STRATEGIE ROZVOJE MALÉ RODINNÉ FIRMY THE DEVELOPMENT OF SMALL

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

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

Bakalářská práce bakalářský studijní obor Teleinformatika

Bakalářská práce bakalářský studijní obor Teleinformatika VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Fakulta elektrotechniky a komunikačních technologií Ústav telekomunikací Bakalářská práce bakalářský studijní obor Teleinformatika Student: Bílek Petr ID: 78462 Ročník: 3

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

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

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV MIKROELEKTRONIKY FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT OF

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

Metodický pokyn č. 1/09 pro odevzdávání, ukládání a zpřístupňování vysokoškolských závěrečných prací

Metodický pokyn č. 1/09 pro odevzdávání, ukládání a zpřístupňování vysokoškolských závěrečných prací Metodický pokyn č. 1/09 pro odevzdávání, ukládání a zpřístupňování vysokoškolských závěrečných prací Článek I. Úvodní ustanovení (1) Pro účely této směrnice se vysokoškolskými závěrečnými pracemi rozumí

Více

NÁVRH ŘEŠENÍ FLUKTUACE ZAMĚSTNANCŮ VE SPOLEČNOSTI

NÁVRH ŘEŠENÍ FLUKTUACE ZAMĚSTNANCŮ VE SPOLEČNOSTI VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA PODNIKATELSKÁ ÚSTAV FINANCÍ FACULTY OF BUSINESS AND MANAGEMENT INSTITUTE OF FINANCES NÁVRH ŘEŠENÍ FLUKTUACE ZAMĚSTNANCŮ VE SPOLEČNOSTI

Více

Metody návrhu algoritmů, příklady. IB111 Programování a algoritmizace

Metody návrhu algoritmů, příklady. IB111 Programování a algoritmizace Metody návrhu algoritmů, příklady IB111 Programování a algoritmizace 2011 Návrhu algoritmů vybrané metody: hladové algoritmy dynamické programování rekurze hrubá síla tato přednáška: především ilustrativní

Více

Neinformované metody prohledávání stavového prostoru. Gerstner Laboratory Agent Technology Group, Czech Technical University in Prague

Neinformované metody prohledávání stavového prostoru. Gerstner Laboratory Agent Technology Group, Czech Technical University in Prague Neinformované metody prohledávání stavového prostoru Michal Pěchouček Gerstner Laboratory Agent Technology Group, Czech Technical University in Prague http://labe.felk.cvut.cz/~ tkrajnik/kui2/data/k333/1.pdf

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

Obsah: Problém osmi dam

Obsah: Problém osmi dam Prohledávání stavového prostoru leš Horák E-mail: hales@fi.muni.cz http://nlp.fi.muni.cz/uui/ Obsah: Problém osmi dam Prohledávání stavového prostoru Neinformované prohledávání Úvod do umělé inteligence

Více

"Agent Hledač" (3. přednáška)

Agent Hledač (3. přednáška) "Agent Hledač" (3. přednáška) Přehled 3. přednášky v této přednášce se budeme zabývat "goal-based" agenty Přehled 3. přednášky v této přednášce se budeme zabývat "goal-based" agenty připomeňme, že "goal-based"

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

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

DIPLOMOVÁ PRÁCE (MMSE) Pokyny pro vypracování

DIPLOMOVÁ PRÁCE (MMSE) Pokyny pro vypracování Magisterský studijní obor 2. ročník ELEKTRONIKA A SDĚLOVACÍ TECHNIKA Akademický rok 2011/2012 FEKT VUT v Brně DIPLOMOVÁ PRÁCE (MMSE) Pokyny pro vypracování 1. Diplomová práce musí být svázána v pevných

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

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

Hanojská věž. T2: prohledávání stavového prostoru. zadání [1 1 1] řešení [3 3 3] dva možné první tahy: [1 1 2] [1 1 3]

Hanojská věž. T2: prohledávání stavového prostoru. zadání [1 1 1] řešení [3 3 3] dva možné první tahy: [1 1 2] [1 1 3] Hanojská věž zadání [1 1 1] řešení [3 3 3] dva možné první tahy: [1 1 2] [1 1 3] který tah je lepší? (co je lepší tah?) P. Berka, 2012 1/21 Stavový prostor 1. množina stavů S = {s} 2. množina přechodů

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

Grafové algoritmy. Programovací techniky

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

Více

Dijkstrův algoritmus

Dijkstrův algoritmus Dijkstrův algoritmus Hledání nejkratší cesty v nezáporně hranově ohodnoceném grafu Necht je dán orientovaný graf G = (V, H) a funkce, která každé hraně h = (u, v) H přiřadí nezáporné reálné číslo označované

Více

popel, glum & nepil 16/28

popel, glum & nepil 16/28 Lineární rezoluce další způsob zjemnění rezoluce; místo stromu směřujeme k lineární struktuře důkazu Lineární rezoluční odvození (důkaz) z Ë je posloupnost dvojic ¼ ¼ Ò Ò taková, že Ò ½ a 1. ¼ a všechna

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

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

AUTOMATIZACE CHYB OBJEDNÁVKOVÉHO SYSTÉMU AUTOMATION OF ORDERING SYSTEM ERRORS

AUTOMATIZACE CHYB OBJEDNÁVKOVÉHO SYSTÉMU AUTOMATION OF ORDERING SYSTEM ERRORS VYSOKÉ UENÍ TECHNICKÉ V BRN BRNO UNIVERSITY OF TECHNOLOGY FAKULTA PODNIKATELSKÁ ÚSTAV INFORMATIKY FACULTY OF BUSINESS AND MANAGEMENT INSTITUT OF INFORMATICS AUTOMATIZACE CHYB OBJEDNÁVKOVÉHO SYSTÉMU AUTOMATION

Více

PROBLÉM OSMI DAM II. Problém osmi dam. Obsah:

PROBLÉM OSMI DAM II.   Problém osmi dam.   Obsah: Úvod do umělé inteligence RÉ S úkol: Rozestavte po šachovnici 8 dam tak, aby se žádné dvě vzájemně neohrožovaly. -mail: hales@fi.muni.cz http://nlp.fi.muni.cz/uui/ bsah: rohledávání do hloubky rohledávání

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

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

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

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 STAVEBNÍ ÚSTAV POZEMNÍCH KOMUNIKACÍ FACULTY OF CIVIL ENGINEERING INSTITUTE OF ROAD STRUCTURES PŘELOŽKA SILNICE II/150 DOMAŽELICE BYSTŘICE

Více

Úvod do mobilní robotiky AIL028

Úvod do mobilní robotiky AIL028 Pravděpodobnostní plánování zbynek.winkler at mff.cuni.cz, md at robotika.cz http://robotika.cz/guide/umor05/cs 12. prosince 2005 1 Co už umíme a co ne? Jak řešit složitější případy? Definice konfiguračního

Více

Prohledávání do šířky a do hloubky. Jan Hnilica Počítačové modelování 15

Prohledávání do šířky a do hloubky. Jan Hnilica Počítačové modelování 15 Prohledávání do šířky a do hloubky Jan Hnilica Počítačové modelování 15 1 Prohledávací algoritmy Úkol postupně systematicky prohledat vymezený stavový prostor Stavový prostor (SP) možné stavy a varianty

Více

Základy umělé inteligence

Základy umělé inteligence Základy umělé inteligence Hraní her (pro 2 hráče) Základy umělé inteligence - hraní her. Vlasta Radová, ZČU, katedra kybernetiky 1 Hraní her (pro dva hráče) Hraní her je přirozeně spjato s metodami prohledávání

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

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

i=1 Přímka a úsečka. Body, které leží na přímce procházející body a a b můžeme zapsat pomocí parametrické rovnice

i=1 Přímka a úsečka. Body, které leží na přímce procházející body a a b můžeme zapsat pomocí parametrické rovnice I. Funkce dvou a více reálných proměnných 1. Úvod Značení: V textu budeme používat označení: N pro množinu všech přirozených čísel; R pro množinu všech reálných čísel; R n pro množinu všech uspořádaných

Více

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

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

Umělá inteligence I. Roman Barták, KTIML. roman.bartak@mff.cuni.cz http://ktiml.mff.cuni.cz/~bartak

Umělá inteligence I. Roman Barták, KTIML. roman.bartak@mff.cuni.cz http://ktiml.mff.cuni.cz/~bartak Umělá inteligence I Roman Barták, KTIML roman.bartak@mff.cuni.cz http://ktiml.mff.cuni.cz/~bartak Na úvod Agent s reflexy pouze převádí současný vjem na jednu akci. Agent s cílem umí plánovat několik akcí

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

Zdůvodněte, proč funkce n lg(n) roste alespoň stejně rychle nebo rychleji než než funkce lg(n!). Symbolem lg značíme logaritmus o základu 2.

Zdůvodněte, proč funkce n lg(n) roste alespoň stejně rychle nebo rychleji než než funkce lg(n!). Symbolem lg značíme logaritmus o základu 2. 1 3 4 5 6 7 8 9 10 11 1 13 14 15 16 17 18 19 0 1 3 4 5 6 7 8 9 30 31 3 Zdůvodněte, proč funkce f(n) = n log(n) 1 n 1/ roste rychleji než funkce g(n) = n. Zdůvodněte, proč funkce f(n) = n 3/ log(n) roste

Více

Cílem kapitoly je seznámit studenta se seznamem a stromem. Jejich konstrukci, užití a základní vlastnosti.

Cílem kapitoly je seznámit studenta se seznamem a stromem. Jejich konstrukci, užití a základní vlastnosti. Seznamy a stromy Cílem kapitoly je seznámit studenta se seznamem a stromem. Jejich konstrukci, užití a základní vlastnosti. Klíčové pojmy: Seznam, spojový seznam, lineární seznam, strom, list, uzel. Úvod

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

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

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

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

Více

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

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

Více

CVIČNÝ TEST 22. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 13 IV. Záznamový list 15

CVIČNÝ TEST 22. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 13 IV. Záznamový list 15 CVIČNÝ TEST 22 Mgr. Tomáš Kotler OBSAH I. Cvičný test 2 II. Autorské řešení 6 III. Klíč 13 IV. Záznamový list 15 I. CVIČNÝ TEST VÝCHOZÍ TEXT K ÚLOZE 1 Kontroloři Státní zemědělské a potravinářské inspekce

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

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague 1 / 40 regula Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague regula 1 2 3 4 5 regula 6 7 8 2 / 40 2 / 40 regula Iterační pro nelineární e Bud f reálná funkce

Více

Slepé prohledávání do šířky Algoritmus prohledávání do šířky Při tomto způsobu prohledávání máme jistotu, že vždy nalezneme koncový stav, musíme ale p

Slepé prohledávání do šířky Algoritmus prohledávání do šířky Při tomto způsobu prohledávání máme jistotu, že vždy nalezneme koncový stav, musíme ale p Hanojská věž Stavový prostor 1. množina stavů S = {s} 2. množina přechodů mezi stavy (operátorů) Φ = {φ} s k = φ ki (s i ) zadání [1 1 1] řešení [3 3 3] dva možné první tahy: [1 1 2] [1 1 3] který tah

Více

Časová a prostorová složitost algoritmů

Časová a prostorová složitost algoritmů .. Časová a prostorová složitost algoritmů Programovací techniky doc. Ing. Jiří Rybička, Dr. ústav informatiky PEF MENDELU v Brně rybicka@mendelu.cz Hodnocení algoritmů Programovací techniky Časová a prostorová

Více

Umělá inteligence I. Roman Barták, KTIML.

Umělá inteligence I. Roman Barták, KTIML. Umělá inteligence I Roman Barták, KTIML roman.bartak@mff.cuni.cz http://ktiml.mff.cuni.cz/~bartak Na úvod Neinformované (slepé) prohledávání umí najít (optimální) řešení problému, ale ve většině případů

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

ORIENTOVANÉ GRAFY, REPREZENTACE GRAFŮ

ORIENTOVANÉ GRAFY, REPREZENTACE GRAFŮ ORIENTOVANÉ GRAFY, REPREZENTACE GRAFŮ Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze BI-GRA, LS 2/2, Lekce Evropský sociální fond Praha & EU: Investujeme

Více

Funkce a lineární funkce pro studijní obory

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

Více

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

Modulární systém dalšího vzdělávání pedagogických pracovníků JmK. v přírodních vědách a informatice CZ.1.07/1.3.10/

Modulární systém dalšího vzdělávání pedagogických pracovníků JmK. v přírodních vědách a informatice CZ.1.07/1.3.10/ Modulární systém dalšího vzdělávání pedagogických pracovníků JmK v přírodních vědách a informatice CZ.1.07/1.3.10/02.0024 Teorie grafů Sbírka cvičení Domečkologie Zkuste nakreslit domečky na obrázku. Které

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

SMĚRNICE REKTORA Č. 9/2007

SMĚRNICE REKTORA Č. 9/2007 Vysoké učení technické v Brně Rozdělovník: rektor, děkani fakult, ředitelé dalších součástí Zpracoval: doc. RNDr. Miloslav Švec, CSc. SMĚRNICE REKTORA Č. 9/2007 ÚPRAVA, ODEVZDÁVÁNÍ A ZVEŘEJŇOVÁNÍ VYSOKOŠKOLSKÝCH

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

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

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

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

Operační výzkum. Teorie her. Hra v normálním tvaru. Optimální strategie. Maticové hry.

Operační výzkum. Teorie her. Hra v normálním tvaru. Optimální strategie. Maticové hry. Operační výzkum Hra v normálním tvaru. Optimální strategie. Maticové hry. Operační program Vzdělávání pro konkurenceschopnost Název projektu: Inovace magisterského studijního programu Fakulty ekonomiky

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

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

Délka (dny) 150 - - 2 terénní úpravy (prvotní) 15-20 - příprava staveniště (výstavba přístřešku pro materiál)

Délka (dny) 150 - - 2 terénní úpravy (prvotní) 15-20 - příprava staveniště (výstavba přístřešku pro materiál) Skupinová práce. Zadání skupinové práce Síťová analýza metoda CPM Dáno: Výstavba skladu zásob obilí představuje následující činnosti: Tabulka Název činnosti Délka (dny) Optimální projekt. Optimální dělníků

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

Heuristiky, best-first search, A* search

Heuristiky, best-first search, A* search Informované prohledávání stavového prostoru Heuristiky, best-first search, A* search Obsah: Aleš Horák E-mail: hales@fi.muni.cz http://nlp.fi.muni.cz/uui/ Informované prohledávání stavového prostoru Neinformované

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

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 28. března 2017 Grafová formulace CPM (critical path method) Orientovaný acyklický graf (DAG) je orientovaný graf neobsahující

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

2 Zpracování naměřených dat. 2.1 Gaussův zákon chyb. 2.2 Náhodná veličina a její rozdělení

2 Zpracování naměřených dat. 2.1 Gaussův zákon chyb. 2.2 Náhodná veličina a její rozdělení 2 Zpracování naměřených dat Důležitou součástí každé experimentální práce je statistické zpracování naměřených dat. V této krátké kapitole se budeme věnovat určení intervalů spolehlivosti získaných výsledků

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

Lekce 01 Úvod do algoritmizace

Lekce 01 Úvod do algoritmizace Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů Lekce 01 Úvod do algoritmizace Tento projekt CZ.1.07/1.3.12/04.0006 je spolufinancován Evropským sociálním

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

Úvod do informatiky. Miroslav Kolařík. Zpracováno dle učebního textu R. Bělohlávka: Úvod do informatiky, KMI UPOL, Olomouc 2008.

Úvod do informatiky. Miroslav Kolařík. Zpracováno dle učebního textu R. Bělohlávka: Úvod do informatiky, KMI UPOL, Olomouc 2008. Úvod do informatiky přednáška čtvrtá Miroslav Kolařík Zpracováno dle učebního textu R. Bělohlávka: Úvod do informatiky, KMI UPOL, Olomouc 2008. Obsah 1 Pojem relace 2 Vztahy a operace s (binárními) relacemi

Více

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

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

Více

Binární soubory (datové, typované)

Binární soubory (datové, typované) Binární soubory (datové, typované) - na rozdíl od textových souborů data uložena binárně (ve vnitřním tvaru jako v proměnných programu) není čitelné pro člověka - všechny záznamy téhož typu (může být i

Více

Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem.

Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem. Algoritmus Algoritmus je schematický postup pro řešení určitého druhu problémů, který je prováděn pomocí konečného množství přesně definovaných kroků. nebo Algoritmus lze definovat jako jednoznačně určenou

Více

4EK213 LINEÁRNÍ MODELY

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

Více

Cykly a pole 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116.

Cykly a pole 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. Cykly a pole Tato část sbírky je tvořena dalšími úlohami na práci s cykly. Na rozdíl od předchozího oddílu se zde již v řešeních úloh objevuje více cyklů, ať už prováděných po sobě nebo vnořených do sebe.

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

63. ročník Matematické olympiády 2013/2014

63. ročník Matematické olympiády 2013/2014 63. ročník Matematické olympiády 2013/2014 Úlohy ústředního kola kategorie P 2. soutěžní den Na řešení úloh máte 4,5 hodiny čistého času. Při soutěži je zakázáno používat jakékoliv pomůcky kromě psacích

Více

CVIČNÝ TEST 15. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17

CVIČNÝ TEST 15. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17 CVIČNÝ TEST 15 Mgr. Tomáš Kotler OBSAH I. Cvičný test 2 II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17 I. CVIČNÝ TEST VÝCHOZÍ TEXT K ÚLOZE 1 Je dána čtvercová mřížka, v níž každý čtverec má délku

Více

Numerické řešení diferenciálních rovnic

Numerické řešení diferenciálních rovnic Numerické řešení diferenciálních rovnic Omezení: obyčejné (nikoli parciální) diferenciální rovnice, Cauchyho počáteční úloha, pouze jedna diferenciální rovnice 1. řádu 1/1 Numerické řešení diferenciálních

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

Dokumentace programu piskvorek

Dokumentace programu piskvorek Dokumentace programu piskvorek Zápočtového programu z Programování II PRM045 Ondřej Vostal 20. září 2011, Letní semestr, 2010/2011 1 Stručné zadání Napsat textovou hru piškvorky se soupeřem s umělou inteligencí.

Více

Úvod do informatiky. Miroslav Kolařík

Úvod do informatiky. Miroslav Kolařík Úvod do informatiky přednáška devátá Miroslav Kolařík Zpracováno dle učebního textu prof. Bělohlávka: Úvod do informatiky, KMI UPOL, Olomouc 2008 Obsah 1 Kombinatorika: princip inkluze a exkluze 2 Počítání

Více

Hlavolamy a teorie grafů

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

Více

Algoritmus. Cílem kapitoly je seznámit žáky se základy algoritmu, s jeho tvorbou a způsoby zápisu.

Algoritmus. Cílem kapitoly je seznámit žáky se základy algoritmu, s jeho tvorbou a způsoby zápisu. Algoritmus Cílem kapitoly je seznámit žáky se základy algoritmu, s jeho tvorbou a způsoby zápisu. Klíčové pojmy: Algoritmus, vlastnosti algoritmu, tvorba algoritmu, vývojový diagram, strukturogram Algoritmus

Více

Úvod do mobilní robotiky AIL028

Úvod do mobilní robotiky AIL028 md at robotika.cz, zbynek.winkler at mff.cuni.cz http://robotika.cz/guide/umor07/cs 27. listopadu 2007 1 Mapa světa Exaktní plánování 2 3 Plánování s otáčením Mapa světa - příklad Obsah Mapa světa Exaktní

Více

24.11.2009 Václav Jirchář, ZTGB

24.11.2009 Václav Jirchář, ZTGB 24.11.2009 Václav Jirchář, ZTGB Síťová analýza 50.let V souvislosti s potřebou urychlit vývoj a výrobu raket POLARIS v USA při závodech ve zbrojení za studené války se SSSR V roce 1958 se díky aplikaci

Více

Hledání správné cesty

Hledání správné cesty Semestrální práce z předmětu A6M33AST Závěrečná zpráva Hledání správné cesty Nela Grimová, Lenka Houdková 2015/2016 1. Zadání Naším úkolem bylo vytvoření úlohy Hledání cesty, kterou by bylo možné použít

Více

1 Řešení soustav lineárních rovnic

1 Řešení soustav lineárních rovnic 1 Řešení soustav lineárních rovnic 1.1 Lineární rovnice Lineární rovnicí o n neznámých x 1,x 2,..., x n s reálnými koeficienty rozumíme rovnici ve tvaru a 1 x 1 + a 2 x 2 +... + a n x n = b, (1) kde koeficienty

Více