• Keine Ergebnisse gefunden

Künstliche Intelligenz

N/A
N/A
Protected

Academic year: 2022

Aktie "Künstliche Intelligenz"

Copied!
53
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Künstliche Intelligenz – Zusammenfassung

Malte L. Jakob

19. Juli 2021

(2)

Inhaltsverzeichnis

1 Einführung 4

1.1 Was ist Künstliche Intelligenz? . . . 4

1.2 Suchen und Problemlösung . . . 4

1.3 Das 8-Puzzle . . . 4

2 Suche und Spielen 7 2.1 Uninformierte Suche . . . 7

2.1.1 Breitensuche . . . 7

2.1.2 Tiefensuche . . . 8

2.1.3 Uniform Cost Search . . . 9

2.1.4 Iterative Deepening . . . 9

2.1.5 Vergleich uninformierter Suchalgorithmen . . . 11

2.2 Heuristische Suche . . . 11

2.2.1 Gierige Suche . . . 12

2.2.2 A*-Suche . . . 12

2.2.3 Landmarkenheuristik . . . 13

2.2.4 Fahrzeitoptimierung . . . 13

2.2.5 IDA*-Suche . . . 13

2.2.6 Heuristiken entwerfen . . . 13

2.3 Spiele mit Gegnern . . . 14

2.3.1 Minimax-Suche . . . 14

2.3.2 Alpha-Beta-Pruning . . . 14

2.3.3 Heuristische Bewertungsfunktionen . . . 16

3 Kurzer Ausflug in die Logik 17 3.1 Aussagenlogik . . . 17

3.1.1 Modus Ponens . . . 18

3.2 Prädikatenlogik erster Stufe . . . 18

4 Schließen mit Unsicherheit 19 4.1 Rechnen mit Wahrscheinlichkeiten . . . 19

4.1.1 Bedingte Wahrscheinlichkeiten . . . 20

4.2 Methode der maximalen Entropie . . . 21

4.2.1 Bedingte Wahrscheinlichkeit gegen materiale Implikation . . . 23

4.2.2 MaxEnt und Nichtmonotonie . . . 23

5 Bayes-Netze 24 5.1 Bedingte Unabhängigkeit . . . 24

5.2 Anwendung . . . 25

5.3 Entwicklung von Bayes-Netzen . . . 27

5.4 Semantik von Bayes-Netzen . . . 27

6 Maschinelles Lernen 29 6.1 Datenanalyse . . . 30

6.2 Perzeptron . . . 31

6.2.1 Bias-Trick . . . 31

6.2.2 Optimierung . . . 32

6.3 Nearest Neigbour Methode . . . 32

6.3.1 Klassenanzahl und Approximation . . . 32

(3)

Weitere Zusammenfassungen von Malte Jakob gibt es unter i-malte.jimdofree.com

6.3.2 Rechenzeiten . . . 33

6.3.3 Fallbasiertes Schließen . . . 33

6.4 Datennormalisierung . . . 34

6.5 Qualistätsmaße für Klassifizierer . . . 34

6.6 Lernen von Entscheidungsbäumen . . . 35

6.6.1 Entropie und Informationsgehalt . . . 36

6.6.2 Informationsgewinn . . . 36

6.6.3 Stetige Attribute . . . 37

6.6.4 Fehlende Werte . . . 37

6.6.5 Pruning . . . 38

6.7 Kreuzvalidierung . . . 38

6.8 Lernen von Bayes-Netzen . . . 38

6.8.1 Der Naive-Bayes Klassifizierer . . . 38

6.8.2 Textklassifikation mit Naive-Bayes . . . 39

6.9 One-Class-Learning und Nearest Neighbour Data Description . . . 40

6.10 Clustering . . . 40

6.10.1 Abstandsmaße . . . 41

6.10.2 k-Means . . . 41

6.10.3 EM-Algorithmus . . . 41

6.10.4 Hierarchisches Clustering . . . 42

6.10.5 Bestimmen der Clusteranzahl . . . 42

7 Neuronale Netze 44 7.1 Lineare Netze . . . 44

7.1.1 Delta-Regel . . . 46

7.1.2 Logistische Regression . . . 46

7.2 Backpropagation . . . 47

7.2.1 Probleme und Verbesserungen . . . 47

7.3 Deep Learning . . . 48

7.3.1 Stacked Denoising Autoencoder . . . 48

7.3.2 Convonutional Neural Networks . . . 48

7.3.3 Lösung für den Fluch der Dimensionalität . . . 49

7.3.4 GAN-Netze . . . 49

7.4 Vor- und Nachteile von Neuronalen Netzen . . . 50

(4)

1 Einführung

1.1 Was ist Künstliche Intelligenz?

Die erste Definition für Künstliche Intelligenz stammte aus 1955 vom US-Amerikanischen Logiker und In- formatiker John McCarthy:

„Ziel der KI ist es, Maschinen zu entwickeln, die sich verhalten, als verfügten sie über Intelligenz.“

Diese Definition ist jedoch nicht ausreichend, da auch sehr simple Mechanismen wie Braitenberg-Vehikel ohne Wissen über die Funktionalität einen Eindruck von Intelligenz vermitteln können.

Definitionen wie die der Encyclopediea Britannica, die angeben, dass alles eine KI ist, das Aufgaben lösen kann, deren Lösung intellektuelle Fertigkeiten benötigen, lassen ebenfalls vermuten, dass jeder Computer eine Künstliche Intelligenz ist.

Die Definition von Elaine Rich hingegen ist ein sogenanntesMoving Target:

„Artificial Intelligence is the study of how to make computers do things at which, at the moment, people are better“

Denn worin wir Menschen aktuell noch besser sind als Computer, kann immer wieder neu ausgewertet werden (wie z.B. Lernfähigkeit).

1.2 Suchen und Problemlösung

Dinge zu finden, z.B. innerhalb eines Suchbaumes, kann sehr wichtig sein; Ab einer gewissen Größe wird dies jedoch sehr aufwändig. Ein Rechenbeispiel:

Beim Schach hat ein Spieler in der Regel pro Zug 30 verschiedene Möglichkeiten, welche Figur er wie bewegt und ein Spiel dauert ca. 50 Züge. Möchte man nun alle möglichen Zugreihenfolgen in einem Baum abbilden, so entspricht dies einem Baum mit einem Verzweigungsfaktor von 30 und einer Tiefe von 50. Somit hat er also 30507.2·1073 Blattknoten. Die Anzahl der Inferenzschritte (= Schlussfolgerungen oder Entscheidungen, die ein PC fällen muss), die ein Rechner durchrechnen muss, um alle möglichen Kombinationen zu erhalten entsprechen allen Knoten des Baumes. Diese werden mithilfe der Formel für geometrische Reihen wie folgt berechnet:

X50 d=0

30d= 13051

130 = 7.4·1073

Wie hier zu erkennen ist, ist die Anzahl aller inneren Knoten im Vergleich zu den Blattknoten unwesentlich klein.

Um all diese Möglichkeiten durchzurechnen, bräuchten alle Computer dieser Welt mehr Zeit als das Uni- versum alt ist. Eine Suchraumreduktion mithilfe eines effizienten Suchalgorithmus zu entwickeln, der das durchrechnenaller Möglichkeiten überflüssig werden lässt ist hier also sehr wichtig.

1.3 Das 8-Puzzle

Zuvor müssen jedoch einige Grundlagen abgedeckt werden, die sich gut anhand eines 8-Puzzles erklären lassen. Beim 8-Puzzle gilt es eine 3x3-Matrix, die wild vermengt die Zahlen 1 bis 8 enthält, zu sortieren, indem man immer eines der angrenzenden Teile auf das freie Feld verschiebt. Je nachdem, ob ein Feld in der Mitte, am Rand oder in einer Ecke frei ist, kann man aus zwei bis vier Zahlen auswählen. Der so entstehende Baum hat dadurch keinen konstanten Verzweigungsfaktor. Um dennoch eine gewisse Aussage

(5)

Weitere Zusammenfassungen von Malte Jakob gibt es unter i-malte.jimdofree.com

über die Schwierigkeit des zu lösenden Problems treffen zu können, kann einmittlerer Verzweigungsfaktor berechnet werden.

Definition 1.1: Mittlerer Verzweigungsfaktor

Der mittlere Verzweigungsfaktor eines Baumes ist der Verzweigungsfaktor, den ein Baum mit kon- stantem Verzweigungsfaktor gleicher Tiefe und gleich vielen Blattknotenhätte.

Mit einer Ebene auf Höhehund der Anzahl der Blattknotennlässt sich der mittlere Verzweigungs- faktorbwie folgt berechnen:

bh=n⇔b= h n

Der Verzweigungsfaktor eines 8-Puzzles hängt vom Startzustand ab. Wie genau Startzustände und Such- probleme definiert sind, ist nachfolgend gezeigt.

Definition 1.2: Suchproblem

Ein Suchproblem wird durch folgende Größen definiert:

Zustand: Beschreibung des Zustands der Welt, in dem sich ein Suchagent befindet.

Startzustand: Zustand, in dem der Agent anfängt.

Zielzustand: Erreicht der Agent diesen Zustand, so hört er auf zu suchen.

Aktionen: Alle erlaubten Aktionen des Agenten, um von einem Zustand in einen andern zu wechseln.

