1 Introduction
For a state based system that reacts to events from its environment by changing its state, a synchronizing sequence is a specific sequence of events that brings the system to a particular state no matter where the system initially is. Synchronizing sequences have found applications in many practical settings. In model based testing, it can be used to bring the unknown initial state of an implementation to a specific state to start testing [1, 2]. As Natarajan [3] and Eppstein [4] explain, it can be used to orient a part to a certain position on a conveyor belt. Another interesting application is from biocomputing, where one can use a DNA molecule encoding a synchronizing sequence to bring huge number of identical automata (in the order of automata/) to a certain restart state [5].
Such a state based system can be formalized as a finite state automaton (FA). We restrict ourselves to deterministic FA, which is defined as a tuple , where is a finite set of states, is a finite input alphabet, and is a transition function, defining how each state of is changed by the application of inputs. The transition function is extended to words in naturally as , , where , , , and is the empty word. A FA is called completely specified when is a total function. We will only consider completely specified FA in this work. Figure 1 is an example of a FA.
We can now define a synchronizing sequence formally. Given an FA , an input sequence is called a synchronizing sequence for if , . As an example, is a synchronizing sequence for given in Figure 1.
Synchronizing sequences attracted much attention from a theoretical point of view as well. In the literature, a synchronizing sequence is also referred to as a synchronizing word, reset sequence, or a reset word. Not every FA has a synchronizing sequence, and one can check the existence of a synchronizing sequence for a given FA in polynomial time. On the other hand, the problem of finding a shortest synchronizing sequence is known to be NPhard [4]
. For this reason, several heuristic approaches have been suggested to compute short synchronizing sequences
[4, 6, 7, 8]. These algorithms guarantee a synchronizing sequence of length where is the number of states in the FA. The best known upper bound is [9]. However, it has been conjectured by Černý almost half a century ago that this upper bound is [10, 11] after providing a class of FA with states whose shortest synchronizing sequence is of length . The conjecture is shown to hold for certain classes of automata [4, 5, 12, 13, 14, 15]. However, the conjecture is still open in general, and it is one of the oldest open problems of finite state automata theory.Despite the fact that it is NPhard, considering the computation of shortest synchronizing sequences is still useful. Such attempts are valuable both for understanding the characteristics of shortest synchronizing sequence problem (see e.g. [16]) and for forming a base line for the performance evaluation of heuristics for computing short synchronizing sequences.
In this work, we formulate the problem of computing a shortest synchronizing sequence in Answer Set Programming (ASP) [17, 18]—a knowledge representation and reasoning paradigm with an expressive formalism and efficient solvers. The idea of ASP is to formalize a given problem as a “program” and to solve the problem by computing models (called “answer sets” [19]) of the program using “ASP solvers”, such as Clasp [20].
After we represent the shortest synchronizing sequence problem in ASP, we experimentally evaluate the performance and effectiveness of ASP, in comparison with two other approaches, one based on SAT [16] and the other on a bruteforce algorithm [21]. For our experiments with the SATbased approach, we extend the SAT formulation of the existence of a synchronizing sequence of a given length [16], to FA with more than two input symbols.
The rest of the paper is organized as follows. In Section 2 we present four different ASP formulations for the problem. An existing SAT formulation [16] is extended to FAs with more than two inputs in Section 3. The experimental results are given in Section 4 to compare the approaches. Finally, in Section 5 we give concluding remarks and some future research directions.
2 ASP Formulations of the Shortest Synchronizing Sequence Problem
Let us first consider the decision version of the shortest synchronizing sequence problem: For an FA and a positive integer constant , decide whether has a synchronizing word of length .
Without loss of generality, we represent states and input symbols of an FA , by the range of numbers and (, ), respectively. Then an FA can be described in ASP by three forms of atoms given below:

() describing the states in ,

() describing the input symbols in , and

(, ) describing the transitions .
We represent possible lengths of sequences by atoms of the form ().
A synchronizing sequence of length is characterized by atoms of the form (, ) describing that the ’th symbol of the word is .
Using these atoms, we can represent the decision version of the shortest synchronizing sequence problem with a “generateandtest” methodology used in various ASP formulations. In the following, we present two different ASP formulations based on this approach.
In these ASP formulations, we use an auxiliary concept of a path in characterized by a sequence of symbols in , which is defined as a sequence of states in such that for every (). The existence of such a path of length in from a state to a state (i.e., the reachability of a state from a state by a path of length in ) characterized by the first symbols of a word is represented by atoms of the form defined as follows:
(1) 
2.1 Connecting All States to a Sink State
In the first ASP formulation, which we call , first we “generate” a sequence of symbols by the following choice rule:
(2) 
where is defined by a set of facts:
(3) 
Next, we ensure that it is a synchronizing sequence by “testing” that it does not violate the condition:

There exists a sink state such that every path in characterized by ends at .
by adding the following constraints
(4) 
where describes a sink state:
(5) 
2.2 Merging States Pairwise
In the second ASP formulation, which we call , first we “generate” a sequence of symbols by the choice rule (2).
Next, we ensure that it is a synchronizing sequence by “testing” that it does not violate the following condition, instead of constraint :

For every pair of states in , .
by adding the following cardinality constraints
(6) 
where describes that there exists a state reachable from the states and by paths characterized by the first symbols of for some ():
(7) 
2.3 Optimization
The ASP formulations given in Section 2.1 and Section 2.2, with a set of facts describing an FA , have answer sets if the given FA has a synchronizing sequence of length . In order to find the length of the shortest synchronizing sequence, one can perform a binary search on possible values of .
In this section, we present another ASP formulation where we let the ASP solver first decide the length of a shortest synchronizing sequence, where :
(8) 
and declare possible lengths of sequences:
(9) 
Next, we ensure that is indeed the optimal value, by the following optimization statement
(10) 
3 SAT Formulation of the Shortest Synchronizing Sequence Problem
In [16], a SAT formulation of the problem of checking if an FA has a synchronizing sequence of a certain length is presented. However, this formulation is given only for FA with two input symbols. We extend this SAT formulation to FA with any number of input symbols as follows.
We first define a boolean operator that will simplify the description of our SAT formulation. For a given set of boolean variables , we define as follows:
{,,,} (( ( )) ( ( )) ( ( )) ( ))
Intuitively, is true with respect to an interpretation iff exactly one of the variables is true and all the others are false with respect to .
Checking the existence of a synchronizing sequence of length is converted into a SAT problem by considering the following boolean formulae. Below we use the notation to denote the set .

: An input sequence of length has to be created. At each step of this input sequence, there should be exactly one input symbol being used. For this purpose, we generate Boolean variables which should be set to true (by an interpretation) only if at step the input symbol is used. The following formulae make sure that only one input symbol is picked for each step .

: Similar to what we accomplish in ASP formulations by atoms of the form , we need to trace the state reached when the input sequence guessed by formula is applied. For this purpose, boolean variables (which we call state tracing variables) are created which are set to true (by an interpretation) only if we are at state at step when we start from state . We first make sure that for each starting state and at any step, there will always be exactly one current state.

: The initial configuration of the FA must be indicated. For this purpose state tracing variables should be initialized for their first step.

: Again, similar to the constraints in ASP formulations, over atoms of the form , we have the corresponding SAT formulae to make sure that state tracing variables are assigned according to the transitions of the FA . For each state and input of , if we have in , then we generate the following formulae:

: A synchronizing sequence merges all the states at a sink state after the application of . We use boolean variable to pick a sink state. Since only one of the states has to be a sink state, we introduce the following formulae:

: Finally, we need to make sure that all the states reach the sink state picked by at the end of the last step after the application of the synchronizing sequence guessed by formulae .
The conjunction of all formulae introduced above is a Boolean formula that is satisfiable iff there exists a synchronizing sequence of FA of length .
4 Experimental Study
In this section, we present the experimental study carried out to compare the performance of the ASP formulations, the SAT formulation, and the brute–force algorithm for generating a shortest synchronizing sequence.
We first present our experiments using finite automata that are generated randomly. Given the number of states and the number of input symbols, an FA is generated by assigning the next state of each transition randomly. If the FA generated in this way does not have a synchronizing sequence, then it is discarded. Otherwise, it is included in the set of FAs used in our experiments. We generated 100 random FAs this way for each number of states we used in the experiments (except for the biggest set of tests with 50 states and 46 input symbols, where we use only 50 FAs to speed up the experiments).
The implementation of the brute–force algorithm in the tool COMPAS [21] is used. The brute–force algorithm could be used for FAs with up to 27 states. Beyond this number of states, COMPAS could not complete the computation due to memory restrictions.
We implemented tools that create ASP and SAT formulations from a given FA and an integer constant as explained in Section 2, Section 3, and also the SAT formulation given in [16] for FAs with two inputs only.
In the results given below, the formulations , , , and refer to the ASP formulations given in Section 2. and refer to the SAT formulations given in [16] and Section 3, respectively. BF refers to the brute–force algorithm.
Note that the ASP formulations and report the length of a shortest synchronizing sequence, provided that the constant given is not smaller than the length of a shortest synchronizing sequence. When is not big enough, another experiment is performed by doubling the value of . We report only the results from successful and experiments, where a sufficiently large is given. An experimental study is presented in [16] where the length of the shortest synchronizing sequence is reported to be around on the average for an state automaton with two input symbols. We therefore initially take the value of as .
On the other hand, the ASP formulations and , and also the SAT formulations and , only report if a synchronizing sequence of length exists or not. Therefore, one has to try several values to find the length of the shortest synchronizing sequence using these formulations. In our experiments with these formulations, we find the length of a shortest synchronizing sequence by applying a binary search on the value of , by using a script that invokes the ASP solver for each attempt on a possible value of separately. We similarly take the initial value of to be as explained above. The time reported is the total time taken by all the attempts until the length of a shortest synchronizing sequence is found. The memory reported is the average memory usage in these attempts.
The experiments are carried out using MiniSat 2.2.0 [22] and Clingo 3.0.3 [23] running on Ubuntu Linux where the hardware is a 2.4Ghz Intel Corei3 machine.
In Table 1 and Table 2, the time and the memory performance of the formulations , , , and the brute–force algorithm are given. We could not get a report on the memory usage of COMPAS for the brute–force algorithm, hence no data is given for the brute–force algorithm in Table 2. In this set of experiments, the number of states ranges between 5 and 27, and the number of input symbols is fixed to 2.
BF  

