Leaf language is a method in computational complexity theory for characterizing a complexity class by formalizing what it means for a machine to "accept" an input.[1]

Complexity classes are typically defined in terms of a polynomial-time nondeterministic Turing machine (NTM). These machines possess multiple computational paths, and the outcomes of these paths determine whether an input is accepted or rejected.[1] Traditionally, an NTM accepts an input if at least one path accepts it, and rejects it only if all paths reject it. In contrast, a co-Nondeterministic Turing Machine (co-NTM) accepts an input only if all paths accept it, and rejects it if any path rejects it. Moreover, more complex notions of acceptance can also be defined.

To formalize the characterization of a complexity class, one can examine the formal language associated with each acceptance condition. This involves assuming an ordered tree, and reading the accepted/rejected strings from the leaves of the computation tree. NTMs will accept if the leaf string is in the language 0*1{0, 1}*, and will reject if the leaf string is in the language 0*. [2]

References

edit
  1. ^ a b Wagner, Klaus W. (2005). "Leaf Language Classes". In Margenstern, Maurice (ed.). Machines, Computations, and Universality. Lecture Notes in Computer Science. Vol. 3354. Berlin, Heidelberg: Springer. pp. 60–81. doi:10.1007/978-3-540-31834-7_5. ISBN 978-3-540-31834-7.
  2. ^ Papadimitriou, Christos H. (1994). Computational complexity. Reading (Mass): Addison-Wesley. ISBN 978-0-201-53082-7.