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);
 
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 History Action Size Date Who Comment
JPEGjpg synchronize1.jpg r3 r2 r1 manage 7.6 K 2007-06-26 - 17:40 CyrilAllauzen Input transducer for synchronize example
JPEGjpg synchronize2.jpg r3 r2 r1 manage 12.3 K 2007-06-26 - 17:34 CyrilAllauzen Output transducer for synchronize example
Edit | Attach | Watch | Print version | History: r9 < r8 < r7 < r6 < r5 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r9 - 2018-04-27 - MichaelRiley
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback