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.
Contents
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
- Počet nečistot A - v rozmezí 1-200, viz agenti Nečostoty A
- Počet nečistot B - v rozmezí 1-200, viz agenti Nečostoty B
- 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
- Počet opakování - počet opakování pro několikanásobné spuštění simulace
- 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)
- Počet kroků na jedno nabití - počet kroků po jehož dosažení se vysavač vrátí domů
- Čas plného nabití - čas za který se vysavač plně nabije a bude moci vyrazit moct s dalším vysávacím cyklem
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
- algoritmus: both (jak náhodný, tak i v řadách)
- počet nečistot A: 1 50 100 150 200
- počet nečistot B: 1 50 100 150 200
- počet překážek: 0 50 100 150 200 250]
- počet kroků na jedno nabytí: 500 1000 1500 2000 4000 7000 10000
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 [1]. 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: [2]), 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.