Künstliche Intelligenz" - Informatik der FU

Die Seite wird erstellt Hertha Wild
 
WEITER LESEN
Vorlesung Künstliche Intelligenz
                                                     Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

     Vorlesung: „Künstliche
                 Künstliche Intelligenz“
                            Intelligenz
                         - Suche und Spieltheorie -

                                   P      LS

                                   ES     S     ST

Künstliche Intelligenz              Miao Wang                                                                   1
Vorlesung Künstliche Intelligenz
                                                         Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

Inhaltliche Planung für die Vorlesung
        1) Definition und Geschichte der KI, PROLOG
        2) Expertensysteme
        3) Logisches Schließen, Resolution
        4) Suche und Spieltheorie
        5) Spieleprogrammierung
        6) General Game Playing
        7) Reinforcement Learning und Spieleprogrammierung
        8) Mustererkennung
        9) Neuronale Netze
     10) Optimierungen (genetische und evolutionäre Algorithmen)
     11) Bayes-Netze, Markovmodelle
     12) Robotik, Pathfinding
                                                                            der rote Vorlesungsfaden...
Künstliche Intelligenz                       Miao Wang                                                              2
Vorlesung Künstliche Intelligenz
                                     Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

Suche

Künstliche Intelligenz   Miao Wang                                                              3
Vorlesung Künstliche Intelligenz
                                     Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

Anwendungen der Suche

Künstliche Intelligenz   Miao Wang                                                              4
Vorlesung Künstliche Intelligenz
                                                                  Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

Heutiger Inhalt der Vorlesung
          •     Allgemeines Suchproblem
          •     Uninformierte Suche
                  • Tiefensuche
                  • Breitensuche
                  • Iterative Tiefensuche
                  • Bidirektionale Suche
          •     Informierte Suche
                  • Branch-and-Bound
                  • Suche mit uniformen Kosten
                  • Heuristiken
                  • Bestensuche
                  • A*-Suche
                  • A*-Varianten
          •     Spieltheoretische Suche
                  • Min-Max-Algorithmus (Zweispielersuche)
                  • Alpha-Beta-Pruning (Zweispielersuche)
                  • Unterscheidung von Spielen
                  • maxN-Variante (Mehrspielersuche)
                  • Paranoid-Variante (Mehrspielersuche)
          •     Zusammenfassung

Künstliche Intelligenz                                Miao Wang                                                              5
Vorlesung Künstliche Intelligenz
                                                                                Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

Das allgemeine Suchproblem

          Finde einen Weg von einem Startpunkt zu einem der Zielpunkte. Der Graph wird dabei nicht (wie üblich in
          der Graphentheorie) explizit gegeben, sondern wird implizit als Baum erstellt und repräsentiert.

          Gegeben:
          Startzustand: s0
          Übergangsfunktion (Transition): T = S x S
          Zustände (implizit generiert aus s0 und T): S = {s0, s1, s2, …, sn}

          Gesucht:
          Zielzustand (Goal): ein Element aus G ⊆ S
          Optional: Weg von s0 zum Goal

          Hilfsvariablen:
          OPEN = Liste von aktiv zu untersuchenden Zuständen
          CLOSED = Liste von bereits besuchten Zuständen

Künstliche Intelligenz                                     Miao Wang                                                                       6
Vorlesung Künstliche Intelligenz
                                                                          Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

Uninformierte Suche

          Eine uninformierter Suchalgorithmus benutzt intuitive Methoden für das Durchsuchen des Suchraumes. Es
          finden keine Optimierung statt, die den Suchraum reduzieren könnten, indem Informationen aus dem
          Datensatz gezogen werden.

               1.    Init:           OPEN = {s0} , CLOSED = {}
               2.    Fail:           if OPEN = {}     terminate with FAIL
               3.    Select:         Extract a state n from OPEN and save n to CLOSED
               4.    Terminate:      if n ∈ G         terminate with SUCCESS
               5.    Expand:         Find successors m of n with T
                                     If m ∈ (OPEN ∪ CLOSED)
                                                     CLOSED
                                         add m to OPEN
               6. Loop:              Goto Step 2

          OPEN als Stack           Tiefensuche
          OPEN als Queue           Breitensuche

Künstliche Intelligenz                                Miao Wang                                                                      7
Vorlesung Künstliche Intelligenz
                                         Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

Beispiel: Tiefensuche
                                     OPEN                            CLOSED
                                     1                                  -

                                     2, 5, 9, 12                        1

                                     3, 4, 5, 9, 12                     1, 2

                                     4, 5, 9, 12                        1, 2, 3

                                     5, 9, 12                           1, 2, 3, 4

                                     6, 7, 8, 9, 12                     1, 2, 3, 4, 5

                                     7, 8, 9, 12                        1, 2, 3, 4, 5, 6

                                     8, 9, 12                           1, 2, 3, 4, 5, 6, 7

                                     9, 12                              1, 2, 3, 4, 5, 6, 7, 8

                                     10, 11, 12                         1, 2, 3, 4, 5, 6, 7, 8, 9

                                     11, 12                             1, 2, 3, 4, 5, 6, 7, 8, 9, 10

                                     12                                 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
                                                                        11
                                     13, 14, 15                         1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
                                                                        11,12
                                     14, 15                             1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
                                                                        11, 12 , 13
                                     15                                 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
                                                                        11, 12, 13, 14
                                     -                                  1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
                                                                        11, 12, 13, 14, 15

Künstliche Intelligenz   Miao Wang                                                                  8
Vorlesung Künstliche Intelligenz
                                          Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

Beispiel: Breitensuche
                                     OPEN                             CLOSED
                                     1                                   -
                                     2, 3, 4, 5                          1
                                     3, 4, 5, 6, 7                       1, 2
                                     4, 5, 6, 7, 8, 9, 10                1, 2, 3
                                     5, 6, 7, 8, 9, 10, 11, 12           1, 2, 3, 4
                                     6, 7, 8, 9, 10, 11, 12, 13,         1, 2, 3, 4, 5
                                     14, 15
                                     7, 8, 9, 10, 11, 12, 13,            1, 2, 3, 4, 5, 6
                                     14, 15
                                     8, 9, 10, 11, 12, 13, 14, 15 1, 2, 3, 4, 5, 6, 7
                                     9, 10, 11, 12, 13, 14, 15           1, 2, 3, 4, 5, 6, 7, 8
                                     10, 11, 12, 13, 14, 15              1, 2, 3, 4, 5, 6, 7, 8, 9
                                     11, 12, 13, 14, 15                  1, 2, 3, 4, 5, 6, 7, 8, 9, 10
                                     12, 13, 14, 15                      1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
                                                                         11
                                     13, 14, 15                          1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
                                                                         11, 12
                                     14, 15                              1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
                                                                         11, 12 , 13
                                     15                                  1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
                                                                         11, 12, 13, 14
                                                                         1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
                                     -
                                                                         11, 12, 13, 14, 15
Künstliche Intelligenz   Miao Wang                                                                   9
Vorlesung Künstliche Intelligenz
                                                                                  Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

Analyse: Tiefensuche

          Sei b der maximale Verzweigungsfaktor,
          d die Tiefe von G und
          t die Tiefe des Suchbaums (d < t)

          Laufzeit:
          Wie viele Knoten müssen angefasst werden (worst case)?

          G befindet sich auf Tiefe d, im worst case ist er im „rechtesten“ Ast
          Wir müssen aber evtl. vorher mehrmals bis Tiefe t runter, d.h. O(bt)

          Speicherverbrauch:
          Wie viele Knoten werden im Stack maximal gespeichert (worst case)?

          Bis Tiefe t haben wir (t-1) * (b-1)
                                                            1) * (b
          In Tiefe d kommen noch b hinzu, d.h. insgesamt (t-1)   (b-1) + b = O(t*b)

Künstliche Intelligenz                                    Miao Wang                                                                        10
Vorlesung Künstliche Intelligenz
                                                                             Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

Analyse: Breitensuche

          Sei b der maximale Verzweigungsfaktor,
          d die Tiefe von G und
          t die Tiefe des Suchbaums (d < t)

          Laufzeit:
          Wie viele Knoten müssen angefasst werden (worst case)?

          Es müssen alle Knoten bis Tiefe d angefasst werden, d.h. bd+1 = O(bd)

          Speicherverbrauch:
          Wie viele Knoten werden in der Queue maximal gespeichert (worst case)?

          In der Tiefe d müssen maximal bd Knoten abgespeichert werden, d.h. O (bd)

Künstliche Intelligenz                                 Miao Wang                                                                      11
Vorlesung Künstliche Intelligenz
                                                        Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

Tiefensuche in Prolog

 %Graph definiert als
 %con(X,Y).

 % depth(Goals, Open, Closed)
 depth(Goals, [X|_], _) :-
    member (X, Goals), !, write(X).
 depth(Goals, [X|RestOpen], Closed) :-
    member(X, Closed), !, depth(Goals, RestOpen,
                                        RestOpen Closed).
 depth(Goals, [X|RestOpen], Closed) :-
    write(X), kinder(X, L), append(L, RestOpen,
                                       RestOpen Open), depth(Goals, Open, [X|Closed]).

 % kinder (X, L) findet alle Kinder von X und legt sie in L ab
 kinder(X, L) :- setof(Y, con(X,Y), L).
 kinder(_, []).

Künstliche Intelligenz                  Miao Wang                                                                12
Vorlesung Künstliche Intelligenz
                                                        Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

Breitensuche in Prolog

 %Graph definiert als
 %con(X,Y).

 % depth(Goals, Open, Closed)
 depth(Goals, [X|_], _) :-
    member (X, Goals), !, write(X).
 depth(Goals, [X|RestOpen], Closed) :-
    member(X, Closed), !, depth(Goals, RestOpen,
                                       RestOpen Closed).
 depth(Goals, [X|RestOpen], Closed) :-
    write(X), kinder(X, L), append(RestOpen
                                   RestOpen, L, Open), depth(Goals, Open, [X|Closed]).

 % kinder (X, L) findet alle Kinder von X und legt sie in L ab
 kinder(X, L) :- setof(Y, con(X,Y), L).
 kinder(_, []).

Künstliche Intelligenz                  Miao Wang                                                                13
Vorlesung Künstliche Intelligenz
                                                                            Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

Iterative Tiefensuche (Iterative Deepening)

          Mischung zwischen Tiefen- und Breitensuche

          Tradeoff zwischen Laufzeit und Speicher

                                                         Tiefensuche für Tiefe 1

                                                         Tiefensuche für Tiefe 2                 Bsp.: Schach

                                                         Tiefensuche für Tiefe 3

                                                         Tiefensuche für Tiefe 4

          Laufzeit: O(bd)
          Speicher: O(b*d)

Künstliche Intelligenz                                 Miao Wang                                                                     14
Vorlesung Künstliche Intelligenz
                                                                              Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

Bidirektionale Suche

          Gleichzeitig vom Start und Ziel suchen verringert die Laufzeit (nicht immer möglich)

          siehe auch: Daten- vs. Zielorientierte Suche

                                                                     Bsp.: Navigationssysteme

          Laufzeit: O(bd/2)
          Speicher: O(bd/2)

Künstliche Intelligenz                                   Miao Wang                                                                     15
Vorlesung Künstliche Intelligenz
                                           Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

Das 8-Puzzle-Problem
     (aka 3x3-Schieberätsel)

Künstliche Intelligenz         Miao Wang                                                            16
Vorlesung Künstliche Intelligenz
                                           Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

Das 8-Puzzle-Problem
     (aka 3x3-Schieberätsel)

                                            Modell:
                                            Verschieben des Blanks,
                                            Suchbaum wird implizit aufgebaut

                                            Optimierung:
                                            Speichern der Rotation

                                            Definieren eines festen Ablaufs, z.B:
                                            zuerst hoch
                                            dann links
                                            dann runter
                                            dann rechts

Künstliche Intelligenz         Miao Wang                                                            17
Vorlesung Künstliche Intelligenz
                                           Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

Das 8-Puzzle-Problem
     (aka 3x3-Schieberätsel)

Künstliche Intelligenz         Miao Wang                                                            18
Vorlesung Künstliche Intelligenz
                                                                            Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

Informierte Suche

          Bisher wurde der Knoten in Schritt 3 immer beliebig ausgewählt (entspr. der Datenstruktur von OPEN).

          Die Suche kann hier jedoch beschleunigt werden, wenn Informationen des Datensatzes mit in die
          Entscheidung einfließen, welcher Knoten als nächster aus OPEN entnommen wird.

          Für größere Suchbäume sind Breiten- und Tiefensuche nicht effizient genug. Vielversprechender sind
          Ansätze, bei denen Domänenwissen zur Steuerung des Suchprozesses eingesetzt wird.wird

          Dies kann dadurch geschehen, dass die Zustände (Knoten) danach bewertet werden, wie
          erfolgversprechend sie sind. Solch eine Bewertung nennt man heuristische Funktion.

          Ein Suchverfahren, das eine heuristische Funktion zur Auswahl der zu expandierenden Zustände einsetzt,
          heißt informiertes Suchverfahren oder auch heuristisches Suchverfahren.
                                                                   Suchverfahren

          Einfache Heuristik: Einführung eines Kostenmaßes für den bisher eingeschlagenen Weg:
               c(s) = bisher berechneten Kosten von s0 bis s
               c(n,m)) = Kosten für den Übergang von n nach m gemäß T

Künstliche Intelligenz                                 Miao Wang                                                                     19
Vorlesung Künstliche Intelligenz
                                                                           Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

Branch-and-Bound

          Branch-and-Bound
                     Bound ist ein einfacher Algorithmus, um in einem Optimierungsverfahren unnötige Äste im
          Suchbaum abzuschneiden („Pruning“). Es wird häufig in der Kostenanalyse verwendet.

          Einführung einer Kostenschranke:
          c* = minimale Kosten bis zum jetzigen Zeitpunkt in der Suche

          Idee:
          Starte mit c* = ∞ und reduziere c* immer dann, wenn ein neues, besseres Ziel aus G gefunden wird
               1.    Init:                                 c( 0) = 0 , c* = ∞
                               OPEN = {s0} , CLOSED = {} , c(s
               2.    Fail:     if OPEN = {}     terminate with c*
               3.    Select:   Extract a state n from OPEN and save n to CLOSED
               4.    Loop1:    if n ∈ G and c(n) < c*
                                   c* = c(n) and goto Step 2
               5. Expand:      if c(n) < c* generate successors m of n with T
                               For each successor m:
                                   if m ∉ (OPEN ∪ CLOSED)
                                                   CLOSED
                                       c(m) = c(n)) + c(n,
                                                      c(   m)
                                       insert m to OPEN
                                   else if m ∈ (OPEN ∪ CLOSED)
                                       c(m)) = min { c(m)
                                                     c(   , c(n) + c(n, m) }
                                       if c(m)) has decreased and m ∈ CLOSED
                                            move m from CLOSED to OPEN
               6. Loop2:       Goto Step 2

          Nicht geeignet für negative Kosten!
Künstliche Intelligenz                                 Miao Wang                                                                    20
Vorlesung Künstliche Intelligenz
                                                                                                Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

Beispiel: Branch-and-Bound
                     Bound (kombiniert mit Tiefensuche)

          Angenommen wir planen eine Skireise und wollen die günstigste Variante wählen:

                                                                   Skireise planen

                                Flug A                                   Flug B                                          Flug C
                                250 €                                     280 €                                           390 €

                   Hotel A1                 Hotel A2        Hotel B1              Hotel B2           Hotel B3           Hotel C1            Hotel C2
                    120 €                    160 €            80 €                 110 €               20 €               40 €                30 €

          Skier      Skier    Skier      Skier   Skier   Skier   Skier        Skier     Skier          Skier        Skier      Skier     Skier      Skier
          40 €       20 €     30 €       10 €    20 €    40 €    20 €         10 €       0€            10 €          0€        10 €      20 €       10 €

          410 €     390 €     400 €      420 €   430 €   400 €   380 €        400 €     390 €          420 €        430 €      440 €     440 €      430 €

Künstliche Intelligenz                                            Miao Wang                                                                              21
Vorlesung Künstliche Intelligenz
                                                                                            Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

Beispiel: Branch-and-Bound
                     Bound (kombiniert mit Tiefensuche)

          Angenommen wir planen eine Skireise und wollen die günstigste Variante wählen:

                                                                  Skireise planen

                                   Flug A                               Flug B                                         Flug C
                                   250 €                                 280 €                                          390 €

                     Hotel A1               Hotel A2      Hotel B1               Hotel B2
                      120 €                  160 €          80 €                  110 €                                 390 €

            Skier        Skier   Skier                 Skier    Skier
            40 €         20 €    30 €        410 €     40 €     20 €              390 €

            410 €        390 €   400 €                 400 €    380 €

Künstliche Intelligenz                                         Miao Wang                                                                             22
Vorlesung Künstliche Intelligenz
                                                                                                      Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

Suche mit uniformen Kosten

          Modifizierung der Breitensuche mit Kostenfunktion:
          Wähle immer den Knoten mit den niedrigsten Kosten, die von Start bis zu diesem Punkt angefallen sind.

                 1. Init:                      OPEN = {s0} , CLOSED = {} , c(s0) = 0
                 2. Fail:                      if OPEN = {}      terminate with FAIL
                 3. Select:                    Extract state n with minimum costs c(n)
                                                                                   c(   from OPEN
                                               and save n to CLOSED
                 4. Terminate:                 if n ∈ G          terminate with SUCCESS
                 5. Expand:                    Find successors m of n with T
                                               For each successor m:
                                               if m ∉ (OPEN ∪ CLOSED)
                                                               CLOSED
                                                   c(m) = c(n)) + c(n,
                                                                  c(   m)
                                                   insert m to OPEN
                                               else if m ∈ (OPEN
                                                             OPEN ∪ CLOSED)
                                                   c(m)
                                                      ) = min { c(m),
                                                                 c(    c(n) + c(n, m) }
                                                   if c(m)) has decreased and m ∈ CLOSED
                                                        move m from CLOSED to OPEN
                 6. Loop:                      Goto Step 2

          Positive Kosten:               Dijkstra
          Negative Kosten:               können m von CLOSED zurück zu OPEN bringen
          Negative Zyklen:               führen zur Nichtterminierung

          E. W. Dijkstra: A note on two problems in connexion with graphs. In: Numerische Mathematik. 1 (1959), S. 269–271
          http://www-m3.ma.tum.de/foswiki/pub/MN0506/WebHome/dijkstra.pdf

Künstliche Intelligenz                                                   Miao Wang                                                                             23
Vorlesung Künstliche Intelligenz
                                                                            Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

Beispiel 1: Uniforme Kostensuche
                                                    OPEN                                    CLOSED

                                                    1 (0)                                   -
                 2           1        2                                                     1 (0)
                                                    2 (2), 5 (1)

     1                   3       3        1         2 (2), 9 (2)                            1 (0), 5 (1)

                 5           1        5             9 (2), 3 (3), 6 (5)                     1 (0), 5 (1), 2 (2)

                                                    3 (3), 6 (5), 10 (10)                   1 (0), 5 (1), 2 (2), 9 (2)
     1                   4       10       15
                 8           3        1             6 (5), 10 (10), 4 (5)                   1 (0), 5 (1), 2 (2), 9 (2), 3 (3)

                                                    10 (10), 4 (5), 7 (6), 10 (9)           1 (0), 5 (1), 2 (2), 9 (2), 3 (3), 6 (5)

                                                    7 (6), 10 (9), 8 (6)                    1 (0), 5 (1), 2 (2), 9 (2), 3 (3), 6 (5),
                                                                                            4 (5)
                                                    10 (9), 8 (6), 3 (9), 11 (16)           1 (0), 5 (1), 2 (2), 9 (2), 3 (3), 6 (5),
                                                                                            4 (5), 7 (6)
                                                    10 (9), 3 (9), 11 (16), 12 (21)         1 (0), 5 (1), 2 (2), 9 (2), 3 (3), 6 (5),
                                                                                            4 (5), 7 (6), 8 (6)
                                                    3 (9), 11 (16), 12 (21), 11 (12)        1 (0), 5 (1), 2 (2), 9 (2), 3 (3), 6 (5),
                                                                                            4 (5), 7 (6), 8 (6), 10 (9)
                                                    12 (21), 11 (12)                        1 (0), 5 (1), 2 (2), 9 (2), 3 (3), 6 (5),
                                                                                            4 (5), 7 (6), 8 (6), 10 (9)
                                                    12 (21), 12 (13)                        1 (0), 5 (1), 2 (2), 9 (2), 3 (3), 6 (5),
                                                                                            4 (5), 7 (6), 8 (6), 10 (9), 11 (12)
                                                    -                                       1 (0), 5 (1), 2 (2), 9 (2), 3 (3), 6 (5),
                                                                                            4 (5), 7 (6), 8 (6), 10 (9), 11 (12), 12 (13)

Künstliche Intelligenz                         Miao Wang                                                                             24
Vorlesung Künstliche Intelligenz
                                                                 Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

Beispiel 2: Uniforme Kostensuche
                                                 OPEN                               CLOSED

                                                 1 (0)                               -

                     10        20
                                                 2 (10), 3 (20)                      1 (0)

                                                 3 (20), 4 (12)                      1 (0), 2 (10)

                     2         -15                                                   1 (0), 2 (10), 4 (12)
                                                 3 (20), 5 (27)

                          15                     5 (27), 4 (5)                       1 (0), 2 (10), 4 (12), 3 (20)

                                                 5 (27), 5 (20)                      1 (0), 2 (10), 4 (12), 3 (20), 4 (5)

                                                 -                                   1 (0), 2 (10), 3 (20), 4 (5), 5 (20)

