Subsumpční architektura
Subsumpční architektura je architektura určená pro tvorbu reaktivních agentů (vzhledem k tomu, že jsou tyto agenty ve světě fyzicky přítomny, tak o nich můžeme mluvit také jako o reaktivních robotech). Poprvé byla představena v roce 1986 Rodneym Brooksem a jeho týmem. Jedná se o vrstvenou architekturu, kde jednotlivé stupně reprezentují určité chování. V jednotlivých vrstvách jsou modely chování zachycené konečnými automaty s časováním. Vrstvy mají vzestupnou prioritu. Vyšší vrstvy jsou postavené nad nižšími vrstvami z důvodu vytvoření komplexnějšího chování. Nižší vrstvy mají vyšší prioritu. Fungování systému jako celku je výsledkem interakce jeho jednotlivých částí.[1]
Robot může mít ve spodní vrstvě zabudováno chování: vyhýbej se překážkám a ve vyšší vrstvě: pohybuj se náhodně po okolí. Když narazí na překážku, tak se jí vyhne díky přednosti nižší vrstvy. Vrstva, která umožňuje pohyb po okolí se ale vyznačuje komplexnějším chování.[1]
Vlastnosti subsumpční architektury a systémů na ní postavených
- Tělesnost
Agenty jsou v prostředí nějak ztělesněny, mají tělo se svými senzory a aktuátory a pomocí nich vnímají změny prostředí a reagují na ně.
- Situovanost
Agenty jsou součástí svého prostředí, reálného světa, se kterým přicházejí do interakce. Ta pak ovlivňuje agentovo chování.
- Inteligence
Inteligence agenta je převážně tvořena střetem agenta s reálným prostředím, jeho reakcemi a podněty.
- Emergence
Inteligence systému, jako celku, vzniká emergentně, tedy interakcí jeho jednotlivých částí.[2]
- Žádná explicitní znalostní reprezentace
Subsumpční architektura nedisponuje explicitním modelem světa. To znamená, že robot v sobě nemá uložený zjednodušený přehled o světě, který ho obklopuje. Výhody jsou zřejmé. Agenty nedělají predikce o světě, a tím pádem mohou velmi dobře fungovat v nepředvídatelném prostředí. Ušetří se čas nutný pro čtení a zápis dat. Dále se uspoří čas algoritmu, který tento model využívá. Také zmizí problémy s modelem světa, který nemusí odpovídat reálnému světu. Má to ale i své nevýhody. Systém je potom čistě reaktivní. To znamená, že pouze reaguje na to, co se ve světě děje. Jinými slovy mu svět určuje, co má udělat.[3]
- Distribuovanost
Chování je rozprostřeno mezi konečné automaty, které vykonávají různé úlohy. Díky tomu mohou reagovat na konkurenční události v prostředí. Celkové chování je aproximativním součtem jednotlivých konečných automatů. Subsumpční architektura je paralelní a asynchronní, protože konečné automaty operují nezávisle na sobě. Všechny konečné automaty běží neustále, a jelikož mohou mít vlastní časování, tak nepotřebují synchronizaci.[4]
- Vrstevnatost
Subsumpční architektura je tvořena vrstvami, kdy každá implementuje určité chování a skládá se z jednoho nebo více konečných automatů. Subsumpční architektura je považována za modulární, protože každý konečný automat vykonává nezávislou úlohu. Každý konečný automat má určitý počet vstupních a výstupních linek. Konečné automaty jsou tvořeny procesory, které si navzájem posílají zprávy a jsou schopny uchovávat datové struktury. Procesory fungují absolutně asynchronně a jsou si navzájem rovnocenné. Monitorují svoje vstupy a posílají zprávy na výstupy. Konečný automat bere v potaz vždy nejpozději přijatou zprávu. Z tohoto důvodu může být zpráva ztracena v případě, že nová zpráva dorazí dříve než byla starší zpracována. Uvnitř vrstvy neexistuje kontrola a mezi procesory neexistuje jiná forma komunikace, konkrétně zde není žádná sdílená paměť. Každý modul se stará pouze o svůj úkol. Vyšší vrstvy mají přístup k senzorům a ovlivňují chování nižších vrstev omezováním vstupů nebo potlačováním výstupů určitých konečných automatů na nižších úrovních.
To je ten mechanismus, kterým vyšší vrstvy zahrnují roli nižších vrstev.
- Navigace
Nejdůležitější schopnost agentů na bázi subsumpční architektury je pohybovat se ve světě dokola a vyhýbat se nehybným i pohyblivým předmětům. Navigace je jednou z hlavních úloh, kterou mají agenti aplikovánu a tato úloha je extrémně reaktivní (ve srovnání s ostatními kognitivními agenty). Navigace je většinou prováděna několika vrstvami. Nejnižší modul se vyhýbá objektům (platí to i pro ty, které se náhle objeví) a vyšší úroveň vede agenta určitým směrem a ignoruje překážky. Tato kombinace poskytuje snadný způsob, jak se dostat z místa A do místa B bez explicitního plánování cesty.[5]
- Ostatní
Agenty operují v reálném čase[6] a jsou primárně vytvořeny pro pohyb ve skutečném,[7] dynamickém,[8] a komplexním[9] světě.
Důvody pro vznik
Jedním z důvodů pro vytvoření subsumpční architektury byl fakt, že se autoři chtěli vypořádat s následujícími požadavky a potřebami na tvorbu autonomních mobilních robotů.[1]
Mnoho cílů
Robot může mít více cílů, které jsou navzájem konfliktní a je potřeba je nějakým způsobem řešit. Robot se může například snažit dosáhnout určitého místa, které je před ním a zároveň se potřebuje vyhnout překážkám, které jsou na cestě. Dále se třeba potřebuje dostat na nějaké místo v co nejkratším čase a zároveň musí šetřit své energetické zdroje. Je tedy zřejmé, že důležitost a priorita cílů je relativní a kontextově závislá. Je určitě důležitější uhnout z kolejí, když jede vlak, než v té době kontrolovat kolejové pražce. Kontrolní systém musí dát přednost prioritním cílům, ale zároveň je nezbytné obstarávat i cíle s nižší prioritou (když robot uhýbá z kolejí – je důležité také zajistit, aby neztratil stabilitu a nespadl).[1]
Více senzorů
Robot může mít více senzorů (kamery, infračervená čidla, akustická čidla, atd.). Všechny senzory mohou potenciálně chybovat. Mimoto často neexistuje přímá analytická závislost mezi hodnotami ze senzoru a požadovanými fyzikálními veličinami. Některé senzory se mohou překrývat v těch oblastech, které měří. Často může dojít k nekonzistentnímu čtení – někdy díky chybě senzoru a jindy kvůli podmínkám měření – v případě, že je senzor použit mimo svoji oblast působnosti. Často není k dispozici přesná analytická charakteristika oblasti působnosti. Robot musí být schopen rozhodování za výše uvedených podmínek.[1]
Robustnost
Robot musí být robustní. Když některé senzory selžou, tak se musí být schopen adaptovat a vypořádat se s tím, že se bude spoléhat pouze na ty fungující. Když se okolí drasticky změní, tak by měl být stále schopen dosáhnout alespoň nějakého rozumného chování – raději než zůstat v šoku sedět nebo se bezcílně a nesmyslně potulovat okolo. Vhodné také je, když může pokračovat v případě, že dojde k chybám na jeho procesorech.[1]
Rozšiřitelnost
Když se robotovi přidá více senzorů a schopností, tak potřebuje více kapacity ke zpracování, jinak mohou být jeho původní schopnosti časem narušeny.[1]
Charakteristika
S vědomím výše uvedených skutečností se autoři rozhodli k následujícímu postupu, který tvoří základ subsumpční architektury. Rozložili problém tvorby robota vertikálně na základě požadovaných vnějších projevů řídicího systému spíše než podle vnitřního fungování robota. Potom definovali takzvané kompetenční úrovně. Kompetenční úroveň je specifikace požadované úrovně chování robota s ohledem na všechna prostředí, ve kterých se pohybuje. Vyšší úroveň kompetence znamená specifičtější požadovanou úroveň chování. Hlavní myšlenka úrovní kompetence je, že je možné tvořit vrstvy kontrolního systému, které korespondují s danou úrovní kompetence a jednoduše přidat novou vrstvu do existující množiny.[1]
R. Brooks a kolektiv definovali v roce 1986 následující úrovně kompetence:
- 0. vyhni se kontaktu s předměty (je jedno, jestli jsou pohyblivé nebo nehybné)
- 1. toulej se bezcílně dokola bez střetu s předměty
- 2. „prozkoumávej“ svět prohledáváním míst v dosažitelné vzdálenosti
- 3. buduj mapu prostředí a plánuj cestu z jednoho místa do druhého
- 4. zaznamenávej změny ve statickém prostředí
- 5. uvažuj o světě v termínech identifikovatelných objektů a vykonávej úlohy spojené s těmito objekty
- 6. formuluj a vykonávej plány, které vyžadují změnu stavu světa, žádoucím způsobem
- 7. uvažuj o chování objektů ve světě a modifikuj podle toho plány[1]
Autoři nejprve vybudovali kompletní ovládací systém robota, který dosahuje kompetencí nulté úrovně a důkladně ho prověřili. Další vrstvu pojmenovali první úroveň kontrolního systému. Je schopna nakládat s daty z nulté vrstvy systému a je jí také dovoleno vkládat data do interních rozhraní nulté úrovně, kterými omezuje normální datový tok. Princip je takový, že nultá vrstva pokračuje v běhu a nic netuší nic o tom, že vrstva nad ní občas narušuje datové cesty. Tato vrstva je schopna s pomocí nulté vrstvy dosáhnout kompetencí první úrovně. Stejný proces je opakován k dosáhnutí vyšší úrovně kompetence. Podívej se na figuru 3. Ve chvíli, kdy byla stvořena první vrstva je již k dispozici fungující část kontrolního systému. Další vrstvy mohou být přidány později a systém nemusí být měněn. Autoři tvrdí, že tato architektura přirozeně vede k řešení problémů mobilních robotů, které byly vykresleny na začátku této sekce, následujícím způsobem.[1]
- Mnoho cílů
Jednotlivé vrstvy mohou pracovat na jednotlivých cílech souběžně. Mechanismus potlačení pak zprostředkovává akce, které jsou brány v úvahu. Výhoda je, že zde nemusí být předchozí rozhodnutí, který cíl bude uskutečněn.
- Více senzorů
Všechny senzory nemusí být součástí centrální reprezentace. Do centrální reprezentace může být přidáno pouze takové čtení senzorů, které je identifikováno jako extrémně spolehlivé. V té samé chvíli však mohou být hodnoty senzoru používány robotem. Ostatní vrstvy je mohou zpracovávat a užívat výsledky k dosažení svých vlastních cílů, nezávisle na tom, jak s nimi nakládají jiné vrstvy.
- Robustnost
Existence více senzorů evidentně přidává na robustnosti systému, když jejich výsledky mohou být rozumně využity. V subsumpční architektuře je k dispozici ještě další zdroj robustnosti. Nižší vrstvy, které byly dobře prověřeny, pokračují v běhu, i když jsou přidány vyšší vrstvy. Protože vyšší vrstva může potlačit pouze výstupy nižších vrstvy aktivním zasahováním pomocí náhradních dat, tak v případech, kdy nemůže vyprodukovat výsledky vhodným způsobem budou nižší úrovně stále produkovat výsledky, které jsou rozumné, třebaže jsou na nižší úrovni kompetence.
- Rozšiřitelnost
Zřejmý způsob, jak řešit rozšiřitelnost, je nechat každou novou vrstvu běžet na vlastním procesoru.[1]
Rozšíření
Brooks v roce 1989 dále rozpracoval subsumpční architekturu hlavně v oblasti omezování vstupů a potlačování výstupů konečnými automaty.[10] V roce 1991 Brooks přišel s implementací hormonálního systému. Jednotlivé vrstvy měly být potlačeny nebo omezeny přítomností nebo absencí hormonu.[11] V roce 1992 Mataric přichází s myšlenkou architektury založené na chování. Tato architektura měla řešit chybějící explicitní reprezentaci světa bez ztráty robustnosti a reaktivity.[12]
Reference
- ↑ a b c d e f g h i j k BROOKS, Rodney A. A robust layered control system for a mobile robot [online]. Massachusetts Institute of Technology, 1985 [cit. 2009-01-30]. S. 1–16. Dostupné online. (anglicky)
- ↑ ŠŤASTNÝ, Pavel. Multiagentní systémy v medicíně (Diplomová práce) [online]. České vysoké učení technické v Praze, 2007 [cit. 2009-01-29]. S. 22. Dostupné v archivu pořízeném dne 2014-08-12.
- ↑ No Representation in Subsumption Architectures. ai.eecs.umich.edu [online]. [cit. 2009-02-02]. Dostupné v archivu pořízeném dne 2008-06-12.
- ↑ Style of Control of Subsumption Architectures. ai.eecs.umich.edu [online]. [cit. 2009-02-02]. Dostupné v archivu pořízeném dne 2008-05-26.
- ↑ Navigation in Subsumption. ai.eecs.umich.edu [online]. [cit. 2009-02-02]. Dostupné v archivu pořízeném dne 2008-06-12.
- ↑ Realtime Behavior in Subsumption. ai.eecs.umich.edu [online]. [cit. 2009-02-02]. Dostupné v archivu pořízeném dne 2008-06-12.
- ↑ Real-World Environments for Subsumption Architecture. ai.eecs.umich.edu [online]. [cit. 2009-02-02]. Dostupné v archivu pořízeném dne 2008-11-21.
- ↑ Dynamic Environments for Subsumption Architecture. ai.eecs.umich.edu [online]. [cit. 2009-02-02]. Dostupné v archivu pořízeném dne 2009-07-10.
- ↑ Complex Environments for Subsumption Architecture. ai.eecs.umich.edu [online]. [cit. 2009-02-02]. Dostupné v archivu pořízeném dne 2008-06-12.
- ↑ BROOKS, Rodney A. A robot that walks: Emergent behavior form a carefully evolved network [online]. Massachusetts Institute of Technology, 1989 [cit. 2009-01-30]. S. 1–12. Dostupné online. (anglicky)
- ↑ BROOKS, Rodney A. Integrated systems based on behaviors. [s.l.]: SIGART Bulletin 2, 1991. S. 46–50. (anglicky)
- ↑ MATARIC, M. J. Behavior-Based Control: Main Properties and Implications [online]. IEEE International Conference on Robotics and Automation, 1992 [cit. 2009-01-29]. S. 46–54. Dostupné online. (anglicky)