Využití genetického programování v evoluci robotů
Using genetic programming in robot evolution
diplomová práce (OBHÁJENO)
Zobrazit/ otevřít
Trvalý odkaz
http://hdl.handle.net/20.500.11956/72079Identifikátory
SIS: 146738
Katalog UK: 990018516420106986
Kolekce
- Kvalifikační práce [12069]
Autor
Vedoucí práce
Oponent práce
Neruda, Roman
Fakulta / součást
Matematicko-fyzikální fakulta
Obor
Teoretická informatika
Katedra / ústav / klinika
Katedra softwaru a výuky informatiky
Datum obhajoby
9. 9. 2014
Nakladatel
Univerzita Karlova, Matematicko-fyzikální fakultaJazyk
Čeština
Známka
Výborně
Klíčová slova (česky)
genetické programování, evoluce, robotKlíčová slova (anglicky)
genetic programming, evolution, robotPro řízení robotů se běžně využívají umělé neuronové sítě učené evolučními algoritmy (EA). Pro EA se neuronové sítě kódují buď přímo jako seznamy vah anebo nepřímo, jako generátor vah. Na rozdíl od přímého kódování, nepřímé kódování umožňuje kódovat velké sítě, za využití krátkého genetického kódu. HyperNEAT je neuroevoluční algoritmus, kde se neuronová síť kóduje nepřímo, pomocí jiné produkující sítě, jež počítá synaptické váhy vlastní řídící sítě. Jako alternativa k HyperNEATu, vznikl alg. HyperGP, kde je produkující síť nahrazena aritmetickým výrazem, jež je vyvíjen genetickým programováním (GP). V rámci práce jsme navrhli zlepšení algoritmu HyperGP za pomocí technik GP, které jsou buď známé v jiném kontextu a nebo jsou nové. Algoritmus i vylepšení jsme implementovali a experimentálně testovali na úloze ovládání virtuálního kráčejícího robota. Výsledky jsme porovnali s algoritmem HyperNEAT i s původním HyperGP. Ukázali jsme, že většina z navrhovaných vylepšení je účinná a HyperGP překonává HyperNEAT. GP tedy může úspěšně nahradit NEAT v hyper-kódovacím schématu a zlepšit tím jeho efektivitu. Powered by TCPDF (www.tcpdf.org)
Artificial neural networks learned by evolutionary algorithms are commonly used to control the robots. Neural networks can be encoded either directly as a list of weights or indirectly as a weight generator. Unlike direct coding indirect encoding allows to encode a large network using a short genetic code. HyperNEAT is a neuroevolutionary algorithm, which encodes the neural network indirectly, through another (producing) network, which computes synaptic weights. A different algorithm called HyperGP is an alternative to HyperNEAT. In HyperGP, the producing network is replaced by an arithmetic expression, which is being evolved using a genetic programming (GP). We have designed enhancements for HyperGP, using techniques that are either known in a different context of GP or completely new. Algorithm and enhancements have been implemented and experimentally tested on a task of controlling virtual walking robot. The results were compared with HyperNEAT and with the original HyperGP. We have shown that most of the proposed enhancements are effective and, on the given task, HyperGP is better than HyperNEAT. GP thus can successfully replace NEAT in hyper-encoding scheme and improve its efficiency. Powered by TCPDF (www.tcpdf.org)