Künstliche Intelligenz               Miao Wang                                                                            25
Vorlesung Künstliche Intelligenz
                                                                                Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

Heuristiken

          Domänenspezifisches Wissen um die Qualität von potentiellen oder partiellen Lösungen zu schätzen
          z.B. Kostenüberschlagsrechnung für eine Reise, Luftlinie als Distanz zwischen zwei Orten

          Eine Suche kann mit Hilfe von Heuristiken erheblich beschleunigt werden.

          Eine geeignete Heuristik sollte zielgerichtet sein, d.h. nicht nur die bisherige Vergangenheit betrachten,
          sondern auch eine Abschätzung zum Ziel geben.

          h(n) = heuristische (geschätzte) Kosten von n zum Ziel

          Eine heuristische Funktion ist um so brauchbarer, je mehr Zustände sie unterschiedlich bewertet.
                                                                                                 bewertet

          Eine heuristische Funktion, die alle Zustände gleich bewertet, ist unbrauchbar.

Künstliche Intelligenz                                    Miao Wang                                                                      26
Vorlesung Künstliche Intelligenz
                                                                               Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

Bestensuche (Best-First-Search)

          Eine Bestensuche priorisiert nach einer Heuristik. Es wird in jeder Iteration stets der Knoten ausgewählt
          mit minimalen heuristischen Kosten. Die optimale Lösung ist jedoch nicht garantiert.

          Greedy-Bestensuche:

                                                                                                            Luftlinie nach Ulm:

                                                                                                            Basel                    204
                                                                                                            Bayreuth                 207
                                                                                                            Bern                     247
                                                                                                            Frankfurt                215
                                                                                                            Innsbruck                163
                                                                                                            Karlsruhe                137
                                                                                                            Landeck                  143
                                                                                                            Linz                     318
                                                                                                            München                  120
                                                                                                            Mannheim                 164
                                                                                                            Memmingen                47
                                                                                                            Nürnberg                 132
                                                                                                            Passau                   257
                                                                                                            Rosenheim                168
                                                                                                            Stuttgart                75
                                                                                                            Salzburg                 236
                                                                                                            Würzburg                 153
                                                                                                            Zürich                   157

Künstliche Intelligenz                                   Miao Wang                                                                      27
Vorlesung Künstliche Intelligenz
                                                                                        Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

Beispiel: Greedy-Bestensuche
                                                                         Luftlinie nach Ulm:

                                                                         Basel            204           Memmingen                 47
                                                                         Bayreuth         207           Nürnberg                  132
                                                                         Bern             247           Passau                    257
                                                                         Frankfurt        215           Rosenheim                 168
                                                                         Innsbruck        163           Stuttgart                 75
                                                                         Karlsruhe        137           Salzburg                  236
                                                                         Landeck          143           Würzburg                  153
                                                                         Linz             318           Zürich                    157
                                                                         München          120
                                                                         Mannheim         164

     Von Mannheim nach Ulm mit Greedy-Bestensuche:

                                         Mannheim
                                          h = 164
                                                                                                 Greedy findet den Weg
                                                                                                 Mannheim-Nürnberg-Ulm mit
                                                                     Frankfurt
                                                                                                 401 km.
                Karlsruhe                Nürnberg
                 h = 137                  h = 132                     h = 215
                                                                                                 Aber Mannheim-Karlsruhe-
                                                                                                 Stuttgart-Ulm mit 238 km
                                                                                                 wäre deutlich kürzer.

                   Würzburg   Mannheim   Ulm        München    Passau       Bayreuth
                    h = 153    h = 164   h=0         h = 120   h = 257       h = 207

Künstliche Intelligenz                                         Miao Wang                                                                         28
Vorlesung Künstliche Intelligenz
                                                                               Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

Heuristiken (2)

          Um die Probleme der Greedy-Bestensuche zu umgehen, wird nicht nur die heuristische Wert zum Ziel
          gewählt sondern zusätzlich noch die bisher verbrauchten Kosten vom Start.

          g(n) = minimale Kosten von s0 nach n

          h(n) = heuristische (geschätzte) Kosten von n zum Ziel

          f(n) = g(n) + h(n)

          mit g(s0) = 0

          Eine Heuristik h ist zulässig, wenn sie optimistisch ist (Unterschätzung):
          h(n) ≤ h*(n)             mit h*(n) = echte minimale Kosten von n zum Ziel

          Eine Heuristik h ist monoton, wenn jede Kante unterschätzt wird:
          ∀ Kinder m von n : h(n) – h(m) ≤ c(n,m)

          Konvertiere eine zulässige Heuristik in eine monotone mit
          h‘(m) = max { h(m), h(n) – c(n,m) }

          Eine Heuristik h1 ist mehr informiert als h2, wenn
          ∀n : h*(n) ≥ h1(n) > h2(n)

Künstliche Intelligenz                                   Miao Wang                                                                      29
Vorlesung Künstliche Intelligenz
                                                                                Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

A*-Algorithmus

          A* ist eine Bestensuche, die nur optimistische Heuristiken benutzt:

               1. Init:        OPEN = {s0} , CLOSED = {} , f(s0) = g(s0) + h(s0) = h(s0)
               2. Fail:        if OPEN = {}      terminate with FAIL
               3. Select:      Extract a state n with minimum heuristic cost f(n) from OPEN
                               and save n to CLOSED
               4. Terminate:   if n ∈ G          terminate with SUCCESS and return f(n)
               5. Expand:      For each successor m of n with T:
                               if m ∉ (OPEN ∪ CLOSED)
                                               CLOSED
                                   g(m) = g(n)) + c(n,
                                                  c(   m)
                                   f(m) = g(m)) + h(m)
                                                  h(
                                   insert m to OPEN
                               else if m ∈ (OPEN ∪ CLOSED)
                                   g(m)) = min { g(m)
                                                 g(   , g(n) + c(n, m) }
                                   f(m) = g(m)) + h(m)
                                                  h(
                                   if f(m)) has decreased and m ∈ CLOSED
                                        move m from CLOSED to OPEN
               6. Loop2:   Goto Step 2

          Existieren bei Schritt 3 mehrere Zustände n mit gleichem f(n), so wähle jenes mit zusätzlich minimalsten g(n)

          Unzulässige Heuristiken können den Suchraum beschneiden, aber wenn zu viel beschnitten wird, kann das
          optimale Ziel ebenfalls weggeschnitten werden (siehe Greedy-Bestensuche)
                                                               Greedy

Künstliche Intelligenz                                   Miao Wang                                                                       30
Vorlesung Künstliche Intelligenz
                                                                                          Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

  Beispiel: A*
       Von Mannheim nach Ulm mit A*:

                                           Mannheim
                                     g = 0, h = 164, f = 164

        Karlsruhe                         Nürnberg                    Frankfurt
  g = 67, h = 137, f = 204         g = 230, h = 132, f = 362   g = 85, h = 215, g = 300

                                                                                                                     Luftlinie nach Ulm:
       Stuttgart                      Basel
g = 131, h = 75, f = 206     g = 258, h = 204, f = 462                                                               Basel                     204
                                                                                                                     Bayreuth                  207
                                                                                                                     Bern                      247
                                                                                                                     Frankfurt                 215
                                                                                                                     Innsbruck                 163
                                                                                                                     Karlsruhe                 137
                                                                                                                     Landeck                   143
       Würzburg                        Ulm
