Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Computer Education - Thoery of Computation

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 17

Theory of

computation
BACKGROUND

✘ In theoretical computer science and mathematics, the theory


of computation is the branch that deals with what problems
can be solved on a model of computation, using an
algorithm, how efficiently they can be solved or to what
degree (e.g., approximate solutions versus precise ones). The
field is divided into three major branches: automata theory
and formal languages, computability theory, and
computational complexity theory, which are linked by the
question: "What are the fundamental capabilities and
limitations of computers?"
MODEL OF COMPUTATION An artistic
representation of a
Turing machine.
Turing machines are
frequently used as
theoretical models
for computing.
HISTORY

✘ The theory of computation can be considered the creation of


models of all kinds in the field of computer science.
Therefore, mathematics and logic are used. In the last
century it became an independent academic discipline and
was separated from mathematics.

✘ Some pioneers of the theory of computation were Ramon


Llull, Alonzo Church, Kurt Gödel, Alan Turing, Stephen
Kleene, Rózsa Péter, John von Neumann and Claude
Shannon.
HISTORY

✘ The theory of computation can be considered the creation of


models of all kinds in the field of computer science.
Therefore, mathematics and logic are used. In the last
century it became an independent academic discipline and
was separated from mathematics.

✘ Some pioneers of the theory of computation were Ramon


Llull, Alonzo Church, Kurt Gödel, Alan Turing, Stephen
Kleene, Rózsa Péter, John von Neumann and Claude
Shannon.
BRANCHES

Automata theory is the study of abstract


✘ Automata theory machines (or more appropriately, abstract
'mathematical' machines or systems) and
the computational problems that can be
solved using these machines. These
abstract machines are called automata.
Automata comes from the Greek word
(Αυτόματα) which means that something is
doing something by itself. Automata theory
is also closely related to formal language
theory,[5] as the automata are often
classified by the class of formal languages
they are able to recognize. An automaton
can be a finite representation of a formal
language that may be an infinite set.
Automata are used as theoretical models
for computing machines, and are used for
proofs about computability.
BRANCHES

Language theory is a branch of


✘ Formal Language theory mathematics concerned with
describing languages as a set of
operations over an alphabet. It is
closely linked with automata theory,
as automata are used to generate
and recognize formal languages.
There are several classes of formal
languages, each allowing more
complex language specification than
the one before it, i.e. Chomsky
hierarchy,[6] and each
corresponding to a class of automata
which recognizes it. Because
automata are used as models for
computation, formal languages are
the preferred mode of specification
for any problem that must be
computed.
BRANCHES

Computability theory deals


✘ Computability theory
n 2 3 4 5 6 primarily with the question of
7 ... the extent to which a problem is
Σ(n) 4 6 13 4098 ? solvable on a computer. The
> 3.5×1018267 > statement that the halting
1010101018705353 ? problem cannot be solved by a
The Busy Beaver function Σ(n) Turing machine[7] is one of the
grows faster than any computable most important results in
function. computability theory, as it is an
Hence, it is not computable;[1] only example of a concrete problem
few values are known. that is both easy to formulate
and impossible to solve using a
Turing machine. Much of
computability theory builds on
the halting problem result.
BRANCHES

Computational
✘ Computational complexity theory
complexity theory
focuses on classifying
computational
problems according to
their resource usage,
and relating these
classes to each other.
A computational
problem is a task
solved by a computer.
A computation
problem is solvable by
mechanical
application of
mathematical steps,
such as an algorithm.
Michael Sipser (2013). Introduction to the
References
Theory of Computation 3rd. Cengage Learning.
ISBN 978-1-133-18779-0. central areas of the
theory of computation: automata,
computability, and complexity. (Page 1)
Hodges, Andrew (2012). Alan Turing: The
Enigma (The Centenary ed.). Princeton
University Press. ISBN 978-0-691-15564-7.
Rabin, Michael O. (June 2012). Turing,
Church, Gödel, Computability, Complexity and
Randomization: A Personal View.
Donald Monk (1976). Mathematical Logic.
Springer-Verlag. ISBN 9780387901701.
Hopcroft, John E. and Jeffrey D. Ullman
(2006). Introduction to Automata Theory,
Languages, and Computation. 3rd ed. Reading,
MA: Addison-Wesley. ISBN 978-0-321-45536-
9.
Chomsky hierarchy (1956). "Three models for
the description of language". Information
Theory, IRE
MODELS OF COMPUTATION

✘ a formal system in mathematical logic for expressing


computation based on function abstraction and
application using variable binding and substitution. It
is a universal model of computation that can be used
to simulate any Turing machine. It was introduced by Lambda
calculus
the mathematician Alonzo Church in the 1930s as
(also written
part of his research into the foundations of as λ-
mathematics. calculus)
MODELS OF COMPUTATION

✘ a notation to eliminate the need for quantified variables in


mathematical logic. It was introduced by Moses Schönfinkel[1] and
Haskell Curry,[2] and has more recently been used in computer
science as a theoretical model of computation and also as a basis for
the design of functional programming languages. It is based on
combinators which were introduced by Schönfinkel in 1920 with the
idea of providing an analogous way to build up functions—and to Combi
remove any mention of variables—particularly in predicate logic. A
combinator is a higher-order function that uses only function
natory
application and earlier defined combinators to define a result from its logic
arguments.
MODELS OF COMPUTATION

✘ is a partial function from natural numbers to natural numbers that is


"computable" in an intuitive sense – as well as in a formal one. If the
function is total, it is also called a total recursive function
(sometimes shortened to recursive function).[1] In computability
theory, it is shown that the μ-recursive functions are precisely the
functions that can be computed by Turing machines[2][4] (this is one
of the theorems that supports the Church–Turing thesis). The μ- General
recursive functions are closely related to primitive recursive recursive
functions, and their inductive definition (below) builds upon that of
function
the primitive recursive functions. However, not every total recursive
function is a primitive recursive function—the most famous example
is the Ackermann function.
MODELS OF COMPUTATION

✘ is a string rewriting system that uses grammar-like


rules to operate on strings of symbols. Markov
algorithms have been shown to be Turing-complete,
which means that they are suitable as a general model
of computation and can represent any mathematical
expression from its simple notation. Markov Markov
algorithms are named after the Soviet mathematician algorithm
Andrey Markov, Jr.
MODELS OF COMPUTATION

✘ The register machine gets its name from


its use of one or more "registers". In
contrast to the tape and head used by a
Turing machine, the model uses
Register
multiple, uniquely addressed registers, machine
each of which holds a single positive
integer.
“Quotations are
commonly printed as
a means of
inspiration and to
invoke philosophical
thoughts from the
reader”.
THANK YOU!!!!

You might also like