Genetické programování pro řízení hejna robotů

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

Download "Genetické programování pro řízení hejna robotů"

Transkript

1 Univerzita Karlova v Praze Matematicko-fyzikální fakulta BAKALÁŘSKÁ PRÁCE Michal Filippi Genetické programování pro řízení hejna robotů Katedra teoretické informatiky a matematické logiky Vedoucí bakalářské práce: Studijní program: Studijní obor: Mgr. Martin Pilát, Ph.D. Informatika Obecná informatika Praha 2015

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

3 Chtěl bych poděkovat všem, kteří mi během mého studia na MFF UK byli jakýmkoliv způsobem nápomocní, především pak rodině za podporu a zázemí během celého studia. Hlavně bych ale chtěl poděkovat vedoucímu mé bakalářské práce panu Mgr. Martinovi Pilátovi, Ph.D. za pomoc při výběru tématu práce a také za odborné rady a podněty v průběhu vypracovávání. ii

4 Název práce: Genetické programování pro řízení hejna robotů Autor: Michal Filippi Katedra: Katedra teoretické informatiky a matematické logiky Vedoucí bakalářské práce: Mgr. Martin Pilát, Ph.D., Katedra teoretické informatiky a matematické logiky Abstrakt: Homogenní robotická hejna bývají zpravidla řízena programem, který je vytvořen ručně programátorem. Tato práce se zabývá alternativním přístupem, a to možností tvorby řídících programů pomocí techniky inspirované biologickou evolucí, genetickým programovaním. Za tímto účelem byl naprogramován jednoduchý simulátor 2D prostředí, ve kterém je možné vytvořené řídící programy na homogenním hejnu virtuálních robotů testovat a pozorovat. Schopnost genetického programování vytvářet řídící programy je zkoumána na třech různých scénách, ve kterých má robotické hejno za úkol plnit tři různé úkoly. Součástí práce je také porovnání genetického programování s technikou využívající neuronovou síť učenou evolučními strategiemi. Klíčová slova: homogenní robotická hejna; evoluční algoritmy; genetické programování Title: Genetic Programming for Control of Robotic Swarms Author: Michal Filippi Department: Department of Theoretical Computer Science and Mathematical Logic Supervisor: Mgr. Martin Pilát, Ph.D., Department of Theoretical Computer Science and Mathematical Logic Abstract: Homogeneous robotic swarms are usually controlled by a manually created program. This thesis studies an alternative approach, the possibilities of creating control programs by means of a technique inspired by biological evolution called genetic programming. A simulator of a simple 2D environment was created for this purpose. This allows us to observe and examine newly created control programs for virtual homogeneous robotic swarm. The ability of genetic programming to create control programs is examined on three different scenarios in which the robotic swarm should deal with three different tasks. The thesis also contains the comparison of genetic programming with a technique that use neural network and evolutionary strategies. Keywords: homogeneous robotic swarms; evolutionary algorithms; genetic programming 1

5 Obsah Úvod 4 1 Genetické programování a související algoritmy Evoluční algoritmy Jedinec a populace Fitness funkce Selekce Mutace a křížení Genetické programování Jedinec v GP Inicializace nulté generace Evoluční operátory Silně typované GP Nekontrolovatelný růst Rojová robotika Strojová tvorba řídících programů robotického hejna Simulátor 18 4 Experimenty Experiment 1: Vyhýbání se překážkám Popis scény Cíl experimentu Model robota Nastavení evoluce Výsledky Experiment 2: Shlukování Popis scény Cíl experimentu Model robota Nastavení evoluce Metoda evolučních strategií a neuronové sítě Výsledky Experiment 3: Prohledávání oblasti Popis scény

6 4.3.2 Cíl experimentu Model robota Nastavení evoluce Metoda evolučních strategií a neuronové sítě Člověkem vytvořený řídící program Výsledky Závěr 46 Seznam použité literatury 48 Obsah přiloženého CD 51 3

7 Úvod S rostoucí automatizací většiny procesů roste také počet robotů plnících lidmi zadané úkoly. Takoví roboti v některých případech musí být schopni vykonat náročné činnosti, což zvyšuje jejich cenu a složitost konstrukce. Alternativním přístupem může být využití skupiny jednodušších robotů, kteří by samostatně úkol sice nezvládli, ale jejich počet a možnost kooperace jim rozšiřuje pole působnosti. Velkou výhodou takového hejna je možnost decentralizace, kdy při poruše libovolného robota z hejna nebudou funkčnost ani výkon celé skupiny výrazně ovlivněny. Právě proto se robotická hejna hodí do prostředí, kde hrozí vážné riziko poškození. Například je možné hejno jednodušších robotů využít k asistenci hasičského sboru při zásazích v továrních budovách, které jsou velmi rozsáhlé a hasičům zde hrozí nebezpečí a ztráta orientace [1]. V takovém případě může hejno provádět prohledávání hořícího objektu, hledání obětí nebo navigování hasičů. Výzvou pro programátory je navržení a zpracování řídících systémů pro roboty v hejnu tak, aby byli schopni efektivně vykonávat zadaný úkol. Možným řešením může být takový program netvořit lidskou silou, ale využít některou z metod strojové tvorby programů, jako je například genetické programování. Cíl práce Cílem této práce je vyzkoušet, popsat a zhodnotit možnost vytváření řídících programů pomocí genetického programování (GP) [2] pro homogenní hejno autonomních robotů, tedy hejno stejných robotů řízených identickým programem, kteří se rozhodují pouze na základě vlastních informací a nejsou řízeni žádným centrálním bodem. Testování proběhne na sérii scénářů vyžadujících plnění jednodušších úkolů hejnem. Za tímto účelem vyvineme simulátor, ve kterém bude možné vytvořené programy testovat a pozorovat. Na vybraném scénáři implementujeme také některou z jiných metod strojové tvorby programu a provedeme srovnání s genetickým programováním. Struktura práce Práce je rozdělena do několika částí. První část je věnována obecnému seznámení s genetickým programováním a souvisejícími algoritmy na úrovni nutné k pochopení jejich principů. V druhé části jsou zmíněny související práce zabývající se 4

8 rojovou robotikou a především programováním robotického hejna s důrazem na použité metody pro návrh a tvorbu řídících programů. Dále následuje série vlastních experimentů založených na genetickém programování, které jsou v závěru práce zhodnoceny. 5

9 1. Genetické programování a související algoritmy Genetické programování (GP) [2] spadá do skupiny algoritmů stochastického prohledávání inspirovaného přirozenou selekcí a biologickou evolucí. Tato skupina se nazývá evoluční algoritmy (EA) [3]. EA si v další části popíšeme obecněji a následně se zaměříme na samotné GP. 1.1 Evoluční algoritmy Následující část popisující evoluční algoritmy je vypracována na základě knih od A. Eiben a spol. [3] a D. Fogela a spol. [4]. Snaha hledat řešení problémů pomocí principů Darwinovy evoluce sahá až do 40. let 20. století, tedy ještě před rozmach počítačů. Nicméně k prvním experimentům spuštěným na počítači začalo docházet až na přelomu 50. a 60. let, za těmito pokusy stáli například Friedberg (1958) [5] nebo Bremermann (1962) [6]. Ke konci 60. let začaly vznikat EA v podobách, jaké je známe dnes. V Německu v roce 1965 dal I. Rechenberg vzniknout evolučním strategiím (ES) [7], L. Fogel v roce 1966 položil základ evolučnímu programování (EP) [8] v Kalifornii a genetické algoritmy (GA) vznikly v roce 1975 v Michiganu zásluhou J. Hollanda [9]. GP se do rodiny EA přidalo až na začátku 90. let, a to díky J. Kozovi [10]. ES, EP a GA se v této práci budeme věnovat pouze okrajově. Jak již bylo naznačeno výše, EA slouží k nalezení suboptimálního řešení optimalizačního problému prohledáváním prostoru řešení pomocí metod inspirovaných přírodou. Hledání EA probíhá iterativně v krocích nazývaných generace, každá generace obsahuje populaci (multimnožinu 1 ) řešení, neboli jedinců. Každou generaci je každý jedinec v populaci ohodnocen funkcí fitness, která hodnotí jedince na základě kvality řešení, které jedinec reprezentuje. Přechod mezi jednotlivými generacemi probíhá vytvořením nových jedinců a výběrem nové populace. Tvorba nových řešení probíhá buď kombinací několika již stávajících jedinců, tedy křížením jedinců, nebo upravením nějakého řešení, neboli mutací jedince. Většinou se aplikují obě tyto operace. Výběr jedinců pro křížení (tj. rodičů) a jedinců, kteří vytvoří novou generaci, zajišťuje proces zvaný selekce. Ukončující podmínkou algoritmu typicky bývá dosáhnutí předepsaného počtu generací, nalezení dostatečně dobrého jedince, dosažení časového limitu nebo kombinace 1 Multimnožina je zobecnění množiny, které může obsahovat více identických prvků. 6

10 Obrázek 1.1: Schéma jednoduchého EA. předchozích. Obecný EA se všemi základními komponentami znázorňuje obrázek 1.1. Je nutné zdůraznit, že většina částí EA je řízena náhodou. Vysoká hodnota fitness funkce nezaručuje jedincovi přežití do další generace ani přežití jeho případných potomků, pouze poskytuje větší šanci. Stejně tak křížení a mutace nastává pouze s jistou pravděpodobností, navíc způsob křížení a mutace bývá zpravidla také náhodný. Řízení náhodou poskytuje EA diversitu populace a částečnou ochranu před uvíznutím v lokálním optimu. EA jsou vhodnou metodou na řešení problémů, u nichž neumíme nalézt optimální ani suboptimální řešení klasickými deterministickými metodami, případně by jejich hledání bylo velmi náročné, ale jsme schopni posoudit kvalitu každého možného řešení. Dobrým příkladem takových problémů mohou být NP-úplné problémy. Následuje detailnější popis a vysvětlení jednotlivých komponent EA zmíněných v předchozích odstavcích Jedinec a populace Jedinec je datová struktura kódující jedno řešení optimalizačního problému. Volba konkrétní reprezentace jedince je základní krok EA a je od něj odvozena volba dalších komponent, především křížení a mutace. Také proto typ jedince slouží jako základní způsob dělení EA, jak ukazuje tabulka 1.1. Populace je multimnožina jedinců v rámci jedné generace. Její velikost bývá typicky konstantní po celý běh EA, což je zajištěno selekcí jedinců. Na začátku EA bývají jedinci tvořící nultou generaci generováni náhodně, ale v některých 7

