Einführung in die Künstliche Int ng in die Künstliche Intelligenz

Werbung
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
Zugehörige Unterlagen
Herunterladen