Hardware Reference
In-Depth Information
•
Finally, in the complement of this product, which is the maximum solution,
the set of accepti
ng
states are
DCA
plus all the subset states which are left in
P
.
u
;
v
;ns/
after
Q
has deleted all those that lead to
DCN
.
Thus all non-accepting subset states are mapped into
DCN
. As mentioned, this
can be done because we will make the answer
prefix-closed
, a requirement for
an FSM. (Thus, the
X
computed is the most general
prefix-closed
solution.) This
requirement increases efficiency, because during the subset construction, as soon
as a state of type
.a; DC
1
/
is encountered in a subset state,
.cs/
, this state can be
replaced with
DCN
. This efficiently reduces the number of subset states that emanate
from such
.cs/
. Further, those states that are trimmed immediately by this need not
be explored for reachability from them. This leads to a substantial trimming during
the subset construction. This trimming can be performed because
S
is prefix-closed,
and we require that
X
be prefix-closed also.
6
Similarly, the existence of the single state,
DCA
, derives from the fact that
F
is prefix-closed. This allows for deferring the completion of
F
until the subset
construction.
Finally, to make
X
into an FSM automaton, it is made input-progressive. This
step is the same for both the monolithic and partitioned case and is not detailed here.
Note that in the partitioned flow, neither
S
nor
F
is made complete. In effect
such completion is deferred to the all-inclusive determinization step. The validity of
this is substantiated by the next section, which proves that the determinization and
completion operations commute and observes that completion also commutes with
complementation and product.
7.3
Completion and Determinization Commute
Theorem 7.2.
To determinize a finite automaton
A
, the following two procedures
are equivalent:
1.
Complete(Determinize
(
A
), non-accepting)
2.
Determinize(Complete
(
A
, non-accepting))
Proof.
We show that these two procedures yield the same result by comparing
subset constructions without and with pre-completion. Let
DC
denote the added
non-accepting state. Recall that
DC
has a universal self-loop. It is clear that if
fs
1
;:::;s
k
g
is a subset state in the automaton constructed by Procedure 1, then
there must exist subset state
fs
1
;:::;s
k
g
and/or
fs
1
;:::;s
k
;DCg
in the automaton
constructed by Procedure 2. Also, if subset state
fs
1
;:::;s
k
g
or
fs
1
;:::;s
k
;DCg
6
While this trimming can be substantial, there is no avoiding that subset construction can
be exponential. However, a common experience among people who have implemented subset
construction, is that it can be surprisingly efficient in practice, with relatively few subset states
reached, sometimes even leading to a reduction in the number of states.
Search WWH ::
Custom Search