Sie sind auf Seite 1von 3

Prolog-EBG Als erster Algorithmus wird Prolog-EBG vorgestellt.

Dabei handelt es sich um einen symbolischen Algorithmus, der dem Bereich analytischer Generalisierungsprobleme (analytical generalization problem) zugeordnet ist und der als Ziel eine Situation sinnvoll bewerten und beurteilen soll. Voraussetzungen um Prolog-EBG anzuwenden Um zu lernen wird von Vorwissen ausgegangen. Dau gehren zum einen ein Hypothesenraum (hypothesis space) H, aus dem eine Output-Hypothese gwhlt werden muss, Instances Hypotheses Target Concept Training Examples Domain Theory

Selbstlernendes evolutionres Schachprogramm Evolutionres Programm http://www.dschensky.de/Software/evolution.htm, 26.09.2011

Einfhrung: Maschine soll aus eigener Erfahrung lernen knnen, ohne dass der Mensch signifikant eingreift Nicht wie bei reinforcement learning, da man nicht unbedingt korrekt oder inkorrekt zuweisen kann, da das Endergebnis ist typischerweiseeine nichtlineare Funktion der Interaktionen der gespielten Moves ist. Das Endergebnis ist mehr als eine einfache Summierung aller Zge einer Serie. win, lose, draw ist in manchen Fllen nicht aussagekrftig genug. Hintergrund: Typisch fr Schach: Datenbank fr Erffnungszge, Endspielpositionen, Bewertungsfunktion fr Zge. Diese Funktion bewertet verschiedene Aspekte des Spielfeldes und wird i.d.R. von menschlichen Experten festgelegt. Dies kann durch einen evolutionren Algorithmus verbessert werden, sowie Aspekte auftreten knnen, die zu verbessertem Spiel fhren. Evolutionres Programm aus Paper: 3 knstliche neurale Netz (bewerten der potentiellen Positionen in verschiedenen Bereichen des Feldes (front, back, middle)) Population abwechselnd simulierter Spieler, von denen jeder auf einem OS Schachprogramm basiert (Bewertung, Material) Jeder der Spieler wird mit den 3 neuralen Netzen ausgestattet. Die Spieler spielen dann gegeneinander, um zu berleben und um das Recht, Nachkommen zu generieren (Zufallsvariationen auf Standardparameter anwenden und Gewichte der neuralen Verbindungen) berleben wird bestimmt durch die Qualitt der Spiele gegen Gegner aus der gleichen Population. Methode: Schachbrett reprsentiert durch Vektor der Lnge 64, wobei jede Komponente einer Feldposition entspricht. Mgliche Werte: {-K, -Q, -R, -B, -N, -P, 0, +P, +N, +B, +R, +Q, +K}

Knig hat auch einen Wert, um festzustellen, ob es der eigene oder der gegnerische ist. Der Zug eines Spielers wird durch die Bewertung der Qualitt zuknftiger Spielfeldpositionen bestimmt. Bewertungsfunktion ist Linearkombination aus: 1. Summer der materiellen Werte der beiden Spieler 2. Werte die von Tabellen hergeleitet werden, die den Wert von Figuren in verschiedenen Spielfeldteilen bestimmen (position value tables PVT) 3. 3 neuronale Netze Alle Figuren (auer dem Knig) haben eine PVT, die fr jedes der 64 Felder einen Wert haben. Fr Knige gibt es 3 PVTs: Vor Rochade, nach Rochade, je nachdem, ob auf der Knigsseite oder Damenseite. Beim Gegner wurde diese PVT gespiegelt. Endwert aus materiellem Wert und PVTs (+ PVTs fr Knigssicherheit und Beweglichkeit) berechnet, wobei die Strke des Gegners nicht einberechnet wurde Alpha-Beta-Suche mit 4 ply (Halbzge), bei Ruhesuche erweitert um 2 ply Minimax Gespielt bis einer der Spieler schachmatt ist (Gewinner bekommt win gutgeschrieben, Verlieren ein loss) oder unentschieden. Punkte: win = +1, draw = 0, loss = -1 Initialisierung: 20 Spieler, davon 10 Eltern und 10 Nachkommen Startwerte fr Figuren: P, N, B, R, Q, K, sind 1, 3, 3, 5, 9, 10000, wobei der Wert fr den Knig nicht vernderlich ist. PVTs: -50 bis +40 fr Knige -40 bis +80 fr Damen und Trme -10 bis +30 fr Lufer und Springer -3 bis +5 fr Bauern und Werte bernommen von OS-Schachprogrammen 3 Object neural networks: verbunden, vorwrtsgekoppelt mit 16 Eingngen, 10 (willkrliche Festlegung) versteckten Knoten, 1 Ausgang Grund: Schutz des eigenen Bereiches, Vordringen in das Gebiet des Gegners, Kontrolle des Mittelfeldes versteckte Knoten benutzten Sigmoidtransferfunktion f(x) = 1/(1 + exp(-x)), x ist Skalarprodukt aus hereinkommende Aktivierungen des Schachbretts und den Gewichten zwischen Inputknoten und versteckten Knoten. Die Outputknoten verwenden ebenfalls Sigmoidtransferfunktion wird aber so skaliert, dass das Ergebnis im Bereich [-50, 50] liegt, entsprechend der Elemente der PVTs. Der Output der neuronalen Netze wurden zu den Material- und PVT-Werten addiert. Alle Gewichte und Biase (?) wurden anfangs zufllig verteilt, abhngig von eine uniformen Zufallsvariablen U(-,025,0,025) und initiale Strategieparameter mit U(0;0,05). Variation: Nachkommen von jedem berlebendem Eltern generiert, indem alle Werte (materielle, PVT, Knotengewichte und -biase verndert) werden. Die Mutation wurde lt. (siehe Paper) durchgefhrt. Negative Werte werden auf 0 gesetzt. Selektion: Jeder Spieler spielt 10 Spiele (5 als wei, 5 als schwarz) gegen Gegner aus der Population. Der Ausgang jedes Spieles wird festgehlaten und Punkt summiert. Wenn alle 20 Spieler fertig sind, werden die 10 besten Eltern der nchste Generation.

Experimentelles Design: 10 unabhngige Experimente ber 50 Generationen, danach wird der bestentwickeltste Spieler getestet, indem er als schwarz in 200 Spielen gegen die nichtentwickelte Schachengine spielt. Dabei war in allen 10 Experimenten der entwickelte Spieler besser. Ergebnisse: