university of applied sciences gegr. 1970 fachhochschule...

111
university of applied sciences gegr. 1970 fachhochschule hamburg FACHBEREICH ELEKTROTECHNIK UND INFORMATIK Diplomarbeit Jan Philip Porschke Genetische Programmierung von verhaltensbasierten Agenten Studiengang Softwaretechnik Betreuender Prüfer: Prof. Dr. Kai von Luck Zweitgutachter: Prof. Dr. Klauck Abgegeben am 16. Januar 2002 BERLINER TOR 3 D - 20099 HAMBURG

Transcript of university of applied sciences gegr. 1970 fachhochschule...

university of applied sciencesgegr. 1970 fachhochschulehamburg

F A C H B E R E I C H E L E K T R O T E C H N I K

U N D I N F O R M A T I K

Diplomarbeit

JanPhilip Porschke

GenetischeProgrammierungvonverhaltensbasiertenAgenten

StudiengangSoftwaretechnikBetreuenderPrüfer:Prof.Dr. Kai vonLuckZweitgutachter:Prof.Dr. KlauckAbgegebenam16.Januar2002

BERLINER TOR 3 � D - 20099 HAMBURG

GenetischeProgrammierungvonverhaltensbasiertenAgenten

Stichworte

Agenten,mobileRoboter, genetischeProgrammierung,maschinellesLernen

Zusammenfassung

DieseDiplomarbeitbeschäftigtsich mit der genetischenProgrammie-rung von verhaltensbasiertenAgenten.Sie dokumentierteinenLaborver-such,in dem ein genetischesVerfahrendasVerhalteneinesmobilen Ro-botershinsichtlicheinergegebenenAufgabenstellungoptimierensoll. DerRoboterkommuniziertdabeiübereineInfrarotschnittstellemit demauf ei-nemexternenRechnerlaufendengenetischenOptimierer.

Das im Rahmender Diplomarbeit entstandeneProgrammist für dasRobot–Labder Hochschulefür AngewandteWissenschaftenHamburg ge-dacht.DieseArbeit dokumentiertnebenderVersuchsdurchführungdasDe-sign und die Implementierungdes beschriebenemAgentensystems.DieAnalysederVersuchsdurchläufesoll klären,ob die obenbeschriebeneAuf-gabemit dembeschriebenemSystemgelöstwerdenkann.

GeneticProgrammingof Behaviour BasedAgents

Keywords

Agents,Mobile Robots,GeneticProgramming,Machine-basedLearning

Abstract

This thesisdealswith theuseof geneticalgorithmsto optimizethebe-haviour of anembodiedagent(mobilerobot).Thethesisdecribesanexperi-mentin whichagenticmethodis usedto optimizethebehaviour of amobilerobotin repectto aspecifictask.During theexperimenttherobotexchangesdatavia aninfrared-interfacewith a geneticoptimizerrunningon anexter-nal computer.

Theapplicationdevelopedin conjunctionwith thisthesisis intendfor therobot-labof theuniversity of appliedsiencesHamburg. Apart from descri-bingthesetupof theexperimentthethesiscontainsadesciptionof thedesignandtheimplementationof theagentsystem.Theanalysisof thetest-runsisusedto answerthequestionif theaforementionedtaskcanbesuccessfullycompletedby usingthissystem.

Inhaltsverzeichnis

Einleitung 6

1 Agenten 91.1 DerAgentenBegriff . . . . . . . . . . . . . . . . . . . . . . . . 91.2 TaxonomiederAgenten. . . . . . . . . . . . . . . . . . . . . . . 121.3 AgentenArchitekturen . . . . . . . . . . . . . . . . . . . . . . . 13

1.3.1 ModellbasierteEntscheidungsfindung. . . . . . . . . . . 141.3.2 ReaktiveEntscheidungsfindung. . . . . . . . . . . . . . 14

2 MaschinellesLernen 162.1 Lernen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.2 Wissensrepräsentation. . . . . . . . . . . . . . . . . . . . . . . 17

2.2.1 Symbolisch-kognitivistischeRepräsentation. . . . . . . . 172.2.2 KonnektionistischeRepräsentation. . . . . . . . . . . . . 182.2.3 InteraktionistischeRepräsentation. . . . . . . . . . . . . 18

2.3 Lernverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192.3.1 KonnektionistischesLernen . . . . . . . . . . . . . . . . 192.3.2 GenetischeProgrammierung. . . . . . . . . . . . . . . . 19

3 Die Problemstellung 28

4 DasDesign 304.1 Die virtuelleMaschine . . . . . . . . . . . . . . . . . . . . . . . 31

4.1.1 Die Regelbasis . . . . . . . . . . . . . . . . . . . . . . . 324.1.2 DerRegelinterpreter . . . . . . . . . . . . . . . . . . . . 364.1.3 Die Fitness . . . . . . . . . . . . . . . . . . . . . . . . . 374.1.4 Die Vorgangssteuerung. . . . . . . . . . . . . . . . . . . 394.1.5 SequenzdiagrammderSelbstinspektion. . . . . . . . . . 40

4.2 Die Evolutionsmaschine . . . . . . . . . . . . . . . . . . . . . . 414.2.1 DasGenom . . . . . . . . . . . . . . . . . . . . . . . . . 414.2.2 Die Populationsparameter. . . . . . . . . . . . . . . . . 42

3

4.2.3 DasAbbruchkriterium . . . . . . . . . . . . . . . . . . . 434.2.4 Die Transformationverfahren. . . . . . . . . . . . . . . . 444.2.5 DasSelektionsverfahren . . . . . . . . . . . . . . . . . . 46

4.3 DasKommunikationsmodul . . . . . . . . . . . . . . . . . . . . 484.3.1 Die ArchitekturdesKommunikationsmoduls. . . . . . . 48

5 Die Implementierung 505.1 DerRoboter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

5.1.1 LegoMindstormRIS . . . . . . . . . . . . . . . . . . . . 505.1.2 Die HardwareKonfiguration . . . . . . . . . . . . . . . . 51

5.2 DasVersuchsareal. . . . . . . . . . . . . . . . . . . . . . . . . . 525.3 Die virtuelleMaschine . . . . . . . . . . . . . . . . . . . . . . . 53

5.3.1 DasBetriebsystem. . . . . . . . . . . . . . . . . . . . . 535.3.2 DasBehaviourPatternObjekt. . . . . . . . . . . . . . . . 535.3.3 DasInterpreterObjekt . . . . . . . . . . . . . . . . . . . 555.3.4 DasFitnessObjekt . . . . . . . . . . . . . . . . . . . . . 605.3.5 DasFitnessDeterminationProcessObjekt . . . . . . . . . 60

5.4 Die Evolutionsmaschine . . . . . . . . . . . . . . . . . . . . . . 625.4.1 Die GAlib . . . . . . . . . . . . . . . . . . . . . . . . . . 625.4.2 DasRCXInterpreterWord Objekt . . . . . . . . . . . . . 645.4.3 DasGATreeGenomObjekt . . . . . . . . . . . . . . . . . 665.4.4 DasGAPopulationObjekt . . . . . . . . . . . . . . . . . 685.4.5 DasGASteadyStateGAObjekt . . . . . . . . . . . . . . 695.4.6 Die FitnessFunktion . . . . . . . . . . . . . . . . . . . . 70

5.5 DasKommunikationsmodul . . . . . . . . . . . . . . . . . . . . 715.5.1 DasLnp Protokoll . . . . . . . . . . . . . . . . . . . . . 715.5.2 DasSMWL Protokoll . . . . . . . . . . . . . . . . . . . 725.5.3 Die IRCommunicatorObjekthierarchie . . . . . . . . . . 745.5.4 DerRCX Communicator. . . . . . . . . . . . . . . . . . 745.5.5 DerPCCommunicator. . . . . . . . . . . . . . . . . . . 76

5.6 Die DebuggerObjekthierarchie. . . . . . . . . . . . . . . . . . . 785.6.1 DasDebuggerObjekt . . . . . . . . . . . . . . . . . . . . 795.6.2 DasRCXDebuggerObjekt . . . . . . . . . . . . . . . . . 795.6.3 DasPCDebuggerObjekt . . . . . . . . . . . . . . . . . . 80

6 Die Versuchsdurchführung 816.1 Die untersuchtenEigenschaften . . . . . . . . . . . . . . . . . . 81

6.1.1 Die Checkliste . . . . . . . . . . . . . . . . . . . . . . . 826.1.2 DerStammbaumdesGenoms . . . . . . . . . . . . . . . 84

6.2 1. Versuch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 856.2.1 Die Versuchsparameter. . . . . . . . . . . . . . . . . . . 85

4

6.2.2 Versuchsdurchlauf1 . . . . . . . . . . . . . . . . . . . . 856.2.3 Versuchsdurchlauf2 . . . . . . . . . . . . . . . . . . . . 906.2.4 Schlussfolgerungen. . . . . . . . . . . . . . . . . . . . . 92

6.3 2. Versuch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 926.3.1 Die Versuchsparameter. . . . . . . . . . . . . . . . . . . 936.3.2 Checkliste. . . . . . . . . . . . . . . . . . . . . . . . . . 93

6.4 3. Versuch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 956.4.1 Die Versuchsparameter. . . . . . . . . . . . . . . . . . . 966.4.2 Checkliste. . . . . . . . . . . . . . . . . . . . . . . . . . 966.4.3 Schlussfolgerungen. . . . . . . . . . . . . . . . . . . . . 98

6.5 4. Versuch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 986.5.1 Die Versuchsparameter. . . . . . . . . . . . . . . . . . . 996.5.2 Checkliste. . . . . . . . . . . . . . . . . . . . . . . . . . 996.5.3 Schlussfolgerungen. . . . . . . . . . . . . . . . . . . . . 101

7 Zusammenfassung& Aussichten 1027.1 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . 1027.2 KritischeWürdigung& Aussichten. . . . . . . . . . . . . . . . . 103

Literatur verzeichnis 107

A VersuchsLogs 109

B Sourcecode 111

5

Einleitung

Kaum eine Technologiehat seit der Industrialisierungin den 30er JahreneinesogrundlegendeVeränderungdestäglichenLebensbewirkt, wie derEinsatzvonComputern.GanzeWirtschaftszweigehabenihre Produktionsabläuferestruktu-riert unddurchmassivenEinsatzvon ComputernundRoboternihre Produktivi-tät gesteigert.Der Umgangmit gängigenTextverarbeitungsprogrammenist oftgrundlegendeAnforderungfür eineEinstellung.

Schonjetzt ist dieBeherrschungkomplexerProgrammejedochnurmit erheb-licher Einarbeitungmöglich.Zudemerfordernviele Arbeitsabläufetrotz intensi-verUnterstützungdurchdenComputermenschlicheSteuerung.

SchnelldrängtsichbeidiesenAussichtenderWunschnacheinerArt niederemStellvertreterauf,derunsereAnweisungenselbstständigin die richtigenArbeits-schritteumsetzt.SolcheAgentenkönntenunsbeim täglichenUmgangmit demHeimcomputerunterstützenoder für uns denWochenendeinkauferledigen.Siekönntenzu fernenPlanetenreisenund in für denMenschenunwirtlichenUmge-bungenim SinneihrerAuftraggeberhandeln.

Abbildung1: N.A.S.A. RoboterSojourner

6

Einender wohl populärsteVertreterder Agententechnologieentwickelte dieN.A.S.A., die 1997einenmobilenRoboterzum Mars sendete,um mit ihm Bo-denanalysendurchzuführen.Die unbekannteStrukturderMarsoberflächeunddernicht genauvorhersehbareOrt der Landungschienenebensoproblematischwiedie Übertragungszeitder Funksignale.Bis zu 4 Minuten benötigtedasverwen-deteFunksystemum, ein Bild der Umwelt vom Mars zur Erde zu senden[1].Leicht lässtsicherkennen,dassbeidieserLatenzdasdirekteSteuerneinesRobo-terskeinenSinnmacht.Zur LösungdiesesProblemswurdederSojourner( sieheAbbildung1 ) von einemProgrammgesteuert,dasin derLagewar, vorgegebeneEtappenzieleaufdemWeg zueinemVersuchsortselbstständigzuerreichen.

AutonomeRoboteruntersuchenschonheutedie Innenwändevon Kanalsy-stemen[2] undmessensich im Roboterfußball[3]. Die ProgrammierungsolcherMaschinenist jedocheinehoheKunst,dasiefastalle BereichederInformatik insichvereint.ZusätzlicherforderndynamischeoderunbekannteUmgebungendieFähigkeit desAgenten,sichanneueSituationenanzupassen.

DasmaschinelleErlernenvonVerhaltensregelnzurSteuerungautonomerRo-boterist zentralerUntersuchungsgegenstanddesin diesemPapierdokumentiertenVersuchs.Der Versuchsoll im speziellendie Fragebeantworten,ob ein mobilerRobotergrundsätzlichin derLageist, seinVerhaltenselbstständigsoanzupassen,dasereineihm gestellteAufgabezufriedenstellendlösenkann.

Zur Abgrenzungder Begrifflichkeitenwerdenin denerstenbeidenKapitelndie BereichederAgententechnologieunddesmaschinellenLernensbesprochen.DasKapitel3 beschreibtdieexemplarischeProblemstellung,dievomRoboterge-löst werdensoll undskizziertdabeieineersteArchitekturdesAgenten.

Das4.KapitelbeschreibtdasDesigndesim LaborversuchverwendetenAgen-tensystem.Der VersuchsaufbauundseineTeilkomponentenwerdenbeschriebenund ihre Auswahl begründet.Für denVersuchbesondersrelevanteModule,wiedieLernkomponente,derenErstellungundKonfigurationHauptgesichtspunktdesVersuchsist, werdendabeiim Detail besprochen.

Kapitel 5 dokumentiertdie Implementierungdes im 4. Kapitel festgeleg-ten Design.Es wird an dieserStelleebenfalls auf verwendeteBibliotheken undmelchatronischeBauteilehingewiesen,derendetaillierteDokumentationim An-hangzufindenist.

Die zu untersuchendenEigenschaftenund ParameterdesLernvorgangswer-denim 6. Kapitel beschriebenund in 4 Versuchsdurchläufenanalysiert.Die ge-wonnenenVersuchsergebnissewerdenhinsichtlichder Versuchskonfigurationen

7

analysiertund miteinanderverglichen.AbhängigkeitenzwischenVersuchspara-meternundderErfolgsquotedesentsprechendenLernvorgangswerdenanalysiertundwennmöglichzugenerellenErkenntnissenabstrahiert.

Das7. Kapitel bewertetdie VersuchsdurchführungunterdemAspektderGe-samtfragestellung.Die Übertragbarkeit dergewonnenenErkenntnisseauf andereBereichederAgentenorientierungwird bewertetundmöglicheErweiterungenderSystemarchitekturwerdenbesprochen.

8

Kapitel 1

Agenten

1.1 Der AgentenBegriff

WassindAgenten?Die eigentlicheÜbersetzungdiesesWorteslautetStellvertre-ter. Der berühmteGeheimagent007 agiertez.B. immer in der SacheEnglands.DerAgenteinerSängerinimmerim SinnederKünstlerin.Wasaberbedeutetdie-serBegriff, wenner in Verbindungmit Softwaregenanntwird?DasHandbuchderKünstlichenIntelligenzdefiniertdiesenBegriff wie folgt:

”Im Bereichder Softwareund der Robotik ist der Agent ein popu-lärer Begriff zur Bezeichnungvon intelligentenProgrammen.UnterdemNamenagenten-orientierteTechnikenentstehenneueMethodenundStrukturen,beidenendieKünstlicheIntelligenzwesentlicheBei-trägezu liefern hat.DabeiwerdenIdeenvon intelligentenAkteuren,kognitivenSystemenundkooperierendenAgentenin realenundvir-tuellenUmgebungenaufgegriffen.” [5]

Abbildung1.1:Geheimagent007

9

DieseDefinition ist im Kontext der Informatik sicherangemessenerals derVergleich mit einemGeheimagenten.Eine genaueAbgrenzungherkömmlicherSystemparadigmenvonderAgententechnologiefehlt jedochauchhier. DasHand-buchderkünstlichenIntelligenz[5] klassifiziertAgentenaufGrundderverschie-denenEigenschaften,die ein Agentbesitzenkann:

� Andauernde Verfügbarkeit/Akti vität: Agentensind übereinenlängerenZeitraumhinweg ansprechbarund nehmen”Aufträge” von NutzernoderanderenAgentenentgegen.Siekönneneigenständigaktiv werden.

� Interaktion mit einer Umwelt: AgentennehmenInformationenausihrerUmweltauf.Sieagierenin ihrerUmwelt,umsie(auftragsgemäß)zubeein-flussen.

� Situiertheit: Auch hier geht es um die Einbettungvon Agentenin einerUmwelt. Eswird derAspektbetont,dassein komplexesAgentenverhaltenauchals Resultatvon direktenReaktionenauf Umwelteinflüsseerzeugbarist (”emergentesVerhalten”).

� Eigenständigkeit (Autonomie) im Handeln: Agentenunterliegenkeiner(unmittelbaren)SteuerungundKontrolledurchdenNutzer. Siehandelnei-genständig,aber”im SinneihrerAuftraggeber”.Die Auswahl/PlanungihrerHandlungenkann(abermussnicht) nachsehrkomplexenMethodenerfol-gen.

� Reaktivität: Im engerenSinnewird darunterdasunmittelbareReagierenauf Umweltereignisse(”Stimulus-Responsus”)verstanden.Im allgemeinenbetrifft esdie Interaktionmit derUmwelt insgesamt.

� Zielgerichtetheit: AgentenverfolgenZiele bzw. Aufträge,die angepasstesHandelnüberlangeZeiträumehinweg erfordernkönnen.

� Pro-Akti vität: DerBegriff ist verwandtmit Zielgerichtetheit(undwird teil-weisegleichwertigbenutzt).Eine spezielleBetonungliegt dabeiauf der”Eigeninitiative” desAgenten.

� DeliberativesVerhalten: ”Deliberation”bezeichnetdieexplizit modellier-te Auswahl von Zielen bzw. Absichten.Auch dieserBegriff wird als Ge-gensatzzu reaktivemVerhaltengebraucht.

� Intelligenz: Der Begriff kannim SinneanalogerErklärungendesBegriffs”KünstlicheIntelligenz”sointerpretiertwerden:AgentenvollführenHand-lungen,die beimMenschenalsintelligentgeltenwürden.

10

� Rationalität: Agententreffensinnvoll erscheinendeEntscheidungenin an-gemessenerZeit auch unter dem Aspekt beschränktverfügbarereigenerRessourcen.

� Lernfähigkeit: Agentenkönnenihr Verhaltenandie Umweltanpassen,in-demsie

zumBeispielFähigkeitenoderEntscheidungsprozessegeeignetvariieren.

� Mobilität: AgentenkönneneigenständigaufanderePlattformen(Rechner)migrieren.Dabeiwird dasAgenten-Programmmit seinenaktuellenDatenübertragenundsetztseineArbeit dort fort mit derMöglichkeit desZugriffsauf lokaleRessourcen.

� Kooperation:Agentenarbeitenzusammenmit MenschenundanderenAgen-ten.

� Wohlwollen (benevolenz): AgentenführenAufträgenachMöglichkeit imSinnederAuftraggebersaus,wobeiauchandereAgentenAuftraggeberseinkönnen.

� SozialesVerhalten: Agentenhaltensichbei ihrerArbeit mit anderenAgen-ten( undMenschen) anvorgegebeneRegelnundNormen.SiebildenGrup-penoderKoalitionen.Vorbild sindsozialeStrukturenderMenschen.

� EmotionalesVerhalten: EmotionensolleneinerseitsdasVerhaltensteuern( sietretendamitnebenandereBegriffe wie Ziele,Absichtenusw. ), undsiesollendie Interaktionmit demMenschenverbessern.

� Glaubwürdigk eit: Die Erscheinungsform(z.B. Gestik animierterAgen-ten)soll sichin glaubhafterÜbereinstimmungmit ihrenAktionenbefinden.Agentensollenals Individuenmit eigenenZielen,BedürfnissenundEmo-tionenerscheinen.

Würdeein Programmdannals Agent gelten,wennesmindestenseinedie-serEigenschaftenbesitzt,könnteein Großteil heutigerInformationssystemealsAgentensystemeangesehenwerden.TatsächlichstelltderAgentenbegriff eherdieVereinigungund WeiterführungbestehenderAnsätzezum Designvon Program-menundihrenSchnittstellendar, alseinescharfabzugrenzendeProgrammklasse.

Die in bekanntenTextverarbeitungsprogrammenverwendeten”PersonalAs-sistens”könnenbeispielsweisemit einemintelligentenWorkflowmanagervergli-chenwerden,dereinegenerelleAbsichtdesBenutzersin eineAbfolgevonBefeh-lenandasSystemübersetzt.AuchdasautomatischeVervollständigenvonin einer

11

WebsiteeingegebenenBenutzernamenstellt unterdiesemAspekteineAgenten-typischeLeistungdar. Der Agent (in diesemFall der InternetBrowser)erkenntdie Absicht desBenutzers,seinenNameneinzugebenund bietetihm selbststän-dig dieMöglichkeit zurautomatischenVervollständigungan.DasagententypischeVerhaltenkommt alsoimmer dannzum Zuge,wennesdarumgeht,verschiede-neHandlungsalternativengegeneinanderabzuwiegen,um diesein eigenständigeHandlungenumzusetzen.

1.2 Taxonomieder Agenten

Wie könnenwir unssolcheAgentenvorstellen?Könnenwir sieanhandderobengenanntenKriterien in wenigeKlasseneinteilen?Die untenstehendeTaxonomieversuchteinegrobeHierarchisierungderAgentenarten:

Abbildung1.2:TaxonomiederAgenten

� Biological Agents Außenvor stehendie biologischenAgenten,derenFä-higkeitenin denmeistenFällenweit überdie ihrerelektronischenKollegenhinausreichen.SelbstderdümmsteWachhundschlägt,wasseineallgemei-neFähigkeit zuÜberlebenangeht,denmodernstenRoboter.

MedizinischeSubstanzenwie Antibiotika könnenim entfernterenSinneebenfalls als biologischeAgentengesehenwerden,da sie denvom Men-schenbezwecktenHeilprozessdurch autonomesHandelnbeschleunigen

12

oderermöglichen.Die biologischenKampfstoffe könnenalsbösartige,bio-logischeAgentengesehenwerden,die wie die elektronischenViren zwarim SinneihresAuftraggebershandeln,jedochein moralischzweifelhaftesZiel verfolgen.

� Robotic AgentsDie Robotergrenzensichvon denanderenelektronischenAgentendurch ihre Verkörperungab. Sie verhaltensich im GegensatzzudenSoftwareagentennicht in künstlichen,formalenWeltensondernin rea-len Umgebungen.DieshatunmittelbarenEinflussauf ArchitekturundPro-grammierungdesAgentensystems.

� Software Agents Das Spektrumder Softwareagentenist breit gefächert.Softwareagentenkönnenvon einemeinfachenSuchmechanismusbis hinzuselbstmodifizierendenViren reichen.Die EntertainmentAgentsbesitzenbeispielsweisekeine formalisierbarenZiele im herkömmlichenSinne,dasie auf die UnterhaltungeinesMenschenabzielen,wohingegenaufgaben-spezifischeAgentenin vielenFällenein unmittelbaresFeedbackbezüglichihrer Handlungenbeziehenkönnen.Viren sindaufgrundihrer Bösartigkeitzwar ein zweifelhaftesMitglied der Agentenfamilie, handelnjedochauchim Sinneihrer Auftraggeber, denensiewiederumwohlwollendgegenüberstehen.

1.3 AgentenAr chitektur en

Die Eigenständigkeit desHandelnsist eineAnforderung,die an jedenAgentengestelltwerdenkann.DasdazunotwendigeVerarbeitenvonWahrnehmungenunddasdarausabgeleiteteHandelnwird beiklassischenAgentensystemenin 3 PhasenderInformationsverarbeitungdurchgeführt:

� Phaseder Inf ormationsaufnahme Der Agent nimmt InformationenausderUmwelt auf.Er nimmt NachrichtenundAufträgeentgegenoderanaly-siertseineUmweltdurchSensoren.Er beobachtetdieWirkungseinerHand-lung.

� Phaseder Wissensverarbeitung und Entscheidung Der Agent aktuali-siert seinWissenmithilfe der eingegangenenInformationen.Er analysiertundbewertetdie aktuelleSituation,die neuenAufträgeunddenFortschrittbereitsbegonnenerHandlungen.Er trif ft Entscheidungenüberseineunmit-telbarenundkünftigenAktionen.

� Phaseder Aktionsausführung Die anstehendenAktionenwerdenausge-führt.

13

Der VorgangderEntscheidungsfindungkannauf verschiedeneWeisenumge-setztwerden.Grundlegendunterscheidetdie AgentenorientierungzwischenzweiArten derEntscheidungsfindung:Demmodellbasiertenunddemnicht modellba-siertenVerhalten.

1.3.1 ModellbasierteEntscheidungsfindung

Die SchlussfolgerungvonAktionendurchdieBetrachtungderWelt undihresZu-standesist dasKernstückintelligenterHandlungeneinesAgenten.Die modellba-sierteEntscheidungsfindungbetrachtetnebendeneingehendenSensordatenstetsauchein internesWeltbild, welchessichausbereitsgemachtenErfahrungenodervorgegebenenInformationenbildet.

DieseInformationenkönnenvon einerKartederUmgebungbis hin zu kom-plexenRegelsystemenreichen.DieseEigenschaftermöglichtesmodellbasiertenSystemen,komplexePlänezurLösungvorgegebenerProblemezuentwickelnundanzuwenden.In verknappterForm stellt sich die InformationsverarbeitungeinesModellbasiertenAgentenwie folgt dar:

repeat

W : � sense�S� ;

Zneu : � thought�Zalt � W � ;

A : � act�Zneu� ;

f orever

Die Funktion thought(...)repräsentierthier die Durchführungvon in einigenFällenäußerstkomplexenBerechnungen.Die vollständigeProbagierungvonhin-zugewonnenenFaktenin einemRegelsystem,oderdieErstellungeinesPlanesaufBasiseinesSituationskalkülskannschnellzu einerkomplexenAufgabewerden.Um dieRationalitäteinessolchenAgentenzusichern,mussdasSystemjedochzujedemZeitpunktin angemessenerZeit zueinemErgebniskommen.Die Komple-xität desverwendetenPlanungsalgorithmusmussalsodie möglichenEchtzeitan-forderungenderAufgabenstellungbeachten.DiesekomplexeFormderEntschei-dungsfindungist nicht immernotwendigundangemessen.

1.3.2 ReaktiveEntscheidungsfindung

ReflexartigesHandelnkann in vielen Situationsinnvoller sein als zeitaufwän-digesÜberlegen.Geradewennein schnellesReagierenauf wenigeSensordaten

14

erfordert ist, machtdie modellbasierteEntscheidungsfindungkeinenSinn. Die”Stimulus-Response-Architektur”verzichtetauf komplexeBeweisverfahrenoderWahrscheinlichkeitsberechnungen.Siebegrenztdie Wissensverarbeitungauf eineinfachesMatchingVerfahren,welchesMusternvon SensordateneindeutigAk-tionen zuordnet.Die Funktion thought(...)wird in unsererverkürztenAnsichtdurchdieMatchingprozedurmatch(...)ersetzt,welchedieAdressierungeinerAk-tion in einerLook-upTabellerepräsentiert:

repeat

W : sense S� ;Zneu : match W � ;A : act Zneu� ;

f orever

Die Funktionmatch(...) suchtdenEintragan der AdresseW in der Look-upTabelleundsetztdiesenalsneuenZustand.DeralteZustandwird dabeinichtmitin dieBestimmungdesFolgezustandseinbezogen.

15

Kapitel 2

MaschinellesLernen

2.1 Lernen

DasWort Lernenmagnicht bei allen Menschenmit positivenErinnerungenas-soziiert sein. Nicht viele werdenaberbestreiten,dassLernenein notwendigerVorgangzumÜberlebeneinesMenschenin seinerUmwelt ist. Wasaberbedeutetes,wenneineMaschinelernt?Könnenwir denLernvorgangeinerMaschinefest-stellenodermessen?StefanWrobeldefiniertdasmaschinelleLernenwie folgt:

EineLernaufgabewird definiertdurcheineBeschreibungderdemler-nendenSystemzurVerfügungstehendenEingaben(ihrerArt, Vertei-lung, Eingabezeitpunkte,Darstellungund sonstigerEigenschaften),der vom lernendenSystemerwartetenAusgaben(ihrer Art, Funkti-on,Ausgabezeitpunke,DarstellungundsonstigenEigenschaften)unddenRandbedingungendesLernsystemsselbst(z.B. maximaleLauf-zeitenoderSpeicherverbrauch).Ein Systemlernt erfolgreichgenaudann,wennesin derLageist, bei Eingaben,die denSpezifikationenentsprechen,unterdengefordertenRandbedingungenAusgabenmitdengewünschtenEigenschaftenzuerzeugen.[6]

Wie aberkannein ProgrammeinesolcheLernaufgabelösen?Üblicherwei-seversorgt der MenschdasProgrammmit Informationen,währender eserstelltund immerdann,wenneineInformationnicht verfügbarist. Es lernt alsoim ge-wissenSinnevom Menschen.Dies ist sicherlichein erprobterundoft sinnvollerAnsatz.Wollen wir abervon lernendenAgentensprechen,widersprichtdiesderForderungnachderAutonomiedesHandelns.Der Agentmussin derLagesein,eigeneRückschlüsseausseinerWahrnehmungenzu ziehen,um sein Verhaltenentsprechendanzupassen.DiesentsprichtausinformationstechnischerSichteinerManipulationdervomAgentenverwendetenWissensbasis.

16

Wie könnenwir unsdieseManipulationsverfahrenvorstellen?Einegenerali-sierbareEigenschaftdieserManipualtionsverfahrenist derVorgangderSelbstin-spektion.DasVerfahrensammeltempirischeDatenbezüglichseinesHandelns,umessobewertenundvergleichenzukönnen.Um dieQualitätdesVerhaltensei-nesformalenSystemszuoptimieren,ist ein arithmetischerVergleichderQualitätvon verschiedenenVerhaltensmusternerforderlich.Die richtigeBerechnungdie-sesnumerischenQualitätswertesentscheidetüberdenErfolg desLernvorgangs.Die speziellenArbeitsweisendieserVerfahrenhängenvon dergewähltenReprä-sentationsformdesWissensab.

2.2 Wissensrepräsentation

Der LernvorgangkannausinformationstechnischerSicht als einesystematischeSuchenachdemoptimalemVerhaltenim durchdie Wissensrepräsentationaufge-spanntenSuchraumverstandenwerden.Ein lernendesProgramm(z.B.einAgent)hatdanngelernt,wennesseineWissensbasisunddamitseinVerhaltensomodifi-ziert hat,dasesdie ihm gestellteAufgabebessererfüllt alszuvor. Die KünstlicheIntelligenzunterscheidetin drei HauptformenderWissensrepräsentationen:

� symbolisch-kognitivistisch

� subsymbolisch- konnektionistisch

� interaktionistisch

Prof.Dr. Dilger vonderTU ChemnizdefiniertdieverschiedenenWissensprä-sentationin seinemVorlesungsskript[7] wie folgt:

2.2.1 Symbolisch-kognitivistischeRepräsentation

Die symbolisch-kognitivistischePositionlässtsich in drei Grundsätzenzusam-menfassen:

� Die Repräsentationensindunabhängigvom zu Grundeliegendenphysika-lischenTräger.

� MentaleZuständesind repräsentationaloderintentional,d.h. sie beziehensichaufetwasfür dieAgentenExternes.

17

RepräsentationenbestehenausSymbolen,diein Computer-basiertenSätzenoderirgendwelchenanderenStrukturenangeordnetsind.Schlussfolgernbe-deutetdasManipulierendieserStrukturen,umneueStrukturenausihnenzuerhalten.

Die symbolischenExpertensystemespeichernihr Wissenz.B. in einerMen-gevonRegeln(Regelbasis).Die RegelnwerdendurchaussagenlogischeFormeln(Prädikate)beschrieben.Jedesder Prädikateenthälteine Implikationsregel. DieVariablendesPrädikatsrepräsentierendabeieineMengevon Fakten,die Aussa-gen überZuständeder Umwelt repräsentieren.Durch die Anwendungvon Re-gelnaufeinegegebeneFaktenbasisundderenVerkettungentstehtwiederumneu-esWissen(die Faktenbasiswird manipuliert).DasExpertensystemlernt.

2.2.2 KonnektionistischeRepräsentation

NachderkonnektionistischenPositionist Wissenin einemNetzwie einemzellu-lärenAutomatenin Form numerischerWerteverteilt, die denVerbindungenzwi-schendenZellen zugeordnetsind.SchlussfolgernbedeutetPropagierennumeri-scherWertein diesemNetzundVeränderungderWerteandenVerbindungen.DieWissensrepräsentationnachderkonnektionistischenPositionheißtauchsubsym-bolisch,im Kontrastzur symbolischenRepräsentation.Obwohl dasmenschlicheHirn mit einemähnlichenVerfahrenseinWissenorganisiert,ist subsymbolischesWissenfür denMenschennurschwerzugänglich.

2.2.3 Interaktionistische Repräsentation

Die interaktionistischeWissensrepräsentationsiehteinPoolvonAgentenvor, beidenenjederein bestimmtesKonzeptodereineInformationseinheitrepräsentiert.DasVerhaltendesAgentensystemresultiertausder Interaktion,in der die ver-schiedenenAgentenstehen.DahiervoneinemMultiagentenSystemausgegangenwird, seidieseFormderRepräsentationvernachlässigt.FürnähereInformationenseihier aufdie DiplomarbeitvonAlexanderOreschenko [4] verwiesen.

18

2.3 Lernverfahren

2.3.1 KonnektionistischesLernen

DaskonnektionistischeLernenist engmit densubsymbolischenNeuronalenNet-zenverknüpft.DasProgrammsammeltempirischeDatenüberZusammenhängein seinerUmwelt,um aufderenBasisspäterEntscheidungentreffenzukönnen:

EineReihevon Eingabemustern,denenein gewünschtesAusgabemusterzu-geordnetist, werdendemVerfahrenvorgegeben.DasSystemgeneriertauf jedesEingabemustereinAusgabemusterundvergleichtesmit demvorgegebenenAus-gabemuster. Entsprechendder Dif ferenzzwischenSoll- und Ist- Mustermodifi-ziert dasVerfahrendie mit denKantendesNeuronalenNetzesassoziiertenGe-wichtungswerte,umdie QualitätdesAusgabemusterszuverbessern.

NachteildieserTechnikist die subsymbolischeRepräsentationdesgelerntenWissens,welcheswie obenerwähntein NachvollziehendesEntscheidungswegesschweroder unmöglichmacht.Da an einenAgentenaberdurchausdie Forde-rung nachTransparenzseinerEntscheidungswege gestelltwerdenkann,scheintderkonnektionistischeAnsatzeinenNachteilzuhaben.Die TransparenzdesEnt-scheidungsvorgangskannin derkünftigenEntwicklungderAgentenzumvertrau-ensbildendenElementin der Mensch- AgentenKommunikationwerdenund istunterdiesemGesichtspunktvonentscheidenderNatur.

2.3.2 GenetischeProgrammierung

Das Verfahrender genetischenProgrammierungarbeitetwie die LernverfahrenderNeuronalenNetzeauf derBasisempirischerAnalysen.Die genetischenVer-fahrensind jedochin derLage,mit jederauf SymboleabbildbarenWissensbasiszu arbeiten.1 WerdengenetischeVerfahrenauf symbolischrepräsentiertesWis-senangewendet,hat diesdenVorteil, dassdie erlerntenVerhaltensregeln durchlogischeSätzerepräsentiertwerden,die von einemMenschenverstandenwerdenkönnen.

DerAnsatzdergenetischenVerfahrenist es,verschiedeneSymbolketten(Ge-nome)zu generierenund diesedurcheinenInterpreterin ein Folge von Aktio-nenumzusetzen(Verhalten/Phänotyp).Die Aktionsfolgenwerdenhinsichtlichei-nerbestimmtenAufgabenstellungbewertet(Fitness)undunterBerücksichtigung

1Es ist alsodurchausdenkbarein genetischesVerfahrenauf ein NeuronalesNetz anzuwen-den,da es trotz seinerkonnektionistischenWissensrepräsentationauf eineendlicheMengevonSymbolenabgebildetwerdenkann.

19

ihrer Qualitätzu neuenüberführt(Kreuzung/Mutation/DirektMigration). Dabeiwerdeneherdie qualitativ hochwertigenSymbolkettenzurÜberführunggewählt,alsdiemit einerniedrigenQualität(Selektion).DieserVorgangwird solangewie-derholt,bis ein bestimmterGradanQualitäterreichtodereinebestimmteAnzahlvon Überführungsvorgängendurchgeführtwurde.

Abbildung2.1:Die Populationsüberführungundihre Teilprozesse

Die StrukturierungdesLernvorgangsist starkamdarwinistischenEvolutions-modellorientiert.Zur BeschreibungderverwendetenDatenstrukturenundderdy-namischenProzessedesVerfahrenswerdenoft Metaphernausder Genetikver-wendet.Die folgendeÜbersichtzeigt die wichtigstenBegriffe der biologischenEvolution in Relationzu ihrenEntsprechungenin derInformatik:

20

Biologie Informatik

Problemderbestmöglichen formalisiertes,zu lösendesLebensbewältigung ProblemGradderÜberlebensfähigkeit eines problemspezifische,zuoptimierendeIndividuums Fitness-FunktionIndividuum( Phänotyp/ Genotyp) Lösungsvorschlag/ dessen

abstrakteFormulierungPopulation PoolvonLösungsvorschlägenMutation zufälligeÄnderungenanIndividuenKreuzung KombinationdesInformationsgehaltes

von IndividuenSelektion Verwerfen”schlechter”Lösungsvorschläge

Evolution in BiologieundInformatik

Die Modellbildung

Wie eingangsbeschriebenwird derLernvorgangdurchwiederholtesSelektierenundÜberführenvon Populationenimplementiert.Die Ur - Populationwird dabeidurchzufällig generierteGenomegebildet,die die erstenLösungsansätzedesge-netischenOptimierersbilden.DerProzessendetgenaudann,wenneindefiniertesAbbruchkriteriumzutrifft odereine festgelegte Anzahl von Populationengene-riert wurde.

Wollenwir eineLernaufgabemit Hilfe einesgenetischenVerfahrenslösen,sogilt es,diesezu Formalisierenundauf dengenetischenOptimiererin Form einerentsprechendenKonfigurationabzubilden.DieserVorgangentsprichtder Abbil-dungproblemspezifischerAspektederRealitätauf ein formalesModell. Die fol-gendeÜbersichtbeinhaltetdie wichtigstenKonfigurationsschritteundParameter,die bei diesemProzesseineRolle spielen:

� Ein Genomwird definiert.Die SprachedesInterpreterswird aufdie Varia-blendesGenomdatentypsabgebildet.DiesbeinhaltetnebenderDefinitiondervom GenomgehaltenenVariablenaucheinenMechanismusfür die zu-fällige Generierungvon Programmen,die für die ErstellungeinerUrpopu-lationvonNötensind.

� Eine FitnessFunktion wird definiert.Um einequalitätsorientierteSelek-tion durchzuführenwird jedesGenomdurchdie sogenannteFitnessFunk-tion bewertet.Sie interpretiertdenInhalt desGenomsundbewertetdessenPhänotyphinsichtlichderProblemstellung.Die Fitnessfunktionmusseinen

21

vergleichbaren,numerischrepräsentiertenWertzurückliefern.SiemussdieBewertungeinesGenomsvollständig,richtig undallgemeingültigbeschrei-ben,um denLernerfolgzu sichern,da sie die eigentlicheFormalisierungderLernaufgaberepräsentiert.

� Die Kr euzungsmethodedefiniertdenTransformationsvorgang,derdie er-folgreichstenGenomeeiner Populationzu einer neuenPopulationüber-führt. SiekreuztdenInformationsgehaltzweierGenomeundgeneriertausdiesenneueIndividuen,derenstrukturelleRichtigkeit dabeinicht verletztwird. Sie stellt densystematischenTeil der Transformationbei der Über-führungder Populationendar. Aus algorithmischerSicht repräsentiertsiemit demSelektionsverfahrendasgerichteteFortschreitenim SuchraumaufderSuchenachderoptimalenLösung.Siesetztin Verbindungmit demSe-lektionsprozessdie durchdie FitnessfunktiongeneriertenInformationenineineheuristischeSucheum.

� Die Mutationsmethode definiert die Methode,die auf die durch Kreu-zungentstandenen”Kinder” zweierGenomeangewendetwird. Die Mutati-onsmethodeverändertzufällig ausgewählteInformationseinheitendesGe-noms,ohnedessenstrukturelleRichtigkeit zuverletzen.Die MutationstellteineRisikostreuungdesEvolutionsprozessesda,der verhindernsoll, dasssichderSuchprozessin einemlokalenQualitätsmaximum”verrennt”(ver-gleicheHill Climbing Algorithmen).Geradebei nicht linearenProblemen,bei denendie strukturelleÄhnlichkeit keineunmittelbareKorrelationzurQualitätdarstellt,ist diesezufälligeModifikationein wichtigerProzess.

� Die Populationgröße wird festgelegt. Sie legt die Größeder Urpopulati-on fest und wieviele GenomenachdemSelektionsvorgangneuberechnetwerdensollen.Je grösserdie Population,destogrösserist dasSpektrumderdurchMutationundKreuzunggeneriertenGenome.Ebenfalls überdiePopulationsgrössekonfigurierbarist der Selektionsdruck, demdie Indivi-duenunterliegen.Ist dieGrössederFolgepopulationkleineralsdiederAus-gangspopulation,sohabenwenigerIndividuendieMöglichkeit ihr Genom-informationenin die nächsteGenerationeinzubringen.Die ”Konkurrenz”steigt und das”Überleben” wird schwieriger. DasVerfahrenwird stärkergerichtet.Essetztsichehernur nochdie scheinbareElite durch,waswie-derumeinerVerstärkungderHill ClimbingEigenschaftentspricht.

� Eine Selektionsstrategiewird definiert.Sie determiniert,welcheGenomeeinerPopulationin die nächsteGenerationüberführtwerden.Die Selekti-onsstrategie ist eineStellgröße,mit der wichtige EigenschaftendesSuch-prozessesgesteuertwerdenkönnen.Wird z.B. dasbesteIndividuum ohne

22

Transformationdirekt in die nächsteGenerationübernommen,sowird dieQualitätdesbestenIndividuumsmonotonsteigen.Die Konfigurationsmög-lichkeiten diesesParameterswerdenim Bezugauf die Aufgabenstellungeingehendim Kapitel 4.2aufSeite41beschrieben.

� Ein Abbruchkriterium wird definiert.DasAbbruchkriteriumdefinierteineBedingungfür denAbbruchdesOptimierungungsvorgangterminiert.DerAbbruchwird durchdasEintreteneinesbestimmtemEreignissesfestgelegt.DiesesEreigniskanndurchdenQualitätsgraddesbestenIndividuumsoderdurcheinefestgelegteAnzahlvonGenerationen,dievomOptimierergene-riert werdensollen,definiert.

GenetischeVerfahren und Agenten

DiegenetischenVerfahrenbietenmit derFitnessfunktioneinekomfortableSchnitt-stellezumAgentenparadigma.SoentsprichtdieBewertungdesGenomsdurchdieFitnessfunktionderÜberprüfungdesVerhaltenseinesAgentenhinsichtlichseinesZiels.Wie könnteeinesolcheVerfahrenssymbioseaussehen?Stellenwir unsdasfolgendeSzenariovor:

EineRoboterpopulationwird sichaufdasAusweichenvonErdhügelneinstel-len, wennalle Roboterdie dieseErdhügelnicht beachteten,nicht in die nächsteGenerationeingehenwürden.In einemMinenfeldwürdensicherlichsehrschnellnur nochdie Programmedie Populationdominieren,die in derLagewären,denMinen auszuweichen.Vorraussetzungwäre jedoch,dasgenugRobotervorhan-denwären,die esder Roboterpopulationermöglichtesich auf dieseUmgebungeinzustellenoderdie Roboterin derLagewären,sichaufHardware-Ebenezu re-produzieren.

DasMinenfeldist sichereinextremesBeispiel.Eszeigtjedochaufanschauli-cheWeise,dassdienatürlicheSelektion,im Zusammenhangmit derbiologischenReproduktion,einverlässlicherProzesszurOptimierungvonVerhaltenist. Erset-zenwir nundieMinendurchein im AgentenimplementiertesVerfahren,welchesfeststelltob der Agentzu nahan einenErdhügelgefahrenist unddiesesMusterentsprechendaussortiert,würdendieRoboterauchohnedenterminalenEffekt derMinen lernendiesenauszuweichen.

23

Abbildung2.2:Genominformationenin einemDNA-Strang

GenetischeVerfahren alsHeuristischeSuche

Die genetischenVerfahrengehörenzu der Klasseder heuristischenSuchverfah-ren.Sie nutzenWissenüberdie Problemstellung,um denProzessder Problem-lösungzu beschleunigen.Bei dengenetischenVerfahrenist diesesWissendurchdie denGenomenzugeordneteQualitätgegeben.

DerAnsatzdergenetischenVerfahrenist es,denSuchraumzudurchqueren,indembevorzugtdieLösungsansätzeuntersuchtwerden,diedenalsgutbefundenenAnsätzenähneln.Es wird alsobevorzugtdie ”Nachbarschaft”der erfolgreichenGenomeuntersucht.

Gehenwir bei dendurchdasGenomrepräsentiertenMerkmalenvon quanti-tativenAttributenaus,kanndie vektorielleDistanzderdurchdie Merkmaleauf-gespanntenVektorenals Ähnlichkeitsmetrikverwendetwerden.Dabeiwird dasgerichteteDurchquerendurcheineZufallskomponenteaufgeweicht.DasVerfah-renwählt zufällig Genomein denBereichen,die esaufgrundseinerheuristischenInformationenalserfolgsversprechendklassifiziert.

24

Abbildung2.3:Die Urpopulationstreutdie Lösungsansätze

Die Abbildung2.3zeigtdie durcheingenetischesVerfahrengenerierteUrpo-pulationvonGenomenmit zweiMerkmalsausprägungen.

Die Y-Achserepräsentiertdabeidie Qualität , X- und Z-Achsedie Ausprä-gungeinesquantitativenMerkmals.Bei dergebildetenUrpopulationist einerela-tiv gleichmäßigeStreuungderLösungsansätzezubeobachten.

Das Verfahrenversuchtdurch diesenProzessBereichezu finden, in denendasAuffindenvon erfolgreichenGenomenwahrscheinlichist. Es generiertdazuGenome,dieeinezufälligeSemantikbesitzen,jedochstrukturellkonsistentsind.

25

Abbildung2.4:DasSelektionsverfahrenverwirft die ”Verlierer”

DasSelektionsverfahrenverwirft die schlechtenLösungsansätzederUrpopu-lation und selektiertso die Genome,die die Basis für die Berechnungder alsnächsteszuuntersuchendenLösungsansätzedarstellen.

Es zeigt sich,dassguteLösungenverstreutim Raumliegenkönnen,und sodie strukturelleÄhnlichkeit der Genomenicht zwangsläufigauf einequalitativeRelationhindeutenmuss.Die direkteNachbarschafteinesgutenGenomsmuss,abhängigvon der Problemstellungund ihrer Formalisierung,nicht notwendiger-weisequalitativ hochwertigeGenomeenthalten.

DieAnwendunggenetischerVerfahrenzeigtjedoch,dassdasbevorzugteDurch-suchendieserBereichebeibestimmtenProblemstellungeneineerfolgreicheStra-tegiedarstellt.2

2EsbestätigtsichdiealteVolksweisheit”Der Apfel fällt nicht weit vom Stamm”

26

Abbildung2.5:Die selektiertenGenomebildendie neuePopulation

DasVerfahrengewinnt nachderSelektiondurchKreuzungundMutationderselektiertenGenomeneueLösungsansätze.Die Pfeilesetzenin derAbbildungdieElternmit ihrenKindern in Relation.Die Transformationerfolgt dabeizunächstdurcheineKreuzung.Die neugeneriertenGenomewerdenanschließendmutiert.Es kanndabeipassieren,dassein Genommit sich selbstgekreuztwird und sokeineModifikationderGenominformationenstattfindet.

Es ist zu beobachten,dassauchvermeintlichschlechteGenomeguteKandi-datenin ihrer Nachbarschaftbesitzenkönnen.Das lokale Maxima im vorderenlinkenBereichdesBildesstellt einenauseinemmittelmäßigenGenomerzeugtenLösungsansatzdar. In diesemFall wurdedie Modifikation durcheineMutationbewirkt, die trotz ihrer geringenstrukturellenModifikation erheblichenEinflussaufdie QualitätdesGenomshatte.

27

Kapitel 3

Die Problemstellung

VerhaltensbasierteAgentenundmaschinelleLernverfahrensinderprobteVerfah-ren die ihre Anwendungsbereichein der Wirtschaftund Wissenschaftgefundenhaben[10]. Wie aberverhältessichmit Systemen,die durchihre Nähezur Um-welt einestarke Echtzeitkomponenteenthaltenund die nicht in einervom Pro-grammiererdefiniertenUmwelt eingebettetsind(sieheKapitel 1.2auf Seite12)?Der verhaltensbasierteR.A. Brooks(MIT) formuliert esbesondersprägnant:

This suggeststhatproblemsolvingbehavior, language,expertknow-ledgeandapplication,andreason,areall pretty simpleoncethe es-senceof beingandreactingareavailable.Thatessenceis theabilityto move aroundin a dynamicenvironment,sensingthesurroundingsto adegreesufficient to achievethenecessarymaintenanceof life andreproduction.Thispartof intelligenceis whereevolutionhasconcen-tratedits time - it is muchharder[9]

Brooksargumentiertweiter, dassIntelligenzin derNaturnie ohneeinenKör-per auftritt und existierenkannund so die EinbettungdesKörpersin die Naturgrundlegendist. DieseEinbettunggeschiehtdurchaufeinanderaufbauendesen-sormotorischeRückkopplungsschleifen.Will manversuchen,ein künstlichintel-ligentesSystemzu konstruieren,so geht dies nur mit Hilfe und auf BasisvonRobotern.

Der Autor grenztin seinenAussagenIntelligenteSystemedurchzwei Eigen-schaftsausprägungenab. Die Situiertheitunddie Verkörperung.EinedynamischeUmwelt erfordertein Entscheidungsverfahren,welchessituationsabhängigeEnt-scheidungentrif ft. Ein Schweißroboter, dessenIntelligenzauf eineStapelverar-beitungsanwendungzurückgeführtwerdenkann, ist laut BrooksalsoeigentlichkeinintelligentesSystem.DiegeforderteEinbettungderIntelligenzin dieUmwelt

28

wiederumerforderteinenKörper, der in denmeistenFällendurcheinenRoboterrepräsentiertwird. Auch unterdiesemAspektwürdenlaut Brooksviele Agentenalsnicht intelligentgelten.

KeineVerkörperung Verkörperung

KeineSituiertheit Batchprogramm SchweißroboterSituiertheit Softwareagent Mobiler Roboter

BeispielezuBrooksKlassifikation

BrooksAbgrenzungist starkanderIntelligenzbiologischerLebewesenorien-tiert, waseinedurchausberechtigterStandpunktist. KünstlicheIntelligenzmussan der biologischenIntelligenzgemessenwerden,da die biologischeIntelligenzdasunmittelbareVorbild undderUrsprungaller durchComputersimulierterIn-telligenzist.

Wollen wir alsoeinenintelligentenAgentenkonstruieren,somüssenwir zu-sätzlichzur SituiertheitundLernfähigkeit seineVerkörperungsicherstellen.Wieaberlassensichdie maschinellenLernverfahrenauf die Robotikübertragen?DieAnzahl der Selbstinspektionsvorgänge,die zur Erstellungeinerqualitativ hoch-wertigenWissensbasisnötigsind,könnenabhängigvonderProblemstellung,Sen-sorik und Aktorik desAgentenbis in die Unberechenbarkeit gehen.GeradebeiRoboternist die Interaktionmit der Umwelt zur Ausführungder Selbstinspekti-on jedochzeitaufwändig.Esgilt zuprüfen,obundwie maschinelleLernverfahrenangewendetwerdenkönnen,umeinenRoboterlernenzulassen.ZudiesemZwecksoll folgenderVersuchdurchgeführtunddokumentiertwerden:

Essoll einAgententwickelt werden,dereinenphysikalischenKörperin Form einesRobotersbesitzt.Der Agent verfügt übereinengene-tischenOptimierer, derdasVerhaltendesAgentenhinsichtlicheinerexemplarischenAufgabenstellungoptimierensoll. Die AufgabedesRobotersist es,sozu manövrieren,dasser einersichauf demBodenbefindlichenLinie folgt.

29

Kapitel 4

DasDesign

Der grundlegendeAnsatzdesVersuchsist es,ein genetischesVerfahrenzu im-plementieren,welchesVerhaltensmusterin derFormvonRegelsätzenerstelltunddiesezu einemRobotersendet.Der Roboterbesitzteinevirtuelle Maschine,diedieRegelnin sensormotorischeRückkopplungenumsetzt,umdieQualitätderRe-gelbasiszubewerten.Als Sensorstehenihm dabeientsprechendderProblemstel-lung ein Lichtsensorsowie ein KontaktsensorzurVerfügung.DergenetischeOp-timierer führt auf BasisdieserverteiltenFitnessfunktioneineOptimierungdurchum ein Verhaltenzu generieren,welchesdie im Kapitel 3 auf Seite28 definierteAufgabeerfüllt.

Abbildung4.1:DerVersuchsaufbau

Die HauptkomponentendesSystemssinddergenetischeOptimierer(dieEvo-lutionsmaschine)undeinevirtuelleMaschine,diedieGenome(Regelsätze)inter-pretiertundsodaseigentlicheVerhaltendesAgentenerzeugt.

30

Die auf demProzessordesRoboterslaufendevirtuelle Maschinekommuni-ziert aufBasisvon Infrarotnachrichtenmit demaufeinemexternenPClaufendengenetischenOptimierer. Die Architektur entsprichteinerKomponentenarchitek-tur, bei derdie SchnittstellenderKomponentendurchein Infrarotnachrichtenba-siertes”MessageSending”bedienbarsind.

Abbildung4.2:GrobkonzeptdesAgentensystem

4.1 Die virtuelle Maschine

Die virtuelle Maschineist ausder Sicht desgenetischenVerfahrensein Teil derFitnessfunktion.Sie implementiertdabeidie eigentlicheQualitätsbewertungunddie Abbildungdieserauf einennumerischenWert. (sieheauchKapitel 2.3.2aufSeite19).

Aus Sicht desAgentenstellt die virtuelle Maschinedie verhaltensbildendeKomponentedar, die die durch GenomerepräsentiertenRegelbasenin Verhal-ten umsetzt.Sie bestehtauseinerVorgangssteuerung,einerRegelbasisunddemeigentlichemInterpreter, der die in der WissensbasisgespeicherteRegelbasisinFunktionsaufrufeandie Roboterbasisumsetzt.Zur Kommunikationmit derEvo-lutionsmaschineenthältdie virtuelle Maschineweiter ein plattformspezifischesKommunikationsmodul,welchesfür denVersandvon für denLernprozessrele-vantenDatengenutztwird.

Abbildung 4.3 stellt vereinfachtdenVorgangder Qualitätsbewertunginner-halb der virtuelle Maschineda.Ein Regelsatz(Verhaltensmuster)wird überdasKommunikationsmodulempfangenund in die WissensbasisdesRoboterseinge-speist.Der Interpreterverarbeitetdie einzelnenRegelnundgeneriertim Zusam-menspielmit denvonderRoboterbasisangebotenenAPI ein Verhalten.Während

31

diesesProzessessammeltder InterpreterDatenüberdasjeweilige Verhalten,diedurchdasim InterpreterenthalteneFitnessObjekt auf einennumerischenWertabgebildetwerden.DerberechneteWertwird amEndederInterpretationüberdasKommunikationsmodulandasLernverfahrenzurückgesendet.

Abbildung4.3: Informationsflussin dervirtuellenMaschine

4.1.1 Die Regelbasis

Die Regelbasisrepräsentiertdie vom AgentenverwendeteWissensbasis,die seinVerhaltendeterminiert.DiesesvomInterpreterausgewerteteProgrammwird durcheinevariable,geordneteMengevon Implikationsregeln repräsentiert,bei denendie PrämissenAussagenüberSensordatenrepräsentierenund dasim Konklusi-onsteilstehendeSymboleineAktion darstellt.JedeRegel bestehtaus2 Prämis-sensymbolen,einemlogischenOperator, derdie WahrheitswertederbeidenPrä-missenverknüpft,undeinemAktionssymbol.

32

FürSgleichderMengedermöglichenPrämissenundH gleichderMengederAktionenrepräsentierteineRegel je nachihremVerknüpfungsoperatoreinesderfolgendenPrädikate:

p1 � p2 � h

p1 � p2 � h

p1 ��� p2 � h

p1 � p2 � S

h � H

Die logischenOperatoren

! � nand�& � and�� � or �

determinieren,welchesderdrei Prädikateauf die SymboleeinerRegel ange-wendetwird. In einigenVersuchsdurchläufenstellt der ! OperatorstattdernandSemantikein”Fallback” - Verhaltendar. Die PrämisseeinerRegel,diedas! Sym-bol als logischenOperatorenthält,evaluiert in diesemFall unabhängigvon denPrämissensymbolenderRegelnimmerzuwahr.

Es gilt zu Untersuchen,in wie fern ein solches”Fallback” - VerhaltendenproblemspezifischenAdaptionsvorgangim Agentensystembeschleunigenkann.WelcheSemantikdas! Symbolin derentsprechendenVersuchsdurchführungbe-schreibt,ist derjeweiligenVersuchsdokumentationzuentnehmen.

Die Prämissenund Aktionen der Regeln repräsentierendie SchnittstelledesAgentenzur Umwelt. Die durchdie SensorikdesRobotersaufgenommenenIn-formationenwerdenbeiderAuswertungeinerPrämisseinterpretiertundaufeinenWahrheitswertabgebildet.EntsprechendstellendieAktionenZuständederMoto-rendesRobotersda.Für denVersuchwurdenfolgendePrämissenundAktionendefiniert:

33

Prämisse Sensorzustand

EYE DerLichtsensorbefindetsichaufschwarzemUntergrundNOTEYE DerLichtsensorbefindetsichaufweißemUntergrundBUMP DerRoboterist gegeneineArealbegrenzunggefahren.

Die PrämissenrepräsentierenSensorzustände

Aktion Motorzustand

FWD DerRoboterbewegt sichvorwärtsBCKWD DerRoboterbewegt sichrückwärts

TURNLEFT DerRoboterdrehtsichgegendenUhrzeigersinnTURNRIGHT DerRoboterdrehtsichmit demUhrzeigersinn

LEFTFWD DerRoboterfährt in einerLinkskurvevorwärtsRIGHTFWD DerRoboterfährt in einerRechtskurvevorwärts

BCKWDAFTERBUMP DerRoboterweichteinerArealbegrenzungaus

AktionenrepräsentierenMotorzustände

Für denAustauschvon Programmenzwischender virtuellen MaschineunddemLernverfahrenwerdendie Regelnauf eineZeichenketteabgebildet.Die ein-zelnenRegeln werdendabeidurch dasSymbol ”+” voneinandergetrenntunddurch dasvierstelligeTupel p, p, h und dem logischemOperatorbeschrieben.Die Regelnbildenin dieserForm die WörterderdurchfolgendenAusdruckdefi-niertenSprache,wobeip ein Terminalsymbolist, daseinePrämisserepräsentiertundh ein SymbolausderMengedermöglichenSymbolefür eineAktion ist:

� ��� � �&�! � pph�

In dieserForm werdendie Prämissenund Aktionssymbolein einer für dieÜbertragungoptimiertenRepräsentationdargestellt:

Prämisse ReduzierteDarstellung

EYE ENOTEYE NBUMP U

Die PrämissenwerdenaufeinASCII Zeichenabgebildet

34

Aktion ReduzierteDarstellung

FWD FBCKWD B

TURNLEFT LTURNRIGHT R

LEFTFWD ‹RIGHTFWD ›

BCKWDAFTERBUMP, A

Die Aktionenwerdenaufein ASCII Zeichenabgebildet

Beispielezur Regelrepräsentation

Die Regel ”WennsichderRoboterüberderschwarzenLinie befindetdannfahregeradeaus”würdefolglich sobeschrieben:

InterneRepräsentation ReduzierteRepräsentation

+ & EYE EYE FWD + & EEF

Die Regel ”Wennsich der Roboternicht überder schwarzenLinie befindetdannfahrenachlinks” würdesobeschrieben:

InterneRepräsentation ReduzierteRepräsentation

+ & NOTEYE NOTEYE TURNLEFT + & NNL

35

4.1.2 Der Regelinterpreter

Der Interpreterrepräsentiertmit der von ihm interpretiertenRegelbasisdasVer-haltendesRoboters.1 DerRegelinterpreter”parst” dieRegelbasisundbedientdasFitnessObjekt,welchesermit InformationenüberSensorzuständespeist.DasFit-nessobjektkapseltdieBerechnungdesnumerischenQualitätswertes,wohingegenderInterpreterderfolgendenFunktionalitätenrealisiert:

! NeueRegelbasissetzen:SetztdasalsParameterübergebeneRegelwerk indie Wissensbasis(Regelbasis)desInterpretersein.

! Zur Ausgangsstellungzurückkehren: SetzteineRegelbasis,die denRo-boterauf die schwarzeLinie führt, alsaktuelleWissensbasisund interpre-tiert diesesolange,bis derRobotersichüberschwarzemUntergrundbefin-det. DieserVorgangdient zur Sicherstellungder Vergleichbarkeit der be-rechnetenQualitätswerte(sieheKapitel 4.1.3).

! Regelbasisbewerten: FührtdenInterpretationsvorgangdurch,bis derRo-botergegeneineArealbegrenzungfährtodereinedefinierteZeitspannever-strichenist.

Die Regelinterpretationerfolgt durcheineserielleAbarbeitungeinzelnerRe-geln.EvaluiertderPrämissenteileinerRegel zu wahr, sowird die im AktionsteilspezifizierteAktion vom Agentenausgeführt,unddie Regelinterpretationstartetje nachverwendeterVerhaltensarchitekturvomBeginnderRegelbasis.

Wird eine ”Subsumption”Architektur [11] verwendet,so beginnt die Inter-pretationerneutvomBeginn derBasis.Ist diesnichtderFall, sowerdenauchdiehinter der angewendetenRegel folgendenRegeln der Basisinterpretiert,waszueinemInteferierenverschiedenerAktionen(Regeln) führenkannundsodasGe-wicht der einzelnenRegeln bei der Verhaltensbildungreduziert.Die Regelbasismussbei dieserArchitektur mehrals ein Ganzesgesehenwerden,bei demdasGesamtverhaltennicht immer auf dasVerhalteneinzelnerRegeln zurückgeführtwerdenkann.

WelchederbeidenArchitekturendie für die Problemstellungangemessenereist, soll im durchgeführtenVersuchermitteltwerden.DasWechselnzwischendenbeidenArchitekturansätzensoll durchwenigeeinfacheModifikationenamInter-preterObjektrealisierbarsein.

1Man könnteunter einemanderenGesichtspunktauchsagen,dassder Robotervon einemSoftwareagentengesteuertwird, der überdie API desBetriebsystemsdie Umwelt desRobotersmanipuliertodersichin ihr fortbewegt.

36

Die EvaluierungderPrämisseneinerRegel erfolgt durchdenAufruf vonMe-thoden,diedenZustandeinesbestimmtenSensorsaufeinenWahrheitswertabbil-denund diesenzurückliefern.JedemPrämissensymbolist durchdenInterpretergenaueineMethodezugeordnet,die einender obengenanntenSensorzuständerepräsentiert.Entsprechendführt eineimplizierteAktion zueinemMethodenauf-ruf, derdie MotorendesRobotersansteuert.Die eingestellteMotorkonfigurationbleibtsolangegültig, biseineandereAktion ausgeführtwird. DerAgententschei-detsichalsofür ein bestimmtesVerhaltenundüberprüftdannin kurzenAbstän-den,obdiesesVerhaltenbeibehaltenwerdensoll oderobeinanderesVerhalteninseinerSituationsinnvoller ist.

Die Dauer, die demInterpreterfür dasInterpretierenundBewerteneinerRe-gelbasiszurVerfügungsteht,ist einKonfigurationsparameterdesgenetischenVer-fahrens,derdirektenEinflussaufdieRichtigkeit derFitnessfunktionhat.Die Zeit-spannemussesdemBewertungsverfahrenermöglichen,einevalideAussageüberdie QualitätdesgeneriertenVerhaltenszu treffen.

Da ein Verhalten,welchesdenRobotergegeneinederArealbegrenzungma-növriert,kein vielversprechenderKandidatauf derSuchenacheinemLinefollowVerhaltenist, sollendieseRegelbasenvon aussortiertwerden.Der Interpretati-onsvorgangbricht beimKontaktdesRobotersmit einerArealbegrenzungab. DieRegelbasiswird in diesemFall alsunanwendbarklassifiziertundderInterpretati-onsvorgangterminiert.

4.1.3 Die Fitness

Die richtige Formalisierungder Verhaltensbewertung ist ein kritischer ProzessbeimDesigneineslernendenSystems.Ihre Richtigkeit entscheidetüberdenpro-blemspezifischenLernerfolg.Bei einerfehlerhaftenVerhaltensbewertungkannespassieren,dasszwar erfolgreichgelerntwird, dasLernziel jedochverfehlt wird,dadieLernaufgabenichtkorrektformalisiertwurde.Die BerechnungderQualitäteinerRegelbasiswird auf SeitedervirtuellenMaschinedurchdasObjektFitnessrealisiert.

DasFitnessObjekt wird vom Regelinterpretermit Informationenübergülti-ge Prämissenversorgt und implementiertdie Abbildung dieserErfahrungswerteaufeinennumerischenQualitätswert.EsbietetMethodenzumEinspeisenderEr-fahrungswertenan,diedurcheinenfestverdrahtetenBerechnungsalgorithmusaufdenQualitätswertabgebildetwerden.Die Erfahrungswertewerdendabeiin Formvon Wahrheitswertenübergeben,beidenenjedemWahrheitswerteinederim Ka-pitel 4.1.1definiertenAussagenüberSensorzustände(Prämissen)zugeordnetist.

37

Der Algorithmus zur BerechnungdesFitnesswertesverwendetdie absoluteHäufigkeit desEintretensderzurQualitätsberechnungdefiniertenPrämissen.DasFitnessobjektbesitztfür jedenSensorzustandeinenZähler, derdieHäufigkeit desEintretensder ihnenzugeordnetenPrämissendarstellt.Die numerischeQualitätberechnetsichauseinerzuspezifizierendenFormel,diedieverschiedenenZählerin Relationsetzt.

Der Vorteil dieserVorgehensweiseist die ”anytime” EigenschaftdesBewer-tungsverfahrens.Da die Qualität durch Häufigkeiten gezähltwird, ist jederzeiteinErgebnisverfügbar, obwohl diestatistischenRandbedingungenfür empirischeAnalysenund möglicheBesonderheitender Aufgabenstellungbeachtetwerdenmüssen.

Für dendurchgeführtenVersuchwurdendie beidenSensorzuständeEYE undNOTEYE als für die QualitätsberechnungrelevanteErfahrungswertefestgelegt.NachderInterpretationjederRegeleinerRegelbasiswird eineStichprobegenom-men.DerQualitätswertwird direktdurchdenQuotientenderabsolutenHäufigkeitdesEintretensder PrämisseEYE zur Häufigkeit desSensorzustandesNOTEYEdefiniert.Zur SicherstellungderKompatibilitätmit anderenOptimierungsverfah-renwird dasErgebnisderBerechnungmit 100multipliziert undabgerundet.

Fitness" R#%$ h " EYE # & h " NOTEYE #(' 100#

Die Zählerstartenmit einerDefault-Belegungvon 145 (EYE) zu 100 (NO-TEYE). Der Grundhierfür ist die Tatsache,dassein sichnicht bewegendesMu-sterqualitativ höherbewertetwerdensoll als ein Verhalten,welchesgegeneineWandfährt. Ein Verhalten,welchesdenRobotergegeneineWandfahrenlässt,wird mit einerFitnessvon0 bewertet.DaderQuotient145& 100größer0 ist, kanndergenetischeOptimierereinequalitätsorientierteUnterscheidungzwischendie-senbeidenVerhaltenstypenrealisieren.

DasformaleZiel desgenetischenOptimierersist es,ein Genomzu erstellen,welchesdenRoboterso langewie möglichauf schwarzemUntergrundhält. AufdenerstenBlick ist dieseFormulierungkein ausreichendesQualitätsmerkmalfürdas”Line Follow” Problem.UnterEinbeziehungderdemAgentenzurVerfügungstehendenAktionenscheintdieseFunktionjedochausreichend.DaeskeineAkti-on gibt, die esdemRoboterermöglicht,stehenzubleiben,ist die Formelimplizit

38

durchdie Bedingung”währendderRobotersichbewegt” erweitert.Waspassiertjedoch,wenndieRegelbasisnurRegelnenthältdieaufgrundihrerSemantiknichtangewendetwerdenkönnen?Esgilt zuuntersuchen,obderbeschriebeneMecha-nismuszu einerrichtigenundallgemeingültigenFitnessbewertungführt, oderobdie Fitnessfunktiondurchdie HinzunahmeeinesBewegungssensors(ShaftEnco-der)erweitertwerdenmuss.

Um die Vergleichbarkeit der Fitnesswertezu gewährleisten,mussdie Fit-nessfunktionvor derQualitätsbewertungdie Vergleichbarkeit derAusgangsposi-tion desRoboterssichern.Dazusoll derRobotervor demInterpretationsvorgangauf die schwarzeLinie manövriertwerdenunddort anhalten.Esgilt zu Untersu-chenobdieserMechanismusdieVergleichbarkeit derQualitätsbewertungsichernkannunddamitdie FitnessfunktioneineallgemeingültigeGrundlagefür denOp-timierungsprozessdarstellt.

4.1.4 Die Vorgangssteuerung

Die VorgangssteuerungorganisiertdenProzessderQualitätsbewertungin dervir-tuellen Maschine.Sie verwendetdie öffentlichenMethodender beschriebenenObjekteund implementiertso die dynamischenProzessein der virtuellen Ma-schine.Siekapseltdazudie folgenden4 ProzessedurchöffentlicheMethoden:

) Zur Ausgangsstellungzurückkehren: Lädt eineRegelbasis,die denRo-boter auf die schwarzeLinie manövriert,und führt diesesolangeausbisder Roboteran einer entsprechendenPositionsteht.DieseMethodewirdvor jedemBewertungsvorgangdurchgeführt,um die Vergleichbarkeit derQualitätzusichern.(sieheKapitel 4.1.3)

) NeueRegelbasisempfangen:EmpfängteineneueRegelbasisvonderEvo-lutionsmaschinemit Hilfe desKommunikationsmodulundübergibtdieseandenRegelinterpreter.

) Regelbasisbewerten:WeistdenInterpreteran,diegesetzteRegelbasisaus-zuwertenunddasdarausresultierendeVerhaltenzubewerten.

) Qualität der Regelbasisversenden:Fragt den ermitteltenQualitätswertvomInterpreterabundversendetihn mit Hilfe desKommunikationsmodulsandie Evolutionsmaschine.

39

4.1.5 Sequenzdiagrammder Selbstinspektion

Die Abbildung4.4 stellt denzentralenProzessderQualitätsbewertungeinerRe-gelbasisin einemSequenzdiagrammdar. Die vondenaufgeführtenMethodenver-wendetenHilfsmethodensind in diesemDiagrammnicht mit aufgeführt,um dieÜbersichtlichkeit zugewährleisten.

Abbildung4.4:SequenzdiagrammderBewertungeinerRegelbasis

40

4.2 Die Evolutionsmaschine

Die EvolutionsmaschineimplementiertdeneigentlichenLernvorgangdesAgen-ten.Sieerstelltundtransformiertdie Regelbasen,die dasVerhaltendesAgentendeterminieren.Die EvolutionsmaschinebestehtauseinemgenetischenOptimierer(sieheKapitel 2.3.2auf Seite19) und einemKommunikationsmodul.Der gene-tischeOptimiererverwendetdefinierteVerfahrenzur Transformationder durchGenomobjekterepräsentiertenRegelbasen.Die FitnessfunktiondieserGenomob-jekteversendetdiezubewertendeRegelbasismit Hilfe einesKommunikationsob-jekteszur virtuellenMaschineundwartetauf einenFitnesswert.Der empfangen-deWertstelltdenRückgabewertderFitnessfunktionunddamitdieGrundlagefürdenvomgenetischenOptimiererdurchgeführtenLernprozessdar.

4.2.1 DasGenom

Einevon dervirtuellenMaschineinterpretierteRegelbasiswird seitensderEvo-lutionsmaschinedurch einenBaum repräsentiert,der die einzelnenRegeln derRegelbasishierarchisiert.Der BaumbesitzteinenFan-outvon 5, welchersichausderverwendetenInterpreterspracheableitet,undeinevariableTiefe.Die KnoteneinerEbenerepräsentierenje eineRegel.Die von links nachrechtsangeordnetenKnoteneinerEbenestelleneinWort derim Kapitel 4.1.1definiertenSprachedar.Die AbbildungdesGenomsaufeineZeichenketteist dabeidurcheineBreitentra-versierungdesBaumesgegeben.

Obwohl demTrennzeichen”+” von der virtuellen MaschinekeineSemantikzugeordnetist, ist esin derRepräsentationdesGenomsenthalten.Esrepräsentiertin diesemFall eineeinfachebedingteVerzweigung,derenSprungzielbei nichtEintretenderdurchdiePrämissendefiniertenBedingungderBeginndernächstenRegel ist.

DieseStrukturerlaubtes,bei einermöglichenErweiterungdervirtuellenMa-schine,auchandereCompoundStatements(while Schleifenetc.)zu implementie-ren.Die in reduzierterDarstellungbeschriebeneRegelbasis+ *EEF+ *NNLwürdedurchdenin Abbildung4.5dargestelltenBaumrepräsentiert:

41

Abbildung4.5:GenomdesProgrammes+ +EEF++NNL

Die QualitätsbewertungeinesGenomsdurchdie Fitnessfunktion,wird wei-testgehenddurchdie virtuelle Maschineimplementiert.Dies hat zur Folge, dasderim GenomObjektcodierteTeil derFitnessfunktionausschließlichfür dieAb-wicklung desNachrichtenaustauschsmit dervirtuellenMaschinezuständigist.

NebenderFitnessfunktionist derDefault-KonstruktordesGenomObjekteinfür die Optimierungwichtiger Mechanismus. Er implementiertdenfür die Er-stellungderUr-PopulationbenötigtenProzessderGenerierungvonGenomenmitzufälligerSemantik.DieGenomemüssentrotzihrerzufälligenSemantikeinesyn-taktischKorrektteStrukturbesitzen,d.h.siemüssenvon einemParser, derSätzederim Kapitel4.1.1aufSeite32definiertenSpracheparst,fehlerfreigeparstwer-den.

4.2.2 Die Populationsparameter

Die verwendetePopulationsgrößemussdie von der FitnessfunktionbenötigteZeitspannezurQualitätsbewertungbeachten.Die dervirtuellenMaschinezurBe-wertungeinesGenomszur VerfügungstehendeZeitspanneist ein Versuchspara-meter, derbei einerfestgelegtenDauerderOptimierungin direkterRelationzurverwendetenPopulationsgrößedesgenetischenVerfahrenssteht.

Bei einer vorgegebenenDauer der Bewertung einesIndividuums,die z.B.durch eine echtzeitbezogeneLernaufgabefestgelegt ist, ist die Anzahl der Ge-nerationenin Relationzur GrößederPopulationeineStellgröße,die die algorith-mischeEigenschaftdesSuchverfahrensbeeinflusst.

Werdennur wenigeabergroßePopulationengeneriert,sowird dieSuchewe-nigerstarkaufdieQualitätshügelim Suchraumzugehen.Stellenwir die Informa-tioneneinesGenomsals Vektor in einemN dimensionalenRaumdar, so ist die

42

HeuristikdesVerfahrensdadurchgegeben,dasesdieVektorenamehestenauf ih-re Qualitäthin prüft, die in derNachbarschafteineserfolgreichenGenomvektorsliegen(sieheKapiel 2.3.2).Vergrößernwir die Populationenundreduzierenent-sprechenddie AnzahlderGenerationen,sowerdenzwar genausoviele Genomeuntersucht,eswird jedochseltenerüberprüft,obeinnochbesseresGenomerstelltwurde,dessenNachbarschaftmöglicherweisenochbessereGenomeenthält.Vie-le kleineGenerationenhabendenVorteil, dasseinedeutlichhäufigereKontrollederQualitätderGenomestattfindetundsoSackgassenoderQualitätshügelfrühererkanntwerdenkönnen.AndererseitsgehtderAlgorithmusin diesemFall stärkerauf die Qualitätsmaximazu, wasnicht immer von Vorteil seinmuss(sieheauchhier Kapitel 2.3.2aufSeite19).

DasrichtigeGleichgewicht zwischendenbeidenStellgrößenzufinden,ist einproblemspezifischerProzess,dernur aufBasiseinespraktischenVersuchsdurch-geführtwerdenkann.Um einegrobeEinschätzungrealistischerPopulationspara-meterzuerhalten,kannjedochdie folgendeAbschätzungdurchgeführtwerden.

Seidiefür denVersuchdefinierteDauerdesInterpretationsvorgangstindividuum

15 Sekunden.Bei einer PopulationsgrößePAnzahlIndividuen von 10 benötigtedieBewertungeinerganzenPopulationeinenZeitraumvon150Sekunden.SeiweiterdieAnzahlderGenerationen#P in unseremEvolutionsprozessgleich10,sohättederAgentca.einehalbeStundeZeit, dasgestellteProblemzu lösen,dasichdieDauerderGesamtevolutiontevolution ausderAnzahlderGenerationenmultipliziertmit derDauerfür dieBewertungeinerPopulationergibt.

#P , tevolution

tindividuum - PAnzahlIndividuen

tevolution , #P - tindividuum - PAnzahlIndividuen

4.2.3 DasAbbruchkriterium

DasAbbruchkriteriumdefiniertdasEndedesOptimierungsvorgangs.Die gene-tischenVerfahrenverwendenzwei Arten von Abbruchkriterien.Das EndederOptimierungwird entwederdurchdasErreicheneinesbestimmtenQualitätswer-tesoderdurchdasErreicheneinerbestimmtenGenerationsanzahldefiniert.EinequalitätsorientiertesAbbruchkriteriumhatdenEffekt, dassdasVerfahrenbei ei-nemfestgelegtenQualitätsgraddesbestenIndiduumsterminiert.Dieshat jedoch

43

keinenEinflussaufdieEigenschaftendesSuchprozesses.Zusätzlichführt dieva-riableAnzahlderGenerationenzueinernichtvorhersehbarenDauerdesLernvor-gangs,wasdieRationalitätdesHandelnseinesverkörpertenAgentenbeeinflussenkann.

Eine festgelegteDauerdesLernvorgangsführt zwar nicht in jedemFall zumErfolg, stellt abersicher, dasssichderAgentnicht in einemunlösbarenProblemverrenntund zumindestangenährteLösungenan einemfestgelegten Zeitpunktliefert. Dies ist bei einemin einenatürlicheUmwelt eingebettetenAgenteneineEigenschaftdieüberdenErfolg seinesHandelnsentscheidenkann.

Als AbbruchkriteriumseideshalbdasErreicheneinerbestimmtenGenerationim Optimierungsprozessdefiniert.Für den erstenVersuchwird der im Kapitel4.2.2diskutierteWert von10 festgelegt.

4.2.4 Die Transformationverfahren

Die Kr euzungsmethode

Die Kreuzungsmethodedefiniert den Vorgangder systematischenModifikationvon Genomen.Sieimplementiertden”gerichteten”Teil derSuchenachdemop-timalen Individuum und basiertauf dendurchdie FitnessfunktiongewonnenenInformationen.Die durchKreuzungentstandenenKinder zweierGenomereprä-sentierendenVersuchdesOptimierungsverfahrens,dieerfolgreichenKomponen-tenzweierGenomezuvereinen.

Zur EinschränkungdesSuchraumsstellt die Integrität der Informationsstruk-tur derneugeneriertenGenomeeineRandbedingungdar, die eseinzuhaltengilt.FürdendurchgeführtenVersuchbedeutetdies,dassdasneugenerierteProgrammlt. der im Kapitel 4.1.1 beschriebenenSprachesyntaktischrichtig ist. Zur Ver-einfachungdesOptimierungsvorgangswurde keine programmkomponentenori-entiereQualitätsbewertungvorgesehen.Die qualitätsorientierteBevorzugungein-zelnerRegeln beimKreuzungsvorgangkanndurchdie Kreuzungsmethodenichtumgesetztwerden.Die Kreuzungsmethodekreuztalsozufällig die Informationder systematischausgewähltenGenome,ohnedabeiGenomezu generierendievomInterpreternicht fehlerfreigeparstwerdenkönnen.

Wie könnendieseAnforderungenumgesetztwerden? Auf Grundderim Ka-pitel 4.2.1auf Seite41 spezifiziertenStrukturdesGenoms,kanneinestrukturer-halteneKreuzungzweierIndividuendurchdasvertauschenzweierÄstederdurchdieGenomerepräsentiertenBäumeerreichtwerden.Als Randbedingunggilt hier,

44

dassnur an denKnotengetauschtwird, die an der selbenPositioninnerhalbei-ner Regel liegen.Eine geeigneteSollbruchstellestellt dasTrennzeichen”+” da.Es wird so sichergestellt,daseineerfolgreicheRegel nicht ”zerschnitten”wird.Jeein zufällig gewählter ”+” Knotender zu kreuzendenBäumestellt dabeidieBruchstellederzuvertauschendenÄstedar.

Abbildung4.6:Unterbaumkreuzung

Die Mutationsmethode

Die MutationsmethodeimplementiertdiezufälligeModifikationvondurchKreu-zung entstandenenGenomen.Sie modifiziert den InformationsgehalteinesGe-nomsmit einergegebenenWahrscheinlichkeit, ohnedessenstrukturelleIntegritätzu verletzen.Dasim VersuchverwendeteVerfahrenzur MutationtauschtdenIn-formationsgehaltzweierKnotenin einemGenom,die sichanderselbenPositioninnerhalbderRegelnbefinden:

45

Abbildung4.7:SwapnodeMutation

Die Wahrscheinlichkeit, dassein solcherVorgangfür denKnoteneinesBau-mesangestoßenwird, ist eineStellgrößedesOptimierers,denesentsprechendderAufgabenstellunganzupassengilt.

4.2.5 DasSelektionsverfahren

DasSelektionsverfahrenlegt fest,nachwelchemVerfahrendie Individuenselek-tiert werden,um zu einerneuenGenerationüberführtzu werden(sieheKapitel4.2.4auf Seite44). Aus der Sicht desSuchverfahrensentsprichtdieserVorgangeiner priorisiertenAuswahl desals nächsteszu bewertendenKnoten im Such-baum.

Die EigenschaftendesdurchdasgenetischeVerfahrenimplementierteSuch-verfahrens,werdenzumeinendurchdie Kreuzungs-undMutationsmethodende-finiert, könnenaberauchdurchdasSelektionsverfahrenbeeinflusstwerden.EinedirekteÜbernahmedesbestenIndividuumsin die nächsteGenerationführt z.B.zu einermonotonsteigendenQualitätdesbestenIndividuums,daesnicht durchein schlechteresersetztwerdenkann.

Die Methodeder”überlappendenPopulationen”ist geradebei einerbegrenz-tenAnzahlvon Generationenvorteilhaft,dasieschnellauf die QualitätshügelimSuchraumzugeht.Selektionsstrategien,diemit nichtüberlappendenPopulationenarbeiten,gehendasRisiko ein,bei AbbruchderEvolution ohneeineanwendbareLösung”dazustehen”.AndererseitsbringenüberlappendePopulationendie Pro-blematikder ”Hill Climbing” Algorithmenmit sich,da guteRegelbasenschnellübervermeintlichschlechtereRegelbasen,die aberübereinebessereGrundlagezur Weiterentwicklungbietenkönnten,dominieren.Geradebei komplexen Pro-blemstellungenkanndieseineEigenschaftsein,die die Effektivität desLernvor-gangsstarkreduziert.

46

AufgrundderfixenGenerationenanzahl(sieheKapitel 4.2.3aufSeite43)unddergeringenAnzahlanPopulationen(sieheKapitel4.2.2aufSeite42) ist dieVer-wendungeinesmit überlappendenPopulationenarbeitendenSelektionsverfahrensnotwendig.Die AnzahlderdirektüberführtenGenomeist eineStellgröße,diedenfür die AufgabenstellunggeeignetenGradan Innovation in der Populationdefi-niert. Für dasverwendeteSelektionsverfahrensei folgendeRandbedingungdefi-niert:

Die 5 bestenIndividuenin einerPopulationvon10gehendirekt in dienächsteGenerationüber. Die restlichenIndividuenderFolgegenerationwerdendurchdiegewählteTransformationsmethodeausdenGenomenderzuselektierendenPopu-lationgeneriert.

Für die Auswahl derzu transformierendenGenomewird ein qualitätsbezoge-nesSelektionsverfahrenangewendet.EsordnetjedemGenomeinenWahrschein-lichkeitswertzu, der sich direkt ausdem Quotientender Qualität desentspre-chendenGenomsundderSummederQualitätallerGenomeableitet.DieserWertrepräsentiertdie Wahrscheinlichkeit dafür, dasdasentsprechendeGenombei ei-nerKreuzungherangezogenwird. DasgewählteVerfahrenlässteszu, dassauchschlechtereGenomemit in die GenerierungeinerneuenPopulationeinbezogenwerdenundsodie ”Hill Climbing” Eigenschaftaufgeweichtwird. Die Auswahlderbeidenfür eineKreuzungverwendetenGenomeerfolgtdabeiunabhängigvon-einander, wasimpliziert, dassein GenombeideElternteileeinesneugeneriertenGenomsdarstellenkann.

Auf einedynamischeAnpassungderSelektionsparameterwährendderEvolu-tion wurdeverzichtet.EinesichüberdenEvolutionsprozessverkleinerndeAnzahlder direkt übernommenenGenomehättejedochdenEffekt, dassder genetischeOptimiererzu Beginn der Evolution eherviel ”experimentiert”,sich aberzumEndeauferprobteStrategienverlässtundsostärkeraufdieMaximaim Suchraumzugeht.

47

4.3 DasKommunikationsmodul

Das Kommunikationsmodulimplementiertdie infrarotbasierteKommunikationzwischenEvolutionsmaschineundvirtueller Maschine.Essetztdie ausdemDe-signdesGesamtsystemsresultierendenAnwendungsfällein die folgendenFunk-tionalitätenum:

. FühreeineHandshake-Aufforderung durch: Die virtuelleMaschinever-suchteineKommunikationsverbindungzur Evolutionsmaschineaufzubau-en.Zu diesemZweckwird solangeeinealsHandshake Aufforderungdefi-nierteNachrichtversendet,biseineBestätigungsnachrichtvon derEvoluti-onsmaschineerhaltenwurde.

. FühreHandshake-Bestäigungdurch: Die EvolutionsmaschinewartetaufeineHandshake Nachrichtvon dervirtuellenMaschineundbestätigtihrenEmpfangmit VersandeinerBestätigungsnachricht.

. Versendeein Genom:Die Evolutionsmaschineversendeteinzubewerten-desGenomandie virtuelle Maschine.Der ÜbertragungsvorgangendetmiteinerEmpfangsbestätigungdervirtuellenMaschine.

. Empfange ein Programm: Die virtuelle Maschinewartetauf eineNach-richt von der Evolutionsmaschineund bestätigtihren Empfangmit einemHandshake Signal.Bei derempfangenenNachrichthandeltessichum einvonderEvolutionsmaschineversendetesProgramm,welchesmit AbschlussderKommunikationzur InterpretationzurVerfügungsteht.

. SendeFitness: Die virtuelle MaschineversendeteinenGanzzahlwert so-lange,biseineBestätigungvonderEvolutionsmaschineempfangenwurde.

. EmpfangeFitness:Die EvolutionsmaschinewartetaufeineNachrichtvonder virtuellen Maschine.Der Empfangder Nachrichtwird durchdenVer-sandeinerBestätigungsnachrichtbestätigt.

. BehandleFehler in der Kommunikation: FehlerhafteNachrichtenoderSynchronisierungsproblemewerdenvom Kommunikationsmodulbemerktundentsprechendbehandelt.

4.3.1 Die Ar chitektur desKommunikationsmoduls

Die ObjektedesKommunikationsmodulsindsowohl Teil dervirtuellenMaschineals auchder Evolutionsmaschine.Trotz der unterschiedlichenAufgaben,die siein denbeidenKomponentenerledigen,sindgeneralisierbareEigenschaftenbeider

48

Klassenoffensichtlich.Um dieWiederverwendbarkeit undWartbarkeit derTeilm-odulezu sichern,leitendie beidenKommunikationsobjektevon einerabstraktenOberklasseab,die diegeneralisierbarenEigenschaftenundMethodenbeiderOb-jekte in einerabstraktenOberklassekapselt.Die genaueArbeitsweiseder Kom-munikationsobjektewird aufgrundderstarkenAbhängigkeit vondenverwendetenBibliothekenim Kapitel 5 Die Implementierungbeschrieben.

49

Kapitel 5

Die Implementierung

5.1 Der Roboter

5.1.1 LegoMindstorm RIS

DasLEGO MINDSTORMS RoboticsInventionSystemist ein in Zusammenar-beit desMIT und der Lego GroupentstandenesSetvon Komponenten,welcheszur Erstellungvon mobilenRoboterngeeignetist. EsenthältnebendenüblichenLego Bausteinen,Sensorenund Motorensowie denprogrammierbarenBausteinRCX. DieserBausteinenthälteinenHitachi-8300Prozessorund 32 KB Haupt-speicher. Er verfügt übereineInfrarotschnittstelle,mit der Datenzwischenver-schiedenenRCX BausteinenodereinemPCausgetauschtwerdenkönnen.

Abbildung5.1:DerRCX Baustein

Die im SetenthaltenenSensorenumfassen2KontaktsensorenundeinenLicht-sensor. Die KontaktsensorenverfügenübereinenKlickschalterund werdenvonderFirmwarealsaktiviert angesehen,wenndiesereingedrücktist. Die Lichtsen-sorenliefern beim Ausleseneine Ganzzahlzurück, ausder unter anderembe-schränkteRückschlüsseüberdieFarbedesUntergrundsgezogenwerdenkönnen.

50

Der RCX Bausteinkannmit verschiedenenProgrammiersprachenprogrammiertwerden.Für nähereInformationenseihier auf LugNet [15], daswohl größteFo-rum,dassichmit derProgrammierungdesRCX beschäftigtverwiesen.

5.1.2 Die HardwareKonfiguration

Um die im Kapitel 3 beschriebeneAufgabezu lösenwurdederRoboterwie folgtkonfiguriert:

/ Fahrwerk DerRoboterbesitztzweimit DC-MotorengekoppelteRäderzurNavigation.Ein drittes,mitlaufendesRadist im hinterenTeil desRobotersangebracht.

/ KontaktsensorEin mit einerStossstangeverbundenerKontaktsensorist ander FrontseitedesRobotersangebracht,um die Kollision mit einerAreal-begrenzungzuverhindern.

/ LichtsensorDerLichtsensordesRISist ebenfallsanderFrontseitedesRo-botersangebrachtundtastetdenBodenvor sichab. Er dientzurErkennungderaufdemBodendesVersuchsarealsaufgezeichnetenLinie

/ Infrar otspiegelDa der InfrarotsensordesRCX anderSeitedesBausteinsangebrachtist, derIR-TowerdesPCsjedochüberdemVersuchsarealange-brachtist, müssendie Signale,die andenPCgesendetodervon ihm Emp-fangenwerden,übereinenSpiegel umgeleitetwerden,der vor demTran-ceiverdesRobotersangebrachtist. werden.

Abbildung5.2:Die verwendeteRoboterkonfiguration

51

5.2 DasVersuchsareal

Die Umwelt desAgentenwird durcheinen1 x 1.20 Meter großenHolzkastenrepräsentiert.DasAreal ist weißlackiertundwird von10cmhohenWändenum-schlossen.Auf dem Bodenist mit schwarzemKlebebandein Oval gezeichnet,welchesdie vom RoboterabzufahrendeIdealstrecke darstellt.Der IR-Tower desRIS Sets,der von der Evolutionsmaschinezur Kommunikationverwendetwird,wird durcheinen1.2 MeterhohenGalgengehalten,deranderArealbegrenzungbefestigtist. Der Tower ist dabeisoausgerichtet,dasser die gesamteFlächedesArealsmit seinenSignalenerreichenkann.DurcheineinfachesStecksystemkanndie Höhe des Infrarottranceivers variiert werden,indem die HalterungslatteineinenanderenSteckplatzgeschobenwird.

Abbildung5.3:DerVersuchsaufbau

52

5.3 Die virtuelle Maschine

Die virtuelle Maschinewird physikalischvom sich auf dem RCX befindlichenHitachi Prozessorinterpretiert.Ihr primäreAufgabeist es,die von der Evolu-tionsmaschinegeneriertenVerhaltensmuster(Regelbasen)zu interpretierenundihre Qualitätzu bewerten(sieheKapitel 4 auf Seite30). DasfolgendeUnterka-pitel beschreibtdie Umsetzungder im DesignbeschriebenenTeilkomponenten.Es beschreibtweiter daszugrundeliegendeBetriebsystemund die verwendetenBibliothekenundProgrammiersprachen.

5.3.1 DasBetriebsystem

Der RCX Bausteinist vom Herstellermit einer Firmwareausgestattet,die denZugriff auf die SpeicherRessourcendesBausteinsstarkeingrenzt.Die C ähnli-cheSprache”Not Quit C” erlaubtez.B.zumZeitpunktderVersuchsdurchführungeinemaximaleVariabelenanzahlvon 32, wasfür dasgeplanteSystemnicht aus-reichendwar.

Erst mit Ersetzender Standardfirmwarewird dieseBegrenzungaufgehoben.Die EntwicklungsumgebungLegOSbeinhaltetnebeneinerneuenFirmware,diedenZugriff auf dengesamtenSpeicherdesBausteinserlaubt,einenC ++ CrossCompilersowie eineBibliothek für denZugriff aufdie SchnittstellendesRCX.

In derBibliothekebenfallsenthaltenist das”LegoNetwork Protokoll” Modul,welchesdie KommunikationzwischenRCX BausteinenundeinemPCvia Infra-rot ermöglicht.Für nähereInformationenseiauf dasLNP howto [16] verwiesen.Im RahmenseinerStudienarbeitanderHAW Hamburg wurdevon Oliver Christein TCP/IP Stack in den LegOs Kernel integriert, der damit ein standardisier-tesundinternetfähigesNetzwerkprotokoll anbietet.Da sichdie ErweiterungzumZeitpunktdesdokumentiertenVersuchsnochin derEntwicklungbefand,konntesienochkeinenEinflussauf die Systementwicklunghaben.Für detailliertereIn-formationenbezüglichdesLegOSBetriebssystemsund seinerProgrammierungseiaufdasExtremeMindstorms[12] Buchverwiesen.

5.3.2 DasBehaviourPattern Objekt

Die im Kapitel4.1.1definierteRegelbasiswird durchdasObjektBehaviour Pat-tern implementiert.EsdientalsContainerObjektundrepräsentiertdievomAgen-tenverwendeteWissensbasis.DasObjektenthältdievonderEvolutionsmaschinegeneriertenRegeln,diedasVerhaltendesAgentendeterminieren.Die Regelnwer-dendabeiin einemArray vonEnumerationselementengespeichert.Die Enumera-

53

tion eWord umfasstalle im DesigndefiniertenSymbolefür Prämissen,AktionenundlogischenOperatoren.

Um die Struktur desKommunikationsmodulseinfach zu halten,enthältdieEnumerationaußerdemdie vom KommunikationsmodulverwendetenSteuerzei-chen.Diesist insoferneineVereinfachung,alsdasalleempfangenenInfrarotnach-richten auf den selbenTyp abgebildetwerdenkönnenund so eine einheitlicheVerarbeitungundSpeicherungrealisiertwerdenkann.Auf die BedeutungdieserSteuerzeichenwird im Kapitel5.5aufSeite71genauereingegangen.Die Enume-rationstellt sichunterVerwendungderdefiniertenSymbolewir folgt dar:

enumeWord ( IR_HELLO,... AND,... ,FWD...,EYE...)

Das vom BehaviourPatternObjekt zur Speicherungder Regeln verwendeteArray pattern[50] ist als Instanzvariablerealisiert.Die maximaleLängeder imArray enthaltenenRegelbasiswird soauf50 festgesetzt,waseinerAnzahlvon10Regelnentspricht.

Die Organisationder Datenentsprichteiner Stack- Verwaltung,wobei derZugriff aufdieElementederRegelbasisdurcheineStream-Schnittstellerealisiertwird. Die interneOrganisationdesIterationsprozesseswird durch zwei Zählerrealisiert.Zum einenwird derZählernWritePointerhochgezählt,wennein neuesElementhinzugefügtwird. Werdendie Elementeausgelesen(wird derStackab-gebaut),so repräsentiertdie VariablenReadPointer denIndex desElementesimArray, welcheszur Zeit dasobersteim Stackrepräsentiert.Die Iterationendengenaudann(der Stackist genaudannvollständigabgebaut),wenndie VariablenReadPointergleichderVariablenWritePointer ist.

0 isAtEnd()Stellt fest ob die Iterationüberdie RegelbasisamEndeist, undliefert eine0 zurückwennweitereRegelnzurAbarbeitungverfügbarsind.

0 reset()SetztdenIterationsindex auf0,sodasdieMethodenextPatternPart()dasersteSymboldererstenin derRegelbasisenthaltenenRegel zurücklie-fert.

0 nextPatternPart() Liefert dasnächsteSymbolder durchden Iterationfort-schritt bestimmtenRegel zurück. Die Reihenfolgein der die einzelndenPrämissen,Aktionen und logischeVerknüpfungenzurückgeliefertwerdenist durchdieim Kapitel4.1.1definierteSprachebestimmt.Auf Programme-benesinddieseSymboledurchdie ElementeeinerEnumarationrepräsen-tiert.Die BenennungderElementeentsprichtdenim WissensinterpretationsKapitel genanntenSymbolenfür PrämisssenundAktionen.

54

1 void addPatternPart(eWord aPatternPart) Fügt ein neuesRegelsymbolandas Endeder Regelbasisan (”pusht” ein neuesSymbol auf den Stack).FürdasAnhängeneinervollständigenRegelmussdieseMethodeinsgesamtvier mal aufgerufenwerden.EineRegel mussimmer vollständigzugefügtwerden.Werdennicht alle Symboleder Regel eingefügt,so entsprichtdieRegelbasisnicht mehr der im Kapitel 4.1.1 definiertenSpracheund ihreInterpretationwird abgebrochen.1

1 void asDefaultPattern() Löscht dasvorhandeneRegelwerk und fügt eineRegelbasisein,die bei ihrer InterpretationdenRoboterauf schwarzenUn-tergrundmanövriertund dannanhält.Zu diesemZweck existiert einefestim CodeverdrahteteRegelbasis,die in derForm einesArraysvon eWordEnumarationselementenvorliegt: eWord defaultProgramm[] = { IF , OR ,NOTEYE... } ;

5.3.3 DasInter preter Objekt

DasObjektInter preter interpretiertdieim ObjektBehaviorPattern gespeicherteRegelbasis(InterpreterProgramm).Esgeneriertim Zusammenspielmit der Ro-boterbasis(derFirmwareundihrenAPI’s) dasVerhaltendesRoboters.

JederInterpretationsvorgangbeginnt mit dem Setzeneiner neuenRegelba-sis.Die setBehaviour(...)Methodenimmt alsParameterein Objektvom Typ Be-havioutPattern undüberschreibtdie bisherigeRegelbasismit demübergebenenObjekt.Ist eineneueRegelbasisgesetzt,sowird derInterpretationsvorgangdurchdenAufruf derdoIt() Methodegestartet.Die doIt() Methodedelegiert die eigent-liche Interpretationandie MethoderunForFactUntrue(...)die denAblauf derIn-terpretationorganisiert.

Die runForFactUntrue(...)Methodenimmt als Parameterein in der eWordEnumerationenthaltenesPrämissensymbolund bricht die Interpretationgenaudannab, wenn dasübergebenePrämissensymbolzu wahr evaluiert oder wennein definiertesZeitintervall verstrichenist. Für die BewertungeinerRegelbasisist diesesSymboldurchdie PrämisseBUMP gegeben,da wie im Kapitel 4.1.3festgelegt, einProgrammwelchesdenRobotergegendieArealbegrenzungmanö-vriert, alsnicht anwendbarangesehenwird. Tritt dieserFall ein,sowird vor demAbbruchderInterpretationdie MethodefatalFailure()desFitnessobjektaufgeru-fen, welcheeineentsprechendeModifikation desQualitätswertesimplementiert.Andersverhältessich,wenndasDefault Programminterpretiertwird. In diesem

1Um dadurchdie Effektivität vorangegangener, vollständigerRegeln nicht zu neutralisieren,beginntdie InterpretationvomBeginn derBasis.

55

Fall ist dasAbbruchkriteriumdurchdie PrämisseEYE gegeben.Der Interpreterbricht hier nicht nachder definiertenZeitspannesondernerstmit ErreichenderschwarzenLinie ab.

Die runForFactUntrue(...)MethodeverwendetdasStreamProtokoll desBe-haviourPatternObjektesum die einzelnenSymboleder Regelbasiszu interpre-tieren. Die Symbolewerdenmit der MethodegetNextPatternPart() geholt undverarbeitet.WurdeeineRegel interpretiert,prüft derInterpreterdurchdenAufrufderisAtEnd()MethodedesBehaviourPatternObjektes,obweitereRegelnvorhan-densindoderdie Interpretationvon vornebeginnt. Nachder InterpretationjederRegel wird eineMomentaufnahmeder SituationdurchdenAufruf derevaluate-Fitness(..)MethodedesFitnessobjekteserstellt.

Die InterpretationeinerRegel desProgrammsist in zwei Phaseneingeteilt:Die InterpretationderPrämisseunddie entsprechendeDurchführungderAktion.

Inter pretation der Prämisse

Der WahrheitswertdesPrämissenteilswird durch die MethodeisPrecondition-Valid() evaluiert.SieermitteltdenWahrheitswertderPrämisseund liefert diesenzurück.PrämissenundAktionenwerdendabeiwie im Kapitel 4.1.1auf Seite32beschriebendurch festverdrahteteMethodenaufrufeausgewertet,wobei die denPrämissenzugeordnetenMethodenimmereinenWahrheitswertzurückliefern.DiePrämisseEYE wird beispielweisedurchdie folgendeMethodeausgewertet:

bool isOverDark(){

return(LIGHT(SENSOR_2)›SENSOR_DARK) ;};

Wobeidie FunktionLIGHT(...) einedurchdie RoboterbasisgegebeneFunk-tion zumAusleseneinesLichtsensorsist, undderWert SENSOR_DARK einenSchwellwert darstellt,der festlegt, welcheSensorenwerteals schwarzeLinie in-terpretiertwerdensollen.

Die isPreconditionValid() Methodeholt sich nacheinander3 SymbolevomBehaviourPatternObjektundspeichertdiesein Variablen.EshandeltsichbeidenSymbolenumdiebeidenPrämissenderRegelnunddemlogischenVerknüpfungs-operator. Die WahrheitswertederPrämissenwerdenwie obenbeschriebenermit-telt unddanndurchdieMethodelogicalOperator(...), mit demlogischenOperator

56

verknüpft.DasErgebnissder Methodestellt denRückgabewert der isPrecondi-tionValid() Methodeda.

Durchführung der Aktion

Evaluiertdie isPreconditionValid() Methodezu wahr, sowird die Aktion derRe-gel durchdie MethodedoAction()ausgeführt.Kanndie Prämissenicht bewiesenwerden,sowird die Aktion durchdie MethodedismissAction()verworfen.

Die doAction()Methodeholt sich dasnächsteSymbolvom BehaviourPat-tern Objektundübergibt esbeimAufruf derperform(...)MethodealsParameter.Die peform(...)MethodebestehtausmehrerenIf Statements,die die jeweiligenAktionenimplementieren:

if(action == FWD){

d.debug(”FWD”);motor_a_speed(150);motor_c_speed(150);motor_a_dir(fwd);motor_c_dir(fwd);

};

Kanndie Prämissenicht bewiesenwerden,sowird dasAktionssymboldurchdenAufruf derdismissAction()Methodevom BehaviourPattern geholtundver-worfen.Die interpretationdernächstenRegel kannbeginnen.

Ablauf der Regelinterpretation in PseudocodeNotation

Der Prozessder Regelinterpretationkannin PseudocodeNotationwie folgt be-schriebenwerden:

while(! timeHasExpired()|| terminatingPremissesIsTrue()){

while(behaviourPattern.isAtEnd()){

behaviourPattern.nextRuleInRuleBase();if(isPreconditionValid())

57

{doAction();

}else{

dismissAction();}fitness.evaluateFitness(evaluatePremisses(EYE));

}behaviourPattern.reset();

};

58

BesonderesVerhalten

Die Komplexität der Aktionen ist zumeistauf denGraddesobengezeigtenCo-desbeschränkt.Die einzigeAusnahmebildetdabeidieAktion BCKWD AFTER-BUMP .

Die Aktion BCKWD AFTERBUMP ist nicht im Alphabetder Evolutions-Maschineenthalten.Da der Interpretationsvorgangbei der Qualitätsbewertungdurchdie AktivierungdesKontaktsensorsabgebrochenwird, wird dieseAktionnur danndurchgeführt,wenndas”Zur Ausgangsposition”Programmverwendetwird (sieheauchKapitel 4.1.2aufSeite36).

Die Aktion repräsentiertdasVerhaltendesAgenten,wennderRobotergegeneineArealbegrenzungstößt.Um sich von dieserBegrenzungzu lösen,führt derAgenteinesvondrei ”fest verdrahteten”Bewegungsmusternaus.DiesedreiVari-antensindnotwendig,umauchbeiungünstigenSituationenwie EckenodereinemsehrflachenAuftrittswinkel aufdieBegrenzungnicht in DeadlockSituationenzugeraten.Die drei Verhaltensmusterwerdenim Ringpuffer-Verfahrenangewendetund setzendensich an der WandbefindlichenRoboterauf verschiedeneArtenzurück:

2 In einergeradenLinie zurück

2 In einerRückwärtslinkskurveoder

2 In einerRückwärtsrechtskurve

DiesesVerhaltenerwiessichim Versuchalsausreichend,umDeadlock-Situationenzu verhindern,mussjedochbei einerErweiterungdesVersuchsaufbausauf seineAnwendbarkeit überprüftwerden.

Abbildung5.4:AusnahmebehandlungnachKollision

59

5.3.4 DasFitnessObjekt

Die im Kapitel 4.1.3beschriebeneBerechnungdesQualitätswerteseinerRegel-basiswird durchdasObjektFitnessimplementiert.Eswird vomRegelinterpretermit Informationenüberdie WahrnehmungdesRobotersversorgt. EineMoment-aufnahmewird durchdenAufruf der MethodeevaluateFitness(..)realisiert.Sienimmt denWahrheitswertderPrämisseEYE zumZeitpunktderMomentaufnah-me als Parameterund erhöhtentsprechenddem Wahrheitswerteineder beidendurchInstanzvariablenrealisiertenZählernTimeSpendOverLineodernTimeSpen-dOffLine .

void evaluateFitness(boolisOverDark){

if(isOverDark){ timeSpendOverLine()}else timeSpendOffLine()

}

Die Abbildung der beidenZähler auf den numerischenQualitätswertwirddurchdie MethodeasInteger() realisiert.Die Methodedividiert wie im Kapitel4.1.3beschriebendennTimeSpendOverLinedurchdennTimeSpendOffLine Zäh-ler und multipliziert dasErgebnismit 100.DasErgebniswird durcheinenCastaufdenTyp int abgerundetundzurückgegeben.

VerhältsichderRoboterunakzeptierbarfalsch,sowird die FitnessdurchdenAufruf der fatalFailure() Methodeauf 0 gesetzt.Dies ist bei der gewähltenVer-suchskonfigurationderFall, wennderRobotergegendie Arealbegrenzungstößt.Die Entscheidung,wannein Verhaltenalsunanwendbargilt, ist dabeifest im In-terpreterObjektverdrahtet.

5.3.5 DasFitnessDeterminationProcessObjekt

DasFitnessDeterminationProcessObjektimplementiertdie Vorgangssteuerungder virtuellen Maschine.Es wird in der main(...)Funktion der Applikation in-stanziiertundverwendet.Die Vorgangssteuerungkapseltdie4 HauptprozessedesBewertungsvorgangsalsöffentlicheMethodenundorganisiertdenInformations-flussin dervirtuellenMaschine(sieheauchKapitel4 aufSeite30).Sieversendetund empfängtmit Hilfe desKommunikationsmodulsfür denLernprozessrele-vanteDatenundstößtdie InterpretationderzubewertendenRegelbasisdurchden

60

Interpreteran.Die 4 PhasenderVerhaltensbewertungwerdendurchdiefolgendenMethodenimplementiert:

3 bool setToDefaultPosition(): JederInterpretationsvorgangstartetaneinervergleichbarenStelledesVersuchsareals.Soll derRoboterzurAusgangspo-sition zurückkehren,so wird zunächstdie MethodeasDefaultPattern() ei-nesneuinstanziiertenBehaviourPatternObjektsaufgerufen.SiekopiertdieElementedesdefaultProgramm[..] Arrays in die Wissenbasis(sieheKapi-tel 5.3.2auf Seite5.3.2).DasBehaviourPatternObjektwird anschliessenddurchdenAufruf der setBehaviourPattern(...)Methodein denInterpreter”eingesetzt”.Der Anstossder Interpretationerfolgt durchdenAufruf derrunForFactUntrue(..)MethodedesInter preter Objekts,wobeialsParame-terdie PrämisseEYE übergebenwird.

3 receiveBehaviourPattern(): DasObjektbeziehteineneueRegelbasisvonderEvolutionsmaschineundübergibt sieandenInterpreter. Zur Sicherstel-lung der Kommunikationsbereitschaftdes Kommunikationspartnerswirdvor demeigentlichenVorgangdesEmpfangsdieMethodeestablishConnec-tionForPatternReceive()desFitnessDeterminationProcessObjektesaufge-rufen.Sie ruft die MethodedoHandshake() desRCXCommunicator Ob-jektsaufundwartet,bisdieseerfolgreichbeendetwird.

Terminiertdie Methodeerfolgreich,so wird der eigentlicheEmpfangderneuenRegelbasisdurch die MethodereceivePattern(...)angestossen.DiereceivePattern(...)Methodeempfängtein neuesProgrammdurchdenAuf-ruf derreceiveMessage() MethodedesRCXCommunicator Objektes.DieElementederempfangenenZeichenkettewerdenmit Hilfe dercharToInt(...)MethodedesDebugger Objektesin ein eWord Enumerationselementkon-vertiert und mit der addPatternPart(...) Methodein ein dasvom Interpre-ter verwendeteBehaviourPattern Objekt eingepflegt. (sieheauchKapitel5.3.2auf Seite30).

3 determineFitness():Die Vorgangssteuerungweist den Interpreteran, dieempfangeneWissensbasisauszuwertenund ihre Qualitätzu bewerten,in-demsiedie MethodedoIt() desInter preter Objektesaufruft.

3 sendFitnessValue(): Die durchdie determineFitness()MethodeermittelteQualitätwird mit Hilfe desKommunikationsmodulsandie Evolutionsma-schinegesendet.WieauchbeimEmpfangenderRegelbasiswird vordemei-gentlichenÜbertragendesFitnesswertesein Handshakedurchdie establis-hConnectionForFitnessValueTransmission()Methodedurchgeführt.Ansch-

61

liessendwird derberechneteQualitätswertvom Inter preter Objektdurchdie asInteger() abgefragtund mit Hilfe der sendFitnessPattern() Methodeandie Evolutionsmaschineversendet.

5.4 Die Evolutionsmaschine

Der genetischeOptimiererund seineKonfigurationsparameterstelleneinenderHauptuntersuchungsgegenständedieserArbeit dar. Die Evolutionsmaschineführt,wie im Kapitel4beschrieben,diequalitätsorientierteManipulationdervomAgen-tenverwendetenWissensbasisdurch,um soseinVerhaltenhinsichtlichdergege-benenAufgabenstellungzuverbessern.

5.4.1 Die GAlib

Da der UntersuchungsgegenstanddieserArbeit nicht die Implementierungson-derndie AnwendungeinesgenetischenVerfahrensist, wurdeauf die Implemen-tierungeineseigenenOptimierersverzichtet.Stattdessensollteeinbereitserprob-tes,fehlerfreiesVerfahrenverwendetwerden,welchesdie im Designbesproche-nenRandbedingungendesOptimierungsvorgangsals konfigurierbareParameteranbietet.NacheingehenderSichtungmöglicherKandidatenwurdeaufgrundihrerkonkurrenzlosenMächtigkeit die in C++ implementierteGAlib verwendet.

Die am MIT entwickelte GAlib ist ein auf genetischenVerfahrenbasieren-desFramework für Optimierungsprobleme.Sie stellt verschiedene,in ObjektengekapseltenOptimierungsstrategienunddendabeiverwendetenDatenstrukturenzur Verfügungund ist in C / C++ / Objective C implementiert.Die Bibliothekbietetein breitesSpektrumvon vordefiniertenDatentypenund zeichnetsichbe-sondersdurcheinesaubere,objektorientierteProgrammstrukturaus:

GAlib containsa setof C++ geneticalgorithmobjects.The libraryincludestools for usinggeneticalgorithmsto do optimizationin anyC++ programusingany representationandgeneticoperators.[14]

Die verschiedenenDatenstrukturenund Strategien liegen in Klassen(sieheAbbildung5.5)vor, undkönnenin einerentsprechendenSystemimplementierungeinfachuntereinanderausgetauschtodererweitertwerden.Der Poolvon vordefi-niertenDatenstrukturenundStrategienenthältdabeiMethodenundKlassenfür:

4 VerschiedeneOptimierungsstrategien(GAGeneticAlgorithmObjekte)

62

5 VerschiedeneQualitätsberechnungsmethoden(GAScalingSchemeObjekte)

5 VerschiedeneSelektionsverfahren(GASelectionSchemeObjekte)

5 VerschiedeneRepräsentationsformenfür Lösungsansätze(GAGenomeObjekte)

5 VerschiedeneKreuzungs-undMutationsstrategien(MethodenderGAGenomObjekte)

Abbildung5.5:Die ObjektederGAlib

Die UnterklassenderGAGeneticAlgorithm KlassestellenverschiedeneStra-tegienzur PopulationsorganisationundÜberführungda.Sieimplementierenver-schiedeneOptimierungsstrategiendurcheinfache,überlappendeoderparallelePo-pulationen,wobei ihre spezielleKonfigurationdurchentsprechendeVariableundKonstantenerfolgt.

63

Die Objekteder GAScalingSchemeHierarchiedienenzur NormalisierungoderAbbildungderdurchdie FitnessfunktionübermitteltenQualitätswerte.Diesist beispielsweisenotwendig,wennessichbeidenvon derFitnessfunktiongelie-fertenWertenumnegativeZahlenhandelt.

Die GASelectionSchemeObjektedeterminierenden Prozessder Selektionvon Genomen,die für die ErstellungdernächstenGenerationherangezogenwer-den.DieUnterklassendesGASelectionSchemeenthaltendabeiverschiedeneMe-chanismen,die bestimmen,welcheGenomeunterwelchenUmständenzur Kreu-zungherangezogenwerden.

Die GAGenomObjektestellenvordefinierteStrukturenzurAbbildungderzuerstelltendenLösungsansätzezurVerfügung.Die Vielfalt derObjektesoll esnichtnurermöglichen,eineunkomplizierteAbbildungderzuoptimierendenInformati-onsstrukturdurchzuführen,sondernauchdie PerformanzdesOptimierungsvor-gangszu sichern.Die verschiedenenGenomtypensind hinsichtlich der in ih-nen gehaltenenInformationenoptimiert. Die Dokumentationder GAlib enthältentsprechendeEmpfehlungen,welcheGenomObjektefür welcheArten von In-formationenverwendetwerdensollten.Da die PerformanzdesOptimierungsvor-gangsin diesemVersuchdurchdenProzessderSelbstinspektionbestimmtwird,kann die Auswahl desGenomtypsausschließlichunter StrukturellenGesichts-punktendurchgeführtwerden.

Die DokumentationderGAlib siehteineModellbildungin drei Schrittenvor:6 RepräsentationsDefinition AbbildungderProblemlösungsansätzeauf ei-

neDatenstruktur(Genom).

6 TransformationsDefinition DefinitionvonKreuzungs-undMutationsope-ratoren.

6 QualitätsbewertungsDefinition Definition der formalenQualitätsbewer-tungeinesLösungsansatzes.

Die genanntenProzessewerdendurcheineAnzahlvon derBibliothek beige-fügtenBeispielendokumentiert.Sie entsprechendemim Kapitel 2.3.2auf Seite19 beschriebenemProzessderModellbildung.Für weitereInformationenseiaufdie DokumentationderGAlib [14] verwiesen.

5.4.2 DasRCXInter preterWord Objekt

Im Gegensatzzur virtuellen Maschineverwendetdie EvolutionsmaschineeinenkomplexenDatentypzur Repräsentationder Programmsymbole(sieheauchKa-

64

pitel 5.3.2aufSeite53).DasRCXInter preterWord Objektenthältnebenderei-gentlichenDatenhaltung,die wie bei dervirtuellenMaschinedurcheineVariablevom Typ eWord realisiertist, auchHilfsmethodenfür die zufälligeGenerierungvon denin denGenomenenthaltendenRegelbasen.

DasRXCInter preterWord unterscheidetdie Terminalsymboleder Interpre-tersprache(sieheKapitel4.1.2aufSeite36)durchdie folgendenin derEnumera-tion WordTypedefiniertenSymbolklassen:

7 COMPOUND DasSymbol ist daszur Serialisierungder Regeln verwen-deteTrennzeichen”+”. Auf derSeitederEvolutionsmaschinerepräsentiertdiesesSymboleineeineIf - Anweisung.

7 LOGICALOPERA TOR DasSymbolist einesder 3 LogischenVerknüp-fungsOperatorenAND , OR oderANDNOT .

7 SENSORINPUT DasSymbolist eineder in Kapitel 4.1.1definiertenPrä-missen

7 ACTION DasSymbolist einederin Kapitel 4.1.1definiertenAktionen

Aus grammatikalischerSichtstellendieseSymbolklassifikatorendie Nonter-minale einer Grammatikdar, die die von der ProgrammsprachebeschriebenenSätzefehlerfreiparsen.

Das RCXInter preterWord Objekt besitzt zwei Konstrukor-Methoden,diesich durchihre Parameterunterscheiden.Wird der Konstruktormit einemPara-metervom Typ WordType aufgerufen,sogeneriertdasObjektzufällig ein Sym-bol, welchesvom entsprechendenTerminaltypist. Der Typ desvom RCXInter -preterWord ObjektgehaltendenSymbolsdefiniertsichüberdie InstanzvariableeWordType , dieeinesderobenbeschriebenenEnumerationselementeenthält.ErkanndurchVerwendungder isOfTyp(...)Methodeabgefragtwerden.DerAufruf

RCXInterpreterWord(LOGICALOPERATOR)

generiertz.B.einRCXInter preterWord Objekt,dessenInstanzvariablenWorddenElementindex einesdereWord ElementeAND, OR oderANDNOT enthältund dessenVariableeWordType mit dem Wert LOGICALOPERA TOR belegtist. Wird der Konstruktormit einemParametervom Typ eWord aufgerufen,sowird die GanzzahlabbildungdesParametersin die InstanzvariablenValue gesi-chertundderWertderVariableeWordTypeübereineLookupTableermittelt.DerAufruf

65

RCXInterpreterWord(FWD)

generiertalsoein RCXInter preterWord Objekt,welchesdenElementindexdesEnumerationselementsFWD der VariablenValue zuordnetund eWordTypeaufdenWertACTION setzt.

Der «-Operator implementierteineAbbildung der VariablenValue auf eineZeichenkette.Dasbedeutet,dassder Ganzzahlwert desrepräsentiertenTerminalSymbolaufeinenihm zugeordnetenASCII Charakterabgebildetwird. DieseMe-thodewird zurAusgabedesProgrammesfür DebugoderKommunikationszweckebenutztundverwendetzur Abbildungdie KonvertierungsmethodeintToChar(...)desDebuggerObjektes.

5.4.3 DasGATreeGenomObjekt

DasGenomObjekt repräsentiertdasVerhaltendesRobotersseitensderEvoluti-onsmaschine.Es ist damit dasdirekteGegenstückdesBehaviorPattern ObjektdervirtuellenMaschine.

Die GAlib bieteteinbreitesSpektrumvonvordefiniertenDatentypenzurRea-lisierungderGenomObjekte.Sieunterscheidensichin derRepräsentationderinihnengehaltenenInformationen.Die Repräsentationsartenreichenvon einfachenZeichenkettenundListenbishin zumehrdimensionalenArraysundBäumen(sie-he Kapitel 5.4.1auf Seite62). Der Typ der in denGenomObjektengehaltenenDatenwird bei InstanziierungdesGenomObjektesdurch einenTemplateMe-chansimus[13] determiniert.Ebenfallsbei Instanzzierungwird diezurBewertungderin demGenomgespeichertenInformationenverwendeteFitnessfunktionfest-gelegt. Die Fitnessfunktionist durcheineobjective Funktionrealisiertund wirdalsParameterdesKonstruktorsübergeben.Die Instanzzierung:

GATreeRcxInterpreterWord genome(objective)

generierteinGenomeObjektvomTyp GATreeGenome, welchesalsGenom-informationObjektevomTypRCXInter preterWord enthältundzurBerechnungderFitnessdieFunktionobjective(...)verwendet.

Aufgrundder im Kapitel 4 festgelegtenBaumstrukturdesGenomswurdealsGenomrepräsentationderDatentypGATreeGenomverwendet.NebendemobengenanntenInstanzzierungsparameterbietetdasObjektdie folgendenfür denOp-timierungsvorgangrelevantenKonfigurationsmethoden:

66