5  0  0  0  0  7  0 
10  2  2  2  11  10  0 
15  1  2  2  5  10  0 
20  4  6  5  8  12  4 
25  6  12  7  14  13  73 
26  7  11  8  15  14  145 
27  9  12  8  14  15  289 
5  7750  7731  7622  7620  7677 
10  8169  7278  8154  8160  7983 
15  6284  6566  6465  6300  7847 
20  6909  6911  6943  6947  7810 
25  6769  6775  6937  6779  8066 
26  7151  6798  7136  6822  8213 
27  7123  7106  6744  7119  8113 
In Table 3 and Table 4, the time and the memory performance of the formulations , , and are given on FAs with the number of states and the number of inputs .
30  2  4  17  4  18  49 
30  4  66  80  45  57  101 
30  6  208  405  160  231  490 
40  2  33  45  71  122  222 
40  4  348  380  244  311  472 
40  6  1158  1400  707  980  2133 
50  2  93  120  117  146  430 
50  4  902  1101  835  833  2975 
50  6  3205  4010  2705  3032  7492 
30  2  6063  7143  4973  6140  42764 
30  4  7309  7438  5278  7457  49681 
30  6  7735  7621  7496  10457  52250 
40  2  6709  6029  5616  7448  67362 
40  4  7050  7073  7880  8550  78697 
40  6  7764  8024  7983  10234  84671 
50  2  7222  8336  8965  16072  86453 
50  4  8438  9056  9931  12843  85157 
50  6  8773  9228  10729  14092  93118 
Table 1 shows that the brute–force approach uses much more time than the other approaches, especially as the size of the FA gets bigger. Therefore, after a certain threshold size, the brute–force approach is not an alternative.
By investigating the results given in Table 1 and Table 3, one can see that the ASP formulation approach of and perform better than and , in general. This may be due to that the number of ground instances of (4) and (5) is smaller than that of (6) and (7). However, after intelligent grounding of Clingo, the program sizes of and become comparable. On the other hand, we have observed that leads to more backtracking and restarts compared to . For example, for an instance of 50 states and 2 input symbols, leads to 82878 choices and no restarts, whereas leads to 137276 choices and 4 restarts. This may be due to that, in with respect to (4) and (5) , once a sink node is selected, for every state, existence of a path of a fixed length is checked; on the other hand, in with respect to (6) and (7), for every state, existence of two paths of the same length is checked, which may intuitively lead to more backtracking and restarts. On the other hand, the memory performances of all ASP approaches are similar, as displayed by Table 2 and Table 4.
As for the comparison of the ASP and SAT approaches, one can see that the ASP approaches are both faster and uses less memory than the SAT approach, in general. However, the ASP approach seems to have a faster increase in the running time compared to the SAT approach. This trend needs to be confirmed by further experiments.
We also experimented with finite state automata from MCNC’91 benchmarks [24]. We used only those finite state machine examples in this benchmark set that correspond to completely specified finite state automata. The results of these experiments are given in Table 5 for the time comparison. We obtained similar results to what we have observed in our experiments on random finite state automata. The time performance of the ASP approaches are better than the SAT approach in these experiments as well. We note that the benchmark example “dk16”, which is also the automaton having the largest number of states, has the longest running time among the automata in the benchmark set. However, the running time does not depend only on the number of states. The number of input symbols and the length of the shortest synchronizing sequence would also have an effect. For the comparison of the memory used for these examples, all ASP approaches used around 6 MBytes of memory, whereas the SAT approach used minimum 6 MBytes and maximum 38 MBytes memory for these experiments.
Name  

