Efektivnost robotických vysavačů (NetLogo)

Tato stránka slouží jakou výzkumná zpráva simulace „Simulace efektivnosti robotických vysavačů“ k semestrálnímu projektu pro předmět 4IT495 Simulace systémů (LS 2016/2017) na VŠE v Praze.

= Zadání = Název simulace: Simulace efektivnosti robotických vysavačů

Předmět: 4IT495 Simulace systémů (LS 2016/2017)

Autor: Bc. Josef Draslar, xdraj24

Typ modelu: Multiagentní

Modelovací nástroj: Netlogo 6.0.1

= Definice problému = V dnešní době již existuje mnoho robotických vysavačů, zpravidla každá společnost má vlastní algoritmus pohybu vysavače, je tak velmi těžké se rozhodnout jaký vysavač s jakým typem algoritmu zvolit.

= Cílu simulace = Cílem simulace je identifikovat optimální algoritmus robotických vysavačů, který bude mít ideální poměr času vysávání k úspěšnosti vysání nečistot.

= Obecná specifikace simulace = Algoritmy vysavačů na trhu se dají rozdělit do čtyřech základních kategorií: náhodný pohyb, pohyb v řadách, inteligentní pohyb a ostatní. Pro zjednodušení budou brány v potaz pouze dvě první kategorie algoritmů (náhodný pohyb, pohyb v řadách). Inteligentní pohyb je tak sofistikovaný a složitý, že nástroje a potažmo jazyk nabízení programem netlogo nedostatečný na takovouto implementaci inteligentního pohybu vysavače, který by si pamatoval kde již byl a z těchto informací by se učil. Ostatní algoritmy jsou pak tak rozlišné, že se nedají dobře vystihnout jednou formou. (Např.: kruhový pohyb.) Simulace bude předpokládat ideální robotický vysavač, na který se budou aplikovat jednotlivé algoritmy. Algoritmus bude simulován na více velikostech prostorů pro vysávání (jako: velikost, kterou zvládne vysavač na jedno vysátí a poté prostor tak veliký, že pro jeho vysátí se bude muset dojet nabít do dokovací stanice, prostor, který nebude možné vůbec vysát při dvou cyklech) a více typech prostorů (jako: prostor bez překážek, prostor s překážky běžné domácnosti). Pro zjednodušení se budou vysavače snažit vysát veškeré nečistoty a jejich práce skončí až bude místnost čistá, či vyprší oba dva cykly.

= Model simulace = V následující sekci jsou popsány jednotlivé části modelu od jeho inicializace, kdy jsou nastaveny základní limity agentů a jejich další nastavení.

Přehled Agentů
V simulaci bude použito několik agentů:  Robotický vysavač - (modrá barva) jeden agent, který bude aplikovat zvolený algoritmus pohybu a bude se snažit vysát veškeré nečistoty Dokovací stanice - (zelená barva) jeden nepohyblivý agent, který představuje dokovací stanici, kde vysavač začíná práci, nabíjíce a končí práci Překážky - (červená barva) běžné překážky domácnosti, rovnoměrně rozprostřené po místnosti Nečistoty A - (šedivá barva) nečistoty náhodně rozprostřené po místnosti (vždy umístěné na potenciálně dostupné místo), dojde k jejich odstranění při prvním průjezdu vysavače Nečistoty B - (žlutá/bílá barva) nečistoty náhodně rozprostřené po místnosti (vždy umístěné na potenciálně dostupné místo), dojde k jejich odstranění při druhém průjezdu vysavače 

Přehled Parametrů
 Šířka místnosti - kroků, které bude muset vystavač vykonat v přímém horizontálním pohybu, aby se dostal na konec místnosti, v rozmezí 10-100 Výška místnosti - kroků, které bude muset vystavač vykonat v přímém vertikálním pohybu, aby se dostal na konec místnosti, v rozmezí 10-100</li> Počet nečistot A - v rozmezí 1-200, viz agenti Nečostoty A</li> Počet nečistot B - v rozmezí 1-200, viz agenti Nečostoty B</li> Počet překážek - v rozmezí 0-250 (maximální hodnota však vždy závisí na rozměrech místnosti odkud se odvíjí kolik překážek je místnost schopná pojmout), viz agenti Překážky</li> Počet opakování - počet opakování pro několikanásobné spuštění simulace</li> Algoritmus - algoritmus, který bude vysavačem aplikován, hodnot: náhodný, v řadách, oba (dojde ke spuštění postupně obou algoritmu na identicky nastavené místnosti)</li> Počet kroků na jedno nabití - počet kroků po jehož dosažení se vysavač vrátí domů</li> Čas plného nabití - čas za který se vysavač plně nabije a bude moci vyrazit moct s dalším vysávacím cyklem</li> </ul>

= Spouštění simulace = Hlavní spuštění simulace proběhlo dle následujících přednastavených parametrů (reálně bylo spuštěno pomocí tlačítka 'simulate overall'):  velikost místnosti: 10, 25, 50, 75, 100</li> algoritmus: both (jak náhodný, tak i v řadách)</li> počet nečistot A: 1 50 100 150 200</li> počet nečistot B: 1 50 100 150 200</li> počet překážek: 0 50 100 150 200 250]</li> počet kroků na jedno nabytí: 500 1000 1500 2000 4000 7000 10000</li> </ul>

= Vyhodnocení simulace = V této kapitole jsou vyhodnoceny výstupy z kapitoly předchozí.

Spuštěním simulace vzniklo velké množství záznamů, které by se daly interpretovat různými způsoby dlouhé hodiny. Nicméně hlavním výstupem je že Náhodný algoritmus byl výkonnější (tedy rychlejší a vysál více nečistot) pouze v 11 % spuštění. Dokonce pokud ještě tento výsledek očistíme o hodnoty kdy oba dva algoritmy zanechaly velkém množství nečistot (což bylo způsobeno nadměrnou velikostí místnosti a malým počtem kroků na jedno nabití), pak se dostaneme k minimální hodnotě, kdy náhodný algoritmus byl výkonnější pouze v 0,89 % případů.

= Závěr = Jednoznačným závěrem je, že výkonnější je algoritmus vysávání, který probíhá v řadách, nejdříve v horizontálních a pak ve vertikálních (kdy algoritmus je schopný navigovat vysavač i za překážky, za které by se normálně obyčejným průchodem v řadách nedostal). Spuštěním simulace vznikl rozsáhlý soubor s 5250 záznamy pro každý algoritmu kdy jeden záznam odpovídá 10 spuštěním a zprůměrováním výsledků je dostsupný zde. Tedy zájemci mohou získaná data dále a hlouběji analyzovat, zpracovávat a vyhodnocovat. V neposlední řadě je také zpřístupněn balíček netlogo (zde: ), který mohou zájemci užít k dalšímu rozšiřování, či dalším simulacím - netlogo kód je dobře komentován.