g = 271, h = 153, f = 424     g = 238, h = 0, f = 238
                                                                                                                     Linz                      318
                                                                                                                     München                   120
                                                                                                                     Mannheim                  164
                                                                                                                     Memmingen                 47
                                                                                                                     Nürnberg                  132
                                                                                                                     Passau                    257
                                                                                                                     Rosenheim                 168
                                                                                                                     Stuttgart                 75
                                                                                                                     Salzburg                  236
                                                                                                                     Würzburg                  153
                                                                                                                     Zürich                    157
  Künstliche Intelligenz                                               Miao Wang                                                                     31
Vorlesung Künstliche Intelligenz
                                                                                                            Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

   Beispiel 2: A*
        Von Linz nach Ulm mit A*:

                                              Linz
                                     g = 0, h = 318, f = 318

                      Passau                                                  Salzburg
              g = 102, h = 257, f = 359                               g = 126, h = 236, g = 362

       Nürnberg                       München                               Rosenheim                                                  Luftlinie nach Ulm:
g = 322, h = 132, f = 454      g = 291, h = 120, f = 411              g = 207, h = 168, f = 375
                                                                                                                                       Basel                     204
                                                                                                                                       Bayreuth                  207
                                                                                                                                       Bern                      247
                                                             Innsbruck                        München                                  Frankfurt                 215
                                                       g = 300, h = 163, f = 463       g = 266, h = 120, f = 386                       Innsbruck                 163
                                                                                                                                       Karlsruhe                 137
                                                                                                                                       Landeck                   143
                                                                                                                                       Linz                      318
                                                                                                                                       München                   120
                   Memmingen                         Ulm                          Nürnberg                      Passau
              g = 381, h = 47, f = 428      g = 389, h = 0, f = 389        g = 436, h = 132, f = 568    g = 455, h = 257, f = 712      Mannheim                  164
                                                                                                                                       Memmingen                 47
                                                                                                                                       Nürnberg                  132
                                                                                                                                       Passau                    257
                                                                                                                                       Rosenheim                 168
                                                                                                                                       Stuttgart                 75
                                                                                                                                       Salzburg                  236
                                                                                                                                       Würzburg                  153
                                                                                                                                       Zürich                    157
   Künstliche Intelligenz                                                      Miao Wang                                                                               32
Vorlesung Künstliche Intelligenz
                                                                                    Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

A*-Algorithmus

          Der A*-Algorithmus ist optimal.. Das heißt, er findet immer die Lösung mit den niedrigsten Gesamtkosten,
          wenn die Heuristik h zulässig ist.

          Wie bei Dijkstra hängt die Laufzeit von A* vom Datentyp von OPEN ab.

          Der A*-Algorithmus
                 Algorithmus ist laufzeittechnisch recht effizient hat aber einen hohen Speicherbedarf in dichten
          Netzen, da alle Knoten in Open im Speicher liegen müssen.

          Der A*-Algorithmus enthält die folgenden Algorithmen als Spezialfälle:
                  •      Für c ≥ 0 und h = 0 erhält man den Dijkstra-Algorithmus.
                                                            Dijkstra
                  •      Für c = 0 erhält man die Bestensuche.
                  •      Für c = 1 und h = 0 erhält man die Breitensuche.
                  •      Für c = -1 und h = 0 erhält man die Tiefensuche, wenn man Knoten verbietet wieder von CLOSED
                         nach OPEN zu gelangen

Künstliche Intelligenz                                       Miao Wang                                                                       33
Vorlesung Künstliche Intelligenz
                                                        Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

