diff --git a/biblio-eigen.bib b/biblio-eigen.bib index 58b0384..f4842be 100644 --- a/biblio-eigen.bib +++ b/biblio-eigen.bib @@ -130,6 +130,7 @@ Wojciech Wieczorek}, booktitle = {ICGI 2018, Proceedings}, publisher = {Proceedings of Machine Learning Research}, + volume = {93}, year = {2018} } diff --git a/content.tex b/content.tex index a647137..271d7f9 100644 --- a/content.tex +++ b/content.tex @@ -8,7 +8,7 @@ \startfrontmatter \start \switchtobodyfont[20pt] -\midaligned{\framed[width=12cm,align=center,offset=2cm,frame=off]{Nominal Techniques \& Testing Techniques for Automata}} +\midaligned{\framed[width=12cm,align=center,offset=2cm,frame=off]{Nominal Techniques \& Testing Methods for Automata Learning}} \switchtobodyfont[12pt] \midaligned{Joshua Moerman} \midaligned{draft 16 November 2018} diff --git a/content/introduction.tex b/content/introduction.tex index afc8801..51614d6 100644 --- a/content/introduction.tex +++ b/content/introduction.tex @@ -207,7 +207,7 @@ This gave developers opportunities to solve problems before replacing the old co \stopsection \startsection - [title={Testing Techniques}] + [title={Testing Methods}] An important step in automata learning is equivalence checking. Normally, this is abstracted away and done by an oracle, but we intend to implement such an oracle ourselves for our applications. @@ -227,6 +227,34 @@ In particular, the set of experiments is polynomial in size. These techniques will be discussed in detail in \in{Chapter}[chap:test-methods]. More background and other related problems, as well as their complexity results, are well exposed in a survey of \citet[LeeY94]. +In the following example we model a record player as a finite state machine. +We will not model the audible output -- that would depend not only on the device, but also the record one chooses to play. +Instead, we the only observation we can make is seeing how fast the turntable spins. +The device has two buttons: a start-stop button (\playstop) and a speed toggle (\spin) which chooses between $33 \frac{1}{3}$ rpm and $45$ rpm. +When turned on, the system should start playing immediately at $33 \frac{1}{3}$ rpm -- this is useful for DJing. +The system has four states as depicted in \in{Figure}[fig:record-player]. + +\startplacefigure + [title={Behaviour of a record player modelled as a finite state machine.}, + reference=fig:record-player] +\hbox{\starttikzpicture[node distance=4cm, bend angle=10] + \node[state, initial, align=center] (tl) {slow\\spinning}; + \node[state, right of=tl, align=center] (tr) {fast\\spinning}; + \node[state, below of=tl, align=center] (bl) {no\\spinning}; + \node[state, right of=bl, align=center] (br) {no\\spinning}; + + \path[->] + (tl) edge [bend right] node [left] {\playstop} (bl) + (tl) edge [bend right] node [below] {\spin} (tr) + (bl) edge [bend right] node [right] {\playstop} (tl) + (bl) edge [bend right] node [below] {\spin} (br) + (tr) edge [bend right] node [above] {\spin} (tl) + (tr) edge [bend right] node [left] {\playstop} (br) + (br) edge [bend right] node [right] {\playstop} (tr) + (br) edge [bend right] node [above] {\spin} (bl); +\stoptikzpicture} +\stopplacefigure + \todo{I want to give an example (by giving a state machine) of why black box testing is hard.} \todo{I want to move some related work from the second chapter to here}. diff --git a/environment/notation.tex b/environment/notation.tex index fba5124..f7a91a6 100644 --- a/environment/notation.tex +++ b/environment/notation.tex @@ -13,6 +13,10 @@ \define\bomb{\!\scale[height=.65em]{\symbol[fontawesome][]}} % bomb \define\money{\scale[height=.6em]{\symbol[fontawesome][eur]}\,} % euro sign + space +\define\playstop{\scale[height=.5em]{\symbol[fontawesome][play]}\scale[height=.5em]{\symbol[fontawesome][pause]}} % play / stop symbol +\define\spin{\scale[height=.6em]{\symbol[fontawesome][repeat]}} % spinning symbol +%\define\spin{\kw{spd}} % spinning symbol + \define[1]\Fam{\mathcal{#1}} \define\lang{\mathcal{L}} \define\autom{\mathcal{A}}