extending the length of the synchronizing sequences
much.
The remaining part of the paper is organized as
follows. In Section 2, we introduce the notation and
briefly give the required background. In Section 3,
we introduce our approach. In Section 4, we talk
about the synchronizing heuristics that we have
worked on and their integration to our approach. In
Section 5, we compare the proposed approach with
the traditional one that performs synchronization
heuristics on full automata. In Section 6, we
conclude the paper and provide some future
directions for our work.
2 BACKGROUND AND
NOTATION
A (deterministic) automaton is defined by a tuple A
= (S, Σ, D, δ) where S is a finite set of n states, Σ is a
finite alphabet consisting of p input letters (or
simply letters). D S × Σ is the called the domain
and δ: D → S is a transition function. When D = S ×
Σ, then A is called complete, otherwise A is called
partial. Below, we consider only complete automata,
unless otherwise stated.
An element of the set Σ
*
is called a sequence. For
a sequence w Σ
*
, |w| denotes the length of w, and ε
is the empty sequence of length 0. For a complete
automaton, we extend the transition function δ to a
set of states and to a sequence in the usual way. For
a state s S, we have δ(s, ε) = s, and for a sequence
w Σ
*
and a letter x Σ, we have δ(s, xw) = δ(δ(s,
x), w). For a set of states C S, we have δ(C, w) =
{δ(s, w)|s C}.
For a set of states C S, let C
2
= {{s, s'}| s,
s'C} be the set of all multisets with cardinality 2
with elements from C, i.e. C
2
is the set of all subsets
of C with cardinality 2, where repetition is allowed.
An element {s, s'} C
2
is called a pair.
Furthermore, it is called a singleton pair (or an s–
pair, or simply a singleton) if s = s', otherwise it is
called a different pair (or a d–pair). The set of s–
pairs and d–pairs in C
2
are denoted by C
2
s
and C
2
d
respectively. A sequence w is said to be a merging
sequence for a pair {s, s'} S
2
if δ({s,s'},w) is
singleton. Note that, for an s-pair {s,s}, every
sequence (including ε) is a merging sequence. A
sequence w is called an S'-synchronizing sequence
for an automaton A = (S, Σ, SΣ, δ) and a subset of
states S' S if δ(S', w) is singleton. When S' = S, w
is simply called a synchronizing sequence for A. An
automaton A is called S'-synchronizing if there exists
an S'-synchronizing sequence for A. An automaton
A is simply called synchronizing if there exists a
synchronizing sequence for A.
In this paper, we only consider synchronizing
automata. As shown by Eppstein (1990), deciding if
an automaton is synchronizing can be performed in
time O(pn
2
) by checking if there exists a merging
sequence for {s,s'}, for all {s,s'} S
2
.
We write δ
−1
(s, x) to denote the set of states with
a transition to state s with letter x, i.e. δ
−1
(s, x) = {s'
S | δ(s',x) = s}. We also define δ
−1
({s,s'}, x) =
{{p,p'} | p δ
−1
(s, x) p' δ
−1
(s', x)}.
Given a partial automaton, we consider the
completion of this automaton by introducing a new
state, and adding the missing transitions of states to
this new state. Formally for a partial automaton
A=(S, Σ, D, δ) such that D S×Σ, we define the
completion of A as A' = (S {*}, Σ, S×Σ, δ'), where
(i) the star state * is a new state which does not exist
in S, (ii) (s, x) D, δ'(s, x) = δ(s, x), (iii) (s, x)
D, δ'(s, x) = *, (iv) x Σ, δ'(*, x) = *.
An automaton A = (S, Σ, S×Σ, δ) is said to be
strongly connected if for every pair of states s, s'
S, there exists a sequence w Σ
*
such that δ(s, w)=
s'. Given an automaton A= (S, Σ, S×Σ, δ) and another
automaton B = (S', Σ, D, δ́), B is said to be a sub-
automaton of A if (i) S' S, (ii) D = {(s,x)S' ×Σ |
Ǝs' S' s.t. δ(s,x)= s' }, (iii) (s,x) D, δ́(s,x) =
δ(s,x). Intuitively, the states of B consist of a subset
of states of A. Every transition in A from a state in B
to a state in B is preserved, and all the other
transitions are deleted.
A strongly connected component (SCC) of a
given automaton A = (S, Σ, S×Σ, δ), is a sub-
automaton B = (Ś, Σ, D, δ́) of A such that, B is
strongly connected, and there does not exist another
strongly connected sub-automaton C of A, where B
is a sub-automaton of C. When one considers an
automaton A as a graph (by representing the states of
A as the nodes, and the transition between the states
as the edges of the graph), B simply corresponds to a
strongly connected component of the graph of A.
For a set of SCCs {A
1
, A
2
, …, A
k
}, where A
i
= (S
i
,
Σ, D
i
, δ
i
), 1 ≤ i ≤ k, we have S
i
∩ S
j
= when i j,
and S
1
S
2
… S
k
= S. Please note here that k = 1
if and only if A is strongly connected.
An SCC A
i
= (S
i
, Σ, D
i
, δ
i
) is called a sink
component if D
i
= S
i
×Σ. In other words, for a sink
component, all the transitions of the states in S
i
in A
are preserved in A
i
. Therefore, if A
i
= (S
i
, Σ, D
i
, δ
i
) is
not a sink component, then some transitions of some
states will be missing. For this reason, A
i
is a
complete automaton if and only if A
i
is a sink
component.
Using Structure of Automata for Faster Synchronizing Heuristics
545