Umelá inteligencia v humanoidných systémoch
Umelá inteligencia v humanoidných systémoch
Umelá inteligencia v humanoidných systémoch
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
TECHNICKÁ UNIVERZITA V KOŠICIACH<br />
FAKULTA ELEKTROTECHNIKY A INFORMATIKY<br />
KATEDRA KYBERNETIKY A UMELEJ INTELIGENCIE<br />
<strong>Umelá</strong> <strong>inteligencia</strong> v <strong>humanoidných</strong> <strong>systémoch</strong><br />
MÁRIA VIRČÍKOVÁ<br />
Diplomová práca<br />
2010
TECHNICKÁ UNIVERZITA V KOŠICIACH<br />
FAKULTA ELEKTROTECHNIKY A INFORMATIKY<br />
Katedra kybernetiky a umelej inteligencie<br />
Centrum pre inteligentné technológie<br />
<strong>Umelá</strong> <strong>inteligencia</strong> v <strong>humanoidných</strong> <strong>systémoch</strong><br />
Vedúci diplomovej práce:<br />
DIPLOMOVÁ PRÁCA<br />
Mária Virčíková<br />
Košice 2010<br />
Prof. Ing. Peter Sinčák, PhD.
Analytický list<br />
Autor: Mária Virčíková<br />
Názov práce:<br />
Jazyk práce: slovenský<br />
Typ práce: Diplomová práca<br />
Počet strán: 90<br />
Akademický titul: Inžinier<br />
<strong>Umelá</strong> <strong>inteligencia</strong> v <strong>humanoidných</strong> <strong>systémoch</strong><br />
Univerzita: Technická univerzita v Košiciach<br />
Fakulta: Fakulta elektrotechniky a informatiky (FEI)<br />
Katedra: Katedra kybernetiky a umelej inteligencie (KKUI)<br />
Študijný odbor: <strong>Umelá</strong> <strong>inteligencia</strong><br />
Študijný program: <strong>Umelá</strong> <strong>inteligencia</strong><br />
Mesto: Košice<br />
Vedúci DP: Prof. Ing. Peter Sinčák, PhD.<br />
Konzultant DP: Prof. Ing. Peter Sinčák, PhD.<br />
Dátum odovzdania: 7. mája 2010<br />
Dátum obhajoby: 24. mája 2010<br />
Kľúčové slová: Interakcia človek– robot, Inteligentné systémy, Humanoidná<br />
robotika, Robotický tanec, Interaktívna evolúcia, Evolučné al-<br />
goritmy, Genetické algoritmy, Spoločenská robotika<br />
Kategória; Konspekt: Výpočtová technika; <strong>Umelá</strong> <strong>inteligencia</strong><br />
Citovanie práce: Virčíková, Mária: <strong>Umelá</strong> <strong>inteligencia</strong> v <strong>humanoidných</strong> systé-<br />
moch. Diplomová práca. Košice: Technická univerzita v Koši-<br />
ciach, Fakulta elektrotechniky a informatiky, 2010, 90s.<br />
Názov práce v AJ:<br />
Artificial Intelligence in Humanoid Systems<br />
Kľúčové slová v AJ: Human– robot interaction, Intelligent systems, Humanoid ro-<br />
botics, Robotic dance, Interactive evolution, Evolutionary al-<br />
gorithms, Genetic algorithms, Social robotics
Abstrakt<br />
Diplomová práca sa zaoberá použitím prostriedkov umelej inteligencie v huma-<br />
noidnej robotike a konkrétne sa zameriava na spoločenskú robotiku a využitie interak-<br />
tívnej evolúcie pre systém robotického tanca. V práci sú opísané základy a hlavné vlast-<br />
nosti interaktívnych evolučných algoritmov nasledované prehľadom ich výskumu a ap-<br />
likácií. Táto technika optimalizuje systém na základe subjektívneho hodnotenia použí-<br />
vateľom. Algoritmus je aplikovaný na systém návrhu robotického tanca, kde evolučný<br />
algoritmus pomáha užívateľovi v procese tvorenia choreografie tanca robotov. Systém<br />
bol implementovaný v jazyku Python a v simulačnom prostredí Webots. Experimenty<br />
s niekoľkými ľudskými hodnotiteľmi dokázali, že prístup s použitím interaktívneho ge-<br />
netického algoritmu na navrhovanie choreografie robotického tanca je sľubný.<br />
Abstract<br />
This thesis deals with a usage of artificial intelligent techniques in humanoid ro-<br />
botics. The focus is on social robotics and how to use the interactive evolution for robo-<br />
tic dance system. In this diploma thesis the definition, principles and basic features of In-<br />
teractive Evolutionary Computation are described and followed by an overview of their<br />
research and applications. This technique optimizes systems based on subjective human<br />
evaluation. The algorithm is applied to a system of the design of robotic dance, in which<br />
the evolutionary algorithm helps user to create choreography of the robotic dance. The<br />
system was implemented in language Python and simulation environment Webots. The<br />
experiments with several human subjects show that the interactive genetic algorithm ap-<br />
proach to robotic dance choreography design aid system is promising.
Čestné vyhlásenie<br />
Diplomovú prácu som vypracovala samostatne s použitím uvedených referencií.<br />
V Košiciach, 6. mája 2010 .........................................<br />
Podpis
Poďakovanie<br />
Ďakujem mamke a profesorovi Sinčákovi za všetko, čo pre mňa urobili.
FEI KKUI<br />
Život je pomerne jednoduchý:<br />
Robíte nejaké veci.<br />
Väčšina z nich zlyhá.<br />
Niektoré fungujú.<br />
Urobíte viac toho, čo funguje.<br />
Ak to funguje veľmi dobre, ostatní to rýchlo odkopírujú.<br />
Potom urobíte niečo iné.<br />
Trik je robiť niečo iné.<br />
Leonardo da Vinci
FEI KKUI<br />
Predhovor<br />
Toto je vek strojov, vo všetkých zjavných aj skrytých významoch tohto slova.<br />
Thomas Caryle, 1795 – 1881, škótsky filozof a historik<br />
Jorge Luis Borges 1 píše v poviedke Babylonská knižnica o Knižnici, ktorá pozostáva<br />
z neurčitého a nekonečného počtu kníh – zahŕňa knihy, ktoré kedy boli napísané a kni-<br />
hy, ktoré niekedy napísané budú. Ak má nejaká kniha jestvovať, stačí pripustiť možnosť<br />
jej jestvovania. Väčšina kníh obsahuje nezmysly a rozumné súvislosti sú takmer zázrač-<br />
né výnimky, no nachádzajú sa medzi nimi aj knihy, ktoré obsahujú všetku znalosť ves-<br />
míru.<br />
Borgesova Babylonská knižnica je hypotetická, abstraktná konštrukcia všetkých<br />
možných permutácií slov. Dnes sa model jeho Knižnice pomocou počítačov a vedy stá-<br />
va dosiahnuteľným, keďže je možné napísať podobný program (samozrejme nemáme<br />
dostatočne veľké miesto na jeho uloženie), no Knižnica je dynamicky tvorená, keď uží-<br />
vateľ skúma jej potenciálne výsledky. Cestovateľ v takejto Knižnici zisťuje (ako Borges<br />
predpokladal), že nájsť jeho vysnívané riešenie je veľmi náročné, keďže väčšina „kníh“<br />
je len nezrozumiteľný zhluk písmen.<br />
Ako by sa dalo uľahčiť cestovateľovi nájsť „majstrovský kus “ v nekonečnom<br />
priestore možností? Keby sme ohraničili Knižnicu do takej miery, aby stále poskytovala<br />
dostatok možností výberu, potom by stačilo len mať nástroj, ktorý by prehľadával prie-<br />
stor efektívne a takým spôsobom by sme našli niečo inšpirujúce.<br />
Jedným z nástrojov by mohol byť práve evolučný algoritmus, ktorý prehľadáva<br />
priestor možných riešení. Patrí do triedy slabých algoritmov, ktoré nekladú veľké po-<br />
žiadavky a dokážu riešiť široké spektrum úloh.<br />
Evolučné algoritmy sú inšpirované biologickou teóriou evolúcie, podľa ktorej bo-<br />
hatosť druhov vznikla ich postupným rozdeľovaním na viacero nových v priebehu času<br />
z generácie na generáciu. Jej základy položili Jean–Baptiste Lamarck (1744– 1829) a<br />
Charles Darwin (1809– 1882).<br />
1 Jorge Luis Borges, poviedka Babylonská knižnica: Záhrada s chodníkmi, ktoré nás rozvetvujú, 1941
FEI KKUI<br />
Obaja zastávali názor, že organizmy sa menia postupne v priebehu času, prispôso-<br />
bujúc sa ich prostrediu a vyvinuli sa z jednoduchších organizmov.<br />
Lamarck uviedol teóriu dedičnosti získaných vlastností, ktorú prvýkrát predstavil v<br />
roku 1801: Ak sa organizmus mení v priebehu života s cieľom prispôsobiť sa jeho pro-<br />
strediu, potom sú tieto zmeny prenesené na jeho potomkov. Inak povedané, vlastnosti<br />
fenotypu získané adaptáciou sú prenosné dedičnosťou na potomkov. Časti tela, ktoré nie<br />
sú využívané, postupne miznú. Lamarck tiež veril, že vývoj sa uskutočňuje podľa vo-<br />
pred stanoveného plánu, o výsledkoch ktorého už bolo rozhodnuté.<br />
Naopak, Darwinova teória hovorí, že zmeny v organizme v priebehu jeho života<br />
nemajú vplyv na vývoj druhov. Organizmy, aj keď sú rovnakého druhu, sú všetky rôzne<br />
a tie, ktoré sa odlišujú v odchýlkach, ktoré im pomáhajú prežiť v ich prostredí, majú<br />
sklon mať viac potomkov. Potomkovia sa rodia s užitočnými črtami, ktoré zdedili<br />
a postupne, ako sa rozmnožujú, jedinci s týmto zvláštnosťami tvoria väčšinu a ostatní<br />
jedinci, ktorí nie sú tak dobre prispôsobení, vymierajú. Darwin tiež veril, že evolúcia<br />
neprebieha v závislosti od nejakého plánu.<br />
Evolučný proces je teda proces adaptácie, v rámci ktorého sa maximalizuje sila or-<br />
ganizmu konvergujúc podľa hesla „najsilnejší prežíva“.<br />
Za otca konceptu evolučných výpočtov sa považuje Holland 2 , ktorý genetické al-<br />
goritmy (bližšie popísané v kapitole 3.) charakterizoval ako:<br />
„Počítačové programy, ktoré sa vyvíjajú (angl. evolve) spôsobmi, podobnými vý-<br />
beru v prírode, poskytujúc riešenia zložitých problémov aj vtedy, keď im ich tvorcovia<br />
dokonale nerozumejú.“<br />
Avšak Turing 3 , už takmer tridsať rokov pred Hollandom uvažuje:<br />
„Existuje genetické alebo evolučné prehľadávanie, v ktorom sa hľadá kombinácia<br />
génov, kde kritériom je hodnota prežitia.“<br />
Turing nešpecifikoval ako viesť toto „genetické alebo evolučné prehľadávanie“ na<br />
riešenie problémov a hlavne nespomenul koncept populácie alebo rekombinácie, ale<br />
o dva roky neskôr uvádza 4 :<br />
2 John Holland v roku 1975 vydal knihu „Adaption in Natural and Artificial Systems“<br />
3 Alan Turing v roku 1948 v knihe „Intelligent Machinery“<br />
4 v roku 1950 v článku „Computing Machinery and Intelligence“
FEI KKUI<br />
„Nemôžeme očakávať, že nájdeme dobrého potomka na prvý pokus.“ 5<br />
Interaktívne evolučné výpočty takýmto spôsobom, inšpirujúc sa evolúciou<br />
v prírode, prehľadávajú priestor možných riešení a používateľ rozhoduje o vývoji<br />
„knižníc“ podobných Borgesovej, ktoré majú podobu obrázkov, hudobných kompozícií,<br />
architektonických a dizajnérskych produktov.<br />
Mojou ambíciou je použiť nadobudnuté teoretické poznatky o evolučných algo-<br />
ritmoch v aplikácii robotického tanca, kde človek vstupuje do procesu tvorby choreo-<br />
grafie tanca a na základe jeho vlastného vkusu a preferencií vzniká nový tanec.<br />
5 Turing takisto načrtol prepojenie medzi procesom hľadania lepšieho riešenia (hovoriac o strojoch)<br />
a evolúciou pomocou identifikátorov ako dedičný materiál (štruktúra potomka), mutácie (zmeny potom-<br />
ka), prirodzená selekcia (posúdenie experimentátora).
FEI KKUI<br />
Obsah<br />
Zoznam obrázkov ......................................................................................................... 13<br />
Zoznam tabuliek ........................................................................................................... 15<br />
Zoznam symbolov a skratiek ....................................................................................... 16<br />
Úvod ............................................................................................................................... 17<br />
1 Formulácia úlohy .................................................................................................. 20<br />
1.1 Ciele diplomovej práce ................................................................................... 20<br />
1.2 Štruktúra diplomovej práce ............................................................................ 20<br />
2 Úvod do humanoidnej robotiky ........................................................................... 22<br />
2.1 Výskum humanoidnej robotiky ........................................................................ 22<br />
2.2 Použitie prostriedkov umelej inteligencie v <strong>humanoidných</strong> <strong>systémoch</strong> .......... 27<br />
2.2.1 Fuzzy logika v <strong>humanoidných</strong> <strong>systémoch</strong> .................................................. 30<br />
2.2.2 Neurónové siete v <strong>humanoidných</strong> <strong>systémoch</strong> ............................................ 31<br />
2.2.3 Evolučné prístupy v <strong>humanoidných</strong> <strong>systémoch</strong> .......................................... 32<br />
2.3 Tanec v humanoidnej robotike ....................................................................... 33<br />
3 Úvod do evolučných výpočtov so zameraním na interaktívnu evolúciu .......... 37<br />
3.1 Základné teoretické východiská evolučných výpočtov .................................... 37<br />
3.2 Interaktívna evolúcia ...................................................................................... 41<br />
3.3 Problematika interaktívnych evolučných výpočtov ......................................... 44<br />
4 Návrh systému pre robotický tanec pomocou interaktívnej evolúcie .............. 46<br />
4.1 Motivácia ........................................................................................................ 46<br />
4.2 Navrhované riešenie ....................................................................................... 46<br />
4.3 Humanoidný robot Nao a simulácia jeho tanca v prostredí Webots .............. 50<br />
4.4 Implementácia genetického algoritmu ............................................................ 57<br />
4.4.1 Chromozóm ................................................................................................ 59
FEI KKUI<br />
4.4.2 Meranie vhodnosti ...................................................................................... 60<br />
4.4.3 Selekcia ....................................................................................................... 61<br />
4.4.4 Genetické operátory .................................................................................... 61<br />
5 Realizácia demonštračných experimentov na vyvíjanom systéme ................... 63<br />
5.1 Návrh experimentov ........................................................................................ 63<br />
5.2 Experimentálne výsledky generovania robotického tanca .............................. 65<br />
5.2.1 Časti fenotypu ............................................................................................. 65<br />
5.2.2 Hodnotenie subjektu č. 1 a evolúcia fenotypov .......................................... 66<br />
5.2.3 Hodnotenie subjektu č. 2 a evolúcia fenotypov .......................................... 71<br />
5.3 Analýza dosiahnutých výsledkov ..................................................................... 75<br />
Výsledný tanec č. 1 ........................................................................................................ 76<br />
Výsledný tanec č. 2 ........................................................................................................ 79<br />
6 Zhodnotenie a záver .............................................................................................. 83<br />
6.1 Splnenie téz diplomovej práce ........................................................................ 83<br />
6.2 Práca do budúcna ........................................................................................... 84<br />
Epilóg ............................................................................................................................. 86<br />
Zoznam použitej literatúry .......................................................................................... 88<br />
Prílohy ............................................................................................................................ 90
FEI KKUI<br />
Zoznam obrázkov<br />
Obr. 1 Evolúcia výskumu v robotike za posledných päťdesiat rokov podľa [5] ........................................ 24<br />
Obr. 2 Najväčšie projekty androidných robotov na svete podľa http://www.androidworld.com............... 28<br />
Obr. 3 Tancujúci robot : učenie pozorovaním od užívateľa ....................................................................... 34<br />
(LFO: learning from observation) podľa [12] ........................................................................................... 34<br />
Obr. 4 Tancujúci Robot Mahru z Južnej Kóreii [14] ................................................................................. 35<br />
Obr. 5 Vývojové prostredie robota SDR– 4X vyvinuté autormi uvádzanými v [2] .................................. 35<br />
Obr. 6 Robot ako tancujúci partner vyvinutý na Tohoku University [14] ................................................. 36<br />
Obr. 7 Reprodukcia dvoch chromozómov a následná mutácia ich potomka [4] ........................................ 38<br />
Obr. 8 Príklad reprezentácie GP funkcie +(– (0,5),/(PI,*(a,b))) ............................................................... 40<br />
Obr. 9 Proces GA a IGA [13] .................................................................................................................... 42<br />
Obr. 10 Schéma navrhovaného riešenia ..................................................................................................... 47<br />
Obr. 11 GUI, na ktorom užívateľ ohodnotí na základe vlastných preferencií predvedený tanec robotov na<br />
stupnici od 1 (najlepší tanec) do 5 (tanec sa v ďaľšom kroku nebude vôbec brať do úvahy ) ................... 48<br />
Obr. 12 Navrhnutý systém: evolučný algoritmus vygeneruje súbor s fenotypmi obsahujúci informáciu<br />
o nastavení jednotlivých kĺbov robotov, ktorý načíta simulátor a vykoná pohyb ...................................... 50<br />
Obr. 13 Robot Nao: reálna podoba ............................................................................................................ 51<br />
Obr. 14 Vývojové prostredie simulátora Choreographe ............................................................................ 53<br />
Obr. 15 Vývojové prostredie simulátora Webots ....................................................................................... 53<br />
Obr. 16 Kroky práce so simulátorom Webots: model, program, simulácia a transfer na reálne roboty<br />
(www.cyberbotics.com/products/webots/) ................................................................................................. 54<br />
Obr. 17 Zhotovené prostredie vo Webotsi na simuláciu evolúcie robotického tanca siedmich robotov,<br />
ktorí sú odlíšení farbou .............................................................................................................................. 54<br />
Obr. 18 Kinematika robota Nao: 25 stupňov voľnosti [6] ......................................................................... 55<br />
13
FEI KKUI<br />
Obr. 19 Kinematika robota Nao znázornená na jeho „kostre“ [6] ............................................................. 55<br />
Obr. 20 Genetický algoritmus systému, ktorý bol realizovaný v jazyku v Python: schéma jednotlivých<br />
časti algoritmu ........................................................................................................................................... 58<br />
Obr. 21 Kódovanie chromozómu ............................................................................................................... 60<br />
Obr. 22 Prostredie navrhovaného systému, v ktorom používateľ priradzuje fitness jednotlivým tancom<br />
robotov ....................................................................................................................................................... 60<br />
Obr. 23 Dva kroky vo všeobecnej schéme selekcie ................................................................................... 61<br />
Obr. 24 Schéma uniformného kríženia ...................................................................................................... 62<br />
Obr. 25 Inicializačná poloha robotov ......................................................................................................... 64<br />
Obr. 26 Po dokončení simulácie tanca sa po každom kroku evolúcie v konzolovom okne vypíše, že<br />
jednotlivé roboty ukončili pohyb ............................................................................................................... 65<br />
Obr. 27 Bity fenotypu, ktoré predstavujú nastavenie daných kĺbov robota v stupňoch ............................. 66<br />
14
FEI KKUI<br />
Zoznam tabuliek<br />
Tabuľka č. 1 Vlastnosti robota Naa: Všeobecné vlastnosti robota, stupne voľnosti, obsahujúce<br />
multimédiá a podporované programovacie jazyky (www.aldebaran-robotics.com) .................................. 51<br />
Tabuľka č. 2 Technické parametre robota Naa: kĺby a ich rozpätie v stupňoch ........................................ 56<br />
Tabuľka č. 3.: Nultá generácia hodnotiteľa č. 1. ........................................................................................ 66<br />
Tabuľka č. 4.: Prvá generácia hodnotiteľa č. 1. ......................................................................................... 67<br />
Tabuľka č. 5.: Druhá generácia hodnotiteľa č. 1. ....................................................................................... 67<br />
Tabuľka č. 6.: Tretia generácia hodnotiteľa č. 1. ....................................................................................... 68<br />
Tabuľka č. 7.: Štvrtá generácia hodnotiteľa č. 1. ....................................................................................... 68<br />
Tabuľka č. 8.: Piata generácia hodnotiteľa č. 1. ......................................................................................... 69<br />
Tabuľka č. 9.: Šiesta generácia hodnotiteľa č. 1. ....................................................................................... 69<br />
Tabuľka č. 10.: Siedma generácia hodnotiteľa č. 1. ................................................................................... 70<br />
Tabuľka č. 11.: Ôsma generácia hodnotiteľa č. 1. ..................................................................................... 70<br />
Tabuľka č. 12.: Nultá generácia hodnotiteľa č. 2. ...................................................................................... 71<br />
Tabuľka č. 13.: Prvá generácia hodnotiteľa č. 2. ....................................................................................... 71<br />
Tabuľka č. 14.: Druhá generácia hodnotiteľa č. 2. ..................................................................................... 72<br />
Tabuľka č. 15.: Tretia generácia hodnotiteľa č. 2. ..................................................................................... 72<br />
Tabuľka č. 16.: Štvrtá generácia hodnotiteľa č. 2. ..................................................................................... 73<br />
Tabuľka č. 17.: Piata generácia hodnotiteľa č. 2. ....................................................................................... 73<br />
Tabuľka č. 18.: Šiesta generácia hodnotiteľa č. 2. ..................................................................................... 74<br />
Tabuľka č. 19.: Siedma generácia hodnotiteľa č. 2. ................................................................................... 74<br />
Tabuľka č. 20.: Ôsma generácia hodnotiteľa č. 2. ..................................................................................... 75<br />
15
FEI KKUI<br />
Zoznam symbolov a skratiek<br />
DOF Degree of Freedom – stupeň voľnosti<br />
EC, EV Evolutionary Computation – evolučné výpočty<br />
ED Evolutionary Design – evolučný dizajn<br />
FL Fuzzy Logika<br />
GA Genetic Algorithms – genetické algoritmy<br />
GP Genetic Programming – genetické programovanie<br />
GUI Graphical User Interface – grafické používateľské rozhranie<br />
HR Humanoid Robotics – humanoidná robotika<br />
HRI Human–Robot Interaction – interakcia medzi človekom a robotom<br />
IE Interactive Evolution – interaktívna evolúcia<br />
IEC, IEV Interactive Evolutionary Computation – interaktívne evolučné výpočty<br />
IGA Interactive Genetic Algorithms – interaktívne genetické algoritmy<br />
NN Neural Network – neurónová sieť<br />
UI <strong>Umelá</strong> Inteligencia<br />
16
FEI KKUI<br />
Úvod<br />
17<br />
Ak by človek vznikol náhodou,<br />
život by nemal žiaden zmysel alebo význam.<br />
Morris, Henry M., 1918 – 2006, americký kreacionista<br />
<strong>Umelá</strong> <strong>inteligencia</strong> tvorí výpočtové systémy inšpirované rozličnými aspektmi života.<br />
Evolučné výpočty (ďalej EV, EC) sú biologicky podnietené počítačovo orientované vý-<br />
počtové prístupy, ktoré vychádzajú z Darwinovej teórie.<br />
Cieľom mojej diplomovej práce je teoreticky analyzovať tieto výpočtové prístupy<br />
a následne sa pokúsiť navrhnúť podobný systém v oblasti robotiky, konkrétne robotic-<br />
kého tanca. Používateľ ovplyvňuje vývoj tanečných pohybov robotov. Evolúcia bude<br />
vedená užívateľom, ktorý si vyberá z ponúknutých možných tanečných úsekov<br />
a takýmto spôsobom tvorí nový tanec.<br />
Tézy diplomovej práce sú uvedené v prvej kapitole.<br />
Navrhnutý systém robotického tanca využíva techniky umelej inteligencie ako sú<br />
evolučné algoritmy. Obsahom druhej kapitoly je prehľad použitia umelej inteligencie<br />
v <strong>humanoidných</strong> <strong>systémoch</strong> vo svete. Z prostriedkov umelej inteligencie sa zameriam<br />
práve na evolučné algoritmy a aplikačnú oblasť robotického tanca.<br />
V tretej kapitole zhrniem základné definície, vlastnosti, genetické operátory<br />
a zložky evolučných výpočtov. Uvediem ich fundamentálne charakteristiky a rozobe-<br />
riem ich výpočtové kroky. Druhá časť kapitoly sa špecializuje na oblasť interaktívnej<br />
evolúcie – predstavím interaktivitu, ktorú niektorí vedci nazývajú ideológiou, iní tech-<br />
nológiou. Človek sa vďaka interaktívnej evolúcii stáva tvorcom a systém plní funkciu<br />
prostriedku, ktorý mu to umožňuje. Následne rozviniem otázky súčasného výskumu,<br />
ktorých väčšina súvisí práve so spoluprácou človeka so systémom.<br />
V štvrtej kapitole je opísaný návrh systému využitia interaktívnych evolučných<br />
výpočtov pri evolúcii tanca a obsahom ďalšej, piatej kapitoly sú experimenty s týmto<br />
systémom a ich analýza.<br />
Moja diplomová práca je založená na preštudovaní viacerých publikácií svetovo<br />
najuznávanejších autorov v tejto oblasti.
FEI KKUI<br />
Úvod do teoretických základov je zväčša inšpirovaný prácou autorov, ktorí sú po-<br />
važovaní za zakladateľov a prvých výskumníkov evolučných výpočtov. Opis stavu vý-<br />
skumu evolučných algoritmov je založený na výsledkoch výskumu autorov, ktorí sa vo<br />
veľkej miere zaslúžili o vývoj a pokroky v tejto oblasti umelej inteligencie. Dovolím si<br />
predstaviť niektorých z nich:<br />
Peter J. Bentley prednáša na univerzite v Londýne a jeho výskum zahŕňa okrem<br />
evolučných algoritmov aj umelé imúnne systémy, kolónne a iné zložité systémy, apli-<br />
kované v rôznych oblastiach, vrátane dizajnu, riadenia, robotiky, nanotechnológie, bez-<br />
pečnosti a umenia.<br />
Richard Dawkins, etnológ, evolučný biológ a populárny vedecký autor, prednáša<br />
na univerzite v Oxforde a je tvorcom Biomorfickej Krajiny.<br />
David E. Goldberg je profesor na univerzite v Illinois a vedie laboratórium gene-<br />
tických algoritmov (IlliGAL). Jeho kniha „Genetic Algorithms for Search, Optimiza-<br />
tion, and Machine Learning“ je jedna z najcitovanejších publikácií v počítačovej vede.<br />
Hideyuki Takagi je profesor na Kyushu univerzite a patrí medzi popredných sú-<br />
časných vedcov zaoberajúcich sa interaktívnymi evolučnými výpočtami.<br />
John Holland bol expertom v počítačovom programovaní a pre IBM navrhoval<br />
prvú kalkulačku, popri návrhu ktorej si všimol, že medzi biológiou a výpočtovou vedou<br />
existuje prepojenie. Jeho kniha „The Genetic Theory of Natural Selection“ vstúpila do<br />
dejín vedy, lebo evolúcia bola opísaná ako motor pre adaptáciu. Keďže jeho teória fun-<br />
govala pre živé organizmy, prečo nie aj pre počítačové programy. Takto vznikla teória<br />
genetických algoritmov.<br />
Z oblasti humanoidnej robotiky ma najviac inšpirovali:<br />
Cynthia Breazeal, ktorá pôsobí v Media lab na MIT v Bostone, zakladateľka Per-<br />
sonal Robots Group. Vyvinula viaceré roboty – napríklad známeho spoločenského ro-<br />
bota, ktorý vyjadruje emócie – Kismeta. Jej výskum sa zameriava na rozvíjanie princí-<br />
pov, techník a technológií pre osobné roboty. Vyvinula rad robotických bytostí, ako sú<br />
malé hexapoidné roboty, zabudované robotické technológie do každodenných artefak-<br />
tov, ako je napríklad oblečenie alebo lampa, až po vysoko expresívnych humanoidov.<br />
Jej v súčasnosti prebiehajúci výskum zahŕňa rozvoj spoločensky inteligentných robotic-<br />
kých partnerov, ktorí komunikujú s ľuďmi, spolupracujú s nimi a tým sa od ľudí učia.<br />
18
FEI KKUI<br />
Rodney A. Brooks, vedúci MIT Computer Science and Artificial Intelligence La-<br />
boratory, zakladateľ Humanoid Robotics Group – je aj vo vedení známej spoločnosti<br />
iRobot Corp.<br />
Shuji Hashimoto, ktorý pôsobí na Waseda University v Japonsku, kde je od ro-<br />
ku 2000 riaditeľom Humanoid Robotics Institute. Medzi jeho záujmy patrí okrem hu-<br />
manoidnej robotiky aj spracovanie obrazu, hudobné systémy, neurónové siete<br />
a KANSEI inžinierstvo.<br />
Z nežijúcich osobností umelej inteligencie spomeniem meno:<br />
Alan Turing (1912 – 1954) – geniálny britský matematik, logik a kryptograf,<br />
ktorý je častokrát považovaný za otca modernej počítačovej vedy. Počas druhej svetovej<br />
vojny sa mu podarilo odhaliť tajomstvo šifrovacieho stroja Enigma. Spolu s kolegom<br />
Welchmanemom skonštruovali počítač na dešifrovanie správ. Niekoľko rokov pred<br />
smrťou zhotovil tzv. Turingov test.<br />
19
FEI KKUI<br />
1 Formulácia úlohy<br />
1.1 Ciele diplomovej práce<br />
Úlohou tejto diplomovej práce bolo:<br />
1) Vypracovať prehľad použitia umelej inteligencie v <strong>humanoidných</strong> systé-<br />
moch vo svete.<br />
2) Analyzovať teoretické východiská evolučných výpočtov.<br />
3) Realizovať teoreticko – experimentálnu analýzu problematiky evolučných<br />
výpočtov s dôrazom na interaktívne prístupy.<br />
4) Navrhnúť systém využitia interaktívnych evolučných výpočtov pri evolúcii<br />
tanca.<br />
5) Vytvoriť užívateľské rozhranie pre daný systém.<br />
6) Prezentovať demonštráciu výsledku evolúcie minimálne na dvoch tancoch<br />
a dvoch hodnotiteľov procesu.<br />
7) Vypracovať abstrakt v anglickom jazyku v rozsahu min. 7 strán<br />
s predpísanou osnovou.<br />
8) Vypracovať dokumentáciu podľa pokynov vedúceho diplomovej práce.<br />
1.2 Štruktúra diplomovej práce<br />
Práca je rozdelená do šiestich kapitol, v ktorých sú postupne realizované jednot-<br />
livé zadané úlohy.<br />
Kapitola 2. je rozdelená do troch častí, z ktorých prvá opisuje vý-<br />
skum humanoidnej robotiky a druhá sa sústreďuje na používanie prostriedkov umelej<br />
inteligencie v tejto oblasti. Cieľom tejto kapitoly je poskytnúť prehľad vývoja robotiky<br />
so zameraním na moderné inteligentné techniky riadenia a učenie spoločenských vzo-<br />
rov. Na základe preštudovanej literatúry sa pokúsim zhrnúť tradičné témy vo výskume<br />
humanoidnej robotiky od priemyselných a mobilných robotov po nové trendy v tejto<br />
oblasti, ktoré sa zameriavajú hlavne na interakciu medzi človekom a robotom. Posledná<br />
20
FEI KKUI<br />
časť tejto kapitoly sa orientuje konkrétne na robotický tanec a systémy tanca<br />
v humanoidnej robotike vo svete.<br />
V kapitole 3. je uvedený prehľad vlastností evolučných výpočtov, ich základné<br />
princípy a jednotlivé kroky evolučného algoritmu. Druhá časť tejto kapitoly vysvetľuje<br />
pojem interaktívna evolúcia a obsahuje prehľad o súčasnom výskume interaktívnych<br />
evolučných výpočtov.<br />
Návrh programového systému v oblasti interaktívneho robotického tanca je ná-<br />
plňou kapitoly 4., výsledky a vykonané experimenty sú uvedené v kapitole 5. Táto kapi-<br />
tola obsahuje stručný opis robota Naa a programovanie jednotlivých pohybov cez nasa-<br />
denie genetického algoritmu, až po následné zavedenie interaktívnej evolúcie do systé-<br />
mu, pomocou ktorej užívateľ ovplyvňuje vývoj tanečných pohybov robota.<br />
Obsahom kapitoly 5. je realizácia demonštračných experimentov na vyvíjanom<br />
systéme, kde jednotliví hodnotitelia vytvárajú tanečné choreografie.<br />
Posledná kapitola dokumentuje splnenie téz diplomovej práce a predkladá mož-<br />
nú budúcu prácu na systéme.<br />
Jadro predloženej diplomovej práce tvorí kapitola 4 – Návrh systému pre robo-<br />
tický tanec pomocou interaktívnej evolúcie.<br />
Súčasťou diplomovej práce sú prílohy:<br />
- prehľad <strong>humanoidných</strong> robotov (príloha A),<br />
- aplikácie interaktívnej evolúcie (príloha B),<br />
- výťah v anglickom jazyku (príloha C),<br />
- používateľská a systémová príručka (príloha D a E).<br />
21
FEI KKUI<br />
2 Úvod do humanoidnej robotiky<br />
2.1 Výskum humanoidnej robotiky<br />
Prírode sa nedá porúčať inak, než, že ju poslúchame.<br />
22<br />
Francis Bacon<br />
Absolútny sen umelej inteligencie je zhotoviť inteligenciu na ľudskej úrovni. Sen<br />
vyrobiť umelého človeka sa objavuje takmer v každej etape ľudskej histórie a aj v dneš-<br />
nej modernej kultúre. Postaviť humanoidného robota je výzva par excellence pre ved-<br />
cov pôsobiacich v oblastiach umelá <strong>inteligencia</strong> a robotika [3].<br />
Vývoj výskumu v robotike za posledné polstoročie sa tvoril ako odpoveď na zme-<br />
ny v ľudských potrebách, od priemyselných robotov, ktoré nahrádzali ľudského operá-<br />
tora od rizikových alebo nebezpečných úloh, až po súčasnú explóziu najmä humanoid-<br />
nej robotiky (ďalej HR) a služobných robotov, ktoré asistujú človeku. Dnešný stav vo<br />
svete vo výskume HR sa pohybuje od oblastí zahrňujúcich pohyb po interakciu medzi<br />
robotom a človekom.<br />
Súčasná popredná oblasť robotiky, na ktorú sa orientuje výskum, sa nazýva slu-<br />
žobná a spoločenská robotika (v angl. service and social robotics), z dôvodu jej vše-<br />
obecného cieľa – približovať robotov bližšie k ľudom a ich, v prvom rade, spoločen-<br />
ským potrebám. Do spektra služobnej robotiky patrí medicínska a terénna robotika,<br />
konštrukčné a humanoidné roboty [5].<br />
Humanoid (z anglického „human” – človek, ľudský a „–oid“ – podobný) je niečo,<br />
čo sa zjavom podobá na ľudskú bytosť. Pojem humanoid sa po prvý krát objavil v roku<br />
1912 označujúc skameneliny, ktoré boli morfologicky podobné, ale nie identické s ľud-<br />
skou kostrou [5]. Takéto používanie termínu humanoid bolo frekventované v 20. storo-<br />
čí, ale dnes sa slovo humanoid (humanoidný) vzťahuje vo všeobecnosti na čokoľvek s<br />
ľudskými vlastnosťami.<br />
V najširšom ponímaní humanoidný robot je robot, s výzorom napodobňujúcim<br />
ľudské telo, pripúšťajúc interakciu medzi ním a človekom. Jednotná definícia neexistu-<br />
je, ale podľa [1]: „Humanoidy sú stroje, ktoré majú tvar a funkcie ľudí.“
FEI KKUI<br />
Je dôležité oddeliť humanodiné roboty, ktoré napodobňujú človeka tvarom od po-<br />
kusov namodelovať „inteligenciu“ a správanie inšpirované ľudským – to znamená, roz-<br />
lišovať hardvér od softvéru.<br />
Mohlo by sa zdať, že softvér je dôležitejší, ale existuje viacero dôvodov, prečo by<br />
takýto robot mal mať aj ľudskú formu a tvar, v prípade, že chceme simulovať inteligen-<br />
ciu na ľudskej úrovni. Podľa Johnson a Lakoffa ako je uvedené v [1], tvar nášho tela je<br />
súčasťou reprezentácie nášho vnútorného modelu vonkajšieho sveta. Čiže, forma nášho<br />
tela je kritická vzhľadom k tomu, ako svet okolo seba chápeme, ako si ho interne myš-<br />
lienkovo reprezentujeme a potom tieto reprezentácie používame v myslení a napríklad<br />
v reči. Robot s ľudskou inteligenciou by mal mať aj človeku podobné telo, aby sa<br />
u neho vyvinula rovnaká, resp. podobná reprezentácia sveta. Aby robot získal skúse-<br />
nosti z interakcie s druhými ľuďmi, museli by s ním ľudia komunikovať ako<br />
s človekom. Z pozorovaní bolo zistené, že len málo ľudí komunikuje s robotom, ako by<br />
to bol človek. To sú niektoré dôvody, prečo je dôležité, aby humanoidné roboty mali<br />
tvar pripomínajúci ľudí.<br />
K časti modelovania inteligentného správania treba poznamenať, že je ťažké usta-<br />
noviť, čo sa myslí pod výrazom „správať sa ako človek.“ Zvyčajne sa tým myslí, že ro-<br />
bot by mal vykazovať správanie spôsobom, aby bežný ľudský pozorovateľ povedal, že<br />
sa správa viac ako človek než stroj 6 .<br />
Jeden z primárnych cieľov HR je vytvoriť roboty spôsobilé pracovať v širokej šká-<br />
le prostredí a schopné vysporiadať sa s neočakávanými situáciami. Humanoidné roboty<br />
sú dynamicky stabilné chodiace roboty. Autonómne bipedické roboty sa prvý krát obja-<br />
vili v roku 1967, keď Vukobratovic realizoval prvé experimenty [5]. Prvé bipedické ro-<br />
6 Čo sa týka „mentálnej“ časti návrhu robotov, Hashimoto navrhuje ignorovať prvé<br />
Asimovo pravidlo, tzv. prvý zákon robotiky, ktorý hovorí, že robot by mal byť napro-<br />
gramovaný tak, aby nikdy neublížil človeku 6 . Podľa Hashimota roboty by mali mať<br />
schopnosť rozhodovania sa aj v tom prípade, ak by došlo k takejto situácii.<br />
(http://www.physorg.com/news76185210.html)<br />
23
FEI KKUI<br />
boty boli veľmi zjednodušené stroje, ale neskorší vývoj viedol k sofistikovaným, ľah-<br />
kým a zručným robotom.<br />
Výskum sa podľa [5] postupne združil do týchto oblastí:<br />
– generovanie chôdze,<br />
– udržiavanie stability a<br />
– návrh robotov.<br />
Nasledujúci obrázok vyjadruje rozvoj robotického výskumu od roku 1960.<br />
Obr. 1 Evolúcia výskumu v robotike za posledných päťdesiat rokov podľa [5]<br />
Nové trendy v HR indikujú výskum smerom k schopnosti prirodzenej interakcie<br />
medzi humanoidom a ľuďmi, čo zahŕňa otázky bezpečnosti pri takejto spolupráci, až po<br />
schopnosti robota vyjadrovať emócie. Úmyslom je zaradiť humanoidné roboty do ľud-<br />
ského prostredia, konkrétne napríklad asistovať starším a invalidným osobám, zabaviť<br />
deti a komunikovať v prirodzenom jazyku.<br />
24
FEI KKUI<br />
Podľa [1] výskum interakcie medzi človekom a robotom zahŕňa nasledujúce témy:<br />
1) Priateľské rozhrania človek–robot, ktoré uľahčujú neskúseným užívate-<br />
ľom obsluhovať robota. Príkladom tejto kategórie je systém rozpoznáva-<br />
nia reči.<br />
2) Bezpečnosť interakcie človek–robot – návrh robota musí zahŕňať bezpeč-<br />
né ovládanie riadenia robota, ktoré minimalizuje riziká v prípade nekon-<br />
trolovaného pohybu a bezpečné plánovanie robotického pohybu.<br />
3) Vyjadrovanie emócií a vnímanie – výskum v tejto oblasti smeruje<br />
k vyvíjaniu aplikácií osobných a spoločenských robotov.<br />
4) Spoločenské učenie, kde sa uvažuje o nových prístupoch smerom k čoraz<br />
dôveryhodnejšiemu napodobňovaniu ľudských spôsobov. V kontraste so<br />
štatistickými prístupmi, nové učiace prístupy napomáhajú robotom sa<br />
rýchlo učiť novým schopnostiam a zvládať rozličné úlohy takými spô-<br />
sobmi ako prirodzenými inštrukciami od človeka alebo demonštráciami<br />
človeka robotovi. Takto vedené učenie robotov človekom zastrešuje uče-<br />
nie imitáciou a opaterou.<br />
Cieľom časti robotického výskumu, ktorá sa zaoberá interakciou medzi človekom<br />
a robotom (HRI – Human Robot Interaction), je prekonať spoločenskú bariéru medzi<br />
nimi. Nachádzame sa v procese vývoja robotov, ktorých súčasťou je ich vlastná osob-<br />
nosť. Pointou je, aby komunikácia a interakcia s robotmi bola čo najjednoduchšia<br />
a príjemná pre neskúsených používateľov a rovnako aj pre profesionálov a vedcov. Ke-<br />
by sa roboty správali viac ako ľudia, tak by sa ľudia pri interakcii s nimi nemuseli sprá-<br />
vať ako roboty.<br />
Výskum v oblasti HRI prináša úžitok v mnohých aplikačných oblastiach. Najvý-<br />
znamnejšie podľa [5] sú:<br />
1) asistencia pre chorých a invalidných ľudí,<br />
2) asistencia pri rutinných úlohách, ktoré z rôznych dôvodov nemôžu byť vy-<br />
konávané celkom automaticky,<br />
3) služobná robotika a<br />
4) zábavná robotika.<br />
25
FEI KKUI<br />
HRI je rastúca interdisciplinárna oblasť výskumu s narastajúcim množstvom apli-<br />
kácií, ktoré majú nielen významný ekonomický dopad, ale menia spôsob nášho života<br />
a druh vzťahu, aký si môžeme vybudovať so strojmi. Spoločnou métou vedcov je, aby<br />
roboty boli prístupnejším nástrojom – pomocníkom v ľudských domovoch a pri prá-<br />
cach, preto je potrebné vyvíjať techniky, ktoré pomáhajú zvyšovať mieru autonómnosti<br />
robotov a zlepšiť schopnosť prirodzenej interakcie robota s okolím – v neposlednom ra-<br />
de aj s človekom.<br />
Zlepšenia, dosiahnuté za posledné roky výskumu v tomto odbore, poskytli obrov-<br />
ské množstvo aplikácií použiteľných v každodennom živote, ako sú robotické psy<br />
a mačky, robotov ako sprevádzačov v múzeu, osobných robotických asistentov<br />
a podobne. Ide o roboty, pre ktorých spoločenská interakcia hrá kľúčovú úlohu – spolo-<br />
čenská preto, aby sme ich odlíšili od tradičnej interakcie človek–systém, aká je naprí-<br />
klad v teleoperačných úlohách.<br />
V súčasnosti sa táto časť robotického výskumu podľa [5] zameriava hlavne na vy-<br />
jadrovanie vlastností napodobňujúc ľudské spoločenské rysy, ako:<br />
1) vyjadrovanie alebo vnímanie emócií,<br />
2) komunikácia – vedenie dialógu na vysokej úrovni,<br />
3) učiť sa a rozpoznávať modely iných agentov,<br />
4) budovanie, resp. udržiavanie vzťahov,<br />
5) používanie prirodzených prostriedkov aj neverbálnej komunikácie (gestá, po-<br />
hľady),<br />
6) vykazovať osobitný charakter a vlastnú osobnosť,<br />
7) učiť sa alebo rozvíjať spoločenské kompetencie.<br />
Aplikačné spektrum spoločenských interaktívnych robotov je široké. Môžu sa po-<br />
užívať na rôzne účely: či už ako platformy na výskum, ako hračky, vzdelávacie nástroje<br />
alebo ako terapeutická pomoc. Všeobecný zmysel interaktívnych robotov spočíva vo<br />
fakte, že človek preferuje interagovať so strojmi rovnakým spôsobom ako interaguje<br />
s ľuďmi. Jedným z najdôležitejších cieľov v zábavnej oblasti robotiky je, aby interakcia<br />
užívateľov s robotmi nenudila – spontánnosť je zásadným prvkom.<br />
26
FEI KKUI<br />
Najdôležitejším dôvodom, prečo sa zaoberať vylepšením interakcie medzi člove-<br />
kom a robotom je, aby roboty ľudom pomáhali a uľahčili mnohé úlohy, ktorým ľudia<br />
každodenne čelia. Roboty, ktorých cieľom je čo najviac sa podobať ľuďom – fyzicky,<br />
a aj určitými schopnosťami, sa nazývajú androidi. Predpokladá sa, že do polovice tohto<br />
storočia prerastie výroba androidov automobilový priemysel vo veľkosti aj dôležitosti 7 .<br />
V prílohe A diplomovej práce je vypracovaný prehľad svetovo známych humano-<br />
idných robotov.<br />
2.2 Použitie prostriedkov umelej inteligencie v <strong>humanoidných</strong><br />
<strong>systémoch</strong><br />
Mnohé aspekty nášho života vyžadujú použitie inteligentných strojov schopných<br />
prevádzky za dynamickej interakcie s okolím. Práve použitie bipedických robotov je z<br />
tohto pohľadu zaujímavé. Humanoidné roboty ako antropomorfné chodiace stroje sú v<br />
prevádzke už viac ako dvadsať rokov.<br />
Aplikácie <strong>humanoidných</strong> robotov kladú čoraz vyššie požiadavky na inteligenciu<br />
robota. Inteligentné humanoidné roboty sú funkčne orientované zariadenia, stavané na<br />
vykonávanie úloh namiesto ľudí. Sú to autonómne systémy schopné extrahovať infor-<br />
mácie z okolia a používať svoje vedomosti o svete. Očakáva sa, že budú natoľko auto-<br />
nómne, aby sa bezpečne pohybovali zmysluplným a cieľavedomým spôsobom, to zna-<br />
mená, že by mali byť schopné prijímať popisy úloh na vysokej úrovni, špecifikovať, čo<br />
od nich užívateľ očakáva a vykonať úlohu bez ďalšieho zásahu človeka.<br />
V súčasnosti existuje viac ako päťdesiat veľkých projektov v doméne humanoidnej<br />
robotiky po celom svete, spolu s mnohými ďalšími projektmi týkajúcimi sa dvojnohej<br />
chôdze. Momentálne sa v tejto oblasti vo svete podľa internetovej stránky<br />
http://androidworld.com/ pracuje na 104 veľkých projektoch. Ich rozloženie podľa<br />
krajín veľmi neprekvapuje: v oblasti androidnej robotiky svetovo jednoznačne vedie Ja-<br />
ponsko, kde má miesto takmer polovica zo všetkých projektov, za ním sa v počte pro-<br />
7 http://www.androidworld.com<br />
27
FEI KKUI<br />
jektov umiestnili Spojené štáty americké a Južná Kórea. Z európskych krajín má zastú-<br />
penie Nemecko, Veľká Británia, Švédsko, Bulharsko, Taliansko a Španielsko.<br />
Obr. 2 Najväčšie projekty androidných robotov na svete podľa<br />
http://www.androidworld.com<br />
Prvý prístup, ako urobiť humanoida inteligentnejším, bola podľa [9] integrácia so-<br />
fistikovaných senzorických systémov, ako je napríklad počítačové videnie, hmatové<br />
vnímanie, laserové skenery a iné senzory. Dnešné senzory sú stále obmedzené čo sa tý-<br />
ka ich interakcií s okolím a prispôsobivosti sa na meniace prostredie. Dynamické zmeny<br />
a nestálosť prostredia sú veľkou výzvou v rozvoji spoľahlivých umelých systémov.<br />
Z druhého uhla pohľadu, navrhovať roboty a systémy, ktoré by sa bez problémov<br />
prispôsobovali svojmu prostrediu, zahŕňa potrebný výskum v rozličných oblastiach:<br />
mechanický návrh robota, tzv. inteligentná mechanika, systémy vnímajúce prostredie,<br />
inteligentné riadenie schopné vysporiadať sa so zložitosťou, multi – objektívne rozho-<br />
dovanie, veľké množstvo dát a taktiež podstatné množstvo heuristických informácií. V<br />
28
FEI KKUI<br />
prípade, keď robot vykonáva úlohu v neznámom prostredí, znalosť nemusí byť dostaču-<br />
júca.<br />
Vo všeobecnosti je spoločným cieľom HR, aby bol robot schopný prispôsobovať<br />
sa prostrediu a získavať nové znalosti počas procesu učenia. Výskum v HR poskytol<br />
riešenia niekoľkých klasických problémov robotiky, teórie riadenia a umelej inteligen-<br />
cie a odhalil rad nových problémov. Výskumníci ako napr. Rodney Brooks a Cynthia<br />
Breazel [3] implementujú do humanoidnej robotiky poznatky z oblastí ako je psycholó-<br />
gia, etológia, teória systémov, filozofia a lingvistika.<br />
Oblasť umelej inteligencie (ďalej UI) sa snaží, aby počítače boli schopné robiť ve-<br />
ci, ktoré, keby vykonávali ľudia, tak by boli považované za prejavy inteligencie.<br />
Cieľom UI podľa Brooksa [3] je:<br />
1) konštrukcia užitočných inteligentných systémov a<br />
2) pochopenie ľudskej inteligencie.<br />
V akademických kruhoch práca v oblasti robotiky ovplyvňuje výskum umelej inte-<br />
ligencie a naopak. Existujú samozrejme viaceré známe techniky, ktoré riešia problémy<br />
inteligentného riadenia v HR. Neurónové siete (ďalej NN), fuzzy logika (ďalej FL) a<br />
evolučné výpočty, ako je genetický algoritmus (ďalej GA), sa zaslúžili o rozvoj inteli-<br />
gentných riadiacich algoritmov. Vďaka ich silným učiacim a kognitívnym schopnos-<br />
tiam, dobrej tolerancii neurčitostí a nepresností a iným vlastnostiam sa uplatňujú<br />
v mnohých aplikáciách pokrokového riadenia <strong>humanoidných</strong> robotov. Taktiež, veľký<br />
význam v rozvoji efektívnych algoritmov majú hybridné techniky ako neuro – fuzzy<br />
systémy a fuzzy – neuro systémy, neuro – genetické algoritmy a fuzzy– genetické algo-<br />
ritmy, ktoré kombinujú vlastnosti jednotlivých spomínaných techník. Každá z nich má<br />
svoje výhody, ale aj nedostatky. Hybridné techniky – ich integrácia a syntéza (symbio-<br />
tická <strong>inteligencia</strong>) sú potrebné na efektívne aplikácie HR, pretože vďaka nim je možné<br />
predísť mnohým nedostatkom jednotlivých prostriedkov UI.<br />
Predchádzajúci výskum UI sa sústreďoval na hľadanie riešení čiastkových prob-<br />
lémov a na poskytovanie nástrojov ako sú napríklad neurónové siete, fuzzy logika, evo-<br />
lučné algoritmy alebo multiagentové systémy. Tento prístup viedol k vývoju mnohých,<br />
29
FEI KKUI<br />
viac či menej úspešných, stratégií riešení. Nasledujúci krok vo výskume UI je integrácia<br />
týchto nástrojov do celého systému, ako je aj robotika, s cieľom realizovať systém, kto-<br />
rý vykazuje črty inteligentného správania.<br />
2.2.1 Fuzzy logika v <strong>humanoidných</strong> <strong>systémoch</strong><br />
Samozrejme, ciest, ktoré vedú do rovnakého cieľa je mnoho. Použitie fuzzy logiky má<br />
množstvo výhod:<br />
(1) fuzzy systém je založený na lingvistických premenných – z toho vyplýva, že<br />
návrh systému, ako aj následne mu porozumieť je jednoduché,<br />
(2) programátor ľahko pridá alebo odoberie pravidlá a sleduje dôsledok, až kým<br />
dosiahne želaný výsledok,<br />
(3) pri modelovaní napríklad emócií a emocionálnych modelov, na rozdiel od kla-<br />
sických prístupov, ktoré sú zamerané na precízne vnútorné modelovanie, fuzzy systém<br />
sa zameriava na dosiahnutie želaného správania, čo je hlavným záujmom v HRI,<br />
správanie,<br />
(4) zmeny nastávajú hladko, výsledkom čoho je prirodzené a životu – podobné<br />
(5) poskytuje vhodné prostriedky na modelovanie a spustenie rozmanitých stavov<br />
robota (napríklad emócií, modelov správania a podobne),<br />
(6) softvér pre fuzzy systém sa implementuje priamo.<br />
Medzi hlavné nevýhody použitia fuzzy systémov patrí:<br />
(1) vysoká výpočtová náročnosť,<br />
a najmä<br />
(2) neschopnosť sa učiť,<br />
preto sa často kombinujú s neurónovými sieťami.<br />
V prílohe A sú uvedené reálne aplikácie fuzzy logiky v modelovaní správania hu-<br />
manoidných robotov.<br />
30
FEI KKUI<br />
2.2.2 Neurónové siete v <strong>humanoidných</strong> <strong>systémoch</strong><br />
Neurónové siete sa osvedčili v syntéze a off–line a on–line adaptácii bipedickej chôdze.<br />
Ďalšia aplikácia NN v humanoidnej robotike je udržiavanie statickej a dynamickej rov-<br />
nováhy počas chôdze a behu najmä v nestálom teréne.<br />
Výhody neurónových sietí by sme mohli zhrnúť do týchto bodov:<br />
1) schopnosť sa učiť,<br />
2) sú všeobecným aproximátorom analytickej funkcie,<br />
3) schopnosť zovšeobecňovať, z čoho vyplýva, že spracovávajú veľké množstvo<br />
dát do redukovaného počtu výstupov,<br />
4) robustnosť voči chybám siete: vysoká redundancia spojení a uzlov, vzájomná<br />
nezávislosť uzlov,<br />
5) schopnosť hľadať suboptimálne riešenia v krátkom čase,<br />
6) schopnosť spracovať veľké množstvo vstupných premenných.<br />
Neurónové siete majú nasledujúce nevýhody:<br />
1) neprehľadnosť vnútorných štruktúr siete,<br />
2) spôsob mapovania je nejasný,<br />
3) nastavovanie parametrov učenia môže spôsobiť problémy,<br />
4) častá nutnosť opätovného preučenia,<br />
5) pomalá konvergencia s nejasným koncom.<br />
Tieto nevýhody sa dajú potlačiť kombináciou NN s inými technikami, vytvárajúc<br />
rôzne typy interakcií jednotlivých prostriedkov UI.<br />
Prvý učiaci sa systém na svete pre humanoidné roboty používajúci NN bol vyvinu-<br />
tý v laboratóriách Fujitsu [5]. Táto technológia je založená na CPG (Central Pattern<br />
Generator) sieťach. CPG oscilátor je sieť neurónov generujúcich rytmickú pohybovú<br />
vzorku. Bipedická chôdza sama tvorí kapitolu výskumu s množstvom aplikácií, časť<br />
ktorých využíva neurónové siete.<br />
31
FEI KKUI<br />
Autori [10] sa venujú interakcii medzi malým humanoidným robotom a<br />
užívateľom, ktorú dosiahli implementáciou dynamického modelu neurónovej siete. Ich<br />
hlavnou motiváciou bolo, aby správanie robota alebo pohybové vzory boli získané<br />
adaptívne prostredníctvom interakcie s používateľom, namiesto generovania preddefi-<br />
novaných pohybov. Ďalej by sa roboty učili správaniu synchrónne s interakciou s užíva-<br />
teľmi. Interakcie by boli podobné páru salsa tanečníkov, ktorí improvizujú a striedajú<br />
jednotlivé tanečné vzory. V podstate ide o nový model učenia imitáciou pomocou reku-<br />
rentnej neurónovej siete. Experimenty vykonávali na malom humanoidnom robotovi<br />
QRIO (SDR– 4X II) od firmy Sony.<br />
2.2.3 Evolučné prístupy v <strong>humanoidných</strong> <strong>systémoch</strong><br />
Evolúcia predstavuje silný nástroj pre riadenie zložitých systémov adaptívnym<br />
spôsobom. Evolučné systémy, ako GA alebo GP sú vhodné pre riadenie zložitých sys-<br />
témov.<br />
Vo svete UI je známe použitie evolučných algoritmov na generovanie trajektórie.<br />
Hlavnou príčinou využitia EA pri návrhu systémov generujúcich bipedický pohyb je ich<br />
implementácia v prípadoch, keď nie je možné vytvoriť kompletný dynamický model<br />
daného systému, alebo je pre praktické použitie príliš zložitý.<br />
Ak sa jedná o akýkoľvek typ návrhu, resp. dizajnu niečoho, pri manuálnom dizaj-<br />
ne výsledný produkt alebo proces môže byť len taký dobrý, ako je fantázia dizajnéra.<br />
GA však umožňujú návrhárom zhodnotiť každý možný spôsob realizácie procesu, ktorý<br />
existuje v rámci prehľadávacieho priestoru. Zatiaľ čo mnohé z týchto riešení budú ne-<br />
praktické (lebo prehľadávací priestor obsahuje riešenia, ktoré sú teoreticky možné, bez<br />
ohľadu na praktickosť), neskoršie ohodnotenie zabezpečí, že budú prehodnotené všet-<br />
ky možné riešenia.<br />
Jedna z markantných výhod evolučných techník je fakt, že sú založené na teórii<br />
vyvíjania optimalizácie ako reakcia na meniace sa prostredie. GA preto predstavujú ná-<br />
stroje na dosiahnutie vysokého stupňa adaptácie.<br />
Hlavný problém aplikácií evolučných techník, ako je GA, v HR predstavuje zvlád-<br />
nutie procesu optimalizácie v reálnom čase.<br />
32
FEI KKUI<br />
2.3 Tanec v humanoidnej robotike<br />
33<br />
Tanec je skrytý jazyk duše<br />
Martha Graham, 1894 – 1991, americká tanečná choreografka<br />
Tanec sa považuje za istý duchovno – umelecký pohybový smer, predstavuje po-<br />
hybovú formu vyjadrenia pocitu, ale v zásade je tanec životný prejav. Je to určitá forma<br />
výrazu, v rámci ktorého sa využívajú rytmické pohyby tela. Prostredníctvom pohybu<br />
človek spoznáva, vyjadruje pocity a komunikuje.<br />
Humanoidné roboty sa, ako je uvedené v 2.1, čoraz viac podobajú na človeka tva-<br />
rom a schopnosťami. Tento vývoj motivuje vedcov navrhovať tancujúce roboty, schop-<br />
né napodobniť zložitosť a štýl ľudských tanečných choreografií. Tancujúce roboty sú<br />
úspešné v spoločenskej oblasti, kde ich využitie vyžaduje interakciu človeka s robotom.<br />
Napriek tomu, že použitie HR v zábavných aplikáciách zaznamenáva rozmach, ta-<br />
nečné predstavenia robotov sú vo veľkej miere reprodukcie dopredu navrhnutých pohy-<br />
bov, ktoré publikum po čase prestanú baviť.<br />
Pokiaľ väčšina aplikácií tanečných robotov chápe tanec ako generovanie pohybu,<br />
niektorí vedci sa zameriavajú na tanec ako na generovanie umeleckého výrazu – naprí-<br />
klad identifikujúc faktory v tanci, ktoré ľudia vnímajú ako pekné. Jeden zo spôsobov<br />
tejto identifikácie je interaktívna evolúcia (ďalej IE), počas ktorej používateľ hodnotí<br />
jednotlivé časti tanečnej choreografie na základe svojho vkusu.<br />
Aucouturier z University of Tokyo [2] rozdelil aplikácie robotického tanca do<br />
troch skupín:<br />
1) Situovaná znalosť (angl. Situated Knowledge): Pohľad na znalosť ako na dy-<br />
namickú reprezentáciu akcií, skôr ako faktov, zahŕňa učenie pochopením<br />
spôsobov ako robiť, cítiť alebo hýbať sa – často pozorovaním akcií iných.<br />
Schopnosť mapovať takéto akcie z jedného tela na druhé je kľúčovým kom-<br />
ponentom inteligencie. Kolektív okolo Katsushiho Ikeuchika [2] ukázal,<br />
akým spôsobom môže robot imitovať ľudského tanečníka adaptovaním po-<br />
hybov do jeho architektúry motorov, ktoré pozoruje.<br />
2) Symbolické uzemnenie/ukotvenie (angl. Symbolic grounding): Pretože tanec<br />
mapuje zvuky na pohyby, načrtáva problém budovania stabilných senzomo-
FEI KKUI<br />
torických vzorov nad rozličnými postupmi. Tetsuya Ogata, Hideki Kozima a<br />
Hiroshi Okuno [2] získali takéto štruktúry pozorovaním okolia. Vyvinuli<br />
systém, ktorý sa učí zvukové aj pohybové znaky simultánne. Týmto spôso-<br />
bom mapovanie odráža súlad v reálnom svete.<br />
3) Spoločenská <strong>inteligencia</strong> (angl. Social Intelligence): Prostredníctvom tanca<br />
je možné študovať spoločenské interakcie a spôsob, akým ich môže telo dať<br />
najavo. Marek Michalowski a Hideki Kozima [2] uvažujú o rytmickej imitá-<br />
cii ako o predpoklade interakcie. Čistá imitácia nie je dostatočná na udržanie<br />
interakcie – je potrebný aj určitý stupeň kreativity.<br />
Existujú pokusy implementácie spoločenskej stránky robota a jeho dynamiky po-<br />
mocou deterministického chaosu [2]. Hlavnou motiváciou je skutočnosť, že spoločen-<br />
sky inteligentný robot by mal rozoznať a vedieť sa vyrovnať so zmenami jeho ľudských<br />
partnerov a konať v závislosti od týchto zmien.<br />
Kolektív [12] s cieľom predísť rozdielom v kinematike človeka a robota, vyvíja<br />
paradigma, nazvanú učenie pozorovaním (angl. LFO: Learning from Observation), kde<br />
robot pozoruje akcie človeka, rozpoznáva, čo človek vykonáva a mapuje rozpoznané<br />
akcie na svoje pohyby – robotické akcie s cieľom napodobniť pohyby človeka. Ich ro-<br />
botický systém zaznamenal úspech, schopný tanca s ľudským profesionálnym taneční-<br />
kom v reálnej rýchlosti.<br />
Obr. 3 Tancujúci robot : učenie pozorovaním od užívateľa<br />
(LFO: learning from observation) podľa [12]<br />
34
FEI KKUI<br />
Vedci z Južnej Kórei (Korea Institute of Science and Technology) [14] vyvinuli<br />
humanoidného robota Mahru so zabudovanou umelou inteligenciou, ktorý je vybavený<br />
rozličnými schopnosťami – okrem iných, dokáže tancovať. Robot má systém na zazna-<br />
menávanie pohybu, ktorý povoľuje napodobňovať akcie človeka ako napríklad mávanie<br />
ramenom.<br />
Obr. 4 Tancujúci Robot Mahru z Južnej Kóreii [14]<br />
SDR– 4X je malý bipedický robot určený pre zábavný priemysel s rozšírenými<br />
schopnosťami pre rozmanitosť pohybových predstavení. Vedci v [2] vyvinuli progra-<br />
mový systém s cieľom jednoducho produkovať kreatívny pohyb, ktorý zahŕňa stabilnú<br />
chôdzu a tanečné kroky synchronizované s hudbou.<br />
Obr. 5 Vývojové prostredie robota SDR– 4X vyvinuté autormi uvádzanými v [2]<br />
Japonskí vedci z Tohoku University [14] navrhli robota, ktorý dokáže viesť člo-<br />
veka v tanci. Kazuhiro Kosuge, Takahiro Takeda a Yasuhisa Hirata zostrojili humano-<br />
idného tanečného partnera, ktorý dynamicky reaguje na sily a činy vykonávané vedením<br />
ich partnera. Vo väčšine koordinačných <strong>systémoch</strong> typu človek– robot, sa roboty pohy-<br />
bujú pasívne vzhľadom k silovým momentom vyvíjaných človekom. Tieto systémy sú<br />
35
FEI KKUI<br />
postačujúce pre jednoduché úlohy, ale keby boli roboty schopné aktívneho pohybu<br />
vzhľadom k ľudským zámerom, informáciám prostredia, znalostiam úlohy a podobne,<br />
realizovali by efektívnejšie koordinačné úlohy. Štúdium takejto aktívnej koordinácie<br />
človeka a robota zamerali na vytvorenie robota, ktorý tancuje s ľudským partnerom.<br />
Obr. 6 Robot ako tancujúci partner vyvinutý na Tohoku University [14]<br />
Každý typ spoločenského tanca (napr. valčík, tango, rumba, atď.) sa skladá<br />
z krokov – sekvencie separovaných pohybových vzorov. Pri spoločenskom tanci muž-<br />
ský partner vedie ženskú partnerku a rozhoduje o nasledujúcom kroku. Ich robotická ta-<br />
nečná partnerka sa správa ako ľudská – odhaduje nasledujúci krok, ktorý jej ľudský<br />
partner zamýšľa vykonať na základe jeho vedenia a realizuje krok v aktívnej koordiná-<br />
cii s ním. Robot má zabudovaný senzor na meranie, akou silou ho vedie človek.<br />
Vo svete existujú viaceré varianty modelovania robotického tanca, pričom nové<br />
prístupy sa čoraz viac zameriavajú na to, aby vývoj tanca nebol len generovanie do-<br />
predu naprogramovaných pohybov, ale istý typ interakcie medzi robotom a užívateľom.<br />
To je aj hlavná myšlienka mojej diplomovej práce.<br />
36
FEI KKUI<br />
Sme schopní veľkých vecí. A nepochybujem, že bytosti,<br />
ktoré nás budú nasledovať, budú schopné ešte väčších.<br />
37<br />
Evolúcia sa s nami nezastavila...<br />
Evolúcia môže pokračovať do nekonečna.<br />
Gene Roddenberry, 1921– 1991, americký scenárista a futurológ<br />
3 Úvod do evolučných výpočtov so zameraním<br />
na interaktívnu evolúciu<br />
3.1 Základné teoretické východiská evolučných výpočtov<br />
„Evolučné výpočty sú celé o hľadaní. Keď používame prehľadávací algoritmus<br />
v počítačovej vede a v umelej inteligencii, definujeme výpočtový problém v medziach<br />
prehľadávacieho priestoru, ktorý môže byť označený ako obrovská kolekcia potenciál-<br />
nych riešení problému. Bežne používaný výraz v tomto kontexte je „optimalizácia“, čo<br />
jednoducho znamená nájdenie „dobrého“. Napríklad, ako prehľadávanie knižnice na<br />
nájdenie knihy, ktorá najlepšie spĺňa naše požiadavky“ [13].<br />
Evolúcia je kontroverzný pojem, vnímaný v mnohých významoch. Niekedy tak-<br />
mer akákoľvek zmena je považovaná za podobu evolúcie a inokedy sa evolúciou nazý-<br />
va len veľmi prísne ohraničený špecifický proces, ktorý má svoje miesto v genetických<br />
<strong>systémoch</strong>, respektíve v biologickej evolúcii.<br />
V kontexte výpočtovej vedy sa na evolúciu možno pozerať dvojakým spôsobom:<br />
1) ako na cieľ, so snahou namodelovať a pochopiť ju a<br />
2) ako na nástroj, slúžiaci na riešenie úloh.<br />
Základné zložky EC sú [4]:<br />
1) prirodzený výber, selekcia: silnejší jedinci s vyššou pravdepodobnosťou prežitia<br />
vstupujú do reprodukčného procesu častejšie, kde schopnosť prežiť sa rovná funkcii<br />
vhodnosti, tzv. fitness;
FEI KKUI<br />
2) náhodný genetický drift: náhodné udalosti ovplyvňujú populáciu v čase (napr.<br />
mutácia genetického materiálu jedinca alebo smrť jedinca pred tým, ako vstúpi do rep-<br />
rodukčného procesu);<br />
3) reprodukčný proces: vznik nových jedincov populácie kombináciou genetické-<br />
ho materiálu rodičovských jedincov.<br />
Genetické operátory sú:<br />
1) Reprodukcia: proces, pri ktorom sú indivíduá kopírované vzhľadom na funk-<br />
ciu vhodnosti (fitness). To znamená, že jedinec s vyššou hodnotou má vyššiu pravdepo-<br />
dobnosť prispieť jedným alebo viacerými potomkami v nasledujúcej generácii, podobne<br />
ako v prírode, kde prežíva silnejší jedinec.<br />
(2) Kríženie: proces, v ktorom novo– reprodukovaní jedinci sú náhodne spájaní<br />
a každý pár si parciálne vymení informáciu.<br />
(3) Mutácia: operácia, pri ktorej sa zmení hodnota niektorého génu na novú ná-<br />
hodnú prípustnú hodnotu.<br />
Obr. 7 Reprodukcia dvoch chromozómov a následná mutácia ich potomka [4]<br />
EC pracuje s populáciou chromozómov, kde v každom z nich je zakódované určité<br />
riešenie problému, vlastnosť, čiže genotyp a vytvorí sa konkrétne riešenie, ktoré pred-<br />
stavuje fenotyp. Možné konkrétne hodnoty daného génu reprezentujú alely. Pre vývoj<br />
procesu je nevyhnutné, aby sa v nových genotypoch vyskytovali variácie alebo mutácie<br />
s istou frekvenciou výskytu.<br />
Evolučné výpočty, respektíve evolučné algoritmy (EA) je spoločné pomenovanie<br />
pre počítačové výpočtové systémy, ktoré riešia danú problematiku, a ktoré používajú<br />
38
FEI KKUI<br />
výpočtové modely evolučných procesov ako kľúčové elementy pri ich návrhu a imple-<br />
mentácii.<br />
Hlavné rozdiely medzi jednotlivými typmi EC sú:<br />
1) v reprezentácii jedincov,<br />
2) v spôsobe ohodnotenia jedincov – výpočtu vhodnosti a<br />
3) v genetických operátoroch.<br />
Pojem evolučné výpočty zastrešuje techniky:<br />
(1) Genetické algoritmy (ďalej GA), ktoré v roku 1975 navrhol Holland<br />
a opísal ako adaptívne správanie základných foriem života, neskôr Goldberg ako nástroj<br />
na riešenie optimalizačných úloh a Beasley ako adaptívne metódy, ktoré môžu byť vyu-<br />
žité na riešenie prehľadávacích a optimalizačných úloh.<br />
Hlavné ciele ich tvorcu, Hollanda, boli: (1) zhrnúť a vysvetliť adaptívne procesy prí-<br />
rodných systémov a (2) navrhnúť umelé systémy, ktoré si ponechávajú dôležité mecha-<br />
nizmy prírodných systémov.<br />
GA pozostáva vo všeobecnosti z nasledujúcich krokov:<br />
1) Náhodné generovanie počiatočnej populácie (v mnohých prípadoch sú už známe<br />
poznatky o riešení, ktoré sa použijú na usmernenie tohto generovania).<br />
2) Hodnotenie jedincov.<br />
3) Test splnenia podmienok (dosiahnutie požadovanej hodnoty fitness alebo stano-<br />
veného počtu generácií):<br />
a) ak sú ukončovacie podmienky splnené, dostávame riešenie,<br />
b) ak nie, cyklus pokračuje ďalej selekciou (výberom) skupín chromozó-<br />
mov do ďalšej generácie.<br />
4) Kríženie a mutácia.<br />
5) Vznik novej generácie a skok na krok (2).<br />
GA sa používajú s neurónovými sieťami a fuzzy logikou na riešenie zložitejších<br />
úloh. Ich veľký úspech podnietil výskumníkov takým spôsobom, že si požičali ďalšie<br />
koncepty z prírody a aplikovali ich v počítačových vedách. GA umožňujú vyhľadávanie<br />
39
FEI KKUI<br />
v enormných priestoroch riešení. Používajú sa aj ako klasifikačné alebo triediace systé-<br />
my a na nájdenie optimálneho vektora parametrov (váh) pre NN.<br />
(2) Genetické programovanie 8 , ktoré vychádza z GA, ale na rozdiel od týchto<br />
algoritmov je reprezentované pomocou štruktúrovaných stromov funkcií namiesto re-<br />
ťazcov bitov. Tie hierarchicky zobrazujú štruktúru genetického reťazca (informácie) a<br />
umožňujú jednoduché a rýchle spravovanie genetických programov (vzorcov).<br />
Koncové uzly v strome patria do koncovej (terminálnej) množiny, ktorá predsta-<br />
vuje množinu možných uzlov tvoriacich listy stromu, ostatné sú vetvy. Terminálna<br />
množina sa skladá z programových vstupov (premenných) a fixných čísel (môže to byť<br />
náhodné číslo) a neterminálna množina obsahuje funkcie a operátory.<br />
Obr. 8 Príklad reprezentácie GP funkcie +(– (0,5),/(PI,*(a,b)))<br />
Programový systém GP môže byť mutovaný vybraním náhodného uzla<br />
a zmenením jeho funkcie alebo hodnoty. Ďalšia možnosť je nahradiť jeho celý „pod-<br />
strom“ náhodnými uzlami. Kríženie je implementované vybraním náhodného „pod-<br />
stromu“ každého rodiča a ich zámenou u potomka. Veľkosť stromu málokedy ostáva<br />
rovnaká po mutácii a krížení.<br />
Ďalšia odlišnosť v porovnaní s GA je, že reťazce sú dynamické (nezávislé od<br />
veľkosti reťazcov a populácie), čo predstavuje podstatnú výhodu.<br />
8 Samozrejme, viacerí autori majú rôzny názor, ktoré techniky pojem evolučné výpočty zastrešuje.<br />
Napríklad podľa Schwefela sa genetické programovanie a učiace klasifikačné systémy oddialili od filozo-<br />
fie evolučných výpočtov.<br />
40
FEI KKUI<br />
(3) Evolučné programovanie, ktoré je možné stručne definovať ako techniku<br />
určenú na prehľadávanie priestoru, kde sa dôraz kladie na operátor mutácie a nezahŕňa<br />
sa rekombinácia (výber je pravdepodobnostný).<br />
(4) Evolučné stratégie, ktoré sú definované ako algoritmy na numerickú opti-<br />
malizáciu, kde je kladený dôraz na mutáciu a zároveň na rekombináciu (výber je deter-<br />
ministický).<br />
(5) Učiace klasifikačné systémy (Learning classifier systems), čo sú učiace<br />
vzory, v ktorých sa agent učí úlohu evolúciou populácií pravidiel a kde je prítomný ge-<br />
netický algoritmus. Konečná populácia klasifikátorov reprezentuje aktuálnu znalosť<br />
systému, kde GA zlepšuje aktuálne riešenie hľadaním lepších klasifikátorov.<br />
3.2 Interaktívna evolúcia<br />
41<br />
Keby medzi všetkými svetmi nebol jeden lepši,<br />
ako tie ostatné, potom by Boh nikdy žiaden nestvoril.<br />
Gottfried Wilhelm von Leibniz<br />
Podľa [13] existujú dva typy cieľových systémov používaných na systémovú op-<br />
timalizáciu:<br />
1) systémy, v ktorých hodnotiace funkcie je možné vyjadriť numericky – alebo<br />
aspoň kvantitatívne a<br />
2) systémy, u ktorých je veľmi ťažké, niekedy nemožné, tieto optimalizačné pa-<br />
rametre špecifikovať, vyjadriť, ako je napríklad ohodnotenie hudby a iných ume-<br />
leckých diel. Kritériá pri takýchto <strong>systémoch</strong> sú subjektívne, to znamená, že sú<br />
závislé od konkrétneho posudzovateľa. Existuje množstvo oblastí, nielen umelec-<br />
ké a estetické, ale aj inžinierske a vzdelávacie, kde výstupy systému závisia od<br />
preferencií, zmyslov, emócií a porozumení človeka. V interaktívnych evolučných<br />
výpočtoch je funkcia vhodnosti nahradená ľudským užívateľom.
FEI KKUI<br />
Obr. 9 Proces GA a IGA [13]<br />
Hideyuki Takagi [13] rozdeľuje definície IEC na:<br />
1) užšia definícia IEC: technológia, ktorá pomocou EC optimalizuje cieľový sys-<br />
tém na základe subjektívnej hodnotiacej funkcie človeka, ktorou je funkcia vhodnosti<br />
pre výstupy daného systému a<br />
2) širšia definícia IEC: technológia, ktorá optimalizuje cieľový systém s použitím<br />
interaktívneho rozhrania medzi človekom a počítačom.<br />
Viacerí vedci sa zhodujú v tom, že technológie, ktoré majú blízko k ľudom, ako je<br />
aj interaktívny evolučný výpočet (ďalej IEC) predstavujú nasledujúci krok vo výpočto-<br />
vých technológiách.<br />
Proces interaktívnej evolúcie je z istého pohľadu možné vykresliť ako:<br />
1) systém, ktorý pripúšťa interaktívnu spoluprácu používateľa a počítača ako spô-<br />
sob produkcie nových výstupov pomocou princípov evolúcie, aj ako.<br />
krásu.<br />
2) systém, ktorý sa učí od používateľa „estetickosti“, ľudskej schopnosti vnímať<br />
Dnešný výskum IEC zahŕňa aj možnosť:<br />
3) systém, ktorý pomáha používateľovi s objavovaním kreativity.<br />
42
FEI KKUI<br />
IEC je optimalizačný nástroj, ktorý využíva kooperáciu človeka a počítača, to<br />
znamená, že v časti cyklu (2) hodnotenie jedincov (viď podkapitolu 3.1) je subjektívne<br />
hodnotenie získané od človeka (funkcia vhodnosti) ako hodnotenie vzdialenosti medzi<br />
vlastnou predstavou a výstupom optimalizačného procesu v psychologickom priestore.<br />
Na druhej strane, IEC pracuje v priestore parametrov a dochádza k premapovaniu medzi<br />
týmito priestormi. IEC hľadá v priestore parametrov globálne optimum (jedná sa skôr o<br />
oblasť, ako konkrétny bod priestoru prehľadávania).<br />
GA teda používa dva separované priestory: prehľadávací priestor a priestor rieše-<br />
ní. Prehľadávací priestor je priestor kódovaných riešení úlohy a priestor riešení je prie-<br />
stor aktuálnych riešení. Kódované riešenia alebo genotypy musia byť zobrazené na ak-<br />
tuálne riešenia alebo fenotypy, predtým ako môže byť hodnotená vhodnosť.<br />
Ľudia majú okrem tradičných znalostí aj množinu vlastností ako sú emócie, intuí-<br />
cia, preferencie, pocity, vnemy a rôzne iné psychologické funkcie, ktoré dostali pome-<br />
novanie KANSEI (z japonského slova 感性工学 kansei kougaku: zmyslové inžinier-<br />
stvo). Slovo KANSEI je interpretované rôzne, a nepoužíva sa len v súvislosti<br />
s dizajnom. Podľa [7] KANSEI nadobúda viac významov (subjektívny efekt, ktorý nie<br />
je možné opísať len slovne; kognitívny koncept, ovplyvnený znalosťou, skúsenosťami a<br />
vlastnosťami jednotlivca; vzájomná interakcia medzi intuíciou a intelektuálnou aktivi-<br />
tou; citlivosť vnímania aspektov ako je krása a tvorba obrazov).<br />
Hodnotiaca funkcia v IEC začleňuje subjektívne ohodnotenie, čiže KANSEI, do<br />
optimalizačného systému. V prípade užívateľa, ktorý navrhuje tanec, tento užívateľ má<br />
vo svojej mysli určitú predstavu, pocit, obraz. K jeho uspokojeniu dochádza, keď finál-<br />
ny produkt splnil jeho predstavu. V umení a dizajne, KANSEI je jeden<br />
z najdôležitejších elementov, pretože jeho výstupom je kreativita. Je dokázané, že sprá-<br />
vanie človeka pri tvorení diela nie je založené na logike, ale na KANSEI.<br />
Protikladom je slovo CHISEI, ktoré znamená inteligenciu, správanie založené na<br />
logickom podklade. KANSEI a CHISEI majú rovnakú silu pri ľudskom konaní. Väčšina<br />
dizajnérov sa doteraz zameriavala na CHISEI, z dôvodu, že KANSEI bol považovaný<br />
za celkom subjektívny fenomén, keďže každý jednotlivec vníma skutočnosti rozdielne.<br />
Masová výroba nebrala do úvahy individuálne preferencie a pocity, čo je príčina, prečo<br />
43
FEI KKUI<br />
dizajn nevnímal KANSEI. Súčasným trendom je, že funkčné požiadavky sú riešené<br />
CHISEIom, čiže logickou znalosťou technológie, ale splnenie emocionálnych potrieb,<br />
vrátane krásy, upriamuje pozornosť na KANSEI.<br />
3.3 Problematika interaktívnych evolučných výpočtov<br />
Inžiniersky prístup pri návrhu softvéru vedie k takému prístupu, kde vnútorná<br />
štruktúra programu je navrhnutá tak, aby bola čo najviac prístupná užívateľovi, čím sa<br />
paradoxne celý softvér stáva menej prístupným, pretože tým sa komplikuje užívateľské<br />
rozhranie. Napríklad, namiesto toho, aby sme manipulovali so vzhľadom obrázku, na-<br />
stavujeme jeho parametre. Často sa používa opačný prístup, kde všetky parametre sú<br />
užívateľovi skryté a užívateľ sa sústredí len na zlepšovanie/dosiahnutie želaného výstu-<br />
pu.<br />
Súčasný výskum interaktívnych evolučných výpočtov je zameraný práve na ich<br />
spriatelenie sa s človekom a na uľahčenie ich vzájomnej spolupráce.<br />
Z pohľadu hľadania spôsobov, ako zlepšiť výkon optimalizácie IGA, sa výskum<br />
orientuje hlavne na riešenie týchto problémov:<br />
(1) redukovanie únavy používateľa (user´s fatigue) a<br />
(2) zabezpečenie rozmanitosti populácie na zlepšenie schopnosti algo-<br />
ritmu bádania.<br />
V momente, keď ľudský operátor prichádza do kontaktu s vytrvalým počítačo-<br />
vým systémom a hodnotí jedincov EC, proces IEC nemôže pokračovať vo veľkom<br />
množstve generácií.<br />
Známy je prístup, keď sa systém učí proces užívateľových subjektívnych hodno-<br />
tení a čiastočne alebo celkom nahrádza užívateľov v ich hodnotení, v niektorých alebo<br />
všetkých hodnotených vhodností jedincov v primeranom čase tak, aby sa redukoval čas<br />
strávený užívateľmi pri hodnotení jedincov. Rozšírený je prístup, v ktorom sa zavádzajú<br />
neurónové siete. Neurónové siete sa učia subjektívne hodnotiť človeka a nahrádzajú<br />
užívateľov v ohodnocovaní fitness jedincov alebo funkcie vhodnosti sa hodnotia pomo-<br />
cou NN v IGA. V rôznych fázach sú zavedené rôzne NN na učenie hodnotení užívate-<br />
ľov a potom NN nahradzuje užívateľa v tomto procese. Známy je aj koncept génových<br />
44
FEI KKUI<br />
častí a hodnotenie celkovej vhodnosti hodnotením jednotlivých vhodností génových<br />
častí.<br />
Alternatívou alebo doplňujúcou metódou na minimalizáciu užívateľskej únavy je<br />
aj zrýchlenie konvergencie EC (zlepšenie schopnosti lokálneho prehľadávania). Ohsaki<br />
a Takagi [13] publikovali metódu, ktorá spočíva v aproximácii prehľadávanej plochy<br />
použitím konvexnej krivky. V niektorých prípadoch postačuje aj možnosť vývoja EC<br />
technológie, ktorá prehľadáva a konverguje s malou populáciou. Taktiež prichádza do<br />
úvahy metóda, v ktorej sa priamo manipuluje s najlepším jedincom, keď sa populácie<br />
vyvinuli do určitej fázy aplikáciou istej hierarchie v populácii.<br />
Dôležitý je aj návrh programového rozhrania tak, aby bolo jednoduché<br />
a atraktívne pre používateľa.<br />
45
FEI KKUI<br />
„Umelec je nádoba emócií, ktoré prichádzajú zo všetkých možných miest:<br />
z oblohy, zo zeme, z útržka papieru, z nestálosti tvaru... „<br />
46<br />
Pablo Picasso, španielsky maliar<br />
4 Návrh systému pre robotický tanec pomocou<br />
interaktívnej evolúcie<br />
4.1 Motivácia<br />
Pri tvorbe robotického tanca je možné použiť rôzne prístupy. Môže to byť naprí-<br />
klad len prevedenie dopredu vygenerovaných, resp. naprogramovaných pohybov. Na<br />
druhej strane sú známe aj prístupy, keď robot pozoruje tanečné kroky od ľudského ale-<br />
bo iného robotického partnera a tým sa ich sám učí. V niektorých aplikáciách sa berie<br />
do úvahy aj hudba – pohyb robota sa generuje v závislosti od hudby alebo naopak, typ<br />
hudby na základe predvedeného pohybu.<br />
V tejto práci je na generovanie pohybu – tanca – humanoidného robota použitý in-<br />
teraktívny genetický algoritmus. Interaktívny prístup v návrhu tanca umožňuje človeku<br />
– užívateľovi ovplyvňovať vývoj tanca, čiže tvoriť tanečnú choreografiu. Chromozómy<br />
predstavujú tanečné kroky, respektíve sekvencie tanečného celku, ktoré evolúciou vy-<br />
tvoria celý tanec. Užívateľ hodnotí jednotlivé sekvencie, to znamená, že definuje fitness<br />
jedincov – vyberá si, akým spôsobom sa tanec uberá.<br />
Hlavným dôvodom výberu interaktívnej evolúcie je fakt, že vhodnosť úseku tanca<br />
určuje človek vstupujúci do procesu hodnotenia. Človek takýmto spôsobom zasahuje do<br />
evolučného prístupu a každý výsledný stav systému, v závislosti od konkrétneho užíva-<br />
teľa, je jedinečný. Závisí od vkusu a preferencií jednotlivého človeka, ktorý prichádza<br />
do interakcie s robotickým systémom. Takýmto spôsobom vznikajú originálne tanečné<br />
kreácie.<br />
4.2 Navrhované riešenie<br />
V tejto podkapitole je uvedený základný koncept navrhovaného riešenia.
FEI KKUI<br />
Obr. 10 Schéma navrhovaného riešenia<br />
Evolučné algoritmy (EA) sú prírodne inšpirované prehľadávacie algoritmy založe-<br />
né na Darwinovej teórii prirodzeného výberu. Na začiatku sa náhodným spôsobom vy-<br />
generuje niekoľko potencionálnych riešení problému – vytvorí sa populácia jedincov.<br />
V navrhovanom systéme počiatočná populácia predstavuje chromozómy, predstavujúce<br />
nastavenia kĺbov robota, ktoré sú náhodne vygenerované z intervalu prípustných hodnôt<br />
rozpätia pre daný kĺb.<br />
V ďalšom kroku sa riešenia – jedince ohodnotia. Túto úlohu vykonáva človek –<br />
používateľ systému. Na jednoduchom GUI ohodnotí predvedené tance robotov na stup-<br />
nici od 1 do 5. Ak sekvencia tanca dostane známku 1, je k nej v evolučnom algoritme<br />
priradená najvyššia fitness – miera vhodnosti alebo úspešnosti daného reťazca alebo je-<br />
dinca. Takto sa porovnajú ohodnotenia všetkých tancov – jedincov. Ako bolo spomína-<br />
né, na ohodnocovanie jedincov sa používa fitness funkcia, resp. funkcia vhodnosti, kto-<br />
rá každému jedincovi priradí fitness – vhodnosť. Fitness je vyjadrenie, ako dobre, alebo<br />
do akej miery, vie daný jedinec problém riešiť. V interaktívnej evolúcii je tento krok<br />
pozmenený oproti klasickému genetickému algoritmu, keďže vhodnosť jedinca určuje<br />
človek.<br />
Aplikovaním genetickým operátorov, ako sú mutácia a kríženie, sa vytvára nová<br />
generácia, v ktorej majú najvyššiu pravdepodobnosť rozmnožovať sa jedince<br />
47
FEI KKUI<br />
s najvyšším ohodnotením. Pri výbere do novej generácie síce majú najvyššiu pravdepo-<br />
dobnosť prežitia najúspešnejšie jedince, ale istú šancu majú aj menej úspešné jedince.<br />
V mojej aplikácii interaktívnej evolúcie robotického tanca človek hodnotí odtan-<br />
covanú časť tanca na siedmich robotoch – porovnáva, ktorý robot na základe jeho vlast-<br />
ných preferencií odtancoval lepšie a ktorý horšie a ohodnotí ich známkami od 1 do 5<br />
(obr. 11). Na hodnotiacej tabuľke je farebne oddelené hodnotenie robotov, v závislosti<br />
od toho, akej farby sú v simulácii, aby užívateľ vedel, ktorého robota hodnotí.<br />
Po ohodnotení tanečnej sekvencie užívateľ stlačí tlačidlo evolution a tým sa spustí<br />
genetický algoritmus, ktorý je bližšie popísaný v podkapitole 4.4.<br />
Obr. 11 GUI, na ktorom užívateľ ohodnotí na základe vlastných preferencií predvedený<br />
tanec robotov na stupnici od 1 (najlepší tanec) do 5 (tanec sa v ďalšom kroku nebude<br />
vôbec brať do úvahy )<br />
Proces končí, keď sa dosiahne želaný výsledok, resp. keď sa užívateľ rozhodne. Po<br />
istom čase evolučný algoritmus konverguje smerom k podobným tancom.<br />
Navrhnutý systém robotického tanca sa skladá z dvoch častí.<br />
1) Prvá časť predstavuje samotný evolučný algoritmus, ktorý je napísaný<br />
v jazyku Python a výstupom z neho je chromozóm obsahujúci nastavenie<br />
jednotlivých kĺbov robota.<br />
48
FEI KKUI<br />
2) Druhá časť riešenia návrhu je realizovaná v simulačnom prostredí We-<br />
bots, ktorého podrobnejší popis je uvedený v podkapitole 4.3. Výsledný<br />
tanec je ukázaný na siedmich robotoch, ktorých sekvencia tanečných kro-<br />
kov predstavuje sedem najlepších jedincov z evolúcie.<br />
Pri navrhovaní systému robotického pohybu sa často využívajú simulátory, na kto-<br />
rých sa navrhovaný systém vyvíja a testuje. Aj keď by bolo experimenty najvhodnejšie<br />
vykonávať priamo na reálnych robotoch, pretože reálny robot je najlepší model samého<br />
seba, ktorému sa simulovaný robot iba blíži, ale z časových, finančných a realizačných<br />
dôvodov sa často experimentuje v simulácii. Vyvíjanie systému robotického tanca<br />
priamo na hardvérovej implementácii by nieslo riziko poškodenia nákladného technic-<br />
kého vybavenia – teda jeden z krokov návrhu systému je vývoj simulátora robotického<br />
prostredia.<br />
Webots po prebehnutí evolúcie, realizovanej v jazyku Python, načíta výstupný sú-<br />
bor s fenotypom. V tomto simulátore je namodelované prostredie so siedmimi robotmi<br />
a každý z nich sa pohybuje podľa svojho načítaného fenotypu. Načítanie súboru<br />
s fenotypom a samotné nastavenie kĺbov počas jednotlivých úsekov tanca je<br />
v simulačnom prostredí riešené v jazyku C++.<br />
Poslednou úlohou pri návrhu systému je hľadanie správnych parametrov evoluč-<br />
ného algoritmu (napríklad miery kríženia a mutácie).<br />
Celkový postup riešenia je možné zhrnúť do týchto bodov:<br />
1. implementácia genetického algoritmu,<br />
2. realizácia simulátora robotov,<br />
3. realizácia experimentov.<br />
49
FEI KKUI<br />
Obr. 12 Navrhnutý systém: evolučný algoritmus vygeneruje súbor s fenotypmi obsahu-<br />
júci informáciu o nastavení jednotlivých kĺbov robotov, ktorý načíta simulátor<br />
a vykoná pohyb<br />
V ďalších častiach práce podrobne popíšem každý z jednotlivých bodov návrhu<br />
riešenia. Robot Nao a simulátor robotov bude popísaný v časti diplomovej práce 4.3.<br />
Popis genetického algoritmu, resp. interaktívnej evolúcie je uvedený v podkapitole 4.4.<br />
Experimenty sú prezentované v kapitole 5.<br />
4.3 Humanoidný robot Nao a simulácia jeho tanca<br />
Cieľom diplomovej práce je, aby človek pomocou interaktívnej evolúcie vytváral<br />
tanečnú choreografiu špeciálne <strong>humanoidných</strong> robotov Naov.<br />
Nao je autonómny a programovateľný humanoidný robot, vytvorený francúzskou<br />
firmou Aldebaran Robotics 9 . Meria 0.57m a váži 4.5 kg. Je schopný chodiť plynulo<br />
rôznymi smermi a dosahuje rýchlosť 3 km/h [6].<br />
9 www.aldebaran-robotics.com/en/<br />
50
FEI KKUI<br />
.<br />
Obr. 13 Robot Nao: reálna podoba<br />
Nao bol navrhnutý tak, aby vyzeral priateľsky pre verejnosť, čo je výsledkom štu-<br />
dentského projektu francúzskej školy Dizajnu a manažmentu Creapol. Aldebaran Robo-<br />
tics podľa [6] momentálne pracuje na vývoji algoritmu, ktorý by bol schopný rozpozná-<br />
vať pohyby ramien. Predpokladá sa, že potom bude Nao schopný opakovať pohyby člo-<br />
veka.<br />
Tabuľka č. 1 Vlastnosti robota Naa: Všeobecné vlastnosti robota, stupne voľnosti, obsahujúce<br />
multimédiá a podporované programovacie jazyky (www.aldebaranrobotics.com)<br />
Všeobecné vlastnosti<br />
Stupne voľnosti<br />
Multimédiá<br />
51<br />
Výška ~ 58 cm<br />
Váha ~ 4.3 kg<br />
Kapacita batérie ~ 90 min (v autonómnom<br />
stave )<br />
Hlava 2<br />
Rameno 5 v každom<br />
Trup 1<br />
Noha 5 v každej<br />
Ruka 1 v každej<br />
Reproduktory 2<br />
Mikrofóny 4
FEI KKUI<br />
52<br />
Videnie 2 kamery<br />
Napojenie na sieť: Wifi, Ethernet<br />
Programovacie jazyky C, C++, URBI, Python<br />
Ako už bolo spomínané, pri generovaní systému pohybu, sa často používajú simu-<br />
látory robota, čo je v podstate 3D model robota, resp. viacerých robotov, ktorý v čo naj-<br />
vyššej miere simuluje fyzikálne správanie reálneho robota.<br />
Medzi známe robotické simulátory patrí napríklad:<br />
– Microsoft Robotics Studio,<br />
– PyRo,<br />
– Choreographe,<br />
– Gostai Urbi Studio a<br />
– Webots.<br />
V tejto práci som pohyb som najprv skúšala implementovať v prostredí Choreog-<br />
raphe, ale nevýhoda tohto simulátora je, že obsahuje iba model jedného robota Naa.<br />
Opis simulátora a ukážky zdrojových kódov sú uvedené v systémovej príručke.<br />
Na tvorbu tanca interaktívnou evolúciou som potrebovala prostredie, ktoré by pri-<br />
púšťalo možnosť zobrazenia viacerých robotov, preto som simuláciu realizovala<br />
v simulátore Webots.
FEI KKUI<br />
Obr. 14 Vývojové prostredie simulátora Choreographe<br />
Webots 10 je vývojové prostredie, ktoré slúži na modelovanie, programovanie a si-<br />
mulovanie mobilných robotov (http://www.cyberbotics.com/products/webots/).<br />
Obr. 15 Vývojové prostredie simulátora Webots<br />
Užívateľ môže pomocou Webotsu navrhnúť zložité robotické prostredia, s jedným<br />
alebo viacerými, podobnými alebo odlišnými robotmi. Vlastnosti každého objektu, ako<br />
je tvar, farba, textúra, hmotnosť, trenie, atď. sú vybrané užívateľom. Každého robota je<br />
možné vybaviť rôznymi snímačmi a akčnými členmi. Webots používa viac ako 650<br />
univerzít a výskumných centier vo svete.<br />
Spracovanie simulácie robotického tanca v prostredí Webots obnáša, ako je pre<br />
všeobecný prípad znázornené na obrázku 16., konkrétne pre navrhovaný systém tieto<br />
kroky:<br />
1) navrhnúť vlastný svet – prostredie so siedmimi robotmi,<br />
2) program v jazyku C++, kde je riešené načítanie súboru vyprodukovaného evo-<br />
lučným algoritmom a<br />
3) následne na základe načítaného súboru vykonanie samotného tanca – simulá-<br />
cia a prípadne v budúcnosti aj:<br />
4) transfer na reálne roboty.<br />
10 www.cyberbotics.com/products/webots/<br />
53
FEI KKUI<br />
Obr. 16 Kroky práce so simulátorom Webots: model, program, simulácia a transfer na<br />
reálne roboty (www.cyberbotics.com/products/webots/)<br />
Simulátor má vlastný „programovací jazyk“ na zadefinovanie prostredia – tzv.<br />
sveta – je to súbor .wbt na CD. Algoritmus návrhu modelu zhrniem do nasledujúcich<br />
krokov:<br />
1) Nastavenie pohľadu – pozície a orientácie osí x, y a stupňov z pohľadu užívateľa.<br />
2) Nastavenie pozadia – farby a jednotlivých svetiel dopadajúcich na model.<br />
3) Vytvorenie modelov jednotlivých robotov.<br />
Výsledný model sveta je znázornený na obrázku 17.<br />
Obr. 17 Zhotovené prostredie vo Webotsi na simuláciu evolúcie robotického tanca<br />
siedmich robotov, ktorí sú odlíšení farbou<br />
Roboty si načítajú svoje súbory, ktoré sú výstupom evolučného algoritmu a na<br />
základe nich vykonajú pohyb.<br />
54
FEI KKUI<br />
Nao má 25 stupňov voľnosti. Na obrázkoch č. 18 a 19 je znázornená jeho kine-<br />
matika s prehľadom všetkých kĺbov, ktoré je možné otáčať alebo inak uviesť do pohy-<br />
bu:<br />
Obr. 18 Kinematika robota Nao: 25 stupňov voľnosti [6]<br />
Obr. 19 Kinematika robota Nao znázornená na jeho „kostre“ [6]<br />
Pri programovaní je dôležité dbať na prípustné rozpätie každého kĺbu robota<br />
Naa, ako je uvedené v tabuľke 2:<br />
55
FEI KKUI<br />
Tabuľka č. 2 Technické parametre robota Naa: kĺby a ich rozpätie v stupňoch<br />
Časť Možný pohyb (os) Rozsah (v stupňoch)<br />
A.<br />
Hlava<br />
B.<br />
Ľavá<br />
ruka<br />
C.<br />
Ľavá<br />
noha<br />
D.<br />
Pravá<br />
noha<br />
E.<br />
Pravá<br />
1. Otočenie hlavy (zakrútenie) (Z) – 120 / 120<br />
2. Sklon hlavy (dopredu a dozadu) (Y) – 39 / 30<br />
3. Sklon ramena (dopredu a dozadu) (Y) – 120 / 120<br />
4. Naklonenie ramena (naľavo a doprava) (Z) 0 / 95<br />
5. Naklonenie lakťa (zakrútenie) (X) – 90 / 0<br />
6. Otočenie lakťa (Z) – 120 / 120<br />
7. Otočenie zápästia (X) – 105 / 105<br />
8. Dlaň (otvorenie– zatvorenie) otvorená/zatvorená<br />
9. Otočenie bedra (vykrútenie) (Z) – 44 / 68<br />
10. Sklon bedrového kĺbu (dopredu a dozadu) (Y) – 104.5 / 28.5<br />
11. Naklonenie bedra (naľavo a doprava) (X) – 25 / 45<br />
12. Sklon kolena (Y) – 5 / 125<br />
13. Sklon členka (dopredu a dozadu) (Y) – 70.5 / 54<br />
14. Naklonenie členka (naľavo a doprava) (X) – 45 / 25<br />
15. Otočenie bedra (vykrútenie) (Z) – 68 / 44<br />
16. Sklon bedrového kĺbu (dopredu a dozadu) (Y) – 104.5 / 28.5<br />
17. Naklonenie bedra (naľavo a doprava) (X) – 45 / 25<br />
18. Sklon kolena (Y) – 5 / 125<br />
19. Sklon členka (dopredu a dozadu) (Y) – 70.5 / 54<br />
20. Naklonenie členka (naľavo a doprava) (X) – 25 / 45<br />
21. Sklon ramena (dopredu a dozadu) (Y) – 120 / 120<br />
22. Naklonenie ramena (naľavo a doprava) (Z) – 95 / 0<br />
56
FEI KKUI<br />
ruka 23. Naklonenie lakťa (zakrútenie) (X) 0 / 90<br />
24. Otočenie lakťa (Z) – 120 / 120<br />
25. Otočenie zápästia (X) – 105 / 105<br />
26. Dlaň (otvorenie– zatvorenie) otvorená/zatvorená<br />
4.4 Implementácia genetického algoritmu<br />
57<br />
Tí, ktorí sú inšpirovaní iným modelom ako Prírodou,<br />
vládnucou všetkým pánom, márne sa snažia.<br />
Leonardo Da Vinci<br />
Keby sme mali vystihnúť hlavnú charakteristiku GA, za najdôležitejšiu myšlienku<br />
by sme asi zvolili, že pracujú s populáciou viacerých riešení, kde pôsobením genetic-<br />
kých operácií kríženia a mutácie priebežne vznikajú úspešnejšie a menej úspešné rieše-<br />
nia – pričom úspešné, čiže lepšie riešenia majú väčšiu šancu byť vybrané, postupovať v<br />
evolúcii ďalej a odovzdávať svoje vlastnosti ďalším generáciám, na úkor menej úspeš-<br />
ných jedincov, ktoré zanikajú [14].<br />
Cyklus GA sa začína množinou riešení, ktoré sa nazývajú populácie. Riešenie je<br />
reprezentované chromozómom. Veľkosť populácie je väčšinou zachovávaná v každej<br />
generácii. Vhodnosť každého chromozómu sa ohodnocuje a potom sa vyberajú chromo-<br />
zómy pre budúce generácie podľa ich fitness hodnoty. Niektoré z vybraných chromo-<br />
zómov sa náhodne krížia a produkujú potomstvo. Pri tvorbe potomstva môže dôjsť<br />
k náhodnej mutácii jedinca.<br />
Vzhľadom k tomu, že chromozómy s vysokou hodnotou fitness majú vysokú<br />
pravdepodobnosť, že budú vybrané do ďalšej generácie, chromozómy novej generácie<br />
majú spravidla vyššiu priemernú fitness ako staršie generácie (čo ale nemusí platiť<br />
vždy). Proces evolúcie sa opakuje až pokiaľ je splnená koncová podmienka.<br />
Na obrázku č. 20 je schéma cyklu krokov genetického algoritmu.
FEI KKUI<br />
Obr. 20 Genetický algoritmus systému, ktorý bol realizovaný v jazyku v Python:<br />
schéma jednotlivých časti algoritmu<br />
Na implementáciu genetického algoritmu bol v navrhovanom systéme použitý<br />
programovací jazyk Python z niekoľkých dôvodov. Ide o interpretovaný, interaktívny,<br />
objektovo–orientovaný a dynamicky napísaný programovací jazyk. Vo väčšine prípa-<br />
dov sú chromozómy vyjadrené ako zoznamy alebo reťazce (stringy). Takže väčšinou sú<br />
operácie v GA operáciami na zoznamoch alebo reťazcoch. Python je ideálny jazyk pre<br />
implementáciu genetických algoritmov, pretože je flexibilný, expresívny a dobre čita-<br />
teľný. Podporuje viac programovacích paradigiem – ako napríklad možné použitie pro-<br />
cedurálneho, funkčného a objektovo–orientovaného programovania – záleží od úlohy,<br />
pre ktorú možnosť sa programátor rozhodne. Pri GA sa najčastejšie používa funkcionál-<br />
ne programovanie, pretože chromozómy sú vyjadrené ako zoznamy alebo reťazce.<br />
Niektoré výhody jazyka Python sú:<br />
1) elegantná syntax,<br />
2) ľahko sa učí,<br />
3) vhodný na veľké projekty, ako aj na vzdelávacie účely,<br />
4) program nepotrebuje kompiláciu, resp. vytvorenie makefilu, takže progra-<br />
movanie je rýchle a<br />
5) debugovanie je ľahké.<br />
V systémovej príručke sú uvedené ostatné výhody.<br />
58
FEI KKUI<br />
4.4.1 Chromozóm<br />
Jedinci populácie sú reprezentovaní chromozómami, čo sú lineárne reťazce symbolov.<br />
Chromozóm je každé riešenie úlohy a v genetickom algoritme je tvorené binárnym re-<br />
ťazcom o danej dĺžke, ktorá je väčšinou, ako aj v navrhnutom systéme, rovnaká pre<br />
všetky chromozómy danej populácie.<br />
Populácia je potom konečná množina chromozómov:<br />
P ={x1, x2, ..., xp }<br />
{ , , , ,... }<br />
x ∈ α β χ δ<br />
Každý chromozóm populácie je ohodnotený pozitívnym reálnym číslom, ktoré sa<br />
nazýva fitness, vhodnosť alebo sila.<br />
Pre spresnenie pojmov ich zhrniem:<br />
f :P → R+<br />
– Chromozóm, niekedy nazývaný jedinec, reprezentuje genotyp organizmu.<br />
– Fenotyp je súhrn všetkých vonkajších znakov a vlastností jedinca, čiže je to<br />
samotná realizácia genotypu.<br />
Vzájomný vzťah medzi genotypom, fenotypom a fitness by mohol byť reprezen-<br />
tovaný postupnosťou dvoch zobrazení:<br />
59<br />
n<br />
[ 0, )<br />
G fenotypF fitness ∞<br />
uuuur uuuur<br />
V navrhovanom systéme fenotyp predstavujú samotné predvedené kroky sekven-<br />
cie tanečného pohybu. Robot Nao má 25 „motorov“, stupňov voľnosti, ktoré sa môžu<br />
nejakým spôsobom nastavovať, meniť a pomocou ich zmeny vznikajú rôzne pozície,<br />
v konečnom dôsledku pohyb.<br />
Keby sme pracovali so všetkými a nastavovali do jednej polohy, tak by chromo-<br />
zóm v genetickom algoritme mal dĺžku 25 „génov“. Jednotlivé kĺby a ich rozpätie v uh-<br />
loch je uvedené v tabuľke 2. Ak by sme uvažovali o prístupe, kde by sme menili jednu<br />
polohu kĺbu do druhej, chromozóm by bol dvakrát taký dlhý.<br />
Gén v chromozóme teda predstavuje nastavenie kĺbu. Keďže kĺby u robota Naa<br />
majú rozličné uhlové rozpätia, je potrebné ich normalizovať. V jazyku Python normali-<br />
zácia vyzerá nasledovne:<br />
parents[i][j] = normalize(chromosome[i][j],– 120,120,0.0,1.0)
FEI KKUI<br />
Popis konkrétnych častí fenotypu je uvedený pri experimentoch v kapitole 5.<br />
4.4.2 Meranie vhodnosti<br />
Spolu: 20 bitov<br />
A: 1. pozícia kĺbov hlavy<br />
B: 1. pozícia kĺbov ľavej ruky<br />
C: 1. pozícia kĺbov pravej ruky<br />
D: 2. pozícia kĺbov hlavy<br />
E: 2. pozícia kĺbov ľavej ruky<br />
F: 2. pozícia kĺbov pravej ruky<br />
Obr. 21 Kódovanie chromozómu<br />
Pri používaní EA meranie fitness predstavuje ohodnocovanie jednotlivých jedincov, to<br />
znamená, že meraním vhodností ovplyvňujeme celý výsledok algoritmu. V navrhova-<br />
nom systéme (ako bolo už spomínané), človek hodnotí tance predvedené robotmi, čiže<br />
im priradzuje fitness.<br />
Obr. 22 Prostredie navrhovaného systému, v ktorom používateľ priradzuje fitness jed-<br />
notlivým tancom robotov<br />
60
FEI KKUI<br />
4.4.3 Selekcia<br />
Selekcia je výber rodičov, ktorí produkujú potomkov – teda jedincov, ktorí vstupujú do<br />
reprodukcie. Je to šanca na reprodukciu (šanca reprodukcie) spojená s vhodnosťou je-<br />
dinca. Jedinec s vyššou vhodnosťou (lepšie riešenie) by mal mať rovnakú alebo väčšiu<br />
šancu ako jedinec s menšou vhodnosťou.<br />
Vo všeobecnosti je schéma selekcie:<br />
Obr. 23 Dva kroky vo všeobecnej schéme selekcie<br />
Tri základné typy vzorkovania sú: 1) založené na očakávaných hodnotách – ore-<br />
zanie, 2) turnaje a 3) náhodný výber.<br />
Ako selekčná metóda bola v systéme použitá metóda binárny turnaj, pri ktorej sa<br />
náhodným spôsobom vyberú dvaja jedinci z populácie, budú medzi sebou súťažiť, pri-<br />
čom ide o súťaž rodičov.<br />
Elitizmus znamená, že najlepšie riešenie populácie sa automaticky bez akejkoľ-<br />
vek zmeny prenáša do novej generácie.<br />
4.4.4 Genetické operátory<br />
Genetické operátory sú prostriedky, ktoré zabezpečujú reprodukciu – ich aplikáciou<br />
vznikajú potomkovia.<br />
V systéme sa pracuje s dvoma genetickými operátormi:<br />
1) 1 rodič (asexuálny) – mutácia a<br />
2) 2 rodičia (sexuálny) – kríženie.<br />
Premapovanie vhodnosti<br />
Vzorkovanie<br />
Pri krížení sa z dvoch jedincov vytvorí nový jedinec. Pri binárnej reprezentácii je-<br />
dinca sú najpoužívanejšie: 1) jednobodové kríženie, 2) dvojbodové kríženie, 3) n–<br />
bodové kríženie a 4) uniformné kríženie, ktoré bolo v navrhovanom systéme zvolené.<br />
61
FEI KKUI<br />
V tomto type kríženia sa generuje maska, ktorú predstavuje reťazec rovnakej dĺžky ako<br />
je dĺžka jedincov. Na každom mieste masky sa náhodne vygeneruje hodnota 0 alebo 1<br />
a určí sa, že v prípade, ak je na mieste v maske 0, vyberie sa do potomka hodnota z pr-<br />
vého jedinca a keď 1, z druhého jedinca.<br />
Obr. 24 Schéma uniformného kríženia<br />
Pri asexuálnych genetických operátoroch je na vytvorenie nového jedinca potrebný<br />
len jeden jedinec. Mutácia sa urobí na každom potomkovi zvlášť po krížení. Všetky gé-<br />
ny sú s nízkou pravdepodobnosťou náhodne pozmenené – inak povedané, mutácia mení<br />
jedinca a vytvára nového a vždy vytvára nový genetický materiál. Mutácia zabezpeču-<br />
je, aby žiaden bod priestoru riešení nemal nulovú pravdepodobnosť prehľadania. Miera<br />
pravdepodobností kríženia a mutácie je analyzovaná v kapitole 5.<br />
Nastaveniu parametrov evolúcie sa bližšie venuje nasledujúca kapitola.<br />
62
FEI KKUI<br />
Ak nenájdeme nič vznešené, aspoň by sme mali nájsť niečo nové.<br />
63<br />
Voltaire, Candide<br />
5 Realizácia demonštračných experimentov na<br />
vyvíjanom systéme<br />
5.1 Návrh experimentov<br />
Na úvod zhrniem parametre genetického algoritmu ktoré boli použité<br />
v jednotlivých experimentoch:<br />
1) Veľkosť populácie.................................................... 7<br />
(keďže je 7 robotov, na ktorých sa realizuje tanec)<br />
Počiatočné populácie môžu byť jednoducho predefinované pomocou nástrojov<br />
mutácie a kríženia, napríklad jedinci sa radikálne zmenia nastavením miery mutácie na<br />
vysokú hodnotu. Hoci len mutácia v genotype v malej miere môže spôsobiť obrovské<br />
zmeny vo fenotype.<br />
2) Kríženie jedinca ....každý jedinec podľa náhodne vygenerovanej masky<br />
Kríženie je veľmi nápomocné v priebehu prvých generácií, ale viac škodiace, ako<br />
nápomocné v neskorších generáciách, pretože najlepšie chromozómy sa časom stávajú<br />
veľmi podobnými. Keď sa potomok stáva najlepším jedincom, existuje veľká pravde-<br />
podobnosť, že jeho genotyp pochádza z jedinca, ktorý bol v predchádzajúcej generácii<br />
najlepší, takže sa budú veľmi málo odlišovať a kríženie má v tomto prípade minimálny<br />
vplyv.<br />
3) Pravdepodobnosť mutácie...............................................................80%,<br />
ale len v malom okolí génu (2 – 10%)<br />
Malá miera mutácie znamená, že existuje malá šanca, že fenotyp bude zmenený.
FEI KKUI<br />
4) Veľkosť turnaja........................................................... 2 (binárny turnaj)<br />
5) Dĺžka chromozómu............ závisí od počtu kĺbov, ktoré nastavujeme<br />
Ak neuvažujeme o pohybe nôh, je to 20 bitov.<br />
Na ilustráciu experimentov uvádzam obrázky, znázorňujúce stav tanca<br />
v jednotlivých generáciách evolúcie. Inicializačná poloha robotov je znázornená na ob-<br />
rázku 25.:<br />
Obr. 25 Inicializačná poloha robotov<br />
Úlohou používateľa je spustiť evolučný algoritmus a simulačné prostredie We-<br />
bots, v ktorom sleduje tanečné sekvencie robotov. Po odtancovaní jednej časti tanca<br />
hodnotí príslušných robotov na vytvorenom GUI a evolučný algoritmus vytvorí novú<br />
populáciu.<br />
Po dokončení simulácie tanca sa po každom kroku evolúcie v konzolovom okne<br />
vypíše, že jednotlivé roboty ukončili pohyb (v angl. controller has terminated), ako je<br />
znázornené na obrázku 26.<br />
64
FEI KKUI<br />
Obr. 26 Po dokončení simulácie tanca sa po každom kroku evolúcie v konzolovom ok-<br />
ne vypíše, že jednotlivé roboty ukončili pohyb<br />
V nasledujúcich experimentoch sú uvedené výsledky pri generovaní robotického<br />
tanca robotov. Ich výsledkom je konečný tanec, ktorý sa dosiahol hodnotením jednotli-<br />
vých častí tancov užívateľmi.<br />
5.2 Experimentálne výsledky generovania robotického tanca<br />
5.2.1 Časti fenotypu<br />
Pozorovať ako tancujeme je počúvať, čo hovoria naše srdcia.<br />
65<br />
Indiánske príslovie<br />
Dĺžka fenotypu pri tomto tanci je 20. Neuvažujeme o nohách robota a pracuje sa<br />
len s jeho hornou časťou: s hlavou a rukami. Fenotyp robota je napríklad:<br />
[62, -33, -68, 72, -88, -37, -42, -57, 2, 63, -79, -31, 94, 17, -101, -83, -21, -20, 75, 72]<br />
Tieto čísla v tomto tanci predstavujú nastavenie týchto kĺbov (inak povedané serv<br />
alebo motorov) robota v poradí ako je uvedené.
FEI KKUI<br />
1. Pozícia kĺbu HeadYaw<br />
1. Pozícia kĺbu HeadPitch<br />
1. Pozícia kĺbu leftShoulderPitch<br />
1. Pozícia kĺbu leftShoulderRoll<br />
1. Pozícia kĺbu rightShoulderRoll<br />
1. Pozícia kĺbu rightShoulderRoll<br />
1. Pozícia kĺbu leftElbowYaw<br />
1. Pozícia kĺbu rightElbowYaw<br />
1. Pozícia kĺbu leftElbowRoll<br />
Obr. 27 Bity fenotypu, ktoré predstavujú nastavenie daných kĺbov robota v stupňoch<br />
5.2.2 Hodnotenie subjektu č. 1 a evolúcia fenotypov<br />
Fenotyp č. 1<br />
Fenotyp č. 2<br />
Fenotyp č. 3<br />
Fenotyp č. 4<br />
Fenotyp č. 5<br />
Fenotyp č. 6<br />
Fenotyp č. 7<br />
66<br />
1. Pozícia kĺbu rightElbowRoll<br />
2. Pozícia kĺbu HeadYaw<br />
2. Pozícia kĺbu HeadPitch<br />
2. Pozícia kĺbu leftShoulderPitch<br />
2. Pozícia kĺbu leftShoulderRoll<br />
Tabuľka č. 3.: Nultá generácia hodnotiteľa č. 1.<br />
2. Pozícia kĺbu rightShoulderRoll<br />
2. Pozícia kĺbu rightShoulderRoll<br />
2. Pozícia kĺbu leftElbowYaw<br />
2. Pozícia kĺbu rightElbowYaw<br />
Nultá generácia Známka<br />
120,38,-33,30,15,-72,-45,-53,18,22,-97,-5,-43,30,65,-11,21,-45,85,32<br />
-49,-22,67,41,-32,-72,-89,-95,-120,72,-54,-13,-102,16,-27,-58,-25,-91,-53,16<br />
-90,0,7,74,-7,0,72,-20,-54,46,77,18,10,94,4,-6,61,-44,-120,78<br />
-60,-10,-39,47,-55,-2,-81,-17,86,45,63,37,-33,28,-78,-36,-26,-45,101,45<br />
-67,39,-80,44,-5,-42,-40,-31,100,52,19,31,-42,27,-58,0,-30,-42,-18,18<br />
119,7,-82,84,-67,-34,-56,-82,-92,49,3,5,34,80,82,-90,21,-26,114,59<br />
57,-7,-53,64,-44,-1,-87,-11,-80,66,66,41,-23,21,-14,-46,-45,-58,90,45<br />
1<br />
2<br />
4<br />
4<br />
2<br />
5<br />
3<br />
2. Pozícia kĺbu leftElbowRoll<br />
2. Pozícia kĺbu rightElbowRoll
FEI KKUI<br />
Fenotyp č. 1<br />
Fenotyp č. 2<br />
Fenotyp č. 3<br />
Fenotyp č. 4<br />
Fenotyp č. 5<br />
Fenotyp č. 6<br />
Fenotyp č. 7<br />
Fenotyp č. 1<br />
Fenotyp č. 2<br />
Fenotyp č. 3<br />
Fenotyp č. 4<br />
Fenotyp č. 5<br />
Fenotyp č. 6<br />
Fenotyp č. 7<br />
Tabuľka č. 4.: Prvá generácia hodnotiteľa č. 1.<br />
Prvá generácia Známka<br />
31,28,49,15,-38,-21,113,-55,13,84,94,39,-43,25,-98,-58,101,-19,77,5<br />
46,10,70,22,16,-34,91,-64,19,63,112,45,-33,23,-89,-67,116,-21,52,2<br />
31,28,49,15,-38,-21,113,-55,13,84,94,39,-43,25,-98,-58,101,-19,77,5<br />
48,-20,-65,23,18,-30,103,-55,45,67,115,-23,-35,13,-87,-2,115,-58,63,1<br />
36,-11,16,89,109,-77,61,-7,111,64,92,-14,51,81,-63,-21,83,-20,-36,0<br />
101,23,-32,47,120,-23,9,-5,-85,29,-108,21,-80,29,-78,-58,-47,-27,-54,59<br />
106,41,-46,29,-61,-11,12,-86,-5,79,83,0,110,73,26,-19,-114,-74,-6,21<br />
Tabuľka č. 5.: Druhá generácia hodnotiteľa č. 1.<br />
Druhá generácia Známka<br />
31,28,49,15,-38,-21,113,-55,13,84,94,39,-43,25,-98,-58,101,-19,77,5<br />
46,10,70,22,16,-34,91,-64,19,63,112,45,-33,23,-89,-67,116,-21,52,2<br />
31,28,49,15,-38,-21,113,-55,13,84,94,39,-43,25,-98,-58,101,-19,77,5<br />
48,-20,-65,23,18,-30,103,-55,45,67,115,-23,-35,13,-87,-2,115,-58,63,1<br />
36,-11,16,89,109,-77,61,-7,111,64,92,-14,51,81,-63,-21,83,-20,-36,0<br />
101,23,-32,47,120,-23,9,-5,-85,29,-108,21,-80,29,-78,-58,-47,-27,-54,59<br />
106,41,-46,29,-61,-11,12,-86,-5,79,83,0,110,73,26,-19,-114,-74,-6,21<br />
67<br />
2<br />
3<br />
4<br />
2<br />
4<br />
5<br />
5<br />
2<br />
3<br />
4<br />
2<br />
4<br />
5<br />
5
FEI KKUI<br />
Fenotyp č. 1<br />
Fenotyp č. 2<br />
Fenotyp č. 3<br />
Fenotyp č. 4<br />
Fenotyp č. 5<br />
Fenotyp č. 6<br />
Fenotyp č. 7<br />
Fenotyp č. 1<br />
Fenotyp č. 2<br />
Fenotyp č. 3<br />
Fenotyp č. 4<br />
Fenotyp č. 5<br />
Fenotyp č. 6<br />
Fenotyp č. 7<br />
Tabuľka č. 6.: Tretia generácia hodnotiteľa č. 1.<br />
Tretia generácia Známka<br />
41,-13,-58,24,19,-33,73,-60,49,70,111,-23,-19,27,-95,-3,120,-19,74,1<br />
26,16,36,5,114,-20,117,-59,-10,64,100,41,30,72,-70,-59,99,-27,65,1<br />
70,14,51,22,7,-30,89,-54,11,53,120,35,-33,16,-92,-63,106,-22,46,4<br />
99,14,-40,45,108,-28,11,-11,-90,30,-93,27,-82,25,-70,-56,-36,-26,-58,55<br />
109,37,-24,30,-48,-9,30,-88,-1,76,95,7,120,79,38,-11,-105,-76,-28,22<br />
30,32,31,18,-32,-21,119,-54,26,88,112,37,-21,20,-83,-53,94,-21,89,8<br />
109,37,-24,30,-48,-9,30,-88,-1,76,95,7,120,79,38,-11,-105,-76,-28,22<br />
Tabuľka č. 7.: Štvrtá generácia hodnotiteľa č. 1.<br />
Štvrtá generácia Známka<br />
31,28,49,15,-38,-21,113,-55,13,84,94,39,-43,25,-98,-58,101,-19,77,5<br />
46,10,70,22,16,-34,91,-64,19,63,112,45,-33,23,-89,-67,116,-21,52,2<br />
31,28,49,15,-38,-21,113,-55,13,84,94,39,-43,25,-98,-58,101,-19,77,5<br />
48,-20,-65,23,18,-30,103,-55,45,67,115,-23,-35,13,-87,-2,115,-58,63,1<br />
36,-11,16,89,109,-77,61,-7,111,64,92,-14,51,81,-63,-21,83,-20,-36,0<br />
101,23,-32,47,120,-23,9,-5,-85,29,-108,21,-80,29,-78,-58,-47,-27,-54,59<br />
106,41,-46,29,-61,-11,12,-86,-5,79,83,0,110,73,26,-19,-114,-74,-6,21<br />
68<br />
2<br />
3<br />
4<br />
2<br />
4<br />
5<br />
5<br />
1<br />
3<br />
3<br />
2<br />
3<br />
5<br />
5
FEI KKUI<br />
Fenotyp č. 1<br />
Fenotyp č. 2<br />
Fenotyp č. 3<br />
Fenotyp č. 4<br />
Fenotyp č. 5<br />
Fenotyp č. 6<br />
Fenotyp č. 7<br />
Fenotyp č. 1<br />
Fenotyp č. 2<br />
Fenotyp č. 3<br />
Fenotyp č. 4<br />
Fenotyp č. 5<br />
Fenotyp č. 6<br />
Fenotyp č. 7<br />
Tabuľka č. 8.: Piata generácia hodnotiteľa č. 1.<br />
Piata generácia Známka<br />
50,-2,-70,29,36,-26,90,-64,49,60,96,-20,-5,30,-91,-3,105,-13,65,0<br />
30,21,37,3,116,-17,105,-61,-6,60,89,42,21,69,-64,-55,95,-26,65,0<br />
59,14,60,23,-3,-34,73,-64,38,66,109,36,-27,28,-86,-3,96,-24,45,3<br />
30,32,31,18,108,-28,119,-54,-90,88,-93,28,-21,20,-83,-53,-36,-26,89,8<br />
50,-2,-70,29,36,-26,90,-64,49,60,96,-20,-5,30,-91,-3,105,-13,65,0<br />
50,-2,-70,29,36,-26,90,-64,49,60,96,-20,-5,30,-91,-3,105,-13,65,0<br />
30,21,37,3,116,-17,105,-61,-6,60,89,42,21,69,-64,-55,95,-26,65,0<br />
Tabuľka č. 9.: Šiesta generácia hodnotiteľa č. 1.<br />
Šiesta generácia Známka<br />
37,0,-78,37,59,-27,98,-65,48,62,73,-16,-2,32,-120,-3,120,-10,74,4<br />
10,33,11,10,120,-31,101,-54,-85,87,-88,27,-37,11,-76,-39,-40,-21,69,3<br />
10,33,11,10,120,-31,101,-54,-85,87,-88,27,-37,11,-76,-39,-40,-21,69,3<br />
43,-1,-69,30,42,-27,83,-63,35,66,97,-19,-11,35,-88,-3,111,-12,70,0<br />
23,24,43,7,114,-19,104,-65,-9,61,78,39,22,65,-71,-58,101,-28,64,0<br />
40,32,26,5,110,-18,114,-58,-17,58,-100,26,-31,17,-62,-54,89,-25,61,11<br />
25,19,45,3,106,-16,98,-56,-1,60,82,44,22,72,-70,-58,95,-21,70,0<br />
69<br />
5<br />
1<br />
2<br />
2<br />
5<br />
5<br />
2<br />
2<br />
5<br />
4<br />
5<br />
1<br />
3<br />
1
FEI KKUI<br />
Fenotyp č. 1<br />
Fenotyp č. 2<br />
Fenotyp č. 3<br />
Fenotyp č. 4<br />
Fenotyp č. 5<br />
Fenotyp č. 6<br />
Fenotyp č. 7<br />
Fenotyp č. 1<br />
Fenotyp č. 2<br />
Fenotyp č. 3<br />
Fenotyp č. 4<br />
Fenotyp č. 5<br />
Fenotyp č. 6<br />
Fenotyp č. 7<br />
Tabuľka č. 10.: Siedma generácia hodnotiteľa č. 1.<br />
Siedma generácia Známka<br />
37,34,8,0,108,-16,120,-62,4,62,-92,36,-2,25,-70,-52,98,-24,82,11<br />
-2,29,53,10,93,-19,82,-60,-9,65,66,39,23,67,-79,-61,94,-21,64,0<br />
46,1,-79,36,66,-32,103,-56,-80,58,89,-15,-36,33,-109,-3,120,-23,65,7<br />
21,29,26,8,120,-23,105,-59,-70,89,-83,24,-46,5,-62,-43,-28,-26,48,7<br />
17,22,56,5,107,-12,92,-55,6,62,74,40,19,72,-76,-53,94,-16,61,0<br />
1,29,12,11,120,-28,94,-51,-84,90,-90,24,-33,8,-72,-43,-40,-17,74,2<br />
21,29,26,8,120,-23,105,-59,-70,89,-83,24,-46,5,-62,-43,-28,-26,48,7<br />
Tabuľka č. 11.: Ôsma generácia hodnotiteľa č. 1.<br />
Ôsma generácia Známka<br />
-10,19,72,4,102,-10,101,-58,13,59,70,32,1,69,-71,-56,107,-11,33,0<br />
-10,19,72,4,102,-10,101,-58,13,59,70,32,1,69,-71,-56,107,-11,33,0<br />
17,23,56,5,107,-12,92,-55,6,62,74,40,19,72,-76,-53,94,-16,61,0<br />
21,23,26,5,107,-23,92,-59,6,62,74,40,-46,5,-62,-43,94,-16,61,0<br />
21,29,26,10,120,-19,105,-59,-9,89,66,39,23,5,-79,-43,-28,-21,64,0<br />
21,29,26,10,120,-19,105,-59,-9,89,66,39,23,5,-79,-43,-28,-21,64,0<br />
6,32,49,9,86,-14,89,-59,-6,67,74,36,15,69,-86,-61,83,-22,56,2<br />
70<br />
2<br />
1<br />
4<br />
5<br />
1<br />
3<br />
1<br />
-<br />
-<br />
-<br />
-<br />
-<br />
-
FEI KKUI<br />
5.2.3 Hodnotenie subjektu č. 2 a evolúcia fenotypov<br />
Fenotyp č. 1<br />
Fenotyp č. 2<br />
Fenotyp č. 3<br />
Fenotyp č. 4<br />
Fenotyp č. 5<br />
Fenotyp č. 6<br />
Fenotyp č. 7<br />
Fenotyp č. 1<br />
Fenotyp č. 2<br />
Fenotyp č. 3<br />
Fenotyp č. 4<br />
Fenotyp č. 5<br />
Fenotyp č. 6<br />
Fenotyp č. 7<br />
Tabuľka č. 12.: Nultá generácia hodnotiteľa č. 2.<br />
Nultá generácia Známka<br />
-18,-1,-61,37,-61,-49,-111,-45,-115,36,59,33,30,62,-107,-5,-93,-74,18,7<br />
81,30,12,55,32,-86,-111,-78,-61,57,-35,26,-61,15,-33,-81,-92,-35,-23,34<br />
-61,3,92,64,88,-55,23,-25,52,6,-61,-3,108,70,-7,-70,83,-64,-16,71<br />
87,19,69,88,64,-75,-114,-37,-38,59,65,-26,-31,55,-78,-32,17,-48,104,2<br />
-59,10,108,49,74,-62,-79,-75,33,74,95,-35,93,34,-55,-1,-65,-23,112,15<br />
115,-34,36,43,-8,-85,-33,-85,70,69,-80,-29,18,8,-15,-20,115,-76,57,39<br />
-101,0,26,66,-36,-31,-100,-33,68,8,35,7,-115,77,-62,-89,34,-92,-49,14<br />
Tabuľka č. 13.: Prvá generácia hodnotiteľa č. 2.<br />
Prvá generácia Známka<br />
-105,0,18,75,-45,-32,-80,-31,55,18,28,-2,-90,74,-83,-85,27,-95,-16,10<br />
64,13,113,49,52,-88,-120,-76,17,49,-32,20,97,35,-33,-2,-101,-15,86,15<br />
-14,4,-37,34,-51,-52,-118,-46,-120,41,57,27,13,66,-109,-10,-110,-84,14,8<br />
-120,11,31,29,-17,-28,-16,-77,86,69,31,-14,-120,5,-92,-84,116,-76,-28,9<br />
-120,11,31,29,-17,-28,-16,-77,86,69,31,-14,-120,5,-92,-84,116,-76,-28,9<br />
-105,0,18,75,-45,-32,-80,-31,55,18,28,-2,-90,74,-83,-85,27,-95,-16,10<br />
-105,0,18,75,-45,-32,-80,-31,55,18,28,-2,-90,74,-83,-85,27,-95,-16,10<br />
71<br />
2<br />
4<br />
2<br />
4<br />
4<br />
5<br />
1<br />
3<br />
5<br />
4<br />
1<br />
1<br />
3<br />
3
FEI KKUI<br />
Fenotyp č. 1<br />
Fenotyp č. 2<br />
Fenotyp č. 3<br />
Fenotyp č. 4<br />
Fenotyp č. 5<br />
Fenotyp č. 6<br />
Fenotyp č. 7<br />
Fenotyp č. 1<br />
Fenotyp č. 2<br />
Fenotyp č. 3<br />
Fenotyp č. 4<br />
Fenotyp č. 5<br />
Fenotyp č. 6<br />
Fenotyp č. 7<br />
Tabuľka č. 14.: Druhá generácia hodnotiteľa č. 2.<br />
Druhá generácia Známka<br />
37,34,8,0,108,-16,120,-62,4,62,-92,36,-2,25,-70,-52,98,-24,82,11<br />
-2,29,53,10,93,-19,82,-60,-9,65,66,39,23,67,-79,-61,94,-21,64,0<br />
46,1,-79,36,66,-32,103,-56,-80,58,89,-15,-36,33,-109,-3,120,-23,65,7<br />
21,29,26,8,120,-23,105,-59,-70,89,-83,24,-46,5,-62,-43,-28,-26,48,7<br />
17,22,56,5,107,-12,92,-55,6,62,74,40,19,72,-76,-53,94,-16,61,0<br />
1,29,12,11,120,-28,94,-51,-84,90,-90,24,-33,8,-72,-43,-40,-17,74,2<br />
21,29,26,8,120,-23,105,-59,-70,89,-83,24,-46,5,-62,-43,-28,-26,48,7<br />
Tabuľka č. 15.: Tretia generácia hodnotiteľa č. 2.<br />
Tretia generácia Známka<br />
-3,7,-38,41,-50,-49,-101,-47,-110,38,45,26,5,67,-113,-17,-120,-85,-10,4<br />
47,19,101,47,49,-84,-98,-76,4,53,-29,21,98,38,-32,-1,-104,-9,79,13<br />
-119,9,49,25,-50,-47,0,-48,-120,46,46,28,-111,71,-92,-87,110,-87,13,5<br />
-120,15,14,22,-19,-24,-21,-26,54,12,37,-12,-108,11,-79,-83,5,-90,7,7<br />
47,19,101,47,49,-84,-98,-76,4,53,-29,21,98,38,-32,-1,-104,-9,79,13<br />
-23,2,11,29,-35,-34,-120,-30,-120,42,36,1,12,66,-102,-88,-119,-95,-10,11<br />
-112,11,38,33,-18,-31,-15,-78,93,72,38,-8,-109,9,-80,-79,120,-75,-30,5<br />
72<br />
2<br />
1<br />
4<br />
5<br />
1<br />
3<br />
1<br />
3<br />
4<br />
1<br />
1<br />
4<br />
3<br />
1
FEI KKUI<br />
Fenotyp č. 1<br />
Fenotyp č. 2<br />
Fenotyp č. 3<br />
Fenotyp č. 4<br />
Fenotyp č. 5<br />
Fenotyp č. 6<br />
Fenotyp č. 7<br />
Fenotyp č. 1<br />
Fenotyp č. 2<br />
Fenotyp č. 3<br />
Fenotyp č. 4<br />
Fenotyp č. 5<br />
Fenotyp č. 6<br />
Fenotyp č. 7<br />
Tabuľka č. 16.: Štvrtá generácia hodnotiteľa č. 2.<br />
Štvrtá generácia Známka<br />
-120,14,21,19,-10,-21,-18,-24,62,16,40,-7,-109,14,-71,-83,0,-90,11,4<br />
-109,11,60,20,-58,-43,-3,-46,-120,47,48,25,-120,69,-82,-89,101,-88,20,5<br />
-120,17,52,25,-48,-25,-4,-24,64,47,41,28,-117,8,-85,-86,111,-83,19,5<br />
-14,6,10,27,-45,-32,-119,-28,-120,42,34,1,5,67,-94,-88,-117,-92,-9,14<br />
-23,11,49,25,-50,-34,-120,-48,-120,42,46,3,-111,66,-102,-88,-119,-95,13,5<br />
-109,11,60,20,-58,-43,-3,-46,-120,47,48,25,-120,69,-82,-89,101,-88,20,5<br />
-23,11,49,25,-50,-34,-120,-48,-120,42,46,3,-111,66,-102,-88,-119,-95,13,5<br />
Tabuľka č. 17.: Piata generácia hodnotiteľa č. 2.<br />
Piata generácia Známka<br />
-96,7,51,6,-40,-36,0,-35,-120,50,30,28,-98,71,-91,-88,96,-89,25,3<br />
-28,19,41,31,-43,-36,-100,-50,-114,50,43,10,-118,69,-108,-89,-119,-91,35,1<br />
-120,15,43,30,-47,-25,-13,-24,75,49,48,24,-118,1,-86,-85,99,-88,5,6<br />
-96,7,51,6,-40,-36,0,-35,-120,50,30,28,-98,71,-91,-88,96,-89,25,3<br />
-120,10,44,22,-31,-27,-21,-23,57,11,58,22,-108,12,-62,-83,115,-94,18,4<br />
-120,10,44,22,-31,-27,-21,-23,57,11,58,22,-108,12,-62,-83,115,-94,18,4<br />
-117,8,62,18,-56,-41,-5,-44,-120,50,52,27,-111,67,-75,-90,112,-87,25,3<br />
73<br />
2<br />
3<br />
2<br />
4<br />
4<br />
2<br />
4<br />
3<br />
4<br />
1<br />
3<br />
2<br />
2<br />
3
FEI KKUI<br />
Fenotyp č. 1<br />
Fenotyp č. 2<br />
Fenotyp č. 3<br />
Fenotyp č. 4<br />
Fenotyp č. 5<br />
Fenotyp č. 6<br />
Fenotyp č. 7<br />
Fenotyp č. 1<br />
Fenotyp č. 2<br />
Fenotyp č. 3<br />
Fenotyp č. 4<br />
Fenotyp č. 5<br />
Fenotyp č. 6<br />
Fenotyp č. 7<br />
Tabuľka č. 18.: Šiesta generácia hodnotiteľa č. 2.<br />
Šiesta generácia Známka<br />
-120,3,45,34,-40,-24,-6,-29,76,11,56,27,-117,0,-71,-86,104,-95,-4,10<br />
-115,16,53,24,-20,-30,-40,-23,40,8,55,27,-116,6,-73,-83,115,-90,21,0<br />
-108,10,57,24,-25,-25,-2,-19,53,12,54,19,-97,6,-53,-74,109,-94,41,5<br />
-115,16,53,24,-20,-30,-40,-23,40,8,55,27,-116,6,-73,-83,115,-90,21,0<br />
-120,9,37,21,-40,-26,-13,-27,50,10,57,27,-116,10,-50,-87,119,-95,27,8<br />
-120,11,44,22,-31,-27,-21,-23,57,11,58,23,-108,12,-62,-83,115,-94,18,4<br />
-115,16,53,24,-20,-30,-40,-23,40,8,55,27,-116,6,-73,-83,115,-90,21,0<br />
Tabuľka č. 19.: Siedma generácia hodnotiteľa č. 2.<br />
Siedma generácia Známka<br />
-103,21,29,13,-10,-32,-62,-15,19,23,83,24,-113,28,-66,-83,120,-91,15,0<br />
-85,7,64,31,-13,-31,-50,-14,72,8,73,19,-120,0,-96,-83,90,-80,13,6<br />
-108,18,49,19,-26,-30,-64,-20,34,4,90,29,-120,19,-70,-89,101,-89,35,3<br />
-105,20,34,37,-23,-21,-33,-22,79,11,28,25,-104,4,-83,-82,101,-94,21,12<br />
-105,20,34,37,-23,-21,-33,-22,79,11,28,25,-104,4,-83,-82,101,-94,21,12<br />
-115,13,54,19,-11,-26,-35,-26,26,3,35,29,-88,9,-86,-77,95,-89,-9,0<br />
-120,14,56,37,-30,-19,-26,-16,81,15,50,26,-106,6,-74,-76,89,-93,26,12<br />
74<br />
1<br />
3<br />
4<br />
3<br />
2<br />
2<br />
3<br />
2<br />
3<br />
2<br />
2<br />
2<br />
2<br />
1
FEI KKUI<br />
Fenotyp č. 1<br />
Fenotyp č. 2<br />
Fenotyp č. 3<br />
Fenotyp č. 4<br />
Fenotyp č. 5<br />
Fenotyp č. 6<br />
Fenotyp č. 7<br />
Tabuľka č. 20.: Ôsma generácia hodnotiteľa č. 2.<br />
5.3 Analýza dosiahnutých výsledkov<br />
Genetické algoritmy sú univerzálnym stochastickým prehľadávacím alebo optima-<br />
lizačným prístupom, ktorý je v ohraničenom priestore prípustných riešení daného prob-<br />
lému schopný nájsť alebo sa aspoň priblížiť ku globálnemu optimu. Čo je ale toto glo-<br />
bálne optimum v prípade interaktívneho prístupu v návrhu tanečných choreografií?<br />
Interaktívny genetický algoritmus hľadá globálne optimum v priestore parametrov<br />
systému vzhľadom na psychologickú vzdialenosť medzi cieľom hodnotiteľa procesu<br />
v jeho psychologickom priestore – čiže akejsi predstavy a aktuálnym výstupom systé-<br />
mu. Záleží, či užívateľ – hodnotiteľ tanca má aspoň približnú predstavu o tom, ako by<br />
mala choreografia vyzerať, alebo nie.<br />
Ôsma generácia Známka<br />
-111,21,61,24,-6,-31,-28,-25,35,2,42,29,-80,15,-99,-84,98,-88,6,4<br />
-96,20,25,39,-39,-26,-35,-23,74,15,30,26,-107,24,-76,-83,98,-92,52,15<br />
-120,16,54,42,-10,-19,-29,-24,69,10,34,28,-73,13,-87,-80,104,-92,31,3<br />
-102,20,15,37,0,-17,-18,-26,16,7,10,27,-100,12,-65,-70,98,-91,23,14<br />
-99,19,51,19,-9,-25,-42,-22,31,3,26,23,-84,4,-92,-75,97,-87,-4,1<br />
-113,17,40,37,-15,-24,-27,-26,83,13,29,22,-110,6,-93,-84,98,-95,25,15<br />
-120,16,54,42,-10,-19,-29,-24,69,10,34,28,-73,13,-87,-80,104,-92,31,3<br />
Na výsledných fenotypoch hodnotiteľov procesu pozorujeme, že dospeli k odliš-<br />
ným tancom. Rýchlosť konvergencie fenotypov záleží od hodnotenia.<br />
Predpokladám, že expert – choreograf tanca by dospel k lepším výsledkom ako<br />
bežný užívateľ. Dôvodom tohto zmýšľania je, že expert by mal pred použitím programu<br />
v mysli predstavu, ku ktorej by sa v programe evolúciou približoval.<br />
75<br />
-<br />
-<br />
-<br />
-<br />
-<br />
-<br />
-
FEI KKUI<br />
Výsledný tanec č. 1<br />
76
FEI KKUI<br />
77
FEI KKUI<br />
78
FEI KKUI<br />
Výsledný tanec č. 2<br />
79
FEI KKUI<br />
80
FEI KKUI<br />
81
FEI KKUI<br />
82
FEI KKUI<br />
6 Zhodnotenie a záver<br />
83<br />
Tri miliardy rokov evolúcie nemohli byť nesprávne.<br />
Je to najsilnejší algoritmus, aký existuje.<br />
Dr. David E. Goldberg, profesor University of Illinois<br />
Cieľom diplomovej práce bolo navrhnúť systém robotického tanca, ktorý interaguje<br />
s používateľom – človek ohodnocovaním sekvencií tanečných krokov tvorí vlastnú cho-<br />
reografiu pomocou interaktívnej evolúcie. V kroku hodnotenia jedincov evolučného al-<br />
goritmu zastáva úlohu človek, ktorý priradí jedincom vhodnosť a takýmto spôsobom<br />
ovplyvňuje nasledujúci priebeh evolúcie a interaguje so systémom. Výstupy systému<br />
závisia od preferencií, zmyslov, emócií a vkusu človeka.<br />
Systém by mohol byť použitý pre zábavné účely a takisto by našiel uplatnenie aj<br />
v oblasti spoločenskej robotiky.<br />
6.1 Splnenie téz diplomovej práce<br />
Tézy tejto diplomovej práce boli určené nasledovne:<br />
1) Urobiť prehľad problematiky z danej problematiky vo svete.<br />
2) Teoreticky analyzovať možnosti nasadenia evolučných výpočtov do systému ro-<br />
botického tanca.<br />
3) Analyzovať problematiku evolučných výpočtov pri evolúcii tanca.<br />
4) Navrhnúť systém využitia interaktívnych evolučných výpočtov pri evolúcii tan-<br />
ca.<br />
5) Vytvoriť užívateľské rozhranie pre daný systém.<br />
6) Prezentovať demonštráciu výsledkov evolúcie.<br />
7) Vypracovať abstrakt práce v anglickom jazyku.<br />
V diplomovej práci som sa snažila splniť všetky zadané úlohy, ktoré sú vypra-<br />
cované a zdokumentované nasledovne:<br />
Body 1) – 3) sú obsiahnuté v teoretickej časti diplomovej práce, konkrétne:
FEI KKUI<br />
Kapitoly 2. – 3. sú založené na preštudovaní viacerých vedeckých článkov, na<br />
základe ktorých som v kapitole 2. vypracovala prehľad použitia umelej inteligencie<br />
v <strong>humanoidných</strong> <strong>systémoch</strong> vo svete. Kapitola 3. sa zaoberá teoretickými východiskami<br />
evolučných algoritmov a v druhej časti je zameraná na oblasť interaktívnej evolúcie.<br />
Príklady konkrétnych <strong>humanoidných</strong> robotov sú opísané v príručke A diplomovej práce<br />
a aplikácie interaktívnych systémov v príručke B.<br />
Body 4) a 5) sú zdokumentované v kapitole 4., kde som navrhla systém využitia<br />
interaktívnych evolučných výpočtov pri evolúcii tanca, spolu s jeho užívateľským roz-<br />
hraním.<br />
Téza pod bodom 6) je uvedená v kapitole 5.:<br />
Kapitola 5. prezentuje demonštráciu výsledku evolúcie na dvoch tancoch a via-<br />
cerých hodnotiteľov procesu, kde sú uvedené experimenty so systémom. Ich následná<br />
teoretická analýza je popísaná v podkapitole 5. 3.<br />
Bod 7) je vypracovaný v príručke A. diplomovej práce.<br />
6.2 Práca do budúcna<br />
Za najdôležitejší najbližší krok do budúcna považujem odskúšanie navrhnutého<br />
systému na reálnych robotoch.<br />
Okrem tejto nevyhnutnej skutočnosti prezentujem vízie, ktoré by sa mohli pre-<br />
meniť v realitu:<br />
Rozpoznávanie hudby, podľa ktorej by sa robot pohyboval, by bolo veľkým<br />
prínosom do systému. Pomocou simulátora to nebolo možné, ale na reálnych robotoch<br />
by to bolo veľkým zlepšením. Známe sú prístupy rozpoznávania hudby napríklad po-<br />
mocou neurónových sietí.<br />
V takomto prístupe by išlo o snahu stanoviť príznaky charakterizujúce rôzne hu-<br />
dobne žánre a následné použitie klasifikátora. Inak povedané, rozpoznávanie hudby ro-<br />
botmi je extrakcia informácií zo zvuku.<br />
Zvuk je zmena tlaku – rozloženia častíc alebo ich rýchlosti – vlnenie v pásme<br />
frekvencií od 20Hz do 20kHz, ktoré sa šíri vzduchom v počuteľnej oblasti. Laicky po-<br />
84
FEI KKUI<br />
vedané, každý typ hudby by mal iný príznakový priestor. Neurónová sieť ako univer-<br />
zálny aproximátor by klasifikovala typy hudby do jednotlivých tried.<br />
Rozšírenie chromozómu o ďalšie gény na základe vlastností Naa, ktoré v simu-<br />
lácii nie sú dobre alebo vôbec pozorovateľné – napríklad o blikanie jeho „očí“ rôznymi<br />
farbami.<br />
Zaujímavé by bolo, keby si návrh choreografie vyskúšal expert z tejto oblasti a<br />
posúdil dosiahnuté výsledky.<br />
85
FEI KKUI<br />
Epilóg<br />
Keď prvý krát vyviniete novú bytosť umelou selekciou v počítačovom modeli,<br />
máte pocit, že je to kreatívny proces. Takže to tak skutočne je.<br />
Ale čo naozaj robíte, je nájdenie bytosti, ktorá, v matematickom zmysle,<br />
už sedí na jej vlastnom mieste v genetickom priestore v Biomorfickej Krajine.<br />
86<br />
Kevin Kelly, 1995<br />
Ľudia, pri zhrnutí Darwinovej myšlienky o evolúcii, si zvyčajne predstavia slogan „Naj-<br />
silnejší prežije.“ Zdá sa, že rastliny a živočíchy sa vyvinuli postupným vylepšovaním<br />
rôznych rysov, či vlastností. Citovaný Holland sa snažil, aby počítačové programy na-<br />
podobňovali živé organizmy v tom, že sa pri hľadaní riešení problémov adaptívne vyví-<br />
jajú. Jeho genetický algoritmus ako populácia počítačových programov, ktoré sa vyvíja-<br />
jú prostredníctvom hore uvedených genetických operátorov ako je reprodukcia, náhod-<br />
né zmeny a súťaženie, evokuje všetky idey a slovník biológov, od chromozómov, ktoré<br />
obsahujú genetický plán organizmu, ku kríženiu a mutáciám, ktoré ho môžu meniť.<br />
Kríženie u genetického algoritmu dovoľuje, aby sa mnoho pokusných riešení tes-<br />
tovalo súbežne. Tento zabudovaný paralelizmus umožňuje nájsť zázračné kombinácie<br />
medzi obrovským množstvom alternatív, a to pomocou procesu, ktorý vyzerá náhodne,<br />
ale v skutočnosti ho riadi „Darwinova ruka.“<br />
Mnoho vedcov a umelcov sa snaží navrhnúť mechanizmy, ktoré by preukázali<br />
kreatívne vlastnosti. Kreativita je jednou z najmenej pochopených aspektov inteligencie<br />
a je často vnímaná ako intuitívna, a nie ako racionálna. Záujem o jej vzkriesenie je, ok-<br />
rem umelej inteligencie a kognitívnej vedy, aj v psychológii, filozofii, počítačovej vede,<br />
logike, matematike, sociológii, architektúre a dizajne. Implikuje inovatívny výstup a<br />
znamená všeobecný zmysel pre originalitu a inovatívnosť. Je to tvorba neobyčajných,<br />
nových kombinácií starých nápadov, kde prekvapenie spôsobené kreatívnym nápadom<br />
je odmenou za nepravdepodobnosť kombinácie.<br />
Otázka znie: je vôbec možné napísať počítačový program, schopný produkovať<br />
kreatívny dizajn, respektíve program, ktorý podporí kreativitu dizajnéra? A do budúcna:<br />
mohli by nám počítače pomôcť pri pochopení ľudskej kreativity?
FEI KKUI<br />
Evolučné algoritmy dokážu vyriešiť viaceré nezvládnuteľné problémy a v niekto-<br />
rých ohľadoch ich môžeme vnímať tak, že ich správanie je inteligentné. (<strong>Umelá</strong> inteli-<br />
gencia je kontroverzný vedný odbor, z väčšej časti preto, lebo ani psychológia sa neve-<br />
dia zhodnúť, čo je samotná <strong>inteligencia</strong>.<br />
Na záver si dovolím spomenúť výrok Arthura Samuela (1901 – 1990), ktorý bol<br />
jeden z prvých vedcov v oblasti UI a tvorca inteligentného šachu:<br />
„Cieľom je mať stroje schopné správať sa tak, že v prípade, že by sa takto správali<br />
ľudia, tak by bolo usudzované, že používajú inteligenciu.“<br />
87
FEI KKUI<br />
Zoznam použitej literatúry<br />
[1] AMBROSE, R. – ZHENG, Y. et. al.: Humanoids. In Assessment of International<br />
Research and Development in Robotics. 2006.<br />
http://www.wtec.org/robotics<br />
[2] AUCOUTURIER, J. J. – IKEUCHI, K. et. al.: Cheek to Chip: Dancing Robots and<br />
AI’s Future. In Intelligent Systems, IEEE, 23(2): pp. 74–84, 2009.<br />
http://www.cs.cmu.edu/~marekm/publications/IS08MichalowskiKozima.pdf<br />
[3] BROOKS, R.A. – BREAZEAL, C. et. al.: The Cog Project: Building a Humanoid<br />
Robot. In: Computation for Metaphors, Analogy, and Agents. C. Nehaniv (ed), Lec-<br />
ture Notes in Artificial Intelligence 1562. New York, Springer, pp. 52–87, 1999.<br />
http://people.csail.mit.edu/brooks/papers/CMAA– group.pdf<br />
[4] CSONTÓ, J. – PALKO , M.: Umelý život. Elfa, ISBN 80– 89066– 59– 3, 2006.<br />
[5] GARCIA, E. – JIMENEZ, M., A. et. al.: The Evolution of Robotics Research,<br />
From Industrial Robotics to Field and Service Robotics. In: IEEE Robotics & Au-<br />
tomation Magazine, March 2009.<br />
http://labrobotica.org/conjuntos/Articulos/The%20evolution%20of%20robotics%20researc<br />
h.pdf<br />
[6] GOUAILLIER, D. – HUGEL, V. et. al.: The NAO humanoid: a combination ofper-<br />
formance and affordability. In: IEEE Transactions on Robotics, 2008.<br />
http: //arxiv1.library.cornell.edu/PS_cache/arxiv/pdf/0807/0807.3223v1.pdf<br />
[7] GREEN, W S. – JORDAN P. W.: Pleasure with Products: Beyond Usability,: De-<br />
sign Based on Kansei, Kansei engineering, University of Tsukuba. In: CRC Press,<br />
ISBN 0415237041, 2002.<br />
[8] ITO, M. – TANI, J.: On–line Imitative Interaction with a Humanoid Robot Using a<br />
Dynamic. Neural Network Model of a Mirror System. In: Adaptive Behavior,<br />
Vol.12, No.2, 2004.<br />
[9] KATIC, D. – VUKOBRATOVIC, M.: Survey of intelligent control. Algorithms for<br />
humanoid robots. In: Journal of Intelligent and Robotic Systems, vol. 37, pp. 117–<br />
141, 2005.<br />
http://www.nt.ntnu.no/users/skoge/prost/proceedings/ifac2005/Fullpapers/01799.pdf<br />
88
FEI KKUI<br />
[10] ISHIDA, T. – KUROKI, Y., et. al.: Analysis of Motions of a Small Biped Enterta-<br />
inment Robot. In: Proc. Int. Conf. On Intelligent Robots and Systems(IROS),<br />
pp.142-147, 2004.<br />
[11] MINATO, T – SHIMADA, M., et. al.: Development of an Android Robot for Stu-<br />
dying Human-Robot Interaction. In: Proc. 17 th International Conf. Industrial and<br />
Engineering Applications of Artificial Intelligence and Expert Systems, Ottawa,<br />
Canada, pp. 424—434, 2004.<br />
[12] NAKAOKA, S. et. al.: Learning from Observation Paradigm: Leg Task Models for<br />
Enabling a Biped Humanoid Robot to Imitate Human Dance. In Robotics Rese-<br />
arch, vol. 26, no. 8, pp. 829–844. 2007.<br />
[13] TAKAGI, H.: Interactive GA for system optimization: Problems and solution. In:<br />
4th European Congress on Intelligent Techniques and Soft Computing (EUFIT'96),<br />
Aachen, Germany, s. 1440 – 1444, 1996.<br />
[14] TAKEDA, T. – HIRATA, Y. et. al.: Dance Partner Robot Cooperative Motion Ge-<br />
neration with Adjustable Length of Dance Step Stride Based on Physical Interac-<br />
tion. In: Proc. IEEE/RSJ Int’l Conf. Intelligent Robots and Systems, IEEE Press,<br />
pp. 3258–3263, 2007.<br />
89
FEI KKUI<br />
Prílohy<br />
Príloha A: Prehľad <strong>humanoidných</strong> robotov<br />
Príloha B: Aplikácie interaktívnej evolúcie<br />
Príloha C: Výťah práce v anglickom jazyku<br />
Príloha D: Používateľská príručka<br />
Príloha E: Systémová príručka<br />
Príloha F: CD médium – Diplomová práca v elektronickej podobe, prílohy v elek-<br />
tronickej podobe.<br />
90