Lecture One: Automata Theory Amjad Ali Automata Theory, Lecture 1, slide 1 Automata theory The word “Automata“ is the plural of “automaton" which simply means any machine. automata theory is the study of abstract machines and problems they are able to solve. Automata theory is closely related to formal language theory as the automata are often classified by the class of formal languages they are able to recognize. Automata Theory, Lecture 1, slide 2 Abstract Machine An abstract machine, also called an abstract computer, is a theoretical model of a computer hardware or software system used in Automata theory. Abstraction of computing processes is used in both the computer science and computer engineering disciplines and usually assumes discrete time paradigm. abstract machines are often used in thought experiments regarding computability or to analyze the complexity of algorithms Automata Theory, Lecture 1, slide 3 What do we do here? We construct abstract models of computers and computations These models possess the important features that are common to both hardware and software These features are essential to many of the special and complex constructs we encounter while working with computers Automata Theory, Lecture 1, slide 4 Models The construction of models is one of the essentials of any scientific discipline. The usefulness of a discipline is often dependent on the existence of simple, yet powerful, theories and laws. Automata Theory, Lecture 1, slide 5 Automaton An automaton is an abstract model of a digital computer It has a mechanism to read input (string over a given alphabet, e.g. strings of 0’s and 1’s on S = {0,1}) written on an input file. A finite automaton has a set of states Its control moves from state to state in response to external “inputs” Automata Theory, Lecture 1, slide 6 Automaton With every automaton, a transition function is associated which gives the next state in terms of the current state An automaton can be represented by a graph in which the vertices give the internal states and the edges transitions The labels on the edges show what happens (in terms of input and output) during the transitions An automaton operates in discrete time frame Automata Theory, Lecture 1, slide 7 Components of an automaton Input file : Contains strings of input symbols Storage unit: consists of an unlimited number of cells, each capable of holding a single symbol from an alphabet Control unit : can be in any one of a finite number of internal states and can change states in defined manner Automata Theory, Lecture 1, slide 8 Transitions from start state to end state transition Present state M,C,G,W = f •There are 4 objects Cabbage, Man, Wolf and Goat on one bank and there is a boat •All 4 have to cross the river so that (C,G) or (W,G) are not left at one place •Man rows the boat and takes one at a time Automata Theory, Lecture 1, slide 9 final state f = M,C,G,W Intermediate states Class assignment (M,C,G,W=f) =………..= (f =M,C,G,W) Automata Theory, Lecture 1, slide 10 Applications of Automata A variety of properties concerning the models, grammars, and languages will be proven. The existence or non-existence of algorithms for processing languages and language processors will be proven. These algorithms form the basis of tools for processing languages, e.g., parsers, compilers, assemblers, etc. Other algorithms will form the basis of tools that automatically construct language processors, e.g., yacc, lex, etc. Note that our perspective will be similar to, yet different from a compiler class. Additionally, some things will be proven to be noncomputable, e.g., the enhanced compiler. Automata Theory, Lecture 1, slide 11 Different kinds of automata This was only one example of a computational device, and there are others We will look at different devices, and look at these kinds of questions: What kinds of problems can a given type of device solve? What things are impossible for this kind of device? Is one type of device more powerful than another? Automata Theory, Lecture 1, slide 12 Some devices we will see finite automata Devices with a finite amount of memory. Used to model “small” computers. push-down automata Devices with infinite memory that can be accessed in a restricted way. Used to model parsers, etc. Turing Machines Devices with infinite memory. Used to model any computer. time-bounded Turing Machines Infinite memory, but bounded running time. Used to model any computer program that runs in a “reasonable” amount of time. Automata Theory, Lecture 1, slide 13 Some highlights of the course Finite automata We will understand what kinds of things a device with finite memory can do, and what it cannot do Introduce simulation: the ability of one device to “imitate” another device Introduce nondeterminism: the ability of a device to make arbitrary choices Push-down automata These devices are related to grammars, which describe the structure of programming (and natural) languages Automata Theory, Lecture 1, slide 14 Some highlights of the course Turing Machines This is a general model of a computer, capturing anything we could ever hope to compute But there are many things that computers cannot do: Automata Theory, Lecture 1, slide 15 Some highlights of the course Time-bounded Turing Machines Many problems are possible to solve on a computer in principle, but take too much time in practice Traveling salesman: Given a list of cities, find the shortest way to visit them and come back home Automata Theory, Lecture 1, slide 16