Selbstständiges Erlernen einer Vier-gewinnt-Spielstrategie durch den NAO-Roboter unter Verwendung künstlicher neuronaler Netze

Größe: px
Ab Seite anzeigen:

Download "Selbstständiges Erlernen einer Vier-gewinnt-Spielstrategie durch den NAO-Roboter unter Verwendung künstlicher neuronaler Netze"

Transkript

1 Fachbereich Elektrotechnik, Maschinenbau und Technikjournalismus (EMT) Studiengang Elektrotechnische Systementwicklung Master-Thesis zur Erlangung des akademischen Grades Master of Engineering (M. Eng.) Selbstständiges Erlernen einer Vier-gewinnt-Spielstrategie durch den NAO-Roboter unter Verwendung künstlicher neuronaler Netze Autor: Florian Kopelke Gartenstr Bonn florian.kopelke@gmx.net Matr.-Nr Erstbetreuer: Zweitbetreuer: Prof. Dr. Wolfgang Joppich Prof. Dr.-Ing. Marco Winzker Sankt Augustin, den 11. Oktober 2013

2 Tag der Abgabe: 11. Oktober 2013 Tag des Kolloquiums: 28. Oktober 2013 Aktualisierte Version vom 7. Dezember 2013 Das vorliegende Dokument wurde mithilfe des TEX-Makropakets L A TEX 2ε ( gesetzt.

3 Eidesstattliche Erklärung Ich erkläre hiermit an Eides statt, dass ich die vorliegende Arbeit selbstständig und nicht unter Verwendung anderer als der angegebenen Literatur angefertigt habe. Aus fremden Quellen (einschließlich elektronischer Quellen) entnommene Gedanken habe ich ohne Ausnahme als solche kenntlich gemacht. Diese Arbeit hat in gleicher oder veränderter Form bisher keiner Prüfungsbehörde vorgelegen. Sankt Augustin, den 11. Oktober 2013 (Florian Kopelke)

4

5 Zusammenfassung Die Anzahl der Roboter, denen wir in unserem täglichen Leben begegnen, wächst stetig. Die Ursache hierfür ist unter anderem der schnell wachsende Markt der Serviceroboter für den privaten Haushalt. Hierzu zählen beispielsweise Roboter, die auf Tätigkeiten im Haushalt und die Gartenarbeit spezialisiert sind. Diese putzen Fenster, reinigen die Böden oder mähen den Rasen. Weiterhin sorgt die steigende Zahl der Roboter in der Pflege und im medizinischen Bereich dafür, dass wir zunehmend öfter mit ihnen in Kontakt treten. Der Zweck der Serviceroboter ist, den Menschen zu entlasten, indem sie regelmäßig anfallende Aufgaben übernehmen. Anstatt nur der Bequemlichkeit zu dienen, können sie jedoch auch Menschen behilflich sein, die anfallende Arbeiten beispielsweise alters- oder krankheitsbedingt nicht mehr bewerkstelligen können. Maschinen und Roboter, die Derartiges leisten sollen, müssen ihre Aufgaben auch in unterschiedlichen Situationen zuverlässig erfüllen. Dies setzt voraus, dass sich der Roboter an die vorherrschenden Umstände und seine Umgebung anpassen kann - soll der Roboter autonom agieren, so muss er fähig sein, zu lernen. Im Rahmen dieser Master-Thesis wird daher ein NAO-Roboter dazu verwendet, um selbstständig eine Strategie für das Zweipersonenspiel Vier gewinnt zu erlernen. Dabei soll der Roboter keinerlei Hilfestellung in Form von Expertenwissen über das Spiel erhalten. In der Arbeit werden daher die Lernmethode Reinforcement Learning zur Strategiebildung eingesetzt und das dabei erlangte Wissen anhand eines künstlichen neuronalen Netzes abgebildet. Die Master-Thesis umfasst hierzu eine ausführliche Diskussion des Lernprozesses und der implementierten Wissensrepräsentation. Ferner findet eine Analyse der möglichen Fortführung dieser Arbeit zur Realisierung eines vollständig autonom Vier gewinnt spielenden NAO-Roboters statt.

6

7 Inhaltsverzeichnis Akronyme 1 Symbolverzeichnis 3 1. Einleitung Gliederung der Master-Thesis Motivation Der NAO-Roboter Hardwaresysteme des Roboters Embedded-Software Software-Suite & SDK Theoretische Grundlagen Künstliche neuronale Netze Biologische Neuronen Modellierung künstlicher Neuronen Reinforcement Learning Das Prinzip des Reinforcement Learnings TD-Algorithmus und Eligibility Traces Erlernen einer Spielstrategie Das Spiel Vier gewinnt Gewinnstellungen des Spiels Vier gewinnt Der Zustandsraum von Vier gewinnt Softwaremodell des Spiels Vier gewinnt Abstraktion des realen Spielbretts Trainingsprogramm für das Spiel Vier gewinnt... 44

8 3.3. Implementierung der Gegenspieler Zufällige Spaltenwahl Der MiniMax-Algorithmus Die Alpha-Beta-Suche Implementierung des neuronalen Agenten Bereits existierende Implementierungen Aufbau des künstlichen neuronalen Netzes Implementierung des Lernalgorithmus Lernphase des neuronalen Agenten Trainingsspiele gegen die Klasse AlphaBetaPlayer Trainingsspiele gegen die Klasse RandomPlayer Anpassung der Spielweise Erkennung des Spielbretts Einführung und Problemstellung Zweck der optischen Erkennung des Spielbretts Unterschiede zum menschlichen Sehen Technische Einschränkungen Bereits existierende Implementierungen QuadRulesOut HumaRobotics Nao plays Connect Implementierung der Spielbretterkennung Übersicht über das eingesetzte Verfahren Vor- und Nachteile des Verfahrens Ausführliche Erläuterung der Implementierung Bild des Spielbretts Verwendung der OpenCV-Algorithmen Genaue Bestimmung der Spielsteinpositionen Ermitteln der Spielbrettbelegung Auswertung Resümee und Auswertung der Arbeit Ziel der vorliegenden Arbeit Verlauf der Arbeit Ergebnis der Arbeit

9 5.2. Ausblick Alternativen zum beschriebenen Konzept A. Anhang 111 A.1. Datenblatt NAO H A.2. Ableitung der sigmoiden Transferfunktion A.3. Inhalt der beigefügten CD-ROM Glossar 121 Literatur 123 Abbildungsverzeichnis 127 Tabellenverzeichnis 129 Listings 131

10

11 Akronyme BMBF DP DSP ET IPA ISI JARA KI KNN LAN LED MC MIN RL SDK SIN Bundesministerium für Bildung und Forschung. Dynamic Programming. Digitaler Signalprozessor. Eligibility Traces. Fraunhofer-Institut für Produktionstechnik und Automatisierung. Fraunhofer-Institut für System- und Innovationsforschung. Japan Robot Association. Künstliche Intelligenz. Künstliches neuronales Netz. Local Area Network. Light-Emitting Diode. Monte Carlo. Multiple-Input-Neuron. Reinforcement Learning. Software Development Kit. Single-Input-Neuron.

12 2 Akronyme TD UML WLAN Temporal-Difference. Unified Modeling Language. Wireless Local Area Network.

13 Symbolverzeichnis a a b b f n n p p w W Ausgabewert eines SIN. Ausgabewerte-Vektor eines MIN oder eines KNN. Schwellenwert eines SIN. Schwellenwerts-Vektor eines MIN oder eines KNN. Transferfunktion eines Single-/MIN. Summe aus gewichteter Eingabe und Schwellenwert eines SIN. Summe aus gewichtetem Eingabe- sowie Schwellenwert-Vektor eines MIN oder eines KNN. Eingabewert eines SIN. Eingabewerte-Vektor eines MIN oder eines KNN. Kantengewicht eines SIN. Kantengewichts-Vektor eines MIN oder eines KNN. α, β Schrittgrößenparameter. a t Aktion zum Zeitpunkt t. δ t TD-Fehler zum Zeitpunkt t. ɛ Wahrscheinlichkeit einer Zufallsaktion bei einer ɛ-greedy-strategie. e t (s) ET-Fehler für Zustand s zum Zeitpunkt t. γ Parameter für Abzugsrate. λ Verfallsparameter für ET.

14 4 Symbolverzeichnis π Strategie, Policy. r t Belohnung zum diskreten Zeitpunkt t. S Menge aller nicht terminierenden Zustände. s t Zustand zum Zeitpunkt t. T finaler diskreter Zeitpunkt einer Episode. t diskreter Zeitpunkt. θt Parameter-Vektor welcher V t repräsentiert. V π (s) Wert von Zustand s nach Strategie π. V t Schätzung von V π.

15 Kapitel 1. Einleitung Dieses Kapitel bildet die Einleitung in die vorliegende Master-Thesis. Zu diesem Zweck verschafft die in Unterkapitel 1.1 beschriebene Gliederung einen Überblick über die gesamte Arbeit. Nachfolgend wird in Unterkapitel 1.2 auf der nächsten Seite die Motivation des Autors für die Anfertigung dieser Thesis erläutert. Abschließend erfolgt in Unterkapitel 1.3 auf Seite 9 die Vorstellung des eingesetzten NAO-Roboters Gliederung der Master-Thesis Die vorliegende Master-Thesis ist in fünf einzelne Kapitel unterteilt. Das Kapitel 1 stellt die Einleitung dar. Hier wird zum einen die Motivation für die Anfertigung der Arbeit beschrieben. Zum anderen findet eine ausführliche Vorstellung des NAO-Roboters der französischen Firma Aldebaran statt, der Gegenstand der Thesis ist. Anschließend folgt das Kapitel 2 auf Seite 17, in dem die notwendigen theoretischen Grundlagen zum Verstehen der in der Arbeit behandelten Themen erklärt werden. Hierzu zählen unter anderem künstliche neuronale Netze sowie das Lernverfahren Reinforcement Learning. Das nachfolgende Kapitel 3 auf Seite 37 befasst sich mit dem selbstständigen Erlernen einer Vier-gewinnt-Strategie durch das ebenfalls in diesem Kapitel implementierte, künstliche neuronale Netz. Zu Beginn erfolgt eine Übersicht über ähnliche bzw. vergleichbare und bereits veröffentlichte Implementierungen. Hinzu kommt eine genaue Beschreibung der zusätzlich angefertigten Trainingssoftware und der computergesteuerten Trainingspartner des neuronalen Netzes. Zu guter Letzt finden eine Erläuterung

16 6 Kapitel 1. Einleitung des durchgeführten Lernverfahrens sowie eine kritische Analyse der dabei erreichten Trainingserfolge statt. Im Anschluss daran beschäftigt sich Kapitel 4 auf Seite 87 mit der optischen Erkennung der aktuellen Belegung des Spielbretts durch den NAO-Roboter. Wieder wird eine Übersicht über ähnliche Umsetzungen, die anderen Arbeiten entstammen, aufgestellt. Dem schließt sich eine Darstellung der durch den Autor implementierten Lösung an. Hierbei werden die verwendeten Algorithmen erklärt und deren Auswirkungen anhand von Beispielen demonstriert. Kapitel 5 auf Seite 103 bildet die abschließende Auswertung der Arbeit. Hier findet eine kritische Analyse der gestellten Ziele, des Verlaufs der Arbeit und der dabei erzielten Resultate statt. Zusätzlich werden ein Ausblick auf denkbare zukünftige Erweiterungen gegeben sowie alternative Vorschläge für die implementierten Verfahren genannt Motivation In immer mehr Bereichen unseres täglichen Lebens begegnen wir Robotern. Diese haben meist nicht viel gemeinsam mit ihren großen, stationären Vertretern, den Industrierobotern. Oft sind sie mobil und manche optisch ansprechend entworfen. Sie helfen im Haushalt, putzen die Fenster und saugen den Staub vom Boden. Im Garten mähen sie den Rasen, in Krankenhäusern transportieren sind Medikamente. Eine im Jahr 2010 durch das Fraunhofer-Institut für Produktionstechnik und Automatisierung (IPA) und das Fraunhofer-Institut für System- und Innovationsforschung (ISI) durchgeführte und vom Bundesministerium für Bildung und Forschung (BMBF) in Auftrag gegebene Studie beschäftigt sich mit der Frage nach der Wirtschaftlichkeit neuartiger Serviceroboter [vgl. HBK11]. Der Studie nach zu urteilen, werden heutzutage bereits viele Roboter im Dienstleistungssektor eingesetzt. Genannt wurden unter anderem die Bereiche [vgl. HBK11, S. 9]: Reinigungsroboter für Gebäude, Verkehrsmittel und auch Wege Überwachungsroboter für Industrieanlagen und Museen

17 1.2. Motivation 7 Abbildung 1.1.: Durch die Japan Robot Association prognostiziertes Wachstum des weltweiten Robotermarktes (Bildquelle: Japan Robot Association). Pflegeroboter Roboter für chirurgische Eingriffe Wartungsroboter für gefährliche Einsatzbereiche. Des Weiteren wird in der Studie prognostiziert, dass ab den Jahren 2020 bis 2025 das weltweite Marktvolumen für Roboter im Servicebereich bei 13,5 Mrd. e liegen wird. An der gleichen Stelle wird dieser Betrag als das gesamte Marktvolumen der Industrieroboter des Jahres 2010 angegeben [vgl. HBK11, S. 10]. Anhand der durchgeführten Analysen betrachten die Autoren der Studie durch Roboter erbrachte Servicearbeiten in den Bereichen: Bodenfrüchteernte, Containertransport im Krankenhaus, Innenausbauassistenz, Kanalinspektion, Milchviehhaltung und Produktionsassistenz aus betriebswirtschaftlicher Sicht für wirtschaftlich [vgl. HBK11, S ].

18 8 Kapitel 1. Einleitung Die in Tokio ansässige Japan Robot Association (JARA), welche ein Verband für die im Bereich der Robotik angesiedelten Industrieunternehmen ist, prognostiziert für private Serviceroboter ein stark anwachsendes Marktpotential, wie in Abbildung 1.1 auf der vorherigen Seite zu sehen ist. Es besteht demnach ein Bedarf an mobilen und autonom agierenden Robotern. Diese müssen sich, wenn sie tatsächlich autonom agieren sollen, auch auf neue und bisher unbekannte Situationen sinnvoll einstellen können. Dies setzt die Fähigkeit des Lernens voraus - eine Fähigkeit, die bei zukünftigen Generationen von Robotern immer wichtiger werden wird. Aus diesem Grund ist ein lernender Roboter Gegenstand der vorliegenden Arbeit. Die Entscheidung, für die Lernfähigkeit des Roboters auf ein künstliches neuronales Netz zurückzugreifen, hat einen einfachen Grund. Obwohl es sich bei künstlichen neuronalen Netzen um sehr simple Modelle des menschlichen Nervensystems handelt, ähnelt ihre Art des Lernens doch dem biologischen Vorbild. Diese Eigenschaft macht sie für viele Einsatzgebiete interessant, wie in Kapitel 2 auf Seite 17 erläutert wird. Die Entscheidung, den NAO-Roboter der Firma Aldebaran Robotics für das Projekt zu verwenden, hat ganz praktische Gründe. Seine offenen und gut dokumentierten Softwareschnittstellen, die programmierbare Hardware mitsamt allen dazugehörigen Sensoren und Aktoren und die Möglichkeit, ihn mithilfe der Hochsprache C++ programmieren zu können, machen ihn für diese Aufgabe sehr interessant. Dass die Aufgabe des Roboters darin besteht, eine Strategie für das Spiel Vier gewinnt zu erlernen, hat gleich mehrere Gründe. Einerseits eignen sich Strategiespiele sehr gut dazu, um Lernverfahren zu prüfen. Auch kennen viele Menschen das Spiel Vier gewinnt, spielen es vielleicht sogar selbst. Dadurch lassen sich auch Menschen für den Lernprozess begeistern, die ansonsten keinen Zugang zu lernenden Maschinen bekommen würden. Ein weiteres Argument für die Wahl von Vier gewinnt ist wieder ganz praktischer Natur, denn die Maße des Spielbretts passen gut zur Größe des NAO-Roboters. Das genaue Ziel dieser Arbeit ist einerseits, das selbstständige Erlernen

19 1.3. Der NAO-Roboter 9 Abbildung 1.2.: Der in der vorliegenden Arbeit eingesetzte NAO-Roboter. einer Vier-gewinnt-Spielstrategie durch den NAO-Roboter, andererseits soll es dem Roboter nach Abschluss des Projekts zusätzlich möglich sein, die aktuelle Belegung des Spielbretts optisch zu erkennen. Die Realisierung eines vollständig autonom spielenden Roboters, der seine Spielzüge eigenständig ausführt, ist hingegen aufgrund der zeitlichen Beschränkung des Projekts nicht umsetzbar und daher Gegenstand zukünftiger Arbeiten Der NAO-Roboter Aldebaran Robotics ( beschäftigt sich seit der Gründung der Firma im Jahre 2005 in Paris hauptsächlich mit der Entwicklung humanoider Roboter. Zurzeit arbeiten rund 140 Mitarbeiter für die französische Firma. Die Familie der NAO-Roboter stellt die aktuelle Produktpalette dar und ist in unterschiedlichen Ausbaustufen erhältlich. Die minimale Ausbaustufe stellt der NAO T2 dar. Hierbei handelt es sich um eine auf Kopf und Torso reduzierte Variante. Der

20 10 Kapitel 1. Einleitung NAO T14 besitzt zusätzlich zwei frei bewegliche Arme. In der höchsten Ausbaustufe verfügt der Roboter darüber hinaus über zwei Beine. Dieses Modell trägt den Namen NAO H25. Die vorliegende Arbeit beschäftigt sich ausschließlich mit dem NAO-Modell H25. Der NAO-Roboter wird ständig weiterentwickelt, was sich beispielsweise durch verbesserte Sensoren oder eine erhöhte Rechenleistung des Hauptprozessors bemerkbar macht. Seine reichhaltige Hardwareausstattung, welche frei programmiert werden kann, macht den Roboter insbesondere in den Gebieten der Forschung und Lehre beliebt. Es ist daher nicht verwunderlich, dass er weltweit zu Forschungszwecken eingesetzt wird. Zusätzlich zu der reinen Hardware stellt Aldebaran Robotics eine große Auswahl an Entwicklungssoftware für die Betriebssysteme Linux, MacOS und Windows bereit. Neben der reinen Forschung werden die NAO-Roboter auch in der NAO Standard Plattform League des RoboCup-Wettbewerbs eingesetzt. Hierbei handelt es sich um einen im Jahre 1997 gegründeten Wettbewerb, bei dem Roboter dahingehend programmiert werden, gegeneinander Fußball zu spielen. Diese Form der angewandten Forschung beschäftigt sich daher hauptsächlich mit den Themen der künstlichen Intelligenz, der Kommunikation zwischen Robotern sowie der Navigation in sich verändernden Umgebungen. Das selbsternannte Ziel des RoboCup-Wettbewerbs ist dabei sehr ambitioniert. Bis Mitte des aktuellen Jahrhunderts soll er Roboter hervorgebracht haben, die ein Fußballspiel, welches nach den offiziellen Regeln der FIFA ausgetragen wird, gewinnen kann. Die gegnerische Mannschaft soll dabei niemand Geringeres als der amtierende Fußballweltmeister sein (siehe Hardwaresysteme des Roboters Die Hardwareausstattung des NAO-Roboters ist sehr reichhaltig. An dieser Stelle soll nur ein grober Überblick über die wichtigsten Bauteile gegeben werden. Eine detaillierte Auflistung findet sich im Anhang A.1 auf Seite 111. Der NAO H25 misst vom Scheitel bis zur Sohle eine Höhe von 573 mm.

21 1.3. Der NAO-Roboter 11 Abbildung 1.3.: Der humanoide NAO-Roboter H25 der Firma Aldebaran Robotics ist mit vielen verschiedenen Sensoren und Aktoren ausgestattet. Diese sind frei programmierbar, was ihn besonders für Forschungszwecke sehr interessant macht. (Bildquelle: Aldebaran Robotics).

22 12 Kapitel 1. Einleitung Seine Schultern sind 275 mm breit. Das Gewicht liegt laut Datenblatt bei 5, 2 kg. Die Energieversorgung besteht aus einem Lithium-Ionen-Akku mit einer Speicherkapazität von 27, 6 Wh an elektrischer Energie. Dies ermöglicht es dem Roboter, zwischen 60 und 90 Minuten ohne externe Energieversorgung aktiv zu sein. Als Hauptprozessor dient ein Intel ATOM Z530, der sich im Kopf des Roboters befindet. Der mit 1, 6 GHz getaktete Prozessor kann auf einen 512 kb großen Cache zugreifen. Der Arbeitsspeicher mit einer Größe von 1 GB befindet sich ebenfalls auf dem Motherboard des NAO-Roboters. An Stirn und Mund des Roboters befinden sich zwei Digitalkameras. Diese liefern jeweils bis zu 30 Bilder pro Sekunde bei einer Auflösung von Pixeln. In der linken und rechten Ohrmuschel befinden sich zwei Lautsprecher. Insgesamt vier Mikrofone sind im Kopf untergebracht, jeweils zwei unter den Ohren, eins über der Stirnkamera und ein Mikrofon im Hinterkopf. Diese Anordnung ermöglicht es dem NAO-Roboter, Geräuschquellen durch Laufzeitunterschiede der empfangenen Schallwellen zu lokalisieren. Um mit anderen Robotern, anderen technischen Geräten oder seiner Umwelt zu kommunizieren, kann NAO auf mehrere Systeme zurückgreifen. In seinen Augen befindet sich sowohl ein Infrarotsender als auch -empfänger. Auf dem Kopf, in den Augen, an den Ohren, auf der Brust und an den Füßen befinden sich programmierbare Light-Emitting Diodes (LEDs). Um sich mit einem Local Area Network (LAN) oder Wireless Local Area Network (WLAN) zu verbinden, kann Ethernet (IEEE 802.3) bzw. IEEE b/g eingesetzt werden. Damit der NAO-Roboter Informationen über seine eigene Position und Umgebung erhält, sind weitere Systeme vorhanden. Mithilfe in der Brust angebrachter, doppelt ausgeführter Sonarsender und -empfänger kann der Roboter vor sich befindende Hindernisse erkennen. Zwei Gyroskope und ein Beschleunigungssensor ermöglichen es, die aktuelle Lage und Bewegung zu bestimmen. Druck- bzw. Berührungssensoren an Kopf, Brust, den Füßen und Händen können ausgelesen und somit mithilfe von Software ausgewertet werden. Durch seinen humanoiden Aufbau entspricht die Bewegungsfreiheit in etwa der eines Menschen. Die Hände und Füße des Roboters sind jedoch

23 1.3. Der NAO-Roboter 13 Abbildung 1.4.: Module sind Softwareklassen, welche Methoden bereitstellen. Module können einzeln oder zu mehreren in Bibliotheken gebündelt werden. Das Programm NAOqi lädt und verwaltet die entsprechenden Bibliotheken und stellt somit die Funktionalität der Module dem restlichen System zur Verfügung. (Bildquelle: Aldebaran Robotics). nur sehr grob modelliert und erlauben daher nur entsprechend simple Bewegungen. Die Freiheitsgrade der jeweiligen Gelenke und die zum Einsatz kommenden Motoren zur Steuerung des Roboters sind ebenfalls im Anhang A.1 ab Seite 111 aufgelistet Embedded-Software Das Betriebssystem des NAO-Roboters nennt sich OpenNAO. Es handelt sich hierbei um ein auf Gentoo basierendes GNU/Linux. OpenNAO bildet die Grundlage der Embedded-Software, d. h. der vom Hauptprozessor des Roboters ausgeführten Software. NAOqi ist der Name des Hauptprogramms, welches nach dem Booten des Betriebssystems gestartet wird.

24 14 Kapitel 1. Einleitung Das Programm steuert und kontrolliert den Roboter. Der Start von NAOqi selbst wird durch das Programm init.d initiiert. Das entsprechende Startskript ist unter dem Pfad /etc/init.d/naoqi auf dem Dateisystem des Roboters zu finden. Der NAOqi-Prozess stellt einen Vermittler (engl. Broker) dar. Eine seiner Aufgaben ist, die für den Programmablauf benötigten Softwarebibliotheken des NAO-Roboters zu laden. Die zu ladenden Bibliotheken sind in der Datei /etc/naoqi/autoload.ini vermerkt. Die Abbildung 1.4 auf der vorherigen Seite verdeutlicht diesen Zusammenhang. Eigens entwickelte Softwaremodule, die ebenfalls von NAOqi geladen werden sollen, müssen in die Datei /var/persistent/home/nao/naoqi/preferences/autoload.ini eingetragen werden Software-Suite & SDK Aldebaran Robotics stellt eine große Auswahl an Entwicklungssoftware, Dokumentationen und Beispielen für die Programmierung des NAO- Roboters bereit. Die Entwicklungssoftware umfasst: CHOREGRAPHE Bei Choregraphe handelt es sich um eine visuelle Programmiersprache. Mithilfe der gleichnamigen Entwicklungsumgebung lassen sich sehr schnell und einfach Programme für den NAO- Roboter entwickeln. Das Programmieren geschieht durch grafisches Verbinden fertiger Softwaremodule. Neue Module können ebenfalls mithilfe von Choregraphe entwickelt werden. MONITOR Das Programm Monitor gehört zur Entwicklungsumgebung Choregraphe. Es ermöglicht, die Daten im Speicher des Roboters während des laufenden Betriebs auszulesen. Auf diese Weise kann beispielsweise mitverfolgt werden, was die beiden Digitalkameras sehen. NAOSIM Hierbei handelt es sich um eine 3D-Simulation des Roboters. Neu entwickelte Programme können somit virtuell getestet werden, ohne sie auf die reale Hardware des Roboters übertragen zu müssen.

25 1.3. Der NAO-Roboter 15 SDK Das Software Development Kit (SDK) besteht aus verschiedenen Tools für Kompilierungs- und Debbugingzwecke. Dadurch ist es möglich, sehr komplexe Softwaremodule für den NAO-Roboter zu entwickeln. Die hier genannten Programme werden, anders als die bereits erwähnte Embedded-Software, nicht auf dem NAO-Roboter, sondern auf einem Entwicklungscomputer installiert und ausgeführt. Das Programm NAOqi ist daher ebenfalls Bestandteil der Entwicklungssoftware, um eine Simulation des Roboters zu ermöglichen.

26

27 Kapitel 2. Theoretische Grundlagen In diesem Kapitel werden die zum Verständnis der Arbeit notwendigen theoretischen Grundlagen vermittelt. Das Unterkapitel 2.1 erklärt das Prinzip, den Aufbau und die Arbeitsweisen künstlicher neuronaler Netze. Einleitend wird dazu das biologische Neuron, welches das Vorbild künstlicher Neuronen ist beschrieben. Anschließend werden die Architektur sowie die mathematische Beschreibung einzelner künstlicher Neuronen, bis hin zu neuronalen Netzen vorgestellt. Das nachfolgende Unterkapitel 2.2 auf Seite 28 beschäftigt sich mit dem Lernverfahren Reinforcement Learning, welches in der vorliegenden Arbeit angewendet wird. Es handelt sich hierbei um eine Trainingsmethode, die dazu eingesetzt werden kann, um künstliche neuronale Netze zum Lösen bestimmter Aufgaben zu trainieren Künstliche neuronale Netze Ein künstliches neuronales Netz (KNN) ist ein parallel informationsverarbeitendes System. Es besteht aus vielen einfach gestalteten Verarbeitungseinheiten, den künstlichen Neuronen. Diese sind untereinander verknüpft und die grundlegende Struktur erinnert an die eines Gehirns. Zum besseren Verständnis liefert daher der Abschnitt auf der nächsten Seite einen Einblick in den Aufbau und die Funktionsweise biologischer Neuronen. Anschließend werden in Abschnitt auf Seite 22 die Grundlagen der KNNs vermittelt. Die besondere Eigenschaft eines KNN ist seine Lernfähigkeit, wodurch es sich den gegebenen Anforderungen entsprechend anpassen kann. Neben dem prinzipiellen Aufbau ist dies eine weitere

28 18 Kapitel 2. Theoretische Grundlagen Analogie zu den biologischen Vorbildern. Die Entwicklung und der Einsatz von KNNs geschehen übergreifend über viele Forschungsgebiete. Professor Dr. Andreas Zell von der Universität Tübingen zählt folgende Wissenschaften mit Verbindungen zum Gebiet der KNNs auf: Biologie, Neurobiologie, Bioinformatik, Künstliche Intelligenz, Informatik, Mathematik, Physik, Elektrotechnik, Psychologie, Neurophysiologie und Medizin [vgl. Zel00, S. 24] Biologische Neuronen Die grundlegende Idee hinter KNNs ist, die Funktionsweise biologischer Neuronen mithilfe von mathematischen Modellen nachzubilden. Zum besseren Verständnis erfolgt daher an dieser Stelle eine vereinfachte Beschreibung biologischer Neuronen, im Folgenden kurz Neuronen oder Nervenzellen genannt. Aufbau einer Nervenzelle Beim Neuron handelt es sich um eine bestimmte Art von Körperzelle, die eine Grundeinheit des Nervensystems vieler Lebewesen, so auch des Menschen, darstellt. Neben den Neuronen besteht das Nervensystem zusätzlich noch aus einem zweiten Zelltyp, den Gliadzellen. Diese sind für die generelle Funktionsweise von KNNs jedoch nicht interessant und werden aus diesem Grund nicht weitergehend behandelt. Die meisten Nervenzellen des menschlichen Körpers befinden sich im Gehirn. Ihre Anzahl wird auf mehr als 100 Milliarden ( ) Stück geschätzt [vgl. War10, S. 17]. Neuronen erfüllen ganz unterschiedliche Aufgaben, dazu zählen unter anderem [vgl. Bra95, S ]: Ansteuerung der Muskeln (bewegen des Körpers) Weiterleitung der im Innenohr durch Schallerregung erzeugten Nervenimpulse (hören) Weiterleitung der in der Retina des Auges durch Lichteinfall erzeugten Nervenimpulse (sehen).

29 2.1. Künstliche neuronale Netze 19 Begründet durch die unterschiedlichen Aufgaben der Nervenzellen, unterscheidet sich auch ihr jeweiliger Aufbau. In stark vereinfachter, jedoch an dieser Stelle ausreichender Annahme, lässt sich ein Neuron ganz allgemein auf den in Abbildung 2.1 auf der nächsten Seite dargestellten Aufbau reduzieren. Wie in der Grafik zu sehen ist, besteht ein Neuron im Wesentlichen aus Dendriten, Zellkörper (Soma), Zellkern, Axon und Synapsen. Innerhalb des Zellkörpers befindet sich der Zellkern. Dieser beherbergt den genetischen Code der Nervenzelle und ist zusätzlich an der Proteinsynthese der Zelle beteiligt. Auf die Proteinsynthese und die Neurotransmitter, welche aus ihr hervorgehen, wird zu einem späteren Zeitpunkt eingegangen. Ausgehend vom Zellkörper breiten sich die Dendriten in feinsten Verästelungen aus. Sie dienen dazu, Informationen zu empfangen, welche von anderen Neuronen ausgesandt wurden. Das Aussenden von Informationen geschieht über das Axon der Nervenzelle, welches durch den Axonhügel mit dem Zellkörper des Neurons verbunden ist. Beim Menschen kann das Axon einer einzelnen Nervenzelle durchaus Längen von bis zu einem Meter erreichen. Das Ende des Axons ist über den synaptischen Spalt mit den Dendriten nachfolgender Nervenzellen verknüpft [vgl. War10, S ]. Informationsübertragung bei Nervenzellen Die nachfolgende Funktionsbeschreibung ist vereinfacht und idealisiert dargestellt, liefert jedoch eine gute Übersicht über die Informationsübertragung zwischen den einzelnen Nervenzellen. Nervenzellen sind von einer Zellmembran umgeben, die aus einer doppelten Schicht von fettartigen Molekülen besteht, die Lipide genannt werden. Innerhalb der Membran befinden sich viele verschiedene Proteine, die einerseits direkt an der Struktur der Membran beteiligt sind und andererseits als Kanal für Ionen und andere Moleküle fungieren. Diese Kanäle sind nicht für alle Ionen gleichermaßen durchlässig und ermöglichen somit einen elektrischen Potentialunterschied zwischen Innen- und Außenseite der Zellmembran. Die Zellmembran ist für K + -Ionen beispielsweise stark durchlässig und stellt ein größeres Hindernis für Na + -Ionen dar. Dem

30 20 Kapitel 2. Theoretische Grundlagen Dendriten Zellkörper Zellkern Axon Synapsen Myelinscheide Abbildung 2.1.: Schematische Darstellung einer Nervenzelle. Sie besteht im Wesentlichen aus den Dendriten, dem Zellkörper samt Zellkern und dem Axon, welches über einen synaptischen Spalt mit nachfolgenden Neuronen verbunden ist. Die Myelinscheide, welche das Axon umgibt, wirkt elektrisch isolierend. gegenüber sind Cl - und HCO 3-Ionen kaum in der Lage, die Membran zu passieren. Durch diese Eigenschaft der Zellmembran entsteht im Innern der Nervenzelle ein Ungleichgewicht zwischen positiven und negativen Ladungsträgern. Dies hat zur Folge, dass das Ruhepotential des Neurons ca. 70 mv unter dem Potential der Membranaußenseite liegt [vgl. Zel00, S ]. Das zu übertragende Nervensignal ist ein elektrisches Signal. Es wird durch einen Ionenstrom durch die Zellmembran hervorgerufen. Erreicht nun das elektrische Feld eines ankommenden Nervensignals die Nervenzelle, so öffnen sich Natriumkanäle, die Natriumionen ins Innere des Neurons strömen lassen. Als direkte Folge ändert sich das Potential der Zellmembran. Sobald das Potential im Innern der Nervenzelle 30 mv über dem Potential der Membranaußenseite liegt, verändert sich der Prozess. Nun öffnen sich die Kaliumkanäle der Zellmembran, wodurch Kaliumionen aus der Nervenzelle herausströmen. Dies geschieht so lange, bis das ursprüngliche Ruhepotential wieder hergestellt ist. Das auf diese Weise modellierte Nervensignal wird als Aktionspotential bezeichnet und breitet sich entlang des Axons aus. Interessant ist die Tatsache, dass sich Nervenimpulse nicht in der Form, d. h. im zeitlichen Verlauf unterscheiden. Die

31 2.1. Künstliche neuronale Netze 21 Information des Nervenimpulses ist stattdessen durch den Ort und die Frequenz der nachfolgenden Nervensignale codiert [vgl. Zel00, S ]. Die Informationsübertragung von einer biologischen Nervenzelle zum Nachfolgeneuron geschieht über Synapsen. Es sind zwei Arten von Synapsen bekannt: die am häufigsten vorkommenden, chemischen Synapsen sowie die elektrischen Synapsen. Für die weitere Betrachtung beschränken wir uns auf erstere. Als Synapse wird die Verbindungsstelle zwischen des sich verästelnden Axons eines Neurons und den Dendriten einer weiteren Nervenzelle bezeichnet. Erreicht nun das sich über das Axon ausbreitende Aktionspotential die Synapse, öffnen sich dort Calciumkanäle. Dies hat zur Folge, dass Calciumionen in die Synapse einströmen. Ein dadurch einsetzender Prozess, der hier nicht näher erläutert werden soll, lässt chemische Botenstoffe, die Neurotransmitter genannt werden, mit dem Nachfolgeneuron auf der anderen Seite des synaptischen Spalts diffundieren. Der Neurotransmitter bindet sich an eigens dafür ausgebildete Rezeptoren von chemisch gesteuerten Ionenkanälen. Analog zu den Ionenkanälen der Nervenfaser führen auch hier die einströmenden Ionen zu einer Veränderung des elektrischen Potentials. Die Art der Änderung hängt davon ab, ob es sich um eine erregende oder hemmende Synapse handelt. Eine erregende Synapse führt zu einer Erhöhung des Ruhepotentials, d. h. zu einer betragsmäßigen Verringerung des vorherrschenden negativen Potentials. Dieser Vorgang wird Depolarisation genannt. Im Gegensatz dazu verringert eine hemmende Synapse zusätzlich das Ruhepotential. Das Potential wird demnach noch negativer im Vergleich zum Potential der Membranaußenseite. Bei diesem Vorgang spricht man von Hyperpolarisation. Bei ausreichender Depolarisation wird ein Aktionspotential ausgelöst, welches sich, wie bereits beschrieben, über das Axon der Nervenzelle ausbreitet. Wie sich erkennen lässt, geschieht die Informationsübertragung bei Nervenzellen auf zwei unterschiedlichen, aber dennoch ineinander verzahnten Wegen. Zum einen breitet sich das elektrische Aktionspotential entlang des Axons einer Nervenzelle aus. Zum anderen findet ein chemischer Prozess innerhalb einer Synapse statt, welcher die Weiterleitung des elektrischen Aktionspotentials an das Nachfolgeneuron ermöglicht [vgl. Zel00, S ]. Eine der wichtigsten Eigenschaften des Nervensystems ist seine Lern-

32 22 Kapitel 2. Theoretische Grundlagen p w n a b Abbildung 2.2.: Ein künstliches Neuron ist ein vereinfachtes Modell einer biologischen Nervenzelle. Das abgebildete Single-Input-Neuron besitzt nur einen Eingang. Dies entspricht einer Nervenzelle mit genau einer Synapse [Quelle: In Anlehnung an HDB96, Kapitel 2, S. 3]. fähigkeit. Ermöglicht wird diese durch eine modifizierbare Stärke der Synapsenkopplung. Eine häufige Reizweiterleitung lässt die Kopplung einer Synapse stärker werden. Die Synapse wird somit effektiver als jene, die selten zur Reizweiterleitung verwendet werden Modellierung künstlicher Neuronen Künstliche Neuronen bilden die Grundlagen von KNNs. Es handelt sich bei ihnen um vereinfachte, mathematische Modelle biologischer Neuronen, wie sie in Abschnitt auf Seite 18 behandelt wurden. Im Gegensatz zu ihren biologischen Vorbildern verwenden künstliche Neuronen keine chemische oder elektrische Informationscodierung. Stattdessen wird die Information numerisch repräsentiert [vgl. Lug01, S ]. Die Notation der nachfolgenden mathematischen Beschreibung ist an [HDB96, Kapitel 2 S. 1-19] angelehnt. Single-Input-Neuron In Abbildung 2.2 ist das mathematische Modell eines künstlichen Neurons in seiner einfachsten Form dargestellt. Die Ähnlichkeit zwischen diesem

33 2.1. Künstliche neuronale Netze 23 Modell und dem biologischen Neuron zeigt ein direkter Vergleich mit der Abbildung 2.1 auf Seite 20. Beim dargestellten, mathematischen Modell handelt sich um ein Neuron mit einem Eingang p sowie einem Ausgang a (Single-Input-Neuron (SIN)). Der Eingangswert wird durch den Parameter w gewichtet, daher nennt sich dieser Parameter auch Gewicht. Die Konstante b ist ein Schwellenwert, welcher das Verhalten des Neurons zusätzlich beeinflusst. Die Summe aus gewichtetem Eingang und Schwellenwert wird mit n symbolisiert, d. h.: n = pw + b. Der Wert n ist wiederum der Parameter der Transferfunktion f. Die Funktion trägt den Namen Transferfunktion, da sie die gewichtete Eingangsgröße und den Schwellenwert auf den Ausgang transferiert. Weitere geläufige Bezeichnungen für f sind Ausgabe- oder Aktivierungsfunktion. Der Ausgang des Neurons ergibt sich somit zu: a = f (wp + b). (2.1) Die Transferfunktion gibt vor, auf welche Weise der Ausgang des Neurons den Eingangswerten folgt. Je nach gewünschtem Verhalten des künstlichen Neurons sind demnach viele Funktionsdefinitionen vorstellbar. Es ist daher nicht verwunderlich, dass in der Literatur stark unterschiedliche Definitionen verwendet werden. Eine häufig verwendete Variante ist die sigmoide Transferfunktion mit 1 f (n) =. (2.2) 1 + e n Da es sich um eine sigmoide Funktion handelt, ist der Funktionsgraph 1 1 s-förmig. Er besitzt die Grenzwerte lim n 1+e = 0 und lim n n 1+e = 1. n Weiterhin gilt: f (n) n=0 = 0, 5. Sigmoide Transferfunktionen können leicht differenziert werden, was sie für KNNs zusätzlich interessant macht. Dies ist dadurch begründet, dass die Ableitung einer Transferfunktion für die Anpassung der Netzgewichte benötigt wird. Für die obige Transferfunktion gilt: d f (n) dn = f (n) (1 f (n)). (2.3)

34 24 Kapitel 2. Theoretische Grundlagen p 1 p 2. w 1 w 2. n a p R w R b Abbildung 2.3.: Das Multiple-Input-Neuron ist eine Erweiterung des Single- Input-Neurons. Durch seine R-fach vorhandenen Eingänge entspricht dieses Modell mehr dem biologischen Vorbild. Dennoch handelt es sich weiterhin um eine starke Vereinfachung [Quelle: In Anlehnung an HDB96, Kapitel 2 S. 7]. Eine ausführliche Herleitung dieser Ableitungsvorschrift befindet sich im Anhang A.2 auf Seite 118. Multiple-Input-Neuron In der Praxis besitzt ein künstliches Neuron, ebenso wie es in der Biologie der Fall ist, meist mehr als nur einen Eingang (Multiple-Input-Neuron (MIN)). Die entsprechende Erweiterung des mathematischen Modells ist in Abbildung 2.3 dargestellt. Besitzt ein Neuron R Eingänge, so werden diese mit p 1, p 2,..., p R bezeichnet. Die zu jedem Eingang dazugehörenden Gewichte sind dann entsprechend w 1,1, w 1,2,..., w 1,R. Für die Summe n aller gewichteten Eingänge und den Schwellenwert gilt somit: n = w 1,1 p 1 + w 1,2 p w 1,R p R + b. (2.4) In Matrixschreibweise vereinfacht sich dieser Ausdruck zu: n = W p + b, (2.5)

35 2.1. Künstliche neuronale Netze 25 mit W = ( ) w 1,1 w 1,2... w 1,R, p =.. (2.6) Der Ausgang des Multiple-Input-Neurons kann daher wie folgt berechnet werden: a = f p 1 p 2 p R ( W p + b ). (2.7) Architektur künstlicher neuronaler Netze Ein KNN besteht aus mehreren Neuronen, die selbst jeweils mehrere Eingänge besitzen. Innerhalb des Netzes sind die einzelnen Neuronen in Schichten unterteilt. Die Abbildung 2.4 auf der nächsten Seite zeigt beispielsweise ein einschichtiges KNN. Wenn das einschichtige Netz aus insgesamt S Neuronen und R Eingängen besteht, ändert sich die Gewichtsmatrix wie folgt: w 1,1 w 1,2... w 1,R w 2,1 w 2,2... w 2,R W = (2.8) w S,1 w S,2... w S,R Im Falle des einschichten Netzes wird aus der Transferfunktion f ein Vektorfeld, d. h.: f : D R S, D R S. Dadurch ändert sich die Berechnung des Netzausgangs zu: mit a = f ( W p + b ), (2.9)

36 26 Kapitel 2. Theoretische Grundlagen p 1 w 1,1 n 1 a 1 p 2 b 1 n 2 a 2 p 3.. b 2 p R w S,R n S a S b S Abbildung 2.4.: Ein KNN setzt sich aus einzelnen künstlichen Neuronen zusammen, die in einer bestimmten Struktur angeordnet sind. Dargestellt ist ein einschichtiges Netz mit S Neuronen. [Quelle: In Anlehnung an HDB96, Kapitel 2 S. 9]. a 1 a 2 a =., b 2 b =.. (2.10) a S Neben den einschichten Netzen gibt es auch mehrschichtige Netze. In Abbildung 2.5 auf der nächsten Seite ist ein dreischichtiges KNN dargestellt. Es ist üblich, die letzte Schicht, welche die Ausgabe des Netzes darstellt, als Ausgabeschicht bzw. Output Layer zu bezeichnen. Die Schichten davor sind durch die Ausgabeschicht verdeckt und werden daher verdeckte Schichten bzw. Hidden Layers genannt. Das dargestellte, mehrschichtige Netz hat demnach zwei verdeckte Schichten. Um das mehrschichtige Netz mathematisch beschreiben zu können, muss die eingeführte Notation erweitert werden. Die einzelnen Schichten werden daher durch die Schichtnummer im Exponenten gekennzeichnet. Die Ausgabe der einzelnen Schichten lässt sich somit berechnen mit: b 1 b S

37 2.1. Künstliche neuronale Netze 27 Erste Schicht Zweite Schicht Dritte Schicht p 1 w 1 1,1 n 1 1 a 1 1 w 2 1,1 n 2 1 a 2 1 w 3 1,1 n 3 1 a 3 1 p 2 b 1 1 b 2 1 b 3 1 n 1 2 a 1 2 n 2 2 a 2 2 n 3 2 a 3 2 p 3.. b b b p R n 1 S 1 a 1 S n 2 S 2 a 2 S 2 n 3 S 3 a 3 S 3 w 1 S 1,R w 2 S 2,S 1 w 3 S 3,S 2 b 1 S 1 b 2 S 2 b 3 S 3 Abbildung 2.5.: Mehrschichtige KNNs sind in der Lage, komplexere Aufgabenstellungen zu lösen. Dazu zählt auch das Approximieren von Funktionstermen, welche nicht in annehmbarer Zeit exakt berechnet werden können. In der Praxis werden jedoch selten Netze mit mehr als drei Schichten verwendet. [Quelle: In Anlehnung an HDB96, Kapitel 2 S. 12]. a 1 = f 1 ( W1 p + b 1 ) (2.11) a 2 = f 2 ( W2 a 1 + b 2 ) (2.12) a 3 = f 3 ( W3 a 2 + b 3 ). (2.13) Die Ausgabe des Netzes bezogen auf den Netzeingang p, die Gewichte W n und die Schwellenwerte b n ist: a 3 = f 3 ( W 3 f 2 ( W 2 f 1 ( W1 p + b 1 ) + b 2 ) + b 3 ). (2.14) Die Verbindungen zwischen den einzelnen Schichten sind die Gewichte der einzelnen künstlichen Neuronen. In der Literatur werden diese Verknüpfungen auch Kanten des Netzes genannt. Im Allgemeinen sind mehrschichtige KNNs den einschichtigen Varianten überlegen, was das Approximieren von Zielfunktionen angeht. Eine

38 28 Kapitel 2. Theoretische Grundlagen Zielfunktion ist hierbei die durch das KNN zu erlernende Funktion, welche die Eingabewerte auf den oder die Ausgänge abbildet. Die Anzahl der verwendeten Netzschichten liegt in der Praxis bei zwei oder drei. Nur wenige Netze bestehen aus vier oder mehr Schichten [vgl. HDB96, Kapitel 2 S. 12]. Alle bisher vorgestellten KNN-Architekturen sind streng vorwärtsgerichtet. Damit ist gemeint, dass die Signalflussrichtung der Kanten ausschließlich in eine Richtung verläuft, nämlich vom Eingang des Netzes in Richtung des Ausgangs. Darüber hinaus werden in der Praxis jedoch auch Architekturen mit Rückkopplungen und Schleifen verwendet. Die vorliegende Arbeit beschränkt sich jedoch auf vorwärtsgerichtete Netze, da diese die Grundlage des in Kapitel 2.2 ausführlich beschriebenen Trainingsverfahrens sind. Eine Betrachtung anderer Netzformen entfällt somit Reinforcement Learning Damit ein KNN zur Lösung bestimmter Problemstellungen eingesetzt werden kann, muss es im Vorfeld trainiert werden. In der Vergangenheit haben sich zu diesem Zweck drei unterschiedliche Lernverfahren etabliert. überwachtes Lernen (engl. supervised learning), bestärkendes Lernen (engl. reinforcement learning), unüberwachtes Lernen (engl. unsupervised learning). Beim überwachten Lernen besitzt das KNN einen Lehrer. Dieser stellt vollständig spezifizierte Paare aus Eingabe- und Ausgabemustern für das lernende Netz bereit. Diese Muster müssen im Vorfeld generiert werden, damit das Netz im Anschluss trainiert werden kann. Der Lernvorgang des Netzes besteht nun darin, die internen Gewichte bzw. Schwellenwerte an die vorgegebenen Muster anzupassen. Eine detaillierte Beschreibung dieses Vorgangs liefert Kapitel 3.4 auf Seite 59. Die Anpassung der Netzparameter geschieht in der Regel in mehreren Schritten. Die hierzu verwendeten Algorithmen werden an dieser Stelle jedoch nicht weiter

39 2.2. Reinforcement Learning 29 betrachtet. Das eigentliche Ziel des Trainings ist eine Generalisierung des KNN. Damit ist gemeint, dass das Netz in die Lage versetzt werden soll, ihm bisher unbekannte Eingabemuster korrekt zu erkennen. Der Trainingserfolg hängt in erster Linie von der Güte der zur Verfügung gestellten Lernmuster ab. Sind diese nicht oder nicht in ausreichender Vielfalt vorhanden, kann keine ausreichende Generalisierung des Netzes erreicht werden. Dennoch ist das überwachte Lernen eine sehr häufig eingesetzte Trainingsmethode von KNNs. Dies liegt nicht zuletzt an der Tatsache, dass diese Lernmethode in der Regel zu den kürzesten Trainingszeiten führt [vgl. Zel00, S ]. Das unüberwachte Lernen verzichtet vollständig auf einen Lehrer. Die Aufgabe des Netzes besteht darin, ähnliche Eingabemuster zu erkennen und diese in Gruppen oder auch benachbarte Neuronen abzubilden [vgl. Zel00, S ]. Zwischen diesen beiden Extremen lässt sich das bestärkende Lernen einordnen, welches im Folgenden als Reinforcement Learning (RL) bezeichnet wird. Ähnlich wie beim unüberwachten Lernen wird ebenfalls auf einen Lehrer verzichtet. Das KNN erhält jedoch anhand seiner Entscheidungen Rückmeldungen durch seine Umgebung. Der nachfolgende Abschnitt erläutert die Funktionsweise von RL detailliert Das Prinzip des Reinforcement Learnings Beim RL interagiert der Lernende mit seiner Umgebung. Dabei wird der Lernende allgemein als Agent bezeichnet. Für die Lernumgebung wird in der Literatur stellenweise auch die englische Bezeichnung Environment verwendet. Der Agent erkennt den Zustand s t der Umgebung zu jedem Zeitpunkt t. Die vorliegende Arbeit geht von einem diskreten Verlauf der Zeit mit t = 0, 1, 2, 3,...,T aus. Anhand des aktuellen Zustands wählt der Agent eine Aktion a t und führt diese aus. Die ausgeführte Aktion beeinflusst die Umgebung und führt sie in einen neuen Zustand s t+1 über. Gleichzeitig erhält der Agent durch seine Umgebung eine Belohnung, hier Reward r t genannt. Das Anliegen des Agenten ist, den Reward r t R zu maximieren. Entsprechend wählt er zu jedem Zeitpunkt t seine Aktion a t in Abhängigkeit des vorherrschenden Zustandes s t anhand seiner Strategie π.

40 30 Kapitel 2. Theoretische Grundlagen a t Agent Environment s t r t r t+1 s t+1 t + 1 Abbildung 2.6.: Beim Reinforcement Learning interagiert der lernende Agent mit seiner Umgebung. Ausgehend vom aktuellen Zustand s t der Umgebung wählt der Agent eine Aktion a t. Dadurch wird die Umgebung in den neuen Zustand s t+1 versetzt. Gleichzeitig erhält der Agent eine Belohnung bzw. einen Reward r t durch die Umgebung. Das Ziel des lernenden Agenten ist, den erhaltenen Reward über die Zeit zu maximieren [Quelle: In Anlehnung an SB98, S. 52]. Im Kontext von RL wird π auch als Policy bezeichnet. Die Abbildung 2.6 veranschaulicht die erwähnten Zusammenhänge. In Abbildung 2.7 auf der nächsten Seite wird das Prinzip des RL zusätzlich am Beispiel des Strategiespiels Tic Tac Toe erläutert [vgl. SB98, S ] TD-Algorithmus und Eligibility Traces In der Literatur werden verschiedene Ansätze und Techniken diskutiert, um Agenten mithilfe von RL für die Lösung bestimmter Aufgaben zu trainieren. Zu nennen sind an dieser Stelle die Verfahren Dynamic Programming (DP), Monte Carlo (MC) und Temporal-Difference (TD). Der Ansatz nach DP ist sehr rechenintensiv und erfordert ein perfektes Modell

41 2.2. Reinforcement Learning 31 Abbildung 2.7.: Die Methode des RL eignet sich gut um Strategiespiele, wie das dargestellte Tic Tac Toe, zu erlernen. Die Spieler übernehmen die Rollen der Agenten und das Spielfeld bildet die Umgebung. Die getätigten Spielzüge entsprechen den Zuständen der Umgebung. Die Spielregeln sind sehr simpel. Abwechselnd markiert jeder Spieler eines der neun Felder mit seinem Symbol ( X oder O ). Gelingt es einem Spieler, eine waagerecht, senkrecht oder diagonal verlaufende Dreierkette seiner Symbole zu erzeugen, gewinnt er das Spiel. Sind alle neun Felder ausgefüllt, ohne dass einer der beiden Spieler eine Dreierkette erzeugen konnte, endet das Spiel unentschieden. Nach jedem Spielzug bewertet die Umgebung den aktuellen Zustand und gibt einen Reward an die Agenten zurück. Bei diesem speziellen Beispiel ist es vorteilhaft, nur den terminierenden Spielzügen einen Reward ungleich Null zuzuordnen. Terminierende Spielzüge beenden das Spiel. Es muss sich also um den Spielzug handeln, der zum Sieg oder zur Niederlage eines Spielers führt bzw. das Spiel mit einem Unentschieden beendet. Weiterhin ist es an dieser Stelle vorteilhaft, die Rewards wie folgt zu definieren: Sieg = +1, Niederlage bzw. unentschieden = 1, sonst 0. Die Agenten versuchen nun, während des Lernvorgangs ihre Strategien derart anzupassen, dass der Reward über die Zeit maximal wird. Sie suchen demnach eine zum Sieg führende Strategie [Quelle: In Anlehnung an SB98, S ].

42 32 Kapitel 2. Theoretische Grundlagen seiner Umgebung. Da dieses perfekte Modell für das Spiel Vier gewinnt nicht vorliegt, kann DP an dieser Stelle nicht eingesetzt werden. Sehr interessant an DP ist jedoch, dass der Agent seine Strategie während des Lernvorgangs anhand bereits erlernter Strategien anpassen kann. Eine gute Einführung in das Thema DP liefert [SB98, S ]. Der Ansatz über die MC-Methoden erfordert kein vollständiges Modell der Lernumgebung. Allerdings können Agenten, die mithilfe von MC-Methoden lernen, ihre Strategie erst nach Abschluss des Trainings anpassen. Dies macht diesen Ansatz für die vorliegende Arbeit uninteressant, da der Agent nicht erst nach Abschluss eines Vier-gewinnt-Spiels seine Strategie anpassen soll, sondern während er spielt. Als weiterführende Literatur zum Thema MC wird interessierten Lesern [SB98, S ] empfohlen. Den dritten und im Zusammenhang mit RL wahrscheinlich auch bekanntesten Ansatz stellen die TD-Methoden dar. Sie vereinen die Vorteile der beiden vorangegangenen Techniken. Analog zu MC benötigt TD kein vollständiges Modell der Lernumgebung. Gleichzeitig ermöglicht es TD dem Agenten, seine Strategie während des Lernvorgangs an die neu erlangten Erkenntnisse anzupassen. Die TD-Methoden eignen sich damit gut zur Lösung der gestellten Aufgabe. Im Folgenden sollen sie näher erläutert werden. Die simpelste TD-Methode nennt sich TD(0) und ist definiert durch V(s t ) V(s t ) + α[t t+1 + γv(s t+1 ) V(s t )]. (2.15) Hierbei ist V(s t ) die durch den TD-Algorithmus geschätzte Zielfunktion für den Zustand s zum Zeitpunkt t. Das Ziel des Lernvorgangs ist, V an die gewünschte Zielfunktion V π unter Berücksichtigung der zu erlernenden Strategie π anzunähern. Gelingt dies, so liefert die Zielfunktion für jeden Zustand s und zu jedem Zeitpunkt t die Aktion a, welche die Strategie π bestmöglich verfolgt. Der TD-Algorithmus passt die Zielfunktion zu jedem Zeitschritt an und bringt sie so näher an das gewünschte Verhalten heran. Wie in 2.15 zu sehen ist, greift er dabei auf zukünftige Größen zurück, die aufgrund der bereits gesammelten Erfahrung geschätzt werden. Zu nennen sind hier

43 2.2. Reinforcement Learning 33 einmal der Wert der Zielfunktion V(s t+1 ) für den Zeitpunkt t + 1 sowie der erwartete Reward r t+1 für diesen Zeitpunkt. Der Parameter α bestimmt die Lernrate, mit der der TD-Algorithmus die aktuelle Zielfunktion anpasst. Mit dem Parameter γ wird der Einfluss der Schätzung der zukünftigen Zielfunktion auf die Änderung der aktuellen Zielfunktion festgelegt. In Listing 2.1 ist der Pseudocode für den TD(0)-Algorithmus dargestellt [vgl. SB98, S ]. 1 I n i t i a l i s i e r e V(s) zuf ä l l i g, π nach der gewünschten S t r a t e g i e 2 Wiederhole ( f ür jeden Lerndurchgang ) 3 I n i t i a l i s i e r e s 4 Wiederhole ( f ür jeden Z e i t s c h r i t t des Lernvorgangs ) 5 a Durch π bestimmte Aktion f ür s 6 Wä hle Aktion a, beobachte Reward r und nä chsten Zustand s 7 V(s) V(s) + α[r + γv(s ) V(s)] 8 s s 9 Bis s t e r m i n i e r t Listing 2.1: Pseudocode des TD(0)-Algorithmus [vgl. SB98, S. 135]. Eine Erweiterung der eben vorgestellten TD-Methode stellt der TD(λ)- Algorithmus dar. Es handelt sich hierbei um eine durch Eligibility Traces (ET) bereicherte Version der gewöhnlichen TD(0)-Variante. Die Variable λ bestimmt den Einfluss der ET und damit letztendlich das Verhalten des Lernalgorithmus. Bei ET handelt es sich um zusätzliche Variablen, die Aussagen über die Häufigkeit von auftretenden Zuständen treffen. Jeder Zustand s t besitzt demnach eine Eligibility Trace e t (s), die wie folgt definiert ist: e t (s) = { γλet 1 (s) wenn s = s t ; γλe t 1 (s) + 1 wenn s = s t, (2.16) für alle s t S. Bei γ handelt es sich, wie bereits zuvor, um einen Parameter für die Abzugsrate. Wie 2.16 verdeutlicht, verringert sich der Wert der ET für einen Zustand s mit jedem Zeitschritt t um den Faktor γλ. Handelt es sich bei s jedoch um den aktuell durch den Agenten

44 34 Kapitel 2. Theoretische Grundlagen besuchten Zustand s t, erhöht sich der Wert der ET stattdessen. Die ET eines jeweiligen Zustandes ist somit ein Maß für die vergangene Zeit seit dem letzten Besuch und für die Häufigkeit der Besuche durch den Agenten. In Listing 2.2 ist der Pseudocode für den TD(λ)-Algorithmus dargestellt. 1 I n i t i a l i s i e r e V(s) zuf ä l l i g, e(s) = 0 f ür a l l e s S 2 Wiederhole ( f ür jeden Lerndurchgang ) 3 I n i t i a l i s i e r e s 4 Wiederhole ( f ür jeden Z e i t s c h r i t t des Lernvorgangs ) 5 a Durch π bestimmte Aktion f ür s 6 Wä hle Aktion a, beobachte Reward r und nä chsten Zustand s 7 δ r + γv(s ) V(s) 8 e(s) e(s) Für a l l e s : 10 V(s) V(s) + αδe(s) 11 e(s) γλe(s) 12 s s 13 Bis s t e r m i n i e r t Listing 2.2: Pseudocode des TD(λ)-Algorithmus [vgl. SB98, S. 174]. Wie bereits erwähnt, ermöglicht es der TD-Algorithmus, die geschätzte Zielfunktion mit jedem Zeitschritt anzupassen. Dies gilt ebenfalls für TD(λ). Der hierzu benötigte Schätzfehler wird wie folgt berechnet: δ t = r t+1 + γv t (s t+1 ) V t (s t ), (2.17) vgl. Listing 2.2. Dies entspricht derselben Fehlerrechnung, die bereits bei TD(0) durchgeführt wurde. Der Unterschied besteht allerdings in der Berechnung der Zielfunktionsänderung V t. Es gilt: V t (s) = αδ t e t (s), (2.18) für alle s S. Es zeigt sich also, dass bei der Anpassung der Zielfunktion jeder Zustand zusätzlich durch seine eigene ET gewichtet wird. Die wichtigen Erkenntnisse an dieser Stelle sind daher:

45 2.2. Reinforcement Learning 35 Beim TD(0)-Algorithmus werden zur Anpassung der Zielfunktion nur der aktuelle Zustand s t und der Folgezustand s t+1 berücksichtigt. Der TD(λ)-Algorithmus berücksichtigt zur Anpassung der Zielfunktion hingegen alle Zustände. Der Einfluss der Zustände wird dabei über die ET e(s) der Zustände gewichtet. Der Parameter λ bestimmt dabei maßgeblich den Verlauf bzw. die Abschwächung der ET über die Zeit. Es gilt: λ [0, 1]. (2.19) Ist λ = 0, wird aus TD(λ) der gewöhnliche TD(0)-Algorithmus. Dies wird anhand der Definition 2.16 auf Seite 33 deutlich, da hier e(s) für alle s = s t verschwindet und nur an der Stelle e(s t ) den Wert 1 liefert. Das andere Extrem mit λ = 1 führt zusammen mit γ = 1 dazu, dass die ET mit der Zeit nicht mehr abgeschwächt werden [vgl. SB98, S ].

46

47 Kapitel 3. Erlernen einer Spielstrategie Dieses Kapitel behandelt das Erlernen einer Strategie für das Spiel Vier gewinnt durch das künstliche neuronale Netz. Hierzu werden in Unterkapitel 3.1 das Spiel Vier gewinnt vorgestellt und vorhandene Schwierigkeiten für das maschinelle Erlernen dieses Spiels dargelegt. Im darauf folgenden Unterkapitel 3.2 auf Seite 41 erfolgt die Vorstellung des im Zuge der vorliegenden Arbeit implementierten Softwaremodells, welches eine Abstraktion des realen Spielbretts darstellt. Anschließend werden in Unterkapitel 3.3 auf Seite 46 die virtuellen Trainingspartner des neuronalen Netzes vorgestellt. Diese wurden entwickelt, um die notwendigen Trainingsspiele zu automatisieren. Das Unterkapitel 3.4 auf Seite 59 beschreibt ausführlich die Implementierung des verwendeten neuronalen Netzes und erläutert das angewandte Lernverfahren im Detail. Abschließend erfolgt in Unterkapitel 3.5 auf Seite 74 eine tiefgehende Analyse der absolvierten Lernphase sowie der dabei erlangten Resultate Das Spiel Vier gewinnt Vier gewinnt ist ein strategisches Brettspiel für zwei Personen. Es besteht aus einem hochkant stehenden Spielbrett, welches sich in der Regel aus sechs Zeilen und sieben Spalten und damit aus 42 Spielfeldern zusammensetzt. Abbildung 3.1 auf der nächsten Seite zeigt das beschriebene Spielbrett. Davon abweichend existieren verschiedene Varianten mit einer anderen Anzahl an Zeilen und Spalten. Diese werden jedoch im Zuge der vorliegenden Arbeit nicht weitergehend behandelt. Entsprechend den 42 Spielfeldern besitzt jeder Spieler 21 Spielsteine. Die Spielsteine beider

48 38 Kapitel 3. Erlernen einer Spielstrategie Abbildung 3.1.: Das typische Spielbrett von Vier gewinnt besteht aus sechs Reihen und sieben Spalten und besitzt somit 42 Positionen im Spielfeld. Die meist gelben und roten Spielsteine werden von oben durch Schlitze in die Spalten des Spielbretts eingeworfen. Von dort aus fallen sie in die unterste freie Zeile der gewählten Spalte. Spieler unterscheiden sich in ihrer Farbe. Sehr häufig werden gelbe und rote Spielsteine verwendet. Vier gewinnt wird gespielt, indem jeder Spieler abwechselnd einen seiner 21 Spielsteine in eine der sieben Spalten des Spielbretts einwirft. Dies wird auch Absolvieren eines Halbzugs genannt. Ein Spielzug ist beendet, wenn jeder der beiden Spieler einen Halbzug durchgeführt hat. Der Spieler mit den hellen (gelben) Spielsteinen beginnt das Spiel. Das Ziel des Spiels ist, eine ununterbrochene Reihe von mindestens vier Spielsteinen der eigenen Spielfarbe im Spielbrett zu erzeugen. Die Reihe darf hierbei sowohl waagerecht, senkrecht als auch diagonal im Spielbrett liegen. Gewonnen hat der Spieler, dem dies durch strategisches Einwerfen seiner Spielsteine zuerst gelingt. Das Spiel endet unentschieden, wenn sich alle 42 Spielsteine im Spielbrett befinden, ohne dass einer der beiden Spieler eine entsprechende Viererreihe erzeugen konnte.

49 3.1. Das Spiel Vier gewinnt Gewinnstellungen des Spiels Vier gewinnt Das Spielbrett des Spiels Vier gewinnt bietet verschiedene Möglichkeiten, um eine Viererreihe aus Spielsteinen der eigenen Farbe zu erzeugen. Ein gewöhnliches Spielbrett mit 42 zu besetzenden Positionen, aufgeteilt in sechs Reihen und sieben Spalten, besitzt genau 69 potentielle Gewinnstellungen. Diese teilen sich auf in 24 waagerechte, 21 vertikale, 12 von links nach rechts diagonal steigende und 12 von links nach rechts diagonal fallende Stellungen. Die im Verhältnis zur Anzahl der verfügbaren Spielsteinpositionen große Menge an möglichen Gewinnstellungen hat zur Folge, dass einer Spielsteinposition mehr als eine Gewinnstellung zugeordnet werden kann. Eine sinnvolle Strategie, das Spiel zu gewinnen, ist daher, die Positionen im Spielbrett zu besetzten, welche Teil möglichst vieler Gewinnstellungen sind. So ist bei Spielbeginn die mittlere Spalte die beste Wahl, da hier sieben potentielle Gewinnstellungen (4 waagerechte, 1 vertikale und 2 diagonale) aufeinandertreffen. In Abbildung 3.2 auf der nächsten Seite ist diese Situation dargestellt. Ein Einwurf in die erste Spalte führt bei Spielbeginn hingegen nur zu drei potentiellen Gewinnstellungen (1 waagerechte, 1 vertikale, 1 diagonale) Der Zustandsraum von Vier gewinnt Wie bereits in Kapitel 1 auf Seite 5 erläutert wurde, ist das selbstständige Erlernen einer sinnvollen Strategie für das Spiel Vier gewinnt ein zentraler Punkt der vorliegenden Thesis. Mit einer sinnvollen Strategie ist in diesem Zusammenhang das Erlangen einer gewissen Spielstärke gemeint. Nicht gemeint ist hingegen das Erlangen der maximalen Spielstärke mit optimaler Strategie. Auch wurde bereits erwähnt, dass das selbstständige Lernen durch den NAO-Roboter mithilfe eines KNN realisiert werden soll. Der eigentliche Lernvorgang, d. h. das Entwickeln einer zum Sieg führenden Spielstrategie, erfordert eine Reihe von Trainingsspielen. Während dieser Trainingsspiele lernt das neuronale Netz aufgrund seines Erfolgs bzw. Misserfolgs und verändert dementsprechend seine innere Struktur. Der Zusammenhang zwischen Lernenvorgang und der Veränderung der inneren Netzstruktur wird im weiteren Verlauf der Arbeit noch ausführlich erläutert.

50 40 Kapitel 3. Erlernen einer Spielstrategie Abbildung 3.2.: Wirft der anziehende Spieler seinen ersten Spielstein in die mittlere Spalte des Spielbretts, eröffnet ihm dies sieben mögliche Gewinnstellungen. Dies ist zugleich die höchstmögliche Anzahl, die mit dem ersten Spielzug erreicht werden kann. Die aktuelle Belegung eines Spielbretts wird auch als Zustand des Spielbretts bezeichnet. Der Zustandsraum ist demnach die Menge aller Zustände des Spielbretts. Das im Zuge dieser Arbeit betrachtete Spielbrett besitzt 42 Positionen. In jeder dieser Positionen kann entweder ein gelber oder ein roter Spielstein vorhanden sein, oder das Spielfeld ist noch unbesetzt. Somit ist eine einfache obere Schranke des Zustandsraums für das Spiel Vier gewinnt mit , Zuständen gegeben. Die tatsächliche Größe des Zustandsraums fällt jedoch geringer aus, da nicht alle denkbaren Zustände erreichbar sind. Es ist beispielsweise nicht möglich, einen Spielstein über eine nicht besetzte Brettposition zu platzieren, da dieser der Schwerkraft folgend immer in die unterste, nicht besetzte Reihe der korrespondierenden Spaltenposition fällt. Auch ist es nicht möglich, dass sich mehr als 21 gleichfarbige Spielsteine im Spielbrett befinden. Beinahe zeitgleich und unabhängig voneinander lösten James D. Allen und Victor Allis im Jahr 1988 das Spiel. Beide kamen zu der Erkenntnis,

51 3.2. Softwaremodell des Spiels Vier gewinnt 41 dass der anziehende Spieler das Spiel gewinnt, wenn er seinen ersten Spielstein in die mittlere (vierte Spalte) wirft und anschließend perfekt spielt. In seiner Master-Thesis berücksichtigte Victor Allis die oben genannten Einschränkungen und berechnete die Größe des Zustandsraums auf 7, verschiedene Spielbrettbelegungen [vgl. All88]. Zugleich erläutert Victor Allis in seiner Thesis jedoch, dass dieser Wert des Zustandsraums ebenfalls noch zu hoch ist, da illegale Spielzüge nicht berücksichtigt wurden. Mit illegalen Spielzügen sind jene gemeint, die gegen die Spielregeln von Vier gewinnt verstoßen. So ist es beispielsweise nicht erlaubt, dass der Spieler mit der dunklen Spielfarbe das Spiel eröffnet, oder dass ein Spieler mehr als einen Spielstein einwirft, ohne dass der Gegenspieler seinen Zug ausführen konnte. Von den veröffentlichten Resultaten inspiriert, berechnete John Tromp den exakten Zustandsraum des Spiels Vier gewinnt mithilfe mehrerer Workstations. Sein Ergebnis von genau bzw. 4, verschiedenen Zuständen wurde im Jahr 2008 in einem technischen Report von Stefan Edelkamp und Peter Kissmann bestätigt [vgl. Tro13; EK08]. Diese weiterhin sehr große Zahl verhindert, dass eine Spielfunktion für jeden zu tätigenden Spielzug den gesamten Zustandsraum durchsuchen kann. Die Fähigkeit, Funktionen approximieren zu können, macht ein KNN an dieser Stelle daher sehr interessant. Um jedoch eine akzeptable Spielstärke zu erlangen, muss das KNN dennoch sehr viele Trainingsspiele absolvieren Softwaremodell des Spiels Vier gewinnt In der Regel benötigen KNNs mehrere Trainingsschritte, um die gewünschte Zielfunktion zu erlernen. Der Aufwand des Trainings erhöht sich hierbei je nach Komplexität der Zielfunktion. Das in Kapitel 2.2 auf Seite 28 vorgestellte RL-Lernverfahren ist auf der einen Seite gut zum Erlernen von Spielstrategien geeignet, erhöht auf der anderen Seite jedoch zusätzlich den Trainingsaufwand. Der Grund hierfür ist das langsamere Konvergenzverhalten des RL-Lernverfahrens gegenüber anderen Trainingsmethoden für KNNs [vgl. Bra97, S. 107].

52 42 Kapitel 3. Erlernen einer Spielstrategie Es ist daher ein gängiges Verfahren, neuronale Netze mithilfe von Computerprogrammen zu trainieren. Der Autor der vorliegenden Arbeit hat zu diesem Zweck ein Trainingsprogramm für das Spiel Vier gewinnt implementiert. Die Basis dieses Programms bildet das Softwaremodell des Spiels Vier gewinnt Abstraktion des realen Spielbretts Das Softwaremodell des Spielbretts ist vollständig objektorientiert entworfen und in der Programmiersprache C++ implementiert. Der objektorientierte Ansatz unterscheidet sich von der Umsetzung, wie ihn beispielsweise John Tromp in seinem Vier-gewinnt-Lösungsalgorithmus Fhourstones verwendet [vgl. Tro13]. Er ist jedoch sehr gut dazu geeignet, um das vorhandene physikalische Spiel in ein entsprechendes Softwaremodell zu übertragen. In der Abbildung 3.3 auf der nächsten Seite ist das Unified-Modeling- Language-Diagramm (UML-Diagramm) dargestellt, welches das Spielbrett und die Spielsteine als Realisierung in einer Software beschreibt. Bei näherer Betrachtung der abgebildeten Klassen werden die Analogien zum real existierenden Vorbild deutlich. Das physikalische Spielbrett wird durch die Klasse Board repräsentiert, welche in der linken oberen Ecke des UML-Diagramms abgebildet ist. Die öffentlichen Methoden dieser Klasse erlauben es, einen Spielstein in das virtuelle Spielbrett einzuwerfen, sich die momentane Belegung anzuschauen oder auch das Spielbrett komplett zu leeren. Der Spielstein selbst wird hierbei durch eine weitere Klasse mit dem Namen Chip abgebildet. Diese Klasse stellt somit einen neuen Datentyp dar, welcher im Grunde durch zwei Eigenschaften beschrieben wird. Zum einen ist dies der Typ oder auch die Farbe des Spielsteins. Zum anderen stellt seine Position im Spielbrett seine zweite Eigenschaft dar. Weiterhin ist dem UML-Diagramm zu entnehmen, dass es sich bei der Position des Spielsteins wiederum um eine eigenständige Klasse mit dem Namen ChipPosition handelt. Die Position eines Spielsteins innerhalb eines realen Spielbretts wird durch die Zeile und Spalte beschrieben, die sich innerhalb dieser Position kreuzen. Deshalb hat die Klasse ChipPosition je eine Zeile

53 3.2. Softwaremodell des Spiels Vier gewinnt 43 Board + Board() + ~ Board() + setchip(type : const Chip::Type, number : const Column) : Status + undolastmove() : Status + getchip(pos : const ChipPosition&) : Chip + getlastplayedchip() : Chip + getchips() : std::vector< Chip > + getchipsref() : const std::vector< Chip >& + getchipsptr() : const std::vector< Chip >* + getchips(filter : Chip::Type) : std::vector< Chip > + getwinningchips() : std::vector< Chip > + getmatch() : Match + clear() + isempty() : bool + isfull(number : Column) : bool + gettype() : Type + getstatus() : Status + factory(type : Type) : Board* Chip + Chip(p : const ChipPosition&) + Chip(t : const Chip::Type&, p : const ChipPosition&) + settype(t : Type) + type() : Type + typeptr() : const Chip::Type* + position() : ChipPosition + totype(c : const std::vector< Chip >&) : std::vector< Chip :: Type > + operator ==(c : const Chip&) : bool + operator!=(c : const Chip&) : bool Row + MIN : const int + ONE : const int + TWO : const int + THREE : const int + FOUR : const int + FIVE : const int + SIX : const int + MAX : const int + Row() + Row(init : int) + ~ Row() + value() : int + setvalue(value : int) + operator int() + operator ++() : const Row& + operator ++( : int) : const Row + operator --() : const Row& + operator --( : int) : const Row -m_row Column + MIN : const int + ONE : const int + TWO : const int + THREE : const int + FOUR : const int + FIVE : const int + SIX : const int + SEVEN : const int + MAX : const int + Column() + Column(init : int) + ~ Column() + value() : int + setvalue(value : int) + operator int() + operator ++() : const Column& + operator ++( : int) : const Column + operator --() : const Column& + operator --( : int) : const Column -m_col -m_pos ChipPosition + ChipPosition() + ChipPosition(r : const Row&, c : const Column&) + row() : const Row + column() : const Column + setrow(row : Row) + setcolumn(column : Column) + operator ==(pos : const ChipPosition&) : bool + operator!=(pos : const ChipPosition&) : bool Abbildung 3.3.: UML-Diagramm des abstrahierten Spielbretts.

54 44 Kapitel 3. Erlernen einer Spielstrategie und eine Spalte als Eigenschaft. Diese werden durch die beiden Klassen Row und Column bereitgestellt. Dieses Design, welches sich durch das vollständige Softwaremodell hindurchzieht, bietet mehrere Vorteile. Zwar ist der Aufwand der Implementierung im ersten Moment höher, als bei der Wahl eines rein strukturierten Ansatzes, es hat sich jedoch bereits früh in der Entwicklung gezeigt, dass die Software durch die Objektorientierung und die damit verbundenen Entwurfsmuster relativ leicht erweitert werden konnte. Einen weiteren Vorteil bietet die Programmierung in Bezug auf vorab definierte Schnittstellen elementarer Komponenten. Der Datentyp Chip bietet beispielsweise eine direkte Schnittstelle zwischen der optischen Erkennung des Spielbretts und dem Erlernen einer Spielstrategie. Darüber hinaus lassen sich Teile des Programmcodes einfach auf den NAO-Roboter übertragen, da für diesen ein C++-Compiler zur Verfügung steht Trainingsprogramm für das Spiel Vier gewinnt Das Trainingsprogramm basiert auf dem bereits erläuterten Softwaremodell des Spiels Vier gewinnt. Das Programm dient in erster Linie dazu, das KNN für den Einsatz im NAO-Roboter zu trainieren. Zu diesem Zweck stellt es verschiedene Künstliche-Intelligenz-Spieler (KI-Spieler) bereit, die ausgewählt werden können, um gegen das neuronale Netz zu spielen. Dadurch lässt sich der Trainingsablauf sehr einfach automatisieren. Um eine leichte Bedienung sowie eine gute Übersicht zu gewährleisten, wurde für das Trainingsprogramm eine grafische Oberfläche programmiert. Diese ist vollständig mithilfe der C++-Klassenbibliothek Qt realisiert. Die Abbildung 3.4 auf der nächsten Seite zeigt ein Bildschirmfoto des Trainingsprogramms mitsamt der grafischen Oberfläche. Die wichtigsten Funktionen des Trainingsprogramms sind: Auswahl des anziehenden und nachziehenden Spielers Definition der zu absolvierenden Anzahl an Spielrunden Kontrolle über den Spielablauf sowie dessen Auswertung grafische Analyse des absolvierten Spiele

55 3.2. Softwaremodell des Spiels Vier gewinnt 45 Abbildung 3.4.: Die grafische Oberfläche des Vier-gewinnt-Trainingsprogramms ist in fünf Bereiche unterteilt. Die Menü- bzw. Symbolleiste am oberen Rand dient der grundlegenden Kontrolle über das Programm. Hier können verschiedene Einstellungen vorgenommen, das Training gestartet oder das Programm beendet werden. Das große Hauptfenster darunter liefert eine Übersicht über die im Spiel getätigten Spielzüge. Diese Information ist für jedes Spiel und jeden Halbzug abrufbar und kann in der Baumansicht im rechten oberen Fensterbereich ausgewählt werden. Direkt darunter befindet sich eine Zusammenfassung der ausgewählten Spielrunde. Der untere Bereich des Fensters liefert eine einfache statistische Zusammenfassung des Trainings.

56 46 Kapitel 3. Erlernen einer Spielstrategie Das Trainingsprogramm bietet die Möglichkeit, sich jeden einzelnen Halbzug beider Spieler nach Absolvieren aller Trainingsspiele anzusehen. Dadurch kann auf den ersten Blick ein Eindruck über die Spielstärke der beteiligten Spieler gewonnen werden. Darüber hinaus protokolliert das Trainingsprogramm zu jedem Spielzug eine Vielzahl an verschiedenen Parametern, die eine tiefgehende Analyse des Lernverlaufs ermöglichen. Dies wird im späteren Verlauf der Arbeit noch ausgiebig erläutert. Ein Spiel Mensch gegen Computer ist mit dem Trainingsprogramm derzeit nicht möglich. Denkbar wäre ein derartiger Modus, um die Spielstärke der KI-Spieler und des KNN im Spiel gegen einen Menschen zu testen Implementierung der Gegenspieler Damit das KNN eine möglichst gewinnbringende Strategie für das Spiel Vier gewinnt erlernen kann, muss es viele Trainingsspiele absolvieren. Für das Training stehen insgesamt drei KI-Spieler bereit, die durch den Rechner gesteuert werden. Der Lernvorgang lässt sich somit größtenteils automatisiert gestalten. Das UML-Diagramm in Abbildung 3.5 auf der nächsten Seite zeigt das Softwaredesign und die Hierarchie der einzelnen Spielerklassen. Wie zu erkennen ist, stellt die abstrakte Klasse Player die Basis aller konkreten KI-Implementierungen dar. Sie bietet hauptsächlich Methoden an, um mit dem Spielbrett zu interagieren bzw. um die Eigenschaften des konkreten Spielers zu setzen oder auszugeben. Die Eigenschaften eines Spielers sind an dieser Stelle sein Name und seine Spielfarbe. Die Klasse RandomPlayer ist ein sehr simpel agierender Spieler, der seine Spielsteine zufällig in eine der freien Spalten des Spielbretts einwirft. Im Gegensatz dazu verwendet die Spielerklasse NegMaxPlayer eine spezielle Form des MiniMax-Algorithmus um seinen nächsten Zug zu berechnen. Prinzipiell den gleichen, jedoch optimierten Ansatz verfolgt die Klasse AlphaBetaPlayer, welche den MiniMax-Algorithmus, um eine Alpha-Beta- Suche erweitert. Alle drei Verfahren sind gängige Ansätze und besonders die beiden letztgenannten werden vielfach zur Programmierung von KI- Spielern in Strategiespielen eingesetzt.

57 3.3. Implementierung der Gegenspieler 47 Player + Player(color : Chip::Type, name : const std::string&) + ~ Player() + setname(name : const std::string&) + getname() : string + initialize(board : Board&) + viewboardbefore(board : Board&) + viewboardafter(board : Board&) + play() : Column + finalize(board : Board&) + getcolor() : Chip::Type + gettype() : Type + factory(type : Type, color : Chip::Type, name : const std::string&) : Player* RandomPlayer NegMaxPlayer + initialize(board : Board&) + viewboardbefore(board : Board&) + viewboardafter(board : Board&) + play() : Column + finalize(board : Board&) + gettype() : Player::Type + ~ NegMaxPlayer() + initialize(board : Board&) + viewboardbefore(board : Board&) + viewboardafter(board : Board&) + play() : Column + finalize(board : Board&) + gettype() : NegMaxPlayer::Player::Type AlphaBetaPlayer + viewboardbefore(board : Board&) + play() : Column + gettype() : AlphaBetaPlayer::Player::Type Abbildung 3.5.: UML-Diagramm der Vier-gewinnt-Spieler.

58 48 Kapitel 3. Erlernen einer Spielstrategie Zufällige Spaltenwahl Die Klasse RandomPlayer spielt ohne Strategie und wählt die Spalte für den nächsten Halbzug zufällig und ohne Berücksichtigung der vorliegenden Spielbrettbelegung aus. Voll besetzte Spalten des Spielbretts werden jedoch erkannt und gemieden. Die verwendeten Zufallszahlen liefert die Funktion rand der C-Standardbibliothek <cstdlib>. Es handelt sich daher um Pseudozufallszahlen, die jedoch im Folgenden als zufällig betrachtet werden. Bedingt durch die zufällig Spaltenwahl ist die Spielstärke sehr gering und nicht ausreichend, um das KNN langfristig zu trainieren. Andererseits hat sich die simple und überschaubare Implementierung als sehr vorteilhaft für das ausgiebige Testen der Spiellogik und der Spielbewertung herausgestellt Der MiniMax-Algorithmus Ein recht häufig angewendetes Verfahren zum Lösen von Zweipersonen- Strategiespielen stellt die Implementierung des MiniMax-Algorithmus dar. Der Algorithmus lässt die beiden Spieler Max und Min gegeneinander antreten. Das Ziel von Max ist, seinen eigenen Vorteil gegenüber Min zu maximieren. Der Spieler Min wählt seine Entscheidungen hingegen so, dass er den Vorteil von Max minimiert. Beide Spieler besitzen dieselbe Information über das Spiel. Besitzt das Spiel einen verhältnismäßig kleinen Zustandsraum und ist dieser bekannt, so spannt der Algorithmus einen Suchbaum des vollständigen Zustandsraumgraphen auf. Dies gelingt jedoch nur für sehr einfache Strategiespiele wie beispielsweise TicTacToe oder das Nim-Spiel. Unbeschränkter Algorithmus Die Abbildung 3.6 auf der nächsten Seite zeigt den vollständigen Zustandsraum einer sehr einfachen Variante des Standard-Nim-Spiels [vgl. Hof06, S ]. In der Ausgangsituation des Spiels existieren zwei Stapel mit Spielsteinen. Im dargestellten Beispiel besteht der eine Stapel aus einem und der andere aus drei Spielsteinen. Die Spieler Max und Min entfernen nun abwechselnd mindestens einen Spielstein pro Stapel bzw. maximal

59 3.3. Implementierung der Gegenspieler 49 Abbildung 3.6.: Vollständiger Spielbaum des Spiels Nim mit zwei Anfangsstapeln mit je einem und drei Spielsteinen. Die Zahlen innerhalb der Baumknoten geben die verbleibenden Spielsteine pro Stapel an. alle Spielsteine eines Stapels. Es ist allerdings nicht erlaubt, Spielsteine von mehr als einem Stapel pro Spielzug zu entfernen. Gewonnen hat der Spieler, der den letzten verbliebenen Spielstein entfernt. Der im Beispiel anziehende Spieler ist Max. Wie bereits erwähnt, setzt sich der initiale Zustand des Spiels aus zwei Stapeln mit einem bzw. drei Spielsteinen zusammen. Dies lässt sich vereinfacht durch die Notation (1,3) ausdrücken. Der Spieler Max hat von diesem Zustand ausgehend vier Möglichkeiten, um seinen ersten Spielzug durchzuführen. Er kann den ersten Stapel komplett abräumen oder vom zweiten Stapel einen, zwei oder alle drei Spielsteine entfernen. Die gewählte Option führt in einen der vier Folgezustände (3), (1,2), (1,1) oder (1). Es ist leicht zu erkennen, dass der erste und letzte Zustand zu einem unmittelbaren Sieg des Spielers Min führt, da dieser nun die verbleibenden Spielsteine im nächsten Spielzug entfernen kann. Anders verhält es sich, wenn Max den Zustand (1,2) hinterlässt. Hier hat Min drei Möglichkeiten für den Folgezug, die zu den Folgezuständen (2), (1,1) und (1) führen. Entscheidet sich Min für den ersten oder letzteren, so gewinnt Max im darauf folgenden Spielzug zwangsläufig das Spiel. Der mittlere Zustand (1,1) beschert Min hingegen

60 50 Kapitel 3. Erlernen einer Spielstrategie den sicheren Sieg. Da Max der anziehende Spieler ist, gewinnt er in diesem Beispiel bei perfekter Spielweise immer. Der sichere Sieg führt hierbei über die Zustände (1,3), (1,1) und (1), d. h., wenn Max zu Beginn zwei Spielsteine des Dreierstapels entfernt, gewinnt er das Spiel. Damit der MiniMax-Algorithmus entscheiden kann, welcher Folgezustand den größtmöglichen Vorteil bzw. Nachteil bringt, ist er auf eine Bewertungsfunktion angewiesen. Im hier betrachteten Fall des erschöpfend durchsuchbaren Zustandsraums liefert die Bewertungsfunktion einen Wert zu den terminierenden Zuständen des Spiels. Der eigene Sieg wird positiv und eine persönliche Niederlage negativ gewertet. Kann in einem Spiel ein Unentschieden auftreten, ist dies entsprechend zu bewerten. Der einem terminierenden Zustand übergeordneten Vorgängerzustand wird als Elternknoten bezeichnet. Der Elternknoten befindet sich in einer Max-Ebene, wenn er einem Spielzustand zuzuordnen ist, an welchem der Spieler Max seinen nächsten Spielzug ausführen muss. Analog dazu befindet sich ein Elternknoten in einer Min-Ebene, wenn der Spieler Min in diesem Spielzustand an der Reihe ist. Ein Elternknoten in einer Max- Ebene bekommt den maximalen Wert all seiner Nachfolgezustände bzw. Kindknoten zugeteilt. Im Gegensatz dazu übernimmt ein Elternknoten in einer Min-Ebene den minimalen Wert aller seiner Kindknoten. Diese Regel setzt sich von den Endzuständen ausgehend rückwärts den gesamten Zustandsgraphen entlang fort, bis der Initialzustand erreicht wird. Im Beispiel in der Abbildung 3.7 auf der nächsten Seite ordnet die Bewertungsfunktion den Endzuständen den Wert 1 zu, wenn der Spieler Max das Spiel gewinnt und -1, wenn der Spieler Min das Spiel für sich entscheiden konnte. Diese Werte werden anschließend nach dem soeben erläuterten Verfahren rückwärts dem Zustandsgraphen entlang weitergereicht. Da es sich beim Initialzustand um eine Max-Ebene handelt und der Spieler Max somit das Spiel beginnt, muss dieser um sicher zu gewinnen, jeweils den Knoten mit dem höchsten Wert wählen. Eine Betrachtung der verschiedenen Wertigkeiten der einzelnen Zustandsknoten macht schnell deutlich, dass mithilfe des MiniMax-Algorithmus die optimale Strategie mit der Zustandsfolge (1,3), (1,1) und (1) bestimmt wurde. Dies entspricht dem zuvor angemerkten perfekten Spiel, bei dem Spieler Max sicher gewinnt.

61 3.3. Implementierung der Gegenspieler 51 Abbildung 3.7.: Vollständiger Spielbaum des Spiels Nim mit den durch die Bewertungsfunktion berechneten Werten der einzelnen Baumknoten. Je nachdem, ob es sich um eine Max- oder Min-Ebene handelt, wird der höchste oder niedrigste Knotenwert an den entsprechenden Elternknoten in der übergeordneten Ebene zugeteilt. Algorithmus mit festgelegter Suchtiefe Die komplexeren und interessanteren Zweipersonen-Strategiespiele besitzen jedoch einen sehr großen Zustandsraum. Der vollständige Suchbaum des MiniMax-Algorithmus ist je nach Spiel deutlich größer als der korrespondierende Zustandsraum. Dies liegt daran, dass der Zustandsraum zwar jeden möglichen Zustand abbildet, jedoch nicht den Weg dorthin. So ist es oftmals möglich, einen bestimmten Spielzustand auf unterschiedlichen Wegen zu erreichen. Victor Allis gibt in seiner Dissertation aus dem Jahre 1994 eine Zustandsraumgröße von für das Spiel Schach an. Als Größe des MiniMax-Suchbaums wird in derselben Arbeit genannt [vgl. All94]. Zum Vergleich: Die Anzahl der Atome im gesamten Universum wird auf ca geschätzt [vgl. Mut+06, S. 174]. Auch Vier gewinnt besitzt als weniger komplexes Spiel einen MiniMax-Suchbaum mit einer Größe von [vgl. All94]. Es ist offensichtlich, dass Suchbäume dieser Größenordnung in vertretbarer Zeit nicht vollständig durchsucht werden können. Daher wird der

62 52 Kapitel 3. Erlernen einer Spielstrategie 1 i n t nega_max ( i n t player, i n t depth ) 2 { 3 i f ( 0 == depth or no_ moves_ left ( play er ) ) 4 return evaluate ( player ) ; 5 6 i n t max_value = i n f i n i t y ; 7 8 generate_ possible_ moves ( pl ayer ) ; 9 10 for each p o s s i b l e move 11 { 12 do_move ( ) ; 13 i n t value = nega_max( player, depth 1) ; 14 undo_move ( ) ; i f ( value > max_value ) 17 { 18 max_value = value ; i f ( s t a r t _ d e p t h == depth ) 21 selected_move = current_move ; 22 } 23 } return max_value ; 26 } Listing 3.1: Der dargestellte Pseudocode des NegaMax-Algorithmus ist eine spezielle Variante des gewöhnlichen MiniMax-Algorithmus. Die Besonderheit ist, dass die beiden Spieler Max und Min denselben Algorithmus zur Stellungsbewertung verwenden. Sie versuchen somit beide, die persönlich jeweils wertvollste Stellung zu bestimmen, nur mit dem Unterschied, dass sich die Rückgabewerte je nach Aufrufer im Vorzeichen unterscheiden [vgl. Bai06, S ].

63 3.3. Implementierung der Gegenspieler 53 MiniMax-Algorithmus in den meisten Fällen nur bis zu einer festgelegten Suchtiefe ausgeführt. Mit Suchtiefe ist die Anzahl an Halbzügen gemeint, die der Algorithmus im Voraus berechnet. In Listing 3.1 auf der vorherigen Seite ist der Pseudocode des NegaMax-Algorithmus dargestellt. Es handelt sich hierbei um eine besondere Form des MiniMax-Algorithmus, der jedoch zu denselben Ergebnissen wie bei der gewöhnlichen MiniMax- Variante führt. Wie leicht zu erkennen ist, handelt es sich bei dem Pseudocode um eine rekursive Funktion. Die Funktionsparameter sind zum einen die Identifikation des Spielers, welcher seinen Spielzug ausführen möchte, und zum anderen die festgelegte Tiefe des Suchbaums. Eine höhere Suchtiefe führt in der Regel zu höheren Spielstärken, verlangsamt den Algorithmus jedoch exponentiell. Der Rückgabewert der Funktion ist die Wertigkeit einer gegebenen Spielsituation bzw. eines Zustands. Um die Funktionsweise des Algorithmus zu verstehen, ist es ratsam, mit der weiteren Betrachtung in Zeile acht zu beginnen. An dieser Stelle werden alle möglichen Züge für den aktuellen Spieler, d. h. für den Spieler, welcher als nächstes seinen Spielzug ausführt, aufgelistet. Für das Spiel Vier gewinnt bedeutet dies, dass geprüft wird, welche der Spielbrettspalten noch nicht vollständig gefüllt sind. Anschließend startet in Zeile zehn eine Schleife über ebendiese möglichen Spielzüge. Die erste Aktion innerhalb dieser Schleife ist das Ausführen einer der zur Verfügung stehenden Spielzüge. Der aktuelle Spieler wirft demnach einen Spielstein seiner Farbe in eine der freien Spalten des Spielbretts. Anschließend ruft sich die Funktion selbst rekursiv, aber mit geänderten Parametern, auf. Dadurch wechseln die Spieler, d. h., der vormals wartende Spieler ist nun an der Reihe und zusätzlich verringert sich die aktuelle Suchtiefe um Eins. Das Verringern der Suchtiefe ist wichtig, denn erreicht die aktuelle Suchtiefe den Wert Null, ist dies ein Abbruchkriterium für den Algorithmus. Zu sehen ist dies in den Zeilen drei und vier des Pseudocodes. Weitere Abbruchkriterien sind im Falle von Vier gewinnt ein Sieg durch einen der beiden Spieler sowie ein Unentschieden bei voll besetztem Spielbrett ohne Sieger. Trifft eines dieser Kriterien zu, beispielsweise, weil sicg der NegaMax-Algorithmus mehrmals rekursiv aufgerufen hat und die aktuelle Suchtiefe somit den Wert Null erreicht hat, wird eine weitere Funktion, die Bewertungsfunktion, aufgerufen. Diese heuristische Funktion bewertet den vorliegenden

64 54 Kapitel 3. Erlernen einer Spielstrategie Abbildung 3.8.: Fiktiver Suchbaum des MiniMax-Algorithmus mit begrenzter Suchtiefe. Die Werte der einzelnen Baumknoten entstammen einer heuristischen Bewertungsfunktion [Quelle: In Anlehnung an Lug01, S. 171]. Zustand des Spielbretts und liefert somit den Wert dieses Zustands für den aktuellen Spieler zurück. Eine detailliertere Beschreibung der Bewertungsfunktion folgt im nächsten Absatz. Sobald die Bewertung ausgeführt ist, kehrt die zuletzt aufgerufene rekursive Funktion zurück. Die davor aufgerufene Funktion wird somit in Zeile vierzehn fortgesetzt und macht den ehemals ausgeführten Spielzug rückgängig. Der zwischen den Zeilen sechzehn und zweiundzwanzig aufgeführte Code sorgt dafür, dass sich der Algorithmus stets den vorteilhaftesten Spielzug merkt. Durch den beschriebenen Ablauf probiert der Algorithmus für die angegebene Suchtiefe alle möglichen Kombinationen der Spielzüge und merkt sich den vorteilhaftesten für den Erstaufrufer der Funktion. Ein KI-Spieler, welcher den MiniMax-Algorithmus zur Entscheidungsfindung einsetzt, führt vor jedem getätigten Spielzug die vollständige Berechnung aller Kombinationen bis zur gewünschten Suchtiefe durch [vgl. Lug01, S ]. Heuristische Bewertungsfunktion bei festgelegter Suchtiefe Die maximal mögliche Tiefe des Suchbaums beim Spiel Vier gewinnt ist 42. Dies ist genau dann der Fall, wenn das Spielbrett nach 42 Halbzü-

65 3.3. Implementierung der Gegenspieler 55 gen vollständig gefüllt ist. Die minimale Tiefe, bei der ein Sieg vorliegen kann, ist sieben. Wird der MiniMax-Algorithmus beispielsweise mit einer festgelegten Suchtiefe von vier ausgeführt, kann daher beim ersten Durchlauf kein Endzustand des Spiels erreicht werden. Dennoch müssen die Endknoten des unvollständigen Suchbaums bewertet werden, damit der Algorithmus eine Aussage über den für ihn vorteilhaftesten Spielzug tätigen kann. Die dazu benötigte heuristische Bewertungsfunktion bildet das Herzstück des MiniMax-Algorithmus mit fester Verzweigungstiefe. In Abbildung 3.8 auf der vorherigen Seite ist beispielhaft ein fiktiver Suchbaum des MiniMax-Algorithmus mit begrenzter Suchtiefe und heuristisch bewerteten Baumknoten dargestellt. Die für diese Arbeit implementierte Bewertungsfunktion des MiniMax- Algorithmus untersucht die in Kapitel auf Seite 39 erläuterten Gewinnstellungen. Dabei wird jede potentielle Gewinnstellung auf die Anzahl und den Typ der darin enthaltenen Spielsteine überprüft. Jede Gewinnstellung erhält hierbei eine spezielle Wertigkeit, die abhängig von den Spielsteinen innerhalb dieser Stellung ist. Enthält eine Stellung beispielsweise Spielsteine beider Spieler, so ist sie wertlos, da sie nicht mehr zu einer Viererkette der eigenen Farbe ausgebaut werden kann. Wertvoller ist in diesem Zusammenhang eine vollständig unbesetzte Stellung, da diese für zukünftige Spielzüge noch eine Gewinnchance bietet. Die weitere Reihenfolge der Wertigkeit setzt sich aus Gewinnstellungen mit einem, zwei, drei oder vier Spielsteinen der eigenen Farbe zusammen. Die konkreten Werte, welche die Bewertungsfunktion für die unterschiedlichen Gewinnstellungen vergibt, können frei gewählt werden. Wichtig ist nur das Verhältnis der gewählten Zahlenwerte untereinander. Dieses darf nicht linear sein, da der Algorithmus sonst leicht Fehlentscheidungen treffen kann. Eine Gewinnstellung mit drei Spielsteinen der eigenen Farbe ist beispielsweise deutlich mehr wert als drei Gewinnstellungen mit jeweils nur einem eigenen Spielstein. Ein generelles Problem des MiniMax-Algorithmus mit festgelegter Suchtiefe ist, dass das im beschränkten Suchbaum gefundene, lokale Optimum nicht auch global optimal sein muss. So kann es durchaus sein, dass im späteren Spielverlauf eine anfangs nicht als gut bewertete Strategie ein besseres Ergebnis liefert oder dass eine als sehr gut bewertete Aktion

66 56 Kapitel 3. Erlernen einer Spielstrategie zu einer Niederlage führt. Dieser sogenannte Horizontaleffekt wird in der Regel dadurch umgangen, dass vielversprechende Spielzüge mit einer erhöhten Suchtiefe weiterverfolgt werden. In der vorliegenden Arbeit wird darauf jedoch verzichtet [vgl. Lug01, S. 174] Die Alpha-Beta-Suche Der gewöhnliche MiniMax-Algorithmus arbeitet sehr ineffizient, indem er bei jedem Durchlauf den vollständigen Suchbaum inspiziert. Durch diesen Umstand steigt der Aufwand exponentiell mit einer Erhöhung der Suchtiefe an. Ein intelligenterer Algorithmus, welcher deutlich schneller arbeitet und dennoch exakt das gleiche Suchergebnis liefert, ist der erweiterte MiniMax-Algorithmus mit Alpha-Beta-Suche. Durch die Alpha-Beta-Suche wird der MiniMax-Algorithmus um die beiden Parameter Alpha und Beta erweitert. Der Parameter Alpha ist dem Suchbaumknoten des Spielers Max zugeordnet und Beta korrespondiert mit den Knoten des Spielers Min. Die besondere Eigenschaft der beiden Parameter ist, dass der Zahlenwert von Alpha niemals kleiner und der Wert von Beta niemals größer werden kann. Somit ist stets sichergestellt, dass Alpha den schlechtesten Wert darstellt, den der Spieler Max in dieser Ebene erreichen kann. Zugleich gilt, dass Beta den für den Spieler Min ungünstigsten Wert der aktuellen Ebene repräsentiert. Alpha und Beta geben also den sicher zu erzielenden Wert jeder Ebene des Suchbaums, bei beidseitigem optimalem Spiel von Max und Min, an. Diese Eigenschaft macht sich die Alpha-Beta-Suche zu Eigen, indem die folgenden beiden Regeln berücksichtigt werden: Die Suche kann unterhalb eines Min-Knotens abgebrochen werden, wenn der Beta-Wert dieses Knotens nicht größer als der Alpha-Wert einer seiner Vorgängerknoten der Max-Ebene ist. Max-Knotens abgebrochen werden, wenn der Alpha-Wert dieses Knotens nicht kleiner als der Beta-Wert einer seiner Vorgängerknoten der Min-Ebene ist. Vergleiche hierzu auch [Lug01, S ].

67 3.3. Implementierung der Gegenspieler 57 Abbildung 3.9.: Fiktiver Suchbaum des durch die Alpha-Beta-Suche erweiterten MiniMax-Algorithmus mit begrenzter Suchtiefe. Für den Knoten A gilt durch den verwendeten Algorithmus β = 3, d. h., A kann niemals den Wert 3 überschreiten, da A ein Min-Knoten ist. Die daraus folgende Konsequenz ist, dass der Knoten B durch das gewählte β beschnitten ist. Der erste Kindknoten von B ist mit einem Wert von 5 bereits größer als 3. Die weitere Suche am Knoten B kann somit abgebrochen werden. Für den Knoten C gilt wiederum, dass er nicht kleiner als β = 3 werden kann, da C ein Max-Knoten ist. Er bekommt daher den Parameter α = 3 zugeordnet. Somit werden die beiden Knoten D und E beide durch α beschnitten. Ihre zugeordneten Kindknoten besitzen Werte kleiner 3. Auch an diesem Knoten kann die Suche demnach sofort beendet werden und es gilt C = 3. Dies entspricht dem gleichen Ergebnis, welches bereits der MiniMax-Algorithmus für denselben Spielbaum in Abbildung 3.8 auf Seite 54 berechnet hat. Die Alpha-Beta-Suche ist jedoch schneller, da sie bei geschickter Vorsortierung des Suchbaums viele Knoten auslassen kann [Quelle: In Anlehnung an Lug01, S. 177].

68 58 Kapitel 3. Erlernen einer Spielstrategie In Listing 3.2 ist der Pseudocode der Alpha-Beta-Suche für den bereits vorgestellten MiniMax-Algorithmus dargestellt. Die Abbildung 3.9 auf der vorherigen Seite veranschaulicht den Einfluss der Alpha-Beta-Suche auf den zu durchsuchenden Spielbaum. 1 i n t nega_max ( i n t player, i n t depth, i n t alpha, i n t beta ) 2 { 3 i f ( 0 == depth or no_ moves_ left ( play er ) ) 4 return evaluate ( player ) ; 5 6 i n t max_value = alpha ; 7 8 generate_ possible_ moves ( pl ayer ) ; 9 10 for each p o s s i b l e move 11 { 12 do_move ( ) ; 13 i n t value = nega_max( player, depth 1, beta, max_value ) ; 14 undo_move ( ) ; i f ( value > max_value ) 17 { 18 max_value = value ; i f ( max_value >= beta ) 21 break ; i f ( s t a r t _ d e p t h == depth ) 24 selected_move = current_move ; 25 } 26 } return max_value ; 29 } Listing 3.2: Der dargestellte Pseudocode der Alpha-Beta-Suche ist eine optimierte Variante des MiniMax-Algorithmus, welche in weniger Suchschritten dasselbe Ergebnis liefert [vgl. Bai06, S ]. Der Unterschied in der Herangehensweise des MiniMax-Algorithmus und des erweiterten Algorithmus mit Alpha-Beta-Suche lässt sich anhand eines fiktiven Beispiels verdeutlichen, welches an [Bai06, S. 18] angelehnt

69 3.4. Implementierung des neuronalen Agenten 59 ist. Der Spieler Min besitzt mehrere Truhen, in denen verschiedene Gegenstände unterschiedlichen Wertes aufbewahrt werden. Sein Gegenspieler Max hätte gerne einen dieser Gegenstände und seine Aufgabe besteht darin, möglichst den wertvollsten Gegenstand zu erhalten. Die Aufgabe von Min ist seinem Gegenspieler einen Gegenstand zu überlassen. Er gibt jedoch nur ungern einen wertvollen Gegenstand ab und wird deshalb stets den wertlosesten Gegenstand herausgeben. Max lässt sich nun von Min nacheinander den Inhalt der ersten Truhe zeigen. Dieser setzt sich aus einer goldenen Halskette, einem 10-Euro-Schein und einem lupenreinen Diamanten zusammen. Max weiß, dass sein Gegenspieler ihm aus dieser Truhe nur den Geldschein überlassen würde, da dieser der wertloseste der vorgestellten Gegenstände ist. Mit dem Wissen, dass ihm der 10-Euro-Schein somit sicher ist, bittet Max seinen Gegenspieler nun, ihm den Inhalt der zweiten Truhe vorzustellen. Der erste Gegenstand, den Min aus der zweiten Truhe holt, ist ein alter Hosenknopf. Der gewöhnliche MiniMax-Algorithmus würde sich weiterhin alle verbleibenden Gegenstände der aktuellen Truhe anzeigen lassen. Anhand der Erweiterung durch die Alpha-Beta-Suche bricht der Algorithmus die Suche für die zweite Truhe sofort nach dem Vorstellen des Hosenknopfs ab. Dieser ist weniger Wert als der bereits sichere Geldschein aus der ersten Truhe und der restliche Inhalt der zweiten Truhe ist somit uninteressant. Nach dem gleichen Prinzip verfährt der Algorithmus auch für die restlichen Truhen Implementierung des neuronalen Agenten Bereits existierende Implementierungen Vier gewinnt ist ein sehr bekanntes und beliebtes Strategiespiel für zwei Personen, das zwar ein einfaches Regelwerk besitzt, aufgrund des umfangreichen Zustandsraums jedoch nicht trivial vollständig zu lösen ist. Es eignet sich daher sehr gut für die Methoden des maschinellen Lernens. So ist es auch nicht weiter verwunderlich, dass bereits verschiedene Implementierungen existieren, die KNNs als Grundlage verwenden. Zu nennen sind an dieser Stelle die Semesterarbeit Nutzung von RL/TD Verfahren für die Anwendung eines Strategiespiels von Tom Seifert von der

70 60 Kapitel 3. Erlernen einer Spielstrategie Hochschule für Technik und Wirtschaft Dresden [vgl. Sei], die Diplomarbeit Reinforcement Learning zum maschinellen Erlernen von Brettspielen am Beispiel des Strategiespiels 4-Gewinnt von Jan Philipp Schwenck von der Fachhochschule Köln [vgl. Sch08] und die Bachelor-Thesis Reinforcement Learning mit N-Tupel-Systemen für Vier Gewinnt von Markus Thill, die ebenfalls an der Fachhochschule Köln angefertigt wurde [vgl. Thi12]. Die Arbeiten von Tom Seifert und Jan Philipp Schwenck haben vergleichbare Ansätze. Beide verwenden ein KNN als lernenden Agenten sowie RL als Lernalgorithmus. Unterschiede gibt es allerdings bei der Netzstruktur der verwendeten KNNs sowie der Codierung des Eingabevektors. Interessant sind an dieser Stelle die unterschiedlichen Codierungen der Netzeingänge. Die Codierung dient dazu, dem lernenden Agenten, in diesem Fall dem neuronalen Netz, die Information über die aktuelle Spielbrettbelegung bekannt zu machen. Tom Seifert codiert jede Spielsteinposition durch zwei Eingangsneuronen. Da es 42 Positionen gibt, besitzt das Netz somit 84 Neuronen im Eingabevektor. Spielsteine der eigenen Farbe erhalten 01, Steine der gegnerischen Farbe 10 und unbesetzte Positionen 00 als Codierung. Im Gegensatz dazu hat Jan Philipp Schwenck zwei unterschiedliche Möglichkeiten verwendet. Im ersten Ansatz ordnet er jeder Spielsteinposition drei Neuronen zu und kommt somit auf eine Anzahl von 126 Eingangsneuronen. Die Codierung ordnet der roten Spielfarbe 100, der gelben Spielfarbe 010 und einem leeren Spielfeld 001 zu. Im zweiten Ansatz wird auf eine binäre Codierung zugunsten einer ternären ersetzt. Die Anzahl der Eingabevektoren reduziert sich dadurch auf 42. Gelbe Spielsteine werden nun mit -1, rote Spielsteine mit 1 und unbesetzte Positionen mit 0 codiert. Markus Thill geht in seiner Arbeit einen etwas anderen Weg. Zwar verwendet er ebenfalls RL als Lernverfahren, doch implementiert er den Agenten nicht durch ein vergleichbares KNN, sondern verwendet ein N- Tupel-System. Die Arbeitsweise dieses System entspricht der eines linearen Netzes, also einem KNN, welches auf Eingabe- und Ausgabeschicht reduziert ist. Bedingt durch die Codierung der Eingabemuster als N-Tupel und die fehlende verdeckte Schicht unterscheidet sich die Struktur des lernenden Agenten trotz desselben verwendeten Lernalgorithmus erheblich von den beiden zuvor vorgestellten Alternativen.

71 3.4. Implementierung des neuronalen Agenten 61 Von den drei vorgestellten Implementierungen ähnelt die Variante von Jan Philipp Schwenck am ehesten der Implementierung der vorliegenden Arbeit, allerdings wird dort auf die Anbindung einer optischen Erkennung des Spielbretts und somit auf die dafür notwendige Schnittstelle des abstrahierten Spielbretts verzichtet. Des Weiteren beschränkt sich die vorgestellte Arbeit auf das Erlernen von Endspielen, d. h. Spiele mit beinahe vollständig gefülltem Spielbrett. Diese Einschränkung wird an dieser Stelle nicht gemacht. Die Implementierungen von Tom Seifert und Markus Thill unterscheiden sich auf der einen Seite bereits durch die Struktur der lernenden Agenten stark von dem im Zuge der vorliegenden Arbeit implementieren KNN, aber auch die Lernprozesse weichen trotz ähnlichem Algorithmus voneinander ab. Die beiden vorgestellten Implementierungen setzten das Self-Play-Lernverfahren ein, welches den lernenden Agenten gegen sich selbst spielen lässt. Dieses Verfahren wird in der vorliegenden Arbeit nicht angewandt Aufbau des künstlichen neuronalen Netzes Der lernende Agent wird im Zuge der vorliegenden Arbeit als vorwärtsgerichtetes KNN implementiert (vgl. Kapitel auf Seite 25). Diese Netzarchitektur wurde gewählt, da sie sehr gut mit dem eingesetzten RL-Verfahren kombiniert werden kann. Das verwendete neuronale Netz besteht aus drei Schichten. Die erste Schicht bilden die Eingangsneuronen, welche zusammen den Eingabevektor des Netzes darstellen. Durch sie erhält das KNN Informationen über die aktuelle Belegung des Vier-gewinnt-Spielbretts. Für das Netz spielt es dabei keine Rolle, ob die Information von der in Kapitel auf Seite 44 vorgestellten Trainingssoftware oder der in Kapitel 4 auf Seite 87 erläuterten, optischen Spielbretterkennung durch den NAO-Roboter stammt. In beiden Fällen ist ein abstrahiertes Softwaremodell des Spielbretts vor die Eingangsneuronen geschaltet. Diese Abstraktion sorgt für eine modulare Struktur der verwendeten Softwarekomponenten. Somit ist es einerseits möglich, das neuronale Netz im Vorfeld zu trainieren und die gesammelte Erfahrung anschließend im Roboter abzurufen. Andererseits besteht somit die Möglichkeit, einzelne Softwarekomponenten auszutau-

72 62 Kapitel 3. Erlernen einer Spielstrategie schen. Solange die festgelegten Schnittstellen verwendet werden, kann beispielsweise das Programm zur optischen Erkennung des Spielbretts ausgetauscht werden, ohne dass die übrige Software geändert werden muss. Die Belegung des Spielfelds ist ternär codiert. Spielsteine des gelben Spielers sind vom Datentyp Chip::YELLOW, rote Spielsteine werden durch Chip::RED und leere Positionen durch Chip::NONE symbolisiert. Auch die Eingangsneuronen verwenden eine ternäre Codierung. Damit der Eingabevektor die Information über die gesamte Spielbrettbelegung enthält, besteht dieser aus 42 Neuronen. Die zweite Netzschicht, die in der Literatur auch verdeckte Schicht genannt wird, besitzt eine variable Anzahl an Neuronen. Im Gegensatz zur Eingabeschicht, dessen Größe sich direkt an der Codierung der vorliegenden Inputsignale des Netzes orientiert, kann die optimale Anzahl an verdeckten Neuronen oft nur näherungsweise durch Ausprobieren ermittelt werden. Generell gilt, dass eine zu geringe Anzahl an verdeckten Neuronen dazu führt, dass die gewünschte Zielfunktion durch das Netz nicht ausreichend genau approximiert werden kann. Auf der anderen Seite führt eine zu große Anzahl gleich zu mehreren Problemen. Auf der einen Seite erhöht sich durch die gesteigerte Komplexität der erforderliche Lernaufwand des Netzes. Auf der anderen Seite kann es durch zu viele verdeckte Neuronen zu einer Überanpassung des neuronalen Agenten kommen. Dies ist durch die zu große Anzahl an vorhandenen Freiheitsgraden begründet. Die Folge davon ist, dass sich das Netz zwar gut an die verwendeten Daten der Lernphase anpasst, sich anschließend bei unbekannten Daten jedoch nicht wie gewünscht verhält [vgl. Wal07]. Auch wenn die optimale Anzahl an verdeckten Neuronen nicht sicher vorhergesagt werden kann, besitzen sie dennoch eine wichtige Aufgabe. Durch sie findet eine Umcodierung der Eingabedaten statt. Dies ist sofort ersichtlich, wenn sich die Anzahl der Neuronen in der Eingabeschicht und der verdeckten Schicht unterscheiden [vgl. Bra95, S. 248]. Die verdeckte Schicht des neuronalen Netzes der vorliegenden Arbeit besteht aus sechs Neuronen. Diese Anzahl an Neuronen hat sich während der Lernphase des Agenten als vorteilhaft erweisen. Die dritte Schicht des Netzes bildet die Ausgabeschicht, die an dieser

73 3.4. Implementierung des neuronalen Agenten 63 Schicht Neuronen Eingänge Ausgänge Aktivierungsfunktion Eingabeschicht verd. Schicht sigmoide Ausgabeschicht sigmoide Tabelle 3.1.: Charakteristische Daten des implementierten künstlichen neuronalen Netzes. Stelle aus nur einem Neuron besteht. Durch die dreischichtige Struktur des Netzes findet eine zweimalige Umcodierung der Eingabedaten statt. Das Neuron der Ausgabeschicht gibt nach erfolgreich absolviertem Training die Wahrscheinlichkeit des Agenten an, das Spiel ausgehend von der aktuellen Spielbrettbelegung zu gewinnen. Statt des in Kapitel auf Seite 22 vorgestellten Bias-Vektors b besitzt das implementierte KNN jeweils ein zusätzliches Neuron in der Eingabeschicht sowie der verdeckten Schicht. Diese strukturelle Änderung vereinfacht die Algorithmen des verwendeten TD(λ)-Lernverfahrens. Der Grund für die Vereinfachung ist, dass die neu hinzugefügten Neuronen wie ganz normale Neuronen der jeweiligen Schicht behandelt werden können. Die Aufgabe der speziellen Bias-Neuronen bzw. on-neuronen unterscheidet sich jedoch nicht von der des Bias-Vektors. Sie erzeugen einen Schwellenwert für die Aktivierungsfunktionen der verdeckten Schicht sowie der Ausgabeschicht. Der Schwellenwert führt das künstliche Neuron näher an das biologische Vorbild heran. Er simuliert die Potentialdifferenz, die nötig ist, um ein Aktionspotential zu erzeugen. Jedes Neuron der Eingabeschicht ist mit allen Neuronen der verdeckten Schicht verbunden und alle verdeckten Neuronen sind mit dem Ausgabeneuron verknüpft. Durch die bereits erläuterte Struktur des neuronalen Agenten ist der Ausgang jedes Eingangsneurons mit sieben Nachfolgeneuronen verbunden (sechs normale Neuronen und das on-neuron). Ebenso besitzt jedes verdeckte Neuron 43 Eingänge (42 normale Neuronen und das on-neuron). Zwischen der Eingabeschicht und der verdeckten Schicht gibt es demnach 43 7 = 301 durch spezielle Parameter gewichtete Verbin-

74 64 Kapitel 3. Erlernen einer Spielstrategie dungen. Zwischen der verdeckten Schicht und dem Ausgabeneuron sind es immerhin noch 7 1 = 7 Verbindungen. Die gewichteten Verbindungen sind für die erwähnte Umcodierung der Eingabedaten verantwortlich. Als Aktivierungsfunktion kommt sowohl für die verdeckte Schicht als auch für das Ausgabeneuron die in der Funktionsdefinition 2.2 auf Seite 23 dargestellte, sigmoide Transferfunktion zum Einsatz. Zur besseren Übersicht sind in der Tabelle 3.1 auf der vorherigen Seite die Eckdaten des implementierten neuronalen Agenten zusammengefasst Implementierung des Lernalgorithmus Ein KNN lernt, indem die Netzgewichte zwischen den verbundenen Neuronen verändert bzw. angepasst werden. Da der implementierte neuronale Agent das Spiel Vier gewinnt erlernen soll, kommt RL als Lernmethode zum Einsatz. Wie bereits in Kapitel 2.2 auf Seite 28 beschrieben, eignet sich RL hervorragend zum maschinellen Erlernen von Strategiespielen. Zusätzlich erlaubt RL, ein KNN als lernenden Agenten einzusetzen. Ebenfalls wurde bereits darauf hingewiesen, dass im Zuge dieser Arbeit der TD(λ)- Algorithmus die gewählte RL-Methode ist. Diese Wahl wurde getroffen, da TD-Verfahren die Lernstrategie des Agenten bereits im laufenden Lernprozess an die erlangten Erkenntnisse anpassen können. Der Lernvorgang Die Aufgabe des neuronalen Agenten und das Ziel der Trainingsphase ist eine möglichst gute Strategie für das Spiel Vier gewinnt zu erlernen. π ist die optimale Strategie, durch die der anziehende Spieler nicht verlieren kann, sondern mindestens ein Unentschieden erspielt. Das Netz erhält zu jedem Zeitpunkt t die aktuelle Spielbrettbelegung s t als Eingabesignal. Die Differenz zweier Zeitpunkte ist durch Ausführen eines Halbspielzugs definiert. Der Einwurf eines Spielsteins in das Spielbrett führt demnach zu einem neuen Zeitpunkt t + 1. Die Eingabedaten werden von den Neuronen der Eingabeschicht über die gewichteten Verbindungen an die Neuronen der verdeckten Schicht weitergeleitet. Durch die sigmoide Aktivierungsfunktion der verdeckten Neuronen werden die umcodierten Eingabedaten

75 3.4. Implementierung des neuronalen Agenten 65 auf den Wertebereich [0, 1] beschränkt. Zwischen der verdeckten Schicht und dem Ausgabeneuron wiederholt sich der gleiche Prozess. Das Ausgabeneuron verwendet dieselbe Aktivierungsfunktion, was zur Folge hat, dass der aktuelle Zustand s t des Spielbretts mithilfe des KNN durch einen numerischen Wert aus dem Wertebereich [0, 1] abgebildet wird. Diese Abbildung wird durch die geschätzte Zielfunktion V t beschrieben. Es gilt: V t : s t [0, 1], (3.1) mit s t S. Während des Lernprozesses wird die geschätzte Zielfunktion V t der optimalen Zielfunktion V π (s) schrittweise angenähert. V π (s) gibt für jeden Zustand s t die Wahrscheinlichkeit an, mit der der neuronale Agent das Spiel gewinnt. Der verwendete Lernalgorithmus entspricht im Wesentlichen dem in Listing 2.2 auf Seite 34 dargestellten TD(λ)-Algorithmus und basiert auf dem von Allen Bonde Jr. und Rich Sutton veröffentlichten Pseudocode [vgl. BJS92]. Bevor der Lernvorgang startet, wird V t zufällig initialisiert. Dies geschieht, indem die Verbindungsgewichte der einzelnen künstlichen Neuronen mit zufälligen numerischen Werten belegt werden. Die Wahl der initialen Werte beeinflusst das spätere Training maßgeblich und entscheidet nicht selten über Erfolg und Misserfolg des Lernprozesses. Dieser Punkt wird später noch ausführlich erläutert. Zusätzlich werden die ET (vgl. Kapitel auf Seite 30) für alle Neuronen mit dem Wert 0 initialisiert. Anschließend beginnt das Training, indem der Agent alle zum Zeitpunkt t möglichen Spielzüge a t durchprobiert. Bei Spielbeginn sind für den anziehenden Spieler sieben Spielzüge möglich, da er seinen ersten Spielstein in eine der sieben Spalten des Spielbretts einwerfen kann. Die zu Beginn des Lernprozesses zufällig initialisierte, geschätzte Zielfunktion des neuronalen Agenten ordnet nun jedem s t einen numerischen Wert zwischen 0 und 1 zu. Die Zuordnung geschieht über die in 2.14 auf Seite 27 angegebene Formel, jedoch mit dem Unterschied, dass nur eine verdeckte Schicht vorhanden ist, die Ausgabeschicht aus lediglich einem Neuron besteht und es keinen separaten Bias-Vektor gibt. Dadurch vereinfacht sich die Formel zu:

76 66 Kapitel 3. Erlernen einer Spielstrategie Reward r t = 0 r t = 0, 5 r t = 1 r t = 1 Bedingung Das Spiel ist noch nicht beendet. Das Spiel endet mit einem Unentschieden. Der lernende Agent gewinnt das Spiel. Der lernende Agent verliert das Spiel. Tabelle 3.2.: Der durch die Spielumgebung an den Agenten zurückgegebene Reward. ( a = f 2 W ( )) 2 f 1 W1 p. (3.2) Die skalare Größe a ist der Wert am Ausgang des KNN und entspricht somit V t. Sie sollte nicht mit dem Spielzug a t verwechselt werden. Bei f 1 und f 2 handelt es sich um die in 2.2 auf Seite 23 dargestellte, sigmoide Aktivierungsfunktion. Der Vektor p enthält die Werte der Eingangsneuronen. Im vorliegenden Fall entspricht p somit dem Zustand s t des Spielbretts. Alle gewichteten Verbindungen des Netzes sind in den Vektoren W 1 und W 1 zusammengefasst. Wie bereits beschrieben, gibt a bzw. V t die Wahrscheinlichkeit an, mit der der neuronale Agent das Spiel ausgehend von s t gewinnt. Anfangs sind diese Schätzungen natürlich nicht aussagekräftig, da alle Netzgewichte mit zufälligen numerischen Werten vorbelegt sind. Dennoch wählt der neuronale Agent den Spielzug, der zum größten numerischen Wert am Ausgang des Netzes geführt hat und führt diesen aus. Die Spielumgebung belohnt den Agenten daraufhin mit einem Reward r t. Der durch die in der vorliegenden Arbeit implementierte Spielumgebung verteilte Reward ist in Tabelle 3.2 aufgelistet. Da die geschätzte Zielfunktion V t nicht V π entspricht, tritt ein Schätzfehler bzw. TD-Fehler δ t auf. Dieser Fehler lässt sich mithilfe der Formel 2.17 auf Seite 34 berechnen. Dabei ist V t (s t ) die geschätzte Wahrscheinlichkeit eines Sieges vor dem getätigten Spielzug, V t (s t+1 ) analog dazu die

77 3.4. Implementierung des neuronalen Agenten 67 Wahrscheinlichkeit nach dem Spielzug und t t+1 der durch den Spielzug erhaltene Reward. Der berechnete TD-Fehler wird nun dazu genutzt, V t an die Zielfunktion V π anzunähern. Hierzu werden die Gewichte zwischen der Eingabeschicht und der verdeckten Schicht nach folgender Formel angepasst: W 1 t+1 = W 1 t + αδ t e 1 t (s). (3.3) Für die Verbindungsgewichte zwischen der verdeckten Schicht und dem Ausgabeneuron gilt: W 2 t+1 = W 2 t + βδ t e 2 t (s). (3.4) Die beiden Parameter α, β bestimmten die Lernschrittweite, d. h. die Änderungsrate der Gewichte für einen Zeitschritt. Große Werte führen generell zu einem schnelleren Lernverhalten, können allerdings auch dazu führen, dass V t sich nicht ausreichend genau an V π annähern kann. Zu kleine Werte verlangsamen den Lernprozess hingegen unverhältnismäßig. Aus diesem Grund wurde der Lernalgorithmus um sich zeitlich verändernde Schrittgrößen erweitert. Der Lernprozess beginnt mit einem vergleichsweise großen Wert für die beiden Parameter α, β und reduziert diesen bei fortschreitendem Training auf entsprechend kleinere Werte. Die Anpassung der Parameter erfolgt über eine lineare Funktion, die wie folgt definiert ist: bzw. α k+1 = 1 n α 0 k max k + α 0, (3.5) β k+1 = 1 m β 0 k max k + β 0. (3.6) Hierbei ist k die Nummer des aktuellen Spieldurchgangs, k max die Anzahl der zu absolvierenden Trainingsspiele und n sowie m sind die Anzahl

78 68 Kapitel 3. Erlernen einer Spielstrategie an Neuronen der entsprechenden Netzschicht. Die Funktion liefert für k [1, k max ] Werte zwischen α 0 und 1/n bzw. zwischen β 0 und 1/m. Während des Trainings hat sich für α 0 und β 0 ein Wert von 0,7 bis 1,0 als gute Wahl herausgestellt. Durch den anfangs vergleichsweise hohen Zahlenwert wird V t stark durch den berechneten TD-Fehler verändert. Während des Lernprozesses reduziert sich die Änderung der Netzgewichte, wodurch sich V t im besten Fall gut an V π annähert. Die in 3.3 auf der vorherigen Seite und 3.4 auf der vorherigen Seite vorkommenden ET e t (s) werden ebenfalls zu jedem Zeitpunkt t angepasst. Dies geschieht mithilfe der beiden folgenden Formeln: e 1 t (s) = λ e 1 t (s) + V t+1 (1 V t+1 ) W2 h (1 h) p, (3.7) } {{ } Backpropagation e 2 t (s) = λ e 2 t (s) + V t+1 (1 V t+1 ) h. (3.8) } {{ } Backpropagation Die Anpassungsvorschriften der ET setzen sich aus zwei Teilen zusammen. Der vordere Teil sorgt mit λe t (s) für die bereits in Kapitel auf Seite 30 beschriebene zeitliche Abschwächung der ET. Wird der Parameter λ auf den Wert 0 gesetzt, entfällt dieser Anteil komplett. Das Herzstück des Lernprozesses stellt der hintere Anteil der beiden Formeln dar. Es handelt sich hierbei um ein Verfahren, welches Backpropagation genannt wird. Der nachfolgende Abschnitt erläutert dieses Verfahren. Anpassen der Netzgewichte mithilfe von Backpropagation Eines der bekanntesten Verfahren, um den Schätzfehler der Zielfunktion eines KNN zu reduzieren, ist das Verfahren der Backpropagation. Auch der TD-Algorithmus verwendet Backpropagation, um die notwendige Anpassung der Netzgewichte zu ermitteln. Das Verfahren trägt seinen Namen, da es den Schätzfehler entgegen der gewöhnlichen Signalflussrichtung eines vorwärtsgerichteten KNN rückwärts durch das Netz propagiert, um so die Gewichte anzupassen. Wird Backpropagation ohne die Methoden des RL verwendet, sondern stattdessen überwachtes Lernen eingesetzt,

79 3.4. Implementierung des neuronalen Agenten 69 so ist der Schätzfehler E des Netzes wie folgt als mittlerer quadratischer Fehler: E = 1 2 p o i t i 2, (3.9) i=1 mit den vorgegeben Zielwerten t und den propagierten Schätzungen o des Netzes definiert. Um diesen Fehler zukünftig zu minimieren, setzt Backpropagation das Gradientenverfahren ein und passt die Netzgewichte entgegen der Richtung des Gradienten an: E = ( E w 1, E,..., E ), (3.10) w 2 w l w i = γ E w i, mit i = 1,..., l. (3.11) Da die Anpassung der Verbindungsgewichte stets entgegen der Richtung des Gradienten stattfinden, nähert sich der Fehler einem lokalen Minimum an, allerdings darf hierzu die Schrittweite γ nicht zu groß sein, da sonst die Gefahr besteht das Minimum wieder zu verlassen [vgl. Roj96, S ]. Wird für den Lernprozess statt des überwachten Lernens der TD- Algorithmus eingesetzt, so lässt sich die Minimierung des mittleren quadratischen Fehlers wie folgt darstellen: θt+1 = θt 1 2 α θt [V π (s t ) V t (s t )] 2 (3.12) = θt + α [V π (s t ) V t (s t )] θt V t (s t ). (3.13) Der Parameter-Vektor θt repräsentiert die Implementierung von V t. Im vorliegenden Fall beschreibt θt somit die Konfiguration des neuronalen Agenten. In Verbindung mit ET ändert sich die Berechnungsvorschrift zur Minimierung des mittleren quadratischen Fehlers zu: θt+1 = θt + αδ t e t, (3.14)

80 70 Kapitel 3. Erlernen einer Spielstrategie wobei der TD-Fehler nach der bereits bekannten Formel 2.17 auf Seite 34 und e t durch: e t = γλ e t 1 + θt V t (s t ) (3.15) berechnet wird [vgl. SB98, S ]. Ein Vergleich zwischen den Formeln 3.15 und 3.7 auf Seite 68 bzw. 3.8 auf Seite 68 lässt bereits auf eine gewisse Ähnlichkeit schließen. Dass die gezeigten Formeln gleichbedeutend sind, ist auf den ersten Blick jedoch nicht ersichtlich, allerdings hilft es an dieser Stelle, den Parameter-Vektor θt genauer zu untersuchen. Dieser beschreibt, wie bereits erwähnt, die Konfiguration des implementierten neuronalen Netzes. Die Konfiguration zum Zeitpunkt t ist durch das Eingabemuster, die Netzgewichte und die Aktivierungsfunktionen gegeben. Den genauen Zusammenhang verdeutlicht die Formel 3.2. Für die verdeckte Schicht und für die Ausgabeschicht des Netzes wird jeweils die durch Formel 2.2 auf Seite 23 definierte, sigmoide Aktivierungsfunktion verwendet. Die Ableitung dieser Funktion ist durch die Vorschrift 2.2 auf Seite 23 gegeben. In Abbildung 3.10 auf der nächsten Seite ist eine vereinfachte Darstellung des künstlichen neuronalen Agenten zu sehen. Anhand dieser Abbildung lässt sich in Kombination mit der Ableitungsvorschrift erkennen, dass es sich bei dem Ausdruck V t+1 (1 V t+1 ) h um den Gradienten der Aktivierungsfunktion der Ausgabeschicht des Netzes handelt. Der Vektor h setzt sich aus den Ausgangswerten der verdeckten Neuronen zusammen, welche gewichtet durch den Gewichtsvektor W 2 das Eingangsmuster des Ausgabeneurons bilden. Durch den gebildeten Gradienten zeigt die Gewichtsänderung bereits in die Richtung des lokalen Fehlerminimums. Den Betrag der Änderung liefert der ermittelte Fehler, wie anhand der Formel 3.4 auf Seite 67 ersichtlich wird. Die Anpassung des Gewichtsvektors W 2 verläuft nach demselben Prinzip. Der einzige Unterschied ist, dass der TD-Fehler hierfür über zwei Aktivierungsfunktionen hinweg propagiert werden muss. Erkennen lässt sich dies an der zusätzlichen Ableitung in Formel 3.7 auf Seite 68.

81 3.4. Implementierung des neuronalen Agenten 71 Verarbeitung des Eingabemusters Eingabeschicht verdeckte Schicht Ausgabeschicht p 1 p 1 w 1 1,1 h 1 w 2 1,1 p 2 p 2 h 2 V... p 43 p 43 h 7 w 1 43,7 w 2 7,1 Anpassung der Netzgewichte Abbildung 3.10.: Vereinfachte schematische Darstellung des implementierten KNN. Wie leicht zu erkennen ist, handelt es sich hierbei um eine mehrschichtige Netzstruktur. Die Eingabeschicht besteht aus SINs, während die verdeckte Schicht und die Ausgabeschicht sich aus MINs zusammensetzen.

82 72 Kapitel 3. Erlernen einer Spielstrategie Der Einuss der initialen Netzgewichte Der Lernprozess eines KNN kann durch viele Faktoren negativ beeinflusst werden. Dies kann so weit führen, dass ein Annähern der Netzausgabe an die gewünschte Zielfunktion für den verwendeten Algorithmus unmöglich wird. Besonders kritisch gestaltet sich die richtige Wahl der initialen Werte der Netzgewichte. Weisen diese einen zu hohen Betrag auf, wird die Fehleroberfläche durch die existierenden Extrema stark zerklüftet. Dadurch kann es geschehen, dass der Backpropagationalgorithmus in ein zufällig erzeugtes Minimum läuft, welches er nicht mehr verlassen kann. Besser ist es daher, die Gewichte aus relativ kleinen Zufallswerten zu erzeugen. Somit kann das Backpropagationverfahren die beinahe flache Fehleroberfläche durch Verändern der Netzgewichte selbstständig an den nötigen Stellen verformen. In der Praxis ist ein erfolgreicher Lernprozess trotz der Verwendung kleiner Zufallswerte nicht garantiert. Es ist daher üblich mehrere Netze zu trainieren und anschließend das mit dem größten Lernerfolg bzw. das mit dem geringsten Fehler zu verwenden [vgl. Wal07]. Erweiterungen des verwendeten Lernalgorithmus Zusätzlich zu der zeitlichen Abschwächung der Schrittweitenparameter α, β wurde der TD(λ)-Lernalgorithmus an mehreren Stellen erweitert. Eine elementare Änderung stellt hierbei die hinzugefügte Möglichkeit dar, den neuronalen Agenten während des Lernvorgangs gegen andere, durch den Computer gesteuerte Spieler antreten zu lassen. Die dazu notwendigen Anpassungen des Lernverfahrens orientieren sich an den Algorithmen Self- Play bzw. Human-Computer-Play, die ihrerseits selbst Erweiterungen des gewöhnlichen TD(λ)-Algorithmus sind [vgl. Kon08, S. 5-7]. Listing 3.3 auf der nächsten Seite zeigt den Pseudocode des für das Training des neuronalen Agenten verwendeten Algorithmus. Der dort eingeführte Parameter ɛ definiert die Wahrscheinlichkeit, mit welcher der lernende Agent einen zufälligen Spielzug ausführt. Dieser zufällig ausgeführte Spielzug sorgt dafür, dass sich der Anteil des durch den Agenten besuchten Zustandsraums S erhöht. Da dieser Spielzug die Siegchance des Netzes nicht zwangsläufig verbessert, wird θt nicht angepasst.

83 3.4. Implementierung des neuronalen Agenten 73 1 I n i t i a l i s i e r e θ zuf ä l l i g, e = 0 2 Wiederhole ( f ür jeden Spieldurchgang ) 3 Wiederhole ( f ür jeden Spielzug ) 4 Wenn KNN Spielzug : 5 Mit Wahrscheinlichkeit ɛ : 6 Bestimmte a zuf ä l l i g ( e x p l o r a t i v e move) 7 Mit Wahrscheinlichkeit 1 ɛ : 8 Wä h l e a das V maximiert ( greedy move) 9 sonst : 10 Warte auf Spielzug des G egens piel ers 11 Beobachte Reward r und nä chsten Zustand s 12 δ r + γv(s ) V(s) 13 e γλ e + θ V(s) 14 Wenn KNN Spielzug und greedy move : 15 θ = θ + αδ e 16 Wenn S p i e l endet ( Sieg, Niederlage, Unentschieden ) : 17 Verlasse S c h l e i f e 18 sonst : 19 Spielerwechsel Listing 3.3: Pseudocode des angepassten TD(λ)-Algorithmus. Es ist gerade zu Beginn des Lernprozesses eine gute Idee, viele zufällige Spielzüge durchzuführen, um das KNN möglichst flexibel zu trainieren. Gegen Ende des Trainings ist dies jedoch meist nicht mehr notwendig, da bei einem erfolgreichen Lernvorgang V t bereits eine Generalisierung des Netzes stattgefunden hat (vgl. Kapitel 2.2 auf Seite 28). Aus diesem Grund wird der Betrag von ɛ während des Lernvorgangs durch den implementierten Lernalgorithmus verkleinert. Ausgehend vom initialen Wert ɛ 0 reduziert sich die Wahrscheinlichkeit eines zufälligen Spielzugs nach der Formel: ɛ(k) = ɛ 0 k 2 k 2 2ɛ 0 k + ɛ 0, (3.16) max k max wobei k die Nummer des aktuellen Spieldurchgangs und k max die Gesamtzahl an Trainingsspielen ist. Da die Änderung quadratisch verläuft, sinkt die Wahrscheinlichkeit auf einen zufälligen Spielzug zu Beginn des Lernprozesses stärker als im späteren Trainingsverlauf.

84 74 Kapitel 3. Erlernen einer Spielstrategie Parameter Wert λ 0,2 ɛ 0,3 α 1,0 β 1,0 γ 0,9 Tabelle 3.3.: Verwendete Trainingsparameter für das KNN Lernphase des neuronalen Agenten Das Training in einer bestimmten Disziplin hat das Ziel, sich zu verbessern und Fortschritte innerhalb dieser Disziplin zu erzielen. Wie aus dem alltäglichen Leben bekannt ist, gehört das beständige Üben zu einem erfolgreichen Training dazu. Auch der neuronale Agent muss viele Übungsspiele durchführen, um eine zielführende Strategie für das Spiel Vier gewinnt zu erlernen. Um das KNN mithilfe der in Kapitel auf Seite 44 vorgestellten Software zu trainieren, wurde die Spielerklasse RLPlayer implementiert. Die Spielerklasse dient als Schnittstelle zwischen dem neuronalen Netz und der abstrahierten Spielumgebung. Ebenso wie die bereits vorgestellten anderen Spielerklassen RandomPlayer, NegMaxPlayer und AlphaBetaPlayer ist RLPlayer von der abstrakten Klasse Player abgeleitet. Somit fügt sie sich nahtlos in das Trainingsprogramm ein Trainingsspiele gegen die Klasse AlphaBetaPlayer Seine ersten Trainingsspiele bestreitet der neuronale Agent gegen die implementierte Spielerklasse AlphaBetaPlayer. Das Training umfasst Spieldurchläufe, welche protokolliert und anschließend analysiert werden. Die Suchtiefe des Alpha-Beta-Algorithmus ist auf den Wert 4 eingestellt. Dieser Wert genügt dem Alpha-Beta-Algorithmus, um bei einem Testdurchlauf von Spielen gegen die Spielerklasse RandomPlayer mit einer Siegquote von exakt 100 % zu bestehen. Die vollständige Konfigurati-

85 3.5. Lernphase des neuronalen Agenten 75 1 Verlauf der Gewinnrate RLPlayer AlphaBetaPlayer 0.8 Gewinnrate Nummer des Spieldurchgangs Abbildung 3.11.: Die beim Training gegen den Spieler AlphaBetaPlayer erreichte Siegquote. on der Lernparameter des KNN ist in Tabelle 3.3 aufgelistet. Der neuronale Agent besitzt die in Kapitel auf Seite 61 vorgestellte Struktur. Er setzt sich somit aus 43 Input-Neuronen (42 Neuronen und 1 Bias-Neuron), 7 verdeckten Neuronen (6 Neuronen und 1 Bias-Neuron) sowie einem Output-Neuron zusammen. Für die Aktivierungsfunktion der verdeckten Schicht und der Ausgabeschicht kommt jeweils die in Formel 2.2 auf Seite 23 definierte, sigmoide Funktion zum Einsatz. Die Gewichte des Netzes sind mit zufälligen Werten aus dem Bereich 0, , 6 belegt. Die Grafik 3.11 zeigt den Verlauf der während des Trainings aufgetretenen Gewinnrate bzw. Siegquote beider Spieler. Berechnet wurde die Gewinnrate durch die folgende Formel: Gewinnrate = Anzahl der Siege für Spieler x Anzahl der bisher gespielten Spiele (3.17) Der rote Graph steht für die Gewinnrate des neuronalen Agenten. Ana-

86 76 Kapitel 3. Erlernen einer Spielstrategie 45 Spielzüge pro Spiel Durchschnitt Anzahl der Spielzüge Nummer des Spieldurchgangs Abbildung 3.12.: Dargestellt sind die jeweils benötigten Spielzüge der absolvierten Spieldurchgänge. Insgesamt trat der künstliche neuronale Agent in Spielen gegen die Alpha-Beta-Suche an. Die Art der Darstellung bietet keine detaillierte Einsicht in die getätigten Spielzüge der beiden Kontrahenten. Allerdings gibt sie Aufschluss über die Spielstärkenentwicklung des lernenden Agenten. Dass die Anzahl der Spielzüge gegen Ende hin absolut konstant bleibt, deutet auf eine ständige Wiederholung des getätigten Spielablaufs hin. log dazu repräsentiert der grüne Graph die Siegquote des Alpha-Beta- Algorithmus. Wie gut zu erkennen ist, verliert das KNN zu Beginn des Lernprozesses fast jedes Spiel. Erste nennenswerte Erfolge erzielt der neuronale Agent ungefähr ab dem 300. Spiel. Weitere hundert Spiele später steigt die Gewinnrate kontinuierlich bis zum Ende des Trainings an. Der Grund hierfür ist, dass es dem KNN gelungen ist eine Strategie zu erlernen, die stets zum Sieg gegen den Alpha-Beta-Algorithmus führt. Was auf den ersten Blick nach einem großen Trainingserfolg aussieht, deutet bei genauerem Hinsehen auf ein Problem hin. Bei Betrachten von Abbildung 3.12 wird dieses Problem deutlich. Die Grafik zeigt die Anzahl an Spielzügen, die benötigt wurden, um das

87 3.5. Lernphase des neuronalen Agenten 77 1 Verlauf der Lernparameter α βε Parameter-Wert Nummer des Spielzugs Abbildung 3.13.: Wie zu erkennen ist, verringert sich die Schrittweite der Lernparameter mit fortschreitendem Trainingsverlauf. jeweilige Vier-gewinnt-Spiel zu beenden. Beendet werden kann das Spiel entweder durch einen Sieg von einem der beiden Spieler oder durch ein Unentschieden. Auffällig ist, dass die anfangs relativ kurzen Spiele mit der Zeit kontinuierlich länger wurden. Es brauchte also gegen Ende des Trainings mehr Spielzüge, um ein Spiel zu entscheiden. Dies verdeutlicht auch die blau gestrichelte Linie, welche die durchschnittliche Anzahl an Spielzügen pro Spiel über das gesamte Training hinweg angibt. Die zu Beginn des Lernprozesses vergleichsweise kurzen Spiele deuten darauf hin, dass der Alpha-Beta-Algorithmus seine anfänglichen Siege relativ schnell und leicht gegen den untrainierten Agenten erringen konnte. Das angesprochene Problem wird in der abgebildeten Grafik ungefähr ab dem 850. Spieldurchgang sichtbar. Hier ändert sich die Anzahl der getätigten Spielzüge praktisch nicht mehr. Dem Anschein nach findet also ab diesem Punkt stets derselbe Spielverlauf statt. Eine Analyse der in diesen Spieldurchgängen tatsächlich getätigten Spielzüge bestätigt dies

88 78 Kapitel 3. Erlernen einer Spielstrategie 8 7 Initiale Werte der Neuronen Werte > 0 Werte < 0 6 Nummer des hidden Neurons Nummer des Input-Neurons Abbildung 3.14.: Visualisierung der Gewichte des neuronalen Netzes. Zu sehen ist der Zustand vor dem Lernprozess, mit zufälligen initialisierten Werten. bis auf wenige Ausnahmen. Somit hat sich das KNN an genau einen Spielverlauf angepasst, anstatt eine allgemeine Vier-gewinnt-Strategie zu erlernen. Das Problem lässt sich auf zwei Ursachen zurückführen und war dadurch zu erwarten. Bei diesen beiden Ursachen handelt es sich um: Die Wahrscheinlichkeit eines zufälligen Spielzuges (explorative move) durch das KNN nimmt mit fortschreitendem Lernprozess ab. Der implementierte Alpha-Beta-Algorithmus führt stets den als am besten bewerteten Spielzug (greedy move) aus. In Abbildung 3.13 auf der vorherigen Seite ist der Verlauf der Lernparameter des verwendeten TD(λ)-Algorithmus dargestellt. Der rote Graph zeigt die zeitliche Entwicklung des Parameters α, welcher die Größenänderung der Netzgewichte zwischen der Eingangsschicht und der verdeckten Schicht bestimmt. Ein hoher Wert für α führt somit zu einer raschen Änderung der Gewichte. Die grün dargestellte Linie steht für den Parameter

89 3.5. Lernphase des neuronalen Agenten Werte der Neuronen nach der Lernphase Werte > 0 Werte < 0 6 Nummer des hidden Neurons Nummer des Input-Neurons Abbildung 3.15.: Dargestellt sind die Gewichtswerte des neuronalen Agenten nach Abschluss aller Trainingsspiele gegen die Alpha-Beta-Suche. β. Dieser besitzt dieselbe Funktion für die Netzgewichte zwischen der verdeckten Schicht und der Ausgangsschicht des neuronalen Netzes. Beide Parameter starten bei ihrem Initialwert, der zu Beginn des Trainings festgelegt wurde, und fallen dann nach den Formeln 3.3 und 3.4 auf Seite 67 linear ab. Die Änderung der Parameter ist allerdings auf die Spieldurchgänge und nicht auf die getätigten Spielzüge bezogen, weshalb der lineare Verlauf in der Grafik verzerrt dargestellt wird. Der blau dargestellte Graph in Abbildung 3.13 zeigt den zeitlichen Verlauf von ɛ. Dieser Parameter repräsentiert die Wahrscheinlichkeit eines zufälligen Spielzuges durch den neuronalen Agenten. Die Änderungsrate von ɛ ist durch die Formel 3.16 auf Seite 73 gegeben und verläuft quadratisch. In Abbildung 3.14 auf der vorherigen Seite sind die numerischen Werte der Netzgewichte vor Beginn des Lernprozesses durch ein Blasendiagramm dargestellt. Es handelt sich hierbei um alle 301 Gewichte, welche

90 80 Kapitel 3. Erlernen einer Spielstrategie die 43 Input-Neuronen mit den 7 Neuronen der verdeckten Schicht verbinden. Bei den dargestellten Werten handelt es sich um die vor dem Training zufällig ausgewählten Initialgewichte. Das Diagramm ist durch eine Matrix strukturiert, bei der die Input-Neuronen horizontal und die verdeckten Neuronen vertikal angeordnet sind. Am Kreuzungspunkt zweier Neuronen befindet sich das entsprechend zugeordnete Gewicht des KNN. Die Farbe der abgebildeten Kreise symbolisiert das Vorzeichen des numerischen Wertes. Positive Gewichte werden durch einen roten und negative Gewichte durch einen grünen Kreis kenntlich gemacht. Der Radius eines Kreises ist proportional zum Betrag des jeweiligen Netzgewichts. Die Skalierung der Kreise entspricht der horizontalen Achse des Plots. Zur besseren Übersicht sind die Kreise allerdings um den Faktor 2 größer dargestellt, als der zugeordnete numerische Wert vorgibt. Um den Einfluss des durchgeführten Trainings auf die Gewichte des Netzes einschätzen zu können, sind in Abbildung 3.15 auf der vorherigen Seite dieselben Gewichte nach Beenden des Lernprozesses dargestellt Trainingsspiele gegen die Klasse RandomPlayer Im direkten Anschluss an das vorangegangene Training beginnt ein zweiter Lernprozess gegen die implementierte Spielerklasse RandomPlayer. Auch in diesem Durchlauf gilt es für den neuronalen Agenten, Trainingsspiele zu absolvieren. Statt jedoch wieder mit zufällig initialisierten Gewichten zu starten, wird dieses Mal auf die bereits angepassten Gewichte zurückgegriffen. Ansonsten gibt es keine weiteren Änderungen und es gelten weiterhin die in Tabelle 3.3 auf Seite 74 angegebenen Trainingsparameter. Der Plot 3.16 auf der nächsten Seite zeigt die Gewinnrate beider Spieler für die absolvierten Trainingsspiele. Wie bereits zuvor, zeigt der rote Graph die Siegquote des neuronalen Agenten, während die grüne Linie selbiges für den zufällig spielenden Gegenspieler angibt. Der Verlauf beider Graphen unterscheidet sich stark von denen aus Grafik 3.11 auf Seite 75. Anhand des abgebildeten Verlaufs lassen sich jedoch drei Erkenntnisse gewinnen. Als Erstes fällt auf, dass die Gewinnrate des neuronalen Netzes zuerst bei 100 % startet, bald darauf auf ca. 85 %

91 3.5. Lernphase des neuronalen Agenten 81 1 Verlauf der Gewinnrate RLPlayer RandomPlayer 0.8 Gewinnrate Nummer des Spieldurchgangs Abbildung 3.16.: Die beim Training gegen den Spieler RandomPlayer erreichte Siegquote. einbricht und sich dann für eine kurze Zeit schnell in beide Richtungen ändert. Dies deutet darauf hin, dass die zuvor eingeübte Strategie nicht allgemein genug, sondern im Gegenteil zu speziell auf eine Spieleröffnung ausgelegt war. Auf dieses Problem wurde in Kapitel auf Seite 74 bereits hingewiesen. Anschließend fällt auf, dass sich der Verlauf der Gewinnrate beruhigt, d. h., dass sich nicht mehr in kurzer Zeit stark verändert. Dadurch wird deutlich, dass das Netz seine Strategie an den neuen Gegenspieler angepasst hat, indem es seine innere Struktur entsprechend verändert hat. Dies führt dann direkt zur dritten Erkenntnis. Trotz der Anpassung der Netzgewichte gelingt es dem neuronalen Agenten nicht, eine Gewinnrate von 100 % zu erreichen. Zumindest gegen den zufällig spielenden Spieler RandomPlayer besitzt der Alpha-Beta-Algorithmus demnach eine höhere Spielstärke. Die Grafik 3.17 auf der nächsten Seite zeigt die Anzahl der für jeden Spieldurchlauf benötigten Spielzüge. Wie in der entsprechenden

92 82 Kapitel 3. Erlernen einer Spielstrategie 45 Spielzüge pro Spiel Durchschnitt Anzahl der Spielzüge Nummer des Spieldurchgangs Abbildung 3.17.: Die Spielzüge pro Spiel gegen den Spieler RandomPlayer. 8 7 Werte der Neuronen nach der Lernphase Werte > 0 Werte < 0 6 Nummer des hidden Neurons Nummer des Input-Neurons Abbildung 3.18.: Werte der Netzgewichte nach dem Training gegen den Spieler RandomPlayer.

93 3.5. Lernphase des neuronalen Agenten 83 Abbildung aus dem vorangegangenen Training entspricht die blaue Linie dem Verlauf der durchschnittlich gespielten Züge pro Vier-gewinnt- Spieldurchgang. Im Gegensatz zum ersten Trainingsdurchlauf stellt sich während des Lernvorgangs kein fester Spielablauf ein. Das KNN muss somit eine Strategie finden, die zumindest mehrere Varianten der Spieleröffnung abdeckt. Für den späteren Spielverlauf stellt die Klasse RandomPlayer jedoch einen zu schlechten Trainingspartner dar, da die zufällige Spielweise allgemein zu viele Siegchancen ungenutzt lässt. Die Abbildung 3.18 auf der vorherigen Seite zeigt die Gewichte des KNN nach Abschluss des zweiten Lernprozesses. Im direkten Vergleich zu Grafik 3.15 auf Seite 79 fällt auf, dass sich die Beträge einzelner Netzgewichte vergleichsweise stark vergrößert haben. Dies bedeutet, dass die Verbindungen zwischen den zugehörigen Neuronen der Eingangsschicht und der verdeckten Schicht einen erhöhten Anteil bei der Strategiebildung einnahmen Anpassung der Spielweise Wie bereits in den beiden vorangegangenen Kapiteln gezeigt wurde, ändern sich durch den Lernprozess die Gewichte des neuronalen Netzes. Da diese Anpassung gleichbedeutend mit einer Änderung der Netzkonfiguration θt und damit letztendlich der geschätzten Zielfunktion V t ist, ändert sich folglich auch die Spielweise des Agenten. Die Abbildung 3.19 auf der nächsten Seite und 85 zeigt dies beispielhaft an dem ersten und letzten Vier-gewinnt-Spiel eines Lernprozesses mit Trainingsspielen. Im ersten Durchgang eröffnet der neuronale Agent das Spiel durch einen Einwurf seines Spielsteins in die erste Spalte des Spielbretts. Anschließend setzt er im weiteren Spielverlauf darauf, das Spiel in der ersten Spalte für sich entscheiden zu können. Im tausendsten Spiel hat der Agent seine Strategie aufgrund der Erfahrungen der vorangegangenen Durchgänge angepasst. Er eröffnet das Spiel in der mittleren Spalte. Diese Spalte ist für den anziehenden Spieler die beste Wahl, da sie die meisten Siegchancen im Eröffnungsspiel bietet. Durch den Lernerfolg der absolvierten Übungsspiele gelingt es dem KNN, das Spiel für sich zu entscheiden.

94 84 Kapitel 3. Erlernen einer Spielstrategie (a) (b) Abbildung 3.19.: Das neuronale Netz passt seine Strategie während des Trainings an die Spielweise seines Gegenspielers an. Die Bilder (a) und (b) zeigen Spieleröffnung und Ende beim ersten Trainingsspiel.

95 3.5. Lernphase des neuronalen Agenten 85 (c) (d) Abbildung 3.19.: (Fortsetzung) In den Abbildungen (c) und (d) sind Spieleröffnung und Ende des letzten Trainingsspiels dargestellt.

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Vollständigkeit halber aufgeführt. Gehen wir einmal davon aus, dass die von uns angenommenen 70% im Beispiel exakt berechnet sind. Was würde

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

Konzepte der Informatik

Konzepte der Informatik Konzepte der Informatik Vorkurs Informatik zum WS 2011/2012 26.09. - 30.09.2011 17.10. - 21.10.2011 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel 1 aus "Abenteuer Informatik" von Jens

Mehr

Erstellen einer digitalen Signatur für Adobe-Formulare

Erstellen einer digitalen Signatur für Adobe-Formulare Erstellen einer digitalen Signatur für Adobe-Formulare (Hubert Straub 24.07.13) Die beiden Probleme beim Versenden digitaler Dokumente sind einmal die Prüfung der Authentizität des Absenders (was meist

Mehr

Einführung in neuronale Netze

Einführung in neuronale Netze Einführung in neuronale Netze Florian Wenzel Neurorobotik Institut für Informatik Humboldt-Universität zu Berlin 1. Mai 2012 1 / 20 Überblick 1 Motivation 2 Das Neuron 3 Aufbau des Netzes 4 Neuronale Netze

Mehr

FlowFact Alle Versionen

FlowFact Alle Versionen Training FlowFact Alle Versionen Stand: 29.09.2005 Rechnung schreiben Einführung Wie Sie inzwischen wissen, können die unterschiedlichsten Daten über verknüpfte Fenster miteinander verbunden werden. Für

Mehr

Fehler und Probleme bei Auswahl und Installation eines Dokumentenmanagement Systems

Fehler und Probleme bei Auswahl und Installation eines Dokumentenmanagement Systems Fehler und Probleme bei Auswahl und Installation eines Dokumentenmanagement Systems Name: Bruno Handler Funktion: Marketing/Vertrieb Organisation: AXAVIA Software GmbH Liebe Leserinnen und liebe Leser,

Mehr

Die Lernumgebung des Projekts Informationskompetenz

Die Lernumgebung des Projekts Informationskompetenz Beitrag für Bibliothek aktuell Die Lernumgebung des Projekts Informationskompetenz Von Sandra Merten Im Rahmen des Projekts Informationskompetenz wurde ein Musterkurs entwickelt, der den Lehrenden als

Mehr

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Dateiname: ecdl5_01_00_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 5 Datenbank - Grundlagen

Mehr

Datensicherung. Beschreibung der Datensicherung

Datensicherung. Beschreibung der Datensicherung Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten

Mehr

Leitfaden zur Installation von Bitbyters.WinShutdown

Leitfaden zur Installation von Bitbyters.WinShutdown Leitfaden zur Installation von Bitbyters.WinShutdown für Windows 32 Bit 98/NT/2000/XP/2003/2008 Der BitByters.WinShutDown ist ein Tool mit dem Sie Programme beim Herunterfahren Ihres Systems ausführen

Mehr

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

Mehr

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 von Markus Mack Stand: Samstag, 17. April 2004 Inhaltsverzeichnis 1. Systemvorraussetzungen...3 2. Installation und Start...3 3. Anpassen der Tabelle...3

Mehr

Dokumentation zum Spielserver der Software Challenge

Dokumentation zum Spielserver der Software Challenge Dokumentation zum Spielserver der Software Challenge 10.08.2011 Inhaltsverzeichnis: Programmoberfläche... 2 Ein neues Spiel erstellen... 2 Spielfeldoberfläche... 4 Spielwiederholung laden... 5 Testdurchläufe...

Mehr

4 Aufzählungen und Listen erstellen

4 Aufzählungen und Listen erstellen 4 4 Aufzählungen und Listen erstellen Beim Strukturieren von Dokumenten und Inhalten stellen Listen und Aufzählungen wichtige Werkzeuge dar. Mit ihnen lässt sich so ziemlich alles sortieren, was auf einer

Mehr

Binärdarstellung von Fliesskommazahlen

Binärdarstellung von Fliesskommazahlen Binärdarstellung von Fliesskommazahlen 1. IEEE 754 Gleitkommazahl im Single-Format So sind in Gleitkommazahlen im IEEE 754-Standard aufgebaut: 31 30 24 23 0 S E E E E E E E E M M M M M M M M M M M M M

Mehr

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Suche schlecht beschriftete Bilder mit Eigenen Abfragen Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere

Mehr

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER Abamsoft Finos in Verbindung mit der Webshopanbindung wurde speziell auf die Shop-Software shop to date von DATA BECKER abgestimmt. Mit

Mehr

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

Mehr

In 12 Schritten zum mobilen PC mit Paragon Drive Copy 11 und Microsoft Windows Virtual PC

In 12 Schritten zum mobilen PC mit Paragon Drive Copy 11 und Microsoft Windows Virtual PC PARAGON Technologie GmbH, Systemprogrammierung Heinrich-von-Stephan-Str. 5c 79100 Freiburg, Germany Tel. +49 (0) 761 59018201 Fax +49 (0) 761 59018130 Internet www.paragon-software.com Email sales@paragon-software.com

Mehr

Sowohl die Malstreifen als auch die Neperschen Streifen können auch in anderen Stellenwertsystemen verwendet werden.

Sowohl die Malstreifen als auch die Neperschen Streifen können auch in anderen Stellenwertsystemen verwendet werden. Multiplikation Die schriftliche Multiplikation ist etwas schwieriger als die Addition. Zum einen setzt sie das kleine Einmaleins voraus, zum anderen sind die Überträge, die zu merken sind und häufig in

Mehr

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten Das große x -4 Alles über das Wer kann beantragen? Generell kann jeder beantragen! Eltern (Mütter UND Väter), die schon während ihrer Elternzeit wieder in Teilzeit arbeiten möchten. Eltern, die während

Mehr

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0) Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0) Peter Koos 03. Dezember 2015 0 Inhaltsverzeichnis 1 Voraussetzung... 3 2 Hintergrundinformationen... 3 2.1 Installationsarten...

Mehr

infach Geld FBV Ihr Weg zum finanzellen Erfolg Florian Mock

infach Geld FBV Ihr Weg zum finanzellen Erfolg Florian Mock infach Ihr Weg zum finanzellen Erfolg Geld Florian Mock FBV Die Grundlagen für finanziellen Erfolg Denn Sie müssten anschließend wieder vom Gehaltskonto Rückzahlungen in Höhe der Entnahmen vornehmen, um

Mehr

Zeichen bei Zahlen entschlüsseln

Zeichen bei Zahlen entschlüsseln Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren

Mehr

Anhand des bereits hergeleiteten Models erstellen wir nun mit der Formel

Anhand des bereits hergeleiteten Models erstellen wir nun mit der Formel Ausarbeitung zum Proseminar Finanzmathematische Modelle und Simulationen bei Raphael Kruse und Prof. Dr. Wolf-Jürgen Beyn zum Thema Simulation des Anlagenpreismodels von Simon Uphus im WS 09/10 Zusammenfassung

Mehr

In 15 einfachen Schritten zum mobilen PC mit Paragon Drive Copy 10 und Microsoft Windows Virtual PC

In 15 einfachen Schritten zum mobilen PC mit Paragon Drive Copy 10 und Microsoft Windows Virtual PC PARAGON Technologie GmbH, Systemprogrammierung Heinrich-von-Stephan-Str. 5c 79100 Freiburg, Germany Tel. +49 (0) 761 59018201 Fax +49 (0) 761 59018130 Internet www.paragon-software.com Email sales@paragon-software.com

Mehr

1. Einführung. 2. Die Abschlagsdefinition

1. Einführung. 2. Die Abschlagsdefinition 1. Einführung orgamax bietet die Möglichkeit, Abschlagszahlungen (oder auch Akontozahlungen) zu erstellen. Die Erstellung der Abschlagsrechnung beginnt dabei immer im Auftrag, in dem Höhe und Anzahl der

Mehr

Robot Karol für Delphi

Robot Karol für Delphi Robot Karol für Delphi Reinhard Nitzsche, OSZ Handel I Version 0.1 vom 24. Januar 2003 Zusammenfassung Nach der Einführung in die (variablenfreie) Programmierung mit Robot Karol von Freiberger und Krško

Mehr

Austausch- bzw. Übergangsprozesse und Gleichgewichtsverteilungen

Austausch- bzw. Übergangsprozesse und Gleichgewichtsverteilungen Austausch- bzw. Übergangsrozesse und Gleichgewichtsverteilungen Wir betrachten ein System mit verschiedenen Zuständen, zwischen denen ein Austausch stattfinden kann. Etwa soziale Schichten in einer Gesellschaft:

Mehr

Jede Zahl muss dabei einzeln umgerechnet werden. Beginnen wir also ganz am Anfang mit der Zahl,192.

Jede Zahl muss dabei einzeln umgerechnet werden. Beginnen wir also ganz am Anfang mit der Zahl,192. Binäres und dezimales Zahlensystem Ziel In diesem ersten Schritt geht es darum, die grundlegende Umrechnung aus dem Dezimalsystem in das Binärsystem zu verstehen. Zusätzlich wird auch die andere Richtung,

Mehr

Basisanforderungen: EVA-Prinzips. Erweiterte Anforderungen: wirtschaftlichen und privaten Alltag.

Basisanforderungen: EVA-Prinzips. Erweiterte Anforderungen: wirtschaftlichen und privaten Alltag. Basisanforderungen: 1. Erstelle eine einfache Motor-Steuerung (siehe Anforderungen) 2. Erläutere den Begriff Steuerung. 3. Benenne die Sensoren und Aktoren dieser Steuerung. 4. Beschreibe die Informationsverarbeitung

Mehr

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis Unterrichtsmaterialien in digitaler und in gedruckter Form Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis Das komplette Material finden Sie hier: Download bei School-Scout.de

Mehr

Physik & Musik. Stimmgabeln. 1 Auftrag

Physik & Musik. Stimmgabeln. 1 Auftrag Physik & Musik 5 Stimmgabeln 1 Auftrag Physik & Musik Stimmgabeln Seite 1 Stimmgabeln Bearbeitungszeit: 30 Minuten Sozialform: Einzel- oder Partnerarbeit Voraussetzung: Posten 1: "Wie funktioniert ein

Mehr

Der einfache Weg zum CFX-Demokonto

Der einfache Weg zum CFX-Demokonto Der einfache Weg zum CFX-Demokonto Diese Anleitung hilft Ihnen bei der Eröffnung eines Demokontos beim CFX Broker. Jeder Schritt bis zur vollständigen Eröffnung wird Ihnen im Folgenden erklärt. Zur besseren

Mehr

Modellbildungssysteme: Pädagogische und didaktische Ziele

Modellbildungssysteme: Pädagogische und didaktische Ziele Modellbildungssysteme: Pädagogische und didaktische Ziele Was hat Modellbildung mit der Schule zu tun? Der Bildungsplan 1994 formuliert: "Die schnelle Zunahme des Wissens, die hohe Differenzierung und

Mehr

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv Roboter programmieren mit NXC für Lego Mindstorms NXT 1. Auflage Roboter programmieren mit NXC für Lego Mindstorms NXT schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv Verlag

Mehr

Kapitalerhöhung - Verbuchung

Kapitalerhöhung - Verbuchung Kapitalerhöhung - Verbuchung Beschreibung Eine Kapitalerhöhung ist eine Erhöhung des Aktienkapitals einer Aktiengesellschaft durch Emission von en Aktien. Es gibt unterschiedliche Formen von Kapitalerhöhung.

Mehr

VB.net Programmierung und Beispielprogramm für GSV

VB.net Programmierung und Beispielprogramm für GSV VB.net Programmierung und Beispielprogramm für GSV Dokumentation Stand vom 26.05.2011 Tel +49 (0)3302 78620 60, Fax +49 (0)3302 78620 69, info@me-systeme.de, www.me-systeme.de 1 Inhaltsverzeichnis Vorwort...2

Mehr

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.

Mehr

sm@rt-tan plus Flickerfeld bewegt sich nicht

sm@rt-tan plus Flickerfeld bewegt sich nicht Technischer Hintergrund Um die Verwendung des Verfahrens Sm@rt-TAN plus des neuen sicheren TAN- Verfahrens so komfortabel wie möglich zu gestalten, wurde eine Möglichkeit geschaffen, die Angaben einer

Mehr

Dokumentation: Balanced Scorecard

Dokumentation: Balanced Scorecard Dokumentation: Balanced Scorecard 1. Einleitung Eine Balanced Scorecard (BSC) ist eine kennzahlenbasierte Managementmethode, welche sowohl Visionen als auch Strategien eines Unternehmens und relevante

Mehr

Local Control Network Technische Dokumentation

Local Control Network Technische Dokumentation Steuerung von Hifi-Anlagen mit der LCN-GVS Häufig wird der Wunsch geäußert, eine Hi-Fi-Anlage in die Steuerung der LCN-GVS einzubinden. Auch das ist realisierbar. Für die hier gezeigte Lösung müssen wenige

Mehr

Anwendungshinweise zur Anwendung der Soziometrie

Anwendungshinweise zur Anwendung der Soziometrie Anwendungshinweise zur Anwendung der Soziometrie Einführung Die Soziometrie ist ein Verfahren, welches sich besonders gut dafür eignet, Beziehungen zwischen Mitgliedern einer Gruppe darzustellen. Das Verfahren

Mehr

Güte von Tests. die Wahrscheinlichkeit für den Fehler 2. Art bei der Testentscheidung, nämlich. falsch ist. Darauf haben wir bereits im Kapitel über

Güte von Tests. die Wahrscheinlichkeit für den Fehler 2. Art bei der Testentscheidung, nämlich. falsch ist. Darauf haben wir bereits im Kapitel über Güte von s Grundlegendes zum Konzept der Güte Ableitung der Gütefunktion des Gauss im Einstichprobenproblem Grafische Darstellung der Gütefunktionen des Gauss im Einstichprobenproblem Ableitung der Gütefunktion

Mehr

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können.

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können. Excel-Schnittstelle Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können. Voraussetzung: Microsoft Office Excel ab Version 2000 Zum verwendeten Beispiel:

Mehr

Sie werden sehen, dass Sie für uns nur noch den direkten PDF-Export benötigen. Warum?

Sie werden sehen, dass Sie für uns nur noch den direkten PDF-Export benötigen. Warum? Leitfaden zur Druckdatenerstellung Inhalt: 1. Download und Installation der ECI-Profile 2. Farbeinstellungen der Adobe Creative Suite Bitte beachten! In diesem kleinen Leitfaden möchten wir auf die Druckdatenerstellung

Mehr

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte 50. Mathematik-Olympiade. Stufe (Regionalrunde) Klasse 3 Lösungen c 00 Aufgabenausschuss des Mathematik-Olympiaden e.v. www.mathematik-olympiaden.de. Alle Rechte vorbehalten. 503 Lösung 0 Punkte Es seien

Mehr

Avira Support Collector. Kurzanleitung

Avira Support Collector. Kurzanleitung Avira Support Collector Kurzanleitung Inhaltsverzeichnis 1. Einleitung... 3 2. Ausführung des Avira Support Collectors... 3 2.1 Auswahl des Modus...4 3. Einsammeln der Informationen... 5 4. Auswertung

Mehr

Lineare Gleichungssysteme

Lineare Gleichungssysteme Lineare Gleichungssysteme 1 Zwei Gleichungen mit zwei Unbekannten Es kommt häufig vor, dass man nicht mit einer Variablen alleine auskommt, um ein Problem zu lösen. Das folgende Beispiel soll dies verdeutlichen

Mehr

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum C A R L V O N O S S I E T Z K Y Agile Vorgehensmodelle in der Softwareentwicklung: Scrum Johannes Diemke Vortrag im Rahmen der Projektgruppe Oldenburger Robot Soccer Team im Wintersemester 2009/2010 Was

Mehr

Überprüfung der digital signierten E-Rechnung

Überprüfung der digital signierten E-Rechnung Überprüfung der digital signierten E-Rechnung Aufgrund des BMF-Erlasses vom Juli 2005 (BMF-010219/0183-IV/9/2005) gelten ab 01.01.2006 nur noch jene elektronischen Rechnungen als vorsteuerabzugspflichtig,

Mehr

Um zusammenfassende Berichte zu erstellen, gehen Sie folgendermaßen vor:

Um zusammenfassende Berichte zu erstellen, gehen Sie folgendermaßen vor: Ergebnisreport: mehrere Lehrveranstaltungen zusammenfassen 1 1. Ordner anlegen In der Rolle des Berichterstellers (siehe EvaSys-Editor links oben) können zusammenfassende Ergebnisberichte über mehrere

Mehr

Lernwerkstatt 9 privat- Freischaltung

Lernwerkstatt 9 privat- Freischaltung Was tun, wenn mein Rechner immer wieder die Freischaltung der Lernwerkstatt 9 privat verliert und ich die Ursache dafür nicht finden kann? Normalerweise genügt es, genau eine einzige online-freischaltung

Mehr

Urlaubsregel in David

Urlaubsregel in David Urlaubsregel in David Inhaltsverzeichnis KlickDown Beitrag von Tobit...3 Präambel...3 Benachrichtigung externer Absender...3 Erstellen oder Anpassen des Anworttextes...3 Erstellen oder Anpassen der Auto-Reply-Regel...5

Mehr

Welche Unterschiede gibt es zwischen einem CAPAund einem Audiometrie- Test?

Welche Unterschiede gibt es zwischen einem CAPAund einem Audiometrie- Test? Welche Unterschiede gibt es zwischen einem CAPAund einem Audiometrie- Test? Auch wenn die Messungsmethoden ähnlich sind, ist das Ziel beider Systeme jedoch ein anderes. Gwenolé NEXER g.nexer@hearin gp

Mehr

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

WIE WIRKLICH IST DIE WIRKLICHKEIT WIE SCHNELL WERDEN SMART GRIDS WIRKLICH BENÖTIGT? DI Dr.techn. Thomas Karl Schuster Wien Energie Stromnetz GmbH

WIE WIRKLICH IST DIE WIRKLICHKEIT WIE SCHNELL WERDEN SMART GRIDS WIRKLICH BENÖTIGT? DI Dr.techn. Thomas Karl Schuster Wien Energie Stromnetz GmbH WIE WIRKLICH IST DIE WIRKLICHKEIT WIE SCHNELL WERDEN SMART GRIDS WIRKLICH BENÖTIGT? DI Dr.techn. Thomas Karl Schuster Wien Energie Stromnetz GmbH Agenda Einleitung Historisches zum Thema Smart Definitionen

Mehr

Lineare Gleichungssysteme

Lineare Gleichungssysteme Brückenkurs Mathematik TU Dresden 2015 Lineare Gleichungssysteme Schwerpunkte: Modellbildung geometrische Interpretation Lösungsmethoden Prof. Dr. F. Schuricht TU Dresden, Fachbereich Mathematik auf der

Mehr

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierte Programmierung für Anfänger am Beispiel PHP Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten

Mehr

Funktionsbeschreibung. Lieferantenbewertung. von IT Consulting Kauka GmbH

Funktionsbeschreibung. Lieferantenbewertung. von IT Consulting Kauka GmbH Funktionsbeschreibung Lieferantenbewertung von IT Consulting Kauka GmbH Stand 16.02.2010 odul LBW Das Modul LBW... 3 1. Konfiguration... 4 1.1 ppm... 4 1.2 Zertifikate... 5 1.3 Reklamationsverhalten...

Mehr

EasyWk DAS Schwimmwettkampfprogramm

EasyWk DAS Schwimmwettkampfprogramm EasyWk DAS Schwimmwettkampfprogramm Arbeiten mit OMEGA ARES 21 EasyWk - DAS Schwimmwettkampfprogramm 1 Einleitung Diese Präsentation dient zur Darstellung der Zusammenarbeit zwischen EasyWk und der Zeitmessanlage

Mehr

IRF2000 Application Note Lösung von IP-Adresskonflikten bei zwei identischen Netzwerken

IRF2000 Application Note Lösung von IP-Adresskonflikten bei zwei identischen Netzwerken Version 2.0 1 Original-Application Note ads-tec GmbH IRF2000 Application Note Lösung von IP-Adresskonflikten bei zwei identischen Netzwerken Stand: 27.10.2014 ads-tec GmbH 2014 IRF2000 2 Inhaltsverzeichnis

Mehr

EM-Wellen. david vajda 3. Februar 2016. Zu den Physikalischen Größen innerhalb der Elektrodynamik gehören:

EM-Wellen. david vajda 3. Februar 2016. Zu den Physikalischen Größen innerhalb der Elektrodynamik gehören: david vajda 3. Februar 2016 Zu den Physikalischen Größen innerhalb der Elektrodynamik gehören: Elektrische Stromstärke I Elektrische Spannung U Elektrischer Widerstand R Ladung Q Probeladung q Zeit t Arbeit

Mehr

GS-Programme 2015 Allgemeines Zentralupdate

GS-Programme 2015 Allgemeines Zentralupdate GS-Programme 2015 Allgemeines Zentralupdate Impressum Business Software GmbH Primoschgasse 3 9020 Klagenfurt Copyright 2014 Business Software GmbH Die Inhalte und Themen in dieser Unterlage wurden mit

Mehr

V 2 B, C, D Drinks. Möglicher Lösungsweg a) Gleichungssystem: 300x + 400 y = 520 300x + 500y = 597,5 2x3 Matrix: Energydrink 0,7 Mineralwasser 0,775,

V 2 B, C, D Drinks. Möglicher Lösungsweg a) Gleichungssystem: 300x + 400 y = 520 300x + 500y = 597,5 2x3 Matrix: Energydrink 0,7 Mineralwasser 0,775, Aufgabenpool für angewandte Mathematik / 1. Jahrgang V B, C, D Drinks Ein gastronomischer Betrieb kauft 300 Dosen Energydrinks (0,3 l) und 400 Liter Flaschen Mineralwasser und zahlt dafür 50, Euro. Einen

Mehr

Ablaufbeschreibung für das neu Aufsetzen von Firebird und Interbase Datenbanken mit der IBOConsole

Ablaufbeschreibung für das neu Aufsetzen von Firebird und Interbase Datenbanken mit der IBOConsole Lavid-F.I.S. Ablaufbeschreibung für das neu Aufsetzen von Firebird und Interbase Datenbanken mit der Lavid Software GmbH Dauner Straße 12, D-41236 Mönchengladbach http://www.lavid-software.net Support:

Mehr

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes. Binäre Bäume Definition: Ein binärer Baum T besteht aus einer Menge von Knoten, die durch eine Vater-Kind-Beziehung wie folgt strukturiert ist: 1. Es gibt genau einen hervorgehobenen Knoten r T, die Wurzel

Mehr

AZK 1- Freistil. Der Dialog "Arbeitszeitkonten" Grundsätzliches zum Dialog "Arbeitszeitkonten"

AZK 1- Freistil. Der Dialog Arbeitszeitkonten Grundsätzliches zum Dialog Arbeitszeitkonten AZK 1- Freistil Nur bei Bedarf werden dafür gekennzeichnete Lohnbestandteile (Stundenzahl und Stundensatz) zwischen dem aktuellen Bruttolohnjournal und dem AZK ausgetauscht. Das Ansparen und das Auszahlen

Mehr

How to do? Projekte - Zeiterfassung

How to do? Projekte - Zeiterfassung How to do? Projekte - Zeiterfassung Stand: Version 4.0.1, 18.03.2009 1. EINLEITUNG...3 2. PROJEKTE UND STAMMDATEN...4 2.1 Projekte... 4 2.2 Projektmitarbeiter... 5 2.3 Tätigkeiten... 6 2.4 Unterprojekte...

Mehr

Kapiteltests zum Leitprogramm Binäre Suchbäume

Kapiteltests zum Leitprogramm Binäre Suchbäume Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm

Mehr

DriveLock 6. DriveLock und das Windows Sicherheitsproblem mit LNK Dateien. CenterTools Software GmbH

DriveLock 6. DriveLock und das Windows Sicherheitsproblem mit LNK Dateien. CenterTools Software GmbH 6 DriveLock und das Windows Sicherheitsproblem mit LNK Dateien CenterTools Software GmbH 2010 Copyright Die in diesen Unterlagen enthaltenen Angaben und Daten, einschließlich URLs und anderen Verweisen

Mehr

Was bisher geschah. Lernen: überwachtes Lernen. biologisches Vorbild neuronaler Netze: unüberwachtes Lernen

Was bisher geschah. Lernen: überwachtes Lernen. biologisches Vorbild neuronaler Netze: unüberwachtes Lernen Was bisher geschah Lernen: überwachtes Lernen korrigierendes Lernen bestärkendes Lernen unüberwachtes Lernen biologisches Vorbild neuronaler Netze: Neuron (Zellkörper, Synapsen, Axon) und Funktionsweise

Mehr

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können. Tutorial: Wie erfasse ich einen Termin? In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können. Neben den allgemeinen Angaben zu einem

Mehr

Ishikawa-Diagramm. 1 Fallbeispiel 2. 2 Was ist ein Ishikawa-Diagramm 2. 3 Vorgehen bei der Erstellung eines Ishikawa-Diagramms 2.

Ishikawa-Diagramm. 1 Fallbeispiel 2. 2 Was ist ein Ishikawa-Diagramm 2. 3 Vorgehen bei der Erstellung eines Ishikawa-Diagramms 2. Ishikawa-Diagramm 1 Fallbeispiel 2 2 Was ist ein Ishikawa-Diagramm 2 3 Vorgehen bei der Erstellung eines Ishikawa-Diagramms 2 4 Vorteile 5 5 Nachteile 5 6 Fazit 5 7 Literaturverzeichnis 6 1 Fallbeispiel

Mehr

Projektmanagement. Einleitung. Beginn. Was ist Projektmanagement? In dieser Dokumentation erfahren Sie Folgendes:

Projektmanagement. Einleitung. Beginn. Was ist Projektmanagement? In dieser Dokumentation erfahren Sie Folgendes: Projektmanagement Link http://promana.edulearning.at/projektleitung.html Einleitung Was ist Projektmanagement? In dieser Dokumentation erfahren Sie Folgendes: Definition des Begriffs Projekt" Kriterien

Mehr

Einfügen von Bildern innerhalb eines Beitrages

Einfügen von Bildern innerhalb eines Beitrages Version 1.2 Einfügen von Bildern innerhalb eines Beitrages Um eigene Bilder ins Forum einzufügen, gibt es zwei Möglichkeiten. 1.) Ein Bild vom eigenem PC wird auf den Webspace von Baue-die-Bismarck.de

