Automata Theory studies abstract models of computation and machines. These include both machines that are as powerful as real computers as well as simpler machines. The study considers these simpler machines because they make introducing mathematical concepts easier and model useful real-world computations. The field was formed from connections between logic, mathematics, and early computer development. Alan Turing developed the concept of a universal machine and proved some tasks are impossible even for an abstract omnipotent machine, helping establish the foundations of theoretical computer science.
2. Logic:
* Art of reasoning (correctly).
* Ability to argue and convince.
* Logical in accordance with the laws of logic.
Automata: (or Automaton):
* Machine with hidden motive power.
* Person whose action are purely mechanical.
3. Theory:
* General principles of an art or science (as distinct
from its practice)
* Reasoned supposition put forward to explain facts or
events.
4. AUTOMATA THEORY:
* We can define Automata Theory or more specifically the
THEORY OF COMPUTATION as the study of various
abstract models of computation, abstract machines that can
be defined mathematically.
* Some of them are as powerful as real computers, whereas
others can be defined more simply and are less powerful.
* We consider the simpler machines partly because they make
it easier to introduce some of the mathematical formalisms in
our theory, and partly because they have real-world
counterparts and the computations they can perform are
useful in a variety of real-world situations.
5. An Introduction:
* The twentieth century has been filled with the most
incredible shocks and surprises: theory of relativity,
communist revolutions, psychoanalysis, nuclear war,
television, moon walks, genetic engineering, and so on.
* The more powerful of all these above is the advent of
COMPUTER and its development from a mere
calculating device into what seems like a thinking
machine.
* The birth of the computer was not wholly independent
of the other events of this century.
* The history of the computer is a fascinating story (but
not part of this course). For this see IT-Concept-I.
6. An Introduction:
* We are concerned with the theory of computers, which
means that we form several abstract mathematical models
that will describe with varying degrees of accuracy parts of
computers and types of computers and similar machines.
* There are separate courses that deals with circuits and
switching theory (computer logic), with instruction sets and
register arrangements (computer architecture), with data
structures, algorithms, operating systems, compiler design
and artificial intelligence and so forth.
7. An Introduction:
* All of these courses have a theoretical component, but they
differ from our study in two basic ways.
1) First, they deal only with computers that already exist;
our models, on the other hand will encompass all
computers that do exist, will exist, and that can ever be
dreamed of.
2) Second, they are interested in how best to do tings; we
shall not be interested in optimality at all, but rather
we shall be concerned with the questions of possibility
what can and what can not be done.
8. An Introduction:
* The history of Computer Theory is also interesting.
* It was formed by fortunate coincidences, involving
several seemingly unrelated branches of intellectual
endeavor.
* The most obvious component of Computer Theory is
the theory of mathematical logic.
* As the twentieth century started, mathematics was
facing a dilemma.
* George Cantor (1845-1918) had invented the Theory
of Sets (union, intersection, inclusion, cardinality, etc).
* David Hilbert (1862-1943) wanted all of mathematics
put on the same sound footing as Euclidean Geometry,
which is characterized by precise definitions, explicit
axioms, and rigorous proofs.
9. An Introduction:
* Hilbert wanted something formulaic a precise
routine for producing results, like the directions in a
cookbook.
* First draw all these lines, then write all these equations
then solve for all these points, and so on and so on and
the proof is done.
* We simply follow the rules and the answer must come.
* This type of complete, guaranteed, easy-to-follow set
of instructions is called an ALGORITHM.
* Mathematical logicians, while trying to follow the
suggestions of Hilbert, found that they were able to
prove mathematically that some of the desired
algorithms cannot exists not only at this time, but
they can never exist in the future, either.
* Their main result was even more fantastic than that.
10. An Introduction:
* Kurt Godel (1906-1978) not only showed that there
was no algorithm that could guarantee to provide
proofs for all the true statements in mathematics, but
he proved that not all the true statements even have a
proof to be found.
* Godels Incompleteness Theorem implies that in a
specific mathematical system either there are some
true statements without any possible proof or else
there are some false statements that can be proven.
Assignment.
* This earth-shaking result made the mess in the
philosophy of mathematics even worse, but very
exciting.
11. An Introduction:
* Stephen Cole Kleene and, independently, Emil Post
were able to prove that there were problems that no
algorithm could solve.
* While also solving this problem independently, Alan
Mathison Turing (1912-1954) developed the concepts
of a theoretical universal-algorithm machine.
* Studying what was possible and what was not possible
for such a machine to do, he discovered that some
tasks that we might have expected this abstract
omnipotent machine (all-powerful) to be able to
perform are impossible, even for it.
12. An Introduction:
* Turings model for a universal-algorithm machine is
directly connected to the invention of the computer.
* Turing himself had an important part in the
construction of the first computer.
* This subject is sometimes called Computation Theory
rather than Computer Theory.
* Computation, what a computer does, can refer to a
number of seemingly very different activities: adding
and subtracting numbers, sorting lists of names into
alphabetical order, formatting a page of text etc.
* The name computation is also misleading, since it
popularly connotes arithmetical operations that are
only a fraction of what computers can do.
13. An Introduction:
* The term computation is inaccurate when
describing word processing, sorting and searching and
awkward in discussions of program verification.
* Just as the term Number Theory is not limited to a
description of calligraphic display of number systems
but focuses on the question of which equations can be
solved in integers, and the term Graph Theory does
not include bar graphs, pie charts, and histograms, so
too Computer Theory need not be limited to a
description of physical machines but can focus on the
questions of which tasks are possible for which
machines.