From ea49db6789b0560a6dcb4fa37fea39284b64a27e Mon Sep 17 00:00:00 2001 From: NotXia <35894453+NotXia@users.noreply.github.com> Date: Sat, 30 Sep 2023 13:19:01 +0200 Subject: [PATCH] Add FAIKR non-informed search --- src/fundamentals-of-ai-and-kr/img/_bfs.pdf | Bin 0 -> 21602 bytes src/fundamentals-of-ai-and-kr/img/_dfs.pdf | Bin 0 -> 21602 bytes .../img/_search_tree.pdf | Bin 0 -> 26299 bytes src/fundamentals-of-ai-and-kr/img/_ucs.pdf | Bin 0 -> 31206 bytes .../img/non_informed_tree.drawio | 85 ++++++++ .../img/search_tree.drawio | 100 ++++++++++ src/fundamentals-of-ai-and-kr/main.tex | 26 +++ .../sections/_search.tex | 182 ++++++++++++++++++ 8 files changed, 393 insertions(+) create mode 100644 src/fundamentals-of-ai-and-kr/img/_bfs.pdf create mode 100644 src/fundamentals-of-ai-and-kr/img/_dfs.pdf create mode 100644 src/fundamentals-of-ai-and-kr/img/_search_tree.pdf create mode 100644 src/fundamentals-of-ai-and-kr/img/_ucs.pdf create mode 100644 src/fundamentals-of-ai-and-kr/img/non_informed_tree.drawio create mode 100644 src/fundamentals-of-ai-and-kr/img/search_tree.drawio create mode 100644 src/fundamentals-of-ai-and-kr/sections/_search.tex diff --git a/src/fundamentals-of-ai-and-kr/img/_bfs.pdf b/src/fundamentals-of-ai-and-kr/img/_bfs.pdf new file mode 100644 index 0000000000000000000000000000000000000000..9d47200b2144876571d8e05449e04cdcb25a5bd4 GIT binary patch literal 21602 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 literal 0 HcmV?d00001 diff --git a/src/fundamentals-of-ai-and-kr/img/_dfs.pdf b/src/fundamentals-of-ai-and-kr/img/_dfs.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d2c85b0f1b3dac60e603cc57fee1a92c7c3c79cc GIT binary patch literal 21602 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 literal 0 HcmV?d00001 diff --git a/src/fundamentals-of-ai-and-kr/img/_search_tree.pdf b/src/fundamentals-of-ai-and-kr/img/_search_tree.pdf new file mode 100644 index 0000000000000000000000000000000000000000..4429cd6269dfcbe65b0389fd22791ab795c47de0 GIT binary patch literal 26299 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 literal 0 HcmV?d00001 diff --git a/src/fundamentals-of-ai-and-kr/img/_ucs.pdf b/src/fundamentals-of-ai-and-kr/img/_ucs.pdf new file mode 100644 index 0000000000000000000000000000000000000000..6408fa932a4416dc485102db4beb7898c76f32ea GIT binary patch literal 31206 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/fundamentals-of-ai-and-kr/img/search_tree.drawio b/src/fundamentals-of-ai-and-kr/img/search_tree.drawio new file mode 100644 index 0000000..3f3c158 --- /dev/null +++ b/src/fundamentals-of-ai-and-kr/img/search_tree.drawio @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/fundamentals-of-ai-and-kr/main.tex b/src/fundamentals-of-ai-and-kr/main.tex index 8b388d7..52895f8 100644 --- a/src/fundamentals-of-ai-and-kr/main.tex +++ b/src/fundamentals-of-ai-and-kr/main.tex @@ -9,9 +9,34 @@ \usepackage{marginnote} \usepackage[bottom]{footmisc} \usepackage{scrlayer-scrpage} +\usepackage{algorithm, listings} +\usepackage{array, makecell} \geometry{ margin=3cm, lmargin=1.5cm, rmargin=4.5cm, marginparwidth=3cm } \hypersetup{ colorlinks, citecolor=black, filecolor=black, linkcolor=black, urlcolor=black, linktoc=all } +\definecolor{codegreen}{rgb}{0,0.6,0} +\definecolor{codegray}{rgb}{0.5,0.5,0.5} +\definecolor{codepurple}{rgb}{0.58,0,0.82} +\definecolor{backcolour}{rgb}{0.95,0.95,0.92} +\lstdefinestyle{mystyle}{ + commentstyle = \color{codegreen}, + keywordstyle = \color{magenta}, + numberstyle = \tiny\color{codegray}, + stringstyle = \color{codepurple}, + basicstyle = \footnotesize\ttfamily, + breakatwhitespace = false, + breaklines = true, + captionpos = b, + keepspaces = true, + numbers = none, + showspaces = false, + showstringspaces = true, + showtabs = false, + tabsize = 3 +} +\lstset{style=mystyle} +\lstset{language=Python} + \NewDocumentEnvironment{descriptionlist}{}{% \begin{description}[labelindent=1em] }{ @@ -60,6 +85,7 @@ \pagenumbering{arabic} \input{sections/_intro.tex} + \input{sections/_search.tex} \end{document} \ No newline at end of file diff --git a/src/fundamentals-of-ai-and-kr/sections/_search.tex b/src/fundamentals-of-ai-and-kr/sections/_search.tex new file mode 100644 index 0000000..d8927d2 --- /dev/null +++ b/src/fundamentals-of-ai-and-kr/sections/_search.tex @@ -0,0 +1,182 @@ +\chapter{Search problems} + + + +\section{Search strategies} +\begin{description} + \item[Solution space] \marginnote{Solution space} + Set of all the possible sequences of actions an agent may apply. + Some of these lead to a solution. + + \item[Search algorithm] \marginnote{Search algorithm} + Takes a problem as input and returns a sequence of actions that solves the problem (if exists). +\end{description} + + +\subsection{Search tree} +\begin{description} + \item[Expansion] \marginnote{Expansion} + Starting from a state, apply a successor function and generate a new state. + + \item[Search strategy] \marginnote{Search strategy} + Choose which state to expand. + Usually is implemented using a fringe that decides which is the next node to expand. + + \item[Search tree] \marginnote{Search tree} + Tree structure to represent the expansion of all states starting from a root + (i.e. the representation of the solution space). + + Nodes are states and branches are actions. + A leaf can be a state to expand, a solution or a dead-end. + \Cref{alg:search_tree_search} describes a generic tree search algorithm. + + \begin{figure}[h] + \centering + \includegraphics[width=0.25\textwidth]{img/_search_tree.pdf} + \caption{Search tree} + \end{figure} + + Each node contains: + \begin{itemize} + \item The state + \item The parent node + \item The action that led to this node + \item The depth of the node + \item The cost of the path from the root to this node + \end{itemize} +\end{description} + +\begin{algorithm} +\caption{Tree search algorithm} \label{alg:search_tree_search} +\begin{lstlisting} +def treeSearch(problem, fringe): + fringe.push(problem.initial_state) + # Get a node in the fringe and expand it if it is not a solution + while fringe.notEmpty(): + node = fringe.pop() + if problem.isGoal(node.state): + return node.solution + fringe.pushAll(expand(node, problem)) + return FAILURE + +def expand(node, problem): + successors = set() + # List all neighboring nodes + for action, result in problem.successor(node.state): + s = new Node( + parent=node, action=action, state=result, depth=node.dept+1, + cost=node.cost + problem.pathCost(node, s, action) + ) + successors.add(s) + return successors +\end{lstlisting} +\end{algorithm} + + +\subsection{Strategies} +\begin{description} + \item[Non-informed strategy] \marginnote{Non-informed strategy} + Domain knowledge not available. Usually does an exhaustive search. + + \item[Informed strategy] \marginnote{Informed strategy} + Use domain knowledge by using heuristics. +\end{description} + + +\subsection{Evaluation} +\begin{description} + \item[Completeness] \marginnote{Completeness} + if the strategy is guaranteed to find a solution (when exists). + + \item[Time complexity] \marginnote{Time complexity} + time needed to complete the search. + + \item[Space complexity] \marginnote{Space complexity} + memory needed to complete the search. + + \item[Optimality] \marginnote{Optimality} + if the strategy finds the best solution (when more solutions are possible). +\end{description} + + + +\section{Non-informed search} + +\subsection{Breadth-first search (BFS)} +\marginnote{Breadth-first search} +Always expands the less deep node. The fringe is implemented as a queue (FIFO). + +\begin{center} + \def\arraystretch{1.2} + \begin{tabular}{c | m{10cm}} + \hline + \textbf{Completeness} & Yes \\ + \hline + \textbf{Optimality} & Only if cost is uniform (i.e. all edges have same cost) \\ + \hline + \textbf{\makecell{Time and space\\complexity}} + & $O(b^d)$, where the depth is $d$ and the branching factor is $b$ (i.e. each non-leaf node has $b$ children) \\ + \hline + \end{tabular} +\end{center} + +The exponential space complexity makes BFS impractical for large problems. + +\begin{figure}[h] + \centering + \includegraphics[width=0.40\textwidth]{img/_bfs.pdf} + \caption{BFS visit order} +\end{figure} + + +\subsection{Uniform-cost search} +\marginnote{Uniform-cost search} +Same as BFS, but always expands the node with the lowest cumulative cost. + +\begin{center} + \def\arraystretch{1.2} + \begin{tabular}{c | m{10cm}} + \hline + \textbf{Completeness} & Yes \\ + \hline + \textbf{Optimality} & Yes \\ + \hline + \textbf{\makecell{Time and space\\complexity}} + & $O(b^d)$, with depth $d$ and branching factor $b$ \\ + \hline + \end{tabular} +\end{center} + +\begin{figure}[h] + \centering + \includegraphics[width=0.60\textwidth]{img/_ucs.pdf} + \caption{Uniform-cost search visit order. $(n)$ is the cumulative cost} +\end{figure} + + +\subsection{Depth-first search} +\marginnote{Depth-first search} +Always expands the deepest node. The fringe is implemented as a stack (LIFO). + +\begin{center} + \def\arraystretch{1.2} + \begin{tabular}{c | m{10cm}} + \hline + \textbf{Completeness} & No \\ + \hline + \textbf{Optimality} & No \\ + \hline + \textbf{Time complexity} + & $O(b^d)$, with depth $d$ and branching factor $b$ \\ + \hline + \textbf{Space complexity} + & $O(b \cdot d)$, with depth $d$ and branching factor $b$ \\ + \hline + \end{tabular} +\end{center} + +\begin{figure}[h] + \centering + \includegraphics[width=0.40\textwidth]{img/_dfs.pdf} + \caption{DFS visit order} +\end{figure} \ No newline at end of file