Efektivnost robotických vysavačů (NetLogo)

From Simulace.info
Revision as of 19:47, 10 June 2017 by Xdraj24 (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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
  • 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.