suchverfahren hinzugefügt

This commit is contained in:
paul-loedige 2021-02-02 12:43:05 +01:00
parent 7198f3ed27
commit 38f0ecf849
9 changed files with 52 additions and 1 deletions

View File

@ -1,2 +1,53 @@
\chapter{Suchverfahren}
\label{suchverfahren}
\label{suchverfahren}
Bei der Modellerstellung (\ref{suchprobleme: umgebungsmodelle}) für Suchprobleme (\ref{suchprobleme}) entstehen zumeist Zustandsgraphen.
Beim Durchlaufen des Graphen entsteht dann durch das Expandieren einzelner Knoten mithilfe der Nachfolgerfunktion (\ref{suchprobleme}) entsteht ein Suchbaum:\\
\includegraphics[width = \textwidth]{graph zu suchbaum.png}
\section{Breitensuche}
\label{breadth-first search}
Bei der Breitensuche wird der Graph Schicht für Schicht durchlaufen.\\
\includegraphics[width = \textwidth]{breitensuche.png}
Die Breitensuche hat dabei den Vorteil, dass sie \textbf{vollständig} (alle Knoten werden erreicht) und \textbf{optimal} (Lösung mit geringster Tiefe wird gefunden) ist.
Allerdins nimmt der Speicherbedarf der Breitensuche exponentiell mit der Anzahl der Knoten zu:\\
\includegraphics[width = .8\textwidth]{breitensuche_speicherbedarf.png}
\section{Tiefensuche}
\label{depth-first search}
Bei der Tiefensuche werden immer die tiefsten Knoten zuerst expandiert.\\
\includegraphics[width = \textwidth]{tiefensuche.png}
Dies hat den Nachteil, dass die Tiefensuche \textbf{nicht vollständig} (unendlich tiefer Pfad möglich) und \textbf{nicht optimal} (findet bestenfalls die linkeste Lösung).
Allerdings brauch keine Information über beendete Pfade gespeichert werden.
Daher ist der Speicherbedarf der Tiefensuche nur linear von der Anzahl der Knoten abhängig.
\section{Informierte Suche}
\label{informed search}
Falls bestimmte Informationen über den Graphen bekannt sind kann eine Heuristik erstellt werden.
Die Heuristik $h(n)$ ist hierbei eine Funktion, welche die Kosten für das erreichen des Ziels über einen Knoten $n$ abschätzt.
Dies kann dazu benutzt werden effizienter durch den Graph zu laufen.
Hierbei ist allerdings zu beachten, dass eine Heuristik nicht perfekt ist (mehr Informationen zu der Bewertung von Heuristiken siehe Zusammenfassung KB).
Eine informierte Suche ist folglich \textbf{nicht optimal}.
Sie kann aber ({\color{red}falls Endlospfade vermieden werden}) \textbf{vollständig} sein.
\section{A*-Suche}
\label{a-star search}
Die A*-Suche nutzt die Summe der Heuristik $h(n)$ und der Länge des bisherigen Weges $g(n)$ um einen Pfad zu wählen.
$$f(n)=h(n)+g(n)$$
Die A*-Suche ist \textbf{optimal} für eine Baumsuche, falls $h(s)$ zulässig ist ($h(s)$ überschätzt nicht).
Zudem ist die A*-Suche \textbf{optimal} für eine Graphsuche, falls $h(s)$ konsistent ist.
$h(s)$ ist konsistent, wenn $h(s) \le c(s,a,s') + h(s')$ ($a$: Aktion, die Nachfolger $s'$ generiert) gilt.
Falls eine Lösung existiert ist die A*-Suche \textbf{vollständig}.
Außerdem ist die A*-Suche \textbf{optimal effizient} (kein Suchalgorithmus muss weniger knoten expandieren).
Allerdings ist auch bei der A*-Suche die Anzahl der im Speicher zu haltenden Knoten exponentiell.
\subsection{Beispiel}
\label{example: a-star}
\includegraphics[width = \textwidth]{beispiel A*.png}
\section{Hinweise zur Implementierung}
\label{Hinweise zur Implementierung}
\includegraphics[width = \textwidth]{hinweise_zur_implementierung.png}
\includegraphics[width = \textwidth]{hinweise_zur_implementierung2.png}
\includegraphics[width = \textwidth]{hinweise_zur_implementierung3.png}

BIN
images/beispiel A*.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 192 KiB

BIN
images/breitensuche.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

BIN
images/tiefensuche.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 238 KiB