Union
Description
This operation computes the union (
sum) of two FSTs. If
A
transduces string
x
to
y
with weight
a
and
B
transduces string
w
to
v
with weight
b
, then their union transduces
x
to
y
with weight
a
and
w
to
v
with weight
b
.
Usage
template <class Arc>
void Union(MutableFst<Arc> *fst1, const Fst<Arc> &fst2);
|
|
template <class Arc> UnionFst<Arc>::
UnionFst(const Fst<Arc> &fst1, const Fst<Arc> &fst2);
|
|
fstunion a.fst b.fst out.fst |
|
Examples
A
:
B
:
A ∪ B
:
Union(&A, B);
UnionFst<Arc>(A, B);
fstunion a.fst b.fst out.fst
Complexity
Union
:
- Time: O(V2 + E2)
- Space: O(V2 + E2)
where
Vi = # of states and
Ei = # of arcs of the
ith FST.
UnionFst:
- Time: O(v1 + e1 + v2 + e2)
- Space: O(v1 + v2)
where
vi = # of states visited and
ei = # of arcs visited of the
ith FST.
Constant time and space to visit an input state or arc is assumed and exclusive of
caching.
--
MichaelRiley - 1 Jul 2007