11 Tabulka 1.1: Jednoduché rozdělení EA na základě reprezentace jedince a významu operátorů. Typ EA Jedinec Evoluční operátory Genetické algoritmy Vektor celých čísel Mutace, křížení Genetické programování Strom Mutace (ne vždy), křížení Evoluční strategie Vektor floating-point Mutace (výraznější) i křížení čísel Evoluční programování Konečný automat Většinou pouze mutace případech je vhodné použít i jedince vzniklé v dřívějším běhu EA nebo jinak vzniklé jedince Fitness funkce Fitness funkce přiřazuje jedincům hodnoty podle kvality řešení, které kódují, a je tedy přímo svázána s optimalizovaným problémem. Z pohledu evoluce fitness reprezentuje podmínky, kterým se populace snaží přizpůsobit, samotné přizpůsobování populace pak zajišťují evoluční operátory, tedy selekce, mutace a křížení. Jednodušší EA uvažují o fitness funkci jako o zobrazení f fit : X R, kde X je množina všech možných jedinců. Některé pokročilejší EA se ale snaží optimalizovat řešení s několika kritérii [11] a chápou tak fitness jako zobrazení f fit : X R k, kde k je počet kritérií. Takové EA již obecně vyžadují komplikovanější verze selekcí, jelikož nemusí existovat vhodné uspořádání na R k, které by šlo použít pro porovnávání hodnot fitness funkce (nešlo by tedy vždy říci, je-li jedno řešení lepší než druhé). V této práci budě věnována pozornost pouze jednodušší variantě fitness funkce používané v jednokriteriální optimalizaci. Vzhledem k zadání některých optimalizačních problémů může být přirozené zvolit fitness funkci tak, že dobrá řešení funkci minimalizují, mluvíme pak o minimalizačním optimalizačním problému. Takový problém se snadno převede na maximalizační například uvažováním negace funkce nebo převrácením hodnoty funkce (pokud původní f fit : X (0, )). Pokud nebude uvedeno jinak, budu uvažovat fitness funkci jako maximalizační. Fitness funkce může být také definována jako dynamická funkce, tedy měnící se v čase (rozumějme napříč generacemi). To lze využít pro rozdělení evoluce na několik částí, kdy v každé části jsou přidávány další kritéria fitness funkce. To může mít pozitivní vliv na rychlost hledání řešení díky postupnému vývoji jedinců. 8

12 1.1.3 Selekce Selekce slouží k výběru užší skupiny jedinců z populace, což během EA bývá využito ve dvou fázích. První fází je výběr rodičů pro křížení, druhou je pak výběr jedinců pro přežití do další generace. Druhá fáze bývá občas vynechána a EA je nastavený tak, aby každou generaci vyprodukoval tolik potomků, jaká je velikost populace. Další generace je pak tvořena pouze vzniklými potomky. Nejjednodušší metodou selekce je výběr k nejlepších jedinců podle hodnoty fitness funkce. Taková selekce ale může rychle zmenšit genetický fond populace nebo odstraňovat nadějná řešení, která pouze nedostala dostatek času na zdokonalení. Není proto téměř využívána. Naopak nejčastěji používané metody jsou ruletová selekce a turnajová selekce. Obě metody v základní verzi předpokládají fitness typu f fit : X R, viz Ruletová selekce při výběru k jedinců pracuje v k krocích. V každém kroku vygeneruje náhodné číslo r v rozsahu 0, n i=0 f i), kde n je počet jedinců, ze kterých je užší skupina vybírána, a f 1, f 2,..., f n jsou jejich hodnoty fitness. V každém kroku je vybrán ten jedinec j m, pro kterého platí, že m 1 i=0 f i r < m i=0 f i. Turnajová selekce při výběru k jedinců uspořádá k turnajů, do každého z nich je náhodně vybráno t jedinců (t je parametr turnajové selekce). Každou t-tici jedinců seřadí sestupně podle hodnoty fitness (v případě minimalizačního optimalizačního problému vzestupně) a s pravděpodobností p tur (druhý parametr turnajové selekce) vybere prvního jedince, s pravděpodobností p tur (1 p tur ) vybere druhého jedince, třetího s pravděpodobností p tur (1 p tur ) 2 atd. Parametr p tur bývá často nastaven na 1, pak turnajová selekce vždy vybere nejlepšího jedince z turnaje. V případě, že by se v populaci objevil jeden velmi nadprůměrný jedinec, u ruletové selekce by se mohlo stát, že by jedinec a jeho potomci během jedné generace obsadili téměř celou populaci a snížili tak genetický fond celé populace. Tomu turnajová selekce brání náhodným výběrem jedinců do každého turnaje. Často je také využívána technika zvaná elitismus, ta garantuje nejlepším jedincům v populaci přežití do další generace bez ohledu na výsledek selekce Mutace a křížení Mutace i křížení jsou nástroje zajišťující hledání nových řešení problému během EA, jejich princip je ale různý. Mutace je unární operace nad jedinci sloužící obecně k rozšiřování genetického 9

13 fondu populace, čehož dosahuje náhodnými úpravami jedinců v populaci často na té nejelementárnější úrovni, jakou reprezentace jedince nabízí. Křížení, na rozdíl od mutace, je n-ární (alespoň binární) operace, jejíž cílem je kombinovat již nalezená řešení k hledání nových, v ideálním případě lepších, řešení. Obě operace nenastávají pokaždé, ale pouze se zadanou pravděpodobností. Při neprovedeném křížení bývají často za vzniklé potomky označeni samotní rodiče, to zaručuje konstantní počet vzniklých potomků napříč generacemi, což lze využít k vypuštění selekce na konci generace k výběru přeživších. Role evolučních operátorů se napříč různými EA velmi různí. Například u GP je hlavním operátorem křížení, naopak u ES je většinou křížení úplně vynecháno a tvorbu nových řešení zajišťuje pouze mutace. Samotný způsob mutování a křížení jedinců je přímo spjat s jejich reprezentací, konkrétní metody jsou tedy zmíněny až v sekci ve spojení se samotným GP. 1.2 Genetické programování Genetické programování je typ EA umožňující vytvářet celé počítačové programy. K tomu GP reprezentuje jedince souvislou stromovou strukturou (ukázky jednoduchých jedinců jsou zobrazeny v obrázku 1.2). Podobnou strukturou disponuje i řada programovacích jazyků, ve spojení s nimiž bývá GP většinou používáno. Za zmínku takového jazyka stojí například jazyk LISP 2, který použil i J. Koza, považovaný za otce GP, ve svých prvních experimentech v 90. letech [12] a je stále ve spojení s GP používán. Dále v této sekci budou opět podrobněji popsány komponenty EA, nyní ale ve formě, v jaké jsou používány přímo v GP. Následující části jsou čerpány z knih R. Poliho a spol. [2] a M. Mitchella [13] Jedinec v GP Strom, kterým je jedinec kódován, je tvořen dvěma typy vrcholů. Terminálové vrcholy se mohou nacházet pouze v listech stromu, naopak funkční vrcholy tvoří vnitřní vrcholy stromu. Každý funkční vrchol má pevně zvolený počet vstupních parametrů (arita funkce). Například u prvního jedince v obrázku 1.2 je množinou funkcí množina {/, +, sin} a množinou terminálů je množina {1, 0, 9}, u druhého příkladu jsou to množiny {if, <} a {x, 1, move, stay}. 2 Lisp je rodina programovacích jazyků, jejichž původní specifikace je z roku Jedná se o stále aktivní programovací jazyky používané především v oblasti umělé inteligence. 10

14 Obrázek 1.2: Dva příklady jednoduchých stromů (jedinců) reprezentující výraz (sin(0) + 9)/1 a program if(x < 7) than move; else stay Inicializace nulté generace Jako u jiných EA bývá nultá generace jedinců vytvořena náhodně, ale nabízí se zde několik možností, jak při generování postupovat. Rozeznáváme tři základní druhy inicializace, u všech je stanoven pevný limit na hloubku 3 jedince h. Metoda grow (růstová metoda) staví jedince postupně od kořenu níže. Pokud je hloubka vkládaného vrcholu nižší než h, je tento vrchol vybrán náhodně z množiny funkcí i terminálů. Pokud je hloubka rovna h, je vrchol vybírán pouze z množiny terminálů. Náhodný výběr z obou množin zároveň je velmi náchylný na poměr mezi velikostmi jednotlivých množin. Pokud je množina terminálů výrazně větší, generuje tato metoda malé jedince málokdy dosahující hloubky h. Naopak je-li poměr obrácený, chová se metoda grow téměř stejné, jako následující metoda full. Metoda full (úplná metoda) vygeneruje jedince jako úplný strom hloubky h, tedy strom, ve kterém jsou všechny listy v hloubce h. Při generování jsou tedy vrcholy náhodně vybírány z množiny funkcí až do hloubky h, kdy je vrchol vybírán pouze z množiny terminálů. Třetí metodou je tzv. ramped half-and-half (půlená metoda), která půlku jedinců generuje pomocí metody grow a druhou pomocí metody full. Navíc během generování upravuje stanovenou hloubku h. Generuje tak širší spektrum jedinců než předchozí metody samotné. 3 Hloubka jedince je hloubka nejhlubšího vrcholu v jedincovi. Hloubkou vrcholu rozumíme délku cesty z vrcholu do kořene. 11

15 1.2.3 Evoluční operátory V této části zmíním pouze několik vybraných operátorů používaných v GP, jejich širší přehled lze nalézt například ve výše zmíněné knize od J. Poliho a spol. [2, kap. 2.4]. Jednou ze základních mutací v GP je tzv. subtree mutation (mutace podstromu), která celý podstrom zavěšený pod náhodně vybraným vrcholem v jedinci nahradí nově vygenerovaným stromem. Generování nového podstromu je typicky řízeno technikami grow nebo full zmíněných v sekci Jinou mutací upravující jedince mírněji než předchozí metoda je tzv. point mutation (bodová mutace), která vymění náhodný vnitřní vrchol jedince za jiný z množiny funkcí se shodnou aritou. Příkladem křížení může být subtree crossover (křížení podstromem), který v obou rodičích vybere náhodně a nezávisle vrchol křížení a prohodí podstromy zavěšené pod těmito vrcholy. Bod křížení není nutné vybírat čistě náhodně, ale může být vhodné vybírat vrcholy ve větší hloubce, aby změna jedinců nebyla tak markantní. Selekce nebere reprezentaci jedince nijak v úvahu, není proto nutné upravovat metody představené v sekci Silně typované GP Silně typované GP [2, kap ] je metoda sloužící jako ochrana proti vzniku syntakticky nesprávných programů během GP. Tomu silně typované GP brání typováním funkcí a terminálů. Každý terminál je označen typem, stejně tak i každá funkce má označené typy parametrů, které přijímá, a typ vrácené hodnoty. Každý vnitřní vrchol stromu tedy může obsahovat pouze syny odpovídající typu parametrů funkce. Například druhý jedinec v obrázku 1.2 by mohl být vhodný kandidát na použití silně typovaného GP. Prvním parametrem funkce if je zde zřejmě výraz vracející hodnotu true nebo false, bylo by tedy syntakticky nesprávné vložit jako prvního syna terminál obsahující číslo 7. Taková omezení při stavbě jedince pak vyžadují pozměněnou inicializaci nulté generace, mutaci i křížení Nekontrolovatelný růst Velikost jedince není v GP nijak principiálně omezena, může se tedy stát, že se zvyšujícím se počtem generací jedinci narůstají do obřích rozměrů, které třeba 12

16 dalece přesahují velikost optimálního řešení. Metody bránící těmto situacím se nazývají bloat control metody (metody kontrolování růstu) [2, kap. 11.3] a několik základních metod dále popíši. Přirozenou obranou proti bloatu je nastavení pevné maximální velikosti nebo hloubky jedince. V případě, že by při mutaci či křížení vznikl jedinec překračující tyto hodnoty, by byl takový jedinec zahozen a proces mutace či křížení by se opakoval. Alternativou může být neopakování procesu mutace či křížení a vložení původního jedince do nové populace. Bloat mohou kontrolovat i evoluční operátory, například size-fair crossover (spravedlivé křížení), který funguje podobně jako subtree crossover popsané v sekci Rozdílná je volba bodu křížení ve druhém rodiči. Ta není zcela náhodná, ale probíhá tak, aby oba podstromy zavěšené pod body křížení byly podobně veliké a nenastávala tak situace, že potomek bude výrazně větší než rodič. Podobně lze upravit i subtree mutation ze sekce Tedy generovat nový podstrom podobně veliký nebo menší než původní podstrom zavěšený pod bodem mutace. Jinou jednoduchou mutací kontrolující bloat je shrink-mutation (zkracující mutace), která náhodně vybraný bod a celý jeho podstrom nahradí pouze jedním terminálem. I selekci lze použít jako metodu obrany před bloatem. Například metoda zvaná parsimony pressure nepracuje během selekce přímo s hodnotou fitness, ale s její hodnotou sníženou o součin velikosti jedince a vhodné konstanty. Velkým jedincům je tedy snížena šance na reprodukci a přežití do další generace, takoví jedinci pak budou více vymírat a v populaci se budou šířit menší jedinci. Zajímavé srovnání bloat control metod vypracoval Luke a Panit v roce 2006 [14]. Podle této práce by napříč různými problémy měla nejlepších výsledků dosahovat linear parametric parsimony pressure (pokročilejší verze parsimony pressure). Druhým zajímavým poznatkem je, že každá z pokročilejších metod si vedla alespoň stejně dobře, pokud byla doplněna základním omezením hloubky jedinců. 13

17 2. Rojová robotika Tato část bude popsána na základě přehledových prací Tana a spol. [15] a Mohana a spol. [16]. Rojová robotika se zabývá výzkumem v oblasti početnějších skupin jednoduších robotů spolupracujících za účelem vykonávání komplexnějších úkolů. Takový přístup je inspirován mnoha organismy v přírodě, například hejny ptáků a ryb nebo primáty. Především je ale inspirovaný některými zástupci hmyzu žijících v koloniích, kteří pouze za pomoci lokální a omezené komunikace dokáží plnit velké množství obtížných úkolů, jako například shánění potravy pro celou kolonii, bránění a stavbu rozsáhlých hnízd nebo pečování o mladé jedince [17]. Oproti alternativnímu přístupu, tedy komplexnímu robotovi, který vykonává zadaný úkol sám, se robotický roj vyznačuje především: Paralelností Robotické hejno se může bez většího omezení věnovat více úkolům zároveň podle aktuálního přerozdělení hejna. Škálovatelností Komunikace mezi samotnými roboty bývají zpravidla lokální a omezené, řídící program tedy musí zvládat komunikaci s libovolným množstvím dalších robotů, kteří jsou zrovna v dosahu. To umožňuje, aby se kdykoliv do hejna mohl přidat či z hejna odebrat další robot, aniž by to výrazně ovlivnilo činnost celého roje. Stabilitou Poškození nebo zničení malé části hejna nemá díky škálovatelnosti zásadní vliv na provádění úkolu. Ekonomičností Cena návrhu a vytvoření roje robotů je výrazně nižší než návrh a výroba složitého robota, a to především díky nižším nárokům na spolehlivost, možnosti velkovýroby, jednoduchosti robotů. Dosahem Jednoduchost robotů v hejnu umožňuje roboty zkonstruovat v menších rozměrech než komplexního robota, což hejnu umožňují dostat se na místa, kam by se vetší a složitý robot nedostal. Díky výše zmíněným vlastnostem se robotické roje hodí do prostředí, která jsou těžko dostupná a hrozí v nich robotům velké riziko poškození. Toho využívala 14

18 i práce [1] zmíněná v úvodu, která navrhovala robotické hejno asistující hasičským jednotkám při zásazích v hořících budovách. Jako jiný příklad využití rojové robotiky je možné zmínit projekt Seaswarm [18], který vznikl na Massachusetts Institute of Technology. Seaswarm je hejno robotů určených k odstraňovaní ropných havárií na mořích a oceánech. Každý robot zabírá přibližně plochu 10m 2, je plně autonomní, poháněný sluneční energií a je schopen komunikovat s ostatními členy hejna za účelem koordinace úklidu ropy. K samotnému úklidu pak využívá speciální materiál, který dokáže absorbovat až dvacetinásobek své váhy v ropě. Dalším příkladem může být práce N. Corrella a A. Marinoliho [19], ve které autoři navrhli hejno malých robotů kontrolující stav proudových turbín letadel. Při reálné aplikaci rojové robotiky je mimo samotné konstrukce robotů potřeba vyřešit také navržení a naprogramování řídícího programu robotů. To je zatím zpravidla řešeno klasickým přístupem pomocí lidského programátora. Nabízí se ale také možnost nechat řídící program vytvořit počítačem. 2.1 Strojová tvorba řídících programů robotického hejna Odborných článků zaměřených na robotické roje je k nalezení poměrně velké množství, ale pouze jejich malá část se zabývá přímo strojovým návrhem řídícího programu pro robotický roj. Většina těchto prací pak využívá evoluční strategie, a to k hledání vah neuronové sítě, která rozhoduje o akcích robota na základě hodnot přečtených z jeho senzorů. V této oblasti je velmi aktivní především Middle East Technical University v Turecku a Université Libre de Bruxelles v Belgii. Jedním z prvních článků je práce z roku 2003 od V. Trianniho a spol. [20], ve které se autoři zabývají shlukováním homogenního hejna tzv. s-botů na mapě. S-bot je model autonomního robota disponující dvojicí kol, sérií osmi senzorů přiblížení rozmístěných podél těla robota, trojicí mikrofonů a jedním všesměrovým reproduktorem s omezeným dosahem. Roboti také disponovali uchytávacím zařízením, které jim umožňovalo se připojit k jinému s-botovi a vytvářet tak shluky robotů. Této schopnosti robotů autoři nevyužili, cílem jejich práce bylo pouze shlukování hejna. Shlukování hejna spočívá v hledání se robotů navzájem a vytváření skupin robotů koncentrovaných na jednom místě. Samotné shlukování nebylo nijak řízeno vnějšími podmínkami, jako je například světelnost nebo vlhkost, jednalo se tedy o tzv. samovolné shlukování. Řízení robota zajišťovala jednoduchá neuronová síť složená pouze ze vstupních neuronů (senzory robota) a dvou výstupních neuronů (levé a pravé kolo robota). Váhy této neuronové sítě 15

19 byly hledány pomocí evolučních strategií. Část této práce byla také věnována rozdělení vyvinutého chování na statické shlukování a dynamické shlukování. Během statického shlukování se roboti přestali po shluknutí pohybovat, naopak během dynamického shlukování roboti dále pokračovali v pohybu, což jim znemožňovalo přiblížit s k ostatním robotům do těsné blízkosti. Na druhou stranu se dynamické shlukování ukázalo jako robustnější a změna velikosti robotického hejna nebo velikosti prostředí měla výrazně menší vliv na schopnost se shluknout. Dynamické shlukování bylo stále schopné vytvářet velké skupiny robotů, zatímco statické shlukování mělo tendenci vytvářet větší množství menších shluků. Na tuto práci v roce 2004 nepřímo navázali Dorigo a spol. [21], kteří se nezabývali pouze shlukováním s-botů, ale také koordinovaným pohybem celé skupiny s-botů propojených uchytávajícím zařízením. Za tímto účelem byli roboti vybaveni dalším senzorem, který jim pomáhal určit směr pohybu celé skupiny. Řízení robotů probíhalo velmi podobně jako v předchozí práci, tedy pomocí neuronové sítě řízené ES. V rámci koordinovaného pohybu byly robotům pro jednoduchost odstraněny senzory přiblížení. Bez nich mohlo robotické hejno rozpoznávat okolní překážky pouze po kolizi s některým z členů shluku díky senzoru pohybu skupiny. Nicméně i přes takové omezení bylo propojené hejno robotů schopno se překážkám do značné míry vyhnout a na žádné z překážek roj neuvízl. Koordinovaným pohybem propojených robotů se zabýval i G. Baldassarre a spol. [22] v roce Úkolem robotů ale nebyl samotný koordinovaný pohyb, ale hledání zdroje světla v aréně. Ta obsahovala mimo samotných překážek také žlábky a díry, které samotní s-boti nejsou schopni překonat, ale v propojeném stavu toho schopni jsou. Práce také ukazuje schopnost vyvinutého řešení velmi dobře zvládat změnu počtu propojených robotů tvořících pohybující se shluk. Koordinovaný pohyb byl také předmětem práce V. Trianniho z roku 2006 [23]. Ta byla zaměřena především na vyhýbání se spojených robotů dírám v povrchu, které již byly dostatečně velké na zapadnutí celé skupiny propojených robotů. Pro rozpoznávání děr v povrchu byli roboti vybaveni čtyřmi senzory přiblížení, které byly umístěny pod robotem a nasměrovány do země. Odlišný úkol se snažili řešit V. Sperati a spol. [24] v roce 2011, kteří dali hejnu robotů za úkol navigovat se mezi dvěma vzdálenými oblastmi. V rámci svých simulací využívali model tzv. e-puck robota. E-puck je kruhový robot poháněný dvěma koly, vybavený osmi senzory přiblížení, senzorem reagujícím na barvu povrchu pod robotem, osmi RGB LED, díky kterým roboti dokázali reprezentovat určité stavy, a senzory detekující barvy vyzařované okolními roboty. V rámci této 16

20 práce byly diody pro jednoduchost omezeny pouze na modrou a červenou barvu. Řízení robotů pak zajišťovala neuronová síť, která mimo vstupních neuronů (senzory robota) a výstupních neuronů (kola robota a LED) obsahovala také tři skryté neurony. Učení neuronové sítě opět zajišťovaly ES. V prostředí bez překážek robotický roj dokázal po nalezení obou oblastí, mezi kterými se měli roboti pohybovat, vytvořit řetězec pohybujících se robotů a efektivně se tak navigovat mezi oběma oblastmi. Navíc díky pohybu v řetězeci našli roboti postupem času přímou trasu mezi oběma oblastmi. V roce 2006 publikovali O. Soysal a spol. [25] práci, která se, jako již dříve zmíněné práce, zabývala samovolným shlukováním robotického roje v simulátoru obsahujícím překážky. Krom toho se ale také práce zaměřila na možnosti nastavení několika zajímavých parametrů evoluce, které mají výrazný vliv na výsledná nalezená řešení. Některé z popsaných doporučení jsou dále vypsány. 1. Volné výpočetní prostředky by měly být využity k vícenásobnému otestování jednoho jedince při výpočtu fitness funkce (za předpokladu, že každá simulace vrací jiný výsledek, tedy např. při náhodném rozestavování robotů po ploše na začátku simulace) raději než k prodloužení délky jednotlivých simulací. Délku simulací je vhodné nastavit na nejkratší délku, která by robotům měla stačit ke splnění zadaného úkolu. 2. Optimální poměr mezi počtem generací a počtem simulací při vyhodnocení fitness funkce nelze dopředu určit. Doporučeným postupem je spustit několik málo běhů s velkým počtem generací a na základě těchto běhů rozhodnout o vhodném počtu generací. 3. Při vícenásobném spouštění simulace při výpočtu fitness funkce je vhodné parametry simulace měnit, například měnit rozestavení překážek, velikost arény, velikost robotického hejna atd. To napomáhá vyvinutí robustnějších jedinců, kteří lépe zvládají případné další změny v simulátoru. Výše zmíněné práce dosahovaly pomocí EA a neuronové sítě dobrých výsledků, robotické roje byly schopny zadané úkoly plnit dostatečně kvalitně. Hlavní výhodou ale byla robustnost nalezených řešení, změna velikosti hejna nebo změna prostředí většinou neznamenala výrazný problém pro plnění úkolu. K tomu navíc většina zmíněných prací využívala model robotů s-bot, který je navržen tak, aby do značné míry zaručovat i přenositelnost řídících programů na fyzické roboty. 17

21 3. Simulátor Součástí této práce je také simulátor, na kterém v další části provedeme sérii experimentů. Všechny části simulátoru jsou naprogramovány v jazyce Python 2.7, některé jeho části jsou pak také implementovány v jazyce C, což umožňuje uživateli zvýšit výkon simulátoru. Simulátor je možné spustit dvěma možnými způsoby, a to skrze programy run_evolution.py a animator.py. Program run_evolution.py slouží ke spouštění samotných evolučních algoritmů pomocí knihovny DEAP [26]. Vyvinuté jedince v rámci vyhodnocení fitness funkce program testuje v simulátoru jednoduchého 2D prostředí na homogenním robotickém hejnu. Typ a nastavení evolučního algoritmu spolu s konfigurací simulátoru prostředí jsou uloženy v externím souboru, který je programu předáván jako parametr. Lze tedy tento simulátor využít i k jiným evolučním algoritmům než jen GP, což bude v této práci také využito. Tento program nemá grafický výstup, výstupem je pouze průběh evoluce vypisovaný do konzole a výstupní soubor. V něm jsou především uloženi všichni vyvinutí jedinci a nastavení evoluce, během které vznikli. Výstupní soubor z programu run_evolution.py slouží jako vstupní soubor pro program animator.py, který uživateli dovoluje prohlížet si vyvinuté jedince a především pomocí videa pozorovat jejich chování v simulátoru. Tento program obsahuje jednoduché grafické prostředí 3.1, které uživateli dovoluje snadno upravovat parametry arény, tedy měnit její rozměr, upravovat překážky a zdroje světla, měnit délku simulace a velikost robotického hejna. Zároveň také program umožňuje upravovat vyvinuté řídící programy, případně navrhovat své vlastní. Na CD přiloženém k této práci je celý simulátor uložen i spolu s uživatelskou a programátorskou dokumentací. Na tomto CD jsou umístěny také všechny výstupní soubory ze všech evolucí provedených v rámci této práce. Ty je možné snadno zopakovat, návod, jak to lze provést, je napsán v uživatelské dokumentaci. 18

22 Obrázek 3.1: Jednoduché grafické prostředí programu animator.py pro pozorování vyvinutých jedinců EA. 19

23 4. Experimenty Cílem série experimentů provedených v této části je popsat a zhodnotit možnost vytváření řídících programů pro homogenní hejno robotů pomocí GP. Jedincem v GP bude celý řídící program, který je v rámci fitness funkce testován na hejnu robotů v jednoduchém 2D simulátoru. Ten kromě samotné simulace také ohodnotí schopnost robotů řízených tímto programem plnit zadaný úkol. Simulace je omezena počtem kroků, po dosáhnutí tohoto limitu je simulace zastavena a kvalita řídícího programu ohodnocena (způsob ohodnocení se liší podle konkrétního úkolu). V každém kroku simulace je v každém robotovi z hejna spuštěn řídící program, který na základě senzorů rozhodne, jakou činnost v tomto kroku robot provede. Vzhledem k typu hledaného řešení (program) bylo zvoleno silně typované GP, jehož parametry byly ve všech experimentech nastaveny stejně kromě počtu generací a množin funkcí a terminálů. Tato rozdílná nastavení jsou vždy popsána až v sekcích se samotnými experimenty. Během všech experimentů byla velikost populace nastavena na 100 jedinců, použita byla turnajová selekce vybírající vždy nejlepšího jedince v turnaji, přičemž velikost turnaje byla 8 jedinců. Mutací byla subtree mutation, kde nové podstromy byly generovány metodou grow s maximální hloubkou 2, a křížením byla metoda subtree crossover, obě tyto metody byly zmíněny v sekci Pravděpodobnost, že nastane mutace, byla nastavena na 0.2 a pravděpodobnost, že nastane křížení, na 0.8. Jako ochrana před bloatem byla na obou těchto operátorech nastavena maximální hloubka vzniklého jedince na 10. Nultá generace byla vytvářena metodou ramped half-and-half s hloubkou stromu mezi 1 a 3. Záznamy všech evolucí provedených během všech následujících experimentů jsou uloženy v příloze této práce, kde je také k dispozici program animator.py umožňující pozorovat chování vyvinutých řídících programů na virtuálních robotech v arénách. 4.1 Experiment 1: Vyhýbání se překážkám Prerekvizitou komplexnějšího chování robotů je jejich schopnost vyhnout se kolizím s ostatními prvky v aréně. Proto první experiment je zaměřen právě na samotné řízení jízdy a vyhýbání se překážkám. 20

24 4.1.1 Popis scény Scéna simulace je tvořena čtvercovou arénou s délkou hrany 40 jednotek ohraničenou neprůchodnou bariérou. V aréně se také vyskytují překážky různých tvarů bránící robotům ve volném pohybu. Během GP jsou jedinci testováni v arénách se čtyřmi různými sestaveními překážek, všechny jsou znázorněny v obrázku č Každá simulace trvá právě 400 kol a do simulátoru bylo vždy vpuštěno hejno robotů čítající 5 členů. Počáteční pozice a natočení každého robota jsou při každé simulaci zvoleny náhodně. Obrázek 4.1: Nákres arén použitých během experimentu č. 1. Šedý okraj reprezentuje ohraničení arény, oranžové oblasti reprezentují překážky Cíl experimentu Cílem experimentu je vyvinout pomocí GP řídící program robotů, který se především snaží vyhnout srážkám s ohraničením bariéry, s překážkami v aréně a s ostatními roboty. Takové kritérium by nejlépe splňovali roboti, kteří by pouze stáli na místě, proto druhou žádanou vlastností řídících programů je snaha najezdit s roboty co nejdelší vzdálenost Model robota Model robota má kruhový tvar o průměru 1 jednotka a disponuje trojicí senzorů přiblížení pravidelně rozmístěných na přední straně robota pod úhly 45, 0, +45 od směru pohybu. Výstupem každého z těchto senzorů je hodnota min(1, d ), kde 3 d je vzdálenost k nejbližšímu objektu ve směru senzoru. Ze předchozího vzorce lze také vyčíst, že dosah těchto senzorů jsou 3 jednotky. Každý robot je dále vybaven párem nezávisle poháněných kol, každé kolo se tedy může otáčet jinou rychlostí, což umožňuje robotovi zatáčet. Kola mají dovolený i pohyb zpět, to robotům dovoluje se otáčet na místě nebo se pohybovat pozpátku. Rychlost robota nemůže překročit 0.5 jednotek za jeden krok simulace. Kola jsou ve vzájemné vzdálenosti 0.5 jednotek. Model robota je nakreslen v obrázku č

25 Obrázek 4.2: Model robota použitého v experimentu č. 1. Modrý oblouk znázorňuje přední stranu robota, zelené obdélníky znázorňují kola a červené úsečky znázorňují senzory přiblížení (jejich délka proporcionálně neodpovídá dosahu senzorů, všechny 3 senzory mají stejný dosah) Nastavení evoluce Evoluce byla ukončena po 40. generaci. Terminály i funkce byly pouze dvou typů, a to float (desetinné číslo) a tuple (dvojice desetinných čísel). Celý jedinec po vyhodnocení vrací dvojici (w l, w r ) (kořen jedince tedy musí být typu tuple), která je použita k určení rychlosti levého a pravého kola v aktuálním kroku simulace. Rychlost levého resp. pravého kola se pak spočítá jako w l S resp. w r S, kde S je maximální rychlost robota a pro w l a w r platí: 1 pokud w l < 1, w l = 1 pokud w l > 1, jinak. w l 1 pokud w r < 1, w r = 1 pokud w r > 1, jinak. w r Samotnou množinu funkcí resp. terminálů, ze kterých jsou jedinci konstruováni, lze nalézt v tabulce č. 4.1 resp. tabulce č Vzhledem k náhodnému rozmisťování robotů na začátku každé simulace nebylo možné vzniklé řídící programy hodnotit na základě jedné simulace. Každý jedinec byl tedy do simulátoru vložen 8x, dvakrát na každou z map vykreslených v obrázku č Během každé simulace byl zaznamenáván počet kolizí se zdí (C w ), počet kolizí s překážkou (C o ), počet kolizí mezi roboty (C b ). Mimo to byla také zaznamenávána celková ujetá vzdálenost roboty (D), do které byl započítáván pouze pohyb směrem dopředu. Pokud by se započítával i pohyb zpět, s 22

26 Tabulka 4.1: Množina funkcí použitá během GP v experimentu č. 1. Zápis Typ Arita Typy argumentů Popis con tuple 4 float, float, tuple, tuple con2 float 4 float, float, float, Podmínka if arg1 > arg2 then arg3 else arg4 Podmínka if arg1 > arg2 float then arg3 else arg4 wheels tuple 2 float, float Vytvoření dvojice pro ovládání kol. add float 2 float, float Operátor sčítání. sub float 2 float, float Operátor odčítání. mul float 2 float, float Operátor násobení. Tabulka 4.2: Množina terminálů použitá během GP v experimentu č. 1. Zápis Typ Popis (0, 0) tuple Reprezentace stání na místě. (1, 1) tuple Reprezentace pohybu dopředu plnou rychlostí. ( 1, 1) tuple Reprezentace pohybu zpět plnou rychlostí. (0, 1) tuple Reprezentace otáčení se doleva s pohybem vpřed. (1, 0) tuple Reprezentace otáčení se doprava s pohybem vpřed. (0, 1) tuple Reprezentace otáčení se doprava s pohybem vzad. ( 1, 0) tuple Reprezentace otáčení se doleva s pohybem vzad. (1, 1) tuple Reprezentace otáčení se na místě doprava. ( 1, 1) tuple Reprezentace otáčení se na místě doleva. 1 float Číslo 1. 0 float Číslo 0. 1 float Číslo -1. uni(0, 1) float Náhodně vygenerovaná hodnota v intervalu od 0 do 1. irl float Hodnota čtená z levého senzoru přiblížení. irf float Hodnota čtená z předního senzoru přiblížení. irr float Hodnota čtená z pravého senzoru přiblížení. 23

27 velkou pravděpodobností by byl nejúspěšnějším jedincem program, který by se pohyboval plnou rychlostí rovně až do rozpoznání překážky, na kterou by zareagoval pohybem plnou rychlostí zpět. To by kvůli absenci paměti robotů vyústilo v zastavení všech robotů před překážkou a střídání pohybu dopředu a zpět, což jistě není chtěné chování. Každá jedna simulace pak byla ohodnocena funkcí F exp1 = l 1 D + l 2 C w + l 3 C o + l 4 C b, R N kde N je počet robotů v simulátoru, R je počet kroků simulace a l 1, l 2, l 3, l 4 jsou konstanty. Na základě série pokusů byly tyto konstanty nastaveny na l 1 = 1, l 2 = l 3 = 2.5, l 4 = 0.5. Výsledky všech osmi simulací byly zprůměrovány a průměr vrácen jako hodnota fitness funkce Výsledky Většina vyvinutých řídících programů se v simulátoru chovala velmi podobně. Roboti se pohybují dopředu až do chvíle, kdy narazí na nějaký objekt. Na ten zareagují primárně otočením doleva, pokud otočení doleva není možné, zvolí opačný směr. To v menším počtu robotů vyústí v kroužení robotů po obvodu arény proti směru hodinových ručiček. Pokud některá z překážek brání pohybu okolo ohraničení arény, krouží roboti po menším prostoru. Chování nejlepšího jedince z poslední generace GP na všech testovaných sestaveních překážek je znázorněno v obrázku č U nejlepšího jedince z poslední generace byla také testována škálovatelnost, neboli schopnost řídícího programu obstát i v simulaci s jiným nastavením, než v jakém byl program vyvinut. Během evoluce byl program testován na 4 různých skupinách překážek, což by do značné míry mělo zaručovat jeho schopnost dobře se pohybovat i mezi jinými překážkami, než na kterých byl vyvinut. To bylo také úspěšně ověřeno pomocí série experimentů. Velikost arény a hejna ale byla během evoluce neměnná, nabízí se proto otestovat vlastnosti programu při změně těchto parametrů. Konkrétně je především zajímavý jejich poměr, neboli hustota robotů v aréně. Proto během tohoto testu zůstala velikost arény na 40 jednotkách, měnila se pouze velikost robotického hejna, a to v rozmezí od 1 robota do 50 robotů. Test proběhl na druhém sestavení překážek z obrázku 4.1 s délkou simulace 400 kroků. Výsledky jsou zaneseny v obrázcích č. 4.4, 4.5 a 4.6. Test škálovatelnosti vyvinutého řídícího programu ukázal, že velikost hejna má největší vliv na počet srážek mezi samotnými roboty, který se zdá, že roste 24

28 Obrázek 4.3: Znázornění chování nejlepšího jedince z poslední generace GP v experimentu č. 1 na všech testovaných arénách. Šedé tečky jsou původní pozice robotů na začátku simulace, modré tečky jsou koncové pozice robotů na konci simulace, modré křivky reprezentují pohyb robotů po aréně. 25

29 Obrázek 4.4: Graf znázorňující počet srážek mezi roboty v průměru na jednoho robota během celé simulace v závislosti na velikosti robotického hejna. Zobrazena je také směrodatná odchylka. Pro každou velikost hejna byla simulace spuštěna 100x. Obrázek 4.5: Graf znázorňující počet srážek robota s překážkou v aréně v průměru na jednoho robota během celé simulace v závislosti na velikosti robotického hejna. Zobrazena je také směrodatná odchylka. Pro každou velikost hejna byla simulace spuštěna 100x. 26

30 Obrázek 4.6: Graf znázorňující počet srážek robota s ohraničením arény v průměru na jednoho robota během celé simulace v závislosti na velikosti robotického hejna. Zobrazena je také směrodatná odchylka. Pro každou velikost hejna byla simulace spuštěna 100x. lineárně s velikostí robotického hejna. To do značné míry může být dáno i nižším počtem senzorů přiblížení, kvůli kterému nemají v některých případech roboti možnost druhého robota zaznamenat. To v extrémních případech může vyústit v dočasné nebo trvalé zaklesnutí dvou robotů do sebe. Ti takovou situaci nemohou rozpoznat, jelikož nemají žádnou zpětnou vazbu při nárazu. Tyto situace jsou viditelné i v grafu, kde způsobují velký nárůst směrodatné odchylky. O něco lépe si program vedl v kontextu počtu srážek robotů s překážkou, který zůstal pro všechny velikosti hejna velmi malý. Zajímavý je zde velký nárůst směrodatné odchylky okolo hejna čítající 30 robotů a více. To je pravděpodobně způsobeno velkou koncentrací robotů na malém prostoru, který může vyústit ve vytlačení některého z robotů do překážky, na které může robot uvíznout. Nejmenší vliv měla velikost hejna na počet srážek s ohraničením bariéry, které jsou dostatečně velké na to, aby je robot za každé situace byl schopen pomocí senzorů přiblížení rozpoznat. Většina nárazů do ohraničení navíc proběhne na začátku simulace, a to kvůli náhodnému rozmisťování robotů po aréně, kdy je některý z robotů umístěn příliš blízko okraji arény a otočený směrem do ohraničení. 27

31 Shrnutí Vyvinuté řídící programy zadaný úkol plnily poměrně úspěšně, valná většina simulací dopadla velmi uspokojivě. Slabší stránkou byla absence zpětné vazby při nárazu, kvůli které robot nemá žádné prostředky, jak určit, jestli v předchozím kole nebyla jeho snaha popojet zablokována jiným objektem. To způsobilo, že v několika málo bězích robot uvízl na překážce či ohraničení arény nebo se roboti zaklesli do sebe. V takové pozici často zůstali dlouho. Přidání senzoru indikující náraz by mohlo pomoci robotovi v detekci okolních předmětů, které třeba nemohl zaznamenat pomocí senzorů přiblížení, a tím vylepšit jeho výkon. 4.2 Experiment 2: Shlukování Síla robotického roje spočívá v jeho velikosti a především v kooperaci robotů, k té je ale často potřeba roboty nejdříve seskupit na jedno místo. A právě shromažďování robotického hejna v simulátoru bude cílem tohoto experimentu. Samovolné shlukování bylo také cílem několika dřívějších prací [20, 21, 25] používajících k tomu evoluční strategie ve spojení s jednoduchou neuronovou sítí. Proto v rámci tohoto experimentu také implementujeme i tento postup a provedeme jeho srovnání s GP Popis scény Vyvinutí jedinci budou testování opět ve 4 různých prostředích, které se liší rozestavením překážek a navíc také rozměrem čtvercové arény. Dvě menší arény mají délku hrany 40 jednotek, větší arény pak 60 jednotek. S velikostí arén se také pojí délka simulace a počet jedinců v aréně. U menších arén simulace trvá 300 kol a v aréně je pětičlenné hejno robotů a u větších trvá simulace 450 kroků a hejno robotů čítá osm členů. Arény, ve kterých budou vyvinutí jedinci testováni, jsou zobrazeny v obrázku č Cíl experimentu Cílem experimentu je nalézt řídící programy vedoucí roboty k samovolnému vytváření shluků na mapě a zároveň se vyhýbat kolizím s ostatními prvky v aréně. Dobrá řešení by měla preferovat vytváření menšího počtu velkých shluků, v ideálním případě pak jediný shluk robotů v celé aréně. 28

32 Obrázek 4.7: Nákres arén použitých během experimentu č. 2. Šedý okraj reprezentuje ohraničení arény, oranžové oblasti reprezentují překážky. Okraj arén je vždy široký 5 jednotek, což lze využít k lepšímu získání odhadu velikosti arény Model robota Základ modelu robota zůstane stejný jako v předchozím experimentu, ale vzhledem k úkolu, který mají roboti plnit, musí být každý robot navíc schopen rozpoznat množství dalších robotů ve svém okolí. Za tímto účelem bylo robotům přidáno vybavení inspirované již zmíněnými pracemi [20, 21, 25], které se také zabývali shlukováním robotů. Konkrétně se jedná o reproduktor, který neustále vysílá do svého okolí signál, a 4 mikrofony pravidelně rozmístěné po obvodu robota, které jsou schopny zachytit signál z reproduktorů vzdálených až 20 jednotek. Výstup z každého mikrofonu lze spočítat jako 1 r R 2 d r, kde R je množina reproduktorů vzdálených od daného mikrofonu do 20 jednotek a d r je vzdálenost mikrofonu od reproduktoru r. Model robota je znázorněn v obrázku č Obrázek 4.8: Model robota použitého v experimentu č. 2. Oproti modelu z experimentu č. 1 přibyl reproduktor (reprezentován fialovým kolečkem) a 4 mikrofony na okraji robota (reprezentované šedými čtverci). 29

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

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

Více

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

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

Více

Genetické programování

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

Více

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

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

Více

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

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

Více

Pokročilé operace s obrazem

Pokročilé operace s obrazem Získávání a analýza obrazové informace Pokročilé operace s obrazem Biofyzikální ústav Lékařské fakulty Masarykovy univerzity Brno prezentace je součástí projektu FRVŠ č.2487/2011 (BFÚ LF MU) Získávání

Více

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

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

Více

Gramatická evoluce a softwarový projekt AGE

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

Více

METODY DOLOVÁNÍ V DATECH DATOVÉ SKLADY TEREZA HYNČICOVÁ H2IGE1

METODY DOLOVÁNÍ V DATECH DATOVÉ SKLADY TEREZA HYNČICOVÁ H2IGE1 METODY DOLOVÁNÍ V DATECH DATOVÉ SKLADY TEREZA HYNČICOVÁ H2IGE1 DOLOVÁNÍ V DATECH (DATA MINING) OBJEVUJE SE JIŽ OD 60. LET 20. ST. S ROZVOJEM POČÍTAČOVÉ TECHNIKY DEFINICE PROCES VÝBĚRU, PROHLEDÁVÁNÍ A MODELOVÁNÍ

Více

A0M33EOA: Evoluční optimalizační algoritmy

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

Více

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

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

Více

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

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

Více

Metoda Monte Carlo a její aplikace v problematice oceňování technologií. Manuál k programu

Metoda Monte Carlo a její aplikace v problematice oceňování technologií. Manuál k programu Metoda Monte Carlo a její aplikace v problematice oceňování technologií Manuál k programu This software was created under the state subsidy of the Czech Republic within the research and development project

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

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

Algoritmy výpočetní geometrie

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

Více

Užití systému Matlab při optimalizaci intenzity tepelného záření na povrchu formy

Užití systému Matlab při optimalizaci intenzity tepelného záření na povrchu formy Užití systému Matlab při optimalizaci intenzity tepelného záření na povrchu formy Radek Srb 1) Jaroslav Mlýnek 2) 1) Fakulta mechatroniky, informatiky a mezioborových studií 2) Fakulta přírodovědně-humanitní

Více

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

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

Více

Jak se matematika poučila v biologii

Jak se matematika poučila v biologii Jak se matematika poučila v biologii René Kalus IT4Innovations, VŠB TUO Role matematiky v (nejen) přírodních vědách Matematika inspirující a sloužící jazyk pro komunikaci s přírodou V 4 3 r 3 Matematika

Více

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

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

Více

Studentská tvůrčí a odborná činnost STOČ 2015

Studentská tvůrčí a odborná činnost STOČ 2015 Studentská tvůrčí a odborná činnost STOČ 2015 POUŽITÍ FUZZY LOGIKY PRO ŘÍZENÍ AUTONOMNÍHO ROBOTA - 2D MAPOVÁNÍ PROSTORU Michal JALŮVKA Ostravská univerzita v Ostravě Dvořákova 7 701 03 Ostrava 23. dubna

Více

Masarykova univerzita. Fakulta informatiky. Evoluce pohybu

Masarykova univerzita. Fakulta informatiky. Evoluce pohybu Masarykova univerzita Fakulta informatiky Evoluce pohybu IV109 Tomáš Kotula, 265 287 Brno, 2009 Úvod Pohyb je jedním ze základních projevů života. Zdá se tedy logické, že stejně jako ostatní vlastnosti

Více

SPECIFICKÝCH MIKROPROGRAMOVÝCH ARCHITEKTUR

SPECIFICKÝCH MIKROPROGRAMOVÝCH ARCHITEKTUR EVOLUČNÍ NÁVRH A OPTIMALIZACE APLIKAČNĚ SPECIFICKÝCH MIKROPROGRAMOVÝCH ARCHITEKTUR Miloš Minařík DVI4, 2. ročník, prezenční studium Školitel: Lukáš Sekanina Fakulta informačních technologií, Vysoké učení

Více

5.15 INFORMATIKA A VÝPOČETNÍ TECHNIKA

5.15 INFORMATIKA A VÝPOČETNÍ TECHNIKA 5.15 INFORMATIKA A VÝPOČETNÍ TECHNIKA 5. 15. 1 Charakteristika předmětu A. Obsahové vymezení: IVT se na naší škole vyučuje od tercie, kdy je cílem zvládnutí základů hardwaru, softwaru a operačního systému,

Více

Státnice odborné č. 20

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

Více

5.5 Evoluční algoritmy

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

Více

Moderní systémy pro získávání znalostí z informací a dat

Moderní systémy pro získávání znalostí z informací a dat Moderní systémy pro získávání znalostí z informací a dat Jan Žižka IBA Institut biostatistiky a analýz PřF & LF, Masarykova universita Kamenice 126/3, 625 00 Brno Email: zizka@iba.muni.cz Bioinformatika:

Více

ALGORITMY A DATOVÉ STRUKTURY

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

Více

Simulační modely. Kdy použít simulaci?

Simulační modely. Kdy použít simulaci? Simulační modely Simulace z lat. Simulare (napodobení). Princip simulace spočívá v sestavení modelu reálného systému a provádění opakovaných experimentů s tímto modelem. Simulaci je nutno považovat za

Více

VYUŽITÍ SNÍMACÍCH SYSTÉMU V PRŮMYSLOVÉ AUTOMATIZACI SVOČ FST 2019

VYUŽITÍ SNÍMACÍCH SYSTÉMU V PRŮMYSLOVÉ AUTOMATIZACI SVOČ FST 2019 VYUŽITÍ SNÍMACÍCH SYSTÉMU V PRŮMYSLOVÉ AUTOMATIZACI SVOČ FST 2019 Bc. Michael Froněk Západočeská univerzita v Plzni Univerzitní 8, 306 14 Plzeň Česká republika ABSTRAKT Práce se zabývá řešením problému

Více

METODICKÝ LIST 1. Název výukové aktivity (tématu): 2. Jméno autora: Ing. Petr Hořejší, Ph.D., Ing. Jana Hořejší 3. Anotace:

METODICKÝ LIST 1. Název výukové aktivity (tématu): 2. Jméno autora: Ing. Petr Hořejší, Ph.D., Ing. Jana Hořejší 3. Anotace: METODICKÝ LIST 1. Název výukové aktivity (tématu): Stavba LEGO MINDSTORMS NXT robota pro třídění barevných LEGO kostek (představujících různé druhy produktů ve výrobě) 2. Jméno autora: Ing. Petr Hořejší,

Více

2. RBF neuronové sítě

2. RBF neuronové sítě 2. RBF neuronové sítě Kapitola pojednává o neuronových sítích typu RBF. V kapitole je popsána základní struktura tohoto typu neuronové sítě. Poté následuje definice a charakteristika jednotlivých radiálně

Více

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

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

Více

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

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

Více

Automatické rozpoznávání dopravních značek

Automatické rozpoznávání dopravních značek ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE FAKULTA DOPRAVNÍ Jiří Hofman Automatické rozpoznávání dopravních značek Semestrální práce z předmětu ITS 2012 Obsah 1. Automatické rozpoznávání dopravních značek (ATSR)...

Více

13 Barvy a úpravy rastrového

13 Barvy a úpravy rastrového 13 Barvy a úpravy rastrového Studijní cíl Tento blok je věnován základním metodám pro úpravu rastrového obrazu, jako je např. otočení, horizontální a vertikální překlopení. Dále budo vysvětleny různé metody

Více

PROJEKT ŘEMESLO - TRADICE A BUDOUCNOST Číslo projektu: CZ.1.07/1.1.38/ PŘEDMĚT PRÁCE S POČÍTAČEM

PROJEKT ŘEMESLO - TRADICE A BUDOUCNOST Číslo projektu: CZ.1.07/1.1.38/ PŘEDMĚT PRÁCE S POČÍTAČEM PROJEKT ŘEMESLO - TRADICE A BUDOUCNOST Číslo projektu: CZ.1.07/1.1.38/02.0010 PŘEDMĚT PRÁCE S POČÍTAČEM Obor: Studijní obor Ročník: Druhý Zpracoval: Mgr. Fjodor Kolesnikov PROJEKT ŘEMESLO - TRADICE A BUDOUCNOST

Více

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÝCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER SYSTEMS GENEROVÁNÍ MATEMATICKÝCH

Více

Vliv věku a příjmu na výhodnost vstupu do důchodového spoření (II. pilíře)

Vliv věku a příjmu na výhodnost vstupu do důchodového spoření (II. pilíře) Vliv věku a příjmu na výhodnost vstupu do důchodového spoření (II. pilíře) Následující analýza výhodnosti vstupu do II. pilíři vychází ze stejné metodologie, která je popsána v Pojistněmatematické zprávě

Více

OSA. maximalizace minimalizace 1/22

OSA. maximalizace minimalizace 1/22 OSA Systémová analýza metodika používaná k navrhování a racionalizaci systémů v podmínkách neurčitosti vyšší stupeň operační analýzy Operační analýza (výzkum) soubor metod umožňující řešit rozhodovací,

Více

Genetické programování 3. část

Genetické programování 3. část 1 Portál pre odborné publikovanie ISSN 1338-0087 Genetické programování 3. část Macháček Martin Elektrotechnika 08.04.2011 Jako ukázku použití GP uvedu symbolickou regresi. Regrese je statistická metoda

Více

GIS Geografické informační systémy

GIS Geografické informační systémy GIS Geografické informační systémy Obsah přednášky Prostorové vektorové modely Špagetový model Topologický model Převody geometrií Vektorový model Reprezentuje reálný svět po jednotlivých složkách popisu

Více

VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ

VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ Michal Kořenář 1 Abstrakt Rozvoj výpočetní techniky v poslední době umožnil také rozvoj výpočetních metod, které nejsou založeny na bázi

Více

Modelování a simulace Lukáš Otte

Modelování a simulace Lukáš Otte Modelování a simulace 2013 Lukáš Otte Význam, účel a výhody MaS Simulační modely jsou nezbytné pro: oblast vědy a výzkumu (základní i aplikovaný výzkum) analýzy složitých dyn. systémů a tech. procesů oblast

Více

Fyzikální laboratoř. Kamil Mudruňka. Gymnázium, Pardubice, Dašická /8

Fyzikální laboratoř. Kamil Mudruňka. Gymnázium, Pardubice, Dašická /8 Středoškolská technika 2015 Setkání a prezentace prací středoškolských studentů na ČVUT Fyzikální laboratoř Kamil Mudruňka Gymnázium, Pardubice, Dašická 1083 1/8 O projektu Cílem projektu bylo vytvořit

Více

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

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

Více

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

Datové struktury 2: Rozptylovací tabulky

Datové struktury 2: Rozptylovací tabulky Datové struktury 2: Rozptylovací tabulky prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy

Více

Lekce 11 Měření vzdálenosti a rychlosti

Lekce 11 Měření vzdálenosti a rychlosti algoritmizaci a programování s využitím robotů Lekce 11 Měření vzdálenosti a rychlosti Tento projekt CZ.1.07/1.3.12/04.0006 je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky.

Více

Úvod do optimalizace, metody hladké optimalizace

Úvod do optimalizace, metody hladké optimalizace Evropský sociální fond Investujeme do vaší budoucnosti Úvod do optimalizace, metody hladké optimalizace Matematika pro informatiky, FIT ČVUT Martin Holeňa, 13. týden LS 2010/2011 O čem to bude? Příklady

Více

Stanovení nejistot při výpočtu kontaminace zasaženého území

Stanovení nejistot při výpočtu kontaminace zasaženého území Stanovení nejistot při výpočtu kontaminace zasaženého území Michal Balatka Abstrakt Hodnocení ekologického rizika kontaminovaných území představuje komplexní úlohu, která vyžaduje celou řadu vstupních

Více

MULTISIM VÝUKOVÝ ELEKTRONICKÝ MATERIÁL

MULTISIM VÝUKOVÝ ELEKTRONICKÝ MATERIÁL MULTISIM VÝUKOVÝ ELEKTRONICKÝ MATERIÁL MULTISIM ELECTRONIC EDUCATION MATERIAL Pavel BENAJTR Resumé Tématem bakalářské práce bylo vytvoření výukového elektronického materiálu pro simulační program Multisim

Více

Dobývání znalostí. Doc. RNDr. Iveta Mrázová, CSc. Katedra teoretické informatiky Matematicko-fyzikální fakulta Univerzity Karlovy v Praze

Dobývání znalostí. Doc. RNDr. Iveta Mrázová, CSc. Katedra teoretické informatiky Matematicko-fyzikální fakulta Univerzity Karlovy v Praze Dobývání znalostí Doc. RNDr. Iveta Mrázová, CSc. Katedra teoretické informatiky Matematicko-fyzikální fakulta Univerzity Karlovy v Praze Dobývání znalostí Pravděpodobnost a učení Doc. RNDr. Iveta Mrázová,

Více

1 Strukturované programování

1 Strukturované programování Projekt OP VK Inovace studijních oborů zajišťovaných katedrami PřF UHK Registrační číslo: CZ.1.07/2.2.00/28.0118 1 Cíl Seznámení s principy strukturovaného programování, s blokovou strukturou programů,

Více

SIGNÁLY A LINEÁRNÍ SYSTÉMY

SIGNÁLY A LINEÁRNÍ SYSTÉMY SIGNÁLY A LINEÁRNÍ SYSTÉMY prof. Ing. Jiří Holčík, CSc. INVESTICE Institut DO biostatistiky ROZVOJE VZDĚLÁVÁNÍ a analýz VII. SYSTÉMY ZÁKLADNÍ POJMY SYSTÉM - DEFINICE SYSTÉM (řec.) složené, seskupené (v

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

1. Úvod do genetických algoritmů (GA)

1. Úvod do genetických algoritmů (GA) Obsah 1. Úvod do genetických algoritmů (GA)... 2 1.1 Základní informace... 2 1.2 Výstupy z učení... 2 1.3 Základní pomy genetických algoritmů... 2 1.3.1 Úvod... 2 1.3.2 Základní pomy... 2 1.3.3 Operátor

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

7. Rozdělení pravděpodobnosti ve statistice

7. Rozdělení pravděpodobnosti ve statistice 7. Rozdělení pravděpodobnosti ve statistice Statistika nuda je, má však cenné údaje, neklesejte na mysli, ona nám to vyčíslí Jednou z úloh statistiky je odhad (výpočet) hodnot statistického znaku x i,

Více

Iterační výpočty. Dokumentace k projektu č. 2 do IZP. 24. listopadu 2004

Iterační výpočty. Dokumentace k projektu č. 2 do IZP. 24. listopadu 2004 Dokumentace k projektu č. 2 do IZP Iterační výpočty 24. listopadu 2004 Autor: Kamil Dudka, xdudka00@stud.fit.vutbr.cz Fakulta Informačních Technologií Vysoké Učení Technické v Brně Obsah 1. Úvod...3 2.

Více

Chyby měření 210DPSM

Chyby měření 210DPSM Chyby měření 210DPSM Jan Zatloukal Stručný přehled Zdroje a druhy chyb Systematické chyby měření Náhodné chyby měření Spojité a diskrétní náhodné veličiny Normální rozdělení a jeho vlastnosti Odhad parametrů

Více

Geneticky vyvíjené strategie Egyptská hra SENET

Geneticky vyvíjené strategie Egyptská hra SENET Geneticky vyvíjené strategie Egyptská hra SENET Lukáš Rypáček, lukor@atrey.karlin.mff.cuni.cz Abstrakt V tomto dokumentu popíši jeden příklad použití genetických algoritmů pro počítačové hraní her. V tomto

Více

1 Test 1 naivní vs standardní

1 Test 1 naivní vs standardní . DÚ Nafukovací pole Datové Struktury I Studentus Maximus Takto jsou zobrazeny poznámky cvičících k tomu, co a jak je tu napsáno, skutečný text je mimo oranžové rámečky. Počítač, na kterém byly provedeny

Více

1. Statistická analýza dat Jak vznikají informace Rozložení dat

1. Statistická analýza dat Jak vznikají informace Rozložení dat 1. Statistická analýza dat Jak vznikají informace Rozložení dat J. Jarkovský, L. Dušek, S. Littnerová, J. Kalina Význam statistické analýzy dat Sběr a vyhodnocování dat je způsobem k uchopení a pochopení

Více

Mezi jednotlivými rozhraními resp. na nosníkových prvcích lze definovat kontakty

Mezi jednotlivými rozhraními resp. na nosníkových prvcích lze definovat kontakty Kontaktní prvky Mezi jednotlivými rozhraními resp. na nosníkových prvcích lze definovat kontakty Základní myšlenka Modelování posunu po smykové ploše, diskontinuitě či na rozhraní konstrukce a okolního

Více

Amortizovaná složitost. Prioritní fronty, haldy (binární, d- regulární, binomiální, Fibonacciho), operace nad nimi a jejich složitost

Amortizovaná složitost. Prioritní fronty, haldy (binární, d- regulární, binomiální, Fibonacciho), operace nad nimi a jejich složitost Amortizovaná složitost. Prioritní fronty, haldy binární, d- regulární, binomiální, Fibonacciho), operace nad nimi a jejich složitost 1. Asymptotické odhady Asymptotická složitost je deklarována na základě

Více

Jednofaktorová analýza rozptylu

Jednofaktorová analýza rozptylu I I.I Jednofaktorová analýza rozptylu Úvod Jednofaktorová analýza rozptylu (ANOVA) se využívá při porovnání několika středních hodnot. Často se využívá ve vědeckých a lékařských experimentech, při kterých

Více

Ekonomické aspekty statistické regulace pro vysoce způsobilé procesy. Kateřina Brodecká

Ekonomické aspekty statistické regulace pro vysoce způsobilé procesy. Kateřina Brodecká Ekonomické aspekty statistické regulace pro vysoce způsobilé procesy Kateřina Brodecká Vysoce způsobilé procesy s rozvojem technologií a důrazem kladeným na aktivity neustálého zlepšování a zeštíhlování

Více

Využití metod strojového učení v bioinformatice David Hoksza

Využití metod strojového učení v bioinformatice David Hoksza Využití metod strojového učení v bioinformatice David Hoksza SIRET Research Group Katedra softwarového inženýrství, Matematicko-fyzikální fakulta Karlova Univerzita v Praze Bioinformatika Biologické inspirace

Více

Návod k použití softwaru Solar Viewer 3D

Návod k použití softwaru Solar Viewer 3D Návod k použití softwaru Solar Viewer 3D Software byl vyvinut v rámci grantového projektu Technologie a systém určující fyzikální a prostorové charakteristiky pro ochranu a tvorbu životního prostředí a

Více

Výukové texty. pro předmět. Automatické řízení výrobní techniky (KKS/ARVT) na téma

Výukové texty. pro předmět. Automatické řízení výrobní techniky (KKS/ARVT) na téma Výukové texty pro předmět Automatické řízení výrobní techniky (KKS/ARVT) na téma Podklady k uspořádání řídícím systémům i řízení manipulátorů a robotů Autor: Doc. Ing. Josef Formánek, Ph.D. Podklady k

Více

EXPERIMENTÁLNÍ MECHANIKA 2 Přednáška 5 - Chyby a nejistoty měření. Jan Krystek

EXPERIMENTÁLNÍ MECHANIKA 2 Přednáška 5 - Chyby a nejistoty měření. Jan Krystek EXPERIMENTÁLNÍ MECHANIKA 2 Přednáška 5 - Chyby a nejistoty měření Jan Krystek 9. května 2019 CHYBY A NEJISTOTY MĚŘENÍ Každé měření je zatíženo určitou nepřesností způsobenou nejrůznějšími negativními vlivy,

Více

Simluátor Trilobota. (projekt do předmětu ROB)

Simluátor Trilobota. (projekt do předmětu ROB) Simluátor Trilobota (projekt do předmětu ROB) Kamil Dudka Jakub Filák xdudka00 xfilak01 BRNO 2008 1 Úvod Jako školní týmový projekt jsme si zvolili simulátor trilobota 1 a jeho prostředí. Simulátor komunikuje

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

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

Univerzita Karlova v Praze

Univerzita Karlova v Praze [Vzor: Pevná deska bakalářské práce není součástí elektronické verze] Univerzita Karlova v Praze Matematicko-fyzikální fakulta BAKALÁŘSKÁ PRÁCE Rok Jméno a příjmení autora [Vzor :Titulní strana bakalářské

Více

PROGRAMOVÁNÍ ROBOTŮ LEGO MINDSTORM S VYUŽITÍM MATLABU

PROGRAMOVÁNÍ ROBOTŮ LEGO MINDSTORM S VYUŽITÍM MATLABU PROGRAMOVÁNÍ ROBOTŮ LEGO MINDSTORM S VYUŽITÍM MATLABU J. Mareš*, A. Procházka*, P. Doležel** * Ústav počítačové a řídicí techniky, Fakulta chemicko-inženýrská, Vysoká škola chemicko-technologická, Technická

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

METODICKÝ LIST. Výklad: Seznámení se se stavebnicí, ukázky jiných projektů a možností stavebnice

METODICKÝ LIST. Výklad: Seznámení se se stavebnicí, ukázky jiných projektů a možností stavebnice METODICKÝ LIST 1. Název výukové aktivity (tématu): Stavba LEGO MINDSTORMS NXT robota pro zavážení barevných LEGO kostek (představujících různé druhy produktů ve výrobě) dále jen nakladač. Tento model navazuje

Více

Ing. Petr Hájek, Ph.D. Podpora přednášky kurzu Aplikace umělé inteligence

Ing. Petr Hájek, Ph.D. Podpora přednášky kurzu Aplikace umělé inteligence APLIKACE UMĚLÉ INTELIGENCE Ing. Petr Hájek, Ph.D. Podpora přednášky kurzu Aplikace umělé inteligence Aplikace umělé inteligence - seminář ING. PETR HÁJEK, PH.D. ÚSTAV SYSTÉMOVÉHO INŽENÝRSTVÍ A INFORMATIKY

Více

Programování. řídících systémů v reálném čase. Střední odborná škola a Střední odborné učiliště - - Centrum Odborné přípravy Sezimovo Ústí

Programování. řídících systémů v reálném čase. Střední odborná škola a Střední odborné učiliště - - Centrum Odborné přípravy Sezimovo Ústí Střední odborná škola a Střední odborné učiliště - - Centrum Odborné přípravy Sezimovo Ústí Studijní text pro 3. a 4. ročníky technických oborů Programování řídících systémů v reálném čase Verze: 1.11

Více

Infor APS (Scheduling) Tomáš Hanáček

Infor APS (Scheduling) Tomáš Hanáček Infor APS (Scheduling) Tomáš Hanáček Klasické plánovací metody a jejich omezení MRP, MRPII, CRP Rychlost Delší plánovací cyklus Omezená reakce na změny Omezené možnosti simulace Funkčnost Nedokonalé zohlednění

Více

7 Transformace 2D. 7.1 Transformace objektů obecně. Studijní cíl. Doba nutná k nastudování. Průvodce studiem

7 Transformace 2D. 7.1 Transformace objektů obecně. Studijní cíl. Doba nutná k nastudování. Průvodce studiem 7 Transformace 2D Studijní cíl Tento blok je věnován základním principům transformací v rovinné grafice. V následujícím textu bude vysvětlen rozdíl v přístupu k transformacím u vektorového a rastrového

Více

Usuzování za neurčitosti

Usuzování za neurčitosti Usuzování za neurčitosti 25.11.2014 8-1 Usuzování za neurčitosti Hypotetické usuzování a zpětná indukce Míry postačitelnosti a nezbytnosti Kombinace důkazů Šíření pravděpodobnosti v inferenčních sítích

Více

12 Metody snižování barevného prostoru

12 Metody snižování barevného prostoru 12 Metody snižování barevného prostoru Studijní cíl Tento blok je věnován základním metodám pro snižování barevného rozsahu pro rastrové obrázky. Postupně zde jsou vysvětleny důvody k použití těchto algoritmů

Více

U Úvod do modelování a simulace systémů

U Úvod do modelování a simulace systémů U Úvod do modelování a simulace systémů Vyšetřování rozsáhlých soustav mnohdy nelze provádět analytickým výpočtem.často je nutné zkoumat chování zařízení v mezních situacích, do kterých se skutečné zařízení

Více

Trénování sítě pomocí učení s učitelem

Trénování sítě pomocí učení s učitelem Trénování sítě pomocí učení s učitelem! předpokládá se, že máme k dispozici trénovací množinu, tj. množinu P dvojic [vstup x p, požadovaný výstup u p ]! chceme nastavit váhy a prahy sítě tak, aby výstup

Více

Biologicky inspirované výpočty. Schématické rozdělení problematiky a výuky

Biologicky inspirované výpočty. Schématické rozdělení problematiky a výuky Biologicky inspirované výpočty Schématické rozdělení problematiky a výuky 1 Biologicky inspirované výpočty - struktura problematiky Evoluční systémy: evoluční algoritmy, evoluční hardware, víceúčelová

Více

Pohled do nitra mikroprocesoru Josef Horálek

Pohled do nitra mikroprocesoru Josef Horálek Pohled do nitra mikroprocesoru Josef Horálek Z čeho vycházíme = Vycházíme z Von Neumannovy architektury = Celý počítač se tak skládá z pěti koncepčních bloků: = Operační paměť = Programový řadič = Aritmeticko-logická

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

FORTANNS. havlicekv@fzp.czu.cz 22. února 2010

FORTANNS. havlicekv@fzp.czu.cz 22. února 2010 FORTANNS manuál Vojtěch Havlíček havlicekv@fzp.czu.cz 22. února 2010 1 Úvod Program FORTANNS je software určený k modelování časových řad. Kód programu má 1800 řádek a je napsán v programovacím jazyku

Více

Využití neuronové sítě pro identifikaci realného systému

Využití neuronové sítě pro identifikaci realného systému 1 Portál pre odborné publikovanie ISSN 1338-0087 Využití neuronové sítě pro identifikaci realného systému Pišan Radim Elektrotechnika 20.06.2011 Identifikace systémů je proces, kdy z naměřených dat můžeme

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 Datové struktury Daniela Szturcová

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

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

Binární vyhledávací stromy pokročilé partie

Binární vyhledávací stromy pokročilé partie Binární vyhledávací stromy pokročilé partie KMI/ALS lekce Jan Konečný 30.9.204 Literatura Cormen Thomas H., Introduction to Algorithms, 2nd edition MIT Press, 200. ISBN 0-262-5396-8 6, 3, A Knuth Donald

Více

Stromy, haldy, prioritní fronty

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

Více

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti MI-SOC: 11 METODY VERIFIKACE SYSTÉMŮ NA ČIPU Hana Kubátov vá doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta 1 informačních

Více

Testování prvočíselnosti

Testování prvočíselnosti Dokumentace zápočtového programu z Programování II (NPRG031) Testování prvočíselnosti David Pěgřímek http://davpe.net Úvodem V různých oborech (například v kryptografii) je potřeba zjistit, zda je číslo

Více

Detekce interakčních sil v proudu vozidel

Detekce interakčních sil v proudu vozidel Detekce interakčních sil v proudu vozidel (ANEB OBECNĚJŠÍ POHLED NA POJEM VZDÁLENOSTI V MATEMATICE) Doc. Mgr. Milan Krbálek, Ph.D. Katedra matematiky Fakulta jaderná a fyzikálně inženýrská České vysoké

Více