Mehr

2. Einrichtung der ODBC-Schnittstelle aus orgamax (für 32-bit-Anwendungen)

2. Einrichtung der ODBC-Schnittstelle aus orgamax (für 32-bit-Anwendungen) 1. Einführung: Über den ODBC-Zugriff können Sie bestimmte Daten aus Ihren orgamax-mandanten in anderen Anwendungen (beispielsweise Microsoft Excel oder Microsoft Access) einlesen. Dies bietet sich beispielsweise

Mehr

Grundlagen der Theoretischen Informatik, SoSe 2008

Grundlagen der Theoretischen Informatik, SoSe 2008 1. Aufgabenblatt zur Vorlesung Grundlagen der Theoretischen Informatik, SoSe 2008 (Dr. Frank Hoffmann) Lösung von Manuel Jain und Benjamin Bortfeldt Aufgabe 2 Zustandsdiagramme (6 Punkte, wird korrigiert)

Mehr

Handbuch EPLAN Electric P8

Handbuch EPLAN Electric P8 Produktinformation http://www.hanser.de/deckblatt/deckblatt1.asp?isbn=3-446-40266-7&style=leseprobe Seite 1 von 1 12.09.2006 Handbuch EPLAN Electric P8 Bernd Gischel ISBN 3-446-40266-7 Leseprobe Weitere