bbtas  6  4  15  18  10  14  52 
beecount  7  8  18  18  10  9  89 
dk14  7  8  18  20  15  17  62 
dk15  4  8  13  14  7  7  20 
dk17  8  4  27  26  8  8  69 
dk27  7  2  22  21  6  6  45 
dk512  15  2  33  27  11  12  278 
dk16  27  4  191  231  132  127  21253 
lion9  9  4  91  138  36  137  449 
MC  4  8  18  18  7  7  53 
5 Conclusion and Future Work
In this paper, the problem of finding a shortest synchronizing sequence for a FA is formulated in ASP. Four different ASP formulations are given. Also an extension of the SAT formulation of the same problem given in [16] is suggested.
The performance of these formulations are compared by an experimental evaluation. The ASP and SAT formulations are shown to scale better than the brute–force approach. The experiments indicate that the ASP formulations perform better than the SAT approach. However this needs to be further investigated with an extended set of experiments.
Based on the encouraging results obtained from this work, using ASP to compute some other special sequences used in finite state machine based testing can be considered as a future research direction. For example checking the existence of, and computing a Preset Distinguishing Sequence is a PSPACE–hard problem [1]. Although checking the existence and computing an Adaptive Distinguishing Sequence [1] can be performed in polynomial time, generating a minimal Adaptive Distinguishing Sequence is an NP–hard problem. These hard problems can be addressed by using ASP.
References
 [1] Lee, D., Yannakakis, M.: Testing finitestate machines: State identification and verification. IEEE Trans. Comput. 43(3) (March 1994) 306–320
 [2] Kohavi, Z., Jha, N.K.: Switching and Finite Automata Theory. Cambridge University Press (2010)
 [3] Natarajan, B.K.: An algorithmic approach to the automated design of parts orienters. In: FOCS, IEEE Computer Society (1986) 132–142
 [4] Eppstein, D.: Reset sequences for monotonic automata. SIAM J. Comput. 19(3) (1990) 500–510
 [5] Ananichev, D.S., Volkov, M.V.: Synchronizing monotonic automata. Theor. Comput. Sci. 327(3) (2004) 225–239
 [6] Trahtman, A.: Some results of implemented algorithms of synchronization. In: 10th Journees Montoises d’Inform., Liege, Belgium (2004)
 [7] Roman, A.: Synchronizing finite automata with short reset words. Applied Mathematics and Computation 209(1) (2009) 125–136
 [8] Kudlacik, R., Roman, A., Wagner, H.: Effective synchronizing algorithms. Expert Systems with Applications 39(14) (2012) 11746–11757
 [9] Trahtman, A.N.: Modifying the upper bound on the length of minimal synchronizing word. In Owe, O., Steffen, M., Telle, J.A., eds.: FCT. Volume 6914 of Lecture Notes in Computer Science., Springer (2011) 173–180
 [10] Černý, J.: A remark on homogeneous experiments with finite automata. Mat.Fyz. Časopis Sloven. Akad. Vied 14 (1964) 208–216
 [11] Černý, J., Pirická, A., Rosenauerová, B.: On directable automata. Kybernetika 07(4) (1971) (289)–298
 [12] Kari, J.: Synchronizing finite automata on eulerian digraphs. Theor. Comput. Sci. 295 (2003) 223–232
 [13] Ananichev, D.S., Volkov, M.V.: Synchronizing generalized monotonic automata. Theor. Comput. Sci. 330(1) (2005) 3–13
 [14] Trakhtman, A.: The cernú conjecture for aperiodic automata. Discrete Mathematics & Theoretical Computer Science 9(2) (2007)
 [15] Volkov, M.V.: Synchronizing automata preserving a chain of partial orders. Theor. Comput. Sci. 410(37) (2009) 3513–3519
 [16] Skvortsov, E., Tipikin, E.: Experimental study of the shortest reset word of random automata. In: Proceedings of the 16th international conference on Implementation and application of automata. CIAA’11, Berlin, Heidelberg, SpringerVerlag (2011) 290–298
 [17] Lifschitz, V.: What is answer set programming? In: Proc. of AAAI, MIT Press (2008) 1594–1597
 [18] Brewka, G., Eiter, T., Truszczynski, M.: Answer set programming at a glance. Commun. ACM 54(12) (2011) 92–103

[19]
Gelfond, M., Lifschitz, V.:
Classical negation in logic programs and disjunctive databases.
New Generation Computing 9 (1991) 365–385  [20] Gebser, M., Kaufmann, B., Neumann, A., Schaub, T.: clasp: A conflictdriven answer set solver. In: Proc. of LPNMR. (2007) 260–265
 [21] Chmiel, K., Roman, A.: Compas: a computing package for synchronization. In: Proceedings of the 15th international conference on Implementation and application of automata. CIAA’10, Berlin, Heidelberg, SpringerVerlag (2011) 79–86
 [22] Eén, N., Sörensson, N.: An extensible satsolver. In: Proc. of SAT. (2003) 502–518
 [23] Gebser, M., Kaminski, R., Kaufmann, B., Ostrowski, M., Schaub, T., Schneider, M.: Potassco: The Potsdam answer set solving collection. AI Communications 24(2) (2011) 107–124
 [24] Yang, S.: Logic synthesis and optimization benchmarks user guide version 3.0 (1991)
Comments
There are no comments yet.