Lösung: Der Pfad im Suchbaum vom Start- zum Zielzustand.

Kostenfunktion: Ordnet jeder Aktion einen Kostenwert zu. Ist dann relevant, wenn kostenoptimale Lösungen gefunden werden sollen.

Zustandsraum: Ein Graph der Menge aller Zustände (als Knoten) und Aktionen (als Kanten). Es kann sein, dass solch ein Graph nicht zusammenhängend ist. Je nach Start- und Zielzustand kann es also sein, dass ein Problem nicht lösbar ist.

Zudem kann ein Problem noch zusätzliche Eigenschaften haben:

Definition 1.3: Eigenschaften von Suchproblemen Ein Suchproblem ist...

deterministisch, wenn jede Aktion in einen eindeutig bestimmten Nachfolgezustand führt.

beobachtbar, wenn der Suchagent zu jeder Zeit alles über das Problem weiß (z.B. im Schach alle Figuren sieht).

Aussagen über die Schwierigkeit eines Problems können Verzweigungsfaktoren liefern, wie bereits in Defi- nition 1.3 erwähnt.

Definition 1.4: Verzweigungsfaktor

Die Zahl der Nachfolgezustände eines Zustands (engl.: state)swirdVerzweigungsfaktor (engl.: bran- ching factor) b(s) bezeichnet. Ist der Verzweigungsfaktor über alle Zustände hinweg konstant, so lautet er einfach nurb.

(6)

Definition 1.5: Effektiver Verzweigungsfaktor

Der Effektive Verzweigungsfaktor hat in der Informatik mehr Relevanz, da er nicht nur Auskunft über die Schwierigkeit de Problems gibt, sondern auch über die Rechenzeit.

Im Vergleich zum mittleren Verzweigungsfaktor ist der effektive Verzweigungsfaktor der Verzwei- gungsfaktor, den ein Baum mit konstantem Verzweigungsfaktor gleicher Tiefe und gleich vielenKno- ten insgesamt hätte.

Er wird mithilfe folgender Formel berechnet:

n= Xd i=0

bi=bd+11 b−1

(7)

2 Suche und Spielen

2.1 Uninformierte Suche

Eine uninformierte Suche ist eine Suche, bei der der Suchagent, wie der Name schon sagt, vollkommen uninformiert ist und auf keinerlei Heuristiken (siehe Punkt 2.2) zurückgreifen kann. Heuristiken sind „Er- fahrungswerte oder Faustregeln“, die der Agent hat, die ihm die Suche erleichtern, wie z.B. der Zyklencheck;

Dieser besagt, dass wenn man einen Zustand antrifft, der so bereits weiter oben im Suchbaum existiert, der neu entdeckte Zustand und alle seine Nachfolger ignoriert/gelöscht werden können, da sich ab dort alles nur noch wiederholt.

Es gibt verschiedene Algorithmen, mit denen sich eine uninformierte Suche innerhalb eines Suchbaumes durchführen lässt; Diese haben verschiedene Eigenschaften.

Definition 2.1: Eigenschaften von Suchalgorithmen Ein Suchalgorithmus ist ...

vollständig, wenn er immer eine Lösung findet, sofern es eine gibt.

optimal, wenn er von allen Lösungen (falls sie existieren), die mit den geringsten Kosten findet. Wie lange er benötigt, um die optimale Lösung zu finden ist irrelevant.

offline, wenn er die Lösung sucht und findet, bevor er mit dem Bearbeiten des Problems anfängt.

online, wenn er noch während der Durchführung optimiert.

2.1.1 Breitensuche

Die Breitensuche ist ein Algorithmus, der den Suchbaum in einem Level-Order-Durchlauf (von links nach rechts, von oben nach unten, so wie man liest) nach einem angegeben Lösungszustand durchsucht, bis er am Ende ankommt oder eine Lösung findet.

Dadurch ist sichergestellt, dass er eine Lösung findet, falls sie existiert – somit ist er also vollständig. Eine Ausnahme hiervon bildet ein Suchbaum mit einem unendlich großen Verzweigungsfaktor und einer Lösung, die sich in einer Höhe > 1 befindet, da die Breitensuche die zweite Ebene nie erreichen wird.

Zudem ist die Breitensuche optimal, vorausgesetzt es gibt keine oder nur konstante Aktionskosten, da er nach dem Finden der ersten Lösung terminiert. Diese Lösung ist zugleich diejenige mit den am wenigsten benötigten Schritten, da sie die geringste Tiefe aufweist und mit dem Level-Order-Durchlauf somit als erstes gefunden wird. Gibt es Aktionskosten, so muss eineUniform Cost Search, die in Punkt 2.1.3 kurz erklärt wird, angewandt werden.

Die Rechenzeit, die hierfür benötigt wird, ist jedoch weit entfernt von optimal, da hier jeder Knoten betrachtet werden muss. Da er Ebene für Ebene durchläuft und alle Knoten betrachtet, ist die Berechnung der Rechenzeit analog zur Berechnung der Knotenanzahl eines Baumes. c ist hierbei nur ein konstanter Faktor, der mit der Leistungsfähigkeit des Computers zusammenhängt; Für sehr großedkann er allerdings, genau so wie der Rest der Konstanten, vernachlässigt werden, was durch dieO-Notation ausgedrückt wird.

Xd i=0

bi= bd+11

b−1 =O(bd)

Ebenso düster sieht der Speicherplatzbedarf aus. Hier gilt jedoch nicht die Summe aller Knoten, sondern nur die Ebene, auf der sich die Lösung befindet, da er nur die aktuell betrachtete Ebene speichert und nach der Betrachtung wieder verwirft. Somit beträgt der Speicherplatzbedarf ebenfallsO(bd). Bei Speicher ist dies jedoch weitaus gravierender, da es wesentlich schwerer ist, Speicher aufzurüsten als Rechenzeit abzuwarten.

(8)

Die Breitensuche kann rekursiv recht einfach implementiert werden, wie am untenstehenden Pseudocode gezeigt.

1 B r e i t e n s u c h e ( K n o t e n l i s t e , Z i e l k n o t e n ) 2 E n t d e c k t e K n o t e n = { };

3 for K n o t e n in K n o t e n l i s t e

4 if z i e l _ e r r e i c h t ( Knoten , Z i e l ) 5 r e t u r n (" L ö s u n g g e f u n d e n ")

6 E n t d e c k t e K n o t e n = E n t d e c k t e K n o t e n + N a c h f o l g e r ( K n o t e n ) 7 if E n t d e c k t e K n o t e n != { }

8 r e t u r n ( B r e i t e n s u c h e ( E n t d e c k t e K n o t e n , Z i e l )) 9 e l s e

10 r e t u r n (" K e i n e L ö s u n g ") Zusammengefasst:

Definition 2.2: Breitensuche

• vollständig für b <∞

• optimal, wenn alle Aktionskosten konstant oder gleich 0 sind

• Rechenzeit vonO(bd)

• Speicherplatzbedarf vonO(bd)

2.1.2 Tiefensuche

Während die Breitensuche Ebene für Ebene durchläuft, expandiert die Tiefensuche immer den Knoten am weitesten Links unten, bis es dort keine Nachfolger mehr gibt, oder eine Lösung gefunden wurde. Wurde der entsprechende Pfad bis zum Ende durchlaufen, so wandert der Algorithmus wieder einen Knoten nach oben, und sucht sich von dort den nächsten linkesten Knoten, den er wieder bis zum Ende expandiert und so weiter.

Bei einem unendlich tiefen Suchbaum (was besonders bei Zyklen weitaus wahrscheinlicher ist als ein unendlich breiter Suchbaum), liefert der Algorithmus aber nur eine Lösung, wenn auf dem linkesten Pfad eine Lösung liegt, denn die anderen Pfade werden nie erreicht. Da dieser Algorithmus nicht vollständig ist, kann auch nicht garantiert werden, dass er optimal ist.

Ist dies jedoch nicht der Fall, so lässt sich Rechenzeit und Speicherkapazität berechnen. Auch bei der Tiefensuche werden im worst case alle Knoten durchsucht, was auf dieselbe Rechenzeit vonO(bd)hinausläuft.

Bei der Berechnung des Speicherplatzbedarfes hingegen schneidet die Tiefensuche weitaus besser ab, denn sie speichert pro Ebene nur die Kinder eines Knotens, bevor sie sie wieder verwirft, als beträgt der Bedarf nurO(b·d).

Auch die Tiefensuche kann rekursiv wie folgt implementiert werden:

1 T i e f e n s u c h e ( Knoten , Z i e l ) 2 if z i e l _ e r r e i c h t ( Knoten , Z i e l ) 3 r e t u r n (" L ö s u n g g e f u n d e n ")

4 E n t d e c k t e K n o t e n = N a c h f o l g e r ( K n o t e n ) 5 w h i l e E n t d e c k t e K n o t e n != { }

6 If T i e f e n s u c h e ( e r s t e r ( E n t d e c k t e K n o t e n ) , Z i e l ) == " L ö s u n g g e f u n d e n "

7 r e t u r n " L ö s u n g g e f u n d e n "

8 E n t d e c k t e K n o t e n = E n t d e c k t e K n o t e n - e r s t e r ( E n t d e c k t e K n o t e n ) 9 r e t u r n " K e i n e L ö s u n g "

Zusammengefasst:

(9)

Weitere Zusammenfassungen von Malte Jakob gibt es unter i-malte.jimdofree.com

Definition 2.3: Tiefensuche

• nicht vollständig fürh=

• nicht optimal, da nicht vollständig

• Rechenzeit vonO(bd)

• Speicherplatzbedarf vonO(b·d)

2.1.3 Uniform Cost Search

Die Uniform Cost Search ist ien Algorithmus zum Ermitteln einer kostenoptimalen Lösung bei ungleichen Aktionskosten. Hierfür müssen die Knoten jedoch aufsteigend nach Kosten sortiert sein. Hier expandiert der Algorithmus immer den Knoten, mit den geringsten Aktionskosten, bis er entweder das Ende des Suchbaumes erreicht, oder eine Lösung gefunden hat.

Wenn er diese gefunden hat, hört er jedoch noch nicht mit dem Suchen auf, sondern fährt so lange fort, die anderen Knoten zu expandieren (ebenfalls aufsteigend nach Kosten sortiert), bis entweder eine günstigere Lösung gefunden wurde oder die Kosten des neu expandierten Pfades die der bisherigen Lösung übersteigen.

Dieser Algorithmus ist vollständig und optimal, durchläuft im worst case ebenfalls alle Knoten und hat, wie die Breitensche einen sehr hochen Speicherplatzbedarf.

2.1.4 Iterative Deepening

Der Vorteil der Breitensuche ist die Vollständigkeit und das Finden der optimalen Lösung; Der Nachteil hingegen ist der Speicherplatzbedarf. Die Tiefensuche hat diesen Bedarf nicht, ist jedoch weder optimal noch vollständig.

Das Iterative Deepening soll die Vorteile der beiden Algorithmen kombinieren und deren Nachteile aus- merzen. Hierbei wird die Tiefensuche immer nur auf einen Teil des Baumes angewandt, welcher Ebene für Ebene erweitert wird. So wird also der Bereich einer Breitensuche mittels Tiefensuche abgedeckt, ohne dass das Risiko einer unendlichen Tiefe berücksichtigt werden muss.

Dieser Algorithmus ist vollständig und optimal, aber nur unter der Bedingung, dass dasInkrement, also die Anzahl an Ebenen, die nach einer Iteration hinzugefügt werden, 1 ist. Werden nämlich mehrere Ebenen auf ein Mal hinzugefügt, so findet die Tiefensuche natürlich zuerst die Lösung ganz links, auch wenn weiter Rechts eine Lösung auf geringerer Ebene existiert. Um diesem Problem entgegenzuwirken kann der gesamte Bereich natürlich auch nach dem Finden der ersten Lösung durchsucht werden, dies beansprucht aber wiederum mehr Rechenzeit, die eventuell verschwendet ist. Zudem kommt durch ein höheres Inkrement einepraktische Unvollständigkeit zutage: Beim Vordringen in neue Tiefen ganz links wird bei hohem Verzweigungsgrad die Anzahl an zu durchuschenden Knoten unermesslich groß, bis der Rechner evtl. keinen Speicherplatz mehr frei hat; Dabei gab es auf höheren Ebenen, die diese Kapazität noch nicht sprengen, durchaus noch einige Lösungen zu finden.

Ein weiteres vermeintliches Problem des iterative deepening ist, dass es für jede Iteration den bereits durchsuchten Baum erneut durchucht und somit Rechenleistung verschwendet. Wie an nachfolgend erklärter Berechnung bewiesen wird, ist der Aufwand zum Durchsuchen des restlichen Baumes im Vergleich zu den Blattknoten verschwindend gering.

Die Formel zum Berechnen aller Knoten eines Baumes mit einer maximalen Tiefe d,maxist bereits be- kannt:

Nb(dmax) =

dXmax

i=0

bi=bdmax+11 b−1

Um den Rechenaufwand für das iterative deepening zu berechnen, muss dies allerdings für jede Iteration, also jeden Teilbaum auf dem Weg bis zur maximalen Tiefe (aber nicht die maximale Tiefe selbst), berechnet werden. Es handelt sich hierbei also um eine Summe von Summen:

dmaxX1 d=1

Nb(d) =

dmaxX1 d=1

bd+11 b−1

(10)

Nun können die Faktoren, die nicht direkt mitdin Verbindung stehen ausgeklammert werden; der Nenner des Bruchs wird nach vorne geschrieben, und das 1 wird separat von 1 bis dmax1 aufsummiert und danach abgezogen:

= 1

b−1 d

maxX1 d=1

bd+1

!

−dmax+ 1

!

Um das+1aus dem Exponenten vond zu bekommen, kann der Bereich der Summe einfach um eins nach oben verschoben werden:

= 1

b−1 d

Xmax

d=2

bd

!

−dmax+ 1

!

Dieser Ausdruck resultiert wieder in einer geometrischen Reihe; Da diese aber nicht bei 1 anfängt, sondern bei 2, muss das mit1−b entsprechend ausgeglichen werden:

= 1

b−1

bdmax+11

b−1 1−b−dmax+ 1

Nun kommt es zu einer Annäherung. Wennbausreichend groß wird, werden alle festen Werte, wie z.B.dmax verschwindend klein, und andere Terme, wieb, wachsen im Vergleich zu den Hauptthermen (bdmax+1b11) auch nicht schnell genug, sodass sie irgendwann „abgehängt“werden. Wendet man diese Überlegungen nun auf den obenstehenden Term an, so erhält man folgende Annäherung:

1 b−1

bdmax+11 b−1

= 1

b−1 ·Nb(dmax)

Somit ist bewiesen, dass alle Suchschritte vor der letzten Ebene nur b11 so viele sind, wie in der letzten Ebene durchgeführt werden müssen. Bei einen Verzweigungsfaktor vonb= 2beträgt dies zwar 1, und somit muss man immer genau so viele Suchschritte nochmal durchführen, wie man neu hinzufügen möchte, für höhereb(z.B.20 191) ist dieses Ergebnis jedoch durchaus betrachtlich, sodass dieser Sonderfall verkraftet werden kann. Somit bleibt die Rechenzeit beiO(bd).

Um den Algorithmus zu implementieren, muss lediglich eine Schranke in die bereits vorhandene Tiefensuche eingebaut werden, was in folgendem Pseudocode verdeutlicht werden soll.

1 I t e r a t i v e D e e p e n i n g ( Knoten , Z i e l ) 2 S c h r a n k e = 0;

3 R e p e a t

4 E r g e b n i s = T i e f e n s u c h e - B e s c h r ä n k t ( Knoten , Ziel , 0 , S c h r a n k e ) 5 T i e f e n s c h r a n k e ++

6 U n t i l E r g e b n i s = " L ö s u n g g e f u n d e n "

7

8 T i e f e n s u c h e - B e s c h r ä n k t ( Knoten , Ziel , Tiefe , S c h r a n k e ) 9 if Z i e l E r r e i c h t ( Knoten , Z i e l )

10 R e t u r n " L ö s u n g g e f u n d e n "

11 if T i e f e < S c h r a n k e

12 E n t d e c k t e K n o t e n = N a c h f o l g e r ( K n o t e n ) 13 w h i l e E n t d e c k t e K n o t e n != { }

14 If ( T i e f e n s u c h e ( e r s t e r ( E n t d e c k t e K n o t e n ) , Ziel , T i e f e + 1 , S c h r a n k e ) == \ 15 " L ö s u n g g e f u n d e n ")

16 r e t u r n " L ö s u n g g e f u n d e n "

17 E n t d e c k t e K n o t e n = E n t d e c k t e K n o t e n - e r s t e r ( E n t d e c k t e K n o t e n ) 18 r e t u r n " K e i n e L ö s u n g "

Da es sich beim Iterative Deepening, wie zu sehen, um die Tiefensuche handelt, hat es auch den selben Speicherplatzbedarf wie die Tiefensuche:O(bd)

(11)

Weitere Zusammenfassungen von Malte Jakob gibt es unter i-malte.jimdofree.com Breitensuche UCS Tiefensuche Iterative Deepening

Vollständigkeit Ja Ja Nein Ja

Optimale Lösung Ja* Ja Nein Ja*

Rechenzeit bd bd oderbd bd

Speicherplatz bd bd bd bd

Tabelle 2.1: Uninformierte Suchalgorithmen im Vergleich. Dick markierte Felder sind Ausschlusskriterien.

*Bei konstanten Kosten

Definition 2.4: Iterative Deepening

• Vollständig, wenn Inkrement= 1

• Optimal, wenn Kosten konstant und Inkrement= 1

• Rechenzeit O(bd)

• SpeicherplatzbedarfO(bd)

2.1.5 Vergleich uninformierter Suchalgorithmen

In Tabelle 2.1 sind die verschiedenen Leistungsmerkmale der Algorithmen gegenübergestellt. Wie gekenn- zeichnet scheiden Die Breitensuche und die Uniform Cost Search aufgrund ihres hohen Speicherplatzbedarfs für praktische Anwendungen aus. Die Tiefensuche ist zwar effizienter, aber nicht vollständig. Iterative Deepe- ning hat keinen dieser Nachteile und geht daher als „Sieger“ hervor. Dennoch hat er einen großen Nachteil, den sich alle bisher vorgestellten Algorithmen teilen: Die Rechenzeit. Wer „mal eben schnell “die Lösung für ein Problem sucht, muss hier im wahrsten Sinne des Wortes lange warten. Schneller geht es allerdings nicht, da uninformierte Algorithmen den kompletten Suchraum durchforsten müssen, bis sie zu einem Ergebnis kommen. Daher gibt es Heuristiken, um den Suchraum einzudämmen.

2.2 Heuristische Suche

Heuristiken sind Faustrgeln, an denen sich ein Algorithmus orientieren kann; Sie führen nicht immer zu einer optimalen Lösung, sind im Mittel aber schneller als uninformierte Algorithmen. Wenn im Alltag mit beschränkten Ressourcen Entscheidungen getroffen werden müssen, sind „gute“ Ergebnisse nach fünf Minu- ten besser als optimale Ergebnisse, deren Berechnung sich über sehr lange Zeit hinwegziehen kann. Die so erzielten Lösungen, werden auch als Probably Approximately Correct (PAC) bezeichnet.

Um so ein „Bauchgefühl“ zu entwickeln, benötig es eine heuristische Bewertungsfunktion f(s), die ver- schiedenen Zuständen einen Wert zuweist, wie gut die Aussichten euf eine Lösung sind, wenn man diesen Zustand wählt – je geringer der Wert desto besser. So besteht jeder Knoten eines Suchbaumes nun nicht mehr ausschließlich aus dem Zustand, sondern auch aus einer Bewertung dessen.

Die Heuristische Suche sortiert ihre Knotenliste basierend auf der Einschätzung zu jedem Zustand: Gute Chancen sind vorne, schlechte hinten. Sie entfernt also immer den ersten Knoten aus der Liste und schaut, ob dieser die Lösung des Problems ist. Ist dies nicht der Fall, expandiert sie den Knoten und fügt die Nachfolger basierend auf deren Bewertungen in die bestehende Liste ein. Dies geschieht so lange, bis eine Lösung gefunden, oder alle Knoten durchsucht wurden. Der entsprechende Pseudocode ist nachfolgend dargestellt.

1 H e u r i s t i s c h e S u c h e ( Start , Z i e l ) 2 K n o t e n l i s t e = [ S t a r t ]

3 W h i l e T r u e

4 if K n o t e n l i s t e = { } 5 r e t u r n " k e i n e L ö s u n g "

6 K n o t e n = E r s t e r ( K n o t e n l i s t e )

7 K n o t e n l i s t e = K n o t e n l i s t e - K n o t e n 8 if Z i e l _ e r r e i c h t ( Knoten , Z i e l )

(12)

9 r e t u r n " L ö s u n g g e f u n d e n "

10 K n o t e n l i s t e = E i n s o r t i e r e n ( N a c h f o l g e r ( K n o t e n ) , K n o t e n l i s t e )

Beim Einfügen der Nachfolger kann auch gut auf Zyklen überprüft werden, sodass der Suchraum auch hier eingeschränkt wird.

Wichtig bei der Heuristik ist natürlich die Kostenschätzfunktion. Diese soll so genau wie möglich die echten Kosten schätzen, aber nie darüber liegen. Hierfür gibt es verschieden Ansätze, die nachfolgend an Beispiel eines Navigationssystems erklärt werden.

2.2.1 Gierige Suche

Für jeden erreichbaren Zustand werden die Kosten von dort aus zum Ziel abgeschätzt. Bei einem Navigati- onssystem kann dies z.B. über die Luftlinie geschehen: Diese ist der direkteste Weg, liegt also voraussichtlich unter den tatsächlichen Kosten, ist aber ein guter Richtwert. Dieheuristische Schätzngh(s)ist hier also die Luftlinie.

Sucht man nun die beste Route von einer Stadt s zu einer Zielstadt z, so wird bei allen erreichbaren Städten berechnet, wie groß denn die Luftlinien-Entfernung von dort zuz ist. Anschließend wird „gierig“

der günstigste Knoten ausgewählt. Dieses Verhalten verschafft der gierigen Suche ihren Namen.

2.2.2 A*-Suche

Ein Fehler bei dieser Vorgehensweise jedoch ist, dass hierbei die Kosten zum Erreichen des ausgewählten Knotens nicht berücksichtigt werden, sodass eine Stadt vielleicht einige Kilometer näher am Ziel liegen kann, diese jedoch viel weiter von unserem jetztigen Standort entfernt ist. DieKostenfunktion g(s), welche die Summe der tatsächlich zurückgelegten Kosten angibt, muss also miteingezogen werden. Somit wird bei einerheuristischen Bewertungsfunktionf(s)die Summe betrachtet und der beste Wert hiervon gewählt.

Wenn die Schätzfunktionh(s)jedoch unsinnige Werte liefert, kann auchg(s)nicht mehr viel berichtigen.

Eine zulässige Bewertungsfunktion ist hierbei also sehr wichtig.

Definition 2.5: Heuristische Funktionen

Kostenfunktion g(s)gibt die Summe der vom Start bis zum aktuellen Knoten angefallenen Kosten an.

Heuristische Schätzung h(s)gibt die geschätzten Kosten vom aktuellen Knoten bis zum Ziel an.

heuristische Bewertungsfunktion f(s) =h(s) +g(s)vereinigt die beiden Aspekte.

Eine heuristische Kostenschätzfunktionh(s), welche die tatsächlichen Kosten vom Zustandsbis zum Ziel nie überschätzt heißtzulässig (engl. admissable).

Die A*-Suche ist somit nichts anderes als die Heuristische Suche mit der Heuristischen Kostenschätzfunk- tionf(s) =h(s) +g(s)

Die A*-Suche ist optimal, sofern die Heuristikh(s)zulässig ist. Ein von A* zuerst gefundener Lösungskno- ten ist immer optimal, da durch die Sortierung der Knoten nach dem Schätzwert immer der kostengünstigste Knoten Pfad verfolgt wird. Dies kann in folgender Formel bewiesen werden:

g(l) =g(l) +h(l) =f(l)≤f(s) =g(s) +h(s)≤g(l)

Angenommen auf einer Ebene gibt es zwei Knoten: Einen Lösungsknotenl und einen weiteren Knotens, an dem eine Ebene Unterhalb ebenfalls ein Lösungsknotenl hängt. A* hat aufgrund der besseren Bewertung lausgewählt und eine Lösung gefunden. Die bisherigen kosten sindg(l), dies ist zugleich die Funktion f(s), dah(s)in einem Lösungsknoten immer den besten Wert hat (0). f(s)hat einen schlechteren heuristischen Schätzwert, denn dieser ist auf jeden Fall geringer als die tatsächlichen Kosten zur zweiten Lösungl, da eine zulässige Schätzfunktion die Kosten nie überschätzen darf.

(13)

Weitere Zusammenfassungen von Malte Jakob gibt es unter i-malte.jimdofree.com

2.2.3 Landmarkenheuristik

Die Landmarkenheurisitk ist bei Navigationssystemen eine bessere Alternative zur Luftlinenheuristik. Für eine Karte werden 5 bis 60 Orte als Landmarke definiert, die eine besondere Bedeutung haben. Möchte man nun von einem OrtA zu einem andern Ort B, so nutzt die Landmarkenheuristik dieDreiecksungleichung, welche besagt, dass die direkte Verbindung zwischen zwei Punkten immer kürzer oder höchstens gleich lang ist, wie die Verbindung über einen zusätzlichen Punkt.

Nun nehme man eine Funtionc(A, B), welche die Kosten des kürzesten Weges zwischen A und B an- gibt. Nun wird eine LandmarkeC hinzugefügt und die Wege zwischen den beiden anderen Orten und der Landmarke ebenfalls berechnet. Mittels der Dreiecksungleichung ergibt sich

c(A, C)≤c(A, B) +c(B, C)

Nun lässt sich die Ungleichung wie folgt umformen und man erhält eine Schätzfunktion:

h(s) =c(A, C)−c+(B, C)≤c(A, B)

Aufgrund dieser Ungleichung ist garantiert, dass die Differenz der beiden anderen Strecken die tatsächlichen Kosten nie übersteigen; Somit ist es eine zulässige Schätzfunkion.

Nun werden im Voraus die Kosten für die kürzesten Routen von allen Orten zu allen Landmarken be- rechnet und in einer Tabelle gespeichert. Nun muss die Heurisitk, um die geschätzten Kosten von A nach Bzu erhalten, nur noch in der Tabelle nachzusehen und die beiden Streckenkosten voneinander abzuziehen.

Dies spart im Vergleich zum Berechnen der Luftlinie mittels des Satz des Pythagoras (mit quadrieren und Wurzeln), sehr viel Rechenzeit.

Zugleich wird dadurch der Suchraum reduziert.

2.2.4 Fahrzeitoptimierung

Bisher wurde immer nach der kürzesten, nicht aber nach der schnellsten Strecke gesucht. Möchte man dies auch berücksichtigen, so muss die berechnete Entfernung auch noch durch eine Maximalgeschwindigkeit geteilt werden. Welche jedoch die Maximalgeschwindigkeit ist, ist sehr kompliziert zu bestimmen, da sie stark von Ortschaften und Uhrzeiten abhängig ist. Durch laxes abschätzen der Geschwindigkeit werden viele Heursitiken dadurch schlechter, die Landmarkenheuristik behält aber ihren vVrteil bei. Eine noch besser Lösung sind sogenannteContraction hierarchies, auf die hier aber nicht näher eingegangen werden.

2.2.5 IDA*-Suche

Die A*-Suche hat viele Vorteile, arbeitet im Grunde aber dennoch ähnlich der Breitensuche. Somit haben beide eine große Suchfront und damit einen hohen Speicherplatzbedarf. Zudem müssen die Knoten auch noch entsprechend ihrer Einschätzungen sortiert werden, was immer wieder ein extra Sortieralgorithmus (meist Heapsort) erledigen muss.

Die Lösung hierbei ist ähnlich wie die Lösung bei der uninformierten Suche: Iterative Deepening. Dies verläuft fast gleich wie das Verfahren bei der Tiefensuche, nur wird hier keine Tiefenschranke für die Ebenen, sondern ein Schwellwert für die heuristische Schätzfunktion angegeben.

2.2.6 Heuristiken entwerfen

Zulässige Heuristiken zu entwerfen kann recht kompliziert sein ind erfordert auch einiges an Kreativität. So gibt es z.B. für das 8-Puzzle unterschiedliche Ansätze einen Schätzwert zu erhalten:

Eine Schätzfunktion zählt lediglich die Anzahl der Plättchen, die nicht da liegen, wo sie liegen sollten (ausgenommen das leere Plättchen). Somit ergibt sich, wenn zwei Plättchen am falschen Ort liegen (z.B. 3 2 1 statt 1 2 3), ein Schätzwert von 2. Ganz egal, ob man diesen Fehler tatsächlich innerhalb von zwei Zügen berichtigen könnte.

Die zweite Funktion berechnet von jedem Plättchen denManhattan-Abstand, also um wie viele Plättchen ein falsch liegendes Plättchen bewegt werden muss, um schnellstmöglich an den richtigen Platz zu kommen.

Hat die oberste Reihe z.B. eine Zustand von 3 2 1, so muss sowohl die 3 um zwei Plättchen nach rechts, als auch die 1 um zwei Plättchen nach links; Der Schätzwert beträgt hier also 4. Auch hier sind die Regeln

(14)

vereinfacht, da nicht berücksichtigt wird, ob das mit der Verschiebung und dem leeren Feld denn überhaupt so funktioniert.

Aber wie hier klar wird, ist der beste Ansatz zum erstellen einer Heuristik, das vereinfachen eines Problems, dessen Lösung dann als Schätzwert herangezogen werden kann. Je genauer die Schätzwert ist, desto besser, vorausgesetzt es wird nie überschätzt.

2.3 Spiele mit Gegnern

Bisher ging es immer um Probleme, bei dem die eigenen Entscheidungen der einzige Faktor des Ergebnisses waren. Bei vielen Spielen gibt es aber Gegenspieler, womit eine zweite Komponente berücksichtigt werden muss. Für die nachfolgenden Spiele gelten allerdings einige Einschränkungen

• Es handelt sich nur um Spiele mit zwei Spielern (wie z.B. Schach)

• Die Spiele müssen deterministich und beobachtbar sein (wir kennen also z.B. alle Positionen der Spiel- figuren,nicht wie z.B. bei Kartenspielen, bei denen wir die Karten auf der Hand des Gegeners nicht sehen können)

• Es handelt sich um kompetitive Nullsummenspiele – also ist mein Gewinn der Verlust des Gegners

2.3.1 Minimax-Suche

Wie in Punkt 1.2 bereits erwähnt, ist die Anzahl an Knoten bei Spielen sehr groß, sodass das komplette Durchsuchen aller möglichen Spielzüge viel zu lange dauert. Dementsprechend werden nicht alle, sondern nur die nächstenx (Halb-)Züge beider Spieler betrachtet.x kann hierbei je nach Ressourcenverfügbarkeit beliebig gewählt werden.

Als nächstes gehen wir davon aus, dass jeder der Spieler für sich das bestmögliche Ergebnis erzielen möchte, also die eigenen Punkte maximieren, und somit die des Gegners minimieren.

Möchte man nun wissen, für welchen Zug man sich als nächstes entscheiden sollte, wird der Baum vom aktuellen Zustand aus bis zur Tiefexexpandiert. Die Ebenen wechseln sich zwischen Max- und Min-Ebenen ab, da abwechselnd wir den optimalen Zug machen (und unsere Punkte maximieren), oder der Gegner den optimalen Zug wählt (und somit unsere Punkte minimiert). Bei einer beliebigen Ebenentiefe ist Ebene 0 eine Max-Ebene, da das unser nächster Zug sein wird; Darunter liegt der Zug des Gegners und somit eine Min-Ebene. Dann kommen wieder wir (max), dann der Gegner (min) usw.; Aus diesem Grund wird dieser Baum auch Min-Max-Baum genannt. Schließlich kommen wir bei den Blattknoten mitsamt heuristischer Bewertung in der angegeben Tiefe an. Bei einer Ebenentiefe vonx= 4wäre dies eine Min-Ebene. Für jeden Knoten, der denselben Zustand als Vorgänger hat, wird nun die heuristische Bewertung betrachtet und, da es sich um eine Min-Ebene handelt, der Knoten mit der geringsten heuristischen Bewertung gewählt.

Gibt es z.B. zwei Knoten mit demselben Vorgänger mit den Bewertungen 1 und 3, so wird 1 als Minimum gewählt, bei zwei weiteren Knoten mit 5 und 7, wird 5 gewählt. Dies wird für alle Knoten auf dieser Ebene wiederholt, bis jedem Knoten auf der darübergelegenen Ebene ein Minimum zugewiesen wurde. Nun wird diese darüberliegende Ebene betrachtet. Da wir nun eine Ebene weiter oben sind, handelt es sich um unseren Zug und somit um eine Max-Ebene. Von allen zugewiesenen Minima wählen wir nun das Maximum, da wir den für uns besten Zug bestimmen wollen. Zwischen 1 und 5, wählen wir also die 5. Auch dies wird für alle Knoten wiederholt, bis wir zur nächsthöheren Ebene springen, wo wir aus den Ausgewählten Werten wieder das Minimum suchen. Dies wechselt sich so lange ab, bis wir bei der Max-Ebene auf Tiefe 0 angekommen sind. Der hier zugewiesene Wert ist also bei Betrachtung der nächstenxZüge unsere beste Wahl, somit wird der Pfad gewählt, bei dem die Knoten jeweils diesen optimalen Wert zugewiesen haben.

Haben wir für uns gewählt, ist der Gegner an der Reihe. Dieser muss allerdings nicht den von uns ange- nommenen Zug durchführen, da er bereits wieder weiter vorausschauen kann, da er unseren Halbzug nicht mehr mitkalulieren muss.

2.3.2 Alpha-Beta-Pruning

Der aufwändigste Teil einer Suche ist die heuristische Bewertung der Blattknoten. Um hier Rechenzeit ein- zusparen ergibt es Sinn, so wenig Blattknoten wie m öglich zu bewerten und sie stattdessen im Vornherein

(15)

Weitere Zusammenfassungen von Malte Jakob gibt es unter i-malte.jimdofree.com

auszuschließen. Dies geschieht mittels desAlpha-Beta-Prunings. Hierfür berechnen wir vorläufig die Zuwei- sungen für zwei Ebenen gleichzeitig. Im oberen Beispiel gab es die Blattknotenpaare 1 und 3, sowie 5 und 7. Berechnen wir nun zuerst das Minimum von 5 un 7, also 5, so tragen wir dies sofort auch als vorläufi- ges Maximum für die darüberliegende Max-Ebene ein. Nun beginnen wir die Berechnung für das nächste Minimum. Angenommen wir betrachten die 3 zuerst; Die 3 ist bereits geringer als das vorläufige Maximum (5). Da wir aktuell noch nach dem Minimum suchen und somit eine Zahl finden wollen, die Kleiner als 3 ist, kann das Ergebnis dieser Suche kein neues Maximum mehr ergeben, da das bisherige Minimum bereits kleiner ist. Die andern Knoten müssen also nicht mehr betrachtet werden.

Wurde auf diese Weise ein Teilbaum bis zur Wurzel berechnet, so können weitere Teilbäume viel schneller ausgeschlossen werden, sobald die vorläufigen Extrema übertragen wurden. Ist das oberste vorläufige Mi- nimum bereits kleiner als das vorläufige Maximum der Wurzel, muss der komplette Teilbaum nicht mehr durchsucht werden.

Das Alpha-Beta-Pruning besteht aus zwei Funktionen, jeweils für das Maximum:

1 A l p h a B e t a M a x ( Knoten , alpha , b e t a ) 2 if T i e f e n s c h r a n k e E r r e i c h t ( K n o t e n ) 3 r e t u r n B e w e r t u n g ( K n o t e n )

4 N e u e K n o t e n = N a c h f o l g e r ( K n o t e n ) 5 w h i l e N e u e K n o t e n != { }

6 a l p h a = Max ( alpha , A l p h a B e t a M i n ( E r s t e r ( N e u e K n o t e n ) , alpha , b e t a )) 7 if a l p h a >= b e t a

8 r e t u r n be t a

9 N e u e K n o t e n = N e u e K n o t e n - E r s t e r ( N e u e K n o t e n ) 10 r e t u r n a l p h a

Und für das Minimum:

1 A l p h a B e t a M i n ( Knoten , alpha , b e t a ) 2 if T i e f e n s c h r a n k e E r r e i c h t ( K n o t e n ) 3 r e t u r n B e w e r t u n g ( K n o t e n )

4 N e u e K n o t e n = N a c h f o l g e r ( K n o t e n ) 5 w h i l e N e u e K n o t e n != { }

6 b e t a = Min ( beta , A l p h a B e t a M a x ( E r s t e r ( N e u e K n o t e n ) , alpha , b e t a )) 7 if b e t a <= a l p h a

8 r e t u r n a l p h a

9 N e u e K n o t e n = N e u e K n o t e n - E r s t e r ( N e u e K n o t e n ) 10 r e t u r n be t a

Wie hier zu erkennen ist, funktioniert dieser Algorithmus recht Ähnlich wie die Tiefensuche, nur rufen sich die Max- und Min-Funktionen abwechselnd auf.

Die Rechenzeit des Algorithmus hängt stark von der Anordnung der Knoten ab. Sind die Nachfolger eines Min-Knotens aufsteigend sortiert, so bricht der Algorithmus bereits nach dem zweiten Knoten ab. Sind sie absteigend sortiert, muss er bis zum Ende durchrechnen. Entsprechend umgekehrt ist es bei einem Max- Knoten. Beim Worst-Case gibt es keinen Rechenzeitgewinn und der Suchhorizont nb entspricht wie üblich bd. Im best case wurde durch statistische Analysen eine Rechenzeit von

b=bd2 nachgewiesen. Somit können wir innerhalb derselben Zeit also doppelt so viele Knoten durchsuchen wie unter Normalbedingungen. Im average-case, bei dem wir die Anordnung der Knoten nicht beeinflussen können, beträgt die Rechenzeit ca.

b34d. Durch heuristische Knotenordnung kann die Anordnung etwas positiv beeinflusst werden.

(16)

Definition 2.6: Alpha-Beta-Pruning

• Mittels Tiefensuche wird für Jeden Blattknoten eine Bewertung berechnet

• Für jeden Maximumknoten wird während der Suche der aktuell größte Wert der bisher traver- sierten Nachfolger inαgespeichert.

• Für jeden Minimumknoten wird während der Suche der aktuell kleinste Wert der bisher traver- sierten Nachfolger inβ gespeichert.

• Ist an einem Minimumknoten k der aktuelle Wertβ ≤α, so kann die Suche unter k beendet werden. hierbei istαder größte Wert eines Maximumknotens im Pfad von der Wurzel zuk.

• Ist an einem Maximumknoten l der aktuelle Wert α≥ β, so kann die Suche unter l beendet werden. Hierbei ist β der kleinste Wert eines Minimumsknotens im Pfad von der Wurzel zul.

Laufzeit:

worst case bd best case bd2 average case b34d

Nichtdeterministische Spiele

Bei Nichtdeterministischen Spielen, bei denen ein Zug auch von einer Zufallsvariable abhängt, wie z.B. bei Würfelspielen, muss jede Möglichkeit berücksichtigt werden. Hier ist die Reihenfolge also nicht Max, Min, Max, Min,. . . sondern Max,Zufall,Min,Zufall,Max. . . . Deshalb wird für jede Möglichkeit eine Verzweigung erstellt. Basierend auf diesen Ergebnissen wird dann weitergerechnet (und jeweils wieder nach Zufall ver- zweigt). Hat man für jede der Möglichkeiten einen entsprechenden Wert, wird aus den Bewertungen der Zufälle ein Mittelwert gebildet und somit wieder zu einem Knoten komprimiert. Mit diesem Knoten kann man dann wie gewohnt weiterrechnen.

2.3.3 Heuristische Bewertungsfunktionen

Für jedes Spiel eine heuristische Bewertungsfunktion zu erarbeiten ist sehr aufwändig. So hängt die Bewer- tung einer Schachstellung von vielen Faktoren wie Material, Bauernstruktur, Königssicherheit, Läuferdiago- nalabdeckung etc. ab, die jeweils eigene Berechnungen für die Ermittlung benötigen. Zudem muss je nach Strategie oder sogar Gegner von einem tatsächlichen Schachexperten eine Gewichtung der unterschiedlichen Aspekte vorgenommen werden. Deshalb wird inzwischen maschinelles Lernen verwendet, um Heuristiken selbst zu erlernen. Maschinelles Lernen wird in Punkt 6 behandelt.

Erlernen von Bewertungsfunktionen

Um solche Bewertungsfunktionen zu erlernen und zu optimieren, wird zu beginn eine Grund-Bewertungsfunktion festgelegt. Nun spielt der Algorithmus sehr viele Spiele und merkt sich den gewählten Pfad. Verliert der Algorithmus, so werden alle getroffenen Entscheiungen und die damit verbundenen Bewertungen negativ bewertet, und alle nicht getroffenen Entscheidungen positiv. Ein Problem hierbei ist dasCredit Assignment:

Es werden keine einzelnen Züge bewertet, sondern nur das Gesamtergebnis. Waren alle Züge optimal, und nur einer katastrophal, so werden alle Entscheidungen negativ bewertet.

(17)

3 Kurzer Ausflug in die Logik

3.1 Aussagenlogik

Die Aussagenlogik ist die einfachste Form der Logik, bei der gewisse Aussagen entweder wahr oder falsch sein können. Diese Aussagen können noch mittels verschiedener Operatoren verknüpft werden. Sie hat folgende Syntax:

Definition 3.1: Syntax der Aussagenlogik

Notation Sprechweise Bezeichnung Wahrheitstabelle

w „wahr“

f „falsch“

¬A „nicht A“ Negation 3.1a

A∧B „A und B“ Konjunktion 3.1b

A∨B „A oder B“ Disjunktion 3.1c

A⇒B „Wenn A dann B“ Implikation 3.1d

A⇔B „A genau dann, wenn B“ Äquivalenz 3.1e Die Priorität der Operatoren lautet¬,∧,∨,⇒,⇔

¬A

A w f

f w

(a) Wahrheitstabelle für¬A

A∧B B

w f

A w w f

f f f

(b) Wahrheitstabelle fürA∧B

A∨B B

w f

A w w w

f w f

(c) Wahrheitstabelle fürA∨B

A⇒B B

w f

A w w f

f w w

(d) Wahrheitstabelle fürA⇒B

A⇔B B

w f

A w w f

f f w

(e) Wahrheitstabelle fürA⇔B Tabelle 3.1: Wahrheitstabellen für alle Operationen der Aussagenlogik

(18)

Definition 3.2: Erfüllbarkeit von Formeln Eine Formel heißt. . .

erfüllbar, wenn sie in mindestens einer Belegung wahr ist (z.B.A∧B, oder die leere Formel) allgemeingültig oder Tautologie, wenn sie in allen Belegungen wahr ist (z.B.A∨ ¬A) unerfüllbar, wenn sie in keiner Belegung wahr ist (z.B. A∧ ¬A)

Definition 3.3: Konjunktive Normalform

Jeder aussagenlogische Term lässt sich in konjunktiver Normalform (KNF) ausdrücken. Bei dieser Form sind gibt es nur Literale (also A, B,¬A . . .), die oder-verknüpft sind. Diese Blöcke an oder- verknüpften Literalen dürfen und-verknüpft werden. Ein Beispiel für eine KNF ist

(A∨ ¬A)∧(A∨B∨C)

3.1.1 Modus Ponens

Um die Wahrheit einer Formel zu bestimmen, kann für die Formel eine Wahrheitstabelle angefertigt werden.

Für viele Literale benötigt das Erstellen der Tabelle jedoch zunehmend länger.

Um nicht die komplette Tabelle bestimmen zu müssen gibt es verschiedene Beweiskalküle. Der einfachste hiervon ist derModus Ponens, welcher wie Folgt notiert wird:

A, A⇒B B

Überhalb des Striches stehen die Dinge, die wir wissen, in diesem Fall kennen wir den Wahrheitswert vonA, und wir wissen, dassAB impliziert. Aus diesem Wissen können wirB schließen, weshalb es unterhalb des Striches steht.

Der Modus Ponens istkorrekt, wir können also nichts falsches aus diesen Aussagen ableiten. Allerdings ist er nichtvollständig, was bedeutet, dass man jede wahre Aussage beweisen kann. An diesem Beispiel, können wir, wennAfalsch ist, mit diesem Kalkül nicht aufB schließen, auch wenn, wie in Tabelle 3.1d zu sehen ist, B eigentlich wahr wäre.

3.2 Prädikatenlogik erster Stufe

Da es sich bei der Aussagenlogik um eine binäre Logik handelt (bei der man also für jede Aussage eine Variable benötigt, die angibt, ob sie wahr oder falsch ist), muss es für jeden Sachverhalt eine eigene Variable geben. Ebenso können Beziehungen zwischen Variablen (z.B. Person A steht weiter rechts als Person B) nur in einer weiteren Variable ausgedrückt werden (z.B. C, sodass C (A∧B)). Dies führt zu einer explosionsartigen Erhöhung an Variablen.

Um dies zu vermeiden, gibt es die Prädikatenlogik erster Stufe. Diese funktionieren ähnlich zu Funktio- nen, denn sie akzeptieren eine vorgegebene Anzahl an Argumenten, die sie dann auswerten. So lassen sich verschiedenste Sachverhalte sehr viel kompakter darstellen als durch die Aussagenlogik.

Für diese Funktionen können auch gewisse Regeln gelten, wie z.B. die Symmetrie (f(x, y) =f(y, x)) Wie von Kurt Gödel bewiesen ist die Prädikatenlogik erster Stufe vollständig, was bedeutet, dass sich durch dieses Kalkül jede wahre Aussage beweisen lässt. Allerdings hat diese Prädikatenlogik erster Stufe ihre Grenzen: Keine ihrer Formeln kann eine Aussage über den Wahrheitsgehalt anderer Formeln treffen.

Höhere Stufen der Prädikatenlogik sind leider nicht vollständig. Zudem ist die Prädikatenlogik erster Stufe nicht in der Lage, zu beweisen, dass eine Aussage falsch ist – sie kann nur beweisen, dass eine Aussage wahr ist. Zu guter Letzt gibt es einige Aussagen, die sich innerhalb der Prädikatenlogik selbst widersprechen können.

(19)

4 Schließen mit Unsicherheit

Ein letztes Problem der Prädikatenlogik ist ihre binäre Natur: Dinge sind entweder wahr oder falsch – Ausnahmen, wie z.B. ein Pinguin, der zwar ein Vogel ist, aber nicht fliegen kann, lassen sich nicht mit der bestehenden Wissensbasis vereinen, da sich dann zwei widersprüchliche Aussagen ableiten lassen.

Um diese monotone „es stimmt oder es stimmt nicht“-Logik zu ersetzen, muss mit Wahrscheinlichkei- ten betrachtet werden; Ein Ergebnis ist selten definitiv wahr oder falsch, sondern es hat nur eine gewisse Wahrscheinlichkeit, dass es richtig ist. So ist auch genug Spielraum für Ausnahmen.

Bevor jedoch mit den Wahrscheinlichkeiten gerechnet werden kann, müssen einige grundlegende Rechen- regeln geklärt werden.

4.1 Rechnen mit Wahrscheinlichkeiten

Anstelle von binären Wahrscheinlichkeiten gibt es nunZufallsvariablen, die einen gewissen Wert annehmen können. Dieses Annehmen eines Wertes wird auchEreignis genannt.

Definition 4.1: Ereignisse

SeiΩdie zu einem Versuch gehörende endliche Menge von Ereignissen. Jedes Ereignisω∈Ωsteht für einen möglichen Ausgang des Versuchs. Schließen sich die Ergebnisseωi Ωgegenseitig aus, decken aber alle möglichen Ausgänge des Versuchs ab, so werden sie Elementarereignissegenannt.

So sind die Elementarereignisse für einmaliges Würfeln mit einem herkömmlichen sechsseitigen WürfelΩ = {1,2,3,4,5,6}. Andere Ereignisse, wie das Würfeln einer geraden Zahl ({2,4,6}) oder das Würfeln einer Zahl, die kleiner ist als fünf ({1,2,3,4}), sind keine Elementarereignisse, da sie sich nicht gegenseitig ausschließen, also eine Vereinigung der beiden Ereignisse nicht zu einer leeren Menge führt:{2,4,6}∩{1,2,3,4}={2,4} ̸=

.

Irgendein Ereignis wird es immer geben, daher ist Ω das sichere Ereignis; Da im Umkehrschluss nicht nichts passieren kann, istdasunmögliche Ereignis

Anstelle vonA∩B kann auchA∧B geschrieben werden, da giltx∈A∩B⇔x∈A∧x∈B

Zufallsvariablen können entweder diskret sein, was bedeutet, dass es zwischen zwei festgelegten Werten kei- nen weiteren Wert gibt, oder sie sind stetig, was bedeutet, dass es, wie bei reellen Zahlen auch, zwischen zwei beliebigen Werten immer einen weiteren gibt. Bei letzteren ist die Anzahl der Möglichkeiten somit unendlich – diese Möglichkeit soll hier nicht behandelt werden; Wir gehen stattdessen von diskreten Zufallsvariablen mit endlichen Möglichkeiten aus.

So lässt sich bei gleich großen Chancen (je|1|) mit der Laplace-Formel für jedes Ereignis eine Wahrschein- lichkeit berechnen:

Definition 4.2: Laplace-Wahrscheinlichkeit

SeiΩ =1, ω2, . . . , ωn} endlich. Es sei kein Elementarereignis bevorzugt, d.h. man setzt Symmetrie bezüglich der Häufigkeit des Auftretens aller Elementarereignisse voraus. DieWahrscheinlichkeitP(A) des EreignissesAist dann

P(A) =|A|

|| =Anzahl der für A günstigen Fälle Anzahl der möglichen Fälle Aus dieser Definition lassen sich einige Regeln ableiten:

1. P(Ω) = 1

(20)

2. P() = 0

3. Für paarweise unvereinbare EreignisseAundB giltP(A∨B) =P(A) +P(B) 4. Für zwei zueinander Komplementäre EreignisseAund¬AgiltP(A) +P(¬A) = 1 5. Für beliebige EreignisseAundB giltP(A∨B) =P(A) +P(B)−P(A∧B) 6. FürA⊆B giltP(A)≤P(B)

7. SindA1, . . . , An die Elementarereignisse, so giltPn

i=1P(Ai) = 1 (Normierungsbedingung)

Zudem gibt es eineWahrscheinlichkeitsverteilungverschiedener Variablen, die angeben, wie wahrscheinlich die Kombination verschiedener Variablen ist:

P(A, B) = (P(A, B), P(A,¬B), P(¬A, B), P(¬A,¬B)) dieser Vektor kann auch als Matrix angegeben werden:

P(A, B) B

w f

A w P(A, B) P(A,¬B) f P(¬A, B) P(¬A,¬B)

Diese Wahrscheinlichkeitsverteilung kann insgesamt d Variablen bzw. Dimensionen X1, . . . , Xd haben, die jeweilsnverschiedene Werte annehmen können. Somit enthält die Verteilung Werte vonP(X1=x1, . . . , Xd= xd)wobeix1, . . . , xd jeweils nWerte annehmen können.

Dies resultiert in einerd-dimensionalen Matrix, die insgesamtndElemente beinhaltet. Einer derndWerte ist jedoch redundant, da er immer über die Werte der anderennund der Normierungsbedingung berechnet werden kann. Somit wird die Verteilung bereits durchnd1 Werte eindeutig charakterisiert.

4.1.1 Bedingte Wahrscheinlichkeiten

Manche Wahrscheinlichkeiten weisen einen statistischen Zusammenhang auf (z.B. ist die Wahrscheinlichkeit zu schnell zu fahren bei einem Studenten höher, als bei einem nicht-Studenten).

Definition 4.3: Bedingte Wahrscheinlichkeit

Für zwei EreignisseAundB ist die Wahrscheinlichkeit fürAunter der BedingungB definiert durch P(A|B) =P(A∧B)

P(B)

Da wir die Berechnung fürP jeweils kennen, kann die Formel auch vereinfacht werden:

P(A|B) =

|AB|

||

|B|

||

= |A∧B|

|| · ||

|B| =|A∧B|

|B|

Definition 4.4: Unabhängige Ereignisse Gilt für zwei Ereignisse AundB

P(A|B) =P(A) so nennt man diese Ereignisse unabhängig.

Aus dieser Definition folgt zusätzlich

P(A∧B) =P(A)·P(B)

(21)

Weitere Zusammenfassungen von Malte Jakob gibt es unter i-malte.jimdofree.com

Kettenregel

Löst man die Formel der bedingten Wahrscheinlichkeit nachP(A∧B)auf, so erhält man die Produktregel:

P(A∧B) =P(A|B)·P(B)

Mit diesem Wissen können wir nun Wahrscheinlichkeiten und Wahrscheinlichkeitsverteilungen mit beliebig vielen Ereignissen in einzelne bedigte Wahrscheinlichkeiten Aufspalten:

P(X1, . . . , Xn)=P(Xn|X1, . . . , Xn1)·P(X1, . . . , Xn1)

=P(Xn|X1, . . . , Xn1)·P(Xn1|X1, . . . , Xn2)·P(X1, . . . , Xn2)

=P(Xn|X1, . . . , Xn1)·P(Xn1|X1, . . . , Xn2)· · · · ·P(X2|X1)·P(X1)

=Qn

i=1P(Xi|X1, . . . , Xi1) Dies wird auch dieKettenregel genannt

Marginalisierung

Bei binären Variablen besteht die Möglichkeit, eine Variable aus der Gleichung herauszurechnen, indem man über ihre beiden Werte aufsummiert:

P(A) =P((A∧B)∨(A∧ ¬B)) =P(A∧B) +P(A∧ ¬B)

Allgemein gesprochen lässt sich aus einer beliebigen Anzahl aus Variablen eine Variable eliminieren, indem man über all ihre Werte aufsummiert:

P(X1=x1, . . . , Xd1=xd1) =X

xd

P(X1=x1, . . . , Xd1=xd1, Xd=xd)

Die über diesen, als Marginalisierung bezeichneten Prozess, entstehende Verteilung heißtRandverteilung und entspricht der Projektion eines Körpers auf seine Seitenfläche – es geht also eine Dimension verloren.

Eine Marginalisierung wird z.B. auch immer vorgenommen, wenn man eine Vier-Felder-Matrix erstellt.

Durch diese Marginalisierung lassen sich schnell und einfach fehlende Werte für die Berechnung von be- dingten Wahrscheinlichkeiten ermitteln.

Die Bayes-Formel

Hat man nun eine bedingte WahrscheinlichkeitP(A|B)berechnet, möchte aber eigentlich die Wahrschein- lichkeitP(B|A), so kann man diese Bedingungen mithilfe der Bayes-Formel umkehren:

P(A|B) = P(B|A)·P(A) P(B)

Die umgekehrten bedingten Wahrscheinlichkeiten können unter Umständen stark voneinander abweichen.

4.2 Methode der maximalen Entropie

In der Aussagenlogik haben wir bereits den Modus Ponens kennengelernt; Eine analoge Vorgehensweise für Wahrscheinlichkeiten zu haben, wäre hierbei sehr wünschenswert:

P(A) =α, P(B|A) =β P(B) =?

Der Wert von B ließe sich theoretisch über die Marginalisierung berechnen, also mittelsP(B) =P(A, B) + P(¬A, B) =P(B|A)·A+P(B|¬A)·P(¬A). Hier fehlt uns allerdings die Wahrscheinlichkeit fürP(B|¬A).

Ein Ansatz diese zu berechnen ist das Betrachten der Wahrscheinlichkeitsverteilung:

P(A, B)=(P(A, B), P(A,¬B), P(¬A, B), P(¬A,¬B)) P(A, B)=(p1, p2, p3, p4)

(22)

Durch diese vier Elementarereignisse lassen sich alle Wahrscheinlichkeiten in unserem Beispiel berechnen;

Hierfür können folgende Gleichungen aufgestellt werden:

p1= (B|A)·P(A) =α·β=

P(A) =p1+p4=

Zudem kommt noch die Normierungsbedingung, die besagt, dass p1, p2, p3+p4= 1

Nun haben wir also vier Variablen, aber nur drei Gleichungen – somit ist unser Gleichungssystem unter- bestimmt und wir müssen uns einfallen Lassen, wie wir die fehlende Information ersetzen. Aber zuerst mal sehen, wie weit wir kommen:

Fürp1 können wir die Formel für bedingte Wahrscheinlichkeiten verwenden, die dafür benötigten Werte fürP(A)undP(B|A)ins im Modus Ponens gegeben und entsprechenαundβ. Durch Marginalisierung lässt sich ebenfalls ableiten, dassp1+p2=α. Fürp1 können wir den Wert berechnen und somit auch fürp2. Es bleiben schließlich alsop3undp4übrig. Beim einsetzen der anderen Ergebnisse in die Normierungsbedingung erhalten wir nun die Gleichungp3+p4= 1−α.

Mehr Informationen gibt es nicht. Da wir aber dennoch eine Lösung wollen, müsste man raten. Beim Raten gibt es allerdings sehr viel Potential, dinge zu verzerren und falsche Wahrscheinlichkeiten anzunehmen. Wir wollen also eine Lösung, bei der wir so wenig wie möglich verzerren.

Nun gilt es also ein Optimierungsproblem zu lösen, bei dem es drum geht, so wenig Information (und somit, so wenig Falschinformation) wie möglich zu liefern. Die Bedingung für diese Optimierung muss allerdings erst noch festgelegt werden – wir müssen also nach einer Variable auflösen, um eine Gleichung zu erhalten, die wir optimieren können. In unserem Beispiel können wir recht einfach umformen:p4=−p3+ 1−α. Dies ist allerdings nur die Nebenbedingung, unter der es zu Optimieren gilt. Die Funktion, die wir optimieren möchten, ist dieEntropiefunktion, die angibt, wie unsicher etwas verteilt ist. Da wir keine konkreten Werte schätzen möchten, wollen wir entsprechend so unsicher wie möglich bleiben – wir maximieren also fürp= (P(p3), P(p4))eine FunktionH(p)unter der Nebenbedingung p4=−p3+ 1−α. Für die Entropiefunktion gilt:

H(p) =− Xn

i=0

pi·lnpi

Für unser Beispiel also:−p3·lnp3−p4·lnp4 Definition 4.5: Maximum der Entropiefunktion

Sei eine konsistente Menge (= Gleichungen sind nicht widersprüchlich) von linearen probabilistischen Gleichungen gegeben, dann existiert ein eindeutiges Maximum der Entropiefunktion unter den gege- benen Gleichungen als Nebenbedingungen. Die Dadurch definierte MaxEnt-Verteilung besitzt unter den Nebenbedingungen den minimalen Informationsgehalt.

Nun gilt es also eine mehrdimensionale Gleichung unter einer Nebenbedingungp3+p4 = 1−α⇒ p3+ p41 +αzu maximieren. Hierfür verwenden wir die Lagrangefunktion (Siehe Analysis 2)

L=−p·lnp3−p4·lnp4+λ·(p3+p41 +α)

Diese Gleichung muss jetzt jeweils partiell nachp3 undp4 abgeleitet werden. Da wir ja ein Extrem suchen, setzen wir die Ableitung gleich null, um die Extremstelle zu finden:

grad(L) =

∂L

∂p3

∂L

∂p4

!

=lnp31 +λ= 0

=lnp41 +λ= 0

Diese Gleichungen können wir nun gleichsetzen und erhalten schlussendlichp3=p4. Nun können wir dieses Ergebnis in die ursprüngliche Nebenbedingung einsetzen und erhalten2·p3= 1−αund dementsprechend

p3=p4= 1−α 2

(23)

Weitere Zusammenfassungen von Malte Jakob gibt es unter i-malte.jimdofree.com

Definition 4.6: Indifferente Variablen

Wenn eine beliebige Vertauschung von zwei oder mehr Variablen in den Lagrangegleichungen diese in dazu äquivalente Gleichungen überführt (=das Ergebnis bleibt gleich), so nennt man diese Variablen indifferent. Ist eine Menge von Variablen {pi1, pi2, . . . , pik} indifferent, so liegt das Entropiemaximum unter den gegebenen Nebenbedingungen an einem Punkt mitpi1=pi2 =· · ·=pik. Sind keine Nebenbedingungen gegeben, so sind alle Ereignisse gleich wahrscheinlich und es giltp1= p2=· · ·=pn= n1

Bei gewissen gegebenen Nebenbedingungen kann es jedoch dazu kommen, dass eine Lösung nicht symbo- lisch (also ohne konkrete Werte einzusetzen) lösbar ist, sondern tatsächlich numerisch (also mit den Werten) gelöst werden kann. Möchte man dies für jeden mögliche Variablenkombination durchführen, entsteht einiges an Rechenaufwand.

4.2.1 Bedingte Wahrscheinlichkeit gegen materiale Implikation

Wie aus der Wahrheitstabelle 3.1d bereits bekannt ist, ist die Implikation „Wenn A dann B“ immer Wahr, wennAfalsch ist. In Wirklichkeit lässt sich darüber jedoch keine Aussage treffen. Bei Bedingten Wahrschein- lichkeiten, bei deren Berechnung durchP(A)geteilt werden muss, ist die Aussage undefiniert, da hier nicht durch 0 geteilt werden darf. Diese Herangehensweise entspricht somit mehr der Realität.

Gibt es fürAundB Werte zwischen 1 und 0, so scheitert die materiale Implikation natürlich.

4.2.2 MaxEnt und Nichtmonotonie

Durch die Angabe von Wahrscheinlichkeiten kann neues Wissen hinzugefügt werden, ohne dass altes Wissen als ungültig deklariert wird. Somit ist Wahrscheinlichkeitslogik nicht monoton.

Referenzen

ÄHNLICHE DOKUMENTE

e oder f DSGVO erfolgt, haben Sie jederzeit das Recht, aus Gründen, die sich aus Ihrer besonderen Situation ergeben, gegen die Verarbeitung Ihrer personenbezogenen Daten

Der Hype um die Luftreiniger hat aber auch Produkte auf unseren Markt gespült, die nicht unter diesen Bedingungen gefertigt werden und dann durchaus eine Gefahr darstellen.. Ganz

Auflage im Überblick Strukturierte Erfassung von Symptomen und Exazerbationen Um eine geeignete Therapie bei Men- schen mit COPD angemessen begin- nen und steuern zu können,

Der BPtK-Pressehintergrund möchte darüber informieren, wie es dazu kommen kann, dass psychisch kranke Menschen eine Gefahr für sich und andere werden können.. Der Grund

Nach diesem vergleichsweise milden Winter, halten sich die Heizkosten in der Betriebsko- stenabrechnung für die meisten Hauseigentümer wahrschein- lich in Grenzen. Doch um ernst-

• Einfache Anwendung für Ihre Kunden: kein Anrühren, keine Aktivierungszeit, keine Kühlung nötig. • Nur 1

tägliche Umgebung angepasst werden soll, damit sich die betroffene Person möglichst lange zu Hause zurechtfindet und wohlfühlt..

Re- präsentativ bedeutet dabei, dass die Umfrageergebnisse nicht nur die Meinung der beispielsweise 1000 Be- fragten wiedergeben, sondern die Meinung der gesamten Zielgruppe, für