A* in Prolog

 %Graph definiert als
 %con(X,Y).

 % besta(Goals, Open, Closed)
 besta(Goals, [[X,_] | _], _) :-
    member(X, Goals), !, write(X).
 besta(Goals, [[X,T] | RestOpen], Closed) :-
                                           -
    member([X,T1], Closed), T >= T1, !, besta(Goals,
                                        besta        RestOpen, Closed).
 besta(Goals, [[X,T] | RestOpen], Closed) :-
                                           -
    member([X,T1], Closed), T < T1, !, kinderbest(X,T,L),
                                       kinderbest         append(L, RestOpen, NewOpen),
    qsort(NewOpen, Open), besta(Goals,
                               (Goals, Open, Closed).
 besta(Goals, [[X,T] | RestOpen], Closed) :-
                                           -
    write(X), heuristik(X,T,FX), write(FX),
                                      (FX), nl, kinderbest(X,T,L),
    append(L, RestOpen, NewOpen), qsort(NewOpen
                                        NewOpen, Open),
    besta(Goals,Open,[[X|T],Closed]).

 % kinderbest(X,T,L)
             (X,T,L) holt alle Kinder von X und fügt sie in L hinzu mit dem
 % heuristischen Wert basierend auf T und der Heuristik

 % qsort(X,Y) sortiert Liste X in Liste Y

Künstliche Intelligenz                  Miao Wang                                                                34
Vorlesung Künstliche Intelligenz
                                                                            Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

A*-Varianten

          Um die Speicherproblematik von A* zu umgehen, gibt es viele Variationen von A*:
                  •      IDA* (Iterative Deepening A*)
                  •      RBFS (Recursive Best-First Search)
                  •      MA* (Memory-Bounded A*)
                  •      SMA* (Simplified MA*)
                  •      D* (A* für dynamische Graphen)
                  •      SSS* (A* mit Alpha-Beta-Pruning bei Schach)
                                                             Schach

Künstliche Intelligenz                                        Miao Wang                                                              35
Vorlesung Künstliche Intelligenz
                                                  Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

Implementierung der Wegfindung ist nicht immer perfekt

Künstliche Intelligenz              Miao Wang                                                              36
Vorlesung Künstliche Intelligenz
                                     Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

Spieltheorie

Künstliche Intelligenz   Miao Wang                                                            37
Vorlesung Künstliche Intelligenz
                                                                                   Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

Grundlagen der Spieltheorie

          Die Suche wird in der Spieltheorie benutzt um optimale Aktionen zu gegebenen Stellungen zu ermitteln.

          Dabei entstammt die Spieltheorie nicht Spielen, sondern ist ein mathematisches Feld, welches aus den
          Wirtschaftswissenschaften entstammt. Sie findet aber auch Anwendung in Politikwissenschaften, der
          Biologie, der Soziologie, der Psychologie oder der Künstlichen Intelligenz.

          Für spieltheoretische Probleme müssen wir das allgemeine Suchproblem etwas modifizieren:

                  •      Ein Zustand entspricht nun einer bestimmten Stellung / Zustand im Spiel
                  •      Die Übergangsfunktion beschreibt mögliche Aktionen des Computers oder des menschlichen
                         Spielers um von einem Zustand zu einem Folgezustand zu gelangen
                  •      Meist existiert ein Zuggenerator,, der gegeben einen Zustand eine Menge an zulässigen Aktionen
                         generiert
                  •      Ein Blattknoten repräsentiert ein Spielende und wird als terminale Stellung bezeichnet
                  •      In der Regel können wir die Suche nicht bis zu den Blattknoten ausführen. Wir brechen in einer
                         Tiefe t vorzeitig ab. Die Stellungen auf Tiefe t sind nun ebenfalls terminale Stellungen
                  •      Alle terminalen Stellungen werden von einer Bewertungsfunktion bewertet, die angibt, ob das eine
                         gute oder schlechte Stellung für den jeweiligen suchenden Spieler ist

Künstliche Intelligenz                                        Miao Wang                                                                     38
Vorlesung Künstliche Intelligenz
                                                                            Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

Grundlagen der Spieltheorie

          Ein allgemeiner Suchbaum der Spieltheorie:

          Die Bewertungsfunktion ist in der Regel eine gewichtete Summe aus vielen kleinen Heuristiken:

Künstliche Intelligenz                                 Miao Wang                                                                     39
Vorlesung Künstliche Intelligenz
                                                                              Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

Warum können wir nicht bis zu den Blättern suchen?

          Angenommen unser Spiel hat einen konstanten Verzweigungsfaktor von 30, d.h. 30 unterschiedliche
          Aktionsmöglichkeiten pro Stellung.

          Sei unsere erste Lösung in Tiefe 50.

          Der entsprechende Suchbaum hätte                                          Knoten.

          Angenommen wir hätten 10.000 Computer, die jeweils eine Milliarde Suchschritte pro Sekunde schaffen, und
          man könne die Arbeit ohne Verluste auf alle Rechner verteilen, dann beläuft sich die Rechenzeit auf

          Dies ist zum Glück nur 1043 mal so lange wie unser Universum alt ist.

          Wie kann es dann sein, dass ein Schachcomputer gegen den Weltmeister gewinnt?

Künstliche Intelligenz                                  Miao Wang                                                                      40
Vorlesung Künstliche Intelligenz
                                                                              Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

Tic-Tac-Toe
          Ein einfaches Spiel zur Überschaubarkeit ist Tic-Tac
                                                           Tac-Toe. Der Zustandsraum von TTT ist so klein, dass man
          theoretisch auch bis zu den Blättern suchen könnte.

          Wenn wir suchen, müssen wir auch das mögliche Verhalten des Gegner in Betracht ziehen und entsprechend
          agieren. Das Verhalten des Gegners ist jedoch ungewiss und meistens kontraproduktiv.

          Idee: Gegner ist unfehlbar, spielt immer den bestmöglichen Zug (optimale Spielstrategie)

                                                                                               Bewertung für terminale Stellungen:
                                                                    Halbzug

                                                                                                        -1            0            1
                                                                                                   o gewinnt        remis      x gewinnt
                                                                              Zug

Künstliche Intelligenz                                  Miao Wang                                                                      41
Vorlesung Künstliche Intelligenz
                                                                                                  Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

Min-Max-Algorithmus
      Ein Nullsummenspiel ist definiert als ein Spiel, wo eine gewinnbringende Aktion eines Spielers den Gegenspieler
      stets schadet und andersrum. Die Gesamtsumme der Gewinne/Verluste aller Spieler ist gleich 0.

      Für einen optimalen Gegenspieler findet der Min-Max--Algorithmus für Nullsummenspiele für zwei Spieler die
      optimale Lösung:

      Ein Spieler versucht seine Bewertung stets zu maximieren, während der Gegenspieler versucht ihn zu minimieren.

                                                          0

                                      -1             -1                     0

       J. von Neumann, “Zur Theorie der Gesellschaftsspiele,” Mathematische Annalen, vol. 100, no. 1, pp. 295–320, 1928.
       J.. von Neumann and O. Morgenstern, Theory of Games and Economic Behavior. Princeton University Press, 2007. ISBN-13: 978-0-69113-061-3.

Künstliche Intelligenz                                                Miao Wang                                                                            42
Vorlesung Künstliche Intelligenz
                                                                            Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

Min-Max-Algorithmus
          Sei n die aktuelle Spielstellung

          Pseudocode:
                  maxKnoten(n)                                     minKnoten(n)
                     if n is terminal state                           if n is terminal state
                          return eval(n)                                   return eval(n)
                     else                                             else
                               ∞
                          w = -∞                                           w = ∞
                     for each successor m of n                        for each successor m of n
                          v = minKnoten(m)                                 v = maxKnoten(m)
                          if v > w then w = v                              if v < w then w = v
                     return w                                         return w

          Sei b der Verzweigungsgrad (branching-factor)) und t die Tiefe des Suchbaums:

          Laufzeit: O(bt)

          Variante: Der NegaMax-Algorithmus

Künstliche Intelligenz                                 Miao Wang                                                                     43
Vorlesung Künstliche Intelligenz
                                            Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

Beispiel: Min-Max-Algorithmus

Künstliche Intelligenz          Miao Wang                                                            44
Vorlesung Künstliche Intelligenz
                                                           Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

Min-Max-Algorithmus in Prolog

      minmax(Pos, BestSucc, Val) :-
         (moves(Pos, PosList), !, best(PosList
                                       PosList, BestSucc, Val));
         eval(Pos, Val).

      best([Pos], Pos, Val) :- minmax(Pos,
                                     (Pos, _, Val), !.
      best([Pos1 | PosList], BestPos, BestVal)) :-
                                                :
         minmax(Pos1, _, Val1), best(PosList,, Pos2, Val2),
         betterof(Pos1, Val1, Pos2, Val2, BestPos,
                                           BestPos BestVal).

      betterof(Pos1,
              (Pos1, Val1,   Pos2, Val2, Pos1, Val1) :-
                                                     :
         (mintomove(Pos1),   Val1 > Val2, !);             % max-Knoten
         (maxtomove(Pos1),   Val1 < Val2, !).             % min-Knoten
      betterof(Pos1,
              (Pos1, Val1,   Pos2, Val2, Pos2, Val2).

      % moves(P,L)
             (P,L) ist der Zuggenerator und fügt alle gültigen Folgezustände von P in L
      % wenn P terminale Stellung, dann liefert moves(P,L) false

Künstliche Intelligenz                      Miao Wang                                                               45
Vorlesung Künstliche Intelligenz
                                                                                                      Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

Das Nash-Equilibrium
          Der Min-Max-Algorithmus findet als Hauptvariante stets ein Nash-Gleichgewicht.
                                                                     Nash

          Weicht der Spieler oder Gegenspieler von dieser Variante ab, kann der jeweilige Spieler seine Bewertung aus
          seiner Sicht nur verschlechtern.

          Beispiel von vorhin:

       J. Nash, “Equilibrium Points in N-Person
                                         Person Games,” Proceedings of the National Academy of Sciences, vol. 36, pp. 48–49, 1950.
       J. Nash, “Non-Cooperative
                      Cooperative Games,” The Annals of Mathematics, vol. 54, no. 2, pp. 286–295, 1951.

Künstliche Intelligenz                                                   Miao Wang                                                                             46
Vorlesung Künstliche Intelligenz
                                                                            Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

Alpha-Beta-Pruning
          Min-Max
              Max hat exponentielles Wachstum, da alle Situationen betrachtet werden. Es gibt jedoch Situationen im
          Spielbaum, bei denen einzelne Zweige nicht mehr betrachtet werden müssen, da sie ein Maximum/Minimum
          am Elternknoten nicht mehr verändern.

          Das Alpha-Beta-Pruning nutzt dies aus um unnötige Äste im Baum abzuschneiden.

Künstliche Intelligenz                                 Miao Wang                                                                     47
Vorlesung Künstliche Intelligenz
                                                                 Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

Alpha-Beta-Pruning
          Pseudocode:

                 alpha-beta(n, α, β):
                    if n is terminal state return eval(n)
                                                   eval
                    if n is max-Node
                         for each successor m of n
                              α = max{α
                                      α, alpha-beta(m,
                                                    (m, α, β)}
                              if α ≥ β return β
                              else continue
                         return α
                    else if n is min-Node
                         for each successor m of n
                              β = max{β            (m, α, β)}
                                      β, alpha-beta(m,
                              if α ≥ β return α
                              else continue
                         return β

Künstliche Intelligenz                          Miao Wang                                                                 48
Vorlesung Künstliche Intelligenz
                                                                   Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

                                                        1
  Beispiel: Alpha-Beta-Pruning                                                                           [α
                                                                                                          α, β]
                                                        0
                                                       [-∞
                                                         ∞, ∞]
                                                                                          hat blau sicher       hat rot sicher

                                                                                          Blau will maximieren
                   0                                                                      Rot will minimieren

                   1
          [-∞
            ∞, ∞]                                            5                                            1
                                                        [0,, ∞]                                    [0, ∞]

 1
[-∞
  ∞, ∞]                                                                             1
                                                                                  [0, ∞]                             [0, 1]

                           0                5     -2

                               -2 < α     (= 0)
                               α-Cutoff
     1              -1                                             -5           1            2

                                                                                                        2>β          (= 1)
  Künstliche Intelligenz                               Miao Wang                                        β-Cutoff             49
Vorlesung Künstliche Intelligenz
                                                                                 Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

Alpha-Beta-Pruning
          Exemplarisch illustrierte Laufzeiten für 4-gewinnt
                                                     gewinnt in einem 7x6 Feld

                         Tiefe   Min-Max     Alpha-Beta
                         7       0:05 min
Vorlesung Künstliche Intelligenz
                                                                            Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

Unterscheidung von Spielen
          Spiele können unterschiedliche Eigenschaften haben, sodass sie nicht immer mit den vorgestellten Methoden
          so einfach zu lösen sind:

          Spieleranzahl: Ein-Spieler, Zwei-Spieler,
                                           Spieler, Mehrspieler
          Zugfolge: Partisan
          Informationsstand: perfekt, vollständig, unvollständig, …
          Wahrscheinlichkeiten: keine, diskret oder stetig
          Allianzen: kooperativ, nicht-kooperativ
          Gleichgewichte: kein, ein oder mehrere
          Wiederholungen: einmalig, mehrmalig eigenständig, mehrmalig aufbauend, …
          Entscheidungszeitraum: dynamisch / Echtzeit, statisch / rundenbasiert, …

Künstliche Intelligenz                                   Miao Wang                                                                   51
Vorlesung Künstliche Intelligenz
                                                                                           Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

Unvollständige Information: Das Ziegenproblem

            1.    Hinter einem Tor versteckt sich ein Auto, hinter den anderen beiden eine Ziege.
            2.    Der Kandidat wählt ein Tor aus.
            3.    Hat der Kandidat das Tor mit dem Auto gewählt, dann öffnet der Moderator zufällig eines der
                  beiden anderen Tore, hinter dem sich immer eine Ziege befindet.
            4.    Hat der Kandidat ein Tor mit einer Ziege gewählt, dann öffnet der Moderator dasjenige der beiden
                  anderen Tore, hinter dem die zweite Ziege steht.
            5.    Der Moderator bietet dem Kandidaten an, seine Entscheidung zu überdenken und das andere
                  ungeöffnete Tor zu wählen.

            Was sollte der Kandidat tun?

             Lösung: Der Kandidat sollte das Tor wechseln. Seine Gewinnchance beträgt dann 2/3 anstatt 1/3.

        Weitere interessante Beispiele der Spieltheorie: http://de.wikipedia.org/wiki/Spieltheorie#Beispiele

Künstliche Intelligenz                                           Miao Wang                                                                          52
Vorlesung Künstliche Intelligenz
                                                                                            Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

Allianzen: Das Gefangenendilemma

     •     Zwei Gefangene werden verdächtigt, gemeinsam eine
           Straftat begangen zu haben. Die Höchststrafe für das
           Verbrechen beträgt fünf Jahre.
     •     Beiden Gefangenen wird ein Handel vorgeschlagen: Wenn
           einer gesteht und somit seinen Partner mitbelastet, kommt
           er mit einer milden Strafe davon (1 Jahr) – der andere muss
           die vollen 5 Jahre absitzen.
     •     Entscheiden sich beide weiter zu schweigen, führen die
           Indizienbeweise beide für 2 Jahre hinter Gitter.
     •     Gestehen beide die Tat, erwartet jeden weiterhin eine
           Gefängnisstrafe von 3 Jahren.
     •     Beide Gefangenen werden unabhängig voneinander
           befragt. Weder vor noch während der Befragung haben die
           beiden die Möglichkeit, sich untereinander abzusprechen.

     Was wäre eine rationale Entscheidung?

      Kollektiv wäre es sinnvoll zu schweigen
      Doch individuell wäre es vorteilhafter auszusagen

         Weitere interessante Beispiele der Spieltheorie: http://de.wikipedia.org/wiki/Spieltheorie#Beispiele

Künstliche Intelligenz                                            Miao Wang                                                                          53
Vorlesung Künstliche Intelligenz
                                                                                           Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

Kooperationen: Eisverkäufer am Strand
          Hotellings Gesetz ist ein Theorem in der Mikroökonomie, welches demonstriert das einzeln, rational
          entscheidende Produzenten im Gesamten weniger Gewinn erwirtschaften als kooperativ handelnde.

                    •    Zwei Eisverkäufer platzieren ihre Stände an einem Strand von 100 m Länge.
                    •    Der Strand ist gleichmäßig mit Badegästen gefüllt und jeder Badegast wählt den
                         Eisverkäufer, der näher dran ist, es sei denn der Weg ist zu weit.
                    •    Gesucht ist die optimale Position beider Eisverkäufer für den maximalen Umsatz

          Wenn beide Eisverkäufer
          rational und zielgerichtet
          handeln werden sie aus
          Konkurrenzgedanken immer
          näher Richtung Mitte
          wandern und letztlich
          weniger Umsatz machen!

        Weitere interessante Beispiele der Spieltheorie: http://de.wikipedia.org/wiki/Spieltheorie#Beispiele

Künstliche Intelligenz                                           Miao Wang                                                                          54
Vorlesung Künstliche Intelligenz
                                                                                           Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

Mehrere Gleichgewichte: Der Kampf der Geschlechter
          Der Kampf der Geschlechter ist ein verwandtes Problem zum Gefangendilemma
          und weist zwei Nash-Gleichgewichte auf:

          Ein Mann und eine Frau wollen den Abend verbringen, haben sich aber noch nicht
          auf einen Ort geeinigt. Beide müssen sich unabhängig voneinander entscheiden.
          Das Fußballspiel wird von dem Mann, das Konzert von der Frau präferiert.

          Folgende Tabelle zeigt die mögliche „Auszahlung“:

                                                    Fußball            Konzert                   Es gibt zwei Nash-Gleichgewichte
                                                                                                 oben links und unten rechts.
                               Fußball                 (3,1)              (0,0)
                                                                                                 Das Problem ist, dass es keine
                               Konzert                 (0,0)              (3,1)                  dominanten Strategien

        Weitere interessante Beispiele der Spieltheorie: http://de.wikipedia.org/wiki/Spieltheorie#Beispiele

Künstliche Intelligenz                                           Miao Wang                                                                          55
Vorlesung Künstliche Intelligenz
                                                                                 Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

Mehrspielerproblem
          Um Min-Max
                 Max für mehrere Spieler anwenden zu können, müssen einige Anpassungen vorgenommen werden:

                  •      Für jede Ebene muss gespeichert werden, welcher Spieler an der Reihe ist
                  •      Die Bewertungsfunktion darf nicht mehr einen Wert zurückliefern, sondern muss einen Nutzenvektor
                         erstellen, welche die Bewertungen für alle Spieler aus ihrer Sicht enthalten

          Es existieren nun jedoch mehrere Möglichkeiten die beste Alternative zu wählen.

Künstliche Intelligenz                                      Miao Wang                                                                     56
Vorlesung Künstliche Intelligenz
                                                                                                          Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

maxN-Variante
          Eine Variante wäre, wenn sich alle Spieler optimistisch verhalten und jeweils versuchen ihren eigenen Nutzen
          im Nutzenvektor stets zu maximieren:

       N. R. Sturtevant, A Comparison of Algorithms for Multi-player
                                                               player Games, vol. 0302/2003. Springer Berlin / Heidelberg, 2003. ISBN-13: 978-3-540-20545-6.
       C. Luckhardt and K. Irani, “An algorithmic solution of N-person
                                                                person games,” Fifth National Conference of the American Association for Artificial Intelligence
       (AAAI-86), vol. 1986, pp. 158–162, 1986.

Künstliche Intelligenz                                                     Miao Wang                                                                               57
Vorlesung Künstliche Intelligenz
                                                                                                       Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

Paranoid-Variante
          Im Gegensatz zu maxN können sich die Spieler aber auch pessimistisch verhalten und die Annahme treffen,
          dass sich alle Gegenspieler zu einer Allianz gegen sich selbst geschlossen haben. Die Annahme ist, dass
          sich die Gegner verbünden und vorhaben den eigenen Nutzen stets zu minimieren:

                                                                                                                                     Selber Suchbaum wie
                                                                                                                                     vorhin. Eingetragen ist nur
                                                                                                                                     der Nutzenwert vom
                                                                                                                                     suchenden Spieler A

       N. R. Sturtevant, A Comparison of Algorithms for Multi-player
                                                              player Games, vol. 0302/2003. Springer Berlin / Heidelberg, 2003. ISBN-13: 978-3-540-20545-6.
       N. R. Sturtevant and R. E. Korf, “On Pruning Techniques for Multi-Player
                                                                         Player Games,” Sixteenth National Conference of the American Association for
       Artificial Intelligence (AAAI-00), pp. 201–207, 2000.

Künstliche Intelligenz                                                   Miao Wang                                                                              58
Vorlesung Künstliche Intelligenz
                                                                                Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

Zusammenfassung

         •    Das allgemeines Suchproblem beschreibt das Problem einen Weg von einem Startzustand zu einem
              Zielzustand zu finden. Der Graph wird dabei implizit aufgebaut.
         •    Uninformierte Suchverfahren wie Tiefensuche oder Breitensuche suchen „blind“, und sind für große
              Graphen ineffizient.
         •    Informierte Suchverfahren bedienen sich einer heuristischen Funktion,
                                                                          Funktion mit der sie die Kosten zum Ziel
              abschätzen.
         •    Die Bestensuche priorisiert nach einer Heuristik und ist sehr schnell, findet aber die „erstbeste“ Lösung
              und somit nicht immer die allgemein beste Lösung
         •    Der A*-Algorithmus ist ein optimaler Wegfindungsalgorithmus und findet immer die Lösung mit den
              niedrigsten Gesamtkosten, wenn die Heuristik h zulässig ist.
         •    Methoden wie Iterative Tiefensuche, Bidirektionale Suche und Branch-and-Bound können die Suche
              beschleunigen.
         •    Für die Suche in der Spieltheorie wird das allgemeine Suchproblem leicht modifiziert.
         •    Der Min-Max-Algorithmus findet in einem Nullsummenspiel für zwei Spieler stets die optimale
              Hauptvariante gemäß dem Nash-Gleichgewicht.
                                              Gleichgewicht.
         •    Der Suchbaum kann mit Hilfe von Alpha-Beta-Pruning
                                                         Pruning stark beschnitten werden.
         •    Für Mehrspielerspiele müssen zusätzliche Faktoren berücksichtigt werden.

Künstliche Intelligenz                                    Miao Wang                                                                      59
Vorlesung Künstliche Intelligenz
                                                                                                           Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz

Übungsaufgaben
 Aufgabe 1 – Mehrere Anfangszustände (2P)
 Die Algorithmen in der Vorlesung sind immer von genau einem Anfangszustand ausgegangen. Wie kann man die Ansätze generalisieren,
                                                                                                                  generalisier    um mit mehreren
 möglichen Anfangszuständen umzugehen?

 Aufgabe 2 – 6 Steine (5 P)
 Gegeben sind drei weiße und drei schwarze Steine auf sieben nebeneinanderliegenden Feldern in der unten abgebildeten Verteilung.
                                                                                                                          Verteilu   Ziel ist es, dass alle
 weißen Steine links von den schwarzen liegen. Die Position des leeren Feldes
 ist dabei unerheblich.
 Bei jedem Zug wird ein Stein auf das leere Feld bewegt. Erlaubte Züge sind einen Stein auf ein benachbartes leeres Feld zu ziehen
                                                                                                                            zi     (mit Kosten von 1), einen
 Stein zu überspringen (Kosten 1) oder zwei Steine zu überspringen (Kosten 2).

 • Analysieren Sie den Zustandsraum im Hinblick auf Komplexität und Schleifen. (1P)
 • Beschreiben Sie eine geeignete heuristische Funktion h, um dieses Problem zu lösen. Analysieren Sie h im Hinblick auf Zulässigkeit,
                                                                                                                         Zuläs            Monotonie und
 Informiertheit. (3P)
 • Angenommen es existieren mehrere zulässige Heuristiken h1 … hk, die unterschiedlich informiert sind. D.h. keine Heuristik ist für alle Knoten informierter als
 eine andere, aber für einige Knoten schon. Welche Heuristik sollte man bei einem Knoten wählen? (1P)

 Aufgabe 3 – 8-Puzzle einfach und leicht (Advanced KI-Skills)
                                                 Puzzle für eine beliebige Startkonfiguration mittels Breitensuche oder A* löst.
 Schreiben Sie ein Prologprogramm, welches das 8-Puzzle

 Aufgabe 4 - Minimax und Alpha-Beta-Pruning (10P)

 • Führen Sie die Auswertung des abgebildeten Baumes per Minimax aus (auf Papier). (3P)
 • Werten Sie den Baum mit Alpha-Beta-Pruning von links nach rechts aus. (3P)
 • Werten Sie den Baum mit Alpha-Beta-Pruning von rechts nach links aus. (3P)
 • Erörtern Sie, warum bei den beiden Durchgängen für die Alpha-Beta-Pruning unterschiedlich beschnitten wurde. (1P)

Künstliche Intelligenz                                                      Miao Wang                                                                               60
Sie können auch lesen