94

Genetisch Programmeren voor de Evolutie Robotsturingenlib.ugent.be/fulltxt/RUG01/001/418/174/RUG01-001418174_2010_0001... · Genetisch Programmeren voor de Evolutie van Robotsturingen

Embed Size (px)

Citation preview

Genetisch Programmeren voor de

Evolutie van Robotsturingen

Bert Bonte

Promotor: prof. dr. ir. Luc Boullart

Begeleider: dr. Bart Wyns

Masterproef ingediend tot het behalen van de academische graad van

Master in de ingenieurswetenschappen: computerwetenschappen

Vakgroep Elektrische energie, systemen en automatisering

Voorzitter: prof. dr. ir. Jan Melkebeek

Faculteit Ingenieurswetenschappen

Academiejaar 2008-2009

Genetisch Programmeren voor de

Evolutie van Robotsturingen

Bert Bonte

Promotor: prof. dr. ir. Luc Boullart

Begeleider: dr. Bart Wyns

Masterproef ingediend tot het behalen van de academische graad van

Master in de ingenieurswetenschappen: computerwetenschappen

Vakgroep Elektrische energie, systemen en automatisering

Voorzitter: prof. dr. ir. Jan Melkebeek

Faculteit Ingenieurswetenschappen

Academiejaar 2008-2009

Dankwoord

Ik wil hierbij graag iedereen bedanken die rechtstreeks of onrechtstreeks bijgedragen

heeft tot dit werk. Met name Bart voor zijn advies, overleg, naleeswerk en enthousi-

asme. Ook iedereen met wie ik een inspirerend gesprek voerde met nieuwe ideeën tot

gevolg, of gewoon een luisterend oor om alles even te laten bezinken. En tenslotte ook

mijn ouders, niet alleen voor het nalezen, ook voor alle gekregen kansen.

i

Toelating tot bruikleen

�De auteur geeft de toelating deze scriptie voor consultatie beschikbaar te stellen en

delen van de scriptie te kopiëren voor persoonlijk gebruik.

Elk ander gebruik valt onder de beperkingen van het auteursrecht, in het bijzonder met

betrekking tot de verplichting de bron uitdrukkelijk te vermelden bij het aanhalen van

resultaten uit deze scriptie.�

Bert Bonte, mei 2009

ii

Samenvatting

Met behulp van genetisch programmeren, een techniek gebaseerd op evolutionaire pro-

cessen uit de natuur, werden sturingen en sensorencon�guraties voor mobiele robots

ontwikkeld. We toonden aan dat het mogelijk is om met behulp van GP sturingen voor

autonome mobiele robots te ontwikkelen die in staat zijn om doorheen gangenstelsels te

navigeren, zowel in deze waarop tijdens de evolutie getraind werd als volledig nieuwe.

Het is dus mogelijk om een algemene sturing te ontwikkelen voor een bepaalde taak

zonder alle omgevingen vooraf te kennen. Bovendien werd gebruik gemaakt van de

relatief realistische simulatieomgeving van het EyeBot platform.

Hiervoor bleek een variant op de gelaagd leren methode heel geschikt. De sturingen

werden getraind in omgevingen die in de loop der generaties telkens complexer werden.

We stelden vast dat de diversiteit binnen categorieën van leervoorbeelden heel belang-

rijk is om een goed resultaat te bekomen. Door ook de leertijd gradueel te verhogen,

waren we in staat om veel sneller tot een goed resultaat te komen dan zonder gelaagd

leren. Na het toevoegen van ruis stelden we een duidelijke verbetering van het resultaat

en de robuustheid vast.

Het basisgedrag van de meeste sturingen bestond uit het volgen van de linkermuur. Dit

illustreert de kracht van het evolutieproces om eenvoudige maar zeer robuuste oplos-

singen te ontwikkelen. Ook waren we in staat om het probleem op te schalen naar een

complexere opstelling met exact dezelfde evolutieparameters, enkel de rekentijd werd

verhoogd. Na succesvolle evolutie in simulatie, was de ontwikkelde sturing in staat om

het gewenste gedrag ook in realiteit te herhalen.

Verder bleek duidelijk dat de co-evolutie van sturing en morfologie van sensoren voor-

delig kan zijn. Het evolutieproces was in staat om goed geplaatste sensoren te kiezen

om zo een e�ciënte maar toch eenvoudige sturing te ontwikkelen. Om tot dit resultaat

te komen was het wel nodig om aan de �theidsfunctie een extra bonuscomponent toe

te voegen zodat de evolutie er werd toe aangezet om zuinig om te gaan met het aantal

gebruikte sensoren. Telkens observeerden we een geleidelijke evolutie van het sensorge-

bruik tijdens het evolutieproces. We stelden vast hoe de evolutie de minst belangrijke

sensoren eerst wegliet, om uiteindelijk enkel de beste over te houden. Bovendien werd

duidelijk dat diagonaal geplaatste sensoren, wegens het grotere bereik, duidelijk de

voorkeur verdienen.

Trefwoorden

Genetisch programmeren, evolutionaire robotsturingen, morfologie van sensoren.

iii

Genetic Programming for Evolving RobotControllers

Bert Bonte

Supervisors: Bart Wyns, Luc Boullart

Abstract—We showed that, even with a standard PC and limited compu-tation time, Genetic Programming is able to evolve efficient controllers forrobots performing corridor following in a simulation environment. There-fore, a mixed form of layered learning was used. We stated that it is impor-tant to provide sufficient diversity in the training environments. Further-more, the controller was also successfully applied to a real robot environ-ment. Finally, controller and sensor morphology were co-evolved, resultingin an improved sensor configuration.

Keywords— Genetic Programming, Evolutionary robotics, Sensor mor-phology.

I. INTRODUCTION

TODAY many interesting and realistic applications whererobots can be used are too difficult for the current state-

of-the-art. Robots are mainly used for relatively easy and repet-itive tasks. Fully autonomous robots in realistic applications areexceptions. This is mainly caused by the highly complex devel-opment of those systems.In nature however, very powerful processes exist that are ableto combine basic elements in a robust way that lead to very in-genious and efficient solutions. Using the concept of survivalof the fittest, robot controllers and robot systems can be evolvedjust like organisms in nature. Therefore, using natural processes,robust robot controllers can be developed without complexityburden for human developers. By using the Genetic Program-ming paradigm, an evolutionary method based on program in-duction [2], we can thus automatically evolve robot controllers.In this work, we will use corridor following to test the abilitiesof GP. The robot must navigate in a sequence of corridors fromstart to end as efficient as possible and without collisions. Un-like some other work in literature, we will not make use of ahighly simplified simulation environment. Instead, the simula-tion environment from the EyeBot platform was used.We will not only try to evolve mobile robot controllers that cansuccessfully navigate in corridor systems on which the robottrained during the evolutionary process. The controller shouldbe general enough to cope with environments that were not usedduring evolution as well. Furthermore, we want to verify if evo-lution in simulation can be successfully transferred to reality.Finally, we also investigate the possibility of simultaneous evo-lution of controllers and sensor morphology.

II. GENETIC PROGRAMMING

Genetic Programming uses a population of computer pro-grams encoding a possible robot controller. Each generation,only the best performing programs are selected to bread andhave their children added to the population of the next genera-tion. The computer programs are hierarchically structured LISPtrees containing both functions, that accept an arbitrary number

of arguments, and terminals [2]. The selection of the best pro-grams is based on the fitness function that is defined to modelhow well the desired behaviour is matched.We list the standard parameters for the experiments. As selec-tion algorithm, tournament selection with size 7 is used. Theprobability of crossover is 90% and reproduction 10%. Twofunctions are used: IfLess (arity 4), and PROGN2 (arity 2), bothwell known. Moreover, move forward and backward drive overa distance of 10 cm. Turn left and right makes the robot turn 90degrees in place. All three standard PSD sensors of the robotare used: front, left and right, each perpendicular on the robot.Finally, three thresholds are available: low, medium and high,respectively 75, 150 and 300 mm.Each generation all individuals are tested in three environmentsand can perform 500 movements in each environment. The fit-ness function consists of three components. As basic measure,the distance in bird’s eye perspective the robot has covered sofar is measured. Also, every collision that is detected, using asensor on each side, receives a penalty that is added to the num-ber of movements so far. Finally, a bonus component is addedwhen the robot reaches the end of the corridor system. This con-sists of a fixed part and a variable part. The variable componentis relative to the number of spare movements and thus rewardsefficient controllers.

III. EVOLVING ROBOT CONTROLLERS

A. Evolution in simulation

We investigated some variants on the layered learning ap-proach [1]. In total, 15 different environments were used. Eachof a specific difficulty, indicated by the length and the numberand type of turns.When using all 15 environments in every generation to learn thedesired behaviour, even after 3 and a half days of computationtime, no acceptable result is achieved.However, using a layered learning approach with all environ-ments grouped in 5 categories, ranging from very easy to dif-ficult, resulted in clearly better controllers. After some gener-ations of training on the first category, every given number ofgenerations, the previous category is replaced with a new, moredifficult one. Furthermore, we were able to improve the resultsby using mixed categories. By adding one clearly harder or eas-ier environment in every category, population diversity was aug-mented. This resulted in a usable and efficient result that onlyneeded a population of 300 with 50 generations. This diversityis needed in order to let the evolution build on a basis that is sta-ble (i.e. diverse) enough. Note that the calculation time of onlya single day is limited.

Adding noise to the sensor values greatly enhanced the result-ing controllers. More robust controllers were evolved using thesame parameters. We noted that gradually augmenting the num-ber of generations available for more difficult categories also im-proved the result significantly. The result was not only able tonavigate successfully in all 15 environments used during train-ing. With only two collisions, all five totally new environmentswere solved successfully as well.

B. Transfer to real world

In this section we use turns of 15 degrees instead of 90. Thisway, the controller will be able to adjust incomplete turns, whichare very common in realistic environments. Gaussian noise withstandard deviation of respectively 3 and 2 was added to the sen-sor values and steering mechanism.This is clearly a scaled up version of the previous problem.Though, only by augmenting the population size and the num-ber of generations, a very efficient solution was evolved. Thissolution is able to fulfil, with 4 collisions in total, all tested envi-ronments, whether they were used during simulation or not. Wedid note that it is not possible to determine a priori the minimalnumber of generations and population size. Two versions with apopulation of 500 where run, the first (100 generations) leadingto a very robust solution. However, the second (200 generations)was slightly more efficient and fluent in turns. But this controllerwas clearly not as robust as the first, presumably caused by thepremature convergence, in turn caused by too long training onthe same categories. An example trail of the second controlleris depicted in Figure 1.

Fig. 1. The trail of the robot in simulation in a totally new environment.

When transferring the controller to reality, a slight form of a re-ality gap was observed. Indeed, there was a performance dropmainly caused by the fact that the real PSD sensors return wrongvalues when too close to the wall. After increasing the low-est threshold, this problem was solved. The robot was able tonavigate through new environments efficiently. The robot suc-cessfully drives straight ahead, adjusts where necessary and itscurves are taken smoothly. Nevertheless we noted some morecollisions than in simulation.

IV. CO-EVOLUTION OF CONTROLLER AND SENSORMORPHOLOGY

In nature, both the controlling mechanism and the body ofan organism is evolved. The analogy can be made to evolvecontrollers and robot morphology simultaneously, hopefully re-

sulting in better suited robots and controllers for a given task. Inthis work, we will co-evolve sensor morphology and controller.Again, in simulation and with noise added to the sensor values.Note that the standard simulation environment was extended tosupport the use of an arbitrary number of sensors.An experiment with 35 possible sensor locations, each ad-dressed by a unique terminal leads to a good sensor configura-tion, as depicted in Figure 2. In order to reach a minimal sensorsuite, the fitness function awarded every successful controlleraccording to the number inused sensors. However, despite morethan 5 days of computation time, the resulting controller did notreach the expected level of robustness. Here we reached a com-plexity barrier for the evolutionary process; too many terminalslead to an explosion of the search space resulting in a problemthat is too hard to solve with a standard general purpose PC inan acceptable time span.

3

21

27

26

15

Fig. 2. All available sensors and those that were chosen by evolution.

When using 8 instead of 35 sensors, we did reach a good solu-tion for both controller and sensor morphology. We noted thatthe bonus component for less sensors is needed to result in us-able solutions. The evolutionary process clearly omits the sen-sors one by one during evolution, starting with these that areleast useful for the task. In this case, these are the sensors thatare placed orthogonal on the robot. Indeed, they only offer lim-ited coverage. Therefore the evolutionary process selects almostexclusively non perpendicular sensors, especially at the front ofthe robot. This is an important design decision that was nottaken in account when designing the real robot, which only hasperpendicular sensors.

V. CONCLUSION

We demonstrated that, even with a basic PC and limited com-putation time, GP is able to evolve controllers for corridor fol-lowing in a simulation environment by using a mixed form oflayered learning. Moreover, this controller was also transferredsuccessfully to reality. Second, we also successfully co-evolvedcontroller and sensor morphology of the robot. This resulted inan improved sensor configuration.

REFERENCES

[1] S.M. Gustafson and W.H. Hsu, Layered Learning in Genetic Programmingfor a Cooperative Robot Soccer Problem, Lecture Notes in Computer Sci-ence, 2038:291-301, 2001.

[2] J.R. Koza, Genetic Programming: On the Programming of Computers byMeans of Natural Selection., MIT Press, Cambridge, Massuchusetts, 1992.

Inhoudsopgave

1 Inleiding 1

1.1 Probleemstelling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.2 Doelstellingen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.3 Overzicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2 Genetisch programmeren 4

2.1 Methode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.1.1 Voorstelling van een computerprogramma . . . . . . . . . . . . 6

2.1.2 Genereren van initiële populatie . . . . . . . . . . . . . . . . . . 8

2.1.3 Evaluatie van de �theid . . . . . . . . . . . . . . . . . . . . . . 8

2.1.4 Selectiemethodes . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.1.5 Genetische operatoren . . . . . . . . . . . . . . . . . . . . . . . 9

2.2 Uitbreidingen en varianten op GP . . . . . . . . . . . . . . . . . . . . . 11

2.2.1 Automatisch gede�nieerde functies . . . . . . . . . . . . . . . . 11

2.2.2 Gelaagd leren . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.2.3 Steady state GP . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.2.4 Competitieve co-evolutie . . . . . . . . . . . . . . . . . . . . . . 12

2.2.5 Embodied Evolution . . . . . . . . . . . . . . . . . . . . . . . . 12

2.3 Keuze voor GP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.4 Resultaten met GP in evolutionaire robotica . . . . . . . . . . . . . . . 14

2.4.1 Ontwijken van objecten . . . . . . . . . . . . . . . . . . . . . . 14

2.4.2 Volgen van muren . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.4.3 Gangenstelsels volgen . . . . . . . . . . . . . . . . . . . . . . . 15

2.4.4 Robotvoetbal . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.5 De probleemstelling in detail . . . . . . . . . . . . . . . . . . . . . . . 16

2.6 Aanpak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.6.1 Keuze van terminalen en functies . . . . . . . . . . . . . . . . . 17

2.6.2 Fitheidsfunctie . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

vi

INHOUDSOPGAVE

2.6.3 Standaardparameters . . . . . . . . . . . . . . . . . . . . . . . . 22

2.7 Simulatie versus echte robot . . . . . . . . . . . . . . . . . . . . . . . . 23

2.7.1 Afwegingen bij gebruik van simulaties . . . . . . . . . . . . . . . 23

2.7.2 Simulatieomgeving . . . . . . . . . . . . . . . . . . . . . . . . . 25

2.8 Robuustheid van de oplossing . . . . . . . . . . . . . . . . . . . . . . . 26

3 Evolutie van robotsturingen 28

3.1 Basisopstelling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.2 Diversiteitsmaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.3 Omgevingen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3.4 Evolutie in simulatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

3.4.1 Experimenten in een perfecte wereld: opstelling . . . . . . . . . 32

3.4.2 Experimenten in een perfecte wereld: resultaten . . . . . . . . . 34

3.4.3 Experimenten met ruis op de sensorwaarden: opstelling . . . . . 42

3.4.4 Experimenten met ruis op de sensorwaarden: resultaten . . . . 43

3.5 Van simulatie naar realiteit . . . . . . . . . . . . . . . . . . . . . . . . 45

3.5.1 Evolutie in simulatie . . . . . . . . . . . . . . . . . . . . . . . . 46

3.5.2 Transfer naar echte robot . . . . . . . . . . . . . . . . . . . . . 49

3.6 Besluit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

4 Evolutie van robotmorfologie 52

4.1 Situering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

4.2 Werkwijze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

4.2.1 Onveranderde en aangepaste �theidsfuncties . . . . . . . . . . . 55

4.2.2 Sensoren als terminalen of als functie . . . . . . . . . . . . . . . 55

4.3 Experimenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

4.3.1 Experiment met 35 sensoren . . . . . . . . . . . . . . . . . . . 56

4.3.2 Experiment met 8 sensoren . . . . . . . . . . . . . . . . . . . . 60

4.3.3 Experiment met 1617 sensoren . . . . . . . . . . . . . . . . . . 62

5 Besluit 66

5.1 In simulatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

5.2 Van simulatie naar realiteit . . . . . . . . . . . . . . . . . . . . . . . . 67

5.3 Co-evolutie van sturing en morfologie . . . . . . . . . . . . . . . . . . . 68

A Voorbeeldprogramma 69

vii

INHOUDSOPGAVE

B Simulatiebestanden 71

B.1 Robi-bestand met instellingen voor de robot . . . . . . . . . . . . . . . 71

B.2 Trainingsgangenstelsels . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

B.3 Veri�catiegangenstelsels . . . . . . . . . . . . . . . . . . . . . . . . . . 76

viii

Hoofdstuk 1

Inleiding

Vandaag de dag stelt zich het probleem dat veel interessante en realistische toepassingen

voor robots te moeilijk zijn voor de huidige state-of-the-art oplossingen. Robots worden

voornamelijk gebruikt voor relatief eenvoudige en repetitieve taken. De meest geavan-

ceerde robots met uitstekende sensoren en actuatoren worden meestal telegestuurd door

mensen, waarbij de robot slechts weinig of geen autonome beslissingen neemt [41]. Vol-

ledig autonome robots in realistische omgevingen zijn vooralsnog toekomstmuziek. Dit

wordt grotendeels veroorzaakt door de grote complexiteit en het intensieve werk dat

nodig is om de hardware en de sturingen voor de robot te ontwikkelen.

Natuurlijke processen zijn echter in staat om heel vernuftige en e�ciënte systemen

te ontwikkelen, allen ontstaan door het robuust samenvoegen van relatief eenvoudige

basiselementen. Eén van de krachtigste mechanismen die aan de basis hiervan ligt is

natuurlijke selectie, zoals beschreven door Charles Darwin in On the Origin of Species

[7]. Survival of the �ttest stelt dat de best aangepaste organismen meer kans hebben om

te overleven en zich voort te planten. Zo worden in de loop van de evolutie voortdurend

e�ciëntere en betere organismen ontwikkeld.

Dankzij evolutionaire robotica kunnen we gebruik maken van de kracht van natuurlijke

evolutie, gesimuleerd in een kunstmatig evolutieproces. Zo kan de input van een ont-

wikkelaar om bijvoorbeeld een autonome robot met sturing te ontwikkelen heel sterk

beperkt worden. Bovendien stijgt de rekenkracht van hedendaagse computers sterk,

waardoor alsmaar complexere problemen aangepakt kunnen worden.

In dit werk zullen we gebruik maken van genetisch programmeren (GP, Genetic Pro-

gramming. Aan de basis van deze methode ligt een populatie van individuen waaruit

iedere generatie enkel die individuen die het best een bepaalde taak kunnen uitvoeren

geselecteerd worden om zich voort te planten. Door robots en/of sturingen als indi-

viduen te gebruiken kunnen automatisch sturingen en zelfs volledige robots selectief

gekweekt worden om een bepaalde taak uit te voeren.

1

HOOFDSTUK 1. INLEIDING

1.1 Probleemstelling

We willen onderzoeken of het evolueren van robotsturingen met behulp van GP moge-

lijk is. In de literatuur is hierover immers nog maar heel weinig verschenen. Bovendien

wordt meestal gebruik gemaakt van sterk vereenvoudigde simulatieomgevingen. Ook

willen we nagaan op welke manier robotsturingen het e�ciëntst geëvolueerd kunnen

worden.

In dit werk zullen we gebruik maken van één speci�eke taak waarvoor we sturingen

wensen te ontwikkelen. Als probleemstelling kozen we voor de navigatie van een auto-

nome robot in gangenstelsels (corridor following). Hierbij is het de bedoeling dat de

robot van het startpunt naar het eindpunt van het gangenstelsel navigeert zonder bot-

singen. Bovendien moet de robot dit zo e�ciënt mogelijk doen, dus zonder overbodige

draaibewegingen, maar bijvoorbeeld ook zonder in de verkeerde richting te rijden. Dit

wordt meer in detail uitgelegd in Sectie 2.5.

1.2 Doelstellingen

Ten eerste willen we nagaan of het haalbaar is om een e�ciënte robotsturing te ont-

wikkelen die in staat is om in een omgeving te navigeren waarin de robot tijdens de

evolutie kon trainen. Bovendien werken we met strikte eisen omtrent de rekentijd. Alles

moet op een PC voor algemeen gebruik binnen een relatief beperkte tijd kunnen worden

berekend.

Verder wensen we de sturing ook zo te ontwikkelen dat deze voldoende algemeen is

om, ook in omgevingen die niet gebruikt werden tijdens het evolutieproces, succesvol

te kunnen navigeren. De robot kan dan in om het even welke omgeving ingezet worden

zonder dat deze op voorhand gekend is.

Ook willen we nagaan of het mogelijk is om na a�oop van het evolutieproces in simulatie

de resultaten succesvol over te brengen naar de realiteit. Omdat evolutie in simulatie

veel sneller kan gebeuren is dit een zeer wenselijke eigenschap.

Tenslotte zullen we gelijktijdig met de sturing ook de bouw (i.e. morfologie) van de

robot evolueren. Concreet zullen we naast de sturing ook de plaatsing van de sensoren

volledig overlaten aan het evolutieproces. We onderzoeken of dit inderdaad resulteert

in een robot met volledig aangepaste sensorencon�guratie en sturing voor het uitvoeren

van deze taak.

2

HOOFDSTUK 1. INLEIDING

1.3 Overzicht

We geven een kort overzicht van de inhoud van dit werk. In Hoofdstuk 2 gaan we die-

per in op genetisch programmeren; alle basisconcepten komen aan bod. We vermelden

ook enkele uitbreidingen en varianten op standaard GP. Verder geven we een overzicht

van de resultaten die reeds behaald werden met GP in de literatuur. Naast een korte

schets van de probleemstelling gaan we ook reeds iets dieper in op de basiselementen

die we verder zullen gebruiken om het probleem op te lossen. Ook vatten we enkele

bedenkingen en opties betre�ende het uivoeren van de evolutie in simulatie dan wel in

realiteit samen. Tenslotte komen ook enkele technieken om robuustere oplossingen te

evolueren aan bod.

Nadat alle basisbegrippen van GP werden uiteengezet, geven we in Hoofdstuk 3 een

overzicht van alle experimenten die werden uitgevoerd om te komen tot een goede stu-

ring voor de navigatie in gangenstelsels. We geven meer toelichting bij de basisopstelling

voor onze experimenten en de omgevingen waarin de sturingen zullen geëvalueerd wor-

den. Verder volgt een uitgebreid overzicht van de resultaten van de experimenten, zowel

in simulatie als in realiteit.

In Hoofdstuk 4 gaan we een stap verder, niet alleen de sturing, ook de plaatsing van

de sensoren wordt nu door de evolutie bepaald. Naast een situering van deze techniek

zetten we ook de werkwijze uit elkaar. Daarna beschrijven we uitgebreid de resultaten

van de verschillende experimenten.

We besluiten dit werk in Hoofdstuk 5 met een samenvatting van de belangrijkste resul-

taten.

3

Hoofdstuk 2

Genetisch programmeren

Evolutionaire robotica (ER, Evolutionary Robotics) [33], of het arti�cieel evolueren van

robots, is een automatische methode om e�ciënte robotsturingen te ontwikkelen. De

evolutionaire aanpak, gebaseerd op de evolutie van organismen uit de natuur, leidt

vaak tot verbazingwekkend eenvoudige, maar e�ciënte sturingen. Een voorbeeld, zoals

aangehaald in [45]: het evolutieproces ontwikkelde een sturing die verschillende types

objecten kon onderscheiden. Niet door gebruik te maken van de beschikbare camera

en geavanceerde beeldverwerkingstechnieken, maar door de correlatie tussen twee goed-

gekozen sensors te beschouwen. ER is dan ook een geschikte techniek om robots te

ontwerpen die steeds complexere taken kunnen uitvoeren.

Evolutionaire algoritmen (EA) in het algemeen zijn globale en robuuste optimalisatie-

methodes, gebaseerd op de door Darwin beschreven [7] natuurlijke evolutionaire proces-

sen. Het gekende principe van survival of the �ttest of natuurlijke selectie beschrijft dat

de best aangepaste organismen uit een populatie, niet noodzakelijk de sterkste, meer

kans hebben om te overleven en zich te kunnen voortplanten.

Bij EA wordt gebruik gemaakt van een initiële willekeurige populatie van mogelijke

oplossingen (individuen). Zo wordt de kans dat het algoritme convergeert naar een

lokaal optimum beperkt. Deze populatie evolueert dan door toepassen van genetische

operatoren en onder de selectiedruk tot steeds betere oplossingen. Het algoritme stopt

na een bepaald aantal generaties of wanneer de laatste generatie een individu bevat dat

het probleem oplost, al dan niet het globale optimum.

EA is een verzamelnaam voor verschillende technieken, allen met dezelfde basis. Voor

een overzicht verwijzen we naar [46]. Het meest gebruikt zijn de genetische algoritmen

(GA, Genetic Algorithms) en in mindere mate genetisch programmeren (GP, Genetic

Programming). Binnen ER werd GA reeds het meest gebruikt [32]. Voornamelijk ele-

mentair gedrag zoals het ontwijken van objecten, het volgen van een muur, een lichtbron

vinden, de batterijlader vinden en gangenstelsels volgen [32] werden reeds succesvol, al

4

HOOFDSTUK 2. GENETISCH PROGRAMMEREN

dan niet in een vereenvoudigde simulatieomgeving, door GA opgelost. Bij GA worden

de parameters van de sturing, zoals de gewichten voor het neurale netwerk (de basis

van GA), geëncodeerd in een tekenreeks van vaste lengte. Een populatie van dergelijke

tekenreeksen ondergaat de evolutie door kruisen en mutatie, om tot een goede sturing

te komen.

Bij GP worden volledige computerprogramma's van variabele lengte geëvolueerd. Op

basis van de prestatie van de programma's wordt natuurlijke selectie doorgevoerd, deze

vormt de evolutionaire druk voor het evolutieproces. Verder beschouwen we enkel nog

GP.

We overlopen kort de indeling van dit hoofdstuk. Eerst besteden we aandacht aan de

basiselementen en werking van genetisch programmeren. Verder komen ook een aantal

uitbreidingen en varianten op standaard GP kort aan bod. Daarna geven we toelich-

ting bij onze keuze voor GP. Vervolgens geven we een overzicht van enkele belangrijke

resultaten van GP in evolutionaire robotica. Daarna lichten we de probleemstelling toe

die we in de rest van dit werk zullen behandelen. We ronden af met een bespreking van

de problematiek rond het al dan niet gebruiken van simulaties en over de robuustheid

van de oplossingen van GP.

2.1 Methode

De techniek van genetisch programmeren werd voorgesteld door John Koza [17]. Het

concept bestaat uit het genetisch voortplanten van populaties van computerprogram-

ma's om een speci�eke taak uit te voeren. Men kweekt als het ware computerpro-

gramma's, tot een programma gevonden wordt dat succesvol een bepaalde taak kan

uitvoeren. De individuen in de populatie zijn hiërarchisch gestructureerde computer-

programma's van variabele grootte, meestal voorgesteld als een boom, bestaande uit

functies en argumenten.

Alles start met een populatie van willekeurig gegenereerde programma's. Dan wordt

ieder individu geëvalueerd op basis van zijn prestatie voor een bepaalde taak: de �t-

heid. Vervolgens worden aan de hand van de �theid individuen geselecteerd waarop

genetische operatoren worden toegepast. Zo ontstaan nieuw gekweekte programma's

die worden toegevoegd aan een nieuwe populatie van programma's. De huidige popu-

latie wordt dus vervangen door een nieuwe, de volgende generatie, met daarin evenveel

individuen. Dit proces gaat door tot een bepaald aantal generaties (i.e. iteraties) be-

reikt wordt, wanneer een zekere �theidswaardedrempel overschreden wordt, of wanneer

de �theid niet of nauwelijks meer stijgt. Het individu met de hoogste �theid is dan het

eindresultaat.

5

HOOFDSTUK 2. GENETISCH PROGRAMMEREN

Generatie van een populatie

willekeurige computerprogramma’s

Voor alle individuen:

evaluatie van fitheid

Selectie van individu(en)

Selectie en toepassing van

genetische operator

Resulterende individu(en)

toevoegen aan volgende generatie

Herhaal

Figuur 2.1: Overzicht van GP basisstappen.

We bekijken nu speci�ek al deze basisstappen, zoals weergegeven in Figuur 2.1, in iets

meer detail [17, 19, 44].

2.1.1 Voorstelling van een computerprogramma

De basisblokken van ieder programma zijn functies en terminalen. Functies zijn bijvoor-

beeld wiskundige (+, -, *, /, ...), logische (AND, OR, ...), of conditionele (IF-ELSE,

...) operatoren, en meer domeinspeci�eke functies. Voor iedere functie wordt het aantal

argumenten, de ariteit, gede�nieerd. De functies zijn de interne knopen van de boom.

In tegenstelling tot functies nemen terminalen geen parameters aan, dit zijn de bladeren

van de boom. Het zijn doorgaans constantes of invoerwaarden uit het probleemdomein

(bv. sensorwaarden). Deze terminalen zijn de argumenten voor de functies. Voor beide

types basisblokken is er keuze uit een vooraf gede�nieerde verzameling, afhankelijk van

de toepassing die men voor ogen heeft.

De multidimensionale zoekruimte bestaat nu uit alle mogelijke recursieve composities

van functies en terminalen. Om deze samen te stellen, wordt gebruik gemaakt van

S-expressies, in feite LISP-programma's. Deze zijn heel hiërarchisch en bijgevolg heel

geschikt. Bovendien bevatten de S-expressies uitvoerbare code en data in dezelfde vorm

en kunnen ze eenvoudig dynamisch aangepast worden. Dit is heel belangrijk voor het

e�ciënt toepassen van de genetische operatoren.

Een voorbeeldprogramma wordt weergegeven in Figuur 2.2. De functieset bestaat uit

-, *, Abs, de eerste twee met ariteit 2, de laatste met ariteit 1. De terminalen zijn 1,

6

HOOFDSTUK 2. GENETISCH PROGRAMMEREN

-

* Abs

x - -7

1 x

Figuur 2.2: GP voorbeeldprogramma.

-7, x. Dit programma wordt recursief uitgevoerd, beginnend bij de wortel.

Er zijn echter nog twee bijkomende voorwaarden nodig om een zinvol programma te

construeren uit de functie- en terminalenverzameling.

Sluiting

De sluitingseigenschap (closure) stelt dat iedere functie moet gede�nieerd zijn voor alle

mogelijke argumenten met waarden uit de volledige functie- en terminalenverzameling.

Zo zal bijvoorbeeld de mogelijke deling door 0 moeten aangepakt worden, vierkantswor-

tels van negatieve getallen, ... Doorgaans wordt dit opgelost door dergelijke functies in

de functieverzameling te vervangen door een beveiligde variant. Deze controleert eerst

de argumenten, pas wanneer deze voldoen, wordt de eigenlijke functie uitgevoerd. In

het andere geval zal een standaardwaarde als resultaat worden teruggegeven.

Toereikendheid

De toereikendheidseigenschap (su�ciency) stelt dat het probleem waarvoor een pro-

gramma geëvolueerd wordt, oplosbaar moet zijn met de gekozen verzameling van func-

ties en terminalen. Bij gebruik van GP moet de operator er dus op toezien dat de

functies en terminalen die gekozen werden relevant zijn voor het probleemdomein. Op

deze manier kan de �nale oplossing van het probleem adequaat worden beschreven. Het

niet opnemen van essentiële functies kan er immers toe leiden dat de oplossing van het

probleem niet gevonden wordt, terwijl het opnemen van onnodige functies de rekentijd

van GP nadelig kan beïnvloeden. De moeilijkheidsgraad voor de keuze van de basis-

blokken is afhankelijk van de probleemstelling. Soms is de keuze triviaal, in andere

gevallen is deze heel complex.

7

HOOFDSTUK 2. GENETISCH PROGRAMMEREN

2.1.2 Genereren van initiële populatie

Om willekeurige individuen te construeren wordt een willekeurige functie of terminaal

gekozen als startknoop, vervolgens worden afhankelijk van de ariteit van de knopen

nieuwe functies en terminalen toegevoegd als argumenten van de bovenstaande func-

ties, en dit totdat alle bladeren van de boom bezet zijn door terminalen.

Om dit concreet uit te voeren beschreef Koza een aantal mogelijkheden. De full -

methode leidt tot een boom waarbij de diepte van alle bladeren dezelfde is, de boom is

dus perfect gebalanceerd. Deze diepte wordt vooraf vastgelegd. Bij de grow -methode

mag de diepte waarop een blad zich bevindt een opgegeven maximum niet overschrij-

den. De meest gebruikte aanpak, ramped half-and-half, is een combinatie van beide.

Voor iedere diepte wordt telkens de helft van alle bomen met de grow -methode, en de

andere helft met de full -methode geconstrueerd. Deze methode leidt tot grootste diver-

siteit in de initiële populatie. Op deze manier zullen de individuen beter verdeeld zijn

over de volledige zoekruimte, wat doorgaans een voorwaarde is voor een goed resultaat.

Een belangrijke parameter hierbij is de grootte van de populatie. Deze legt in grote

mate de maximale diversiteit van de populatie vast, maar bepaalt ook heel sterk de

rekentijd van het evolutieproces. Eventuele duplicaten worden uit de initiële populatie

verwijderd en vervangen door een ander programma.

2.1.3 Evaluatie van de �theid

Om aan te geven hoe een bepaald programma presteert in het beschouwde probleemdo-

mein, wordt na een evaluatie een �theidswaarde toegekend aan het programma. Koza

de�nieerde onder andere ruwe, standaard, aangepaste en genormaliseerde �theid [19].

We gaan hier niet verder op in, temeer omdat we aan één waarde voldoende hebben om

de prestaties van programma's met elkaar te vergelijken. Om een voldoende algemene

�theid te kunnen berekenen wordt het individu vaak geëvalueerd op basis van meerdere

gevallen, de �tness cases. De �theidsfunctie moet voldoende algemeen zijn, zodat de

evolutie voldoende vrijheid heeft in het oplossen van het probleem. Naast de functie-

en terminalenverzameling is dit een van de belangrijkste keuzes die de operator moet

maken om het evolutieproces te sturen. We komen meer in detail op �theidsfuncties

terug in paragraaf 2.6.2.

2.1.4 Selectiemethodes

De kern van de evolutietheorie stelt dat vooral de best aangepaste individuen zich

kunnen voortplanten. Om deze natuurlijke selectie te kunnen doorvoeren bestaan een

aantal selectiemethodes om individuen van de oude generatie te selecteren. Deze kun-

8

HOOFDSTUK 2. GENETISCH PROGRAMMEREN

nen dan, al dan niet in aangepaste vorm, overgaan naar de volgende generatie. De twee

belangrijkste selectiemethodes zijn �tness proportionate selection (FPS) en tornooise-

lectie (TS, tournament selection).

Bij gebruik van FPS is de kans op selectie proportioneel met de �theid van het indivi-

du. Betere individuen hebben dus meer kans om geselecteerd te worden en te kunnen

voortplanten. De kans van selectie is dan de �theid van het individu over de som van

de �theden van de hele populatie.

Bij TS wordt vooraf een parameter gede�nieerd, de grootte van het tornooi. Er worden

willekeurig individuen geselecteerd tot de tornooigrootte bereikt is. Enkel het beste

individu uit het tornooi gaat dan verder. De selectiedruk van deze methode ligt hoger,

zeker naarmate de tornooigrootte stijgt.

Soms wordt ook gebruik gemaakt van elitisme, dit garandeert dat de beste individuen

(of het beste individu) naar de volgende generatie overgaan. Omdat GP een probabi-

listische methode is, is dit zonder elitisme wel waarschijnlijk, maar nooit zeker.

2.1.5 Genetische operatoren

Telkens een aantal individuen geselecteerd werden voor voortplanting zullen hieruit

door middel van genetische operatoren (i.e. voortplantingsoperatoren) nieuwe indi-

viduen voor de volgende generatie gecreëerd worden. Aan iedere genetische operator

wordt een probabiliteit toegekend die de waarschijnlijkheid aangeeft waarmee deze ope-

rator gebruikt zal worden. Doorgaans wordt per nieuw gecreëerd individu slechts één

operator gebruikt.

De operatoren zijn gebaseerd op de genetische operatoren uit de natuur, deze vormen

bij de voortplanting het genoom (i.e. de verzameling van alle genen) van het nieuwe

organisme op basis van de ouderlijke genomen. We bespreken kort de belangrijkste

operatoren.

Reproductie is de eenvoudigste operatie, het gekozen programma wordt onveranderd

opgenomen in de populatie van de volgende generatie. Doorgaans is de probabiliteit

dat deze operator gebruikt wordt eerder klein (5-10%).

Kruising start met twee geselecteerde programma's uit de huidige generatie en levert

twee nieuwe programma's voor de volgende generatie. Een voorbeeld van deze operator

is uitgewerkt in Figuur 2.3. Voor elk van de twee gekozen individuen wordt een wille-

keurig kruisingspunt (i.e. een knoop uit de boomvoorstelling) gekozen. Deze worden op

de afbeelding met dikkere cirkels weergegeven. Vervolgens worden de deelbomen onder

deze knopen met elkaar verwisseld om te komen tot de twee nieuwe programma's. De

probabiliteit van deze operator is doorgaans groot (80-90%).

Mutatie kan op twee manieren geïmplementeerd worden. Ofwel wordt een willekeurig

9

HOOFDSTUK 2. GENETISCH PROGRAMMEREN

A

B C

F A E

D F

A

A C

F D

A

A C

DC

E

A

B F

F A

D F

F F

Figuur 2.3: GP voorbeeld van genetische operator: kruising.

A

B C

F A E

D F

A

A C

E F E

Figuur 2.4: GP voorbeeld van genetische operator: mutatie.

gekozen terminaal of functie vervangen door een andere willekeurige terminaal of func-

tie. Meestal wordt dit echter algemener bekeken en zal een willekeurig geselecteerde

deelboom vervangen worden door een willekeurig gegeneerde deelboom. Een voorbeeld

hiervan is te zien in Figuur 2.4, de wortelknoop van de geselecteerde deelboom is dikker

aangeduid. De probabiliteit voor deze operator is meestal laag (5-10%). Mutatie kan er

voor zorgen dat er opnieuw voldoende diversiteit in een populatie geïntroduceerd wordt

wanneer vroegtijdige convergentie dreigt. Echter, in vele probleemstellingen kan deze

operator weggelaten worden [19].

Er werden door Koza nog andere, geavanceerdere genetische operatoren voorgesteld,

zoals permutatie, encapsulatie en decimatie [19]. Deze worden echter minder frequent

gebruikt, we gaan hierop dan ook niet verder in.

10

HOOFDSTUK 2. GENETISCH PROGRAMMEREN

2.2 Uitbreidingen en varianten op GP

Een aantal uitbreidingen en varianten op standaard GP werden reeds beschreven en

toegepast. We geven een heel beknopt overzicht met de nadruk op technieken die

relevant zijn voor ER.

2.2.1 Automatisch gede�nieerde functies

Automatisch gede�nieerde functies (ADF, Automatically De�ned Functions) [20] wer-

den voorgesteld als uitbreiding om GP nog meer modulair te maken. Concreet zal de

programmaboom dan bestaan uit één of meerdere takken die functies de�niëren, en een

resultaatproducerende tak die functies kan oproepen zoals gede�nieerd in de andere

tak(ken). Dit laat toe om de decompositie van het probleem in meerdere deelproble-

men, en de correlatie tussen de verschillende deelproblemen aan de evolutie over te

laten. In [20] worden een aantal succesvolle toepassingen van deze techniek beschreven.

2.2.2 Gelaagd leren

Layered learning of gelaagd leren, laat GP toe om een complexe taak te leren aan de

hand van verschillende subtaken die op elkaar voortbouwen. Het complexe probleem

wordt opgedeeld in verschillende deelproblemen die sequentieel door standaard GP op-

gelost worden. De populatie van de laatste generatie voor een bepaald deelprobleem zal

dan gebruikt worden als startpopulatie voor het volgende deelprobleem. In sommige

gevallen laat gelaagd leren toe om gemakkelijker te de�niëren �theidsfuncties te ge-

bruiken. Bovendien is het heel natuurlijk om een probleem op te delen in verschillende

eenvoudigere deelproblemen.

In [13, 14] werd aangetoond dat om complex gedrag aan te leren het voordeliger kan

zijn om gebruik te maken van GP met gelaagd leren dan standaard GP. In een (sterk)

vereenvoudigde simulatieomgeving werden drie robots geleerd om een bal rond te spe-

len zodanig dat een vierde robot deze niet kan bemachtigen. Er werd gebruik gemaakt

van twee lagen (i.e. twee deelproblemen). Het eerste is het precies rondspelen van de

bal tussen drie robots, zonder dat de vierde robot aanwezig is. De �theidsfunctie hier

bestaat uit het maximaliseren van het aantal keren de bal precies doorgespeeld werd

naar een andere robot.

Met de laatste generatie robotsturingen voor dit probleem start men voor aanleren van

het volgende deelprobleem. Nu wordt wel gebruik gemaakt van de vierde robot. De

robots moeten nu niet alleen de bal precies rondspelen, ze moeten ook bewegen om de

bal te kunnen ontvangen zonder dat de vierde robot deze onderschept. De �theidsfunc-

11

HOOFDSTUK 2. GENETISCH PROGRAMMEREN

tie bestaat er nu in om het aantal keer dat de bal geraakt werd door de vierde robot

te minimaliseren. Op deze manier werd de beoogde complexere taak aangeleerd door

opsplitsing in verschillende eenvoudigere taken.

2.2.3 Steady state GP

Steady state GP, zoals bijvoorbeeld gebruikt in [47], maakt geen gebruik van de gene-

rationele aanpak zoals hierboven beschreven. De nieuwe generatie programma's zal dus

niet telkens de oude generatie volledig vervangen. Bij deze aanpak gebeuren de vervan-

gingen incrementeel: telkens een of meerdere nieuwe individuen geproduceerd werden

door toepassing van genetische operatoren, worden deze aan de populatie toegevoegd

en worden de slechtste individuen (evenveel als er nieuwe werden toegevoegd) uit de

populatie verwijderd.

2.2.4 Competitieve co-evolutie

Bij competitieve co-evolutie [9, 33, 37] maakt men gebruik van een zogenaamde wa-

penwedloop tussen verschillende populaties. Zowel de invoer voor het probleem als de

oplossingen worden geëvolueerd. Voorbeelden zijn een populatie prooirobots en een po-

pulatie roofdierenrobots, die beide evolueren en dus steeds tegen betere tegenstanders

geëvalueerd worden [9, 33]. Ook andere problemen hebben een competitieve natuur,

bijvoorbeeld het leren van robotvoetbal [37]. Deze lenen zich heel goed tot competitieve

co-evolutie waarbij een populatie het opneemt tegen een andere, en beide gelijktijdig

evolueren. Er is aangetoond dat dit kan leiden tot meer robuuste oplossingen. Een

enkele populatie tegenover bijvoorbeeld een handgecodeerde oplossing zal vaak in staat

zijn om een bepaalde strategie te ontwikkelen die geschikt is tegen deze ene handge-

codeerde tegenstander. Echter, bij co-evolutie zal de andere populatie telkens nieuwe

combinaties van technieken uitproberen om toch maar beter te presteren dan de andere

populatie. Een evenwichtstoestand wordt dus maar zelden bereikt.

2.2.5 Embodied Evolution

Embodied Evolution maakt gebruik van een populatie van robots die met elkaar repro-

duceren terwijl ze zich in de omgeving bevinden waar ze hun taak uitvoeren. Evaluatie,

selectie en reproductie worden uitgevoerd door de robots zelf, in interactie met elkaar

[39, 40]. Dit is een gedistribueerde aanpak.

12

HOOFDSTUK 2. GENETISCH PROGRAMMEREN

2.3 Keuze voor GP

We vermelden kort een aantal voordelen van GP die ons er toe brachten om gebruik

te maken van deze techniek. Sommige voordelen zijn algemeen geldig, andere gelden

speci�ek voor robotsturingen.

• In tegenstelling tot veel andere evolutionaire algoritmen zijn de resultaten van GP

variabel in grootte, wat een belangrijk pluspunt is. Zo moet de operator niet op

voorhand een bepaalde grootte instellen (bijvoorbeeld bij GA het aantal neuronen,

het aantal verborgen lagen, ...), de evolutie gaat namelijk zelf op zoek naar een

individu dat voldoet, van welke grootte dan ook. In veel probleemdomeinen is

het behoorlijk moeilijk om de grootte vast te leggen, wat deze eigenschap zeer

waardevol maakt.

• Er is weinig of geen verwerking van de resultaten nodig, ieder individu stelt een

programma voor dat onmiddellijk kan uitgevoerd worden. Er gaat dus geen re-

kentijd verloren door het omzetten van de ene representatie naar de andere. De

leesbaarheid van deze programma's is echter doorgaans wel beperkt.

• GP bezit de eigenschap om vaak met robuuste oplossingen te komen. Zo worden

onnauwkeurigheden in de invoer, bijvoorbeeld door ruis, doorgaans goed opgevan-

gen door GP.

• Doordat er met populaties van individuen gewerkt wordt, kunnen deze onafhan-

kelijk van elkaar geëvalueerd worden. De evaluatie van de individuen, meestal

de grootste component in de rekentijd, kan dus heel gemakkelijk geparallelliseerd

worden. Dit levert voordelen op voor de uitvoering op clusters van computers,

maar ook op moderne processors met meerdere kernen. Omdat rekentijd in evo-

lutionaire algoritmen soms sterk oploopt is dit een handige eigenschap.

• Robotsturingen bestaan meestal uit hiërarchisch samengevoegde basisgedragsre-

gels. GP is dus door zijn hiërarchische en modulaire opbouw goed geschikt voor

het evolueren van hiërarchische programma's [40].

• In [34] wordt verdedigd dat GP over een compressiedruk bezit die leidt tot korte,

algemene en elegante oplossingen. GP volgt dus het principe van Occam's scheer-

mes dat stelt dat men best de kortste van twee mogelijke oplossingen kiest, omdat

de korte oplossing doorgaans generieker is. Dit is ook de normale gang van zaken

in de natuur, waar eenvoudige, maar toch algemene oplossingen de voorkeur krij-

gen. Deze eigenschap leidt dus mogelijk tot meer robuuste programma's die ook

13

HOOFDSTUK 2. GENETISCH PROGRAMMEREN

toepasbaar zijn in andere omgevingen dan enkel de speci�eke �tness cases van

tijdens de evolutie.

We merken hierbij wel op dat er onderscheid moet gemaakt worden tussen de

e�ectieve lengte en de absolute lengte van programma's gegenereerd door GP. De

absolute lengte van de programma's heeft inderdaad vaak de neiging om steeds

groter te worden gedurende de evolutie. Echter in deze programma's zitten vaak

introns, programmadelen die nooit uitgevoerd worden. Deze zijn vergelijkbaar

met het junk-DNA uit de natuur, dat geen functionele waarde heeft. Wanneer

we deze introns weglaten, dan resulteert dit in een programma met de e�ectieve

lengte.

In [34] wordt wel opgemerkt dat deze eigenschap ook een nadeel kent, zo is het

mogelijk dat deze eigenschap te sterk wordt, leidt tot vroegtijdige convergentie,

en dus resulteert in een korte maar onvolledige oplossing. Het is dus belangrijk

om deze druk optimaal te balanceren.

• Doordat er een zeer grote variatie in computerprogramma's mogelijk is, zijn heel

gecompliceerde structuren mogelijk [44], bijgevolg kan GP toegepast worden in

een groot aantal domeinen. Deze generieke eigenschap resulteerde reeds in een

heel divers toepassingsgebied [19]. GP werd onder andere al succesvol toegepast

in schakelontwerpen, robotsturingen, digitale signaalverwerking, regeltechniek, ...

2.4 Resultaten met GP in evolutionaire robotica

Evolutionaire robotica is een nog jonge discipline, en het onderzoek biedt potentieel om

nog heel sterk te groeien. Door gebruik te maken van GA werden al mooie resultaten

bereikt [15, 32, 33, 45]. Vaak zijn de experimenten beperkt tot simulaties, toch werd in

sommige gevallen gebruik gemaakt van echte robots.

GP werd voor evolutionaire robotica veel minder vaak gebruikt. Bovendien zijn veel

experimenten enkel in een vereenvoudigde simulatie uitgevoerd. We geven een kort

overzicht van enkele representatieve resultaten behaald met GP.

2.4.1 Ontwijken van objecten

Obstacle avoidance of het ontwijken van objecten (voorwerpen, muren, ...) is een vaak-

gebruikt experiment binnen de robotica. In [35] werd met behulp van steady-state GP

een controller ontwikkeld voor de besturing van de Khepera-robot. Er werd gebruik

gemaakt van een populatie van 50 individuen, wat klein is in vergelijking met andere

experimenten. Dit werd getest in twee verschillende trainingsomgevingen. De �theids-

14

HOOFDSTUK 2. GENETISCH PROGRAMMEREN

functie bestond uit een positief gedeelte: snel en recht vooruitrijden, en een negatief

gedeelte: de som van alle sensorwaarden. In 200-300 generaties werden goede sturingen

ontwikkeld voor beide omgevingen. Er werd getraind op de echte robot, en de input

bestond uit zes sensorwaarden, die door het programma omgezet moesten worden in

twee waarden die zorgen voor de aansturing van beide motoren van de robot. Als func-

tieverzameling werden allemaal low-level operaties (add, sub, mul, shl, shr, xor, or,

and) gebruikt. Het resulterende programma is robuust, in die zin dat ook in andere

omgevingen succesvol objecten worden ontweken.

2.4.2 Volgen van muren

Een andere veelgebruikt experiment binnen de robotica is het volgen van muren met

een robot, het zogenaamde wall following. Dit is een basisvaardigheid die nodig is in

veel verschillende complexere taken. In [22] werden hiervoor succesvolle programma's

ontwikkeld dankzij GP. Er werd gebruik gemaakt van een populatie van 1000 individu-

en en 100 generaties.

We merken op dat deze experimenten niets te maken hebben met een realistisch robot-

platform. Zo bestaat de simulatieomgeving uit cellen voorgesteld als een matrix. De

�robot� kan zich met behulp van één enkele terminaal exact een cel verplaatsen. De

sensors werden perfect verondersteld en geven dus aan of op een naburige cel een muur

aanwezig is. Dergelijke vereenvoudigde simulaties vormen een basis, maar zijn geenszins

te vergelijken met meer geavanceerde aanpakken in een realistische simulatieomgeving

of op een echte robot.

2.4.3 Gangenstelsels volgen

Een andere toepassing, corridor following werd beschreven in [42]. In dergelijke expe-

rimenten is het de bedoeling om met een robot op een e�ciënte manier een bepaald

gangensysteem te volgen naar de uitgang, zonder tegen de muren aan te rijden. Om

dit op een robuuste manier te verwezenlijken werd zowel aan de sensorwaardes als aan

het stuurmechanisme ruis toegevoegd. Dankzij steady state GP werden hiervoor in si-

mulatie redelijk succesvolle sturingen ontwikkeld.

Naast de vaste plaatsing van negen sensoren (aan de hand van negen terminalen) werd

in een andere experiment ook de plaatsing en de hoeveelheid sensoren overgelaten aan

de evolutie. Men spreekt dan van morfologie van sensoren, we komen hierop terug in

Hoofdstuk 4. Het evolutieproces beschikte over een sensorfunctie waaraan een bepaal-

de hoek meegeven kon worden, waarvoor vervolgens de corresponderende sensorwaarde

berekend werd. Virtueel waren er dus 360 mogelijke sensoren. Om het aantal werkelijk

15

HOOFDSTUK 2. GENETISCH PROGRAMMEREN

gebruikte sensoren te beperken mocht een programma niet groter worden dan vijfen-

dertig knopen.

Waar de oplossing voor de opstelling met vaste sensors reeds gevonden werd in de

initiële populatie (dus via random search, waarschijnlijk gefaciliteerd door de sterke

vereenvoudiging van het probleem), was in het tweede opzet GP wel degelijk nodig.

Met een populatie van 2000 individuen en het equivalent van 15 generaties (gereali-

seerd via steady state GP), werd een sturing geëvolueerd die, op één gangenstelsel na,

telkens correct kon navigeren.

Er werden in dit experiment een aantal vereenvoudigingen doorgevoerd. Zo rijdt de ro-

bot in de simulatieomgeving met een constante snelheid vooruit, de robotsturing moet

dus alleen bepalen op welk moment over welke hoek gedraaid wordt. Bovendien werden

de gangen net smal genoeg gemaakt zodat de robot niet kan draaien en in de verkeer-

de richting verder rijden. Ook zijn de gangenstelsels waarin de robot moet navigeren

eerder kort.

2.4.4 Robotvoetbal

Tot slot willen we nog kort de robotsturingen vermelden die met behulp van GP ont-

wikkeld werden voor de deelname aan de IJCAI/RoboCup97 -wedstrijd [26]. Dit zijn

voetbalwedstrijden voor teams van 11 robots die in simulatie plaatsvinden. Daarbij

werd het GP-resultaat in competitie getest tegen verschillende andere handgecodeerde

oplossingen. Deze GP-aanpak won twee wedstrijden tegen handgecodeerde oplossingen.

2.5 De probleemstelling in detail

De hoofddoelstelling van dit werk is om de haalbaarheid na te gaan om een algemene

e�ciënte robotsturing te ontwikkelen voor een realistisch robotplatform die in staat is

om door gangenstelsels te navigeren (corridor following). De robot moet zonder bot-

singen van het beginpunt van het gangenstelsel naar de uitgang navigeren.

Concreet maken we gebruik van het robotplatform van de EyeBot (S4 Soccerbot)1, waar-

van de nieuwste generatie te zien is in Figuur 2.5. Dit platform bestaat niet enkel uit de

robot, er is ook een simulatieomgeving beschikbaar. Code voor de simulatieomgeving

is onmiddellijk overdraagbaar naar de echte robot.

Onze opstelling verschilt van deze in [42] (zoals samengevat in paragraaf 2.4.3) in ver-

schillende opzichten. Enerzijds streven we er naar om een algemene oplossing te reali-

seren. Niet enkel een oplossing die werkt voor de trainingsvoorbeelden, we willen ook

1http://robotics.ee.uwa.edu.au/eyebot/

16

HOOFDSTUK 2. GENETISCH PROGRAMMEREN

Figuur 2.5: De EyeBot S4 Soccerbot.

nagaan of de robotsturing ook andere gangenstelsels succesvol kan volmaken. Verder

is de simulatie niet vereenvoudigd. Zo zijn de gangen veel breder dan de robot zelf,

het is dus mogelijk dat deze draait en in de verkeerde richting verder rijdt. De robot

rijdt niet met een constante snelheid vooruit, zowel sturen als vooruitrijden zal door de

evolutie moeten opgelost worden. De gangenstelsels bevatten zowel bochten van 90◦ als

van 180◦. Gangenstelsels zijn variabel in lengte en in aantal bochten.

2.6 Aanpak

De parameters en technieken die we zullen gebruiken als uitgangspunt voor onze expe-

rimenten worden in de volgende paragrafen uitgewerkt. Zo zullen we onze keuze van

terminalen en functies toelichten, alsook de gebruikte �theidsfunctie en de standaard-

parameters.

2.6.1 Keuze van terminalen en functies

In Tabel 2.1 staan de terminalen en functies opgesomd die we in de experimenten als

basisopstelling zullen gebruiken. Er valt op dat we voornamelijk gebruik gemaakt heb-

ben van instructies op hoog niveau zoals een zekere afstand vooruit of achteruit rijden,

draaien, ... Enerzijds is dit omdat deze zeer geschikt zijn voor de omgeving waarin

de robot zal gebruikt worden. Anderzijds worden deze standaard door de API van de

EyeBot aangeboden. Dit is dan ook de aangewezen manier waarop programmeurs de

robot aansturen.

De functie IF-LESS-THEN-ELSE (in de code afgekort tot IF_LESS) ligt voor de hand.

Deze evalueert de eerste twee argumenten (beide mogelijks volledige deelbomen). Wan-

17

HOOFDSTUK 2. GENETISCH PROGRAMMEREN

Terminalen Resultaat

moveforward Rijdt 10 cm vooruit, geeft -1 terug

movebackward Rijdt 10 cm achteruit, geeft -1 terug

turnleft Draait 90◦ naar links, geeft -1 terug

turnright Draait 90◦ naar rechts, geeft -1 terug

high Geeft constante 150 terug

low Geeft constante 75 terug

psdleft Afstand tot eerstvolgende object in mm

psdright Afstand tot eerstvolgende object in mm

psdfront Afstand tot eerstvolgende object in mm

Functies Ariteit

IF_LESS 4

PROGN2 2

Tabel 2.1: Gebruikte functies en terminalen

neer het resultaat van het eerste argument kleiner is dan het tweede, dan wordt het

derde argument uitgevoerd, in het andere geval wordt het vierde argument uitgevoerd.

Om deze functie zinvol te kunnen gebruiken is het dus nodig dat iedere terminaal, naast

de eventuele actie die deze uitvoert, een waarde teruggeeft. Omdat dit voor sommige

terminalen niet op een zinvolle wijze kan gebeuren, wordt dan -1 teruggegeven. Op

deze manier is de functie robuust en wordt voldaan aan de sluitingseis. Bovendien kan

ze ook gebruikt worden om telkens sequentieel drie dezelfde opdrachten uit te voeren

(waarbij de eerste twee argumenten telkens -1 teruggeven, zodat altijd hetzelfde uitge-

voerd wordt).

Voor de functie PROGN2 is dit resultaat niet van belang. Deze neemt twee argumenten

aan, voert eerst het eerste uit en daarna het tweede. Er wordt geen rekening gehouden

met de resultaten die worden teruggegeven. Deze functie laat toe om hiërarchische

constructies mogelijk te maken. Beide functies worden vaak gebruikt binnen GP.

Verder werden ook nog twee constantes opgenomen, deze kunnen gebruikt worden om

de sensorwaarden mee te vergelijken, en op basis hiervan beslissingen te nemen. Deze

kunnen dus functioneren als drempelwaarden. Net als de sensoren geven deze enkel een

waarde terug, er is geen actie mee gekoppeld.

De PSD-sensoren tenslotte worden gebruikt via psdleft, psdright en psdfront. Om de

ontwikkelde sturing achteraf van de simulatieomgeving te kunnen overbrengen naar

de echte robot, zullen we initieel gebruik maken van de sensorplaatsingen zoals deze

18

HOOFDSTUK 2. GENETISCH PROGRAMMEREN

Figuur 2.6: De standaardsensors op de EyeBot.

standaard op robot aanwezig zijn. Dit is te zien in Figuur 2.6.

2.6.2 Fitheidsfunctie

De �theidsfunctie geeft aan hoe goed het gedrag van een bepaald individu voldoet

aan de vooropgestelde doelstellingen. Naast de keuze van de terminalen is de keuze

van de �theidsfunctie van groot belang om tot een succesvolle evolutie te komen. Het

evolutieproces zal immers zoeken in de ruimte die gecreëerd wordt door alle mogelijke

programma's af te beelden op alle mogelijke �theden. Als algemene regel geldt dat de

�theidsfunctie niet te speci�ek mag gekozen worden om de evolutie voldoende vrijheid

te laten in het oplossen van het probleem. Omdat dit niet voor de hand ligt, wordt

vaak een �theidsfunctie gekozen aan de hand van trial and error.

Verder is het ook belangrijk dat deze �theidsfunctie in alle stadia van de evolutie bruik-

baar is [33], en voldoende onderscheid kan maken tussen (licht) verschillend presterende

individuen. Zo moet zelfs al in de eerste stappen van de evolutie een onderscheid kunnen

gemaakt worden tussen slecht presterende en net iets beter presterende individuen om

de evolutie goed te kunnen sturen. Analoog zal ook in latere stadia van de evolutie het

verschil tussen zeer goede en uitstekende individuen gemaakt moeten kunnen worden.

In [10] werd voorgesteld om een raamwerk, de Fitness Space2, te gebruiken om ge-

makkelijker �theidsfuncties te kunnen opstellen, evalueren, en vergelijken. Dit is een

driedimensionale ruimte: de functionele- en gedragsdimensie, de externe-interne di-

mensie, en de expliciete-impliciete dimensie. Omdat de keuze van de �theidsfunctie

van fundamenteel belang is, geven we een kort overzicht.

Functionele- en gedragsdimensie

De eerste dimensie beschrijft de verhouding tussen de oorzaken van het gedrag (functi-

onele dimensie) ten opzichte van de gevolgen van het gedrag (gedragsdimensie) van een

2Dit is niet hetzelfde als het Fitness Landscape, dit is de ruimte die alle �theidswaarden corresponderend

met alle mogelijke programma's bevat.

19

HOOFDSTUK 2. GENETISCH PROGRAMMEREN

individu in de �theid. Het functionele luik zal resulteren in een sterke overeenkomst met

het gewenste gedrag, maar laat dikwijls nog maar weinig mogelijkheden aan het evolu-

tieproces over. Bovendien is het mogelijk dat wanneer de mechanische eigenschappen

of omgevingsfactoren niet exact in rekening werden gebracht, niet het gewenste resul-

taat zal bereikt worden. De gedragsdimensie zal veel meer vrijheid overlaten aan de

evolutie, maar het resultaat zal mogelijks niet exact voldoen aan de verwachtingen van

de operator. Zo zal bijvoorbeeld een robot waarvan gevraagd wordt om zich voort te

bewegen niet al stappend, maar al kruipend te werk gaan. Op deze manier laat men

veel meer vrijheid over aan de creativiteit van het evolutieproces.

Externe-interne dimensie

De externe component van de �theidsfunctie bevat elementen die niet rechtstreeks door

de robot kunnen worden waargenomen. Zo zal bijvoorbeeld de afstand tot het doel

waarschijnlijk niet door de robot, maar enkel door de simulatieomgeving of een externe

waarnemer gekend zijn. Interne componenten zijn wel direct waarneembaar door de

robot. Zo is bijvoorbeeld de toestand van de sensoren doorgaans wel gekend door de

robot zelf. Vaak zal externe informatie veel preciezer zijn, en is deze ook beschikbaar

voor de simulatie. Toch gaat de voorkeur uit om zeker ook interne componenten op te

nemen. Anders is het mogelijk dat het evolutieproces er niet in slaagt om het gewenste

gedrag te ontwikkelen omdat dit niet door de (interne) karakteristieken van de robot

kan worden beschreven noch herkend.

Expliciete-impliciete dimensie

Deze dimensie wordt voornamelijk bepaald door het aantal beperkingen dat in de �t-

heidsfunctie vervat zit. Ruwweg betekent dit hoe meer componenten, hoe explicieter

de �theidsfunctie. Meer componenten opnemen kan tot twee problemen leiden. Ten

eerste moeten al deze componenten op een bepaalde wijze gecombineerd (additief, mul-

tiplicatief, ...) en gewogen (een component kan belangrijker zijn dan andere) worden.

Ten tweede zullen op deze manier waarschijnlijk meerdere lokale optima ontstaan. Dit

maakt dat het probleem te moeilijk kan worden voor het evolutieproces, vooral tijdens

de eerste generaties. Bovendien zal in het geval van te expliciete �theidsfuncties het

evolutieproces mogelijks beperkt zijn in oplossingsmogelijkheden.

Resultaat

Rekening houdend met deze informatie zullen we gebruik maken van een �theidsfunctie

bestaande uit drie additieve componenten.

20

HOOFDSTUK 2. GENETISCH PROGRAMMEREN

Figuur 2.7: De verschillende componenten uit de �theidsfunctie.

• De basiscomponent (in Figuur 2.7 aangeduid met het nummer 1) bestaat uit de

afgelegde afstand, gerekend in vogelvlucht vanaf het startpunt tot het punt waarop

de robot de simulatie beëindigde. Deze component zorgt ervoor dat ook in de

eerste generaties duidelijk onderscheid kan gemaakt worden tussen een individu

dat helemaal niets kan en een individu met meer potentieel.

• Bovenop deze basiscomponent komt een vaste bonus (plus drie) voor ieder individu

dat het einde van het gangenstelsel haalt. Daarbovenop wordt een variabele bonus

toegekend voor het resterend aantal bewegingen, namelijk vier maal het resterend

aantal bewegingen gedeeld door het maximaal aantal bewegingen. Op deze manier

kan ook een onderscheid gemaakt worden tussen goede en nog betere sturingen.

De e�ciëntste sturing die zonder omwegen (bijvoorbeeld een stuk terugkeren) en

zonder botsingen het eindpunt bereikt zal op deze manier een hogere score krijgen

dan een redelijke sturing die iets meer bewegingen nodig had. In Figuur 2.7 wordt

de nog af te leggen afstand ten opzichte van de huidige positie van de robot tot

het behalen van de bonus aangeduid met het nummer 2.

• Omdat de robots niet tegen de muren aan mogen rijden, worden deze ook bestraft.

Er wordt een penalty opgelegd telkens een robot te dicht tegen een muur aankomt.

Deze straf houdt in dat het totaal aantal bewegingen dat de robot mag uitvoeren

wordt verminderd met drie. Om deze strafmaat intern te houden voor de robot,

zal deze gebruik maken van de sensors van de robot zelf, met een bijkomende

sensor achteraan. Figuur 2.7 toont met het nummer 3 aan dat de afstand tot de

muren, en dus de sensorwaarden, niet te klein mogen worden.

21

HOOFDSTUK 2. GENETISCH PROGRAMMEREN

Tijdens de evaluatie mag ieder individu 500 bewegingen (vooruit, achteruit, draaien)

maken. Dit volstaat ruimschoots om volledig door de omgevingen te kunnen navige-

ren. Deze limiet kan vergeleken worden met een beperkte batterijduur; binnen deze tijd

moet de robot een zo goed mogelijk parcours a�eggen. Door de strafcomponent zullen

slecht presterende individuen dus minder simulatietijd krijgen doordat ze veel botsingen

veroorzaken. Dit is wenselijk omdat op deze manier geen simulatietijd verloren gaat

aan slecht presterende sturingen.

Met deze �theidsfunctie willen we dus individuen evolueren die e�ciënt (zonder om-

wegen) en zonder botsingen het gangenstelsel volgen. Hoe de robot dit gangenstelsel

exact moet volgen hebben we niet gespeci�eerd. We konden dit wel gedaan hebben

door bijvoorbeeld te stellen dat op ieder moment de sensoren van de robot een zo groot

mogelijke waarde moeten hebben. Op deze manier zou de robot telkens zoveel mogelijk

in het midden tussen twee muren rijden. Om het evolutieproces zoveel mogelijk vrijheid

te geven, hebben we hier dus geopteerd om een gedragscomponent te gebruiken, en niet

zozeer een functionele component.

Om nu te komen tot een genormaliseerde waarde kleiner dan 1, zullen we tweemaal

de volgende transformatie doorvoeren: bij het resultaat wordt 1 opgeteld en dit getal

wordt vervolgens geïnverteerd.

2.6.3 Standaardparameters

In Tabel 2.2 werden de standaardparameters die we zullen gebruiken in onze experimen-

ten opgesomd. Wanneer verder niet expliciet gesteld wordt wat de waarde van bepaalde

parameters is, dan werden deze standaardwaarden gebruikt.

Om de rekentijd beperkt te houden, is onze standaardwaarde voor de populatiegrootte

bewust eerder laag gehouden in vergelijking met wat in de literatuur gangbaar is. Ver-

der zullen we, in lijn met de standaardkeuzes bij GP, geen gebruik maken van mutaties.

Omdat GP een probabilistisch algoritme is, leiden verschillende uitvoeringen meestal

tot een verschillende oplossing, afhankelijk van de seed die gebruikt werd. Sommige

uitvoeringen zullen nooit het globale optimum vinden, bijvoorbeeld omdat ze prema-

tuur convergeren naar een suboptimale oplossing. Omdat deze kans niet helemaal uit

te sluiten valt, kan gebruik worden gemaakt van meerdere uitvoeringen, telkens met

een verschillende seed. Opnieuw om de rekentijd niet te sterk te laten toenemen zullen

we gebruik maken van telkens drie onafhankelijke uitvoeringen.

22

HOOFDSTUK 2. GENETISCH PROGRAMMEREN

Algemeen

Aantal generaties per simulatie 50

Populatiegrootte 300

Aantal onafhankelijke simulaties per experiment 3

Generatie van initiële populatie

Methode ramped half-and-half

Minimale diepte 2

Maximale diepte 6

Selectie en genetische operatoren

Selectiemethode Tornooiselectie met grootte 7

Kruisingsprobabiliteit 90%

Reproductieprobabiliteit 10%

Mutatieprobabiliteit 0%

Selectie van functies als kruisingspunten 90%

Selectie van terminalen als kruisingspunten 10%

Maximale diepte van deelboom geselecteerd voor kruising 17

Tabel 2.2: Standaardparameters

2.7 Simulatie versus echte robot

In de literatuur is al veel verschenen over het gebruik van een simulator dan wel een

echte robot [2, 12, 15, 16, 32, 33, 42, 45]. Zo is bijvoorbeeld geregeld kritiek te lezen

over het gebruik van een simulator, zonder achteraf te veri�ëren op een echte robot

[32, 33]. Bovendien wordt soms gebruik gemaakt van te sterk vereenvoudigde simulaties,

zoals eenvoudige rastervoorstellingen. Verder zullen we het enkel hebben over meer

realistische simulaties waarbij de modellering gebaseerd is op echte robots.

2.7.1 Afwegingen bij gebruik van simulaties

We bespreken kort de belangrijkste afwegingen die moeten gemaakt worden bij het al

dan niet gebruik van een simulator voor het uitvoeren van GP.

• Uitvoeren van individuen, vooral in de eerste generaties, kan robots beschadigen

doordat de sturingen nog niet goed functioneren. Zo is het mogelijk dat robots

beschadigd raken door tegen hoge snelheid aanrijdingen te veroorzaken.

• Batterijen hebben meestal een beperkte levensduur, een duurzame energievoorzie-

23

HOOFDSTUK 2. GENETISCH PROGRAMMEREN

ning met behulp van een kabel kan in sommige gevallen de simulatie bemoeilijken.

Bovendien moet de robot in veel gevallen terug gepositioneerd worden binnen een

bepaald oppervlak. Zo is het mogelijk dat een bepaalde sturing moet starten met

de robot tegen een muur (een nadelige situatie), omdat de vorige sturing tegen de

muur gereden is. Ook het opnieuw positioneren van objecten in de omgeving kan

problemen opleveren.

• Evolutionaire berekeningen kunnen veel tijd in beslag nemen; dagen en zelfs weken

zijn geen uitzonderingen. Deze kunnen veel sneller verlopen in simulatie dan op

echte robots. Bovendien kan dit op meerdere computers tegelijk gebeuren, zonder

dat er ook werkelijk meerdere robots ter beschikking zijn.

• In simulatie kan de analyse van de prestatie van robots soms veel eenvoudiger zijn

dan op echte robots. In het laatste geval zijn vaak beeldverwerkingstechnieken

nodig, terwijl in simulatie vaak veel parameters onmiddellijk beschikbaar zijn.

• Wanneer simulaties niet voldoende realistisch gebeuren, dan worden de resultaten

al snel onbruikbaar. Zo is het mogelijk dat sturingen die in simulatie perfect wer-

ken, niet voldoen op een echte robot. Onder andere doordat de simulatie van de

sensoren en actuatoren niet correct genoeg gebeurde. Omdat dit laatste een moei-

lijk probleem is, is dit steeds een gevaar bij het gebruik van simulaties. Bovendien

bestaat de mogelijkheid dat de evolutie toevalligheden of onvolmaaktheden in de

simulator zal uitbuiten om tot een oplossing te komen. Deze oplossing is dan

doorgaans onbruikbaar in de realiteit.

Het gebruik van simulaties is dus zonder meer voordelig op voorwaarde dat we over

een realistische simulator beschikken. Er zijn een aantal methodes om een realistische

simulator te implementeren [33].

Zo werd reeds gesuggereerd om gebruik te maken van minimale simulaties (minimal

simulations). Hierbij worden enkel de karakteristieken die relevant zijn voor het ge-

wenste gedrag accuraat gemodelleerd in de simulator. De andere aspecten, die niet

relevant zijn voor het gedrag dat moet aangeleerd worden, worden willekeurig gekozen

en iedere simulatie opnieuw veranderd. Op deze manier kan de evolutie op basis van

deze aspecten geen verkeerde a�eidingen maken, en zal enkel gebruik gemaakt worden

van de relevante eigenschappen. De ontwikkelde sturing zal bovendien robuuster zijn.

Een andere mogelijkheid bestaat erin om een simulator te maken gebaseerd op wiskun-

dige modellen van de robot en de omgeving. Deze basisversie kan dan verbeterd worden

door vervolgens op basis van empirische resultaten, zoals een grote hoeveelheid metin-

gen op echte robots, aanpassingen door te voeren om de realistische eigenschappen van

24

HOOFDSTUK 2. GENETISCH PROGRAMMEREN

sensoren, motoren, ... correct te modelleren. Deze aanpak zal leiden tot een betere

simulator, maar is nog steeds niet perfect. Zo vertonen echte sensoren en actuatoren

heel vaak kleine afwijkingen. Daardoor wijkt het gedrag van twee (mechanisch en elek-

tronisch) identieke robots vaak toch licht van elkaar af.

Omdat het maken van een perfecte simulator een complexe aangelegenheid is, worden

vaak tussenoplossingen gebruikt. Zo kan men het evolutieproces starten in simulatie en

na een zeker aantal generaties overgaan tot enkele veri�catiegeneraties op echte robots.

Met dit resultaat gaat men dan enkele generaties verder in simulatie om dan opnieuw

te wisselen, en zo verder [12]. Op deze manier zal verhinderd worden dat door een niet

perfecte simulatie de evolutie verkeerd convergeert.

Bovendien zijn er reeds een aantal evolutionaire experimenten beschreven waarbij de in

simulatie geëvolueerde sturingen achteraf succesvol naar een echte robot overgebracht

werden.

We concluderen dat simulaties heel voordelig zijn wanneer deze precies genoeg zijn, of er

bijzondere voorzorgsmaatregelen genomen worden zodat de evolutie niet de kans krijgt

om imperfecties en toevalligheden in de simulatie uit te buiten. Dit kan bijvoorbeeld

door het toevoegen van een zekere willekeurigheid of ruis opgelost worden [15, 16, 42].

2.7.2 Simulatieomgeving

We zullen hier zoals reeds aangehaald gebruik maken van het EyeBot-platform. Deze

bestaat uit het RoBIOS besturingssysteem dat beschikbaar is voor verschillende types

robots. Bovendien is een simulatieomgeving (EyeSim) beschikbaar met dezelfde API

als echte robots. Programma's kunnen dus snel overgedragen worden van simulatie

naar realiteit en omgekeerd. In [2, 16] worden meer details over de simulatieomgeving

uitgewerkt.

Verder kan het sturen van de motoren zowel op hoog als laag niveau gebeuren, en kun-

nen een groot aantal parameters ingesteld worden met betrekking tot het aantal en

de plaatsing van de sensoren, de omgeving, ... Ook de simulatiesnelheid kan ingesteld

worden.

De belangrijkste feature is echter de mogelijkheid om ruis toe te voegen aan zowel sen-

soren als actuatoren. Voor de PSD-sensoren en de sturingen werd hiervoor gebruik

gemaakt van een additief model met witte ruis, gemodelleerd door een normaal ver-

deelde distributie met gemiddelde nul. De standaarddeviatie kan worden ingesteld. Dit

model is uitermate geschikt omdat op deze manier eerder willekeurige waarden wor-

den toegevoegd, zodat toevalligheden en onvolmaaktheden in de simulatie niet kunnen

uitgebuit worden door de evolutie. Echter, omdat deze implementatie iets te weinig

25

HOOFDSTUK 2. GENETISCH PROGRAMMEREN

�exibel is voor onze doeleinden, maakten we gebruik van een eigen implementatie3, zij

het met identiek hetzelfde model.

Voor de eigenlijke GP-functionaliteit maakten we gebruik van ECJ (versie 18)4, een on-

derzoeksplatform dat verschillende evolutionaire algoritmen ondersteund, en geschreven

is in Java. Het is een �exibel systeem dat werd ontwikkeld aan het Evolutionary Com-

putation Laboratory, ECLab aan de George Mason Universiteit.

2.8 Robuustheid van de oplossing

Om een zo robuust mogelijke oplossing mogelijk te maken, worden in [48] een aantal

mogelijkheden opgesomd. Omdat we hier streven naar een oplossing die algemeen

geldig is, en niet enkel voor de �tness cases van tijdens de evolutie, zullen we deze

mogelijkheden dan ook maximaal gebruiken. Om de perfecte oplossing te verkrijgen

is het voldoende om alle mogelijke situaties waarmee het programma geconfronteerd

kan worden op te nemen als �tness cases. Echter, in quasi elke realistische toepassing

is dit wegens e�ciëntieredenen onmogelijk. De volgende technieken kunnen hiervoor

uitkomst bieden.

Meerdere leervoorbeelden

Het gebruik van meerdere leervoorbeelden (i.e. �tness cases) zal meer generieke oplos-

singen opleveren dan telkens slechts een enkel leervoorbeeld te gebruiken. Anders is het

mogelijk dat het algoritme dit voorbeeld eenvoudigweg �memoriseert� in plaats van een

algemene techniek te ontwikkelen.

Belangrijk hier is om een afweging te maken inzake hoeveel leervoorbeelden nodig zijn.

Te weinig voorbeelden zullen leiden tot broze (brittle) oplossingen. Deze zijn speci�ek

geldig voor de leervoorbeelden, maar falen vaak in andere situaties. Te veel voorbeelden

zullen alleen maar de rekentijd sterk laten oplopen. Bovendien verloopt de marginale

meeropbrengst bij bijkomende leervoorbeelden dalend.

Wisselen van de leerverzameling

Door gedurende de evolutie regelmatig de verzameling van leervoorbeelden te wisselen,

zal men verhinderen dat convergentie naar een bepaalde verzameling van voorbeelden

optreedt. Opnieuw is deze techniek aangewezen om een algemeen algoritme te ontwik-

kelen in plaats van een algoritme dat werkt voor een bepaalde groep voorbeelden. Bij

3Aan de hand van de polaire Box-Muller transformatie.4http://www.cs.gmu.edu/ eclab/projects/ecj/

26

HOOFDSTUK 2. GENETISCH PROGRAMMEREN

grotere leerverzamelingen zal deze techniek doorgaans minder invloed hebben.

Toevoegen van ruis

Tenslotte zal het toevoegen van ruis ook vaak een positieve invloed hebben op de

robuustheid van de geëvolueerde programma's. Ruis zal er toe leiden dat toevallig

geïntroduceerde verbanden in de leervoorbeelden niet door de evolutie kunnen uitgebuit

worden om een oplossing te construeren. Deze techniek werd bijvoorbeeld succesvol

toegepast in [42], waar ruis toegevoegd werd aan de sensorwaarden van de robot. Op

deze manier kan men doorgaans ook sneller en met een grotere succesprobabiliteit de

transfer van simulatie naar de echte robot mogelijk maken.

Co-evolutie

Co-evolutie is een vierde techniek die wordt aangehaald. We zullen er hier echter geen

gebruik van kunnen maken.

27

Hoofdstuk 3

Evolutie van robotsturingen

In dit hoofdstuk geven we een overzicht van de experimenten voor de automatische

evolutie van een algemene robotsturing voor het volgen van gangenstelsels door een

mobiele robot. We benadrukken dat het niet alleen de bedoeling is om een sturing te

ontwikkelen die in staat is om één bepaalde omgeving succesvol te kunnen doorlopen.

Meestal bestaat het resultaat dan uit een programma dat een bepaald stappenplan uit-

voert dat slechts correct is voor één bepaalde omgeving. De sturing zal deze omgeving

als het ware memoriseren. Een dergelijke aanpak, hoewel regelmatig gebruikt in de lite-

ratuur, is te weinig algemeen en heeft slechts een beperkt praktisch nut. Daarom zullen

we niet alleen gebruik maken van verschillende omgevingen waarin getraind wordt, de

robot zal na het evolutieproces ook getest worden in omgevingen waarop niet getraind

werd. Deze tests zullen ons toelaten om de robuustheid van een sturing te beoordelen.

We vervolgen dit hoofdstuk met een kort overzicht van de basisopstelling die verder zal

gebruikt worden in de verschillende experimenten. Daarna geven we aan waarom we

zullen gebruik maken van diversiteitsmaten. Vervolgens bespreken we kort de omgevin-

gen waarin de verschillende experimenten zullen worden uitgevoerd. Hierna geven we

een overzicht van de uitgevoerde experimenten. We beginnen met experimenten in een

perfect veronderstelde simulatieomgeving. We gaan eerst na of het mogelijk is om een

sturing te ontwikkelen die in staat is om in de omgevingen waarop getraind werd suc-

cesvol te kunnen navigeren. Daarnaast veri�ëren we ook of de ontwikkelde sturing ook

in andere omgevingen kan worden gebruikt. Later voegen we ruis toe aan de sensoren

om meer algemene sturingen te kunnen ontwikkelen. Tenslotte gaan we na of we de

resultaten in simulatie ook kunnen overbrengen naar de realiteit en wat de complicaties

zijn die hiermee gepaard gaan.

28

HOOFDSTUK 3. EVOLUTIE VAN ROBOTSTURINGEN

3.1 Basisopstelling

Als basisopstelling zullen we gebruik maken van de parameters zoals deze in paragraaf

2.6 werden beschreven. Wanneer we bepaalde parameters aanpassen of uitbreidingen

maken op dit standaardmodel, worden deze keuzes toegelicht. Wanneer we bepaalde

instellingen niet vermelden dan blijven deze onveranderd in vergelijking met de stan-

daardopstelling.

Tenzij anders vermeld zullen we telkens gebruik maken van drie onafhankelijke uitvoe-

ringen van hetzelfde evolutieproces. Omdat GP een probabilistische techniek is, zullen

deze uitvoeringen verschillende resultaten opleveren, afhankelijk van de initiële wille-

keurige waarde die werd gebruikt. Omdat het evolutieproces heel wat tijd in beslag

neemt, gebruiken we slechts drie uitvoeringen. In het optimale geval zou dit aantal iets

meer bedragen, maar dit is niet opportuun gegeven de benodigde rekentijd.

We gebruiken, in vergelijking met de literatuur eerder beperkte populatiegroottes. Ener-

zijds om de rekentijd te beperken, anderzijds omdat al enkele malen werd aangetoond

dat het vaak beter is om meerdere korte uitvoeringen te hanteren in plaats van één

lange, waarbij in totaal het aantal geëvalueerde individuen hetzelfde is [11, 25].

Bij het toekennen van de penalty voor botsingen maken we gebruik van een extra mar-

ge. We bestra�en namelijk de robot niet enkel bij een botsing, maar ook wanneer deze

te dicht (minder dan 1 cm) tegen een muur aankomt. Zo bouwen we een kleine ex-

tra veiligheid in voor foutmarges van de sensorwaarden op de echte robot. Wanneer

we achteraf de prestaties van de sturing bespreken, en deze ook uittesten op nieuwe

gangenstelsels (waarop niet getraind werd), laten we deze extra veiligheidsmarge weg.

3.2 Diversiteitsmaten

Om de diversiteit binnen een populatie voor te stellen, worden een aantal verschillende

diversiteitsmaten gebruikt. Voor een uitgebreid overzicht hiervan verwijzen we naar

[49] en [48, hoofdstuk 5]. Hier benadrukken we dat, vooral in de eerste generaties, het

zeer belangrijk is dat de populatie een grote diversiteit bezit. Op deze manier wordt

de zoekruimte van het evolutieproces groter en worden dus meer mogelijkheden onder-

zocht. Wanneer de diversiteit te laag wordt, bestaat de kans dat er ofwel te weinig

selectiedruk aanwezig is, ofwel vroegtijdige convergentie optreedt naar een niet optima-

le oplossing.

Binnen de diversiteitsmaten kunnen we twee grote groepen onderscheiden. Zo zijn er

deze die di�erentiëren op basis van de boomstructuur (genotypische diversiteitsmaten),

en deze op basis van de �theid (fenotypische diversiteitsmaten). In dit werk zullen we

29

HOOFDSTUK 3. EVOLUTIE VAN ROBOTSTURINGEN

Figuur 3.1: Enkele van de gebruikte leervoorbeelden van eenvoudig naar moeilijker. Ieder voor-

beeld komt uit één van de vijf categorieën van telkens drie omgevingen waarover de gemiddelde

�theid berekend wordt. Iedere categorie bevat telkens omgevingen die net iets moeilijker zijn

dan de voorgaande. Bijlage B bevat een overzicht van alle omgevingen.

vooral gebruik maken van de entropie [43]. Deze behoort tot de klasse van fenotypische

diversiteitsmaten. Omdat de boomstructuur vaak zeer gevoelig is voor de aanwezigheid

van intronen, die het beeld dat genotypische diversiteitsmaten schetsen sterk kunnen

beïnvloeden, is dit een te verdedigen keuze. De entropie is gebaseerd op de distributie

van de �theidswaarden, wat kan voorgesteld worden in �theidshistogrammen. De entro-

pie wordt voornamelijk gebruikt in de informatietheorie om de hoeveelheid informatie

(of de onzekerheid) aan te duiden. Hier zal een hogere entropie dus corresponderen met

een grotere diversiteit (cfr. onzekerheid). Wanneer we pk gebruiken als voorstelling

voor de fractie van programma's met een bepaalde �theid uit de volledige populatie,

dan wordt de entropie uitgedrukt als volgt: −∑k pk · log pk.

3.3 Omgevingen

Om geleidelijk leren toe te laten, en de evolutie niet onmiddellijk voor een moeilijke

opdracht te plaatsen, maken we gebruik van leervoorbeelden (i.e. omgevingen) die op-

lopend zijn in moeilijkheidsgraad. Iedere evaluatie van de �theid zal gebeuren door

de prestatie uit te middelen over uitvoeringen in drie verschillende omgevingen van een

gelijkaardig niveau. Hiervoor werden vijf categorieën met oplopende moeilijkheidsgraad

samengesteld. Enkele representatieve voorbeelden zijn te zien in Figuur 3.1.

Op deze manier houden we ook rekening met de basiscomponent (i.e. afstand) van de

�theidsfunctie. Zo zal bij de eerste categorie de afgelegde afstand in vogelvlucht op elk

moment ook werkelijk overeenkomen met de robot die het verst in het gangenstelsel

kwam. Bij meer gevorderde categorieën is dit niet langer het geval. Dit is echter geen

probleem omdat individuen uit de corresponderende generaties meestal het volledige

gangenstelsel kunnen volgen, er wordt dan vooral onderscheid gemaakt op de manier

waarop (aantal botsingen, al dan niet terugrijden, ...) het individu navigeert.

30

HOOFDSTUK 3. EVOLUTIE VAN ROBOTSTURINGEN

Categorie Bochten van 90◦ Bochten van 180◦ Lengte

Heel eenvoudig 4 0 54

Eenvoudig 10 1 64

Gemiddeld 12 2 79

Gevorderd 13 4 130

Moeilijk 12 10 148

Tabel 3.1: De vijf categorieën van omgevingen bevatten telkens drie omgevingen van een ge-

lijkaardige moeilijkheidsgraad. Iedere volgende categorie bevat iets moeilijkere gangenstelsels,

in termen van het aantal en type bochten dat werd opgenomen, en de lengte van het optimale

pad door de gangen. Deze lengte is uitgedrukt in het aantal muren van 40cm langs het op-

timaal pad doorheen het gangenstelsel. De gegevens in de tabel sommeren de waarden van

ieder gangenstelsel per categorie.

Het evolutieproces zal dus gebruik maken van een combinatie van meerdere leervoor-

beelden (uitgemiddeld over drie omgevingen) en wisselende leerverzamelingen (iedere

zes generaties wordt van categorie gewisseld1). Dit zijn twee van de opties om het resul-

terende programma robuuster te maken (zie paragraaf 2.8). Deze aanpak is gebaseerd

op gelaagd leren (zie 2.2.2). Zo zullen eerst de basisvaardigheden geleerd worden, met

name rechtdoor rijden zonder tegen muren aan te rijden en een eenvoudige bocht van

90◦ nemen. Eenmaal dit succesvol lukt, kan overgegaan worden naar opeenvolgende

bochten, en in een later stadium ook bochten van 180◦ en combinaties van beide. Dat

de categorieën een stijgende moeilijkheidsgraad vertonen is te zien in Tabel 3.1, waar

de kenmerken van iedere categorie samengevat werden.

3.4 Evolutie in simulatie

In deze sectie willen we nagaan of het met behulp van GP mogelijk is om sturingen voor

mobiele robots te evolueren die in staat zijn om gangenstelsels te volgen in simulatie.

Wanneer dit geen bruikbare resultaten oplevert, is het niet opportuun om verder te gaan

met de evolutie van robotsturingen voor toepassing in de realiteit. Hiervoor zullen we

een aantal experimenten opzetten.

In de eerste plaats willen we nagaan of het mogelijk is om sturingen te ontwikkelen

die in staat zijn om succesvol door de gangenstelsels te navigeren waarin tijdens het

evolutieproces getraind werd. Verder gaan we ook na of deze sturingen in staat zijn om

1De laatste categorie wordt gebruikt voor alle resterende generaties.

31

HOOFDSTUK 3. EVOLUTIE VAN ROBOTSTURINGEN

algemene gangenstelsels op te lossen. Daarvoor maken we gebruik van vijf omgevingen

waarop niet getraind werd, allen minstens even moeilijk op te lossen als deze behorend

tot de categorie moeilijk van de leervoorbeelden.

De rekentijd van de meeste van deze experimenten is iets meer dan dertien uur op een

low-end PC2. We merken wel op dat dit een niet-geoptimaliseerde simulatie betreft.

Wanneer dit echt van belang is, zou de implementatie sneller kunnen gemaakt worden.

3.4.1 Experimenten in een perfecte wereld: opstelling

In een eerste reeks experimenten zullen we zowel sensoren als actuatoren perfect ver-

onderstellen. Zo zullen de sensoren altijd de juiste waarde teruggeven en zal vooruit

rijden altijd over dezelfde afstand gebeuren. Dit is een eenvoudige opstelling om na te

gaan of het mogelijk is om met GP een sturing te ontwikkelen die in staat is om in een

simulatieomgeving correct door een gangenstelsel te navigeren.

In Tabel 3.2 wordt de opstelling van de eerste reeks experimenten samengevat. Met de-

ze experimenten willen we een aantal parameters onderzoeken, we bespreken ze hierna

kort.

Aantal generaties en populatiegrootte

Het aantal generaties en de populatiegrootte zijn twee belangrijke parameters, enerzijds

voor het resultaat, anderzijds voor de rekentijd. We namen een aantal verschillende

con�guraties op.

Leerverzameling en aantal leervoorbeelden

We willen ook nagaan wat de beste aanpak is voor de samenstelling van de leerverza-

meling en het aantal leervoorbeelden. Hiervoor hebben we een aantal mogelijkheden

gede�nieerd.

Standaard De standaardaanpak werd reeds uiteengezet in sectie 3.3. Deze maakt gebruik

van een leerverzameling van drie omgevingen met dezelfde moeilijkheidsgraad.

Iedere zes generaties wordt de leerverzameling opgebouwd uit drie moeilijkere

omgevingen.

Gemengd Naast de standaard zullen we ook een gemengde aanpak testen waarbij ie-

dere categorie iets meer gediversi�eerd wordt. Zo wordt in iedere categorie een

moeilijkere of gemakkelijkere omgeving toegevoegd, naargelang de inhoud van de

2AMD Athlon 64 3800+ (2,4 GHz)

32

HOOFDSTUK 3. EVOLUTIE VAN ROBOTSTURINGEN

categorie respectievelijk vooral uit eenvoudige dan wel moeilijke omgevingen be-

staat. Hierbij bestaat de leerverzameling nog steeds uit drie voorbeelden, en wordt

er om de zes generaties gewisseld. Wanneer we de leervoorbeelden uit de stan-

daardaanpak nummeren van 0 tot 14, dan is de volgorde hier 0, 2, 11, 3, 5, 13, 1,

7, 8, 6, 9, 10, 4, 12, 14.

Schuivend venster Een andere aanpak is om in plaats van telkens de volledige leerverza-

meling te vervangen, iedere keer één leervoorbeeld uit de verzameling te vervangen

door een nieuw leervoorbeeld. De volgorde die gebruikt wordt is dezelfde als bij

de gemengde aanpak. We gebruiken als het ware een venster met grootte drie, dat

geleidelijk doorheen de lijst met alle leervoorbeelden schuift. Verder is de snelheid

(in aantal generaties) waarmee het venster verschuift parametriseerbaar. Om de

evolutie initieel de kans te laten om de basisvaardigheden op te bouwen, blijft de

leerverzameling de eerste acht generaties vast. Met deze aanpak willen we nagaan

of het voordelig is om heel vaak de leerverzameling te veranderen.

Gradueel Omdat de omgevingen telkens moeilijker worden, is het mogelijk dat de evo-

lutie voor de opeenvolgende categorieën telkens iets meer tijd nodig heeft. Deze

graduele aanpak zal dus het evolutieproces toelaten om op iedere nieuwe categorie

(op basis van de gemengde aanpak) langer te leren. Concreet zijn 7, 8, 9, 11 en

15 generaties voorzien voor respectievelijk de eerste tot de vijfde categorie.

Alle vijftien Tenslotte bekijken we ook of het wel de moeite loont om met categorieën

van leervoorbeelden te werken. We gaan na of iedere generatie gebruik maken

van telkens alle vijftien leervoorbeelden ook goede resultaten oplevert. Omdat

bij deze opstelling de rekentijd, door het grote aantal evaluaties, hoog oploopt

(3,5 dagen), zullen we uitzonderlijk slechts één uitvoering beschouwen. Om de

vergelijking mogelijk te maken, maken we in experiment 6 gebruik van dezelfde

opstelling, maar met gemengde leerverzamelingen.

Penalty

De grootte van de strafmaat bij een botsing is één van de parameters uit onze �theids-

functie die moeilijk a priori vast te leggen is. Enige vorm van empirische sturing voor

de keuze van deze waarde is dus niet te vermijden. De waarden waarvan we gebruik

maakten, zijn te zien in Tabel 3.2. Een goede waarde vinden is belangrijk omdat bij

een te kleine strafmaat de robot tegen de muren zal aanrijden omdat hij hiervan toch

weinig nadeel ondervindt bij de evaluatie.

33

HOOFDSTUK 3. EVOLUTIE VAN ROBOTSTURINGEN

Drempelwaarden

Tot slot voegden we in sommige experimenten een extra drempelwaarde (medium) toe.

In deze experimenten wordt de waarde van high gewijzigd van 150 naar 300, en medium

krijgt de waarde 150 toegekend. Op deze manier moeten de robots in staat zijn om

correct te navigeren, ook zonder in de buurt van een muur te blijven.

3.4.2 Experimenten in een perfecte wereld: resultaten

De resultaten van deze eerste reeks experimenten werden samengevat in Tabel 3.3. We

onderscheiden twee gedeeltes in de tabel.

Een eerste bevat de belangrijkste gegevens in verband met het evolutieproces. In de

kolom met als titel Beste, wordt de �theid van het beste individu uit de drie uitvoerin-

gen weergegeven. Deze �theid is de uitgemiddelde waarde over de drie laatste, en dus

meest representatieve omgevingen. We merken op dat de waarden in deze kolom enkel

exact vergelijkbaar zijn tussen experimenten waarbij dezelfde penalty gehanteerd werd.

De volgende kolom bevat de gemiddelde �theid van het beste individu over de drie

uitvoeringen. Deze waarde correspondeert niet met de prestatie van een werkelijk be-

staande sturing, maar is wel heel belangrijk voor het vergelijken van de resultaten tussen

de verschillende opstellingen. Omdat GP een probabilistische methode is, is het immers

mogelijk dat de resultaten van de verschillende uitvoeringen sterk van elkaar verschillen.

Omdat we gebruik maken van slechts drie uitvoeringen, is het dus moeilijk conclusies te

trekken enkel en alleen op basis van het beste individu. Zo is het perfect mogelijk dat

een vierde uitvoering een beter resultaat geeft voor een bepaalde opstelling, waardoor

deze eigenlijk beter is dan een andere opstelling. Door ook het gemiddelde te beschou-

wen, zullen we in staat zijn om algemenere conclusies te maken.

Om de spreiding tussen de verschillende uitvoeringen weer te geven werd gebruik ge-

maakt van de standaardafwijking. Deze laat ons opnieuw toe om meer algemene con-

clusies te trekken over een methode. Wanneer de standaarddeviatie tussen de beste

individuen uit de drie verschillende uitvoeringen klein is, zal de opstelling meestal ge-

lijkaardige resultaten opleveren. Wanneer dit niet het geval is, is het mogelijk dat het

beste resultaat van de drie een uitschieter is, en de methode dus misschien maar zelden

een dergelijk resultaat zal opleveren.

De entropie en gemiddelde entropie (over de beste individuen van de drie uitvoeringen)

tonen de resterende diversiteit van de populatie in de laatste generatie. De entropie

van de populatie uit de eerste generaties is doorgaans ongeveer twee. Empirisch stelden

we vast dat waarden die niet signi�cant hoger zijn dan één er meestal op wijzen dat de

diversiteit in de populatie in die mate is gezakt dat grote verbeteringen in de �theid

34

HOOFDSTUK 3. EVOLUTIE VAN ROBOTSTURINGEN

weinig waarschijnlijk zijn. Dit zou dus een mogelijk stopcriterium voor het evolutie-

proces kunnen zijn. Dergelijke vaststellingen laten ook toe om de evolutie automatisch

opnieuw te laten starten wanneer te lage waarden te vroeg in de evolutie bereikt werden.

Gelijkaardige technieken worden besproken in [25], we gaan er hier echter niet verder

op in.

De laatste kolom van het eerste gedeelte geeft aan hoeveel van de vijftien gangenstelsels

waarop getraind werd door de beste sturing konden worden doorlopen van begin tot

einde, eventueel met botsingen.

Nr Generaties Populatie Penalty Medium Omgevingen

1 50 300 1 nee standaard

2 50 300 1 nee gemengd

3 50 500 1 nee standaard

4 100 200 1 nee standaard

5 30 300 5 nee alle 15

6 30 300 5 nee gemengd

7 50 300 3 ja venster 2

8 75 300 3 ja venster 3

9 50 300 3 ja gradueel

Tabel 3.2: Opstellingen van de eerste reeks experimenten.

Evolutie Veri�catie

Nr Beste Gemid. StDev E E /15 Botsingen Bewegingen /5 Score

1 0,87211 0,80782 0,056 0,76 0,65 14 47 2342 2 0,82072

2 0,90769 0,86914 0,034 0,46 0,72 15 25 1087 5 0,91402

3 0,90933 0,85658 0,065 1,01 1,06 15 31 1667 3 0,88443

4 0,90341 0,85866 0,072 0,65 0,60 15 126 1356 5 0,89780

5 0,84892 1,34 5 46 1899 0 0,77552

6 0,86412 0,86 9 65 2319 0 0,73036

7 0,90046 0,86386 0,032 1,31 1,30 15 14 1879 4 0,89054

8 0,89983 0,87373 0,029 1,12 1,29 12 0 2320 2 0,84608

9 0,89722 0,87331 0,026 0,88 0,84 14 15 2347 1 0,81579

Tabel 3.3: Resultaten van de eerste reeks experimenten. Voor experimenten 5 en 6 werd één

uitvoering beschouwd, alle andere experimenten werden telkens drie keer uitgevoerd.

35

HOOFDSTUK 3. EVOLUTIE VAN ROBOTSTURINGEN

Het tweede gedeelte van de tabel bevat gegevens over de prestatie van de beste sturing

op de vijf veri�catieomgevingen (i.e. omgevingen waarop niet getraind werd). Deze

zijn moeilijk, en verschillen meer dan voldoende van de gangenstelsels waarop getraind

werd. De eerste en tweede kolom geven het totaal aantal botsingen, respectievelijk be-

wegingen op de vijf veri�catiegangenstelsels aan. Bewegingen bestaan zowel uit bochten

als rechtdoor rijden. Deze twee parameters geven aan hoe precies en e�ciënt de beste

sturing is. Een robot die onnodig veel draait of vaak een stuk terugkeert zal een hoog

aantal bewegingen hebben. Robots die er niet in slagen om de uitgang te bereiken

zullen een nog veel hoger aantal bewegingen hebben (maximaal 500 per gangenstelsel).

De volgende kolom geeft aan hoeveel van de vijf veri�catieomgevingen succesvol kunnen

worden doorlopen door de beste sturing. Dit is een goede maat voor de robuustheid

van de ontwikkelde sturing.

De laatste kolom tenslotte, geeft de �theid aan uitgemiddeld over de vijf veri�catieom-

gevingen. We hebben in de tabel de naam score gebruikt, omdat deze waarde e�ectief

vergeleken mag worden tussen alle experimenten in de tabel. Hiervoor hebben we de

�theid bepaald op basis van één en dezelfde �theidsfunctie, namelijk deze met als pe-

nalty drie. Deze score geeft aan hoe robuust de beste sturing is.

We merken op dat het verschil tussen de �theidswaarden soms klein is. Echter, we

willen hierbij benadrukken dat kleine verschillen in �theidswaarden een relatief sterk

verschillend gedrag aanduiden doordat de �theidswaarde herschaald werd om kleiner te

zijn dan één. Zo is het verschil in prestatie tot en met het derde cijfer na de komma

signi�cant. Het verschil van één honderdste is doorgaans heel duidelijk.

Hierna zetten we de belangrijkste resultaten uit de eerste reeks van experimenten op

een rij. Algemeen stelden we vast dat bij het voorstellen van de �theidshistogrammen

er meestal duidelijk een evolutie te zien is van hoofdzakelijk lage �theden in de eerste

generaties over meer verspreide �theden in de verdere generaties tot voornamelijk hoge

�theidswaarden in de laatste generaties.

Aantal generaties en populatiegrootte

Het enige verschil tussen experiment 1 en 3 is de populatiegrootte van 300 respectieve-

lijk 500. Wanneer we de resultaten vergelijken dan zien we dat, zowel bij de omgevingen

waarop getraind werd als bij de veri�catieomgevingen achteraf, een grotere populatie-

grootte loont. Dit is volledig in lijn met de verwachtingen. We merken op dat dit

wel leidt tot een grote meerkost in rekentijd, namelijk 75.000 (3 x 500 x 50) evaluaties

tegenover 45.000, of dus 67%. Wanneer we betere prestaties kunnen bereiken op een

andere manier dan de populatiegrootte aan te passen krijgt dit dus de voorkeur.

Zoals te zien bij de resultaten voor experiment 4, leidt een groter aantal generaties, zelfs

36

HOOFDSTUK 3. EVOLUTIE VAN ROBOTSTURINGEN

met minder evaluaties, tot net iets betere resultaten voor de veri�catieomgevingen. Al-

gemeen kan over het verschil tussen experiment 3 en 4 echter weinig met zekerheid

geconcludeerd worden. Beide presteren ongeveer even goed, de ene iets beter dan de

andere bij de trainingsvoorbeelden, en omgekeerd bij de veri�catieomgevingen. Ze zijn

wel duidelijk beter dan het experiment met minder generaties en een kleinere popula-

tiegrootte. Ook zijn de resultaten van beide opstellingen iets minder voorspelbaar dan

experiment 1, waarbij de standaarddeviatie duidelijk lager ligt. Hoewel experiment 4

er in slaagde om alle omgevingen succesvol te doorlopen, zijn er toch duidelijk meer

botsingen dan bij de andere opstellingen.

Leerverzameling en aantal leervoorbeelden

Grotere populaties en meer generaties leiden tot betere resultaten maar brengen een

grote rekenkost met zich mee. Hier willen we deze omzeilen door onze leerverzamelin-

gen goed te kiezen. Bij de gemengde aanpak in experiment 2 is dit duidelijk geslaagd.

Het resultaat is, vooral op de veri�catieomgevingen, beter dan bij de standaard aanpak

met dezelfde parameters uit experiment 1. Wat belangrijker is, is dat deze aanpak, met

beduidend minder generaties en een kleinere populatie toch beter presteert dan expe-

rimenten 3 en 4. Opnieuw is vooral de prestatie op de veri�catiedoolhoven duidelijk

beter. De gemengde aanpak scoort dus duidelijk beter op gebied van robuustheid dan

de standaard aanpak. Ook de herhaalbaarheid van het resultaat is hoger dan bij expe-

rimenten 1, 3 en 4, getuige de lagere standaarddeviatie en de relatief hoge gemiddelde

waarde. Door gebruik te maken van gemengde leerverzamelingen kunnen we dus een

groot aantal generaties en/of een grote populatie vermijden en toch betere resultaten

verkrijgen. Deze opstelling is in staat om op een e�ciënte manier, gelet op het kleine

aantal bewegingen, alle gangenstelsels te doorlopen met een beperkt aantal aanrijdin-

gen.

Waarom de gemengde aanpak duidelijk beter scoort heeft twee redenen. Ten eerste

zal dit leiden tot een grotere selectiedruk omdat er een grotere diversiteit aan �theden

bestaat. Dit wordt veroorzaakt doordat verschillende programma's, die in allemaal ge-

lijkaardige omgevingen dezelfde �theid vertonen, nu verschillende �theden toegekend

krijgen omdat ze in meer diverse omgevingen getest worden. In dergelijke omgevingen

komen kleinere verschillen in functionaliteit wel tot uiting. Dit wordt bevestigd in Fi-

guur 3.2, waar het gemiddelde entropieverloop van de beste sturingen uit experimenten

1 en 2 wordt voorgesteld. Er blijkt duidelijk dat, vooral tijdens de eerste vijftien gene-

raties, de diversiteit in de populatie met de gemengde aanpak groter is.

Ten tweede is ook de diversiteit aan leervoorbeelden groter, waardoor de sturingen al-

gemener moeten zijn van bij de start van de evolutie. Door een grotere diversiteit in

37

HOOFDSTUK 3. EVOLUTIE VAN ROBOTSTURINGEN

Figuur 3.2: Het verloop van de gemiddelde entropie (over de drie uitvoeringen) van de beste

sturingen geëvolueerd met de gemengde en de standaard opstelling uit experimenten 1 en 2.

Figuur 3.3: De �theidsevolutie van de gemiddelde waarden voor de beste individuen van de drie

uitvoeringen van experimenten 1, 2, 3 en 4. De laatste 50 generaties van experiment 4 leverden

geen signi�cante verbetering in �theid op. We hebben deze waarden om het overzichtelijk te

houden dan ook niet opgenomen.

38

HOOFDSTUK 3. EVOLUTIE VAN ROBOTSTURINGEN

omgevingen wordt dus ook de kans op vroegtijdige convergentie verminderd.

Dat de gemengde aanpak robuuster is, ook al tijdens de evolutie, wordt aangegeven in

Figuur 3.3. Deze stelt het verloop voor van de gemiddelde �theden van de beste sturing

van ieder experiment. Waar bij de andere drie experimenten duidelijk sterke dalingen

van de �theid optreden bij het wisselen van de leerverzameling, is dit veel beperkter bij

de gemengde aanpak. Dit is het best zichtbaar rond generatie twintig.

De gelaagd leren aanpak is hier dus toepasbaar, maar enkel op voorwaarde dat de ver-

scheidenheid in omgevingen voldoende groot is, zodat de basis waarop verder geleerd

wordt voldoende algemeen is.

We merken op dat het verloop dat we te zien krijgen in deze �guur niet correspondeert

met hetgeen gebruikelijk is in de literatuur. Dit is te verklaren door het voortdurende

wisselen van leervoorbeelden. Experiment 5 vertoont wel een continu niet dalend ver-

loop; hier wordt de verzameling leervoorbeelden inderdaad niet gewisseld.

Door combinatie van Figuur 3.2 en Figuur 3.3 bevestigen we onze eerdere vaststelling

dat eenmaal de entropie niet signi�cant verschilt van één, er nog maar weinig kans

op sterk verbeterde �theidswaarden is. Inderdaad, vanaf generatie 25, waarbij experi-

menten 1 en 2 de entropie voor het eerste in de buurt van één komt, is er voor deze

experimenten geen grote verbetering in �theid meer te noteren.

Over experiment 5, waar de leerverzameling telkens bestaat uit alle vijftien omgevin-

gen, kunnen we kort zijn. Dit voldoet geenszins aan de eisen. Het evolutieproces is niet

in staat om een oplossing te ontwikkelen, ondanks de grote rekentijd (3,5 dagen) die

beschikbaar was. Het is dus zonder meer voordelig om de leerverzameling beperkt te

houden en te wisselen om met een kortere rekentijd betere resultaten te verkrijgen.

De laatste drie experimenten hebben een laag aantal botsingen. Vooral de gemiddelde

waarden van deze opstellingen zijn zeer hoog. We verwachten dat deze opstellingen

bij de meeste uitvoeringen redelijk goede resultaten opleveren. Experiment 8 slaagt

er in om geen enkele aanrijding te veroorzaken op de veri�catieomgevingen. Echter,

op de andere vlakken zijn de resultaten voor dit experiment te zwak gegeven de extra

rekentijd. De resultaten voor experiment 9 zijn op het vlak van robuustheid slecht: de

veri�catiescore is zwak. Dit wordt mogelijks verklaard doordat iets te lang op dezelf-

de omgevingen getraind wordt, waardoor (beperkte) convergentie optreedt vooraleer

de laatste en belangrijkste leerverzameling aan bod kwam. Experiment 7 scoort wel

redelijk goed voor robuustheid. Bovendien is de resterende entropie nog relatief hoog,

waardoor mogelijk met enkele extra generaties betere resultaten mogelijk zijn. Zowel

de graduele aanpak als die met het schuivend venster zijn dus zeker opties die we ver-

der zullen bekijken. De robuustheid van geen enkele van deze experimenten is echter

vergelijkbaar met die van de gemengde aanpak.

39

HOOFDSTUK 3. EVOLUTIE VAN ROBOTSTURINGEN

Penalty

De strafmaat moet duidelijk hoger zijn dan één. De eerste vier experimenten maken

gebruik van één als straf, de stimulans die dit oplevert is te beperkt. Zowel tijdens

de evolutie als achteraf wordt er vaak tegen muren aangereden. Voor vijf als penalty

(experimenten 5 en 6) kunnen we geen absolute conclusies trekken omdat het resultaat

te slecht is. De oorzaak moet echter niet (alleen) gezocht worden bij de strafparameter,

eerder bij de andere instellingen. We besluiten dat drie een minimumwaarde voor de

strafmaat is.

Drempelwaarden

We stellen vast dat de bijkomende drempelwaarde medium er niet toe leidt dat het

evolutieproces niet langer in staat is om een goede sturing te ontwikkelen. Zo zijn er bij

de laatste drie experimenten minder botsingen, deels te verklaren doordat preciezere

vergelijking met de sensorwaarden mogelijk is.

Grootte van de individuen

Een bekend probleem als gevolg van de variabele grootte van de oplossingen bij GP

is codegroei. In sommige probleemdomeinen waar GP gebruikt wordt, stelt men vast

dat de grootte van de geëvolueerde individuen (sterk) stijgt in de loop der generaties.

Dit probleem wordt uitgebreid beschreven en behandeld in [48]. Zoals reeds eerder

opgemerkt wordt dit vaak veroorzaakt door intronen en kan de functionele code wel

een aanvaardbare grootte hebben. Wanneer we hier de absolute lengte van de code

beschouwen voor bijvoorbeeld de beste uitvoering, dan stellen we inderdaad een (lichte)

vorm van codegroei vast. De gemiddelde absolute grootte van de individuen uit de

eerste 30 generaties schommelt tussen 100 en 150 knopen. Vanaf generatie 35 loopt dit

al op tot rond 250 om vanaf generatie 40 reeds de 300 te overschrijden. De gemiddelde

absolute grootte van de programma's uit de laatste generatie is 350 knopen met een

gemiddelde diepte van 14. Het beste individu is van de grootteorde van 400 knopen.

We merken op dat, ondanks de relatief beperkte grootte, de sturing niet langer leesbaar

is, vooral door de vele (diep) geneste constructies.

Wanneer we de code iets beter bekijken, dan kunnen we echter al snel redelijk wat

knopen schrappen die nooit zullen worden uitgevoerd. Verder blijft een programma

bestaande uit 400 knopen zeker bruikbaar, ook zonder de intronen te verwijderen. Een

dergelijk programma vormt absoluut geen probleem om uitgevoerd te worden op een

mobiele robot met een beperkte processor en klein geheugen.

40

HOOFDSTUK 3. EVOLUTIE VAN ROBOTSTURINGEN

Figuur 3.4: Het parcours dat de beste robot uit experiment 2 volgt in respectievelijk omgeving

14 en veri�catieomgeving 2.

Beste sturing

De sturing die de beste resultaten haalde, zowel in de omgevingen waarop getraind

werd als in de veri�catieomgevingen, is deze uit experiment 2 met de gemengde aanpak.

Bovendien was een eerder beperkte populatiegrootte en aantal generaties voldoende. In

Figuur 3.4 is het parcours van de robot te zien. Deze sturing volgt een wall following

aanpak door steeds zo dicht mogelijk bij de linkermuur te blijven. Initieel is te zien

hoe de robot zoekt naar deze linkermuur, eenmaal deze gevonden, wordt correct de

muur gevolgd. Deze aanpak wordt mogelijks ingegeven door het feit dat de robot

in dit experiment slechts over twee drempelwaarden beschikt om mee te vergelijken.

Aangezien deze eerder laag zijn, kan de robot blijkbaar e�ciënter zijn door dicht tegen

de muren te blijven. Het parcours dat de robot volgt is logisch en redelijk e�ciënt.

Echter de methode is nogal vreemd daar de robot achteruit rijdt, terwijl hij niet over

een sensor achteraan beschikt. Daarom draait de robot af en toe 90◦ om met een sensor

op de zijkant te controleren of de volgende muur nog veraf is. Deze methode is niet

altijd correct. Wanneer bijvoorbeeld twee muren korter na elkaar staan dan gewoonlijk

rijdt de robot tegen de muur aan. Dit gedrag is mogelijks te wijten aan het te beperkt

bestra�en van botsingen. Dit kan perfect verholpen worden door een hogere penalty in

te stellen en de andere parameters onveranderd te laten.

Besluit

Algemeen besluiten we dat ons opzet om een sturing te ontwikkelen met GP voor het

volgen van een gangenstelsel in een perfect veronderstelde simulatieomgeving voor om-

gevingen waarop tijdens de evolutie getraind werd zonder meer mogelijk is. Verschillen-

de opstellingen waren in staat om dit te verwezenlijken, zij het met soms verschillende

41

HOOFDSTUK 3. EVOLUTIE VAN ROBOTSTURINGEN

rekentijden. We merken wel op dat er ook op de getrainde gangenstelsels nog botsingen

gebeuren. Dit is in de beste sturing wel beperkt tot een totaal van vijf voor alle vijftien

omgevingen. De penalty zou hiervoor iets hoger mogen ingesteld worden.

De tweede doelstelling was dat de sturing ook robuust zou zijn, in die zin dat ook om-

gevingen waarop niet getraind werd haalbaar moeten zijn. Twee experimenten leverden

dergelijke resultaten op. Omwille van e�ciëntieredenen krijgt de gemengde aanpak uit

experiment 2 de voorkeur. Ook hier gebeuren nog enkele botsingen. Opnieuw kunnen

we dit eenvoudig oplossen door de penalty te verhogen.

We stelden dus vast dat de aanpak met gelaagd leren goede resultaten oplevert. Wel

moet de diversiteit in de leerverzameling voldoende groot zijn om te voorkomen dat

de basis waarop verder geleerd wordt te speci�ek is. Dit is immers de oorzaak van het

falen van de standaardaanpak. Bij de gemengde methode werd dit succesvol aangepast.

3.4.3 Experimenten met ruis op de sensorwaarden: opstelling

In sectie 3.4.2 toonden we aan dat met perfect veronderstelde sensoren en actuatoren het

zonder meer mogelijk is om sturingen te ontwikkelen voor het volgen van gangenstelsels

in simulatie. We gaan niet verder in op deze opstelling omdat gekend is dat dit in de

praktijk niet het geval is. Sensoren en actuatoren zijn immers onderhevig aan ruis.

Bovendien hebben verschillende robots van hetzelfde type quasi nooit exact dezelfde

karakteristieken.

We gaan daarom een stap verder door het toevoegen van ruis aan de sensoren. Zoals

eerder aangehaald zullen we gebruik maken van een normaal verdeelde ruiscomponent

met gemiddelde nul en met een standaarddeviatie van drie. Concreet zullen we de

willekeurig gegenereerde waarde uit de normaalverdeling als een percentage beschouwen

dat aangeeft in welke mate we de echte sensorwaarde aanpassen. Dit betekent dat

99,73% van de ruiscomponenten die we toevoegen ten hoogste 9% afwijking op de

sensorwaarde veroorzaken.

Deze aanpak laat ons toe om enerzijds een stap dichterbij een realistische oplossing te

zetten, maar laat ons ook toe om algemenere oplossingen te ontwikkelen omdat het

toevoegen van ruis doorgaans zorgt voor robuustere oplossingen.

We beschouwen vijf experimenten, zoals samengevat in Tabel 3.4. Experiment 10 en

11 gaan verder met de beste aanpak uit de vorige reeks experimenten, zij het met een

penalty van drie. Experiment 13 maakt gebruik van de graduele methode. De beste van

de drie uitvoeringen van dit experiment wordt gebruikt om nog een aantal generaties

verder te evolueren in experiment 14.

42

HOOFDSTUK 3. EVOLUTIE VAN ROBOTSTURINGEN

Nr Generaties Populatie Penalty Medium Omgevingen

10 50 300 3 nee gemengd

11 50 300 3 ja gemengd

12 75 300 3 ja venster 3

13 50 300 3 ja gradueel

14 68 300 3 ja gradueel

Tabel 3.4: Opstelling van de tweede reeks experimenten.

Evolutie Veri�catie

Nr Beste Gemid. StDev E E /15 Botsingen Bewegingen /5 Score

10 0,90922 0,86332 0,040 1,13 1,00 14 25 1777 2 0,85497

11 0,87860 0,86663 0,013 1,44 1,31 9 26 2433 0 0,68938

12 0,90154 0,88645 0,013 0,77 0,88 15 42 1827 4 0,89167

13 0,91174 0,91077 0,002 1,50 1,43 15 0 1575 3 0,88553

14 0,91234 1,08 14 2 871 5 0,91711

Tabel 3.5: Resultaten van de tweede reeks experimenten.

3.4.4 Experimenten met ruis op de sensorwaarden: resultaten

De resultaten van de tweede reeks experimenten worden weergegeven in Tabel 3.5. Er

blijkt dat de gemengde aanpak die zeer succesvol was in de ruisvrije simulatie minder

geschikt is in een omgeving met toegevoegde ruis. De resultaten tijdens de evolutie zijn

nog steeds goed en vergelijkbaar met deze in de situatie zonder ruis, maar de robuust-

heid is te laag om ook in de veri�catieomgevingen goed te scoren. Mogelijks is dit te

wijten aan de relatief korte leertijd die beschikbaar is voor de gemiddelde en gevorder-

de categorieën, terwijl deze toch een signi�cante extra moeilijkheidsgraad bezitten. Bij

de graduele aanpak is de leertijd voor deze types omgevingen wel langer dan voor de

eenvoudigere types omgevingen. Dit leidt duidelijk tot een beter resultaat.

De methode met het schuivend venster uit experiment 12 scoort beter dan de vorige

twee, maar wel ten koste van extra rekentijd. Dit is dus geen optie.

De best presterende con�guratie is zonder meer de graduele aanpak, waarbij geleide-

lijk aan langer getraind wordt op de moeilijker wordende categorieën. Deze graduele

gelaagd leren aanpak leidt tot een goed resultaat in experiment 13. Heel belangrijk

hierbij is het extreem hoge gemiddelde en zeer lage standaarddeviatie waardoor deze

aanpak in de meeste uitvoeringen tot goede resultaten zal leiden. Bovendien wordt op

43

HOOFDSTUK 3. EVOLUTIE VAN ROBOTSTURINGEN

Figuur 3.5: De sensorencon�guratie van de standaardrobot kan problemen opleveren. De

sensor vooraan is actief, maar detecteert de verticale muur niet.

geen enkele van de veri�catieomgevingen een botsing veroorzaakt. Omdat de entropie

na 50 generaties nog steeds relatief hoog is, gingen we na of er nog evolutie mogelijk

was. De beste uitvoering lieten we verder evolueren totdat de entropie dicht genoeg één

benaderde, in dit geval tot generatie 68. Er blijkt dat de �theid inderdaad nog steeg,

en wat belangrijker is, alle veri�catieomgevingen kunnen met de resulterende sturing

opgelost worden. We merken op dat met deze sturing wel één getrainde omgeving niet

kan worden opgelost. Het betreft een omgeving uit de tweede categorie.

De reden voor het falen van deze sturing in de betre�ende omgeving wordt deels ver-

oorzaakt door de gebrekkige sensorencon�guratie op de standaard uitvoering van de

robot. Dit wordt gevisualiseerd in Figuur 3.5. De sensor vooraan, net als op de echte

robot niet centraal opgesteld, is niet in staat om de verticale muur te detecteren, waar-

door de robot vastraakt tegen deze muur. Hetzelfde probleem stelden we vast bij de

twee veri�catieomgevingen die niet succesvol doorlopen werden door het beste individu

uit generatie 50. Het evolutieproces was in staat om dergelijke situaties grotendeels te

vermijden, aangetoond door de sturing in generatie 68 die wel in staat was om de twee

problematische omgevingen te doorlopen. Echter een algemenere oplossing is wenselijk.

We geven hiervoor de voorkeur aan een betere sensorencon�guratie met een groter be-

reik. Hiervoor verwijzen we naar Hoofdstuk 4.

Wanneer we het gedrag van de beste sturing uit experiment 14 nader bekijken, stellen

we vast dat opnieuw een wall following-aanpak aan de basis ligt. Soms wordt iets meer

afgeweken van de muur, maar doorgaans blijft de robot dicht in de buurt. Deze sturing

is veel e�ciënter dan deze uit experiment 2, waar te veel gedraaid werd. Dit wordt

bevestigd door het veel kleinere aantal bewegingen. Een voorbeeld van het navigatie-

gedrag is te zien in Figuur 3.6. Naast een occasionele overbodige bocht zoals in het

rechtse deel van de �guur, is de sturing heel e�ciënt. Deze extra bocht is te verklaren

doordat de sturing controleert of de robot wel degelijk de meest linkse hoek bereikt

heeft, zodat met zekerheid nog steeds de linkermuur gevolgd zal worden. Anders is het

44

HOOFDSTUK 3. EVOLUTIE VAN ROBOTSTURINGEN

Figuur 3.6: Het parcours dat de beste sturing uit experiment 14 volgt in respectievelijk om-

geving 14 en veri�catieomgeving 2.

mogelijk dat de robot draait en in de verkeerde richting verder gaat. Deze techniek

wordt ook gebruikt in een aantal andere omgevingen. In tegenstelling tot experiment 2

rijdt de robot altijd vooruit en maakt bijgevolg beter gebruik van de aanwezige sensoren

zonder daarvoor te moeten draaien. Deze sturing is dus duidelijk e�ciënt, robuust en

bruikbaar.

De grootte van deze sturing is groter dan deze ontwikkeld in de vorige reeks experimen-

ten. Opnieuw stellen we een lichte vorm van codegroei vast. Deze is overigens zichtbaar

in bijna alle experimenten die we uitvoerden. Hier is de absolute grootte tot generatie

25 kleiner dan 300, na generatie 50 is dit al opgelopen tot meer dan 500. De resulte-

rende sturing in generatie 68 is van de grootteorde van 650 knopen, het gemiddelde in

deze generatie is 623 met een diepte van 16,23. Opnieuw is deze grootte aanvaardbaar

voor uitvoering op de robot zelf.

3.5 Van simulatie naar realiteit

Uit de vorige sectie bleek duidelijk dat het voordelig is om ruis toe te voegen aan de

sensoren om te komen tot algemenere sturingen. Op deze manier kan het evolutieproces

immers minder gebruik maken van toevalligheden of onvolmaaktheden in de simulatie.

Bovendien is een dergelijke simulatie een goede test met het oog op het gebruik van

deze sturing op de echte robot. Nu kunnen we immers met grote waarschijnlijkheid

stellen dat het inderdaad mogelijk is om een dergelijke sturing te ontwikkelen.

Echter, willen we een programma dat succesvol de navigatie van de echte robot kan

voltooien, dan zullen we ook ruis moeten toevoegen aan het sturingsmechanisme. Door

het verschil in grip op de ondergrond en de lichte afwijkingen van de elektronische

45

HOOFDSTUK 3. EVOLUTIE VAN ROBOTSTURINGEN

Evolutie Veri�catie

Nr Beste Gemid. StDev E E /15 Botsingen Bewegingen /5 Score

15 0,91404 0,91000 0,004 2,08 1,31 15 4 1759 5 0,91982

16 0,91504 0,90118 0,022 0,98 1,00 14 42 3846 3 0,88149

Tabel 3.6: Resultaten van de derde reeks experimenten.

en mechanische onderdelen zal de werkelijk afgelegde afstand of draaihoek nooit exact

overeenstemmen met de opgegeven waarden. Dit zou kunnen opgelost worden met een

kompas of andere technieken. Hier aanvaarden we de imperfecties, en zullen we de stu-

ring voldoende robuust maken zodat deze hiermee rekening kan houden. We gaan na of

dit mogelijk is door het toevoegen van ruis. We gebruiken opnieuw dezelfde additieve

ruiscomponent voor de sensoren als in de vorige experimenten. Voor het stuurmecha-

nisme maken we gebruik van dezelfde distributie, maar met een standaarddeviatie van

twee.

Tot hiertoe kon de robot enkel bochten van 90◦ nemen. Door de fouten op de echte

hardware zou dit echter vaak sterk afwijken3. Dit kan dan moeilijk of niet e�ciënt

gecompenseerd worden. Daarom zullen we hier gebruik maken van bochten van 15◦ als

basis. Deze zijn voldoende klein om precies sturen toe te laten, bezitten een kleinere

absolute fout, en kunnen gemakkelijker gecompenseerd worden. Hierdoor zullen we ook

het maximaal aantal simulatiestappen (bewegingen) verhogen van 500 naar 1500.

3.5.1 Evolutie in simulatie

Een dergelijk experiment is duidelijk complexer dan de vorige opstellingen. Echter met

de kennis uit de voorgaande experimenten moet het mogelijk zijn om de resultaten

op te schalen naar een moeilijkere opstelling. Wel blijft de vraag in welke mate de

extra complexiteit moet doorgerekend worden naar de populatiegrootte en het aantal

generaties. In experimenten 15 en 16 maken we gebruik van een populatiegrootte van

500 en het aantal generaties wordt respectievelijk op 100 en 200 ingesteld4. Dit heeft

tot gevolg dat de rekentijd sterk vergroot, namelijk bijna twee dagen voor experiment

15. Voor alle andere parameters maken we gebruik van dezelfde opstelling als deze in

experiment 14; het beste resultaat tot nu toe.

De resultaten van deze experimenten worden voorgesteld in Tabel 3.6. Merk op dat

3Bij een eenvoudige test op de robot bleek inderdaad dat een bocht van 90◦ in sommige gevallen een

foutmarge had van meer dan 15◦.4De wissels van leerverzamelingen worden nu doorgevoerd na generaties 14, 30, 50, 74 respectievelijk 25,

55, 95, 140.

46

HOOFDSTUK 3. EVOLUTIE VAN ROBOTSTURINGEN

Figuur 3.7: Het parcours dat de beste sturing uit experiment 15 volgt in respectievelijk om-

geving 14 en veri�catieomgeving 2.

wegens het aangepaste aantal bewegingen het niet meer mogelijk is om de resultaten te

vergelijken met deze uit de vorige experimenten. Experiment 15 leidt duidelijk tot het

beste resultaat. Niet alleen slaagt het in alle omgevingen waarop getraind werd, ook

alle veri�catieomgevingen worden succesvol afgewerkt. Het resultaat voor experiment

16 voor de leeromgevingen is nog beter, maar de veri�catieomgevingen leiden tot veel

problemen. Dit wordt waarschijnlijk verklaard doordat we het evolutieproces iets te

veel tijd hebben gegeven voor het leren per leerverzameling. Dit zal mogelijks geleid

hebben tot vroegtijdige convergentie, en tijdens de laatste generaties tot te vergaande

specialisatie in de laatste leeromgevingen. De vroegtijdige convergentie wordt bevestigd

door een sterk gedaalde entropie vroeg in het evolutieproces. Na het wisselen van de

leervoorbeelden stijgt deze weliswaar opnieuw.

Experiment 15 levert dus goede resultaten met slechts de helft van de rekentijd van

experiment 16. We stellen wel vast dat het moeilijk is en blijft om in te schatten wat

de geschikte populatiegrootte en aantal generaties zijn. Een zekere mate van trial en

error valt niet uit te sluiten.

In Figuur 3.7 zijn twee voorbeelden te zien van het gedrag van de beste sturing uit ex-

periment 15. De sturing maakt vaak gebruik van vloeiende bochten en rijdt rechtdoor

waar mogelijk. Dit is bijgevolg een e�ciënte sturing. Dat het nog beter kan wordt

duidelijk doordat de robot af en toe een klein stukje achteruit rijdt wanneer deze te

dicht tegen een muur komt. Dit geheel leidt tot een robuuste sturing die in staat is om

alle geteste omgevingen te doorlopen.

Opnieuw valt op dat de onderliggende strategie van deze sturing een wall following

is. De robot volgt steeds, zij het met enige tussenafstand, de linkse muur. Alle goed

presterende sturingen tot nu toe maakten gebruik van een dergelijke aanpak. Dit is

47

HOOFDSTUK 3. EVOLUTIE VAN ROBOTSTURINGEN

(a) Sturing 15 in een doolhof. (b) Sturing 16: vloeiend gedrag.

Figuur 3.8: (a) Het parcours dat de sturing uit experiment 15 volgt in een eenvoudig doolhof.

De strategie bestaat duidelijk uit het volgen van de linkse muur. (b) De sturing uit experiment

16 in veri�catieomgeving 4. Het verloop is duidelijk veel vloeiender en golvender.

waarschijnlijk ook de beste oplossing om niet in de verkeerde richting verder te rijden.

Deze strategie wordt mooi geïllustreerd in Figuur 3.8a. Daar wordt het parcours aange-

geven dat de robot volgt wanneer deze in een eenvoudig doolhof wordt geplaatst. Ook

hier is deze in staat, door de linkse muur te volgen, de uitgang te bereiken.

Overigens is het programma achter deze sturing heel kort; minder dan 200 knopen.

Dit is een duidelijk verschil met de sturingen in de vorige experimenten. Hier wordt

aangetoond dat GP inderdaad kan leiden tot korte en toch algemene programma's. Dit

programma werd als voorbeeld opgenomen in Bijlage A.

Experiment 16 leidt tot een sturing die minder robuust is. De sturing is echter wel heel

e�ciënt op de omgevingen waar ze succesvol is. In Figuur 3.8b is het gedrag van deze

sturing te zien. Er wordt heel vloeiend genavigeerd. Dat dit iets e�ciënter is, wordt

ook bevestigd door de hogere �theid na de evolutie.

Wanneer we extra ruis toevoegen op de sensoren en motoraansturing (respectievelijke

standaarddeviaties van vijf en drie) dan worden nog steeds alle veri�catieomgevingen

succesvol afgelegd; weliswaar met twee extra botsingen. Zelfs met een standaardde-

viatie van 10 op beide ruiscomponenten worden alle veri�catieomgevingen nog steeds

doorlopen. In dit geval wel met in totaal zes aanrijdingen. Om het aantal aanrijdingen

naar nul terug te brengen kan de penalty voor botsingen verhoogd worden. Ook meer

of beter geplaatste sensoren zijn een optie.

48

HOOFDSTUK 3. EVOLUTIE VAN ROBOTSTURINGEN

Figuur 3.9: Schematische voorstelling van een omgeving waarin de echte robot getest werd.

De robot start linksbovenaan en moet navigeren naar het punt centraal op de �guur.

3.5.2 Transfer naar echte robot

In de literatuur werd al aangetoond dat de transfer van simulatie naar echte robot (voor

eenvoudige taken) zonder veel problemen mogelijk is [28, 30]. Voorwaarde is wel dat

de simulatie voldoende precies is. Pas dan zal er een goede overeenkomst tussen het

gedrag in simulatie en realiteit mogelijk zijn. Bovendien kan door het toevoegen van

ruis in de simulatie deze overeenkomst nog verbeteren.

Soms wordt ook een duidelijke daling van de �theid vastgesteld bij de transfer van si-

mulatie naar realiteit [37]. Deze reality gap wordt grotendeels verklaard door de niet

perfecte modellering van de echte wereld.

We gebruikten de sturing ontwikkeld in experiment 15 om de echte robot aan te sturen.

Daarvoor maakten we gebruik van verschillende gangenstelsels, meestal korter dan deze

uit de laatste generaties. Ook verschillende moeilijkheidsgraden werden getest.

We stelden wel degelijk een daling in de �theid vast. Dit werd veroorzaakt doordat

de sensoren op de robot objecten die heel dichtbij zijn niet als dusdanig waarnemen.

Concreet zullen de sensoren vanaf een afstand van minder dan 10 cm meestal waarden

weergeven die duidelijk hoger zijn (tot meer dan 200 mm) dan de werkelijke afstand.

Wanneer de robot vanaf deze afstand naar de muur toe rijdt, dan stijgen de sensor-

waarden in plaats van te dalen. Omdat tijdens de simulatie geen rekening gehouden

werd met deze eigenschap was de robot hier niet op voorbereid. Schommelingen op de

sensorwaarden vormen geen enkel probleem, maar dergelijke grote veranderingen zijn

dat wel. Omdat de kleinste drempelwaarde waarvan de robot gebruik kan maken 75

mm is, zijn hier dus inderdaad problemen mogelijk. Na deze vaststelling hebben we,

om het probleem te beperken, op de echte robot deze waarde gewijzigd naar iets meer

dan 100. Dan blijkt duidelijk dat het aangeleerde gedrag in simulatie ook kan herhaald

49

HOOFDSTUK 3. EVOLUTIE VAN ROBOTSTURINGEN

Figuur 3.10: Enkele foto's van het parcours dat de echte robot volgt met behulp van de sturing

uit experiment 15. In deze omgeving is de robot e�ciënt en treden er geen botsingen op.

50

HOOFDSTUK 3. EVOLUTIE VAN ROBOTSTURINGEN

worden in realiteit. De linkse muur kan redelijk rechtlijnig gevolgd worden, kleine af-

wijkingen worden bijgestuurd en ook bochten worden succesvol genomen. In sommige

omgevingen, iets meer dan in simulatie, stelden we wel een botsing vast. Dit wordt

vooral veroorzaakt door de gebrekkige werking van de echte sensoren.

Om het gedrag van de robot in realiteit te illustreren zullen we gebruik maken van de

in Figuur 3.9 schematisch voorgestelde omgeving. Om de robuustheid van de sturing

na te gaan, gingen we uit van andere verhoudingen en muurlengtes dan in de simulatie-

omgevingen. Verder hebben we de robot, in plaats van loodrecht, schuin laten starten.

Merk op dat in het rechtse stuk van het gangenstelsel de rechtermuur deels weggelaten

werd. Dit om aan te tonen dat de strategie van de robot wel degelijk uit het volgen van

de linkse muur bestaat.

In Figuur 3.10 zijn enkele foto's van het navigatiegedrag te zien. De robot volgt eerst

een rechte lijn maar doordat deze schuin moest starten, wordt al snel bijgestuurd en

gaat de robot quasi loodrecht verder. Telkens wanneer de robot iets te dicht tegen

een muur aankomt, wordt bijgestuurd. Bochten van zowel 90◦ als 180◦ worden in deze

omgeving telkens e�ciënt aangesneden.

3.6 Besluit

We besluiten dat het zonder meer mogelijk is om met een relatief beperkte rekentijd stu-

ringen te evolueren die in staat zijn om succesvol te navigeren in de omgevingen waarop

getraind werd. Door gebruik te maken van een licht aangepaste vorm van gelaagd leren

waarbij we de diversiteit binnen de leerverzamelingen voldoende hoog houden is het

bovendien ook mogelijk om sturingen te ontwikkelen die succesvol zijn in omgevingen

waarop niet getraind werd. We stelden ook vast dat het toevoegen van ruis inderdaad

leidt tot robuustere oplossingen.

Om over te gaan van simulatie naar realiteit maakten we gebruik van kleinere bochten

en ruis op zowel sensoren als actuatoren. Deze opschaling van het probleem kon succes-

vol aangepakt worden in simulatie en leidde opnieuw tot robuuste oplossingen. Hiervoor

maakten we gebruik van een graduele gelaagd leren aanpak met voldoende diversiteit

binnen de leerverzamelingen. We merkten op dat het wel moeilijk is om a priori vast

te leggen wat de minimale eisen zijn voor het aantal generaties en de populatiegrootte

om tot een succesvolle oplossing te komen.

Tenslotte stelden we ook vast dat, ondanks een niet perfecte overeenkomst tussen simu-

latie en realiteit, het toch mogelijk was om het basisgedrag van de robot in simulatie

over te brengen naar de realiteit. We merkten wel op dat er meer botsingen waren in de

realiteit dan in simulatie. Dit werd grotendeels veroorzaakt door gebrekkige sensoren.

51

Hoofdstuk 4

Evolutie van robotmorfologie

Tot hiertoe hebben we steeds sturingen ontwikkeld voor een bestaande robot, zonder te

raken aan de bouw of eigenschappen van de robot zelf. Echter, in de natuur ondergaat

het volledige organisme de evolutie. Niet alleen de hersenen, ook het lichaam wordt

aangepast in de loop van het evolutieproces. Voor het ontwikkelen van robots kunnen

we dit biologisch adaptatieproces doortrekken. Zo is het mogelijk om gelijktijdig het

gedrag en de bouw (i.e. morfologie) van de robot te evolueren. Hierdoor zal zowel de

sturing als de morfologie geëvolueerd worden om zo goed mogelijk een bepaalde taak

uit te voeren. Deze co-evolutionaire aanpak kan er toe leiden dat GP beter geschikte

en e�ciëntere robots en sturingen evolueert. Op deze manier ontstaat een geautomati-

seerd ontwerpproces van zowel gedrag als morfologie, waarbij beide op elkaar afgestemd

kunnen worden.

Co-evolutie van gedrag en bouw kan niet alleen sneller leiden tot betere resultaten, het

kan ook voordelig zijn bij de eigenlijke bouw van de robot. Zo is het mogelijk dat on-

derdelen of functies die men als menselijke ontwerper aan de robot zou toevoegen door

de evolutie niet als voordelig geëvalueerd worden. Het weglaten van dergelijke onnodige

onderdelen kan leiden tot een goedkopere en betere robot. Bovendien is de optimale

bouw van een robot sterk afhankelijk van de taak die zal moeten uitgevoerd worden.

De indeling van dit hoofdstuk ziet er uit als volgt. Eerst gaan we iets dieper in op het

concept achter gelijktijdige evolutie van sturing en morfologie. Daarna zetten we uiteen

wat de mogelijkheden zijn en hoe we juist te werk zullen gaan. Tenslotte geven we een

overzicht van de uitgevoerde experimenten. We beschouwen drie reeksen, elk met hun

speci�eke eigenschappen.

52

HOOFDSTUK 4. EVOLUTIE VAN ROBOTMORFOLOGIE

4.1 Situering

Deze techniek is relatief recent en gebaseerd op de Hox -genen uit natuurlijke organis-

men. Deze coderen voor de bouw van het organisme. Aanpassen van dergelijke genen

zal dus leiden tot organismen met een andere bouw [27].

Er werd reeds aangetoond dat een goed ontworpen morfologie kan leiden tot een eenvou-

digere en robuustere sturing. Beide samen evolueren kan dus leiden tot een meer comple-

te en samenhangende totaaloplossing. Echter, in onder andere [1] werd de mogelijkheid

vastgesteld dat een beter resultaat niet zozeer het gevolg is van een betere morfologie

met aangepaste sturing, maar ook van de extradimensionale verbinding (extradimen-

sional bypass) in de zoekruimte. Door co-evolutie van het gedrag en de bouw van de

robot kan het evolutieproces sneller tot een oplossing komen die door de opbouw van

het �theidslandschap anders niet of veel moeilijker bereikbaar zou zijn geweest. Con-

creet kunnen door het toevoegen van extra (morfologische) parameters verbindingen in

de geïntroduceerde hogere dimensies van de zoekruimte ontstaan. Deze verbindingen

vormen een connectie tussen pieken van hoge �theden die in lagere dimensies sterk

van elkaar gescheiden waren. Toevoegen van extra dimensies kan er dus voor zorgen

dat het �theidslandschap meer gladgestreken wordt, waardoor het zoekwerk voor het

evolutieproces eenvoudiger wordt. Dit kan leiden tot een kortere rekentijd en/of beter

resultaat.

In de literatuur is al gebruik gemaakt van evolutionaire morfologieën voor robots door

middel van verschillende technieken. Bijna altijd worden genetische algoritmen ge-

bruikt. Meestal wordt dit beperkt tot een aantal parameters van de morfologie, vaak

de sensoropstelling, zowel in simulatie [38] als in realiteit [24]. Echter, in [41] worden

in simulatie ook volledige elektromechanische systemen geëvolueerd. Ook een gecom-

bineerde aanpak van GP en GA werd reeds onderzocht [23, 27]. De sturing werd

ontwikkeld door GP, terwijl de morfologie evolueerde met behulp van GA. Hiervoor

werd gebruik gemaakt van een lijst reële getallen die de bouw (grootte, wielbasis, ...)

van de robot vastleggen. Co-evolutie van sturing en morfologie enkel door GP is nog

maar zelden toegepast. Echter, in [42] werd hiervan, weliswaar in vereenvoudigde vorm,

reeds succesvol gebruik gemaakt.

4.2 Werkwijze

Hoewel het mogelijk is om het ontwerp van volledige robots over te laten aan GP zul-

len we hier de evolutie van de morfologie beperken tot de sensorplaatsingen. Omdat

sensoren de belangrijkste bron van informatie voor de robot zijn is dit een goed ver-

53

HOOFDSTUK 4. EVOLUTIE VAN ROBOTMORFOLOGIE

dedigbare keuze. Dat dit een interessante optie is, werd trouwens al duidelijk bewezen

door het gedrag van de sturing beschreven in Sectie 3.4.4. De robot was in staat om

goed te navigeren in zowel omgevingen waarop getraind werd als in volledig nieuwe

omgevingen. Echter, de robuustheid van de ontwikkelde sturing was beperkt door de

gebrekkige sensorencon�guratie van de robot. Omdat het bereik van de sensoren te

beperkt was, kon een bepaalde muur niet gedetecteerd worden waardoor de robot er

niet in slaagde om tot de uitgang verder te rijden. Beter geplaatste sensoren zouden

dit probleem kunnen oplossen. In plaats van zelf extra sensoren toe te voegen, kunnen

we ook de evolutie laten onderzoeken wat de beste plaatsingen voor de sensoren zijn.

Bovendien is het mogelijk om sensoren relatief goedkoop aan een bestaande robot toe

te voegen. Daar waar een volledige robot bouwen vanaf nul vaak heel duur is, kan deze

relatief eenvoudige aanpassing wel gemakkelijk doorgevoerd worden. Daarom gaan we

in dit hoofdstuk na of het mogelijk is om de plaatsing van de sensoren en de sturing

samen te laten evolueren.

In de meeste experimenten gerelateerd met morfologie van sensoren is het de bedoeling

om automatisch een sensorencon�guratie te evolueren met zo weinig mogelijk sensoren

[4, 38]. Een dergelijke minimale sensorencon�guratie is niet alleen goedkoper, deze laat

meestal ook toe om een eenvoudigere sturing te gebruiken.

Om met GA in simulatie een minimale sensorencon�guratie te evolueren werd in [38]

een aangepaste �theidsfunctie gebruikt. Deze kende een bonus toe per niet gebruikte

sensor voor alle individuen die het doel bereikten. De sensorposities lagen vast, maar

GA bepaalde welke gebruikt werden, de richting en hun bereik. Omdat hier slechts

telkens op één omgeving getraind werd, waren de geëvolueerde robots wel succesvol in

de getrainde omgeving, maar niet in andere omgevingen. De sturing en sensorplaatsing

was dus sterk gespecialiseerd voor één bepaalde omgeving. Er werd gebruik gemaakt

van verschillende types sensoren (UV-, IR-, en tastsensoren). Uit de evolutie bleek dat

IR-sensoren niet nodig waren, wat bij het bouwen van de robot dus een besparing kan

opleveren.

In [42] werden met behulp van GP succesvol de sturing en de morfologie van een ro-

bot in een vereenvoudigde simulatie geëvolueerd. Hier werd geen gebruik gemaakt van

een aangepaste �theidsfunctie. Om het aantal sensoren te beperken werd de grootte

van de geëvolueerde programma's gelimiteerd. Het evolutieproces had de keuze uit 360

sensoren; één voor iedere mogelijke hoek ten opzichte van het middelpunt van de cir-

kelvormige robot.

Om met behulp van GP tot een opstelling te komen die in staat is om de sturing van

de robot gelijktijdig met de morfologie van de sensoren te evolueren zijn er een aantal

mogelijkheden. We vatten ze hier kort samen.

54

HOOFDSTUK 4. EVOLUTIE VAN ROBOTMORFOLOGIE

4.2.1 Onveranderde en aangepaste �theidsfuncties

Meestal zal gebruik gemaakt worden van aangepaste �theidsfuncties om de co-evolutie

te sturen. Zo zal men om een minimale sensorencon�guratie te evolueren doorgaans

een bonus toekennen die evenredig is met het aantal niet gebruikte sensoren. Hierbij

kan een onderscheid gemaakt worden om deze bonus enkel toe te kennen bij succesvolle

sturingen (bijvoorbeeld bij het bereiken van de uitgang) of voor alle sturingen.

Wanneer gebruik gemaakt wordt van een niet-gewijzigde �theidsfunctie, dus zonder

bonus voor minder sensoren, wordt doorgaans geen minimale sensorencon�guratie na-

gestreefd. De robot kan dan vrij gebruik maken van alle sensoren. Dit zal mogelijks

leiden tot complexere sturingen. Om met deze aanpak het aantal sensoren te beperken

kan bijvoorbeeld wel de grootte van het programma beperkt worden.

4.2.2 Sensoren als terminalen of als functie

Bij co-evolutie van morfologie en sturing door GP kunnen we de sensoren op twee

manieren ter beschikking stellen. Een eerste bestaat eenvoudigweg uit het toevoegen

van een unieke terminaal per sensor. Iedere sensor op de robot zal dus door exact één

instructie uit het programma aangesproken worden. Dit is een eenvoudige oplossing,

maar zal al snel leiden tot een groot aantal terminalen. Dit kan voor het evolutieproces

leiden tot een (te) moeilijk probleem.

De tweede mogelijkheid maakt gebruik van één functie met een aantal parameters. Deze

argumenten speci�ëren dan de exacte plaatsing van de sensoren op de robot. In dit geval

moeten wel voldoende constantes en/of wiskundige operatoren, als parameters voor de

functie, toegevoegd worden. Opnieuw zijn dus een aantal extra terminalen nodig. Bij

deze methode is het echter mogelijk om met een relatief beperkt aantal constantes toch

een groot aantal mogelijke sensorencon�guraties voor te stellen.

In plaats van constantes toe te voegen is het ook mogelijk om voor ieder programma

initieel willekeurige waarden te genereren als invoer voor de sensorfunctie, zoals het

geval was in [42]. We merken op dat, in beide gevallen, de functie wel voldoende

robuust moet zijn. Zo is het mogelijk dat argumenten geschikt voor het bepalen van de

horizontale plaatsing van de sensor ten opzichte van de robot niet geschikt zijn voor het

aangeven van de hoek waarmee de sensor geplaatst wordt. Een standaardkeuze voor

dergelijke mogelijkheden dringt zich op.

55

HOOFDSTUK 4. EVOLUTIE VAN ROBOTMORFOLOGIE

4.3 Experimenten

In dit onderdeel geven we een overzicht van onze experimenten voor de gelijktijdige

evolutie van sturing en morfologie van de sensoren. We beginnen met een eerder naïef

experiment om aan te geven wat de mogelijkheden en beperkingen van deze techniek

zijn. Daarna komen nog twee andere opstellingen aan bod.

Als basisopstelling gaan we verder met deze uit experiment 13 uit het vorige hoofdstuk.

We maken enkel gebruik van hoeken van 90◦, er wordt ruis toegevoegd op de gemeten

sensorwaarden en we maken gebruik van de graduele aanpak. Onafhankelijk van de

sensorencon�guratie die ontwikkeld wordt zullen we voor het bestra�en van botsingen

opnieuw gebruik maken van dezelfde vier standaardsensoren zoals vroeger.

Uit de vorige experimenten bleek dat met goed gekozen instellingen de resultaten over de

drie uitvoeringen een heel hoog gemiddelde en uiterst lage standaardafwijking hebben.

Dit was zonder meer het geval in experiment 13 met de graduele aanpak. Omdat

de resultaten van de verschillende uitvoeringen voor deze instellingen heel gelijkaardig

zijn, zullen we in dit hoofdstuk telkens slechts één uitvoering beschouwen. Zo kan de

rekentijd, met slechts een heel beperkt resultaatsverlies, heel sterk ingekort worden.

De simulatieomgeving van de EyeBot laat niet toe om gebruik te maken van meer dan

10 sensoren. Daarom ontwikkelden we een uitbreiding die geen limiet kent voor het

beschikbare aantal sensoren. Net zoals in de originele implementatie kunnen sensoren

overal op de robot geplaatst worden in om het even welke hoek en is het bereik beperkt

tot één meter.

4.3.1 Experiment met 35 sensoren

In deze eerste twee experimenten plaatsen we 35 sensoren verspreid over de volledige

robot. Dit wordt schematisch voorgesteld in Figuur 4.1a. Er worden negen sensoren

centraal vooraan geplaatst, vijf op iedere hoek en drie op de twee �anken. Voor het

volgen van gangen zou dit aantal zeker moeten volstaan.

Om de evolutie aan te sporen een goede sturing te ontwikkelen met zo weinig mogelijk

sensoren zullen we aan de �theidsfunctie een extra component toevoegen. De �theid

wordt, enkel wanneer de robot succesvol is, verhoogd met tweemaal de fractie van het

aantal sensoren dat niet gebruikt wordt. Een blind rijdende robot zal dus de maximale

bonus van twee krijgen wanneer deze succesvol het einde bereikt.

Het evolutieproces krijgt de 35 sensoren aangeboden als afzonderlijke terminalen, waar-

bij we de terminalen van de sensoren uit de vorige experimenten weglaten. Dat deze

aanpak redelijk naïef is, wordt duidelijk wanneer we het resulterende aantal basisblok-

ken beschouwen. Waar in de vorige experimenten maximaal 12 basisblokken gebruikt

56

HOOFDSTUK 4. EVOLUTIE VAN ROBOTMORFOLOGIE

(a) De plaatsing van alle 35 sensoren.

3

21

27

26

15

(b) Resultaat van experiment 18.

Figuur 4.1: (a) Schematische voorstelling van alle 35 sensoren waaruit het evolutieproces de

beste kan selecteren. (b) De sensoren die gebruikt worden door de sturing ontwikkeld in

experiment 18. De nummering komt overeen met deze in Figuren 4.3 en 4.2.

werden is dit nu 44. Dit betekent een enorme uitbreiding van de zoekruimte voor het

evolutieproces. Meestal wordt in GP gebruik gemaakt van zo weinig mogelijk basisblok-

ken die toch zo expressief mogelijk zijn. In dit experiment is dit zeker niet het geval.

Zo kunnen we nagaan wat de beperkingen zijn van een groot aantal basisblokken.

Tabel 4.1 toont de belangrijkste parameters voor ieder experiment, de resultaten tijdens

de evolutie en de veri�catiegegevens achteraf. De kolommen P en G bevatten de popu-

latiegrootte respectievelijk het aantal generaties. De inhoud van de overige kolommen

is reeds gekend.

De uitvoeringstijden van de experimenten zijn respectievelijk iets meer dan twee en een

halve dag en iets meer dan vijf dagen. Uiteraard speelt de grootte van de populatie

hierin de belangrijkste rol. Echter, ook de tijd voor het verzamelen van de verschillen-

de statistieken en gedetailleerde informatie over het sensorgebruik van ieder individu

draagt bij tot de rekentijd.

In Figuur 4.1b zijn de sensoren te zien die door de evolutie in experiment 18 werden ge-

kozen. Deze zijn inderdaad zeer geschikt voor het volgen van de linkermuur, en maken

het mogelijk om ook objecten frontaal voor de robot in alle omstandigheden te detecte-

ren. Fouten zoals reeds aangehaald in experimenten 13 en 14 zijn met deze con�guratie

niet langer mogelijk. Bovendien is de robot ook steeds in staat om botsingen tegen de

rechtermuur te vermijden. Het bijkomend nut van de diagonale sensor rechtsonder op

de robot is niet duidelijk. Mogelijks is deze voordelig in de bochten omdat dan langer

57

HOOFDSTUK 4. EVOLUTIE VAN ROBOTMORFOLOGIE

Opstelling Evolutie Veri�catie

Nr P G Penalty Beste E /15 Botsingen Bewegingen /5 Score

17 500 100 3 0,86649 1,71 2 102 2661 0 0,79084

18 1000 100 3 0,86317 1,47 4 50 2361 0 0,78805

Tabel 4.1: Resultaten van de eerste reeks experimenten voor gelijktijdige evolutie van sturing

en morfologie. Iedere robot kreeg de keuze uit 35 vooraf vastgelegde sensoren.

feedback is over de positie van de robot ten opzichte van de rechtermuur. Echter, even

waarschijnlijk is dit een sensor die in verdere generaties niet langer zal gebruikt worden.

In Figuur 4.2 wordt de evolutie van het sensorgebruik van het beste individu doorheen

de generaties voorgesteld. Daarvoor werden de exacte aantallen verzameld van het

totale sensorgebruik bij navigatie door de drie omgevingen uit de laatste categorie leer-

voorbeelden. We merken op dat de sensorencon�guratie reeds rond generatie 60 vastligt,

vanaf dan wordt vooral aan de sturing gewijzigd. Dit is niet te vroeg, in generatie 60

zijn immers alle types bochten al ingevoerd, dus kan de sensorencon�guratie inderdaad

reeds grotendeels vastliggen. Verder blijkt ook dat het aantal gebruikte sensoren reeds

vroeg in het evolutieproces afgebouwd wordt. Tenslotte levert de �guur ondersteuning

voor de hierboven gestelde hypothese dat sensor 27 in verdere generaties mogelijks niet

langer zal gebruikt worden. Het gebruik van de betre�ende sensor neemt immers sterk

af, en is in generatie 60 reeds zeer beperkt.

In Figuur 4.3 wordt eveneens de evolutie van het sensorgebruik voorgesteld. Dit keer

wordt aangegeven hoeveel van de 50 beste individuen per generatie gebruik maken van

een bepaalde sensor. Initieel is het sensorgebruik bijna uniform verdeeld, later treedt

duidelijk convergentie op, die rond generatie 80 zijn de�nitieve vorm aanneemt. Alle

50 beste individuen maken dan gebruik van dezelfde 5 geselecteerde sensoren.

De door de evolutie gekozen sensoren zijn inderdaad goed geschikt voor de navigatie in

gangenstelsels. De resultaten van de geëvolueerde sturing zijn echter minder bruikbaar.

Zowel in omgevingen waarop getraind werd als in compleet nieuwe omgevingen haalt de

robot geen aanvaardbaar niveau. We stellen wel een hoge entropie op het einde van de

evolutie vast. Waarschijnlijk is het dus met meer generaties, en eventueel een grotere

populatie, wel mogelijk om het resultaat te verbeteren. Om de rekentijd te beperken

is dit hier helaas niet mogelijk. Dit mag duidelijk gezien worden als een illustratie van

de risico's bij het gebruik van te veel basisblokken. Het mogelijke aantal programma's

is in deze opstelling enorm. De zoekruimte voor het evolutieproces explodeert als het

ware, wat een te hoge rekentijd vereist om te resulteren in een succesvol programma.

58

HOOFDSTUK 4. EVOLUTIE VAN ROBOTMORFOLOGIE

Figuur 4.2: Een overzicht van de evolutie van het sensorgebruik van het beste individu. Hori-

zontaal worden alle 35 sensoren aangeduid, verticaal wordt aangegeven hoeveel keer het beste

individu van een bepaalde generatie een bepaalde sensor gebruikt, gesommeerd over de drie

omgevingen in de laatste categorie. In de diepte wordt de evolutie van het sensorgebruik over

de generaties heen voorgesteld. Vanaf generatie 60 zijn de wijzigingen heel beperkt.

Figuur 4.3: Een overzicht van de evolutie van het sensorgebruik van de 50 beste individuen.

Horizontaal worden alle 35 sensoren aangeduid, verticaal wordt aangegeven hoeveel van de 50

beste individuen gebruik maken van de betre�ende sensor. In de diepte wordt de evolutie van

het sensorgebruik over de generaties heen voorgesteld. Vanaf generatie 80 zijn de wijzigingen

heel beperkt.

59

HOOFDSTUK 4. EVOLUTIE VAN ROBOTMORFOLOGIE

(a) De plaatsing van

alle 8 sensoren.

(b) Het resultaat van

experiment 21.

Figuur 4.4: (a) Voorstelling van alle 8 sensoren waaruit het evolutieproces vrij kan selecteren.

We onderscheiden de sensoren Vooraan, Achteraan, Links, Rechts, Vooraan Links, Vooraan

Rechts, Links Diagonaal en Rechts Diagonaal. De hoofdletters zullen verder gebruikt wor-

den ter identi�catie van de sensoren. (b) De sensoren die gebruikt worden door de sturing

ontwikkeld in experiment 21.

4.3.2 Experiment met 8 sensoren

In deze sectie gebruiken we dezelfde opstelling als bij de vorige twee experimenten. Ech-

ter, nu met keuze uit slechts acht sensoren in plaats van 35. Deze worden voorgesteld

in Figuur 4.4a. Door zelf een beperkt aantal verschillende types sensoren te de�niëren

kunnen we het evolutieproces versnellen en in een kortere tijd tot een beter resultaat

komen. Zo is de zoekruimte voor het evolutieproces veel beperkter: 17 ten opzichte van

44 basisblokken. In deze opstelling is de uitbreiding van de zoekruimte ten opzichte van

deze in de experimenten uit het vorige hoofdstuk veel beperkter. We verwachten dan

ook dat het evolutieproces binnen een beperkte tijd tot goede resultaten kan leiden.

Vandaar ook de beperktere populatiegrootte en het kleinere aantal generaties.

Alle gegevens voor deze experimenten worden samengevat in Tabel 4.2. Het verschil

tussen experiment 19 en 20 is dat ze gebruik maken van een andere �theidsfunctie. In

experimenten 19 en 21 wordt namelijk een extra bonus toegevoegd aan de �theid wan-

neer de robot het doel bereikt. Deze is gelijk aan de fractie van het aantal niet gebruikte

sensoren. Op deze manier moet de evolutie op zoek naar een minimale sensorencon-

�guratie. In experiment 20 daarentegen wordt geen bonus toegekend bij gebruik van

minder sensoren. We willen nagaan of de evolutie in dat geval zelf het aantal sensoren

reduceert om te komen tot een goede oplossing. Verder merken we op dat experimen-

60

HOOFDSTUK 4. EVOLUTIE VAN ROBOTMORFOLOGIE

Opstelling Evolutie Veri�catie

Nr P G Penalty Beste E /15 Botsingen Bewegingen /5 Score

19 500 43 3 0,86830 1,07 10 45 2376 0 0,72844

20 500 43 3 0,91544 1,05 12 23 1551 3 0,89121

21 500 50 5 0,90886 1,78 15 7 1684 4 0,90545

Tabel 4.2: Resultaten van de tweede reeks experimenten voor gelijktijdige evolutie van sturing

en morfologie. Iedere robot kreeg de keuze uit 8 vooraf vastgelegde sensoren.

ten 19 en 20 na generatie 43 stopgezet werden wegens de sterk gedaalde entropie, en

dus weinig kans op een beter resultaat. Experiment 21 nam iets meer dan één dag in

beslag.

Experiment 19 leidt niet tot goede resultaten op het gebied van sturing. Dit wordt

allicht verklaard doordat alle acht sensoren gebruikt worden. Een e�ciënte sturing

ontwikkelen met behulp van acht sensoren is immers niet zo eenvoudig. Zonder bonus

die minder sensoren stimuleert, is de evolutie niet in staat om zelf het aantal gebruikte

sensoren te verminderen om zo eenvoudigere sturingen te kunnen ontwikkelen, nochtans

zou dit, gezien de andere resultaten, zeker mogelijk moeten zijn.

De resultaten van experimenten 20 en 21 zijn duidelijk beter. Met name experiment

21 levert goede resultaten op. Slechts één van de veri�catieomgevingen wordt niet suc-

cesvol afgewerkt. Er blijkt echter dat de robot net voor het eindpunt zijn totaal aantal

bewegingen heeft opgebruikt. De reden hiervoor ligt bij het soms ine�ciënt gedrag van

de sturing. Er worden vooral enkele overbodige draaibewegingen gemaakt. Gelet op

de nog heel hoge entropie is het echter perfect mogelijk om de sturing nog sterk te

verbeteren. Bovendien werd slechts één dag gerekend aan dit resultaat.

Het beste individu uit experiment 21 maakt gebruik van slechts drie sensoren1. Ze wor-

den voorgesteld in Figuur 4.4b. Net zoals in de vorige reeks experimenten verkiest de

evolutie dus schuin geplaatste sensoren. Deze hebben inderdaad een veel groter bereik

dan loodrecht geplaatste sensoren. Bovendien zal de fout van de niet gedetecteerde

verticale muur met deze con�guratie niet meer kunnen voorkomen. Dit illustreert de

kracht van de evolutie van morfologie. Immers, de standaard robot werd ontwikkeld

met drie loodrechte sensoren en de bijhorende nadelen. Na dit experiment echter, blijkt

duidelijk dat de robuustheid van de robot sterk kan verhoogd worden met diagonaal

geplaatste sensoren. Dit is een interessante overweging bij het ontwerp van de robot.

Figuur 4.5a is een uitstekende illustratie voor de convergentie van de populatie, voorge-

1Het beste individu uit experiment 20 maakt gebruik van vier sensoren, namelijk L, R, VL en VR.

61

HOOFDSTUK 4. EVOLUTIE VAN ROBOTMORFOLOGIE

(a) Evolutie van het sensorgebruik van de 50 beste

individuen.

(b) Evolutie van het sensorgebruik van het beste

individu.

Figuur 4.5: (a) De evolutie van het sensorgebruik voor de 50 beste individuen per generatie.

De �guur geeft aan hoeveel van de 50 beste individuen gebruik maken van een bepaalde

sensor in de loop van de generaties. Rond generatie 30 is de convergentie grotendeels voltooid

en worden door alle 50 beste individuen dezelfde sensoren gebruikt. (b) De evolutie van

het sensorgebruik van de beste robot per generatie. Er wordt aangegeven hoeveel keer een

bepaalde sensor gebruikt wordt bij navigatie in de drie omgevingen uit de laatste categorie

leervoorbeelden.

steld door de 50 beste individuen, naar de uiteindelijke sensorencon�guratie in experi-

ment 21. Heel geleidelijk wordt het gebruikte aantal sensoren verminderd. De sensoren

V, A en R worden relatief vroeg in de evolutie weggelaten; intuïtief zijn deze inderdaad

minder geschikt dan schuin geplaatste sensoren. Omdat het volgen van de linkermuur

belangrijk is, zijn de sensoren gericht op de linkerkant belangrijker dan de andere. Deze

worden dan ook pas later in het evolutieproces geconfronteerd met selectie. In Figuur

4.5b wordt de evolutie van het sensorgebruik van het beste individu uit experiment 21

getoond. Opnieuw worden de totalen gebruikt over de drie omgevingen uit de laatste

categorie leervoorbeelden.

4.3.3 Experiment met 1617 sensoren

In dit experiment maken we gebruik van een �exibelere oplossing. In plaats van een

unieke terminaal voor iedere sensor, voegen we een functie met drie argumenten als ba-

sisblok toe. Twee argumenten geven de horizontale en verticale plaatsing van de sensor

op de robot aan, het derde argument bepaalt de hoek van de sensor ten opzichte van

de robot. Om gebruik te kunnen maken van een groot aantal verschillende sensorplaat-

singen voegen we negen constantes2 toe als terminalen. Omdat de grotere waarden, die

2Dit zijn: 0, 15, 30, 45, 60, 75, 90, 135, 180.

62

HOOFDSTUK 4. EVOLUTIE VAN ROBOTMORFOLOGIE

Opstelling Evolutie Veri�catie

Nr P G Penalty Beste E /15 Botsingen Bewegingen /5 Score

22 1000 100 5 0,88564 2,26 6 24 2448 0 0,79552

Tabel 4.3: Resultaten voor experiment 22 betre�ende de gelijktijdige evolutie van sturing en

morfologie.

interessant zijn voor het de�niëren van de hoek, niet geschikt zijn als argument voor

de verticale of horizontale plaatsing, zullen we voorzorgen moeten nemen. Hetzelfde

geldt voor argumenten, zoals moveforward, die -1 teruggeven. Om aan de sluitingsei-

genschap te voldoen worden de argumenten van de sensorfunctie gecontroleerd. Indien

deze buiten het zinvol bereik vallen, wordt een standaard waarde3 voor het betre�ende

argument toegekend. Bijkomend wordt gebruik gemaakt van een extra functie (NEG)

die het teken van het enige argument wijzigt. Zo wordt het aantal beschikbare sensor-

plaatsingen nog sterk verhoogd.

Samengevat beschikken we nu over 77 mogelijke plaatsingen op de robot, elk met nog

21 verschillende hoeken. Dit resulteert in totaal in 1617 mogelijke sensoren. Toch heb-

ben we hiervoor slechts twee functies en negen terminalen toegevoegd. We gebruiken

in dit experiment dus slechts 20 basisblokken (de drie oorspronkelijke PSD-terminalen

werden weggelaten) in plaats van 44. Toch beschikken we over een grotere �exibiliteit

en meer mogelijkheden dan in de vorige experimenten.

Het evolutieproces kan vrij kiezen hoeveel sensoren gebruikt worden. De �theidsfunctie

wordt dus niet uitgebreid met een bonus voor minder sensoren. Verder wordt ook een

penalty van vijf toegekend voor botsingen. We beschouwen een populatie van 1000 in-

dividuen gedurende 100 generaties. Dit experiment vereiste een rekentijd van ongeveer

vijf dagen.

De resultaten worden voorgesteld in Tabel 4.3. Algemeen is het resultaat net iets beter

dan het experiment met 35 sensoren. De sturing is niet algemeen bruikbaar, slechts in

sommige omgevingen bereikt de robot de uitgang. Verder is deze niet e�ciënt, er wordt

veel overbodig (ook ter plaatse) gedraaid. Soms wordt zelfs kort achteruit gereden, ge-

faciliteerd doordat zowel voor- als achteraan sensoren opgesteld zijn. Dit resulteert

echter niet in de meest eenvoudige sturing.

Het resulterende programma is, met meer dan 800 knopen, het grootste van alle expe-

rimenten tot nu toe. Er is in de loop der generaties inderdaad een duidelijke codegroei.

Dit wordt het best geïllustreerd door het sensorgebruik. Zo wordt voor de argumenten

3Overeenkomstig met het argument voor de sensor vooraan, zoals standaard op de robot.

63

HOOFDSTUK 4. EVOLUTIE VAN ROBOTMORFOLOGIE

Figuur 4.6: Het navigatiegedrag van de sturing uit experiment 22 in omgeving 12, één van de

zes omgevingen die wel succesvol voltooid kunnen worden.

van de sensorfunctie vaak gebruik gemaakt van het resultaat van andere sensormetin-

gen. In plaats van de 1617 mogelijke sensorplaatsingen die we voorzien hadden, werden

dus veel meer con�guraties beschouwd. De zoekruimte wordt dus nog veel groter. Noch-

tans is het voor deze taak niet opportuun om het verschil tussen een sensor in een hoek

van 60◦ of 62◦ te onderzoeken.

Het resulterende programma gebruikt niet minder dan 155 unieke sensoren, opnieuw ge-

meten bij navigatie in de laatste 3 leervoorbeelden. Echter, de meeste daarvan worden

slechts één keer gebruikt. Dit zijn meestal intronen die wel uitgevoerd worden, maar

weinig of geen functionele waarde bezitten. Zo worden 112 sensoren slechts één keer en

135 sensoren maximaal vijf keer gebruikt. Een groot aantal daarvan werden dynamisch

gede�nieerd aan de hand van andere sensorwaarden. Slechts 7 sensoren, verspreid over

de robot, worden minstens 30 keer gebruikt, deze zorgen wel voor een functionele meer-

waarde. Opnieuw stellen we vast dat vooraan op de robot enkel diagonaal geplaatste

sensoren gebruikt worden. Links en rechts op de robot staan daarentegen wel loodrecht

gerichte sensoren.

Een belangrijke conclusie is dat de verhoogde �exibiliteit kan leiden tot betere resul-

taten. Het resultaat is immers iets beter dan dat uit het experiment met 35 vaste

sensoren. Hoewel de zoekruimte in experiment 22 veel groter is, werd met dezelfde

rekentijd dus toch een beter resultaat behaald. De reden hiervoor is niet onmiddellijk

duidelijk. Hoogstwaarschijnlijk is dit niet dankzij een e�ciëntere sensorencon�guratie.

Mogelijks kon het evolutieproces wegens de grotere vrijheid wel op een e�ciëntere ma-

nier het �theidslandschap verkennen; de reeds vermelde extradimensional bypass. Meer

onderzoek is echter nodig om het verschil tussen enerzijds meer �exibiliteit met minder

64

HOOFDSTUK 4. EVOLUTIE VAN ROBOTMORFOLOGIE

basisblokken en anderzijds een groter aantal sterk afgelijnde basisblokken beter in te

kunnen schatten.

Tenslotte merken we op dat het evolutieproces nog niet convergeerde. De entropie zakt

tijdens het volledige evolutieproces slechts een heel beperkt aantal keer onder de twee.

In de laatste generatie is dit met 2,26 nog steeds heel hoog. Om werkelijk te convergeren

zou echter nog veel bijkomende rekentijd nodig zijn. De zoekruimte is in deze opstelling

voor één enkele standaard PC te groot om op een beperkte tijd onderzocht te worden.

65

Hoofdstuk 5

Besluit

Hieronder geven we een overzicht van de belangrijkste resultaten en conclusies van

dit werk. We onderscheiden de resultaten in simulatie, in realiteit, en co-evolutie van

sturing en morfologie.

5.1 In simulatie

Ten eerste hebben we aangetoond dat het mogelijk is om met behulp van GP een stu-

ring voor autonome mobiele robots te ontwikkelen die in staat is om in gangenstelsels

waarin getraind werd, succesvol naar de uitgang te navigeren. Hiervoor werd, in te-

genstelling tot veel andere opstellingen in de literatuur, geen gebruik gemaakt van een

sterk vereenvoudigde simulatieomgeving. We voerden de experimenten uit in de simu-

latieomgeving van het realistische robotplatform van de EyeBot.

Bovendien was het evolutieproces in staat om een sturing te ontwikkelen die ook suc-

cesvol navigeert in omgevingen waarin tijdens de evolutie niet getraind werd. Het was

dus mogelijk om een algemene sturing te ontwikkelen.

Om dit te realiseren bleken een aantal technieken zeer geschikt. Vooreerst maakten

we gebruik van meerdere leervoorbeelden omdat anders enkel de omgeving wordt ge-

memoriseerd, zonder een algemene strategie te ontwikkelen. Bovendien werken deze

gecombineerd in een variant op de gelaagd leren aanpak waarbij eerst de basisgedra-

gingen aangeleerd worden en de moeilijkere gedragingen pas daarna aan bod komen.

Concreet maakten we gebruik van vijf categorieën met omgevingen die stelselmatig

moeilijker worden, maar met voldoende diversiteit binnen iedere categorie. Zo werd

in iedere categorie met drie leervoorbeelden telkens één omgeving toegevoegd die dui-

delijk moeilijker of gemakkelijker was dan de andere. Deze diversiteit bleek van heel

groot belang, want een aanpak met allemaal gelijkaardige omgevingen gaf niet het ge-

wenste resultaat. Ook een experiment waarbij we alle omgevingen in iedere generatie

66

HOOFDSTUK 5. BESLUIT

gebruikten, zonder afwisselende categorieën, leverde, zelfs met veel meer rekentijd, geen

aanvaardbaar resultaat op.

Om te bepalen in welk tempo en op welke manier de categorieën best afgewisseld wor-

den, testten we een aantal strategieën. De graduele methode, waarbij iedere moeilijkere

categorie telkens iets meer generaties de tijd krijgt, leverde in een omgeving met ruis

veruit de beste resultaten op. Bovendien levert deze methode, zelfs met veel minder

rekentijd, betere resultaten dan gelijkaardige technieken waarbij de categorieën wel uit

allemaal voorbeelden van dezelfde moeilijkheidsgraad bestaan.

Het toevoegen van ruis aan de sensoren bleek in deze omstandigheden, zoals reeds op-

gemerkt in de literatuur, inderdaad heel positief. De oplossing die ontwikkeld werd met

ruis was duidelijk robuuster dan deze zonder.

Tenslotte stelden we vast dat, in alle succesvolle oplossingen, dezelfde strategie aan de

basis lag. Het evolutieproces ontdekte namelijk dat door het volgen van de linkermuur

geen problemen zoals het rijden in de verkeerde richting konden optreden. Dit is een

mooie illustratie van de kracht van het evolutieproces om te komen tot eenvoudige maar

zeer robuuste oplossingen.

5.2 Van simulatie naar realiteit

Het uiteindelijke doel van de evolutie is uiteraard om de sturing te kunnen gebrui-

ken op een echte robot. In simulatie maakten we daarom gebruik van kleine bochten

die gemakkelijk kunnen bijgestuurd worden, wat in realistische omgevingen wegens de

tractieverschillen tussen verschillende ondergronden altijd nodig is. Bovendien werd

ruis toegevoegd op zowel sensoren als actuatoren. Dit geheel leidt tot een signi�cante

opschaling van het probleem. Toch kon dit succesvol aangepakt worden met dezelfde

technieken, mits iets meer rekentijd. Een overblijvend probleem is dat de optimale po-

pulatiegrootte niet a priori kan bepaald worden, zodat meestal een aantal con�guraties

moeten getest worden.

Nadat het volledige evolutieproces in simulatie werd uitgevoerd, waren we in staat om

het gedrag dat geëvolueerd werd over te brengen op de echte robot. Wel stelden we de

gekende reality gap vast, het gedrag in realiteit was iets minder goed dan dat in simula-

tie. Toch was de robot in staat om succesvol te navigeren, werd rechtdoor gereden waar

mogelijk, en werden de bochten e�ciënt aangesneden. Bovendien is het resulterende

programma met slechts 200 knopen eerder kort.

67

HOOFDSTUK 5. BESLUIT

5.3 Co-evolutie van sturing en morfologie

We toonden aan dat het heel belangrijk is om het aantal basisblokken dat gebruikt

wordt beperkt te houden. Anders dreigt de zoekruimte veel te groot te worden, waar-

door het evolutieproces ofwel heel veel rekentijd nodig heeft (meer dan 5 dagen) ofwel

geen aanvaardbare oplossing kan vinden.

Verder bleek duidelijk dat de co-evolutie van sturing en morfologie van sensoren voor-

delig kan zijn. Het evolutieproces was in staat om goed geplaatste sensoren te kiezen

om zo een e�ciënte maar toch eenvoudige sturing te ontwikkelen. Om tot dit resultaat

te komen was het wel nodig om in de �theidsfunctie een extra bonuscomponent in te

bouwen zodat de evolutie er werd toe aangezet om zuinig om te gaan met het aantal

gebruikte sensoren.

Telkens observeerden we een geleidelijke evolutie van het sensorgebruik tijdens het evo-

lutieproces. We stelden vast hoe de evolutie de minst belangrijke sensoren eerst wegliet,

om uiteindelijk enkel de beste over te houden. Bovendien werd duidelijk dat schuin ge-

plaatste sensoren duidelijk de voorkeur verdienen. Deze hebben immers het grootste

bereik. Dit is een ontwerpkeuze die bij het ontwerp van de echte robot over het hoofd

werd gezien, standaard beschikt deze immers enkel over loodrechte sensoren.

Bij gebruik van één functie voor alle sensorfunctionaliteit, in plaats van een unieke ter-

minaal per sensor, zien we verschillende mogelijkheden voor verder onderzoek. Zo zou

de �theidsfunctie nog kunnen ver�jnd worden, of kan het aantal beschikbare sensoren

dynamisch (tijdens de evolutie) gereduceerd worden. Ook �lters om naburige sensoren

samen te voegen zijn een optie. Tenslotte stelden we vast dat meer onderzoek nodig is

om het verschil tussen een beperkt aantal �exibele functies en een groter aantal sterk

afgelijnde basisblokken goed in te kunnen schatten.

68

B¼lage A

Voorbeeldprogramma

Dit is het programma geëvolueerd door GP zoals beschreven in experiment 15.

( IF_LESS high ( IF_LESS ( PROGN2 high psdright )

( IF_LESS ( PROGN2 moveforward low ) ( IF_LESS

( PROGN2 ( PROGN2 high psdright ) ( IF_LESS ( PROGN2 medium high )

( IF_LESS psdleft high ( PROGN2 ( PROGN2 medium high )

( IF_LESS moveforward medium moveforward low ) ) psdleft )

( PROGN2 ( PROGN2 psdright psdfront ) ( PROGN2

( PROGN2 psdright psdfront )

( IF_LESS moveforward medium moveforward low ) ) )

( IF_LESS psdfront psdleft medium psdleft ) ) )

( IF_LESS psdleft high ( IF_LESS ( PROGN2 ( PROGN2

( IF_LESS psdleft high ( IF_LESS ( PROGN2

( PROGN2 psdright psdfront )

( IF_LESS moveforward medium moveforward low ) )

( IF_LESS psdfront psdleft medium psdleft )

( IF_LESS psdfront turnright moveforward psdright )

( IF_LESS psdleft high ( IF_LESS

( IF_LESS psdfront medium turnright low )

( IF_LESS psdfront medium turnright low ) ( PROGN2 medium low )

( PROGN2 ( IF_LESS psdfront medium turnright low )

moveforward ) ) psdleft ) ) psdleft ) psdfront ) psdfront )

( IF_LESS psdfront medium turnright low ) ( PROGN2 medium low )

( IF_LESS psdleft high ( IF_LESS ( IF_LESS psdfront

medium turnright low ) psdfront ( IF_LESS

( PROGN2 psdfront psdleft ) ( PROGN2 moveforward psdfront )

69

B�LAGE A. VOORBEELDPROGRAMMA

( PROGN2 medium high ) ( IF_LESS psdleft high

( IF_LESS ( IF_LESS psdfront medium turnright low )

( IF_LESS psdfront medium turnright low )

( PROGN2 medium low ) ( PROGN2 turnright moveforward ) )

psdleft ) ) ( PROGN2 turnright moveforward ) )

psdleft ) ) psdleft ) medium ( IF_LESS psdleft

medium movebackward turnleft ) )

( IF_LESS psdfront turnright moveforward psdright )

( IF_LESS psdfront psdleft medium psdleft ) ) psdright medium )

( PROGN2 psdright high ) ( IF_LESS psdleft medium

( IF_LESS psdfront turnright moveforward psdright ) turnleft ) )

70

B¼lage B

Simulatiebestanden

B.1 Robi-bestand met instellingen voor de robot

# Robi description file for the EyeBot simulator EyeSim 6.0

# The name of the robi

name S4

# Robot diameter in mm

diameter 186

# Max linear velocity in mm/s

speed 600

# Max rotational velocity in deg/s

turn 300

# The file name of the OpenInventor model used for this robot

model S4.ms3d

# PSD sensor definition (names followed by id in "hdt_sem.h")

# Name, id, relative pos. to robi center(x,y,z), angle in x-y plane

psd PSD_FRONT -200 60 20 30 0

psd PSD_LEFT -205 56 45 30 90

psd PSD_RIGHT -210 56 -45 30 -90

psd PSD_BACK -212 -60 20 30 180

71

B�LAGE B. SIMULATIEBESTANDEN

# Added for experiment with 8 sensors

psd PSD_FRONTLEFT -201 70 48 30 -50

psd PSD_FRONTRIGHT -202 70 -48 30 50

psd PSD_LEFTDIAG -203 -70 48 30 20

psd PSD_RIGHTDIAG -204 -70 -48 30 -20

# Wheel diameter [mm], max. rotational velocity [deg/s],

# encoder ticks/rev., wheel-base distance [mm]

wheel 54 3600 1100 90

# Motors and encoders for low level drive routines

# Diff.-drive: left motor, left encoder, right motor, right encoder

drive DIFFERENTIAL_DRIVE MOTOR_LEFT QUAD_LEFT MOTOR_RIGHT QUAD_RIGHT

72

B�LAGE B. SIMULATIEBESTANDEN

B.2 Trainingsgangenstelsels

_____________

| ___________|o

| | |

| | |

| | |

| | |

| | |

|S|___________|

400

O__________

|_________ |

| | |

| | |

| | |

| | |

| | |

|_________|S|

400

O _________

| | |

| | |

| |_________|

|_________ |

| | |

| | |

|_________|S|

400

___________

|_____ |

| _ | |

| | | |_____|

| | |_______|o

| | |

| | |

|S|_________|

400

________O

| | |

| ___| |

| | _ _|

| | | |

|___| | |

| ___| |

|S|_______|

400

_____________

| | _______|o

| _| | |

| | _|_______|

| | | _____ |

| |___| | |

| | |

|___________|S|

400

73

B�LAGE B. SIMULATIEBESTANDEN

O____________

|___ | |

| | |___ |

| |___ |___|

| |___ |

| | |

| | |

|___________|S|

400

___________

| _________|o

|_______ | |

| | | |

|_______| | |

| _______| |

| | |

|S|_________|

400

___________ O

|___ |___| |

| | | ___|

| | | | | |

| | | | | |

| | |___| | |

| |_______|___|

|S|___________|

400

_____________

| ____________|o

| | _________|

| | | _____ |

| |_| | | |

|_____| | |

| | |

|___________|S|

400

_____________

| ___________|o

| | ___ |

| |_| | |

|_____| |_ |

|_____|_ | |

|_______| | |

|S________|___|

400

_____________

| ____________|o

|________ | |

| _______| |

| |___________|

|___________ |

| ___________|

|S|___________|

400

74

B�LAGE B. SIMULATIEBESTANDEN

_____________

| ____________|o

|________ | |

| _____| |

| |_________|

|___________ |

| ___________|

|S|___________|

400

_____________

| | _____|o

| | |___ |

| ___|___ | |

|_| ___ | | |

| _| | | | |

| | |___| |

|S|__________ |

400

_______________

| | | ______|o

| | | |___ | |

| | |_______| | |

| | | | ____|_|

| | | | |______ |

| | | |_________|

|S|___|_________|

400

75

B�LAGE B. SIMULATIEBESTANDEN

B.3 Veri�catiegangenstelsels

___________________________________

| _ _______________________________|o

|_ |___ |

| | | | |

| |___| |_______________________ |

| |_______________________ | |

|_____________________________| | |

|S______________________________|___|

400

_______________

| | _________|o

| | |_______ |

| |_______ | |

|________ | _|_|

| |_____| | |

| | | _____| |

|S|___|_________|

400

_____________

| ____________|o

|____ | |

| ___|_______|

| |_______| |

|___________| |

|_____| ______|

|S______|_____|

400

___________ _______

| |_|_|_|___| _____|o

|_|_|_|_|___|___ | |

| _ |_|___|___| | |

| |_|_ |___| ____|_|

| |_|_|_ |_|_____ |

| |_|_|_|___ |___| |

|S|_|_|_|___|_______|

400

_______________

|_______ | |o

| ___ | | |

|_ __ | |_ ___| |

|_| _|_ | ___|

| _| | | | |

| | |___| |

|S|_____________|

400

76

Bibliogra�e

[1] J.C. Bongard and C. Paul. Making Evolution an O�er it can't Refuse: Morphology

and the Extradimensional Bypass. Lecture Notes in Computer Science, pages 401�

412, 2001.

[2] T. Bräunl. Embedded Robotics: Mobile Robot Design and Applications With Em-

bedded Systems. Springer-Verlag, 2nd edition edition, 2006.

[3] G. Buason, N. Bergfeldt, and T. Ziemke. Brains, bodies, and beyond: Compe-

titive co-evolution of robot controllers, morphologies and environments. Genetic

Programming and Evolvable Machines, 6(1):25�51, 2005.

[4] M.D. Bugajska and A.C. Schultz. Co-evolution of form and function in the design

of autonomous agents: Micro air vehicle project. In GECCO-2000 Workshop on

Evolution of Sensors in Nature, Hardware and Simulation, pages 240�244. Cam-

bridge, Mass: MIT Press, 2000.

[5] J.A. Bullinaria. From biological models to the evolution of robot control systems.

Philosophical Transactions of the Royal Society A: Mathematical, Physical and

Engineering Sciences, 361(1811):2145�2164, 2003.

[6] J.A. Bullinaria and X. Li. An introduction to computational intelligence techniques

for robot control. Industrial Robot: An International Journal, 34(4):295�302, 2007.

[7] C. Darwin. On the Origin of Species by Means of Natural Selection, or the Pre-

servation of Favoured Races in the Struggle for Life. John Murray, London, UK,

1859.

[8] J.F. Dupuis and M. Parizeau. Evolving a Vision-Based Line-Following Robot Con-

troller. In Proceedings of the The 3rd Canadian Conference on Computer and Robot

Vision, page 75. IEEE Computer Society Washington, DC, USA, 2006.

77

BIBLIOGRAFIE

[9] D. Floreano and J. Urzelai. Evolutionary On-Line Self-Organization of Autono-

mous Robots. In Proceedings of the 5th International Conference on Arti�cial Life

and Robotics, pages 431�443, 2000.

[10] D. Floreano and J. Urzelai. Evolutionary Robots: The Next Generation. In The

7th International Symposium on Evolutionary Robotics (ER2000): From Intelligent

Robots to Arti�cial Life, pages 231�266, 2000.

[11] C. Gathercole, P. Ross, and S. Bridge. Small populations over many generations

can beat large populations over few generations in genetic programming. In JR

Koza (eds.). The Second Genetic Programming Conference, pages 111�118. Morgan

Kaufmann, 1997.

[12] T. Goosen, R. Brule, J.H. Janssen, and WFG Haselager. Interleaving Simulated

and Physical Environments Improves Evolution of Robot Control Structures. In

M.M. Dastani and E. de Jong, editors, BNAIC 2007: Proceedings of the 19th

Belgium-Netherlands Arti�cial Intelligence Conference, November 5-6, Utrecht, the

Netherlands, BNAIC 19, pages 135�142. Utrecht University, 2007.

[13] S. Gustafson and W. Hsu. Genetic programming for strategy learning in soccer

playing agents: A kdd-based architecture. In Graduate Student Workshop of the

Genetic and Evolutionary Computation Conference, Las Vegas, USA, pages 277�

280, 2000.

[14] S.M. Gustafson and W.H. Hsu. Layered Learning in Genetic Programming for a

Cooperative Robot Soccer Problem. Lecture Notes in Computer Science, 2038:291�

301, 2001.

[15] N. Jakobi, P. Husbands, and I. Harvey. Noise and the reality gap: The use of

simulation in evolutionary robotics. Lecture Notes in Computer Science, 929:704�

720, 1995.

[16] A. Koestler and T. Bräunl. Mobile Robot Simulation with Realistic Error Models.

In International Conference on Autonomous Robots and Agents, ICARA, pages

46�51, 2004.

[17] J.R. Koza. Genetically breeding populations of computer programs to solve pro-

blems in arti�cial intelligence. In Tools for Arti�cial Intelligence, Proceedings of

the 2nd International IEEE Conference on, pages 819�827, 1990.

[18] J.R. Koza. Evolution and co-evolution of computer programs to control

independently-acting agents. In From Animals to Animats. Proceedings of the

78

BIBLIOGRAFIE

First International Conference on Simulation of Adaptive Behavior. MIT Press,

Cambridge, MA, pages 366�375, 1991.

[19] J.R. Koza. Genetic Programming: On the programming of computers by Means of

natural selection. MIT Press, Cambridge, Massachusetts, 1992.

[20] J.R. Koza. Genetic Programming II: Automatic discovery of reusable programs.

MIT Press, Cambridge, Massachusetts, 1994.

[21] J.R. Koza, M.A. Keane, and M.J. Streeter. What's AI done for me lately? Genetic

programming's human-competitive results. Intelligent Systems, IEEE, 18(3):25�

31, 2003.

[22] C. Lazarus and H. Hu. Using Genetic Programming to Evolve Robot Behaviours.

In Proceedings of the 3rd British Conference on Autonomous Mobile Robotics &

Autonomous Systems, 2001.

[23] W.P. Lee. Evolving Autonomous Robot: From Controller to Morphology. IEICE

Transactions on Information and Systems, 83(2):200�210, 2000.

[24] L. Lichtensteiger and P. Eggenberger. Evolving the morphology of a compound

eye on a robot. In Advanced Mobile Robots, Third European Workshop on, pages

127�134, 1999.

[25] S. Luke. When short runs beat long runs. In Proceedings of the Genetic and

Evolutionary Computation Conference, pages 74�80. Morgan Kaufmann, 2001.

[26] S. Luke et al. Genetic programming produced competitive soccer softbot teams

for robocup97. Genetic Programming, pages 214�222, 1998.

[27] H.H. Lund, J. Hallam, and W.P. Lee. Evolving robot morphology. In IEEE

International Conference on Evolutionary Computation, pages 197�202, 1997.

[28] H.H. Lund and O. Miglino. From simulated to real robots. In Evolutionary Com-

putation, Proceedings of IEEE International Conference on, pages 362�365, 1996.

[29] H.H. Lund, O. Miglino, L. Pagliarini, A. Billard, and A. Ijspeert. Evolutionary

robotics-a children's game. In Evolutionary Computation Proceedings, IEEE World

Congress on Computational Intelligence, pages 154�158, 1998.

[30] O. Miglino, H.H. Lund, and S. Nol�. Evolving mobile robots in simulated and real

environments. Arti�cial Life, 2(4):417�434, 1995.

79

BIBLIOGRAFIE

[31] J. Miller and P. Thomson. Cartesian genetic programming. In Proceedings of the

Third European Conference on Genetic Programming (EuroGP2000), volume 1802,

pages 121�132. Springer-Verlag, 2000.

[32] A.L. Nelson, E. Grant, J.M. Galeotti, and S. Rhody. Maze exploration behaviors

using an integrated evolutionary robotics environment. Robotics and Autonomous

Systems, 46(3):159�173, 2004.

[33] S. Nol� and D. Floreano. Evolutionary Robotics: The Biology, Intelligence, and

Technology of Self-Organizing Machines. MIT Press Cambridge, 2000.

[34] P. Nordin and W. Banzhaf. Complexity compression and evolution. In L.J. Es-

helman, editor, Proceedings of the Sixth International Conference on Genetic Al-

gorithms, pages 240�245. Morgan Kau�man, 1995.

[35] P. Nordin and W. Banzhaf. Genetic programming controlling a miniature robot. In

Working Notes for the AAAI Symposium on Genetic Programming, pages 61�67,

1995.

[36] P. Nordin and W. Banzhaf. Real time control of a Khepera robot using genetic

programming. Control and cybernetics, 26:533�562, 1997.

[37] E.H. Ostergaard and H.H. Lund. Co-evolving complex robot behavior. In In

Proceedings of ICES2003, 2003.

[38] G.B. Parker, P.J. Nathan, C. Coll, and N. London. Co-Evolution of Sensor Morp-

hology and Control on a Simulated Legged Robot. In Computational Intelligence in

Robotics and Automation, 2007. CIRA 2007. International Symposium on, pages

516�521, 2007.

[39] A.L.F. Perez, G. Bittencourt, and M. Roisenberg. Embodied Evolution with a

New Genetic Programming Variation Algorithm. In Autonomic and Autonomous

Systems, ICAS 2008, pages 118�123, 2008.

[40] A.L.F. Perez, G. Bittencourt, and M. Roisenberg. A new approach to control a

population of mobile robots using genetic programming. In SAC '08: Proceedings

of the 2008 ACM symposium on Applied computing, pages 1602�1606, New York,

NY, USA, 2008. ACM.

[41] J. Pollack, H. Lipson, S. Ficici, P. Funes, G. Hornby, and R. Watson. Evolutionary

techniques in physical robotics. In Evolvable Systems: From Biology to Hardware:

Third International Conference, ICES 2000, Edinburgh, Scotland, UK, April 17-

19, 2000: Proceedings. Springer, 2000.

80

BIBLIOGRAFIE

[42] C.W. Reynolds. Evolution of corridor following behavior in a noisy world. In

D. Cli�, P. Husbands, J.-A. Meyer, and S. Wilson, editors, From Animals to

Animats 3: Proceedings of the third International Conference on Simulation of

Adaptive Behavior, pages 402�410. MIT Press, 1994.

[43] J.P. Rosca. Entropy-driven adaptive representation. In J.P. Rosca, editor, Pro-

ceedings of the Workshop on Genetic Programming: From Theory to Real-World

Applications, pages 23�32, 1995.

[44] S. Sette and L. Boullart. Genetic programming: Principles and applications. En-

gineering Applications of Arti�cial Intelligence, 14:727�736, 2001.

[45] J. Urzelai and D. Floreano. Evolutionary Robotics: Coping with Environmental

Change. In Proceedings of the Genetic and Evolutionary Computation Conference,

2000.

[46] J. Walker, S. Garrett, and M. Wilson. Evolving Controllers for Real Robots: A

Survey of the Literature. Adaptive Behavior, 11(3), 2003.

[47] D. Whitley, M. Richards, R. Beveridge, and A. da Motta Salles Barreto. Alternati-

ve evolutionary algorithms for evolving programs: Evolution strategies and steady

state GP. In Maarten Keijzer, Mike Cattolico, and Dirk Arnold et al., editors,

GECCO 2006: Proceedings of the 8th annual conference on Genetic and evolutio-

nary computation, volume 1, pages 919�926, Seattle, Washington, USA, 8-12 July

2006. ACM Press.

[48] B. Wyns. Genetisch programmeren en codegroei. Doctoraatsthesis, Universiteit

Gent, 2007.

[49] B. Wyns, P. De Bruyne, and L. Boullart. Characterizing diversity in genetic pro-

gramming. In P. Liardet, P. Collet, C. Fonlupt, E. Lutton, and M. Schoenauer,

editors, Proceedings of the 9th European Conference on Genetic Programming, vo-

lume 3905 of Lecture Notes in Computer Science, pages 250�259. Springer-Verlag,

2006.

81