8 initializer(...) nimmtalsParameterdie AdresseeinerFunktion,die ein Ge-nommit zufälligerSemantikgeneriert.Die im VersuchverwendeteFunkti-on TreeInitializer(...)nimmt alsParameterein GATreeGenomeObjektunderstellt unter Verwendungseiner insert(...) Methodeein Genommit zu-fälliger Semantik,welchesdannzur Bildung der Urpopulationverwendetwird. Die ErstellungdiesesProgrammsgeschiehtunterBerücksichtigungderdurchdie im Kapitel 4.1.1definiertenSatzstruktur. Die Strukturist aufImplementierungsebenedurch daseWordType programmGrammer[...]Array definiert,welchesdie im Kapitel5.4.2definiertenSymboltypenin ei-nerderInterpreterspracheentsprechendenReihenfolgeanordnet.

Die TreeInitializer(...)Methodegeneriert,unterVerwendungdesRCXInter-preterWord(...) Konstruktors,RCXInter preterWord Objekteund fügt siein denBaumein.Diesgeschiehtin derdurchdie programmGrammer[...]EnumerationdefiniertenReihenfolge,in demdie Funktionüberdie Enu-merationiteriert unddasaktuelleEnemurationssymbolals ParameterdemKonstruktordesRCXInter preterWord Objektesübergibt. Die grammati-kalischeRichtigkeit derProgrammstrukturbleibtaufdieseWeisegesichert,wohingegendieSemantikdersogeneriertenRegelnzufällig bleibt.

8 crossover(...) Die crossover(...)Methodelegt die Methodefest,die bei derKreuzungzweierGenomobjekteverwendetwerdensoll. Die Adressederzu verwendenenKreuzungsmethodewird dabeials Parameterübergeben.Das im Kapitel 4 determinierteVerfahrenzur Kreuzungwird in unseremVersuchsaufbaudurchdie MethodeGATreeGenomeRcxInterpreterWord ::OnePointCrossover realisiert.Sie transformiertzwei GATreeGenome,in-dem sie die repräsentiertenBäumean einemzufällig gewähltenKnotenkreuztunddie beidensoentstandeneBäumealsKinder zurückliefert.Dasheißt,dassjederderbeidenBäume”zerschnitten”,und je ein Ast mit demAst desanderenBaumeszu einemneuenzusammengeführtwird. (SieheKapitel 4.2.4).

Da die Integrität der Programmstrukturdurch diesenVorgangnicht ver-letzt werdendarf,wurdedie MethodeGATreeGenomeRcxInterpreterWord::OnePointCrossoverdurcheineMethodenüberladungmodifiziert.Die Me-thodeimplementiertdenVorgangso,dasnur anKnotengekreuztwird, dievomTyp COMPOUND sind(sieheKapitel5.4.2).DaeineRegeleinekon-stanteLängevon 5 besitztunddasCOMPOUND SymbolimmerdasersteSymboleinerRegel ist, werdennur die Knotenals Kreuzungspunkteher-angezogen,derenIndex im Baum(sieheKapitel 5.4.1)ohneRestdurch5

67

Teilbarist.

9 mutator(...) Setztdie alsParameterübergebeneAdresseeinerMethodealsMutationsmethode.Die in der EvolutionsmaschineverwendeteMethodeGATreeGenomeRcxInterpreterWord ::SwapNodeMutatordesGATreeGe-nom Objektesvertauschtzwei zufällig gewählteKnotenim als ParameterübergebenenBaum.Auch dieseMethodemusstezur Erhaltungder Inte-gritätmodifiziertwerdenundwurdewie dieKreuzungsmethodeüberladen.Auf GrundderobengenanntenEigenschaftendesBaumeswurdedie Me-thodesoverändert,dassdie vertauschtenKnotensich,gemessenamIndexdesBaumes,immer in einemAbstandvon 5 zueinanderbefindenmüssen.Dieshatzur Folge,dassnur Knoten,derenWert vom selbenWorttyp (sie-heKapitel 5.4.2auf Seite64) ist, vertauschtwerdenundsodie strukturelleIntegritäteingehaltenwird.

9 write(...) Die write(...)Methodebildetdieim GenomgehalteneBaumstruk-tur auf die für die Kommunikationmit dervirtuellenMaschineverwendeteZeichenkette ab. Sie nimmt als Parameterein Objekt vom Typ ostream,welchesin C++ die Oberklassealler zur Ausgabevon DatenverwendetenStreamklassendarstelltundbeschreibtdiesenachdemim Kapitel 4.2.1be-schriebenemVerfahren.

5.4.4 DasGAPopulation Objekt

Dasvom OptimiererverwendeteContainerObjekt zur Organisationder Indivi-dueneinerGenerationist dasGAPopulation Objekt.Eswird durchdenAufrufseinesKonstuktorsmit 2 Parameterninstanziiert.Der ersteParameterist ein in-stanzziertesGATreeGenomObjekt (sieheKapitel 5.4.3auf Seite66 ), welcheszur Bildung derUrpopulationverwendetwird. Der zweiteParameterspezifiziertdie GrößederPopulationundihrerFolgepopulationen:

GATreeGenomeRcxInterpreterWord genome(objective)

Erstellt ein GATreeGenomeObjekt mit der Fitnessfunktionobjective, wel-chesDatenvomTyp RcxInterpreterWord in einemBaumorganisiert.

GAPopulationswappop(genome, 10)

Erstellt ein Populationsobjekt,welches10 GATreeGenomeObjektemit zu-fälliger Semantikenthält.

68

5.4.5 DasGASteadyStateGAObjekt

Der im Kapitel 4.2.5 festgelegte Vorgangder Selektionwird durch dasObjektGASteadyStateGArealisiert.DasGASteadyStateGAObjektimplementierteingenetischesVerfahrenmit überlappendenPopulationen.Dasbei derAuswahl derzur KreuzungherangezogenenIndividueenverwendeteSelektionsschema(sieheKapitel 4.2.5) ist dabeidurch dasRouletteSelectionSchemeObjekt gekapselt.DasGASteadyStateGAObjekt leitet von seinerabstraktenOberklasseGAGe-neticAlgorithm abundorganisiertdenProzessderPopulationsüberführung.DasObjektwird durchseinenparametrisiertenKonstruktorinitialisiert. Als Parameterwird eine InstanzdesverwendetenGenomeObjektsübergeben(in diesemFallein GATreeGenomeObjekt). Um die im Kapitel 4 spezifiziertenKonfigurati-onsparameterdesEvolutionsvorgangszu implementierenwurdendie folgendenMethodendesGASteadyStateGAObjektesverwendet:

: population(...)DurchAufruf derpopulation(...)Methodewird dieUrpopu-lation desEvolutionsprozessesin Form einesObjektesvom Typ GAPopu-lation andasOptimierungsverfahrenübergeben.

: nGenerations(...)Die nGenerations(...)Methodesetztdie AnzahlderGe-neration,diediekünstlicheEvolutionumfassensoll. EsdefiniertsodasAb-bruchkriterium,vorausgesetzteswurdekein anderesAbruckriteriumdefi-niert.

: pMutation(...) Die Wahrscheinlichkeit für einezufälligeMutationeinesimGenomenthaltendenBaumknotenkanndurchdie MethodepMutation(...)gesetztwerden.Sie wird durcheineFlieskommazahlals Parameterüber-gebenund spezifiziertwie hoch die Wahrscheinlichkeit für die MutationeinesKnotensdesdurchdasGenomrepräsentiertenBaumesist. Die Mu-tationsmethodewird dabeiausschliesslichauf dieKinder einesKreuzungs-vorgangsangewendet.

: nReplacement(...)Spezifiziertdie Anzahlvon Individuen,die direkt in dienächsteGenerationübergehen.(SieheauchKapitel 4.2.5aufSeite46)

Ein Generationswechselwird durchdenAufruf derstep()Methoderealisiert.Die step(...)Methodeorganisiertdie SelektionundTransformationderin derPo-pulationbefindlichenGenomObjekteaufBasisderin diesemKapitelbeschriebe-nenObjekte.JedesGenomderAusgangspopulationwird durchdenAufruf seinerFitnessfunktionbewertet.Anschließendwird diedurchdienReplacement(...)Me-thodespezifizierteAnzahlvonGenomendirektdieFolgepopulationkopiert2. Für

2Die Anzahlder Direktmigrantenberechnetsich ausderPopulationsgrößeminusdemdurchdie nReplacement(...)MethodespezifiziertenWert

69

die Generierungder restlichenGenomewerdenje zwei Genomedurchdasbe-schriebeneSelektionsverfahrenausgewählt undgekreuzt.Anschließendwird fürjedenKnotenderentstandenGenome”gewürfelt” undmit derdurchdiepMutati-on VariablefestgelegtenWahrscheinlichkeit mutiert.

5.4.6 Die FitnessFunktion

Wie im Kapitel 4 beschrieben,ist der Vorgangder Fitnessberechnungdezentralimplementiert.Die Evolutionsmaschinedelegiert die eigentlicheBewertungandievirtuelleMaschine,indemsiedaszubewertendeGenomvia InfrarotzumRo-boterüberträgt.

Auf derEvolutionsmaschinewird die Fitnessfunktiondurcheineobjective CFunktionrealisiert.Sie wird demGenomObjekt zur Laufzeit zugeordnet(sieheKapitel 5.4.3aufSeite66) undwird vomProgrammiererdefiniert.DerParameterdieserFunktionist immervomTyp derverwendetenGenomKlasse,undstelltdaszubewertendeGenomdar, welchessoim Funktionsrumpfverfügbarist.

Der auf der EvolutionsmaschinelaufendeTeil der Fitnessfunktionreduziertsich auf die Kommunikationsabwicklungmit der virtuellen Maschine.Sie ver-wendetdazunebenderdoHandshake()Methodedie getMessageStream()Metho-dedesPCCommunicator Objektesum dasGenomzumRoboterzu übertragen.DasvondergetMessageStream()MethodezurückgelieferteFileinputStreamOb-jekt [13] , wird mit Hilfe der write(...) Methodedes GATreeGenomeObjektbeschrieben.Die write(...) Methodeführt eineBreitentraversierungdesBaumesdurchundschreibtdenInhalt jedesbesuchtenKnotenmit Hilfe des«-Operatorsauf denFileinputStream (sieheKapitel 5.4.2). Die darausresultierendeAbbil-dungentsprichtdanneinerZeichenkette,die Sätzeder im Kapitel 4.1.1auf Seite32 definiertenSpracheenthält.

Der Übertragungsvorgangbeginnt mit der DurchführungeinesHandshakesdurch den Aufruf der doHandshake() Methodeeinesin der Funktion instanzi-iertenPCCommunicator Objektes.DerbeschriebeneFileinputStreamwird mitder MethodebroadCastMessageStream()geschlossenund die mit ihm erstellteDateiversendet.Wurdedie Nachrichterfolgreichübertragen,soversuchtdie Fit-nessFunktioneinenweiterenHandshakezuinitiieren.Sobalddiesgelingt,hatdievirtuelleMaschinedieBewertungdesGenomsbeendet.Die FitnessFunktionruftanschliessenddieMethodereceiveMessage()auf,umdenFitnesswertvondervir-tuellenMaschinezubeziehen.DerempfangeneWertstellt denRückgabewertderFitnessfunktionunddamitdenQualitätswertdesGenomsdar.

70

5.5 DasKommunikationsmodul

Die IRCommunicatorObjektestelleneinenobjektorientiertenLayerumdasKom-munikationsprotokoll Lnp derLegOSEntwicklungsumgebungdar. EsbietetMe-chanismenzur Übertragungvon Zeichenkettenund numerischenWertensowieeinenprimitiven Handshake Mechanismuszur Sicherstellungder Aufnahmebe-reitschaftdesKommunikationspartners.Alle NachrichtenwerdendabeiohneeinespezielleAdressierungversendet.

Die Infratottrancevier desRIS sind für die Kommunikationunter Laborbe-dingungenentworfen wordenund arbeitennicht zuverlässigbei starker, exter-nerLichteinstrahlung.EinfallendesSonnenlichtkanndieKommunikationschweroderunmöglichmachen.Gleichesgilt für im UmkreisbefindlicheInfrarotsender,die die Nachrichtenübertragungebenfalls stören.

5.5.1 DasLnp Protokoll

Die LegOs Entwicklungsumgebung (sieheKapitel 5.3.1 auf Seite53) verwen-deteineinfachesNetzwerkprotokoll zurÜbertragungderInfrarotnachrichtenzwi-schendemRCX BausteinundeinemPC.Durchdie Anweisung

#include‹lnp.h›

werdendie benötigtenFunktionendeklariertundstehenso anschließendzurVerfügung.DasLnp Protokoll bietetsowohl dieMöglichkeit deradressiertenVer-sendungvon Nachrichten,als auch den Versandim BroadcastVerfahren.DieadressierteVariantewird zurKommunikationmit mehrerenRCX Bausteinenver-wendet.Da der durchgeführteVersuchsich auf die KommunikationzwischenRCX undPCbeschränkt,wurdehier dasBroadcastVerfahrenverwendet.

ZumVersendenundEmpfangenvonInfrarotnachrichtenwerden2 FunktionenderLnp Bibliothek verwendet:

; lnp_integrity_set_handler(..): nimmt die AdresseeinerFunktionals Pa-rameter, die wiederumeineZeichenketteund die Längeder übergebenenZeichenkettealsParameternimmt. Sie registriertdie übergebeneFunktionalsCallbackFunktionim LegOSKernelundruft sieimmerdannauf,wenneine Infrarotnachrichtvom Kernel empfangenwurde. Die entsprechendeBehandlungder übergebenenZeichenkette obliegt dannder übergebenenCallbackFunktion.

71

< lnp_integrity_write(..): nimmt eineZeichenketteundihre LängealsPara-meterundversendetsieim Broadcastverfahren

EmpfangundVersandsinddurchasynchroneVerfahrenrealisiert.Dasbedeu-tet, dassdie Nachrichten”blind” versendetwerden,ohneeine BestätigungdesKommunikationspartnerszu erwarten.Übertragungsfehlerwerdenvom Empfän-geraufBasiseinermitgesendetenChecksummeerkannt,sodasszumindestfehler-haft übertrageneNachrichtenbemerktund durchein entsprechendesException-Handlingkorrigiertwerdenkönnen.

5.5.2 DasSMWL Protokoll

DasSimpleMessageWrapperfor Lnp Protokoll ist einaufLnp basierendes,pro-prietäresNetzwerkprotokoll, welcheszur Realisierungder Infrarotkommunikati-on im durchgeführtenVersuchdient. Es implementierteineNachrichtentypisie-rungundeineneinfachenHandshake Mechanismus.DasProtokoll wird von denUnterklassendesIRCommunicatorObjektesverwendetundbildet mit ihnenaussoftwaretechnischerSichteinenSoftwareadapter, derdieEvolutionsmaschineundvirtuelleMaschineverknüpft.

Auf Lnp Ebenewird jede Nachrichtals Zeichenkette repräsentiert.Es ver-zichtetsoaufeineTypisierungderversendetenDaten.Um denProzessderNach-richtenverarbeitungzu strukturieren,siehtdasSMWL Protokoll eineTypisierungvor, die durcheineGanzzahl,die sichamBeginn jederversendetenZeichenkettebefindet,realisiertist. Beim EmpfangjederNachrichtwird dieseZahl durchdieentsprechendeMethodeaufdenEnumerationstypeMessageTyp ”gecastet”:

< 0 (ERROR) Die empfangeneZeichenkettewar leeroderderKommunika-tionspartnerhateineAusnahmebehandlungeingeleitet.

< 1 (HANDSHAKE) DieNachrichtistdieBestätigungeinergesendetenNach-richt odereinTeil einesHandshake.

< 2 (MESSAGE) Die NachrichtenthältprozessbezogeneDaten.

Ist die empfangeneNachrichtvomTyp HANDSHAKE oderMESSAGE , sowerdendie folgendenSymboleentsprechendihresTyp ausgewertet.

HandeltessichbeiderNachrichtumdenTyp HANDSHAKE , soenthältderNachrichtenrumpfeineGanzzahl,dieaufeinerderbeidenHandshakeNachrichtenabgebildetwird:

72

= 0 (IR_HELLO) Die Handshake Nachrichtrepräsentiertdie Aufforderungzur DurchführungdesHandshakes,dasheißtderSenderderNachrichter-wartetalsAntwort dieNachrichtIR_HOWAREU .

= 1 (IR_HOWAREU) Die Handshake Nachrichtrepräsentiertdie Antwortauf eineAufforderungzur DurchführungdesHandshakesoderdie Bestäti-gungeinerempfangenenNachricht.

Handeltessich bei der Nachrichtum denTyp MESSAGE , so enthältderNachrichtenrumpfeinenSatzder im Kapitel 4.1.1 beschriebenenSpracheodereinenFitnesswert.Der Satzist in Form einerZeichenketterepräsentiertundwirdvom entsprechendenCommunicatorObjektunterVerwendungdercharToInt(...)MethodedesDebuggerObjektesauf ein Array vom Typ eWord (sieheauchKa-pitel 5.3.2auf Seite53) abgebildet.Handeltessich bei der Nachrichtum einenQualitätswertsowird dieserdurcheineinfachesVerfahrenaufeinenentsprechen-deZahlentypkonvertiert.

Abbildung5.6:Die 3 NachrichtenTypen

73

5.5.3 Die IRCommunicator Objekthierar chie

DasObjekt IRCommunicatorstellt die abstrakteOberklassederPlattformspezi-fischenCommunicatorObjektedar. Sowohl derauf demRCX verwendeteRCX-Communicatorals auchdasauf dem PC verwendeteObjekt PCCommunicatorleitenvondieserKlasseabundimplementierenihre abstraktenMethoden

5.5.4 Der RCX Communicator

DerRCXCommunicatorwird vondervirtuellenMaschinezumEmpfangderVer-haltensmusterunddemVersandderFitnesswerteinstanziiertundverwendet.DasObjektregistriertbeiseinerInstanziierungdieCallbackFunktionir_integrity_handler(...)für denNachrichtenempfang(sieheauchKapitel 5.5.1auf Seite71).Die Funkti-on konvertiertdie empfangeneZeichenkettein ein Array von eWord Enumerati-onselementenundsignalisiertdemRCXCommunicator Objekt,dasseineneueNachrichtempfangenwurde:

void my_integrity_handler(constunsignedchar*data,unsignedcharlen){if(!irState){

irDataLength= len - 2int msgfor (int i = 0; (i ‹len); i++) {

msg= ((int) data[i]) - 48msg= d.wordToInt(data[i])irdata[i] = (eWord) msg

}for(int i = len (i ‹maxPatternSize)i++){

irdata[i] = IR_BLANK}irState= 1

}

74

Das Array irMessages[maxPatternSize]ist global definiert, wird abervomRCXCommunicator wie eine Instanzvariableverwendet.3. Nur die CallbackMethodegreift nicht überentsprechendeGetter/SetterMethodendesRCXCom-municatorObjektszu.Die VariableirState signalisiertdabeidemRCXCommu-nicator Objekt,dasseineneueNachrichtempfangenwurde.DieseVariablewirdvoneinemPollingbasiertenEvent-MechanismusdesRCXCommunicator abge-fragt,derin derreceiveMessage() Methodenäherbesprochenwird.

DasRCXCommunicator Objekt besitzt4 öffentlicheMethoden,die die imKapitel 4.3besprochenenFunktionenimplementieren:

> doHandshake()WartetaufdiedurchdiedoHandshake()MethodedesPC-Communicator versendeteHandshakeNachricht:IR_HELLO undbeant-wortet sie mit der Handshake NachrichtIR_HOWAREU , um danachzuterminieren.Alle NachrichtenanderenTypswerdenignoriert.

> sendMessage(...)Versendeteine als ParameterübergebeneZahl solange,bis die Nachricht IR_HOWAREU vom Typ HANDSHAKE empfangenwurde.

> receiveMessage()Wartet auf den Aufruf der CallbackFunktion, die fürden Nachrichtenempfang im Kernel registriert wurde, und quittiert ihrenEmpfangdurcheineHandshakeNachricht.Die Methodeläuft dabeiin eineSchleife,die dannterminiert,wenndasvon der CallbackFunktionmani-pulierteFlag irStategesetztwird. Wird die registrierteCallbackFunktionvom Kernelaufgerufen,so setztsie dasFlag und die Schleifeterminiert.Anschließendwird die Handshake NachrichtIR_HOWAREU einmalge-sendetund dasFlag irState für dennächstenNachrichtenempfangwiederaufFalschgesetzt.

> getReceivedMessageAt(intanIndex) Liefert dasZeichenan der PositionanIndex derempfangendenZeichenkettezurück.Die Adressierungwird da-bei direkt auf demin der CallbackFunktionengefülltenArray irData[..]durchgeführt.DerIndex anIndex wird dabeiumeinserhöht,dadasanersterStelle stehendeTypisierungssymbolnicht Teil der versendetenNachrichtist. DieseMethodewird für die ÜbertragungderempfangenenNachrichtenin dieRegelbasis(BehaviourPattern) dervirtuellenMachineverwendet.

3UnterGesichtspunktenderObjektorientierungwärein diesemFall auchdieVerwendungeinerKlassenvariablemöglichgewesen

75

5.5.5 Der PC Communicator

Der PCCommunicatorist Teil der Evolutionsmaschine(sieheKapitel 4) unddient zur Kommunikationmit dem RCXCommunicator . Das Objekt ist aus-schließlichfür dieVerwendungaufWindowsSystemenausgelegt,daeszurKom-munikationnichtdirektdieLnp Bibliothekeinbindet,sonderndasvorkompilierteProgrammir.exedurch einenSystemaufrufanstößt.Das ProgrammbasiertaufdenMFC undverwendetdie LNP Bibliothek für Windows. Eswird mit 4 Para-meternaufgerufen:

? Als ersteswird einederbeidenZeichenkettenRECEIVE oderSENDüber-geben.DieserParameterspezifiziert,obdie folgendenParameterdieRand-bedingungenfür denEmpfangoderdenVersandeinerZeichenkettesind.

? Der zweite Parameterspezifiziertdie serielleSchnittstelle,an der der IRTowerangeschlossenist.

? DerdritteParameterist einTimeoutwert,derspezifiziert,wanndieKommu-nikation abgebrochenwerdensoll, wennkeineNachrichtempfangenodergesendetwerdenkonnte.

? Der letzte Parametergibt den Pfad zu der Datei an, die die zu sendendeNachrichtenthält.

Der InhaltderDateiOUTMSGwird z.B.überdieersteserielleSchnittstelle8Sekundenlanggesendet,indemdasProgrammwie folgt aufgerufenwird:

ir.exeSENDcom18000OUTMSG

Entsprechendführt derAufruf

ir.exeRECEIVEcom18000INMSG

dazudas8 Sekundenlang versuchtwird eineNachrichtüberdenan der er-stenseriellenSchnittstelleangeschlossenenTower zu empfangenunddenInhaltderempfangenenNachrichtin die Datei INMSG zu speichern.Für die Versuchs-durchführungsinddieseAufrufe in denBatchDateiensend.batund rec.batge-kapselt.

76

Die MethodendesPCCommunicator dienenzum Versandeineszu bewer-tendenGenomsaufdereinenunddemEmpfangderberechnetenQualitätdesver-sendetenGenomsauf deranderen.DasObjekt implementiertdazudie folgendenöffentlichenMethoden:

@ doHandshake() Sendetsolangeein AcknowledgeSignalbis eineAntwortdesRCXCommunicator empfangenwurde.

@ getMessageStream() Liefert ein Objekt der KlasseFileinputStream zu-rück, auf denbeliebigeZeichengeschriebenwerdenkönnen.DasStream-objektwird in derFitnessfunktionderEvolutionsmaschineandie write(..)MethodeeinesGenomsübergeben,welchedenInhalt desGenomswie imKapitel 5.4.3beschriebenaufeineZeichenketteabbildet.

@ broadCastMessageStream() Versendetdie auf dasFileinputStream ge-schriebenenZeichenundwartetauf ein AcknowledgedurchdenKommu-nikationspartner.

@ receiveMessage()Empfängteine Ganzzahlund sendetein AcknowledgezumKommunikationspartner.

@ getReceivedMessage()Liefert die empfangendeZahl zurück.

Dasin derAbbildung5.7enthaltendeSequenzdiagrammbeschreibtdenNach-richtenaustauschzwischenvirtueller MaschineundderEvolutionsmaschine.DieInfrarotkommunikationrepräsentiertdabei die über das LNP Protokoll ausge-tauschtenDaten,die durchdasbeschreibeneSMWL Protokoll definiertsind.

77

Abbildung5.7:SequenzdiagrammderInfrarotkommunikation

5.6 Die DebuggerObjekthierar chie

Die Entwicklungvon ”EmbeddedSystems”,wie mobile Robotersie darstellen,ist unterEntwicklungsgesichtspunktenein besondererVorgang.DasDebuggingvon aufdemSystemlaufendenProgrammenist oft ein komplizierterVorgang,daaufgrundder häufigbeschränktenRessourcenund I/O Gerätenein direktesDe-buggingnicht möglich ist. Der RCX besitztein einzeiligesDisplay und 32 KBHauptspeicher. Da zum Zeitpunktder EntwicklungkeineentsprechendeMetho-de für ein PC gestütztesDebuggingzur Verfügungstand,musssich der Debug-Vorgangauf dasAusgebenvon Informationenbeschränken,die denRandbedin-gungenderHardwaregerechtwerden.

Zu diesemZweck wurdeeineObjekthierarchieimplementiert,die ein rudi-mentäresDebuggingaufdemRCX Bausteinermöglicht.

78

5.6.1 DasDebuggerObjekt

DasDebuggerObjektstelltdieabstrakteOberklassederbeidenObjekteRCXDe-bugger undPCDebugger. Siedeklariertdie Methoden,die von ihrenUnterklas-senzurAusgabevon Debug Informationenimplementiertundgenutztwerden.

Darüberhinausimplementiertsiedie KonvertierungsmethodenintToChar(...)undcharToInt(...) . Die Methodenimplementierendenim Kapitel 4.1.1auf Seite32 beschriebenenVorgangderAbbildungvon programminternenRepräsentatio-nender Regelsymboleauf die für die KommunikationverwendeteDarstellung.Die Abbildungvollzieht sich in 2 Schritten:Die durchdie eWord Enumerations-symbolerepräsentiertenProgrammsymbolewerdenzunächstauf ihren Integer-wert (der Index desSymbolsin der Enumeration)abgebildet.Der Integerwertwird anschließendüberdie Adressierungin einerLookup Tablein denentspre-chendenASCII Charakterkonvertiert.Die IRCommunicator ObjekteverwendendieseMethoden,um die von derEvolutionsmaschinegeneriertenProgrammefürdie InfrarotKommunikationaufeineZeichenketteabzubilden.

1. Enumeration:A EYEEYEFWD (ProgramminterneRepräsentation)2. Integerwert:5 12 127 (Zwischendarstellung)3. Zeichenkette: AEEF (ReduzierteRepräsentation)

5.6.2 DasRCXDebugger Objekt

Um einevereinheitlichteBehandlungvon Debuginformationenzu ermöglichen,wurde das RCXDebugger Objekt implementiert.Alle von der virtuellen Ma-schinegeneriertenDebuginformationenwerdendurchdenAufruf der debug(...)MethodedesRCXDebugger Objektesausgegeben.Die debug(...)Methodegibtdie übergebeneZeichenkette,eineGanzzahloderein Enumerationselement,aufder LCD Anzeigeausund wartet300 Millisekunden.Dies hat Einflussauf dieEchtzeitvorgänge(KommunikationundRegelinterpretation)desGesamtsystems.Wird die Methodedebug(...)beispielsweisezwischenzwei Regelinterpretationenaufgerufen,soführt diesdazu,dasderRoboter300Millisekundennicht auf Sen-soreingabenreagierenkann.Er würdealso”blind” gegeneineWandfahren,dadieeingestellteMotorenkonfigurationgültig bleibenwürde.Ebenfalls implementiertist die MethodeaccousticDebug(...), die einederMethodeübergebeneGanzzahlalsTon moduliertin seinerFrequenzausgibt.DieseMethodekannfür dasSigna-lisierenbestimmterZuständeverwendetwerden,eignetsich jedochwenigerfürdie InspektionvonVariabeleninhaltenoderverwendetenParametern.

79

5.6.3 DasPCDebuggerObjekt

Obwohl die EvolutionsmaschinekeineBeschränkungenim Bezugauf die Aus-gabevon Debuginformationenbesitzt,wurdeauchhier ein DebuggerObjekt im-plementiert.Der PCDebugger übernimmtdie gleicheAufgabewie derRCXDe-bugger , ist aberso implementiert,daser die übergebeneZeichenkettedirekt andascout Objekt weiterleitet.Die so eingeführteZwischenschichtsoll ein späte-res Portierender Evolutionsmaschineauf den RCX Bausteinerleichtern(sieheKapitel 7.2).

80

Kapitel 6

Die Versuchsdurchführung

Die Versuchdurchführungsoll Aufschlussüber die Anwendbarkeit genetischerVerfahrenauf Problembereicheder Robotik gebenund im speziellenklären,obdiesein angemessenerZeit zurProblemlösungführen.

Der Versuchbestehtaus4 Versuchsdurchläufen,die sich in der Konfigurati-on desVersuchaufbausunterscheiden.Die Analyseder beim Optimierungspro-zesserstelltenLogdateiensoll Aufschlussüberdie Effektivität desLernprozessesund seinenTeilprozessengeben.Im Speziellensoll sie klären, ob die gewähl-te KreuzungsmethodeeineausreichendeSystematikzumeffektivenDurchquerendesSuchraumesbietetunddie MutationsverfahreneineausreichendenStreuungderLösungsansätzegewährleisten,ohnedieHeuristikdesSuchverfahrenszuneu-tralisieren.Essoll weiteruntersuchtwerden,obdieFormalisierungderLernaufga-be(Fitnessfunktion)korrektdurchgeführtwurdeundsodasvorgegebeneProblemgelöstwerdenkann.

6.1 Die untersuchtenEigenschaften

JederVersuchdurchlaufwird eingangsdurchzwei Tabellendokumentiert,die diewichtigstenEigenschaftenundRandbedingungendesSuchverfahrensdokumen-tieren.Zur Visualisierungder Verfahrenseffektivität enthältdie Dokumentationweiter zwei Diagramme,welchedie durchschnittlicheQualität der drei bestenGenomeeinerGenerationunddie durchschnittlicheQualitätderneugeneriertenGenomemit dementsprechendenGenerationsindex in Relationsetzen.Die Gra-phenwerdendurcheineRegressionsgeradegeschnitten,um einevalideAussageüberdie VeränderungderQualitätwährendderOptimierungzu treffen.Einean-schließendeAnalyseder Graphenversuchtdie Eigenschaftender Funktionenzu

81

dokumentierenundKausal-oderKorrelations-Beziehungenzwischenihnenauf-zudecken.

6.1.1 Die Checkliste

Die VersuchewerdendurcheineReihevonEigenschaftsausprägungendokumen-tiert.Die AttributestellenzumeinendieKonfigurationsparameterdesgenetischenOptimierersundzumanderendie EigenschaftendeseigentlichenOptimierungs-vorgangsdar:

Anzahl der Iterationen über die Regelbasis

Der Parameterspezifiziertdie Dauer, die jedemGenomzur QualitätsbewertungzurVerfügungsteht.Daeinedurchein Zeitintervall definierteInterpretationsdau-er aufgrundderHardwareundBetriebssystemspezifischenKomponentenkeinenangemessenenVergleichswertliefert, wird dieserParameterin Iterationsanzahlgemessen.Der Wert gibt alsoan,wie oft die Regelbasisvon vorneinterpretiertwird (sieheKapitel4.1.2aufSeite36).ObdaszurücksetzenderRegelbasisdurchFeuerneinerRegel (Subsumption)oderdurchdie Interpretationder letztenRe-gel in der Wissensbasiserfolgt, ist hier unabhängig.Der Selbstinspektionsvor-gangkanndeshalbin seinerzeitlichenAusdehnungvariieren. Diesmussjedochhingenommenwerden,da eine durch ein Zeitintervall determinierteInterpreta-tionsdauerzu einervariablenAnzahl von Iterationsschleifenführenwürde,wasdie Vergleichbarkeit desFitnesswertesproblematischgestaltet.Genomemit ei-ner niedrigenAnzahl von Iterationsdurchläufenwürdenaufgrundder niedrigenStichprobenanzahleinenwenigeraussagekräftigenWert liefern als ein Genom,welchesdurchunverhältnismässigviele Iterationsschleifenbewertetwurde.

Anzahl der Generationen/ Grösseder Populationen

Die beidenEigenschaftsausprägungenbilden mit der Anzahl der IterationendieStellgrössen,die dieDauerdesOptimierungsvorgangsdeterminieren.Im speziel-len ist derZusammenhangzwischenderAnzahlderGenerationenunddergrößederPopulationenzuuntersuchen,dasiediealgorithmischeEigenschaftdesSuch-verfahrensunmittelbarverändern.Die DauerdesInterpretationsvorgangsist zwarebensounmittelbaran der Determinierungder GesamtdauerdesOptimierungs-vorgangsbeteiligt, verändertjedochausschließlichdie statistischeAussagekraftder Fitnesswerteund nicht die algorithmischenEigenschaftendesSuchverfah-rens.EineaussagekräftigeBewertungderQualitätist jedocheineunverzichtbareRandbedingung,die bei derFestlegungder Interpretationsdauerbeachtetwerden

82

muss.(sieheKapitel 4.1.3auf Seite37). Einevon dereigentlichenQualitätvoll-ständigunabhängigeFitnessfunktionwürdezu einemunsystematischen”herum-springen”im Suchraumführenundwürdesomiteinernicht heuristischenSuchegleichkommen.

Anzahl der Dir ektübernahmen

DerParameterbestimmtdenÜberlappungsgradzweieraufeinanderfolgenderPo-pulationen.DieserParameterist bei derbegrenztenAnzahlderGenerationenei-nesensibleStellgröße.EinerseitsmussdasVerfahrenschnellangutenLösungenfesthalten,umamEndederOptimierungnichtohneLösung”dazustehen”.Ander-seitsmussesgenugInnovationzulassen,um eineOptimierungzu ermöglichen.Wird derGradderÜberlappungzu hochgewählt, sobestehtdie Gefahr, dassdieQualitätdesbestenIndivuumsaufeinemlokalenQualitätsmaximumstagniert.

Wahrscheinlichkeit für Mutation

Die Mutation stellt einevon der systematischenSuche(sieheKapitel 4.2.4aufSeite44) entkoppelteKomponentedesSuchverfahrensdar. DerEigenschaftswertrepräsentiertdie Wahrscheinlichkeit, dasseineTeilinformationdesGenomszu-fällig verändertwird. Auch hier ist die DauerderGesamtevolution von entschei-denderBedeutung.Wird z.B. einequalitativ geringwertigeUrpopulationerstellt,sostellt die MutationeinewichtigeMethodezur KompensierungderschlechtenAusgangspositionbei der Suchedar. Wird der Mutationsgradhingegenzu hochgewählt, sokanndiesdazuführen,dassdie Kinder zweiererfolgreicherGenomeeinezugroßeDistanzim Ausprägungsraumzu ihrenElternbesitzen.

Shaftencoder

Da die von der EvolutionsmaschinegeneriertenMuster auchProgrammebein-haltenkönnen,die aufgrundihrer logischenStruktur keine Aktionsausführungermöglichen,und somit der Roboterkeine Bewegung durchführt,mussmögli-cherweiseein bewegungsmessenderSensorin die BewertungdesGenomseinbe-zogenwerden.Die InterpretationsmethodedervomShaftencodergeneriertenDa-ten, wird durchdie EigenschaftsausprägungShaftencoderin der ChecklistedesVersuchsdokumentiert.

Wahrscheinlichkeit für Kr euzung

Die Selektionswahrscheinlichkeit repräsentiertdie Wahrscheinlichkeit, dasseinGenomfür denKreuzungsvorgangausgewähltwird. Die aneinemKreuzungsvor-gangbeteiligtenGenomewerdenfür jedeKreuzungdurch”Würfeln” ermittelt.

83

Der Wert der Kreuzungswahrscheinlichkeit wird durchdasGARouletteWheel-Selector (sieheKapitel 5.4.1)Verfahrenermittelt.Dasbedeutet,dassdie Wahr-scheinlichkeit einesGenoms,aneinerKreuzungteilzunehmen,durchdie relativeHäufigkeit desFitnesswertesgemessenanderSummederFitnesswerteeinerGe-nerationist. DiesesVerfahrenschließtauchdie KreuzungschlechtererGenomenicht aus,benachteiligtdiesejedoch.DasVerfahrenlässtauf dieseWeiseKreu-zungenvon Genomenmit sichselbstzu, wasdannehereinerMutationalseinerKreuzungentspricht.

Semantikdes! Operator

Der logischeOperator! wurdeim Kapitel 4.1.1mit der Semantikder logischennandVerknüpfungbelegt.DieseSemantikgilt jedochnurfür einenTeil derdurch-geführtenVersuche.Die InterpreterkonfigurationdererstenbeidenVersucheinter-pretiertdenOperatoralseinFallbackVerhalten.Dasbedeutet,dassderPrämissen-teil unabhängigvon denbeidenenthaltenenPrämissenimmerzu wahrevaluiert.DieseSonderbehandlungstellt eineReduktiondesdurchdie Programmgramma-tik aufgespanntenSuchbaumsdar, da den in der Regel enthaltendenPrämissenkeineBedeutungmehtzugemessenwird.

Subsumption

Der Parametergibt an,ob der InterpretereineSubsumptions-ArchitekurumsetztoderdasVerhaltendurchdie InterferenzderanwendbarenRegelnentsteht(sieheKapitel4.1.2).Esgilt zuUntersuchen,obdieserArchitekturansatzfür diegestellteAufgabesinnvoll ist odernicht.Ein InterferierenverschiedenerVerhalten(wie esauchbei menschlichemVerhaltenbeobachtetwerdenkann)kannim BereichderFeinsteuerungeinesRobotersdurchaussinnvoll sein.

6.1.2 Der StammbaumdesGenoms

Der StammbaumdesGenomsstellt die Entwicklungder beidenbestenGenomeausderUrpopulationin einemgerichtetenGraphendar. JedesGenomwird durchdie Genominformationundeineihm zugeordneteQualitätdargestellt.Ist dasGe-nom dasKind zwei bestehenderGenome,so enthältder Knoten dasdurchdieKreuzungentstandeneGenomund die bewertete,mutierteVariantedesKindes.Die RichtungderPfeilestellt dabeidie Generationshierarchiedar.

84

6.2 1. Versuch

Der ersteVersuchsoll Aufschlussüberdie Anwendbarkeit dergewähltenSyste-marchitekturund der KonfigurationdesgewähltenLernverfahrensgeben.Auf-grundder begrenztenAnzahl der Versuchsdurchläufeenthaltenalle Versuchser-gebnisseeinestarkeZufallskomponente.Die AnalysederVersuchsergebnisseunddiedarausabgeleitetenRückschlüssemüssenunterdiesemGesichtspunktgesehenwerden.

6.2.1 Die Versuchsparameter

Parameter Wert

AnzahlderIterationenüberdie Regelbasis 1000AnzahlderGenerationen 10GrössederPopulationen 10AnzahlderDirektübernahmen 5Wahrscheinlichkeit für Mutation 0.5Transformationsorganisation QualitätsgewichtetesRouletteSemantikdes! Operators PrämisseevaluiertimmerzuWahrShaftencoder NeinSubsumption Nein

KonfigurationderVersuchsparameter

6.2.2 Versuchsdurchlauf 1

Checkliste

Evolutionseigenschaft Eigenschaftsausprägung

Generationin derdas 8besteGenomgeneriertwurdeDasbesteMusterist Ja(Selbstkreuzung)auseinerKreuzungentstandenSteigungderQualitätderKinder 3,5SteigungderQualitätderdrei Besten 18,7

EigenschaftendesSuchprozesses

85

GraphischeAnalyse

86

Ergebnisdiskusion

BeideGraphenbesitzeneinesteigendeRegressionsgerade.DaeinÜberlappungs-gradvon 5 gewählt wurde,wird die Qualitätder bestendrei Genomewie zu er-wartendurcheinemonotonsteigendeFunktionrepräsentiert.Positiv zu bewertenist der eindeutigeAnstieg der Qualitätder neugeneriertenGenome,wasfür dieverwendeteHeuristikdesOptimierungsverfahrenspricht.Dasheißt,dasstrotzderzufälligenKomponenten1 sich die heuristischeEigenschaftdesSuchverfahrensdurchsetzenkannunddie steigendeQualitätderGesamtpopulationsichnichtnuraufeinBewertenundSelektierenzurückführenlässt.AndererseitsenthältdasVer-fahrengenugzufällige Anteile, um auchscheinbarschlechteGenomemit in dieBerechnungdesalsnächsteszubewertendenGenomseinzubeziehen.DasVerfah-ren läuft alsonicht Gefahr, sich in lokalenMaxima festzufahren,wie esdie HillClimbing Verfahrentun können.

Die QualitätssprüngebeiderGraphenkorrelierenim Bezugauf ihrenGenera-tionsindex. Die auftretendenWechselzwischenübermehrereGenerationenkon-stantbleibenderQualitätsplateausder Bestenund demdannrelativ starken An-stieg derQualitätkannseineUrsacheim ErreicheneinesbestimmtenVerhaltens-typ haben.Das bedeutet,dassein Programmwas z.B. blind gegen eine Wandrennt, natürlich eine weitausgeringereFitnessbesitzt(nämlich0) als ein Pro-gramm,wassicheinfachim KreisdrehtundsoeinenFitnesswertgrößer0 besitzt.AusdemVerfolgenderLinie resultiertlogischerweiseeinewiederumdeutlichhö-hereFitnessalsauseinemsichim Kreis drehen.Da esAufgrunddesbeschränk-ten SuchraumswenigSpielraumfür Lösungenzwischendiesendrei Typengibt,wird dasbesteGenomerstdannersetzt,wennein Musterdesjeweils besserenVerhaltenstypgefundenwurde,welchesdannwiederumgleicheinenerheblichenAnstieg der Qualitätzur Folge hat.DieseBegründungist jedochals HypothesezubegreifenundkönnteerstdurcheineausreichendeAnzahlvonStichprobenbe-wiesenwerden.

Etwasandersverhältessich mit der Qualitätder Kinder, da hier vermehrtesAuftretengleicherLösungstypenzueinerErhöhungdesDurchschnittswertführensollte.Die Funktionist nichtmonotonsteigend,sondernzeigtstarkeSchwankun-genim Abbildungsraum.Die abgeleiteteRegressionsgradezeigt jedochdie posi-tive TendenzdesGesamtverlaufs.DasAuf und Ab der Funktionbegründetsichwiederumin dervomZufall beeinflusstenTransformationundderBeschränktheitdesProblemraums.LeichteVeränderungeneinesgutenMusterskönnenschonei-ne erheblicheQualitätseinbussenachsich ziehenund umgekehrt. Entsprechend

1AuchdersystematischeTeil desVerfahrensist vom Zufall beeinflusst

87

kanndieQualitätderKinderstarkvariieren.Die zufälligeKomponentederKreu-zungwird jedochmit zunehmenderQualitätder 5 Bestenaufgeweicht und lässtsoeinentendenziellenAnstieg derdurchschnittlichenQualitätzu.

StammbaumdesbestenGenoms

Abbildung6.1:StammbaumderbeidenbestenGenomedes1.Versuch

DerGraphdesVersuchsdokumentiertdiepositivenAuswirkungendeshohenÜberlappungsgradsdesVerfahrens.Obwohl dasbestePattern(mit einerFitnessvon 286) erst in der 7. Generationgeneriertwird, ist esein direkterNachfahreeinesderin derUrpopulationgeneriertenGenome.Die DirektübernahmederBe-stenermöglichtes dem Verfahren,ein erfolgreichesGenomimmer wieder mitanderen,neugenerierten,Genomenzu kreuzen.DemVerfahrenbleibt alsomehrZeit, verschiedeneVariationenguterGenomeauf ihreQualitäthin zuüberprüfen.

DerVorfahredesBestenkreuztsichalserstesmit sichselbst,wasjedochkei-neVeränderungnachsichzieht.DerentscheidendeModifikationsschrittwird erstdurchdie anschließendeMutation geleistet.Die Mutationsmethodetauschtden

88

logischenOperatorder letztenRegel mit demderersten.Aus logischerSichtbe-deutetdieserSchritt keineModifikation der Semantik.Warum die Qualität desGenomtrotzdemum ein Vielfacheserhöhtwird, kann unter anderemmit zweiHypothesenerklärtwerden.

Zum einenwird die Interpretationder Prämissenseriell und für jedeRegelerneutdurchgeführt.2 Dies könntedurch eineModifikation desInterpretations-vorgangsumgangenwerden.Würdendie Sensorennur einmalig,amAnfangderInterpretationderRegelbasisausgelesen,würdenalle Regelnmit derselbenFak-tenbasisarbeiten.DerGrenzbereichzwischenLinie undweißerFlächeist einBei-spieldafür, dasseineRegel, die dieselbePrämissedurchein logischesOderver-knüpft, eherangewendetwird alseineRegel, die diesdurcheinenUnd Operatortut.

Zum anderenkönnteaucheinefehlerhafteFitnessfunktioneinesolcheQuali-tätsschwankunghervorrufen.Obwohl die vom SystemgeneriertenLösungenan-wendbarwarenunddie QualitätderKinder einesteigendeTendenzzeigte,kannz.B. ein mit der Startpositionder RoboterskorrelierterFitnesswertnicht ganzausgeschlossenwerden.Der Eintrittswinkel desRobotersauf die schwarzeLiniekannEinflussauf dasVerhaltendesRobotershaben.Anderseitsist die steigendeQualitätderKinder ein Zeichenfür die HeuristikdesSuchverfahrens,wasdieseHypotheseeherunwarscheinlicherscheinenlässt.

Eineebenfalls zu beobachtendeEigenschaftist, dassdasKind zweierGeno-meoft einenmit denElternkorreliertenQualitätswertbesitzt.Bei vielenKindernist zu beobachten,dassihr Qualitätswertim von derQualitätderElterndefinier-ten Intervall liegt odermanchmalsogarwie eineMittelwertbildunganmutet.Soentstehtz.B. daszweitbesteGenomdirekt ausdembestenGenom.Da esmit ei-nemqualitativ schlechtenGenomgekreuztwird, verliertesjedochfasteinDrittelseinerQualität.DieserEffekt sei jedochim Hinblick auf die geringeAnzahlderVersuchezunächstdemZufall zuzuordnen.

2DasbedeutetausSichteinesRegelsystems,dasssichdieFaktenbasiszwischenzweiRegelin-terpretationenverändernkann

89

6.2.3 Versuchsdurchlauf 2Evolutionseigenschaft Eigenschaftsausprägung

Generationin derdas 7besteGenomgeneriertwurdeDasbesteMusterist JaauseinerKreuzungentstandenSteigungderQualitätderKinder 1,13SteigungderQualitätderBesten 2

EigenschaftendesSuchprozesses

90

GraphischeAnalyse

91

Ergebnisdiskussion

Der zweiteVersuchsdurchlaufmit dergenanntenVersuchskonfigurationzeigtdiegleichenEigenschaftenwie der erste,mit dem Unterschied,dassbeideFunkti-onsgrapheneineweitausgeringeredurchschnittlicheSteigungbesitzen.DasVer-fahrenstartetbereitsauf einemsehrhohenQualitätsniveau.Wie bereitsin derAnalysedes1. Versuchsdurchlaufbeschrieben,könnendie Musterim Bezugaufihre Problemlösungsstrategie in nur 3 Klasseneingeteiltwerden.Es ist für dasVerfahrenalsosehrschwer, qualitativ höherwertigeAlternativenzu bereitsgutenMusternzuentwickeln.Diesschlägtsichin beidenGraphennieder. DieLernkurvediesesSystemsscheintbei dieserAufgabenstellungin hohenQualitätsbereichenzustagnieren.

6.2.4 Schlussfolgerungen

Die gewählteVersuchkonfigurationscheintdenAnforderungenderProblemstel-lung zu genügen.DasVerfahrengeneriertein drei von vier VersuchsdurchläufenMuster, die der Linie folgten. Die im Kapitel 4.1.3angeführteProblematikdes”stehenbleiben” führte im nicht erfolgreichenDurchlaufzu einer falschenBe-wertungder Muster. Logischerweisewird ein überder Linie stehenderRobotermit einerhohenQualitätbewertet.Die Fitnessfunktionist alsotrotz desüberwie-gendenAnteils anerfolgreichenVersuchenicht robustunddamitfalsch.

6.3 2. Versuch

Der im zweitenVersuchverwendeteInterpretersetztim UnterschiedzumerstenVersucheine Subsumptions-Architekturum (sieheKapitel 4.1.2 auf Seite36).DieseModifikationsoll Aufschlussdarübergeben,inwieferneineSubsumptions-ArchitektureinemerklicheSteigerungderLerneffektivität nachsichzieht.DadieFitnessfunktionkeineBewertungeinzelnderRegeln durchführt,sondernimmerdie gesamteRegelbasisbewertetwird, ist jedochkeineerheblicheVeränderungderLerneffektivität zuerwarten.

92

6.3.1 Die Versuchsparameter

Parameter Wert

AnzahlderIterationenüberdie Regelbasis 1000AnzahlderGenerationen 10GrössederPopulationen 10AnzahlderDirektübernahmen 5Wahrscheinlichkeit für Mutation 0.5Transformationsorganisation qualitätsorientiertesRouletteνSemantikdes!Operators PrämisseevaluiertimmerzuWahrShaftencoder NeinSubsumption Ja

KonfigurationderVersuchsparameter

6.3.2 ChecklisteEvolutionseigenschaft Eigenschaftsausprägung

Generationin derdas 8besteGenomgeneriertwurdeDasbesteMusterist JaauseinerKreuzungentstandenSteigungderQualitätderKinder 3,7SteigungderQualitätderBesten 6,05

EigenschaftendesSuchprozesses

93

GraphischeAnalyse

94

Ergebnisdiskussion

Die durchdieAnwendungderSubsumptions-ArchitekurdurchgeführteModifika-tion derFitnessfunktionführt zueinemdeutlichgeringeremabsolutenFitnesswertderGenome.DadieInterpretationsdauerdurchdieAnzahlderdurchgeführtenIte-rationenüberdieRegelbasisdeterminiertwird unddieSubsumptions-Architekturdie IterationbeieinerangewendetenRegelabbricht,werdenim Durchschnittwe-niger Erfahrungengesammelt.Gute Verhaltensmuster, die sich die meisteZeitüberder Linie befinden,könnenbei einerhöherenStichprobenanzahlihre guteQualitätdurcheinenhöherenabsolutenQualitätswertbelegen.Diesist aufdieEi-genschaftzurückzuführen,dassmit jederinterpretiertenRegeleinErfahrungswertandieFitnessübergebenwird. Um eineabsolutvergleichbareFitnesszuerhalten,wäreesnotwendig,dieFitnesserstmit BeendenderIterationübereinekompletteRegelbasismit einemErfahrungswertzuspeisen.

Die SteigungbeiderGraphenist ähnlichwie in denerstenbeidenVersuchenpositiv. Obwohl derabsoluteWert derSteigungauf GrundderArchitekturunter-schiedevariertkannvonvergleichbarenVersuchsergebnissengesprochenwerden.

Schlussfolgerung

Die Subsumptions-ArchitekturbietetbeidergewähltenQualitätsbewertungkeinedeutlichgesteigerteLerneffektivität.DieswäreerstbeieinerRegelbezogenenBe-wertungzuerwartengewesen.Die QualitäteinesLernverfahrenshängtalsonichtnur von der verwendetenArchitektur zur Verhaltensgenerierung,sondernauchvonderFähigkeit dasVerhaltenentsprechendgranularzubewertenab. OhnedemLernverfahreneineentsprechendeMethodezurdetailliertenBewertungunddamitzueinerspeziellerenModifikationzurVerfügungzustellen,scheintkeineSteige-rungderLerneffektivität möglich.

6.4 3. Versuch

Der dritte Versuchsoll die in denerstenVersuchenfestgestellteFehlerhaftigkeitderFitnessfunktiondurchdenEinsatzeinesShaftencoderskorrigieren.DerShaf-tencoderwird ausschließlichdazuverwendet,festzustellen,ob sich der Agentüberhauptbewegt hat.Wird ein definierterWert von der Summeder durchdenShaftencodergeliefertenSensordatennichtüberschritten,gilt dasMusteralsnichtanwendbar(sieheKapitel4.1.3).Zusätzlichwurdederin denerstenVersuchenalsDefault-VerhaltendefinierteOperator! nun als nandVerknüpfunginterpretiert,

95

waseineVergrößerungdesSuchraumsdarstellt,dabeiderInterpretationalsFall-backVerhalten,die PrämissenderRegel keinenEinflussauf dasVerhaltenhattenundsomitnicht zumeffektivenSuchraumgezähltwerdenkonnten.

6.4.1 Die Versuchsparameter

Parameter Wert

AnzahlderIterationenüberdie Regelbasis 1000AnzahlderGenerationen 10GrössederPopulationen 10AnzahlderDirektübernahmen 5Wahrscheinlichkeit für Mutation 0.5Transformationsorganisation qualitätsorientiertesRouletteSemantikdes! Operators nandShaftencoder JaSubsumption Ja

KonfigurationderVersuchsparameter

6.4.2 ChecklisteEvolutionseigenschaft Eigenschaftsausprägung

Generationin derdas 10besteGenomgeneriertwurdeDasbesteMusterist JaauseinerKreuzungentstandenSteigungderQualitätderKinder 1,03SteigungderQualitätderBesten 3,5

EigenschaftendesSuchprozesses

96

GraphischeAnalyse

97

Ergebnisdiskussion

Die durchschnittlicheQualitätder Kinder liegt wiederumdeutlichunterder deszweitenVersuchs.Die geringeQualitätkanndurchdenEinsatzdesShaftencoderserklärtwerden.Zum einenwerdenMuster, die nicht dasgeforderteMinimum anBewegunggenerieren,auf0 gesetzt.Esist zubeobachten,dasswesentlichmehr0Kandidatenin derMengederneugeneriertenGenomeauftauchen.DieshateineReduzierungdesQualitätsdurchschnittsderKinderzurFolge.Zumanderenfallendie hochbewertetenaberfalscheingeschätztenGenomeweg. Der Qualitätsgraphderbestendrei Genomeist mit demdeszweitenVersuchsvergleichbar. Auchdasist logisch,dadie erfolgreichenMusternicht von derShaftEncoderRegel beein-flusstwerden.

DasVerfahrengeneriertein jedemVersuchsdurchlauftrotz der ErweiterungdesSuchraumeseinanwendbaresMuster. DieProblematikderfalschenFitnessfunk-tion wird durchdieAnwendungdesShaftencoderskompensiert.Die Fitnessfunk-tion ist alsorobusterundrichtigeralsdiedererstenbeidenVersuche.

6.4.3 Schlussfolgerungen

Die erfolgreicheKorrekturder Fitnessfunktionhat dengewünschtenEffekt aufdie QualitätdesGesamtverfahrensgehabt.Ein Shaftencoderscheintbei der Be-wertungvon Vorgängen,die einefreie BewegungdesRobotersbeinhalten,not-wendig.Auch dieserVersuchsdurchlaufzeigt jedoch,dassdasVerfahrenfür dieProblemstellunganwendbarist.

6.5 4. Versuch

Der vierteVersuchsoll Aufschlussdarübergeben,ob dasOptimierungsverfahrenauchmit einemreduziertemZeitaufwanderfolgreichdurchgeführtwerdenkann.Als Stellgrößesoll hier die DauerdesInterpretationsvorgangsdienen.Entspre-chenddazusoll die AnzahlderIndividuenpro Populationvergrößertwerden,umzu überprüfenob sich eineErhöhungder VarianzerfolgreicherGenomepositivauswirken(sieheKapitel 4.2.2aufSeite42) .

98

6.5.1 Die Versuchsparameter

Parameter Wert

AnzahlderIterationenüberdie Regelbasis 700AnzahlderGenerationen 10GrössederPopulationen 20AnzahlderDirektübernahmen 5Wahrscheinlichkeit für Mutation 0.5Transformationsorganisation Die besten5 generieren5 KinderShaftencoder SummederShaftencodermuss

über50 liegenumgewertetzuwerden

KonfigurationderVersuchsparameter

6.5.2 ChecklisteEvolutionseigenschaft Eigenschaftsausprägung

Generationin derdas 9besteGenomgeneriertwurdeDasbesteMusterist JaauseinerKreuzungentstandenSteigungderQualitätderKinder 1,9SteigungderQualitätderBesten 3,0

EigenschaftendesSuchprozesses

99

GraphischeAnalyse

100

Ergebnisdiskussion

AuchhierzeigensichdiebeidenvorhergehendenVersuchenbeobachtetenEigen-schaftender Kurven.DasVerfahrenscheintauf denerstenBlick erfolgreichzusein.DasgeneriertebesteMusterlöstdasProblemjedochnicht.Die Fitnessfunk-tion arbeitetdurchdieReduktionderInterpretationsdauernichtmehrkorrekt.DasbestePatterngenerierteineinfachessichumdieeigeneAchsedrehen.DerGrund,warumdiesesPatternsichgegenübermöglichemLinefollow Verhaltendurchset-zenkann,liegt in derTatsache,dassdasLinefollow ProblemnichtgenugZeit hat,um seineQualitätauszuspielen.Viele derLinefollow MusterfahreneineweicheLinks oderRechtskurve,wennsieaufeineweißeFlächestoßen.StehtderRoboterin derAusgangskonfigurationungünstig,dauerteseinengewissenZeitraum,bisder Roboterin einemWinkel auf die Linie trif ft, die ein sauberesVerfolgenderLinie ermöglicht(sieheKapitel 4.1.3auf Seite37). Da die Interpretationbei dergewähltenVersuchsdauerjedochschonvorherabbricht,sinddie drehendenMu-sterbeidieserFitnessfunktionim Vorteil. Diesbelegt, dasseinestatistischausrei-chendeStichprobenzahl(alsodie Dauerder Interpretation)mit zu der korrektenFormalisierungderQualitäteinesdurcheinenAgentengeneriertenVerhaltensge-hört.

Aus verfahrenstechnischerSicht hat die Vergrösserungder Populationdazugeführt,dasderQualitätsgraphderKinder keinenSchnittpunktmit derX-Achsemehrbesitzt.Durch die GrößederPopulationist die Wahrscheinlichkeit minde-stensein Musterdassichbewegt undnicht gegeneineArealbegrenzungfährt zugenerierengestiegen.

6.5.3 Schlussfolgerungen

Der Versuchzeigt, dasseine fehlerhafteFormalisierungder LernaufgabenichtanhandderEffizienzdesSuchprozessesbemerktwerdenkann.Obwohl derOpti-mierungsvorgangansichrichtig underfolgreichist, wird in dieserVersuchskonfi-gurationamZiel vorbeigelernt.Würdedie Interpretationsdauerweiterreduziert,sowürdederQualitätswertzunehmendanAussagekraftverlieren(von Zufall be-stimmtwerden)undsomitauchdie von ihm abhängendeLerneffektivität senken.Da in diesemFall dieReduzierungderInterpretationsdauereineModifikationderLernaufgabeimplizierte,lerntedasSystemausalgoritmischerSichterfolgreich.

101

Kapitel 7

Zusammenfassung& Aussichten

7.1 Zusammenfassung

Die vorliegendeArbeit dokumentiertdie Architektureinesadaptiven,verkörper-tenAgentensystems.Die Verkörperungwird dabeidurcheinenmobilenRoboterrepräsentiert.Die Adaptionsfähigkeit wird durchein genetischesVerfahrenrea-lisiert, welchesdasVerhaltendesAgentenhinsichtlich seinesZieles optimiert.Der verwendeteRoboterbasiertauf dem im Kapitel 5.1.1näherbeschriebenenLEGOB MINDSTORMSTMRoboticsInventionSystemTMundstelltdamiteineko-stengünstige,einfacheund damit in einigenAspektenbeschränktePlattformfürdie UmsetzungderVerkörperungdar.

Der Versuchzeigt,dassgenetischeVerfahrengrundsätzlichin derLagesind,dasVerhaltenmobilerRoboterauf eineWeisezu modifizieren,dassdiesein derLagesind,einfacheAufgabenzu lösen.Eszeigtsich,dasdasVerfahrenmit einergeringenAnzahlvonSelbstinspektionsvorgängeneineLösungfür dasbeschriebe-neProblemfindet.Die gewähltePopulationsgrößevon10unddiegeringeAnzahlder Generationen(ebenfalls 10) gebendemVerfahrengenugSpielraumum an-wendbareLösungenfür dasgegebeneProblemzuentwickeln.

Eszeigt sichweiter, dassdie Formalisierungder Lernaufgabe(demZiel desAgenten)einProzessist, dermit Sorgfalt durchzuführenist. Ein Fehlerin diesemProzesskanndenLernerfolgdesAgentenmindernoderverhindern.Die meistenanderenParameterdesgenetischenVerfahrens(Populationsgrößen,Selektions-undKreuzungsstrategien)sindzwar ebensorelevantunddeshalbkorrektzuwäh-len, beeinflussenjedochoft eherdie PerformanzdesLernprozessesals seinengrundsätzlichenErfolg.

102

DasdokumentierteSystemstellt ein in C++ implementiertesFramework fürdie Erstellungvon adaptiven,verhaltensbasiertenAgentendar. Die Lernkompo-nenteist dabeidurcheinedefinierteSchnittstelle(demKommunikationsmodul),vom RestdesAgentengetrenntund so austauschbar. Da alle KomponenteninC++ realisiertsind und bis auf die API’s der Roboterbasisund desgenetischenOptimierersnur wenigeplattformabhängigeFunktionenverwendetwerden,soll-te durchdenEinsatzentsprechenderCrossCompilerdie Portierungauf anderePlattformenmit geringemAufwandrealisierbarsein.

7.2 Kritische Würdigung & Aussichten

Die genetischenVerfahrenformalisierendie Wechselbeziehungzwischenbiolo-gischenLebewesenundihrerUmwelt.DerdokumentierteVersuchimplementiertdieseformalisiertenWechselbeziehungenauf Basisvon verkörpertenAgenten.Die Aufgabenstellungwar in ihrer Komplexität jedochstark begrenzt,um denAufwandder Implementierunggeringzu halten.EinebeliebigeErweiterungderAufgabenstellungdurchdie HinzunahmeweitererSensoren,MotorenundAktio-nenist durchdie zeitintensiveQualitätsbewertungbegrenzt.

DasimplementierteSystem(im speziellendievirtuelleMaschineundihre In-terpretersprache)ist für die OptimierungdesVerhaltensvon reaktiven Agentenausgelegt. Eine Erweiterungum einemodellbasierteVerhaltensbildungist zwardurchausrealisierbar, würdejedocheineerheblicheModifikationderentsprechen-denObjektenachsichziehen.

EinemöglicheErweiterungdesSystemskönntediePortierungderEvolutions-maschineauf denRoboterbeinhalten.Die InfrarotkommunikationwäredannaufdasAustauschender genetischenInformationenund ihresQualitätswerteszwi-schenverschiedenenAgentenbeschränkt.Die AgenteneinerPopulationwürdendeneigenenQualitätswertversendenunddenderanderenEmpfangen.Die Aus-wahl desKreuzungspartnerswürdedannvon denAgentenselbständigdurchge-führt werden.Eswürdeein verteiltesOptimierungsverfahrenentstehen,bei demdas”Fortpflanzungs-Verhalten”dereinzelnenAgentendenOptimierungsprozessdeterminierte(vergleicheInteraktionistischeWissensrepräsentationin Kapitel2.2)

103

Die genetischenVerfahrenstellenein Klassevon Optimierungsverfahrendar,derenGrenzennur schwerabschätzbarsind.Obwohl sichdie Anwendungendie-ser Verfahrenheutzutageauf einfache,sehrspezielleAufgabenbegrenztzeigtsich,dasdasPrinzipderEvolution in derLageist erstaunlicheAdaptionsleistun-genzuerbringen.

Bei einerentsprechenddetailiertenModellierungderProblemstellungundei-nerausreichendenAnzahlvonRessourcen(Zeit, SpeicherundProzessorleistung)kannwahrscheinlichjedesformalisierbareProblemmit einemsolchenOptimierergelöstwerden,vorrausgesetzt,esstehteineMöglichkeit zur Selbstinspektionzurverfügung.

Esgilt zuprüfen,obsichbeiEinbettungeinesAgentenin einekomplexeUm-welt, wie etwa natürlicheSystemesie darstellen,allgemeingültige Fitnessfunk-tionen für komplexe Aufgabenstellungenformulierenlassen.Im insbesonderenist dieModellbildung,diebeigenetischenVerfahrendurchdieDefinitiondesGe-nomesunddemdie GenominformationinterpretierendenInterpretergegebenist,ein Prozess,der abhängigvon der gegebenenAufgabenstellungeineerheblicheVorleistungdesProgrammierersbenötigenkann.

104

Abbildungsverzeichnis

1 N.A.S.A. RoboterSojourner . . . . . . . . . . . . . . . . . . . . 6

1.1 Geheimagent007 . . . . . . . . . . . . . . . . . . . . . . . . . . 91.2 TaxonomiederAgenten. . . . . . . . . . . . . . . . . . . . . . . 12

2.1 Die Populationsüberführungundihre Teilprozesse. . . . . . . . . 202.2 Genominformationenin einemDNA-Strang . . . . . . . . . . . . 242.3 Die Urpopulationstreutdie Lösungsansätze. . . . . . . . . . . . 252.4 DasSelektionsverfahrenverwirft die ”Verlierer” . . . . . . . . . . 262.5 Die selektiertenGenomebildendie neuePopulation. . . . . . . . 27

4.1 DerVersuchsaufbau. . . . . . . . . . . . . . . . . . . . . . . . . 304.2 GrobkonzeptdesAgentensystem. . . . . . . . . . . . . . . . . . 314.3 Informationsflussin dervirtuellenMaschine. . . . . . . . . . . . 324.4 SequenzdiagrammderBewertungeinerRegelbasis . . . . . . . . 404.5 GenomdesProgrammes+ CEEF+CNNL . . . . . . . . . . . . . . 424.6 Unterbaumkreuzung . . . . . . . . . . . . . . . . . . . . . . . . 454.7 SwapnodeMutation . . . . . . . . . . . . . . . . . . . . . . . . 46

5.1 DerRCX Baustein . . . . . . . . . . . . . . . . . . . . . . . . . 505.2 Die verwendeteRoboterkonfiguration . . . . . . . . . . . . . . . 515.3 DerVersuchsaufbau. . . . . . . . . . . . . . . . . . . . . . . . . 525.4 AusnahmebehandlungnachKollision . . . . . . . . . . . . . . . 595.5 Die ObjektederGAlib . . . . . . . . . . . . . . . . . . . . . . . 635.6 Die 3 NachrichtenTypen . . . . . . . . . . . . . . . . . . . . . . 735.7 SequenzdiagrammderInfrarotkommunikation. . . . . . . . . . . 78

6.1 StammbaumderbeidenbestenGenomedes1.Versuch . . . . . . 88

105

Versicherungüber Selbständigkeit

Hiermit versichereich, daßich die vorliegendeArbeit im SinnederPrüfungsord-nungnach§24(5)ohnefremdeHilfe selbständigverfaßtundnurdieangegebenenHilfsmittel benutzthabe.

Ort, Datum UnterschriftdesStudenten

106

Literatur verzeichnis

1 Rover Telecommunications Link Analysis - URL:http://mars.jpl.nasa.gov/MPF/rovercom/itworks.htmlrover-radio - Zugriffsda-tum: 01.09.2002

2 FrauenhoferInstitut für AutonomeIntelligente Systeme:Unsere Roboter -URL: http://www.ais.fhg.de/- Zugriffsdatum:01.09.2002

3 Robocup2002 Homepage - URL: http://www.robocup.org/ - Zugriffsdatum:01.09.2002

4 OSHERENKO, Alexander:Designund ImplementierungeinesMultiagenten-systemszurRobotsteuerung- URL: http://www.informatik.fh-hamburg.de/ro-bots/papers.html-Zugriffsdatum:01.09.2002

5 BURKHART, H.-D. : Software-Agentenin: GÖRZ,G.; ROLLINGER, C.-R. ;SCHNEEBERGER,J. (Hrsg.):Handbuch der KünstlichenIntelligenz, S. 981- 986. 3. Auflage,Oldenbourg Wissenschaftsverlag,München,2000 - ISBN3-486-25049-3

6 WROBEL, Stefan : MaschinellesLernenin: GÖRZ,G.; ROLLINGER, C.-R.; SCHNEEBERGER,J. (Hrsg.): Handbuch der Künstlichen Intelligenz, S.519.3.Auflage,Oldenbourg Wissenschaftsverlag,München,2000 - ISBN 3-486-25049-3

7 DILGER, Prof. Dr. Werner: Repräsentationvon Wissenund Annahmen in:Multiagentensysteme, Vorlesungsskriptzum Wintersemester2001/2002,S. 5.TechnischeUniversitätChemnitz

8 BROOKS,R.A.Intelligencewithoutreasonin: ProceedingsIJCAI-91 , S.569-595,1991.

9 BROOKS,R. A. (1991)Intelligencewithoutrepresentationin: Artificial Intell-gence, S.139-159,1991.

107

10 VOLMER, Prof. Dr. Reinhard : Entwicklung und Anwendungvon Künstlichen Neuronalen Netzen - URL: http://www.fh-muenster.de/ZWEI/knn/knn_96_3.html- Zugriffsdatum:01.09.2002

11 BROOKS,R.A.: How to build completecreaturesratherthanisolatedcogni-tivesimulators in: K. VanLehn(ed.):Architecturesfor Intelligence, S.225-239,LawrenceErlbaumAssosiates,Hillsdale,NJ,1991.

12 BAUM, Stephen;GASPERL,Michael; HEMPEL, Ralph;VILLA, Luis: Ex-tremeMindstorms(anAdvancedGuide to Lego Mindstorms).Berkley (CA),USA:APress2000.- ISBN1-893115-84-4

13 TheC++ ResourcesNetwork- URL: http://www.cplusplus.com- Zugriffsda-tum: 01.09.2002

14 WALL, Matthew : A C++ Library of GeneticAlgorithmComponents- URL:http://lancet.mit.edu/ga/- Zugriffsdatum:01.09.2002

15 LugNet Community RCX Programming - URL:http://news.lugnet.com/robotics/rcx/- Zugriffsdatum:01.09.2002

16 ASH, Mike : LegOS Network Protocol - URL:http://legos.sourceforge.net/HOWTO/x405.html- Zugriffsdatum:01.09.2002

108

Anhang A

VersuchsLogs

Die vomgenetischenOptimierergeneriertenLogdateienstellendieGrundlagederVerfahrensanalysedieserArbeit dar. Die denVersuchsdurchführungenzugeord-netenLogdateienbefindensich im logfilesVerzeichnisauf der beigefügtenCD.Die Logdateiendokumentierendie in denPopulationenenthaltenenIndividuen,die ihnenzugeordneteQualitätsowie die vom OptimiererdurchgeführtenTrans-formationsvorgänge.Das folgendeBeispiel dokumentiertdie dabeiverwendeteStrukturierungderLogdateien:

Die RegelbaseneinerPopulationwerdenbewertet,wobeiderhinterder -›ZeichenkettestehendeWert die FitnessdesMustersdarstellt:

Testnew Pattern: + DEE›+&EE‹+!EE‹+-› 0Testnew Pattern: + DNE‹+&EEF+DEE‹+-› 20Testnew Pattern: + DEEL+&EN‹+&EE›+ -› 12Testnew Pattern: + DEE‹+!NEL+DNN‹+ -› 5Testnew Pattern: + DENL+!NNL+&EN‹+ -› 35Testnew Pattern: +&EN›+ DNE›+ DEE›+-› 0Testnew Pattern: + DNNR+&EEL+&NER+ -› 65Testnew Pattern: +!EE‹+&EE›+!NEF+-› 0Testnew Pattern: + DEEF+&ENF+DNE›+ -› 0Testnew Pattern: +&EE‹+ DNER+DNN‹+ -› 51

Die Erstellungder Generationmit demamEndedesSatzesspezifiziertenIndex wird durchgeführt.

forgingnext Generationwhich is number:0

109

Die Transformationderzur KreuzungherangezogenenGenomewird durchgeführt

++++++++++++++++++++++++++++++++++++++++Crossover initialized++++++++++++++++++++++++++++++++++++++++

Die beidenzurKreuzungverwendetenIndividuuenwerdendokumentiert.

*********************************** ******IndividualA: + EEE‹+!NEL+ ENN‹+*********************************** ******IndividualB: + ENNR+&EEL+&NER+*********************************** ******

Die zurKreuzungverwendenKnotender beidenIndividuuenwerdendokumentiert

* Node10 with 5*********************************** ******

Die Mutationder durch die KreuzungentstandenenKinder wird dokumentiert

*********************************** ******Mutatingchildsof Crossover*********************************** ******Child: + EEE‹+!NEL+&EEL+&NER+*********************************** ******

* swappingfrom 9to9

* swappingfrom 0to15

* swappingfrom 13to13

* swappingfrom 13to8

* swappingfrom 14to14*********************************** ******

110

Anhang B

Sourcecode

Der SourcecodedesImplementiertenSystems,ist in derbeigefügtenCD enthal-ten.DasVerzeichnisssourcecodeenthältdieUnterverzeichnissevirtuelleMaschi-neundevolutionsMaschine , indemdie entsprechendenSourcecode-Dateienent-haltensind.

Die Dateienkönnennur im Zusammenhangmit derentsprechendenEntwick-lungsumgebungkompiliert werden.Dasbedeutet,dasdie DateiendesVerzeich-nissvirtuelleMaschine einefunktionierendeLegOsEntwicklungsumgebungunddie DateiendesevolutionsMaschineVerzeichnissdie BibliothekenderGAlib be-nötigen.FürnähereInformationenüberdieInstallationdieserFremdkomponentenseiaufdie aufderCD enthalteneDokumentationverwiesen.

111