\chapter{General Problem-Solving} \section{Uninformed Search} An \textbf{uninformed} search algorithm only uses the information available in the problem definition. \subsection{Breadth-First Search} In breadth first search the fringe of the graph is treated as a FIFO queue. \begin{center} \includegraphics[scale=0.5]{ressources/bfs.png} \end{center} \subsection{Uniform-Cost Search} For Graphs with step costs the BFS strategy might choose a suboptimal path. Instead, one should use uniform cost search, where the fringe is ordered by increasing step cost. \begin{center} \includegraphics[scale=1.5]{ressources/ucs.pdf} \end{center} \subsection{Depth-First Search} In depth first search the fringe of the graph is organized as a LIFO stack. \begin{center} \includegraphics[scale=0.5]{ressources/dfs.png} \end{center} \subsection{Iterative Deepening Search} Depth first search may diverge when considering infinite trees, instead one can use iterative deepening search, where the search depth is iteratively increased, thus yielding a mix of the BFS and DFS search strategies. \section{Informed Search} \textbf{Informed} search strategies try to guide the search by using heuristics. \subsection{Heuristics} \subsection{Greedy Search} \subsection{A-Star Search} \section{Adversarial Search} \subsection{Minimax Search} \subsection{Alpha-Beta Search} \subsection{Monte-Carlo Tree Search} \section{Constraint Satisfaction Problems}