Jump to content

Enumerator (computer science)

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by 103.94.84.62 (talk) at 05:30, 26 August 2020 (I've added the equivalence of enumerable languages and Turing Recognizable Languages.). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

An enumerator is a Turing machine that lists, possibly with repetitions, elements of some set S, which it is said to enumerate. A set enumerated by some enumerator is said to be recursively enumerable.

Formal definition

An enumerator is usually represented as a 2-tape Turing machine. One working tape, and one print tape. It can be defined by a 7-tuple, following the notation of a Turing machine: where

  • is a finite, non-empty set of states.
  • is a finite, non-empty set of the output / print alphabet
  • is a finite, non-empty set of the working tape alphabet
  • is the transition function.
  • is the start state
  • is the print state.
  • is the reject state with

Equivalence of Enumerator and Turing Machines

A language over a finite alphabet is Turing Recognizable if and only if it can be enumerated by an enumerator. Sipser, Michael (2012). Introduction to the Theory of Computation - International Edition. ISBN 978-1-133-18781-3.