Worked on sep seqs.
This commit is contained in:
parent
56f14e8ce2
commit
99f78937a2
5 changed files with 221 additions and 1 deletions
137
content/esm.table
Normal file
137
content/esm.table
Normal file
|
@ -0,0 +1,137 @@
|
||||||
|
states Hopcroft Moore
|
||||||
|
546 0.05548176 0.05162218
|
||||||
|
547 0.065968448 0.374567635
|
||||||
|
571 0.151784094 2.562025297
|
||||||
|
610 0.161709531 2.923059564
|
||||||
|
612 0.162847423 2.949833339
|
||||||
|
616 0.16393522 2.979295117
|
||||||
|
634 0.169730862 3.136451995
|
||||||
|
644 0.171697908 3.205603966
|
||||||
|
646 0.173519053 3.247711454
|
||||||
|
664 0.174829094 3.303879469
|
||||||
|
674 0.176219619 3.404398614
|
||||||
|
704 0.18026932 3.772591464
|
||||||
|
723 0.176796323 4.025279554
|
||||||
|
724 0.176144222 4.041852225
|
||||||
|
727 0.177380196 4.078740205
|
||||||
|
750 0.184511916 4.376803632
|
||||||
|
752 0.184925295 4.39675801
|
||||||
|
755 0.18608039 4.427337413
|
||||||
|
779 0.191979151 4.696313345
|
||||||
|
796 0.19801254 4.906009044
|
||||||
|
808 0.199559131 4.969958634
|
||||||
|
816 0.202306127 5.06486171
|
||||||
|
820 0.203567904 5.11139433
|
||||||
|
826 0.206071634 5.194849765
|
||||||
|
849 0.217511686 5.553222482
|
||||||
|
851 0.220003201 5.5797187
|
||||||
|
881 0.226420016 5.94774453
|
||||||
|
951 0.235091864 6.33370116
|
||||||
|
952 0.234470623 6.357592105
|
||||||
|
976 0.243413677 6.785026456
|
||||||
|
998 0.247111407 7.115376566
|
||||||
|
1022 0.254264636 7.475588529
|
||||||
|
1028 0.253825238 7.676966117
|
||||||
|
1031 0.253552779 7.655207879
|
||||||
|
1032 0.253959583 7.687817395
|
||||||
|
1036 0.256927602 7.753280811
|
||||||
|
1038 0.256454243 7.785150879
|
||||||
|
1044 0.2676729 7.914658705
|
||||||
|
1048 0.268592945 7.993362548
|
||||||
|
1090 0.280256629 8.571307839
|
||||||
|
1096 0.283057389 8.72110485
|
||||||
|
1104 0.285299766 8.860082549
|
||||||
|
1172 0.30334844 9.682438227
|
||||||
|
1182 0.308970132 9.785819737
|
||||||
|
1222 0.323826492 10.508031711
|
||||||
|
1230 0.325670362 10.670810609
|
||||||
|
1242 0.331428484 10.796530463
|
||||||
|
1248 0.32975737 10.897072507
|
||||||
|
1262 0.33353854 11.303006909
|
||||||
|
1268 0.338205563 11.351776371
|
||||||
|
1460 0.371807782 13.490904423
|
||||||
|
1466 0.372692439 13.528562317
|
||||||
|
1486 0.380183351 14.004736754
|
||||||
|
1492 0.382841945 14.188868672
|
||||||
|
1495 0.382159405 14.265695125
|
||||||
|
1513 0.388669725 14.900034072
|
||||||
|
1516 0.390405231 14.81499996
|
||||||
|
1518 0.390463274 14.944426519
|
||||||
|
1522 0.392151819 14.915203734
|
||||||
|
1524 0.393186661 14.961747551
|
||||||
|
1526 0.394158427 15.037075056
|
||||||
|
1573 0.408168072 16.133197125
|
||||||
|
1598 0.416766067 16.678992988
|
||||||
|
1660 0.44328243 18.142114009
|
||||||
|
1665 0.444965405 18.25355816
|
||||||
|
1666 0.444720035 18.28403416
|
||||||
|
1667 0.446062015 18.284690403
|
||||||
|
1668 0.446125714 18.329058714
|
||||||
|
1670 0.446133206 18.572377324
|
||||||
|
1672 0.446952057 18.695455536
|
||||||
|
1708 0.456918651 18.790907562
|
||||||
|
1712 0.458244796 18.905278887
|
||||||
|
1720 0.461813708 19.17002062
|
||||||
|
1728 0.465456384 19.392921399
|
||||||
|
1736 0.46909665 19.581211756
|
||||||
|
1738 0.469009293 19.63986836
|
||||||
|
1739 0.470088086 19.654523832
|
||||||
|
1745 0.472925164 19.834706477
|
||||||
|
1747 0.476427047 19.882721961
|
||||||
|
1756 0.477945503 20.126510562
|
||||||
|
1776 0.48555338 21.050697212
|
||||||
|
1779 0.487291725 20.769860328
|
||||||
|
1785 0.487422511 20.95968171
|
||||||
|
1792 0.490868025 21.171034734
|
||||||
|
1799 0.495984897 21.381192056
|
||||||
|
1829 0.500577054 22.305283908
|
||||||
|
1835 0.501130431 22.349754728
|
||||||
|
1841 0.499636037 22.458577516
|
||||||
|
1853 0.502867922 22.789015879
|
||||||
|
1857 0.503177778 22.824136936
|
||||||
|
1863 0.506992088 22.968349427
|
||||||
|
1869 0.511573083 23.149349308
|
||||||
|
1870 0.510409209 23.185619132
|
||||||
|
1891 0.51604806 23.597859463
|
||||||
|
1915 0.52134704 23.854239145
|
||||||
|
1927 0.526302999 24.077963239
|
||||||
|
1935 0.529154809 24.256248614
|
||||||
|
1951 0.533841463 24.888246072
|
||||||
|
1972 0.537198755 25.293137881
|
||||||
|
1978 0.538614268 25.390662904
|
||||||
|
2032 0.565800375 26.03466246
|
||||||
|
2053 0.559773001 26.420268108
|
||||||
|
2101 0.569853806 27.579091597
|
||||||
|
2125 0.575521253 28.225772617
|
||||||
|
2137 0.57871672 28.277690829
|
||||||
|
2155 0.581133036 28.500376699
|
||||||
|
2158 0.582197362 28.494612045
|
||||||
|
2167 0.584903052 28.531839432
|
||||||
|
2170 0.588296814 28.575386555
|
||||||
|
2172 0.588168789 28.727190877
|
||||||
|
2202 0.601001684 29.645737322
|
||||||
|
2214 0.607209659 30.433077486
|
||||||
|
2218 0.610239584 30.515088605
|
||||||
|
2224 0.612489408 30.80970033
|
||||||
|
2228 0.609919931 30.970134524
|
||||||
|
2246 0.616805458 30.836588838
|
||||||
|
2364 0.688856681 36.422097475
|
||||||
|
2382 0.699198195 37.22853454
|
||||||
|
2386 0.699697687 37.399438633
|
||||||
|
2390 0.696379643 37.491589119
|
||||||
|
2448 0.722756074 40.559368969
|
||||||
|
2822 0.892213459 56.246352395
|
||||||
|
2894 0.925655807 58.298946257
|
||||||
|
2902 0.930451456 58.91838622
|
||||||
|
2908 0.934032602 59.191770267
|
||||||
|
2915 0.939078333 59.149010129
|
||||||
|
3042 0.979294733 63.624004421
|
||||||
|
3109 1.008006854 66.701448478
|
||||||
|
3164 1.030117558 69.210002572
|
||||||
|
3172 1.028983357 68.766214254
|
||||||
|
3326 1.06337783 72.518414203
|
||||||
|
3364 1.080085845 75.032993864
|
||||||
|
3368 1.081815962 74.785882543
|
||||||
|
3380 1.086156479 75.969527635
|
||||||
|
3406 1.095992942 76.987838799
|
||||||
|
3410 1.11796171 79.799157453
|
15
content/hopcroft_a.table
Normal file
15
content/hopcroft_a.table
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
states Hopcroft Moore
|
||||||
|
4 0.000004394 0.000008367
|
||||||
|
8 0.000007727 0.000020106
|
||||||
|
16 0.000014457 0.000052275
|
||||||
|
32 0.000030602 0.000155723
|
||||||
|
64 0.000072037 0.000509607
|
||||||
|
128 0.000193457 0.001816708
|
||||||
|
256 0.000563881 0.00676876
|
||||||
|
512 0.00145047 0.026100461
|
||||||
|
1024 0.003533843 0.101946121
|
||||||
|
2048 0.008529486 0.407693
|
||||||
|
4096 0.021424756 1.64542877
|
||||||
|
8192 0.051799602 6.570335332
|
||||||
|
16384 0.12096594 26.285563125
|
||||||
|
32768 0.295170838 106.794193669
|
15
content/hopcroft_b.table
Normal file
15
content/hopcroft_b.table
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
states Hopcroft Moore
|
||||||
|
4 0.000004181 0.00000485
|
||||||
|
8 0.000007397 0.000012002
|
||||||
|
16 0.000013752 0.000030596
|
||||||
|
32 0.000027895 0.000084655
|
||||||
|
64 0.000061301 0.000258466
|
||||||
|
128 0.000149001 0.00085492
|
||||||
|
256 0.000390771 0.003013328
|
||||||
|
512 0.000959998 0.011248316
|
||||||
|
1024 0.002402636 0.043437952
|
||||||
|
2048 0.005954948 0.1706022
|
||||||
|
4096 0.015253576 0.684592527
|
||||||
|
8192 0.035884835 2.758716619
|
||||||
|
16384 0.082455912 11.050600273
|
||||||
|
32768 0.194492715 43.719043747
|
|
@ -647,9 +647,60 @@ This can be done in $\bigO(n^2)$ time using a trie data structure.
|
||||||
|
|
||||||
|
|
||||||
\stopsection
|
\stopsection
|
||||||
|
\startsection
|
||||||
|
[title={Experimental Results}]
|
||||||
|
|
||||||
\todo{ga verder bij \tt 732}
|
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/}.}
|
||||||
|
The first set is from \cite{Smeenk}, 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[Hopcroft1971], 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.
|
||||||
|
The FSMs that we have constructed for these automata have 1 input, 2 outputs, and $2^2$~--~$2^{15}$ states.
|
||||||
|
The running times in seconds on an Intel Core i5-2500 are plotted in \in{Figure}[fig:results].
|
||||||
|
We note that different slopes imply different complexity classes, since both axes have a logarithmic scale.
|
||||||
|
|
||||||
|
\startplacefigure
|
||||||
|
[title={Running time in seconds of \in{Algorithm}[alg:increase-k] (grey) and \in{Algorithm}[alg:increase-k-v3] (black).},
|
||||||
|
reference=fig:results]
|
||||||
|
\startcombination[2*1]
|
||||||
|
{\starttikzpicture
|
||||||
|
\startloglogaxis[width=0.5\textwidth, xtick={500, 1000, 2000, 3000}, xticklabels={500, 1000, 2000, 3000}]
|
||||||
|
\addplot[color=darkgray] table[x=states, y=Moore] {esm.table};
|
||||||
|
\addplot[color=black] table[x=states, y=Hopcroft] {esm.table};
|
||||||
|
\stoploglogaxis
|
||||||
|
\stoptikzpicture} {(a) Embedded control software.}
|
||||||
|
{\starttikzpicture
|
||||||
|
\startloglogaxis[width=0.5\textwidth, xtick={4, 64, 2048, 32768}, xticklabels={$2^2$, $2^6$, $2^{11}$, $2^{15}$}]
|
||||||
|
\addplot[color=darkgray, dashed] table[x=states, y=Moore] {hopcroft_b.table};
|
||||||
|
\addplot[color=black, dashed] table[x=states, y=Hopcroft] {hopcroft_b.table};
|
||||||
|
\addplot[color=darkgray] table[x=states, y=Moore] {hopcroft_a.table};
|
||||||
|
\addplot[color=black] table[x=states, y=Hopcroft] {hopcroft_a.table};
|
||||||
|
\stoploglogaxis
|
||||||
|
\stoptikzpicture} {(b) Class $A$ (dashed) and class $B$ (solid).}
|
||||||
|
\stopcombination
|
||||||
|
\stopplacefigure
|
||||||
|
|
||||||
|
|
||||||
|
\stopsection
|
||||||
|
\startsection
|
||||||
|
[title={Conclusion}]
|
||||||
|
|
||||||
|
In this paper we have described an efficient algorithm for constructing a set of minimal-length sequences that pairwise distinguish all states of a finite state machine.
|
||||||
|
By extending Hopcroft's minimisation algorithm, we are able to construct such sequences in $\bigO(m \log n)$ for a machine with $m$ transitions and $n$ states.
|
||||||
|
This improves on the traditional $\bigO(mn)$ method that is based on the classic algorithm by Moore.
|
||||||
|
As an upshot, the sequences obtained form a characterisation set and a separating family, which play a crucial in conformance testing.
|
||||||
|
|
||||||
|
Two key observations were required for a correct adaptation of Hopcroft's algorithm.
|
||||||
|
First, it is required to perform splits in order of the length of their associated sequences.
|
||||||
|
This guarantees minimality of the obtained separating sequences.
|
||||||
|
Second, it is required to consider nodes as a candidate before any one of its children are considered as a candidate.
|
||||||
|
This order follows naturally from the construction of a splitting tree.
|
||||||
|
|
||||||
|
Experimental results show that our algorithm outperforms the classic approach for both worst-case finite state machines and models of embedded control software.
|
||||||
|
Applications of minimal separating sequences such as the ones described by \citet[dorofeeva2010fsm, Smeenk] therefore show that our algorithm is useful in practice.
|
||||||
|
|
||||||
|
|
||||||
|
\stopsection
|
||||||
\referencesifcomponent
|
\referencesifcomponent
|
||||||
\stopchapter
|
\stopchapter
|
||||||
\stopcomponent
|
\stopcomponent
|
||||||
|
|
|
@ -3,6 +3,8 @@
|
||||||
\usemodule[tikz]
|
\usemodule[tikz]
|
||||||
\usetikzlibrary[automata, arrows, positioning, matrix, fit, decorations.pathreplacing]
|
\usetikzlibrary[automata, arrows, positioning, matrix, fit, decorations.pathreplacing]
|
||||||
|
|
||||||
|
\usemodule[pgfplots]
|
||||||
|
|
||||||
% defaults
|
% defaults
|
||||||
\tikzset{node distance=2cm} % 'shorten >=2pt' only for automata
|
\tikzset{node distance=2cm} % 'shorten >=2pt' only for automata
|
||||||
|
|
||||||
|
|
Reference in a new issue