From f87889cacc915e7cd0878672ba8118045742e091 Mon Sep 17 00:00:00 2001 From: Joshua Moerman Date: Mon, 8 Oct 2018 17:11:56 +0200 Subject: [PATCH] Figures and small things --- content/introduction.tex | 17 +-- content/minimal-separating-sequences.tex | 144 +++++++++++------------ environment.tex | 4 +- environment/tikz.tex | 30 +---- images/monotone-tree.pdf | Bin 0 -> 22199 bytes images/splitting-tree.pdf | Bin 0 -> 22420 bytes 6 files changed, 87 insertions(+), 108 deletions(-) create mode 100644 images/monotone-tree.pdf create mode 100644 images/splitting-tree.pdf diff --git a/content/introduction.tex b/content/introduction.tex index a8aaa47..c77bc48 100644 --- a/content/introduction.tex +++ b/content/introduction.tex @@ -97,7 +97,7 @@ Fix a countable, infinite set $\atoms = \{ a, b, \ldots \}$ of \emph{names} (som The elements of $\atoms$ bare no relationship to natural numbers, or other standard mathematical entities. Define $\Pm = \{ \pi \colon \atoms \to \atoms \mid \pi \text{ is bijective} \}$ to be the set of permutations of names. -Together with function composition, $\Pm$ forms a group. +Together with function composition, $\Pm$ forms a \emph{group}. For two elements $a$ and $b$ we define a particular bijection $\swap{a}{b} \in \Pm$ which swaps $a$ and $b$ and leaves all other elements fixed. \stopdefinition @@ -107,12 +107,13 @@ The names are abstract entities which can be compared for equality, but nothing This also means that although $a$ and $b$ are distinct names, they are interchangeable. If we write $a \in \atoms$, then $a$ can stand for any of the names. So if we write $a, b \in \atoms$, then $a$ and $b$ can refer to the same name, i.e., $a = b$. -In other words, we do not adapt the permutative convention by \cite[]. +In other words, we do not adapt the permutative convention by \citet[?]. -As noted before, we want to let permutations act on objects constructed from names, such as lambda terms, tuples, and words. +As alluded to before, we want to have permutations act on objects constructed from names, such as words, states in an automaton and languages. The notion of a group action captures exactly this. In most cases we are interested in the group $\Pm$. However, in order to be general enough for the next chapters, we introduce group actions for an arbitrary group $G$. +\todo{Notatie $1$ is groepseenheid, ${\cdot}$ is vermenigvuldiging en werking.} \startdefinition Let $X$ be a set. @@ -165,11 +166,11 @@ Such an action is called \emph{trivial}. Note that the action on $\emptyset$ and $\{*\}$ are trivial, but the $\Pm$-actions on $\atoms$, $\atoms^{*}$ and $\atoms^{\omega}$ are not trivial. \item Another interesting non-trivial example is the set $\Pm$ itself. -There are three different actions which are natural: +There are three different interesting actions one can define: \startformula\startalign -\NC \pi \cdot_1 \sigma \NC = \pi \sigma \NR -\NC \pi \cdot_2 \sigma \NC = \sigma \pi^{-1} \NR -\NC \pi \cdot_3 \sigma \NC = \pi \sigma \pi^{-1} \NR +\NC \pi \cdot_{l} \sigma \NC = \pi \sigma \NR +\NC \pi \cdot_{r} \sigma \NC = \sigma \pi^{-1} \NR +\NC \pi \cdot_{c} \sigma \NC = \pi \sigma \pi^{-1} \NR \stopalign\stopformula Here the group multiplication is written by juxtaposition. The first two actions are left-multiplication and right-multiplication respectively. @@ -178,7 +179,7 @@ For each of them, one can verify the requirements. \stopitemize \stopexample -In the above examples, the non trivial $\Pm$-sets are all infinite. +In the above examples, the non-trivial $\Pm$-sets are all infinite. Yet, in a sense, the set $\atoms^{*}$ is bigger than the set $\atoms$. To be able to quantify this, we introduce the notion of an orbit. diff --git a/content/minimal-separating-sequences.tex b/content/minimal-separating-sequences.tex index 49062ae..da258f8 100644 --- a/content/minimal-separating-sequences.tex +++ b/content/minimal-separating-sequences.tex @@ -13,7 +13,7 @@ is a classic problem in automata theory. Sets of minimal separating sequences, f central role in many conformance testing methods. Moore has already outlined a partition refinement algorithm that constructs such a set of sequences in $\bigO(mn)$ time, where $m$ is the number of transitions and $n$ is the number of states. In this paper, we present an improved algorithm based -on the minimization algorithm of Hopcroft that runs in $\bigO(m \log n)$ time. The efficiency of our +on the minimisation algorithm of Hopcroft that runs in $\bigO(m \log n)$ time. The efficiency of our algorithm is empirically verified and compared to the traditional algorithm. \stopabstract @@ -22,7 +22,7 @@ algorithm is empirically verified and compared to the traditional algorithm. [title={Introduction}] In diverse areas of computer science and engineering, systems can be modelled by \emph{finite state machines} (FSMs). -One of the cornerstones of automata theory is minimization of such machines (and many variation thereof). +One of the cornerstones of automata theory is minimisation of such machines (and many variation thereof). In this process one obtains an equivalent minimal FSM, where states are different if and only if they have different behaviour. The first to develop an algorithm for minimisation was \citet[Moore56]. His algorithm has a time complexity of $\bigO(mn)$, where $m$ is the number of transitions, and $n$ is the number of states of the FSM. @@ -92,7 +92,7 @@ A partition is \emph{valid} if equivalent states are in the same block. \stopdefinition Partition refinement algorithms for FSMs start with the trivial partition $P = \{S\}$, and iteratively refine $P$ until it is the finest valid partition (where all states in a block are equivalent). -The blocks of such a \emph{complete} partition form the states of the minimized FSM, whose transition and output functions are well-defined because states in the same block are equivalent. +The blocks of such a \emph{complete} partition form the states of the minimised FSM, whose transition and output functions are well-defined because states in the same block are equivalent. Let $B$ be a block and $a$ be an input. There are two possible reasons to split $B$ (and hence refine the partition). @@ -207,10 +207,10 @@ We continue until $T$ is complete. \stopexample \startplacefigure - [title={A FSM (a) and a complete splitting tree for it (b)}, + [title={A FSM (a) and a complete splitting tree for it (b).}, reference=fig:automaton-tree] - -\starttikzpicture +\startcombination[2*1] +{\hbox{\starttikzpicture \node[state] (0) {$s_0$}; \node[state] (1) [above right of=0] {$s_1$}; \node[state] (2) [right of=1] {$s_2$}; @@ -230,12 +230,11 @@ We continue until $T$ is complete. (4) edge node [below] {${b}/1$} (5) (5) edge node [below left] {${b}/0$} (0) (5) edge node [left] {${a}/1$} (0); -\stoptikzpicture - -\todo{monotone-tree} -% \subfloat[\label{fig:monotone-tree}]{ -% \includegraphics[width=0.45\textwidth]{monotone-tree.pdf} -% } + % This is for alignment + \path (3) edge [loop right, draw=none] node [right] {\phantom{${b}/0$}} (3); +\stoptikzpicture}} {(a)} +{\externalfigure[monotone-tree.pdf][width=0.5\textwidth]} {(b)} +\stopcombination \stopplacefigure @@ -363,7 +362,7 @@ In both cases we have shown that $|x| \geq k+1$ as required. \stopplacealgorithm \startexample -\in{Figure}[fig:splitting-tree-only] shows a stable and minimal splitting tree $T$ for the machine in \in{Figure}[fig:automaton]. +\in{Figure}{(a)}[fig:splitting-tree] shows a stable and minimal splitting tree $T$ for the machine in \in{Figure}[fig:automaton-tree]. This tree is constructed by \in{Algorithm}[alg:minimaltree] as follows. It executes the same as \in{Algorithm}[alg:tree] until we consider the node labelled $\{s_0, s_2\}$. At this point $k = 1$. @@ -371,61 +370,55 @@ We observe that the sequence of $\lca(\delta(\{s_0,s_2\}, a))$ has length $2$, w We find that we can indeed split w.r.t. the state after $b$, so the associated sequence is $ba$. Continuing, we obtain the same partition as before, but with smaller witnesses. -The internal data structure (a refinable partition) is shown in \in{Figure}[fig:internal-data-structure]: +The internal data structure (a refinable partition) is shown in \in{Figure}{(b)}[fig:splitting-tree]: the array with the permutation of the states is at the bottom, and every block includes an indication of the slice containing its label and a pointer to its parent (as our final algorithm needs to find the parent block, but never the child blocks). \stopexample -\todo{Figure: splitting tree + internal representation} - -%\begin{figure} -% \centering -% \subfloat[\label{fig:splitting-tree-only}]{ -% \includegraphics[width=0.43\textwidth]{splitting-tree.pdf} -% } -% \subfloat[\label{fig:internal-data-structure}]{ -% \setcounter{maxdepth}{3} -% \begin{tikzpicture}[scale=1.0,>=stealth'] -% \gasblock{0}{6}{0}{2}{\makebox[0pt][r]{\tiny\textcolor{gray}{$\sigma(B_2) = \mbox{}$}} a} -% \gasblock{0}{3}{1}{4}{b} -% \gasblock{3}{6}{1}{8}{a \sigma(B_4)} -% \gasblock{0}{2}{2}{6}{b \sigma(B_2)} -% \gasblock{2}{3}{2}{3}{} -% \gasblock{3}{5}{2}{10}{a \sigma(B_6)} -% \gasblock{5}{6}{2}{7}{} -% \gasblock{0}{1}{3}{0}{} -% \gasblock{1}{2}{3}{5}{} -% \gasblock{3}{4}{3}{1}{} -% \gasblock{4}{5}{3}{9}{} -% \draw (0,0) node[shape=rectangle,minimum width=1cm,draw] (s2) {\footnotesize $s_2$}; -% \draw (1,0) node[shape=rectangle,minimum width=1cm,draw] (s0) {\footnotesize $s_0$}; -% \draw (2,0) node[shape=rectangle,minimum width=1cm,draw] (s4) {\footnotesize $s_4$}; -% \draw (3,0) node[shape=rectangle,minimum width=1cm,draw] (s5) {\footnotesize $s_5$}; -% \draw (4,0) node[shape=rectangle,minimum width=1cm,draw] (s1) {\footnotesize $s_1$}; -% \draw (5,0) node[shape=rectangle,minimum width=1cm,draw] (s3) {\footnotesize $s_3$}; -% \draw[->] -% (s2) edge (B0) -% (B0) edge (B6) -% (B6) edge (B4) -% (B4) edge (B2) -% (s0) edge (B5) -% (B5) edge (B6) -% (s4) edge (B3) -% (B3) edge (B4) -% (s5) edge (B1) -% (B1) edge (B10) -% (B10) edge (B8) -% (B8) edge (B2) -% (s1) edge (B9) -% (B9) edge (B10) -% (s3) edge (B7) -% (B7) edge (B8); -% \end{tikzpicture} -% } -% \caption{A complete and minimal splitting tree for the FSM in \in{Figure}[fig:automaton] (a) and its -% internal refinable partition data structure (b)} -% \label{fig:splitting-tree} -%\end{figure} +\startplacefigure + [title={(a) A complete and minimal splitting tree for the FSM in \in{Figure}[fig:automaton-tree] and (b) its internal refinable partition data structure.}, + list={A minimal splitting tree and internal data structure.}, + reference=fig:splitting-tree] +\startcombination[2*1] +{\externalfigure[splitting-tree.pdf][width=0.5\textwidth]} {(a)} +{\hbox{\starttikzpicture[scale=1.0,>=stealth'] + \gasblock{0}{6}{0}{2}{\sigma = a} + \gasblock{0}{3}{1}{4}{\sigma = b} + \gasblock{3}{6}{1}{8}{\sigma = a \sigma(B_4)} + \gasblock{0}{2}{2}{6}{\sigma = b \sigma(B_2)} + \gasblock{2}{3}{2}{3}{} + \gasblock{3}{5}{2}{10}{\sigma = a \sigma(B_6)} + \gasblock{5}{6}{2}{7}{} + \gasblock{0}{1}{3}{0}{} + \gasblock{1}{2}{3}{5}{} + \gasblock{3}{4}{3}{1}{} + \gasblock{4}{5}{3}{9}{} + \draw (0,0) node[shape=rectangle,minimum width=1cm,draw] (s2) {\tfx $s_2$}; + \draw (1,0) node[shape=rectangle,minimum width=1cm,draw] (s0) {\tfx $s_0$}; + \draw (2,0) node[shape=rectangle,minimum width=1cm,draw] (s4) {\tfx $s_4$}; + \draw (3,0) node[shape=rectangle,minimum width=1cm,draw] (s5) {\tfx $s_5$}; + \draw (4,0) node[shape=rectangle,minimum width=1cm,draw] (s1) {\tfx $s_1$}; + \draw (5,0) node[shape=rectangle,minimum width=1cm,draw] (s3) {\tfx $s_3$}; + \draw[->] + (s2) edge (B0) + (B0) edge (B6) + (B6) edge (B4) + (B4) edge (B2) + (s0) edge (B5) + (B5) edge (B6) + (s4) edge (B3) + (B3) edge (B4) + (s5) edge (B1) + (B1) edge (B10) + (B10) edge (B8) + (B8) edge (B2) + (s1) edge (B9) + (B9) edge (B10) + (s3) edge (B7) + (B7) edge (B8); +\stoptikzpicture}} {(b)} +\stopcombination +\stopplacefigure \stopsection @@ -464,7 +457,7 @@ The key idea is that, when we fix a $k$-candidate $v$, all leaves are split with Instead of iterating over of all leaves to refine them, we iterate over $s \in \delta^{-1}(l(w), a)$ for all $w$ in $C(v)$ and look up in which leaf it is contained to move $s$ out of it. From Lemma 8 by \citet[DBLP:journals/tcs/Knuutila01] it follows that we can skip one of the children of $v$. This lowers the time complexity to $\bigO(m \log n)$. -In order to move $s$ out of its leaf, each leaf $u$ is associated with a set of temporary children $C'(u)$ that is initially empty, and will be finalized after iterating over all $s$ and $w$. +In order to move $s$ out of its leaf, each leaf $u$ is associated with a set of temporary children $C'(u)$ that is initially empty, and will be finalised after iterating over all $s$ and $w$. \startplacealgorithm [title={A better step towards the stability of a splitting tree.}, @@ -511,7 +504,7 @@ For each $k$-candidate $v$ and input $a$, we consider all children $w$ of $v$, e For each state $s \in \delta^{-1}(l(w), a)$ we consider the leaf $u$ containing it. If this leaf does not have an associated temporary child for $w$ we create such a child (\inline[line:add-temp-child]), if this child exists we move $s$ into that child (\inline[line:move-to-temp-child]). -Once we have done the simultaneous splitting for the candidate $v$ and input $a$, we finalize the temporary children. +Once we have done the simultaneous splitting for the candidate $v$ and input $a$, we finalise the temporary children. This is done at \inline[line:finalize]. If there is only one temporary child with all the states, no split has been made and we recover this node (\inline[line:recover]). In the other case we make the temporary children permanent. @@ -556,7 +549,7 @@ The important observation is that when using \in{Algorithm}[alg:increase-k-v3] w \starttheorem[reference=th:complexity] \in{Algorithm}[alg:minimaltree] using \in{Algorithm}[alg:increase-k-v3] runs in $\bigO(m \log n)$ time. \stoptheorem -\startproof +\startproofnoqed We prove that bookkeeping does not increase time complexity by discussing the implementation. \startdescription{Inverse transition.} @@ -581,8 +574,9 @@ On finalizing the temporary children we store (a reference to) the biggest child \stopdescription \startdescription{Storing sequences.} The operation on \inline[line:prepend] is done in constant time by using a linked list. +\QED \stopdescription -\stopproof +\stopproofnoqed \stopsection @@ -590,15 +584,15 @@ The operation on \inline[line:prepend] is done in constant time by using a linke [title=Application in Conformance Testing] A splitting tree can be used to extract relevant information for two classical test generation methods: -a \emph{characterization set} for the W-method and a \emph{separating family} for the HSI-method. +a \emph{characterisation set} for the W-method and a \emph{separating family} for the HSI-method. For an introduction and comparison of FSM-based test generation methods we refer to \citet[DBLP:journals/infsof/DorofeevaEMCY10]. \startdefinition[def:cset] -A set $W \subset I^{\ast}$ is called a \emph{characterization set} if for every pair of inequivalent states $s, t$ there is a sequence $w \in W$ such that $\lambda(s, w) \neq \lambda(t, w)$. +A set $W \subset I^{\ast}$ is called a \emph{characterisation set} if for every pair of inequivalent states $s, t$ there is a sequence $w \in W$ such that $\lambda(s, w) \neq \lambda(t, w)$. \stopdefinition \startlemma[reference=lem:cset] -Let $T$ be a complete splitting tree, then $\{\sigma(u)|u \in T\}$ is a characterization set. +Let $T$ be a complete splitting tree, then $\{\sigma(u)|u \in T\}$ is a characterisation set. \stoplemma \startproof Let $W = \{\sigma(u) \mid u \in T\}$. @@ -609,12 +603,12 @@ This shows that $W$ is a characterisation set. \stopproof \startlemma -A characterization set with minimal length sequences can be constructed in time $\bigO(m \log n)$. +A characterisation set with minimal length sequences can be constructed in time $\bigO(m \log n)$. \stoplemma \startproof -By \in{Lemma}[lem:cset] the sequences associated with the inner nodes of a splitting tree form a characterization set. +By \in{Lemma}[lem:cset] the sequences associated with the inner nodes of a splitting tree form a characterisation set. By \in{Theorem}[th:complexity], such a tree can be constructed in time $\bigO(m \log n)$. -Traversing the tree to obtain the characterization set is linear in the number of nodes (and hence linear in the number of states). +Traversing the tree to obtain the characterisation set is linear in the number of nodes (and hence linear in the number of states). \stopproof \startdefinition[reference=def:separating_fam] @@ -654,7 +648,7 @@ This can be done in $\bigO(n^2)$ time using a trie data structure. [title={Experimental Results}] We have implemented \in{Algorithms}[alg:increase-k, alg:increase-k-v3] in Go, and we have compared their running time on two sets of FSMs. -\footnote{Available at \todo{https://gitlab.science.ru.nl/rick/partition/}.} +\footnote{Available at \href{https://gitlab.science.ru.nl/rick/partition/}.} The first set is from \citet[DBLP:conf/icfem/SmeenkMVJ15], where FSMs for embedded control software were automatically constructed. These FSMs are of increasing size, varying from 546 to 3~410 states, with 78 inputs and up to 151 outputs. The second set is inferred from \citet[Hopcroft71], where two classes of finite automata, $A$ and $B$, are described that serve as a worst case for \in{Algorithms}[alg:increase-k, alg:increase-k-v3] respectively. diff --git a/environment.tex b/environment.tex index 397f0a7..52bd018 100644 --- a/environment.tex +++ b/environment.tex @@ -27,7 +27,9 @@ \defineenumeration[corollary][text=Corollary] \setupenumeration[definition,example,lemma,proposition,theorem,corollary][alternative=serried,width=fit,right=.] -\definestartstop[proof][before={{\it Proof. }}, after={\hfill$\square$}] +\define\QED{\hfill$\square$} +\definestartstop[proof][before={{\it Proof. }}, after={\QED}] +\definestartstop[proofnoqed][before={{\it Proof. }}, after={}] \definefloat[algorithm][algorithms] diff --git a/environment/tikz.tex b/environment/tikz.tex index 738e358..300cc2d 100644 --- a/environment/tikz.tex +++ b/environment/tikz.tex @@ -13,28 +13,10 @@ % observation table \tikzset{obs table/.style={matrix of math nodes, ampersand replacement=\&, column 1/.style={anchor=base west}}} -\stopenvironment - % This command is used to draw the internal data structure for the minimal separating sequences paper -% this is not used yet. -\newcounter{maxdepth} -\newcommand{\gasblock}[5]{ -\fill (#1-0.495,{(\themaxdepth-#3)*0.75+0.5}) [rounded corners=0.2cm] -- (#1-0.495,{(\themaxdepth-#3)*0.75+0.655}) -- (#2-0.505,{(\themaxdepth-#3)*0.75+0.655}) [sharp corners] -- (#2-0.505,{(\themaxdepth-#3)*0.75+0.5}) [rounded corners=0.2cm] -- (#2-0.505,{(\themaxdepth-#3)*0.75+0.645}) -- (#1-0.495,{(\themaxdepth-#3)*0.75+0.645}) [sharp corners] -- cycle; -%\draw[rounded corners=0.225cm] (#1-0.45,{(\themaxdepth-#3)*0.75+0.5}) -- (#1-0.45,{(\themaxdepth-#3)*0.75+0.65}) -- (#2-0.55,{(\themaxdepth-#3)*0.75+0.65}) -- (#2-0.55,{(\themaxdepth-#3)*0.75+0.5}); -\draw ({(#1+#2)/2-0.5},{(\themaxdepth-#3)*0.75+0.65}) node[fill=white] (B#4) {\footnotesize $B_{#4}$}; -%\draw (#1-0.5,{(\themaxdepth-#3)*0.75+0.3}) node {\tiny $#1$}; -%\draw (#2-0.5,{(\themaxdepth-#3)*0.75+0.3}) node {\tiny $#2$}; -%\draw ({(#1+#2)/2-0.5},{(\themaxdepth-#3)*0.75+0.3}) node {\scriptsize \smash{$#5$}}; -%\begin{scope} -% \clip[overlay] (-0.55,{(\themaxdepth-#3)*0.75+0.6}) rectangle (#2-3.45,0); -% \draw (#1-0.5,{(\themaxdepth-#3)*0.75+0.3}) node{\tiny $\phantom{#1}$\makebox[0pt][l]{\textcolor{gray}{$\mbox{} = \smash{#4.\mathit{begin}}$}}}; -%\end{scope} -%\begin{scope} -% \clip[overlay] (#1+2.45,{(\themaxdepth-#3)*0.75+0.6}) rectangle (#2-0.45,0); -% \draw (#2-0.5,{(\themaxdepth-#3)*0.75+0.3}) node{\tiny\makebox[0pt][r]{\textcolor{gray}{$\smash{#4.\mathit{end}} = \mbox{}$}}$\phantom{#2}$}; -%\end{scope} -%% \begin{scope} -%% \clip[overlay] (#1*2-1.7,{(\themaxdepth-#3)*0.75+0.8}) rectangle (-0.5,0); -%% \draw[overlay] (-0.5,{(\themaxdepth-#3)*0.75+0.65}) node{\tiny\makebox[0pt][r]{\textcolor{gray}{$#4.\mathit{level} = #3$}~~\quad}}; -%% \end{scope} -} \ No newline at end of file +\define[5]\gasblock{ +\fill (#1-0.495,{(3-#3)*0.75+0.5}) [rounded corners=0.2cm] -- (#1-0.495,{(3-#3)*0.75+0.655}) -- (#2-0.505,{(3-#3)*0.75+0.655}) [sharp corners] -- (#2-0.505,{(3-#3)*0.75+0.5}) [rounded corners=0.2cm] -- (#2-0.505,{(3-#3)*0.75+0.645}) -- (#1-0.495,{(3-#3)*0.75+0.645}) [sharp corners] -- cycle; +\draw ({(#1+#2)/2-0.5},{(3-#3)*0.75+0.65}) node[fill=white] (B#4) {{$B_{#4}$} {$\scriptscriptstyle #5$}}; +} + +\stopenvironment \ No newline at end of file diff --git a/images/monotone-tree.pdf b/images/monotone-tree.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d69acd8b91daae38a5f0cb3c9fc96ce20a973c0b GIT binary patch literal 22199 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 literal 0 HcmV?d00001 diff --git a/images/splitting-tree.pdf b/images/splitting-tree.pdf new file mode 100644 index 0000000000000000000000000000000000000000..4530587172dd437e0e82819881a9e4cda172712f GIT binary patch literal 22420 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 literal 0 HcmV?d00001