--Your friends at LectureNotes

Note for Automata Theory And Computability - ATC By Ayush Agrawal

  • Automata Theory And Computability - ATC
  • Note
  • Uploaded 1 year ago
0 User(s)
Download PDFOrder Printed Copy

Share it with your friends

Leave your Comments

Text from page-1

Lecture notes on Automata Theory and Computability(subject code: 15CS54) – Module -1: By Prof B I Khodanpur, DSCE Module – 1: Syllabus:Why study the theory of computation(ch-1) Languages and strings(ch-2) A Language Hierarchy(ch-3) Computation(ch-4) Finite State Machines(ch-5 from 5.1 to 5.10) Why study the theory of computation(ch-1) Defn: Automata is an abstract machine for modelling computations. Why Abstract machines? Abstract machine allows us to model the essential parameters, and ignore the non-essential parameters. What is computability? It is very difficult to define, but Our notion of computation: Examples are Add 2 numbers Find the roots of a quadratic equation Multiply 2 matrices And so on….. Important to note that: all the above have algorithms What is not computable: Example• Halting problem of a program: simply write a program that examines other programs to determine if they halt or loop forever. Obviously whether or not a program halts depends on the data it is fed so in this case we mean program to be code plus the data it operates on.

Text from page-2

• Why it not computable: simple answer – No algorithm exists Some computations take lot of time to be meaning full: Example Travelling salesman problem • When computations are not finished within a reasonable time, such computations are useless, also known as NP-problem(nondeterministic polynomial problems) Tractable/Intractable Problems: Tractable Problem: a problem that is solvable by a polynomial-time algorithm. The upper bound is polynomial. Examples: Quick sort(O(nlogn) Intractable Problem: a problem that cannot be solved by a polynomial-time algorithm. The lower bound is exponential. Examples: Travelling Salesman problem Some important applications of automata theory in general: Word search and Translation of Natural Languages Parity checkers, Vending machines, communication protocols Video games DNA Security Artificial Intelligence To model organic structures of molecules Fluid Flow

Text from page-3

Snowflake and crystal formation Chaos theory Cosmology Financial analysis Why not use English to Program? • Firstly all Natural Languages like English, Kannada etc are Context Sensitive Languages • That is to say – meaning depends on the context. • Example: Take a English word “ Charge “ • There are many meanings for this word • Like - Cost, -Flight, - Charge the Battery • - Positive Charge, etc Characteristics of Natural Languages: • In most of the situations – meaning depends on the context. • They are developed for communication among the Human beings. • Human beings are capable or trained to interpret a sentence depending on the situations. • Where as, Machine are not in Context. • Machine will not be able to interpret depending on the situation. Characteristics of Formal Languages: • Meaning of a word or sentence does not depend on the context. • Words and sentences have only one meaning irrespective of the context. • They are simple. • Easy to write Compilers and Interpreters • They are precise in their meaning. • With this Machine do what they are instructed to do What is the gist of this subject? A systematic way of depicting the problem so that it solution can be understood and analysed. What are the properties of various types of languages. Regular Languages(RL) Context Free languages(CFL) Context Sensitive Languages(CSL) Recursively Enumerable Languages(REL) Various types of Automata will be studied: • There are different types of automata for recognizing different languages • Deterministic Finite Automata - RL • Pushdown Automata – CFL

Text from page-4

• Linear Bounded Automata – CSL • Turing Machine – REL How to study: • Subject is mathematical and lot of logical thinking is required. • There are number of Theorems and proofs. • Understand the definition – mathematically i.e. Examples are not substitute for definitions. • Examples are only to make the definition clear. • Work out number of problems from various other books. • Key to understanding this subject – attempt to work harder problems even if you are not able get answers. • If you plan to take up - Gate examination for PG studies – you must understand it thoroughly. Languages and Strings(chapter-2) Alphabet -  definition: Defn: An alphabet is a non-empty, finite set of characters/symbols Use  to denote an alphabet set Examples = { a, b } = { 0, 1, 2 }  = { a, b, c,…z, A, B, … Z }  = { #, $, *, @, & } String definition: A string is a finite sequence, possibly empty, of characters drawn from some alphabet .  is the empty string * is the set of all possible strings over an alphabet . Examples of strings:  = {a, b} Strings derived from  are….. …..  , a, b, aa, ab, ba, bb, aaa, aab, aba, ..  = {0, 1} Strings derived from  are….. …..  , 0, 1, 00, 01, 10, 11, 000, 001, 010, ..  = {a} Strings derived from  are….. …… , a, aa, aaa, aaaa, aaaaa, aaaaa,….

Lecture Notes