Synchronize

Description

This operation synchronizes a transducer. The result will be an equivalent FST that has the property that during the traversal of a path, the delay is either zero or strictly increasing, where the delay is the difference between the number of non-epsilon output labels and input labels along the path.

For the algorithm to terminate, the input transducer must have bounded delay, i.e., the delay of every cycle must be zero.

Usage

template <class Arc>
void Synchronize(const Fst<Arc> &ifst, MutableFst<Arc> *ofst);
doc
template <class Arc> SynchronizeFst<Arc>::
SynchronizeFst(const Fst<Arc>& fst);
doc
fstsynchronize a.fst out.fst
 

Examples

A:

synchronize1.jpg

Synchronize of A:

synchronize2.jpg

Synchronize(A, &B);
SynchronizeFst<Arc>(A);
fstsynchronize a.fst out.fst

Complexity

Synchronize:
  • A has bounded delay: Time and Space complexity is exponential
  • A does not have bounded delay: does not terminate
SynchronizeFst:
  • A has bounded delay: Time and Space complexity is exponential
  • A does not have bounded delay: does not terminate

References

-- CyrilAllauzen - 22 Jun 2007

Topic attachments
I Attachment Action Size Date Who Comment
jpgjpg synchronize1.jpg manage 7.6 K 26 Jun 2007 - 17:40 CyrilAllauzen Input transducer for synchronize example
jpgjpg synchronize2.jpg manage 12.3 K 26 Jun 2007 - 17:34 CyrilAllauzen Output transducer for synchronize example
Topic revision: r8 - 30 Apr 2009 - 19:29:04 - CyrilAllauzen
 
This site is powered by the TWiki collaboration platformCopyright &© by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback