File Information

File: 05-lr/acl_arc_1_sum/cleansed_text/xml_by_section/intro/03/n03-1009_intro.xml

Size: 4,457 bytes

Last Modified: 2025-10-06 14:01:41

<?xml version="1.0" standalone="yes"?>
<Paper uid="N03-1009">
  <Title>Simpler and More General Minimization for Weighted Finite-State Automata</Title>
  <Section position="3" start_page="0" end_page="5" type="intro">
    <SectionTitle>
2 Weights and Minimization
</SectionTitle>
    <Paragraph position="0"> We introduce weighted automata by example. The transducer below describes a partial function from strings to strings. It maps aab mapsto- xyz and bab mapsto- wwyz. Why? Since the transducer is deterministic, each input (such as aab) is accepted along at most one path; the corresponding output (such as xyz) is found by concatenating the output strings found along the path. e denotes the empty string.</Paragraph>
    <Paragraph position="1">  b:z b: e d and s standardly denote the automaton's transition and output functions: d(3,a) = 2 is the state reached by the  a arc from state 3, and s(3,a) = wwy is that arc's output. In an automaton whose outputs (weights) were numbers rather than strings like wwy, concatenating them would not be sensible; instead we would want to add or multiply the weights along the path. In general [?] denotes the chosen operation for combining weights along a path. The [?] operation need not be commutative--indeed concatenation is not--but it must be associative. K must contain (necessarily unique) weights, denoted 1 and 0, such that 1[?]k = k [?]1 = k and 0[?]k = k [?]0 = 0 for all k [?] K. An unaccepted input (e.g., aba) is assigned the output 0. When [?] is string concatenation, 1 = e, and 0 is a special object [?] defined to satisfy the axioms. If an input such as aa were accepted along multiple paths, we would have to use another operation [?] to combine those paths' weights into a single output for aa. But that cannot happen with the deterministic automata treated by this paper. So we omit discussion of the properties that [?] should have, and do not trouble to spell out its definition for the semirings (K,[?],[?]) discussed in this paper.1 We are only concerned with the monoid (K,[?]). The following automaton is equivalent to the previous one since it computes the same function:  b: e b: e However, it distributes weights differently along the arcs, and states 1 and 3 can now obviously be merged (as can 2 and 4, yielding the minimal equivalent automaton). Formally we know that states 1 and 3 are equivalent because F1 = F3, where Fq denotes the suffix function of state q--the function defined by the automaton if the start state is taken to be q rather than 0. (Thus, F3(ab) = yz.) Equivalent states can safely be merged, by deleting one and rerouting its incoming arcs to the other.</Paragraph>
    <Paragraph position="2"> We will follow Mohri's minimization strategy: 1. Turn the first automaton above into the second. This operation is called pushing (or quasi-determinization). Here, for instance, it &amp;quot;pushed ww back&amp;quot; through state 3. 2. Merge equivalent states of the second automaton, by applying ordinary unweighted DFA minimization (Aho et al., 1974, section 4.13) as if each weighted arc label such as a:yz were simply a letter in a large alphabet.</Paragraph>
    <Paragraph position="3"> 3. Trim the result, removing useless states and arcs that are not on any accepting path (defined as a path whose weight is non-0 because it has no missing arcs and its last state is final).</Paragraph>
    <Paragraph position="4"> 1Though appropriate definitions do exist for our examples. For example, take the [?] of two strings to be the shorter of the two, breaking ties by a lexicographic ordering.</Paragraph>
    <Paragraph position="5"> Mohri (2000) proves that this technique finds the minimal automaton, which he shows to be unique up to placement of weights along paths.2 We will only have to modify step 1, generalizing pushing to other semirings. Pushing makes heavy use of left quotients: we adopt the notation k\m for an element of K such that k[?](k\m) = m. This differs from the notation k[?]1[?]m (in which k[?]1 denotes an actual element of K) because k\m need not exist nor be unique. For example, ww\wwzzz = zzz (a fact used above) but wwy\wwzzz does not exist since wwzzz does not begin with wwy.</Paragraph>
    <Paragraph position="6"> If F is a function, a is a string, and k is a weight, we use some natural notation for functions related to F:</Paragraph>
    <Paragraph position="8"> In effect, k\F and a[?]1F drop output and input prefixes.</Paragraph>
  </Section>
class="xml-element"></Paper>
Download Original XML