Mehr

ecall sms & fax-portal

ecall sms & fax-portal ecall sms & fax-portal Beschreibung des Imports und Exports von Adressen Dateiname Beschreibung_-_eCall_Import_und_Export_von_Adressen_2015.10.20 Version 1.1 Datum 20.10.2015 Dolphin Systems AG Informieren

Mehr

Lieber SPAMRobin -Kunde!

Lieber SPAMRobin -Kunde! Lieber SPAMRobin -Kunde! Wir freuen uns, dass Sie sich für SPAMRobin entschieden haben. Mit diesem Leitfaden möchten wir Ihnen die Kontoeinrichtung erleichtern und die Funktionen näher bringen. Bitte führen

Mehr

Anwendungsbeispiele. Neuerungen in den E-Mails. Webling ist ein Produkt der Firma:

Anwendungsbeispiele. Neuerungen in den E-Mails. Webling ist ein Produkt der Firma: Anwendungsbeispiele Neuerungen in den E-Mails Webling ist ein Produkt der Firma: Inhaltsverzeichnis 1 Neuerungen in den E- Mails 2 Was gibt es neues? 3 E- Mail Designs 4 Bilder in E- Mails einfügen 1 Neuerungen

Mehr

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität

Mehr

Software Engineering. Sommersemester 2012, Dr. Andreas Metzger

Software Engineering. Sommersemester 2012, Dr. Andreas Metzger Software Engineering (Übungsblatt 2) Sommersemester 2012, Dr. Andreas Metzger Übungsblatt-Themen: Prinzip, Technik, Methode und Werkzeug; Arten von Wartung; Modularität (Kohäsion/ Kopplung); Inkrementelle

Mehr

Erstellen einer PostScript-Datei unter Windows XP

Erstellen einer PostScript-Datei unter Windows XP Erstellen einer PostScript-Datei unter Windows XP Sie möchten uns Ihre Druckvorlage als PostScript-Datei einreichen. Um Fehler in der Herstellung von vorneherein auszuschließen, möchten wir Sie bitten,

Mehr

Dokumentation IBIS Monitor

Dokumentation IBIS Monitor Dokumentation IBIS Monitor Seite 1 von 16 11.01.06 Inhaltsverzeichnis 1. Allgemein 2. Installation und Programm starten 3. Programmkonfiguration 4. Aufzeichnung 4.1 Aufzeichnung mitschneiden 4.1.1 Inhalt

Mehr

ecaros-update 8.2 Update 8.2 procar informatik AG 1 Stand: DP 02/2014 Eschenweg 7 64331 Weiterstadt

ecaros-update 8.2 Update 8.2 procar informatik AG 1 Stand: DP 02/2014 Eschenweg 7 64331 Weiterstadt Update 8.2 procar informatik AG 1 Stand: DP 02/2014 Inhaltsverzeichnis 1 Allgemein... 3 2 Erforderliche Anpassungen bei der Installation...3 2.1 Konfiguration Jboss 7 Applicationserver (Schritt 4/10)...3

Mehr

PTV VISWALK TIPPS UND TRICKS PTV VISWALK TIPPS UND TRICKS: VERWENDUNG DICHTEBASIERTER TEILROUTEN

PTV VISWALK TIPPS UND TRICKS PTV VISWALK TIPPS UND TRICKS: VERWENDUNG DICHTEBASIERTER TEILROUTEN PTV VISWALK TIPPS UND TRICKS PTV VISWALK TIPPS UND TRICKS: VERWENDUNG DICHTEBASIERTER TEILROUTEN Karlsruhe, April 2015 Verwendung dichte-basierter Teilrouten Stellen Sie sich vor, in einem belebten Gebäude,

Mehr

9.2 Weitergeben. 9.2.1 Online-Album. 9.2 Weitergeben. Flash-Player

9.2 Weitergeben. 9.2.1 Online-Album. 9.2 Weitergeben. Flash-Player 9.2 Weitergeben Das Weitergeben und das Erstellen unterscheiden sich eigentlich nur wenig. Beim Erstellen liegt das Augenmerk mehr auf dem Ausdrucken, bei der Weitergabe handelt es sich eher um die elektronische

Mehr

3.2 Spiegelungen an zwei Spiegeln

3.2 Spiegelungen an zwei Spiegeln 3 Die Theorie des Spiegelbuches 45 sehen, wenn die Person uns direkt gegenüber steht. Denn dann hat sie eine Drehung um die senkrechte Achse gemacht und dabei links und rechts vertauscht. 3.2 Spiegelungen

Mehr

Neue Steuererklärung 2013 erstellen

Neue Steuererklärung 2013 erstellen Neue Steuererklärung 2013 erstellen Bitte klicken Sie im Startmenü auf die Schaltfläche Steuererklärung 2013 NEU Anschliessend wird der folgende Dialog angezeigt. Wenn Sie die letztjährige Steuererklärung

Mehr

Konventionen. Danksagung

Konventionen. Danksagung Einleitung Konventionen Im Folgenden möchte ich Sie mit ein paar Konventionen vertraut machen, die Ihnen bei der Lektüre des Buches helfen sollen. Namen von neu im Text eingeführten Programmen, Produkten

Mehr

SafeRun-Modus: Die Sichere Umgebung für die Ausführung von Programmen

SafeRun-Modus: Die Sichere Umgebung für die Ausführung von Programmen SafeRun-Modus: Die Sichere Umgebung für die Ausführung von Programmen Um die maximale Sicherheit für das Betriebssystem und Ihre persönlichen Daten zu gewährleisten, können Sie Programme von Drittherstellern

Mehr

Microsoft Access 2013 Navigationsformular (Musterlösung)

Microsoft Access 2013 Navigationsformular (Musterlösung) Hochschulrechenzentrum Justus-Liebig-Universität Gießen Microsoft Access 2013 Navigationsformular (Musterlösung) Musterlösung zum Navigationsformular (Access 2013) Seite 1 von 5 Inhaltsverzeichnis Vorbemerkung...

