mirror of
https://github.com/NotXia/unibo-ai-notes.git
synced 2025-12-16 03:21:48 +01:00
Fix typos <noupdate>
This commit is contained in:
@ -89,7 +89,7 @@ The direction of the search can be:
|
|||||||
|
|
||||||
Goal regression is used to reduce the goal into sub-goals.
|
Goal regression is used to reduce the goal into sub-goals.
|
||||||
Given a (sub-)goal $G$ and a rule (action) $R$ with delete-list (states that are false after the action) \texttt{d\_list}
|
Given a (sub-)goal $G$ and a rule (action) $R$ with delete-list (states that are false after the action) \texttt{d\_list}
|
||||||
and add-list (states that are true after the action) \texttt{a\_list}, regression of $G$ through $R$ is define as:
|
and add-list (states that are true after the action) \texttt{a\_list}, regression of $G$ through $R$ is defined as:
|
||||||
\[
|
\[
|
||||||
\begin{split}
|
\begin{split}
|
||||||
\texttt{regr[$G$, $R$]} &= \texttt{true} \text{ if } G \in \texttt{a\_list} \text{ (i.e. regression possible)} \\
|
\texttt{regr[$G$, $R$]} &= \texttt{true} \text{ if } G \in \texttt{a\_list} \text{ (i.e. regression possible)} \\
|
||||||
@ -400,7 +400,7 @@ A non-linear plan is represented by:
|
|||||||
between actions.
|
between actions.
|
||||||
\item[Causal links] \marginnote{Causal links}
|
\item[Causal links] \marginnote{Causal links}
|
||||||
triplet $\langle S_i, S_j, c \rangle$ where $S_i$ and $S_j$ are actions and $c$ is a sub-goal.
|
triplet $\langle S_i, S_j, c \rangle$ where $S_i$ and $S_j$ are actions and $c$ is a sub-goal.
|
||||||
$c$ should be the effects of $S_i$ and preconditions of $S_j$.
|
$c$ should be in the effects of $S_i$ and in the preconditions of $S_j$.
|
||||||
|
|
||||||
Causal links represent causal relations between actions (i.e. interaction between sub-goals):
|
Causal links represent causal relations between actions (i.e. interaction between sub-goals):
|
||||||
to execute $S_j$, the effect $c$ of $S_i$ is required first.
|
to execute $S_j$, the effect $c$ of $S_i$ is required first.
|
||||||
@ -786,7 +786,7 @@ The steps the algorithm does are:
|
|||||||
|
|
||||||
\section{Graphplan}
|
\section{Graphplan}
|
||||||
\marginnote{Graphplan}
|
\marginnote{Graphplan}
|
||||||
Graphplan is an off-line, least-commitment planner (closed-world assumption) that
|
Graphplan is an off-line, least-commitment, closed-world planner that
|
||||||
constructs a partially ordered set of actions through a planning graph based on time steps.
|
constructs a partially ordered set of actions through a planning graph based on time steps.
|
||||||
|
|
||||||
The planner is correct, complete, optimal and computationally efficient.
|
The planner is correct, complete, optimal and computationally efficient.
|
||||||
@ -832,22 +832,27 @@ The planner is correct, complete, optimal and computationally efficient.
|
|||||||
\end{descriptionlist}
|
\end{descriptionlist}
|
||||||
|
|
||||||
\item[Inconsistency] \marginnote{Inconsistency}
|
\item[Inconsistency] \marginnote{Inconsistency}
|
||||||
Actions and propositions can be inconsistent in the same time step.
|
Actions and propositions in the same time step can be inconsistent.
|
||||||
Possible causes are:
|
Possible causes are:
|
||||||
\begin{descriptionlist}
|
\begin{descriptionlist}
|
||||||
\item[Inconsistent effects] \marginnote{Inconsistent effects}
|
\item[Actions] \phantom{}
|
||||||
An action negates the effects of another one.
|
\begin{description}
|
||||||
|
\item[Inconsistent effects] \marginnote{Inconsistent effects}
|
||||||
\item[Interference] \marginnote{Interference}
|
An action negates the effects of another one.
|
||||||
An action deletes the preconditions of another one.
|
|
||||||
|
\item[Interference] \marginnote{Interference}
|
||||||
\item[Competing needs] \marginnote{Competing needs}
|
An action deletes the preconditions of another one.
|
||||||
Propositions that cannot appear together either
|
|
||||||
|
\item[Competing needs] \marginnote{Competing needs}
|
||||||
|
Two actions have mutually exclusive preconditions.
|
||||||
|
|
||||||
|
\item[Domain dependent]
|
||||||
|
\end{description}
|
||||||
|
|
||||||
|
\item[Propositions] \marginnote{Inconsistent propositions}
|
||||||
|
Propositions are inconsistent when they cannot appear together either
|
||||||
because one negates the other or
|
because one negates the other or
|
||||||
because they can be reached only through mutually exclusive paths.
|
because they can be reached only through mutually exclusive paths.
|
||||||
(i.e. two actions have mutually exclusive preconditions).
|
|
||||||
|
|
||||||
\item[Domain dependent]
|
|
||||||
\end{descriptionlist}
|
\end{descriptionlist}
|
||||||
|
|
||||||
\item[Plan extraction] \marginnote{Plan extraction}
|
\item[Plan extraction] \marginnote{Plan extraction}
|
||||||
@ -994,18 +999,17 @@ def extractSolution(graph, goal):
|
|||||||
$\begin{cases}\texttt{MOVE(r, l, p)} \\ \texttt{LOAD(b, r)}\end{cases} \text{for } \texttt{at(r, l)}$
|
$\begin{cases}\texttt{MOVE(r, l, p)} \\ \texttt{LOAD(b, r)}\end{cases} \text{for } \texttt{at(r, l)}$
|
||||||
\end{descriptionlist}
|
\end{descriptionlist}
|
||||||
|
|
||||||
The inconsistencies of at $t=2$ are:
|
The inconsistencies of propositions at $t=2$ are:
|
||||||
\begin{descriptionlist}
|
\begin{itemize}
|
||||||
\item[Competing needs] \phantom{}\\[0.5em]
|
\item Consequence of the add and delete list of each action:\\[0.3em]
|
||||||
Consequence of the add and delete list of each action:\\[0.3em]
|
$\begin{cases}\texttt{at(a, l)} \\ \texttt{in(r, a)}\end{cases}$,
|
||||||
$\begin{cases}\texttt{at(a, l)} \\ \texttt{in(r, a)}\end{cases}$,
|
$\begin{cases}\texttt{at(b, l)} \\ \texttt{in(r, b)}\end{cases}$,
|
||||||
$\begin{cases}\texttt{at(b, l)} \\ \texttt{in(r, b)}\end{cases}$,
|
$\begin{cases}\texttt{at(r, l)} \\ \texttt{at(r, p)}\end{cases}$,
|
||||||
$\begin{cases}\texttt{at(r, l)} \\ \texttt{at(r, p)}\end{cases}$,
|
$\begin{cases}\texttt{at(r, p)} \\ \texttt{hasFuel(r)}\end{cases}$\\[0.5em]
|
||||||
$\begin{cases}\texttt{at(r, p)} \\ \texttt{hasFuel(r)}\end{cases}$\\[0.5em]
|
\item Consequence of the add list of interfering actions (mutual exclusion):\\[0.3em]
|
||||||
Consequence of the add list of interfering actions (mutual exclusion):\\[0.3em]
|
$\begin{cases}\texttt{in(r, a)} \\ \texttt{at(r, p)}\end{cases}$,
|
||||||
$\begin{cases}\texttt{in(r, a)} \\ \texttt{at(r, p)}\end{cases}$,
|
$\begin{cases}\texttt{in(r, b)} \\ \texttt{at(r, p)}\end{cases}$
|
||||||
$\begin{cases}\texttt{in(r, b)} \\ \texttt{at(r, p)}\end{cases}$
|
\end{itemize}
|
||||||
\end{descriptionlist}
|
|
||||||
|
|
||||||
Note that because of the mutually exclusive propositions at $t=2$,
|
Note that because of the mutually exclusive propositions at $t=2$,
|
||||||
at $t=3$ the actions \texttt{UNLOAD($\cdot$, p)} cannot be performed.
|
at $t=3$ the actions \texttt{UNLOAD($\cdot$, p)} cannot be performed.
|
||||||
|
|||||||
@ -104,7 +104,7 @@ def expand(node, problem):
|
|||||||
|
|
||||||
\subsection{Breadth-first search (BFS)}
|
\subsection{Breadth-first search (BFS)}
|
||||||
\marginnote{Breadth-first search}
|
\marginnote{Breadth-first search}
|
||||||
Always expands the less deep node. The fringe is implemented as a queue (FIFO).
|
Always expands the least deep node. The fringe is implemented as a queue (FIFO).
|
||||||
|
|
||||||
\begin{center}
|
\begin{center}
|
||||||
\def\arraystretch{1.2}
|
\def\arraystretch{1.2}
|
||||||
|
|||||||
Reference in New Issue
Block a user