Title: CSE 3813 Introduction to Formal Languages and Automata
1CSE 3813Introduction to Formal Languages and
Automata
- Chapter 13
- Other Models of Computation
- These class notes are based on material from our
textbook, An Introduction to Formal Languages and
Automata, 4th ed., by Peter Linz, published by
Jones and Bartlett Publishers, Inc., Sudbury, MA,
2006. They are intended for classroom use only
and are not a substitute for reading the textbook.
2Introduction
- There are many other models of computation that
have been devised, mostly by mathematicians. - All of these have turned out to be equivalent to
Turing machines in terms of their power to solve
problems (or compute functions, or accept
languages).
3Introduction
- They were primarily in response to Goedels proof
that any interesting consistent system must be
incomplete that is, it must contain some
statements that are true but unprovable within
the system.
4Churchs Thesis
- All possible models of computation, if
sufficiently broad, must be equivalent. - We believe this to be true, although it hasnt
been proven.
5Recursive functions
- Assume that all functions have 1 or 2 variables,
with a domain of I (the set of all non-negative
integers) or I ? I, and a range of I. - Then we can describe three simple functions
- 1. zero function z(x) 0, for all x ? I
- 2. successor function s(x) x 1
- 3. projector functions p(x1, x2) xk
6Recursive functions
- We can combine these simple functions to make
more complicated functions by these two methods
(assuming h, g1, and g2 are already defined - 1. Composition
- f(x, y) h(g1 (x, y), g2 (x, y))
- 2. Primitive recursion
- f (x, 0) g1(x)
- f(x, y 1) h(g2(x, y), f(x, y))
7Example of Recursive Functions
- Addition of integers x and y can be implemented
with the function add(x, y) defined by - add(x, 0) x,
- add(x, y 1) add(x, y) 1
- To add 3 and 2, we apply these rules
successively - add(3, 2) add(3, 1) 1
- (add(3, 0) 1) 1
- (3 1) 1
- 4 1 5
8Example of Recursive Functions
- We could then use this to define multiplication
by - mult(x, 0) 0,
- mult(x, y 1) add(x, mult(x, y))
9Primitive recursive functions
Definition A function is called primitive
recursive iff it can be constructed from the
basic functions z, s, and pk by successive
composition and primitive recursion. Primitive
recursive functions are all total functions.
10Primitive recursive functions
Theorem Not all functions are primitive
recursive. (Proof by diagonalization.) Theorem
Not all computable functions are primitive
recursive. (Proof also by diagonalization.)
11?-recursive functions
The ? or minimization operator can be defined
as ?y(g(x, y)) smallest y such that g(x, y)
0 Definition a function is said to be
?-recursive if it can be constructed from the
basic functions by a sequence of applications of
the ?-operator and the operations of composition
and primitive recursion.
12?-recursive functions
Theorem A function is a ?-recursive function
iff it is computable. Conclusion We now have
another way of defining computable that is not
in terms of a Turing machine (but is equivalent
to it, in the sense that both methods encompass
the same class of functions).
13Post systems
- Emil Post devised the idea of a Post system,
which is very similar to a grammar. - A Post system, ?, is defined by
- ? (C, V, A, P), where
- C is a finite set of constants, consisting of
two disjoint sets CN, called the nonterminal
constants, and CT, the set of terminal constants - V is a finite set of variables
- A is a finite set from C called the axioms
- P is a finite set of productions
14Post systems
Production rules in a Post system must satisfy a
certain set of restrictions, just as grammars
do. It turns out that Theorem A language is
recursively enumerable iff there exists some Post
system that generates it.
15Post machines
Post also devised an automaton similar to the
Turing machine (in the same year Turing
introduced his machine). The Post machine looks
sort of like a PDA, but with a queue (FIFO)
instead of a stack (LIFO) as auxiliary memory.
Theorem A Post machine is equivalent to a
Turing machine in computational power.
16Rewriting systems
Grammars, Post systems, and even Turing machines
can be looked at as types of rewriting systems.
There are a number of other rewriting systems
that are comparable in power to Turing machines.
17Matrix grammars
Matrix grammars are similar to phrase-structure
grammars with respect to how their productions
can be applied. Actually, a phrase-structure
grammar is a type of matrix grammar in which each
production rule contains exactly one production.
Matrix grammars and phrase structure grammars
have the same power as models of computation, but
often it takes fewer rules to describe a language
using matrix grammars.
18Markov algorithms
Markov algorithms are rewriting systems whose
productions are ordered, so that productions, if
they apply to a sentential form, must be used in
a certain sequence. They are equivalent to
phrase-structure grammars in computational
power. Theorem a language is recursively
enumerable iff there exists a Markov algorithm
for it.
19L-systems
Lindemeyer systems, or L-systems, are basically
parallel rewriting systems. Although the
original L-systems were somewhat weak, extended
L-systems turn out to be equivalent to
phrase-structure grammars in computational power.
20Conclusion
As we have seen, all proposed general algorithmic
models of computation have no more power than a
standard Turing machine. Since there are limits
on what a TM can compute, these limits apply, so
far as we know, to all algorithmic models of
computation.