Developments in Language Theory

Volume 5257 of the series Lecture Notes in Computer Science pp 108-120

General Algorithms for Testing the Ambiguity of Finite Automata

  • Cyril AllauzenAffiliated withGoogle Research
  • , Mehryar MohriAffiliated withGoogle ResearchCourant Institute of Mathematical Sciences
  • , Ashish RastogiAffiliated withGoogle Research

* Final gross prices may vary according to local VAT.

Get Access


This paper presents efficient algorithms for testing the finite, polynomial, and exponential ambiguity of finite automata with ε-transitions. It gives an algorithm for testing the exponential ambiguity of an automaton A in time \(O(|A|_E^2)\), and finite or polynomial ambiguity in time \(O(|A|_E^3)\), where |A| E denotes the number of transitions of A. These complexities significantly improve over the previous best complexities given for the same problem. Furthermore, the algorithms presented are simple and based on a general algorithm for the composition or intersection of automata. We also give an algorithm to determine in time \(O(|A|_E^3)\) the degree of polynomial ambiguity of a polynomially ambiguous automaton A. Finally, we present an application of our algorithms to an approximate computation of the entropy of a probabilistic automaton.