Prírodou inšpirované algoritmy

študijné materiály pre projekt mobilnej triedy umelej inteligencie

Späť ku kurzom triedy
Obsah
História
MIT veteráni
Cog
Kismet
Coco
Macaco
Segmentový robot
O tejto kapitole



Ostatné kapitoly
Walterove korytnačky
BEAM Robotika
Kolektívne správanie robotov
KANSEI
Braintenbergove vozidlá
POPBUGS
iRobot
Insect Robots
Ešte niekoľko robotov ...
MIT Roboty


Tutoriály
 Celulárne automaty
 Morfogenéza
 Simulátory
 Evolučné algoritmy
 Chaos
 Roboty
 Rôzne


História

Existujú dva prístupy ako je možné zostrojiť roboty, ktorých úlohou bude vykonávať rôzne úlohy v reálnom prostredí.

  • V staršom prístupe nie sú reakcie (tj. určité druhy správania sa) priamo implementované v robotovi, ale vyskytujú sa ako výsledok vzájomného pôsobenia plánovacej časti, v ktorej sú zadefinované ciele robota a konkrétneho modelu sveta, ktorý získa robot prostredníctvom senzorov. Akcie teda nie sú 'a priori' reprezentované v programe, ale vznikajú spolupôsobením sveta a stanovených cieľov.
  • V behaviour-based prístupe založenom na tzv. subsumpčnej architektúre , sú na rozdiel od starého prístupu, reakcie vstavané do robota, avšak nie sú stanovené žiadne ciele. Reakcie sú teda explicitne definované a spájajú sa do ďalších reakcií a vnemov. Špecifické ciele však nie sú nijako reprezentované a takisto neexistuje ani žiadna reprezentácia plánovania. Ciele totiž implicitne vyplývajú zo spolupôsobenia reakcií na jednotlivé vnemy a plánovanie preto prebieha v reálnom čase, kde každá reakcia robota ovplyvní celkový stav a konfiguráciu robota, čím vznikajú nové vnemy a nasleduje ďalšia reakcia.
    • r.1950

        Walter G.W. zostrojil jednoduchých robotov, ktorých základ bol v reflexnom správaní a jednoduchom asociatívnom učení. Roboty používali len zopár switchow, a ich celkový prejav závisel na interakcii medzi ich mechanickým hardwarom, elektrickými obvodmi a vlastnosťami prostredia. Išlo v podstate o adaptívne reflexy čo robiť v tej či onej situácii.

    • r.1969

        Nilsson N. opísal komplikovaného robota používajúceho centrálnu riadiacu jednotku (počítač). Robot spracovával vnemy z okolia, zostrojil si na základe toho model sveta, overil predpoklady čo je a čo nie je v modeli pravdivé a nakoniec vypracoval plány a sekvenciu akcií na dosiahnutie cieľa.

    • r.1986

        Brooks R. z Massachusettského technického inštitútu (MIT) predstavil architektúru, ktorá bola príkladom behavior-based prístupu k robotike. V nej definoval tri základné myšlienky štruktúry robota:

        • Evolúcia ako metodológia vytvárania robota, ktorá zvyšuje výkonnosť robota by sa mala uskutočňovať postupným pridávaním nových špecifickejších obvodov do robota (buď implementované ako hardware alebo ako softwarový obvod), zatiaľ čo staré obvody by sa mali zachovať. Každý takýto pridaný obvod potom tvorí tzv. novú vrstvu, kde každá z nových vrstiev vyvoláva nejaké správanie sa robota, ktorý interaguje s okolím.
        • Priamo prepojiť každú pridanú vrstvu medzi vnemami a reakciami robota.
        • Minimalizovať čo najviac interakciu medzi vrstvami.
    • r.1989

        Brooks R. uviedol riadiaci systém založený na ním r. 1986 predstavenej architektúre a to na 6-nohom robotovi s menom Genghis.

Učiaci proces

Pri vytváraní robota máme často dosť informácií o tom ako by mal daný robot interagovať s okolím. Je preto rozumné použiť tieto znalosti ako nechať robota aby sa všetko naučil od základov. Čo sa týka samotného procesu učenia, robot by mal mať implementovaných niekoľko interných penalizačných a odmeňujúcich funkcií a nespoliehať sa napr. na iba jednu externú hlavnú funkciu. Príkladom sú zvieratá, ktoré sa sústreďujú na zahnanie hladu čím sa v podstate učia spĺňať nové úlohy pri získavaní potravy, a neučia sa na základe získania znalosti vyplývajúcej zo zomretia hladom. Preto má napríklad zmysel to, aby sa robot strachoval o svoju batériu a učil sa ako ju udržať nabitú a dostával by odmenu napr. za prehľadávanie terénu, objavenie zaujímavých hornín alebo za ľubovoľný iný cieľ jeho misie.

Na základe toho môžeme definovať to, čo by mal byť autonómny robot schopný naučiť sa v reálnom prostredí:

  • naučiť sa reprezentovať svet pre neho vhodnej forme
  • naučiť sa stav svojich senzorov a akčných členov (kalibrácia)
  • naučiť sa spôsoby akými by mali jednotlivé reakcie vzájomne interagovať
  • naučiť sa vytvárať nové reakcie

Na to aby sa robot bol schopný horeuvedené podmienky splniť definoval Brooks základné zložky robota a to:

  • Binárny vektor reprezentujúci podmienky pre jednotlivé vnemy tj. vektor signalizujúci či bol [1] alebo nebol [0] zaregistrovaný dej, ktorý dokáže odpovedajúci vnem zachytiť.
  • Množinu reflexov kde každá reakcia je viazaná na binárne podmienky, ktorých konjunkcia dáva výsledok, na základe ktorého robot zareaguje alebo nie.

    Tj. reflex sa vyvolá len vtedy ak sú všetky podmienky pre aktiváciu reflexu splnené.

  • Mal by mať kladnú spätnú väzbu, ktorá je GLOBÁLNA, a preto v každom časovom okamihu t, robot dostáva resp. nedostáva kladnú spätnú väzbu (tj. všetky reflexy dostanú kladnú spätnú väzbu, bez ohľadu na to či sú alebo nie sú aktívne) Spätná väzba je binárna hodnota.
  • Mal by mať zápornú spätnú väzbu, ktorá má rovnaké vlastnosti ako kladná.

Samotné učenie potom inkrementálne mení vektor podmienok pre jednotlivé reakcie robota s cieľom maximalizovať kladnú spätnú väzbu a minimalizovať zápornú Algoritmus učenia by mal vedieť filtrovať šum, mal by byť výpočtovo nenáročný aby dokázal pracovať v reálnom čase a mal by byť schopný readaptácie tj. v prípade, že sa robot zmení alebo niektorá časť zlyhá (napr. odlomíme Genghisovi nohu :-) alebo ak sa zmení prostredie. Inak povedané robot bude musieť zabudnúť niektoré vedomosti a prispôsobiť sa novej situácii.

Hore
Kontakt: Marek Bundzel