Mehr

Anleitung zur Nutzung des SharePort Utility

Anleitung zur Nutzung des SharePort Utility Anleitung zur Nutzung des SharePort Utility Um die am USB Port des Routers angeschlossenen Geräte wie Drucker, Speicherstick oder Festplatte am Rechner zu nutzen, muss das SharePort Utility auf jedem Rechner

Mehr

Microsoft Update Windows Update

Microsoft Update Windows Update Microsoft bietet mehrere Möglichkeit, Updates durchzuführen, dies reicht von vollkommen automatisch bis zu gar nicht. Auf Rechnern unserer Kunden stellen wir seit September 2006 grundsätzlich die Option

Mehr

DER SELBST-CHECK FÜR IHR PROJEKT

DER SELBST-CHECK FÜR IHR PROJEKT DER SELBST-CHECK FÜR IHR PROJEKT In 30 Fragen und 5 Tipps zum erfolgreichen Projekt! Beantworten Sie die wichtigsten Fragen rund um Ihr Projekt für Ihren Erfolg und für Ihre Unterstützer. IHR LEITFADEN

Mehr

LinguLab GmbH. Bedienungsanleitung Allgemeine Definition

LinguLab GmbH. Bedienungsanleitung Allgemeine Definition LinguLab GmbH Bedienungsanleitung Allgemeine Definition LinguLab GmbH T: +49.711.49030.370 Maybachstr. 50 F: +49.711.49030.22.370 70469 Stuttgart E: mba@lingulab.de I: www.lingulab.de Inhaltsverzeichnis

Mehr

Theoretische Grundlagen der Informatik WS 09/10

Theoretische Grundlagen der Informatik WS 09/10 Theoretische Grundlagen der Informatik WS 09/10 - Tutorium 6 - Michael Kirsten und Kai Wallisch Sitzung 13 02.02.2010 Inhaltsverzeichnis 1 Formeln zur Berechnung Aufgabe 1 2 Hamming-Distanz Aufgabe 2 3

Mehr