Vorlesung: Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Einführung in die Künstliche Intelligenz - Evolutionäre Algorithmen / kollektive Intelligenz - D SA Sommersemester 2009 P LS G ML ES S ST NN ME O EA SV Dr. Marco Block-Berlitz Block 1 Vorlesung: Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Übersicht zum Vorlesungsinhalt 1) Definition und Geschichte der KI, PROLOG 2) Expertensysteme 3) Logisches Schließen, Resolution 4) Suche und Spieltheorie 5) Optimierungen und Heuristiken (Spieleprogrammierung) 6) Mustererkennung 7) Neuronale Netze 8) General Game Playing 9) Maschinelles Lernen 10) Evolutionäre Algorithmen und kollektive Intelligenz 11) Bildverarbeitung 12) Robotik, Pathfinding Sommersemester 2009 Dr. Marco Block-Berlitz Block 2 Vorlesung: Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Motivation aus der Biologie Darwins Grundaussage der Evolutionstheorie läßt sich beschreiben durch „Survival of the fittest“. Abbildungen aus [26] Beispiel aus dem Gummibärland: Population t Population t+1 Lebenszyklus der Gummibärchen Ziel in diesem Fall: „Mimese“ (Tarnung) Selektion Genebene Auslese Rekombination Mutation Labortechnische Auswertung der neuesten Forschungsergebnisse aus dem Leben der Gummibären in Zusammenarbeit mit Dipl.-Bio. Nima Keshvari ☺. Wissenschaftliche Veröffentlichungen folgen. Sommersemester 2009 Dr. Marco Block Block-Berlitz 3 Vorlesung: Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Evolutionäre Algorithmen Eine Klasse von Verfahren, mit denen Problemlösungen automatisch generiert werden können. Die zugrunde liegende Idee ist einfach: • Problemlösung geeignet kodieren • Zielfunktion beschreiben, die eine Lösung bewertet • Startpopulation von zufälligen Lösungen wird erzeugt • Selektion der besten Lösungen • Durch Mutation/Rekombination Nachkommen erzeugen Sommersemester 2009 Dr. Marco Block-Berlitz Block Wiederholung über viele Generationen hinweg, bis eine optimale oder nahezu optimale Lösung gefunden wird. 4 Vorlesung: Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Einsatz von Evolutionären Algorithmen EAs lassen sich gegenüber anderen Modellen erfolgreich einsetzen, wenn ... • der Suchraum sehr groß ist, • die Fitnessfunktion einen sehr unregelmäßigen Verlauf hat (multimodal), • das schnelle Auffinden einer guten Lösung wichtiger ist, als das einer optimalen, • das Problem parallelisierbar ist • oder kaum Vorwissen über das betrachtete Problem vorhanden ist. Sommersemester 2009 Dr. Marco Block-Berlitz Block 5 Vorlesung: Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Optimieren nach genetischem Vorbild • Genetische Algorithmen (GA), nach John H. Holland 1975, gehen genauer auf die natürliche Selektion der Gene ein. • Idee: Eine Menge (Population)) von Lösungskandidaten (Individuen) ( wird zufällig erzeugt und die besten ausgewählt (Auslese). ). Deren Eigenschaften (Parameter) ( werden leicht verändert (Mutation) und kombiniert (Rekombination)) um eine neue Population von Lösungskandidaten zu erzeugen. Grundschema eines GA Kodierung wähle domainspezische Individuenkodierung initialisiere Individuenpopulation (Lösungskandidaten) Initialisierung tue { Evaluation bewerte Individuen mit Fitnessfunktion Selektion selektiere Elternpaare nach Heiratsschema erzeuge Nachkommen durch Rekombination Reproduktion mutiere die erzeugten Nachkommen ersetze Individuen der alten Generation Rekombination Mutation neue Population } wiederhole solange bis Abbruchbedingung erfüllt ist return aktuell bestes Individuum Sommersemester 2009 Dr. Marco Block-Berlitz Block 6 Vorlesung: Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz GA - Codierung Bei der genetischen Programmierung werden binäre Zeichenketten mit den Werten {0,1} verwendet. C1 : 100100011011100010 C2 : 110011010001111001 Eine durchschnittliche Populationgröße sollte in der Größenordnung 20-30 20 oder 50-100 Individuen aufweisen. Dabei sollten die Bitpositionen (wenn möglich) auch den realen Nachbarschaften des Problems entsprechen. Beispiel: Schnellster Weg Integer 0 1 2 B (Ziel) 15 16 17 18 19 10 11 12 13 14 5 6 7 8 9 0 1 2 3 4 Bin-Code H-Dist 000 001 1 010 2 Gray-Code 000 001 011 H-Dist 1 1 3 4 5 6 011 100 101 110 1 3 1 2 010 110 111 101 1 1 1 1 7 111 1 100 1 A (Start) =1 =2 =3 binär nach gray gray nach binär Sommersemester 2009 Dr. Marco Block-Berlitz Block 7 Vorlesung: Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz GA - Fitnessfunktion Die Fitnessfunktion ist entscheidend für die Überlebenswahrscheinlichkeit eines Individuums. Relative Fitness: Maximierungsproblem Kosten sollen minimiert (optimiert) werden Beispiel: Schnellster Weg B (Ziel) 15 16 17 18 19 10 11 12 13 14 5 6 7 8 9 0 1 2 3 4 A (Start) Sommersemester 2009 Dr. Marco Block-Berlitz Block 8 Vorlesung: Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz GA - Ausblick auf weitere Fitnessfunktionen Relative Fitness: Mehrkriterienoptimierung : Lineare skalierte Fitness σ-Skalierung Exponentielle Skalierung Geteilte Fitness Geteilte Selektion Fitnessfunktionen mit Zusatzbedingungen ... Sommersemester 2009 Dr. Marco Block-Berlitz Block 9 Vorlesung: Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz GA - Selektion Durch die Transformation der Fitnesswerte in ein Wahrscheinlichkeitsmaß, kann bei der Selektion der entsprechenden Chromosomen einfach auf den Pseudozufallsgenerator gegriffen werden: Fitnesswerte Datenraum und Verteilung der Individuen in Abhängigkeit der Fitnesswerte: 0 1 2 3 4 5 Sommersemester 2009 99 Dr. Marco Block-Berlitz Block 10 Vorlesung: Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz GA – Rekombination Bei der Rekombination (Crossover) werden zwei Cromosomensätze vermischt. crossover point One-Point-Crossover: C1 : 1001000 | 11011100010 O1 : 1001000 | 10001111001 C2 : 1100110 | 10001111001 O2 : 1100110 | 11011100010 Einfach zu handhaben, führt aber zu relativ schlechten Ergebnissen. Two-Point-Crossover: Sommersemester 2009 Dr. Marco Block-Berlitz Block 11 Vorlesung: Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz GA – Rekombination k-Point-Crossover: A A‘ B B‘ k ist notwendigerweise gerade Parametrisiertes Uniform Crossover: Jedes Allel wird separat ausgewürfelt. Sommersemester 2009 Dr. Marco Block-Berlitz Block 12 Vorlesung: Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz GA – Ausblick auf weitere Rekombinationsvarianten Inversion: 0 1 2 3 4 5 6 7 8 9 0 1 5 4 3 2 6 7 8 9 crossover point es existieren viele weitere Verfahren: Shuffle Crossover Punctuated Crossover Partially Matched Crossover Cycle Crossover Order Crossover Enhanced Edge Recombination Präzedenz-Matrix Crossover ... Sommersemester 2009 Dr. Marco Block-Berlitz Block 13 Vorlesung: Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz GA - Mutation Da es sich im binäre Zeichenketten handelt, läßt sich die Mutation durch eine einfache Invertierung realisieren. Dabei werden ca. 0.5 – 1% der Einträge mutiert. Rekombination: Mutation: Mutationen Sommersemester 2009 Dr. Marco Block-Berlitz Block 14 Vorlesung: Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Einsatz von EA in Schachprogrammen Es gibt viele Arbeiten, die sich mit diesem Thema auseinander setzen. Hier ein Beispiel von Chris Wyman. Es wurde eine Population von Schachprogrammen erzeugt, die gegeneinander in vielen Partien angetreten sein. Fitnessfunktion: ( EXPECTED_WIN_WEIGHT + UNEXPECTED_WIN_WEIGHT + GOOD_EXPECTED_DRAW_WEIGHT + BAD_EXPECTED_DRAW_WEIGHT + GOOD_UNEXPECTED_DRAW_WEIGHT + BAD_UNEXPECTED_DRAW_WEIGHT + EXPECTED_LOSS_WEIGHT + UNEXPECTED_LOSS_WEIGHT / #games played total * * * * * * * * #wongames which were expected #games won unexpectedly #games drawn as black which were expected #games drawn as white which were expected #games unexpectedly drawn as black #games unexpectedly drawn as white #lost games which were expected #games lost unexpectedly ) Tuning der Bewertungskoeffizienten (analog zu TD_Leaf(λ)): TD_Leaf( Eine Bewertungsfunktion mit 16 Parametern wird als Vektor kalibriert. Ergebnisse: Programm konnte sich verbessern, aber die Bewertungsfunktion war zu einfach gewählt. Sommersemester 2009 Dr. Marco Block-Berlitz Block 15 Vorlesung: Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Terminologie und Differenzierung evolutionärer Algorithmen Evolutionäre Algorithmen: Oberbegriff für Algorithmen, die motiviert durch das biologische Vorbild, Lösungen für Probleme liefern (optimieren), die auf der Auslese der Besten basiert. Evolutionäre Strategien: Der Begriff wurde von Rechenberg 1960 eingeführt und beschreiben eine generalisierte Version der genetischen Algorithmen, bei denen die Repräsentation der Daten auch reale Werte annehmen kann. Genetische Algorithmen: Genetische Algorithmen gehen genauer auf die natürliche Evolution auf der Genebene ein (nach John H. Holland 1975). Genetische Programmierung: In diesem Fall sind die Computerprogramme die Individuen und diese werden durch evolutionäre Strategien optimiert. Java Genetic Algorithms package (JGAP): http://jgap.sourceforge.net/ Sommersemester 2009 Dr. Marco Block-Berlitz Block 16 Vorlesung: Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Kollektive Intelligenz – zwei Beispiele Bienen (Apis mellifera) • besitzen ca. 850k Neuronen • Kommunikation, Tasten, Proben, Bienentanz • soziales Verhalten Abbildung en aus [26] Ameisen (Formicidae spec.) • besitzen ca. 250k Neuronen • Kommunikation, Pheromone, Tasten • soziales Verhalten Abbildung en aus [27, 28] Sommersemester 2009 Dr. Marco Block-Berlitz Block 17 Vorlesung: Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Schwarmintelligenz Das Schwarmverhalten von Vögeln, Fischen usw. läßt sich auf sehr einfache Weise simmulieren. Das individuelle Verhalten läßt sich auf drei einfache Regeln zurückführen. In verschiedenen Spielen und Filmen wird bereits dieses Schwarmverhalten eingesetzt. Einsatz in Filmen, z.B: Der König der Löwen (1994), Batmans Rückkehr (1989), Herr der Ringe (2001). Hier ein interessantes Youtube-Video: http://www.youtube.com/watch?v=GUkjC-69vaw http://www.youtube.com/watch?v=GUkjC Abbildung enaus [25, 29] Sommersemester 2009 Dr. Marco Block-Berlitz Block 18 Vorlesung: Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Schauen wir uns dazu ein APPLET an! Sommersemester 2009 Dr. Marco Block-Berlitz Block 19 Vorlesung: Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Schwarmintelligenz – einfache Regeln Drei einfache Regeln für Individuen führen zu einem interessantem und realisistischem Schwarmverhalten. Flocking Boids wurde 1986 von Craig Reynolds eingeführt. Regel 1 [Separation]:: Wenn innerhalb einer Distanz d andere Objekte in die Nähe kommen, bewegt sich das Individuum in die Richtung, mit dem größten Freiheitsgrad. Wirkt der Häufung an einer Stelle entgegen. Regel 2 [Angleichung/Alignment]:: Die Bewegungsrichtung eines Individuums entspricht der mittleren Richtung aller umliegenden Objekte. Regel 3 [Zusammenhalt/Cohesion] Zusammenhalt/Cohesion]: Die Bewegungsrichtung entspricht auch der mittleren Position der anderen Gruppenmitglieder. Abbildungen aus [24] Sommersemester 2009 Dr. Marco Block-Berlitz Block 20 Vorlesung: Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Schwarmintelligenz – Regel 1 (Separation) Wenn innerhalb einer Distanz d andere Objekte in die Nähe kommen, bewegt sich das Individuum in die Richtung, mit dem größten Freiheitsgrad. Wirkt der Häufung an einer Stelle entgegen. Pseudocode für die Regel 1: PROCEDURE rule1(boid b_J) -> Vector Vector c = 0 FOR EACH BOID b IF b != b_J THEN IF |b.position – b_J.position| < d THEN c = c - (b.position – b_J.position) END RETURN c END PROCEDURE Code aus [24] Sommersemester 2009 Dr. Marco Block-Berlitz Block 21 Vorlesung: Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Schwarmintelligenz – Regel 2 (Alignment) Die Bewegungsrichtung eines Individuums entspricht der mittleren Richtung aller umliegenden Objekte. Pseudocode für die Regel 2: PROCEDURE rule2(boid b_J) -> Vector Vector pvJ FOR EACH BOID b IF b != bJ THEN pvJ = pvJ + b.velocity END pvJ = pvJ / N-1 RETURN (pvJ - bJ.velocity)/8 END PROCEDURE In diesem Fall nehmen wir 12,5% der Geschwindigkeit der anderen an Um wieviel Prozent nehmen wir die Geschwindigkeit an? Mittlere Objektgeschwindigkeit ohne Objekt i Sommersemester 2009 Dr. Marco Block-Berlitz Block Code aus [24] 22 Vorlesung: Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Schwarmintelligenz – Regel 3 (Zusammenhalt/Cohesion) Die Bewegungsrichtung entspricht auch der mittleren Position der anderen GruppenGruppen mitglieder. Pseudocode für die Regel 3: PROCEDURE rule3(boid b_J) -> Vector Vector pc_J FOR EACH BOID b IF b != b_J THEN pc_J = pc_J + b.position END pc_J = pc_J / N-1 RETURN (pc_J – b_J.position)/100 END PROCEDURE In diesem Fall bewegen wir uns 1% in die Richtung des Zentrums Um wieviel Prozent bewegen wir uns in diese Richtung? Zentrum der Objektpositionen ohne Objekt i Sommersemester 2009 Dr. Marco Block-Berlitz Block Code aus [24] 23 Vorlesung: Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Schwarmintelligenz – individuelles Verhalten Pseudocode für den Updateschritt eines Individuums: PROCEDURE move_all_boids_to_new_positions() Vector v1, v2, v3 Boid b FOR EACH BOID b v1 = rule1(b) v2 = rule2(b) v3 = rule3(b) -- hier können noch weitere Regeln folgen, um das -- Verhalten komplexer zu gestalten b.velocity = b.velocity + v1 + v2 + v3 b.position = b.position + b.velocity END END PROCEDURE Update von Geschwindigkeit und Richtung Code aus [24] Sommersemester 2009 Dr. Marco Block-Berlitz Block 24 Vorlesung: Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Schauen wir uns dazu gleich noch ein Video an! Sommersemester 2009 Dr. Marco Block-Berlitz Block 25 Vorlesung: Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Ant colony optimization Unter ant colony optimization (ACO) verstehen wir einen wahrscheinlichkeitswahrscheinlichkeits basierten Prozess, bei dem es darum geht, gute (kürzeste) Wege in Graphen dynamisch zu finden. Zunächst laufen die Ameisen bei der Futtersuche zufällig umher. Wird Nahrung gefunden, so markiert die Ameise mit einem Duftstoff (Pheromon) auf dem Weg zurück zum Bau den Weg. Dieser wirkt auf andere Ameisen verlockend und sie folgem diesem. Dabei verstärkt sich die Pheromon-Konzentration Konzentration des Weges. Sollte es mehrere Wege zwischen einer Futterquelle und dem Nest geben, so konzentriert sich das Pheromon auf dem kürzesten Weg stärker, da mehr Ameisen diesen Weg über die Zeit passieren können und so wird dieser im Laufe der Zeit den anderen Wegen bevorzugt (Ameisenstraße). Abbildungen aus [20] Sommersemester 2009 Dr. Marco Block-Berlitz Block 26 Vorlesung: Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Ant colony optimization Beispiel TSP • Eine Menge von Ameisen wird zufällig auf die Städte verteilt • Eine Ameise muss eine Stadt genau einmal besuchen • Je weiter eine Stadt entfernt ist, desto geringer ist die Wahrscheinlichkeit ausgewählt zu werden • Je höher die Pheromonintensität einer Kante, desto größer die Wahrscheinlichkeit, ausgewählt zu werden • Wenn alle Ameisen ihre Tour komplettiert haben, dann werden die Pheromone evaporiert und anschließend gemäß der gefundenen Touren aktualisiert Wegentscheidung Basierend auf dem Pheromonwert und der Prioritätsregel berechnet sich die WegentscheiWegentschei dung (Analogie zu Monte-Carlo-Verfahren) Gewichte, die Einfluss von Pheromon und von heuristischer Information steuern Pheromon Sommersemester 2009 Prioritätsregel Dr. Marco Block-Berlitz Block 27 Vorlesung: Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Ant colony optimization Update der Pheromone Die Pheromone werden anschließend geupdated Evaporationsrate des Pheromons Typischerweise die Kosten der Tour für Ameise k (Länge des Weges) Sommersemester 2009 Dr. Marco Block-Berlitz Block 28 Vorlesung: Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Ant colony optimization Der Vorteil gegenüber Simulated annealing oder genetischen Algorithmen ist die Tatsache, dass ACO-Algorithmen Algorithmen auf Änderungen der Umwelt (dynamischer Graph) in Echtzeit reagieren können. Daher können diese Algorithmen z.B. im Netzwerk-Routing Netzwerk eingesetzt werden. Lösung des Travelling Salesperson-Problems: Sommersemester 2009 Dr. Marco Block-Berlitz Block 29 Vorlesung: Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Simulation mit AntSim v1.1 Adrian Haffner (nightlab.ch) simmuliert mit seinem Tool AntSim das ACO-Verhalten. ACO Die Visualierung der lokalen Pheromone und der daraus entstehenden Wege ist sehr gut gelungen. Simulation mit AntSim v1.1 Nest Iteration 57 Iteration 422 Iteration 1087 Abbildungen und Programm aus [21] Futter Sommersemester 2009 Iteration 1636 Dr. Marco Block-Berlitz Block 30 Vorlesung: Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Wir wollen die Simmulation live sehen! Sommersemester 2009 Dr. Marco Block-Berlitz Block 31 Vorlesung: Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Das Framework AntMe Programmieren lernen in C# mit der Ameisensimulation AntMe von Microsoft. Spielerische Einführung in Programmierung und KI (Schwarmverhalten). Verhalten der Individuen wird zusammengestellt, daraus ergibt sich das komplexe Schwarmverhalten. Hier als Beispiel die Methode Sieht: Alles weitere ist hier zu finden: http://antme.net/ Sommersemester 2009 Abbildungen und Programm aus [23] Dr. Marco Block-Berlitz Block 32 Vorlesung: Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Künstliche Intelligenz in der Zukunft Ein interessantes Youtube-Video, Video, in dem Peter Molyneux (Lionhead-Studios) (Lionhead sein Projekt Milo vorstellt. Präsentiert uns Microsoft damit die (nahe) Zukunft? Schauen wir uns das Video einmal kritisch an... Alles weitere ist hier zu finden: http://www.youtube.com/watch?v=3Y3hO3y-ZO0 http://www.youtube.com/watch?v=3Y3hO3y Sommersemester 2009 Dr. Marco Block-Berlitz Block 33 Vorlesung: Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Übersicht der Themen zur bisherigen Vorlesung Definition von „Künstlicher Intelligenz“ Meilensteine und Arbeitsfelder der KI Einführung in PROLOG Expertensysteme Daten- und zielorientierte Suche Uncertainty (MYCIN) Exploration Bird Identification System Produktionssysteme ELIZA, ALICE, Chatten mit Gott Modus Ponens, Resolutionsregel Hornklauseln, SLD-Resolution Resolutionsbeispiel: Harry Potter Unit-, Input- und Linear Resolution Allgemeines Suchproblem Uninformierte Suche: Tiefen- und Breitensuche Iterative Tiefensuche/Bidirektionale Suche Informierte Suche: Branch-and-Bound Suche mit uniformen Kosten/Heuristiken/Bestensuche A*-Suche und Varianten Spieltheoretische Suche Min-Max-Algorithmus, Alpha-Beta-Pruning, maxN-Variante, Paranoid-Variante Sommersemester 2009 Suchraum-Komplexität Suchraum Ruhesuche, Heuristiken Transpositionstabellen Eröffnungsbuch und Endspieldatenbank Hauptvarianten, iterative Suche Monte Monte-Carlo-Suche Mustererkennung: Einführung k-nn, k k-means, Gauß Neuronale Netze McCulloch McCulloch-Pitts-Netzwerke Perzeptron, Perzeptronlernen Feedforward Feedforward-Netze und Backpropagation Spiele und Komplexität Spezialisierte Programme versus Machina ludens GDL, KIF Monte Monte-Carlo-Suche, UCT AAAI, Spiel: Hnefatafl Maschinelles Lernen, überwacht/unüberwacht, verstärkend ME: k-nn, k k-means, rek. k-means NN: McCulloch/Pitts, Perceptron, Backprop, Varianten, Beispiel Assoziativspeicher, Hopfieldnetz, Boltzmannmaschine Kohonennetze RL: Temporale Differenz, TD(lambda), TD-Leaf(lambda) TD TD TD-Leaf(lambda)+Stellungsklassifikation in FUSc# Evolutionäre und genetische Algorithmen, Schwarmverhalten Ant colony optimization Dr. Marco Block-Berlitz Block 34 Vorlesung: Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Übersicht der Themen zur bisherigen Vorlesung Definition von „Künstlicher Intelligenz“ Meilensteine und Arbeitsfelder der KI Einführung in PROLOG Expertensysteme Daten- und zielorientierte Suche Uncertainty (MYCIN) Exploration Bird Identification System Produktionssysteme ELIZA, ALICE, Chatten mit Gott Modus Ponens, Resolutionsregel Hornklauseln, SLD-Resolution Resolutionsbeispiel: Harry Potter Unit-, Input- und Linear Resolution Allgemeines Suchproblem Uninformierte Suche: Tiefen- und Breitensuche Iterative Tiefensuche/Bidirektionale Suche Informierte Suche: Branch-and-Bound Suche mit uniformen Kosten/Heuristiken/Bestensuche A*-Suche und Varianten Spieltheoretische Suche Min-Max-Algorithmus, Alpha-Beta-Pruning, maxN-Variante, Paranoid-Variante Sommersemester 2009 Suchraum-Komplexität Suchraum Ruhesuche, Heuristiken Transpositionstabellen Eröffnungsbuch und Endspieldatenbank Hauptvarianten, iterative Suche Monte Monte-Carlo-Suche Mustererkennung: Einführung k-nn, k k-means, Gauß Neuronale Netze McCulloch McCulloch-Pitts-Netzwerke Perzeptron, Perzeptronlernen Feedforward Feedforward-Netze und Backpropagation Spiele und Komplexität Spezialisierte Programme versus Machina ludens GDL, KIF Monte Monte-Carlo-Suche, UCT AAAI, Spiel: Hnefatafl Maschinelles Lernen, überwacht/unüberwacht, verstärkend ME: k-nn, k k-means, rek. k-means NN: McCulloch/Pitts, Perceptron, Backprop, Varianten, Beispiel Assoziativspeicher, Hopfieldnetz, Boltzmannmaschine Kohonennetze RL: Temporale Differenz, TD(lambda), TD-Leaf(lambda) TD TD TD-Leaf(lambda)+Stellungsklassifikation in FUSc# Evolutionäre und genetische Algorithmen, Algorithmen Schwarmverhalten Ant colony optimization Dr. Marco Block-Berlitz Block 35 Vorlesung: Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Literatur- und Abbildungsquellen [1] Michulke D., Schiffel S.: „Matt bei Vier gewinnt“, “, C’t: Computer und Technik Magazin, pp.174, 1/2009 [2] Love N., Hinrichs T., Haley D., Schkufza E., Genesereth M.: „General „ Game Playing: Game Description Language Specification“, “, Stanford Logic Group Computer Science Department Stanford University, Technical Report LG-2006-01, 2008 [3] Quenault M., Cazenave T.: „Extended Extended General Gaming Modell“ Modell Computer Games Workshop, pp. 195-204, 2007 [4] Genesereth M.: Vorlesungsfolien der Stanford-Universität, Universität, CS227B: General Game Playing, siehe dazu: http://logic.stanford.edu/classes/cs227/index.html [5] Palamedes-IDE(Eclipse-Plugin): http://palamedes-ide.sourceforge.net/ http://palamedes [6] AAAI-GGP-Competitions: http://www.aaai.org/Conferences/AAAI/2008/aaai08generalgame.php [7] Homepage von Frank Nießen: http://www.frank-niessen.de/hnefatafl/index.html niessen.de/hnefatafl/index.html [8] Coulom R.: „The Monte-Carlo Revolution in Go“, “, Präsentation bei dem JFFoS'2008 [9] Möller F.M., Schneider M., Wegner M.: „Centurio Centurio 2.0 - Monte Carlo Tree Search für General Game Playing”, ”, Dokumentation der Engine Centurio, Universität Potsdam, 2008 [10] Hecht B.: „Neuronaler Coach - Lernmechanismus für Roboter mittels menschlicher Beispieldiagramme“, Beispieldiagramme Diplomarbeit, Freie Universität Berlin, 2008 “, Online-Artikel Online [11] Matthews J.: „Applying Kohonen Networks“, http://www.generation5.org/content/2004/kohonenApplications.asp Sommersemester 2009 Dr. Marco Block-Berlitz Block 36 Vorlesung: Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Literatur- und Abbildungsquellen [12] Nistér D., Stewénius H.: „Scalable Recognition with a Vocabulary Tree“, Conference on Computer Vision and Pattern Recognition (CVPR 2006), New York, 2006 [13] McCulloch W., Pitts W.: “A A logical calculus of the ideas immanent in nervous activity”, Bulletin of Mathematical Biophysics, 5:115-133, 1943 [14] Tapia E.: “Understanding Understanding Mathematics: A System for the Recognition of On-Line On Handwritten Mathematical Expressions”, ”, Dissertation, Freie Universität Berlin, 2005 [15] Rojas R: “Neural Networks - A Systematic Introduction”, Introduction Springer-Verlag, 1996 [16] Block M., Bader M., Tapia E., Ramírez M., Gunnarsson K., Cuevas E., Zaldivar D., Rojas R.: „Using „ Reinforcement Learning in Chess Engines”, CONCIBE SCIENCE 2008, In Journal Research in Computing Science: Special Issue in Electronics and Biomedical Engineering, Computer Science and Informatics, ISSN:1870-4069, Vol.35, pp.31-40, 40, Guadalajara/Mexico, 2008 [17] Tesauro G.: “Temporal Temporal Difference Learning and TD-Gammon”, TD in Communications of the ACM, Vol. 38, No. 3., 1995 [18] Brooks A., Gao L.: „Face Face Recognition: Eigenface and Fisherface Performance Across Pose”, Pose In Proceedings of the Fourth conference on IASTED International Conference: Signal Processing, Pattern Recognition, and Applications, pp.321-327, 327, 2007 [19] Gerdes I., Klawonn F., Kruse R.: „Evolutionäre Evolutionäre Algorithmen“, Algorithmen Vieweg-Verlag, 2004 [20] Wikipedia: http://en.wikipedia.org/wiki/Ant_colony_optimization Sommersemester 2009 Dr. Marco Block-Berlitz Block 37 Vorlesung: Künstliche Intelligenz Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz Literatur- und Abbildungsquellen [21] Haffner A., AntSim: http://www.nightlab.ch/index.php [22] Boysen N.: „Ameisenalgorithmen“,, Onlinedokument, URL: http://www.ameisenalgorithmus.de/ [23] MicroSofts AntMe: http://antme.net/ [24] Reynolds C.: http://www.red3d.com/cwr/boids/ [25] Parker P.: http://www.vergenet.net/~conrad/boids/ [26] Wikipediaseite: http://en.wikipedia.org/wiki [27] Ameisenkollektiv: http://claycoleman.tripod.com/id180.htm [28] Ameisenkollektiv: http://boodogscout.com/id7.html [29] Webseite von Xinyu Tang: http://parasol.tamu.edu/~xinyut/ [30] Wyman C.: „Using Using Genetic Algorithms to Learn Weights for Simple King-Pawn King Chess Endgames“, Machine Learning (CS6350), Projekt: http://www.cs.utah.edu/~wyman/classes/ML_proj/paper.html Sommersemester 2009 Dr. Marco Block-Berlitz Block 38