Vous êtes sur la page 1sur 3

Topic: - Equivalence of Turing Machine & Two stack PDA

Turing machine
A Turing machine is a theoretical device that manipulates symbols on a strip of tape
according to a table of rules. Despite its simplicity, a Turing machine can be adapted to
simulate the logic of any computer algorithm, and is particularly useful in explaining the
functions of a CPU inside a computer. The Turing machine is not intended as a practical
computing technology, but rather as a thought experiment representing a computing
machine. Turing machines help computer scientists understand the limits of mechanical
computation. A Turing machine that is able to simulate any other Turing machine is
called a universal Turing machine (UTM, or simply a universal machine). A more
mathematically-oriented definition with a similar "universal" nature was introduced
by Alonzo Church, whose work on lambda calculus intertwined with Turing's in a formal
theory of computation known as the Church–Turing thesis. The thesis states that Turing
machines indeed capture the informal notion of effective method
in logic andmathematics, and provide a precise definition of an algorithm or 'mechanical
procedure'. Studying their abstract properties yields many insights into computer
science and complexity theory.[3]
Formal definition

Hopcroft and Ullman (1979, p. 148) formally define a (one-tape) Turing machine as a 7-
tuple where

 Q is a finite, non-empty set of states


 Γ is a finite, non-empty set of the tape alphabet/symbols
 is the blank symbol (the only symbol allowed to occur on the tape
infinitely often at any step during the computation)
 is the set of input symbols
 is the initial state
 is the set of final or accepting states.
 is a partial function called
the transition function, where L is left shift, R is right shift. (A relatively uncommon
variant allows "no shift", say N, as a third element of the latter set.)

Anything that operates according to these specifications is a Turing machine.


Examples of Turing machines

To see examples of the following models, see Turing machine examples:

1. Turing's very first machine


2. Copy routine
3. 3-state busy beaver

Pushdown automaton
In automata theory, a pushdown automaton (PDA) is a finite automaton that can make
use of a stack containing data.
Operation

Pushdown automata differ from finite state machines in two ways:

1. They can use the top of the stack to decide which transition to take.
2. They can manipulate the stack as part of performing a transition.

Pushdown automata choose a transition by indexing a table by input signal, current state,
and the symbol at the top of the stack. This means that those three parameters completely
determine the transition path that is chosen. Finite state machines just look at the input
signal and the current state: they have no stack to work with. Pushdown automata add the
stack as a parameter for choice. Pushdown automata can also manipulate the stack, as
part of performing a transition. Finite state machines choose a new state, the result of
following the transition. The manipulation can be to push a particular symbol to the top
of the stack, or to pop off the top of the stack. In general pushdown automata may have
several computations on a given input string. Thus we have a model which is technically
known as a "nondeterministic pushdown automaton" (NPDA). Nondeterministic means
that there may be more than just one transition available to follow, given an input signal,
state, and stack symbol. If we allow a finite automaton access to two stacks instead of just
one, we obtain a more powerful device, equivalent in power to a Turing machine.
A linear bounded automaton is a device which is more powerful than a pushdown
automaton but less so than a Turing machine.

Pushdown automata are equivalent to context-free grammars: for every context-free


grammar, there exists a pushdown automaton such that the language generated by the
grammar is identical with the language generated by the automaton, which is easy to
prove. The reverse is true, though harder to prove: for every pushdown automaton there
exists a context-free grammar such that the language generated by the automaton is
identical with the language generated by the grammar.
[edit]Formal Definition

A PDA is formally defined as a 7-tuple:

where

 is a finite set of states


 is a finite set which is called the input alphabet
 is a finite set which is called the stack alphabet
 is a mapping of to finite subsets of ,
the transition relation, where Γ * means "a finite (maybe empty) list of element of Γ"
and denotes the empty string.
 is the start state
 is the initial stack symbol
 is the set of accepting states

An element is a transition of M. It has the intended meaning


that M, in state , with on the input and with as topmost
stack symbol, may read a, change the state to q, pop A, replacing it by pushing .
The letter ε(epsilon) denotes the empty string and the component of the
transition relation is used to formalize that the PDA can either read a letter from the
input, or proceed leaving the input untouched.

Vous aimerez peut-être aussi