Commit 1fac4a61 authored by Markus Klinik's avatar Markus Klinik
Browse files

commutative vs parallelizable

parent cd7e896b
......@@ -57,6 +57,12 @@
\usepackage{bussproofs}
\def\defaultHypSeparation{\hskip .1in}
% nice tables
\usepackage{tabu}
\usepackage{booktabs}
\usepackage{cleveref}
% END my packages =====================================
......
......@@ -25,7 +25,39 @@ All actions that are not explicitly constrained by the partial ordering should b
Most classical planners have as output a list of actions that are to be executed in exactly this order.
There is a line of research that is concerned with \emph{partial-order planning}, where the result of planning is a partial ordering on a set of actions.
Any linearization of the partial ordering is a \emph{valid} plan, that is a plan that leads from the start state to a goal state.
A technique for partial order planning is \emph{plan relaxation}.
Plan relaxation works by first letting a classical planner calculate a linear plan, and then removing as many of the order constraints as possible.
\citet{MuiseBM2016} have a concise and comprehensible description of plan relaxation techniques.
The result of plan relaxation is a partial ordering such that any linearization of the partial ordering is a \emph{valid} plan, that is a plan that leads from the start state to a goal state.
In C2 we are interested in a different property however.
Not only do we want any linearization to be valid, we want unconstrained actions to be executed concurrently, provided that there are enough resources to do so.
\paragraph{Parallelizable vs commutative tasks}
We say that two tasks are \emph{commutative} if they can be executed sequentially in any order.
We say that two tasks are \emph{parallelizable} if they can be executed at the same time.
These two notions are independent, which means there are tasks for any combination of them.
\Cref{table:commutativeParallelizable} summarizes this idea.
Putting on the left sock and the right sock can be done in any order or in parallel, given enough resources.
These two tasks are therefore commutative and parallelizable.
Putting on the left sock and then the left shoe must be done in order.
It is not commutative and not parallelizable.
Reading two books for homework is commutative but not parallelizable.
Any producer-consumer scenario with bounded buffer is not serializable at all, therefore not commutative.
The producer task and the consumer task must be executed in parallel.
\begin{table}
\begin{tabu}{l|ll}
& parallelizable & not parallelizable
\\ \midrule
commutative & left sock, right sock & homework
\\ not commutative & producer consumer & left sock, left shoe
\end{tabu}
\caption{For every combination of parallelizable and commutative there are tasks that have these properties, which demonstrates that the two notions are independent.}
\label{table:commutativeParallelizable}
\end{table}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment