Showing posts with label TCS. Show all posts
Showing posts with label TCS. Show all posts

Turing Machine : Introduction

   Turing Machine [TM]

This machine was introduced by Alan Turing in 1936. Turing machine can be constructed to accept a given language or to carry out some algorithm. Unlike of computer, TM has no limitation on the amount of time or memory available for a computation. 
We can compare different machines which are -

Language defined by

Acceptor or recognizer

Non-determinism = Determinism?

Ex. Of application

1.   Regular Expression

Finite Automata

Yes

Text editors

2.   Context free grammar

Pushdown Automata


No

Programming languages, statements, compilers

3.   Type 0 grammar (Unrestricted)

Turing Machine

Yes

Computers

 

Turing Machine Model :

          Fig. shows TM model. The TM model consists of a finite control, an input tape which is divided into cells and a tape head that scans one cell of the tape at a time. Tape is infinite to right. Each cell can contain maximum one-tape symbols. TM works as follows :
           Tape contains input-string w. Let |w| = n ( n symbols) and remaining tape cells contains blank symbol, which is a special tape symbol and not an input symbol.

Move of TM :

i. Changes state
ii. Prints a symbol on the tape cell scanned, replacing previous symbol.
iii. Moves head to left(L) or right(R).

Definition :

         A Turing Machine is a 7-tuple, M = ( Q, Σ,  Γ, δ, q0 , B, F) 
where, 
i.        Q is the set of states
ii.       Σ is the input alphabet not containing the special blank symbol and Σ ⊆ Γ - {B}
iii.      Γ is a finite set of tape symbols where   B ∈ Γ and Σ ⊆ Γ
iv.      δ is a transition function mapping the states of FA and tape symbols to states, tape symbols and              movement of the head i.e  δ: Q × Γ → Q × Γ × {L, R} 
v.       q∈ Q is the initial state
vi.      B ∈ Γ is the blank symbol
vii.     F ⊆ Q is a set of final states

Instantaneous Description (ID) 

        Instantaneous Description of TM M, is a string α q: β where q:  Q is present state of M. α β ∈ Γ* is input string and if the first symbol of β is current symbol a, tape head is scanning, then α is a substring formed by all symbols to the left of a.

Consider the fig. We can write ID as  a b a q3 a b b then α = aba and β = abb where head is scanning a.
We assume Q and Γ are disjoint and tape head assumed to be scanning leftmost symbol of α2. If α2 = ∈ the head is scanning blank.

Moves in TM  

      Let x1x2…..xn is an input string to be processed and present symbol under tape head is xi
Let δ(q, xi) = (p, y, L)
So ID before processing xi  is xx2…..xi-1 , q xxi+1….xn   after processing  xi , the resulting ID is xx2…..xi-2 , p xi-1….yxi+1…..xn   
This change of ID is represented as
xx2…..xi-1 qxi…. x |-   x1…..xi-2 pxi-1 yxi+1…..x   

If δ(q, xi) = (p, y, R) then change of ID is represented as

xx2…..xi-1 qxi…. x |-   x1 xi-1 y p xi+1…..x 

The Language Accepted by TM :

L(M) = { w | w ∈ Σ*   and  q0Ͱ* α1 p α2 for some p in F and  α1, α2 ∈ Γ* }

We assume that TM halts whenever the input is accepted. So TM has no next move when it enters in the final state. But if string is not accepted, it may go into infinite loop.  



Introduction to Theoretical Computer Science

 Introduction to Theoretical Computer Science

Automata theory (also known as Theory Of Computation) is a theoretical branch of Computer Science and Mathematics, which mainly deals with the logic of computation with respect to simple machines, referred to as automata.

Automata enables the scientists to understand how machines compute the functions and solve problems. The main motivation behind developing Automata Theory was to develop methods to describe and analyze the dynamic behavior of discrete systems.

Automata is originated from the word “Automaton” which is closely related to “Automation”.

Now, let’s understand the basic terminologies, which are important and frequently used in Theory of Computation.

What is Theory of Computation?

      What is Theory?

èTheory define as capabilities, limitation of those machine.     

·        What is Computation?         

èComputation is calculation, solving, making decision or any task done by computer or any machine.

Purpose of theory of computation-

           “Develop formal mathematical models of computation that reflect real-world computers.”

Basic Concept:

      Symbol: Symbols are indivisible objects or entity that cannot be defined. Symbol is the smallest building block, which can be any alphabet, letter or any picture.

Example: digit, letter

      Alphabets (Σ): Alphabets are finite set of symbols.

Example:

Σ = {0, 1} is an alphabet of binary digits

Σ = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} is an alphabets of decimal digits

Σ = {a, b, c}

Σ = {A, B, C, ………,Z}

      String : String is a finite sequence of symbols from someone alphabet(Σ). String is generally denoted as w. 

Example :

                    00011100    è  is a string from the binary alphabet Σ {0, 1}

                     aabcc          è  is a string from the alphabet Σ {a, b, c}

                     9862           è  is a string over alphabet Σ {0,1,2,3,4,5,6,7,8,9}

·        Null string (ϵ) : A string having no symbol is called Null string and is denoted by ϵ

·        Length of a string ( |w| ) : The length of a string is number of symbols in the string.

        Example:

                                       w = totalmcq                 |w|=8

                                       w = 001100                    |w|=6

                                       w = ϵ                               |w|=0

      Powers of ‘ Σ ‘  or Power of Alphabet:

If Σ is an alphabet, then Σk is the set of all strings of length k.

Example :

                      Let, Σ  = {0,1}   then

          Σ0  = {  }

Σ1   = {0, 1}            

Σ2 = {00, 01, 10, 11} 

          Σ32 Σ1

              = {00, 01, 10, 11} {0, 1}

              = {000, 001, 010, 100, 011, 101, 110, 111}

Prefix and Proper prefix of a string

      Prefix of a string is any number of leading symbols of that string.

Example :  x = abc

prefixes of  x = { ϵ, a, ab, abc }

      The prefix other than the string itself is called as proper prefix.

     Example :   x = abc

        proper prefix of x = { ϵ, a, ab }

Suffix and Proper suffix of a string:

·        Suffix of a string is any number of trailing symbols in it.

Example:    x = abc

Suffix of x = { ϵ, c, bc, abc }

The suffix other than the string itself is called a proper suffix.

Example :   x = abc

Proper suffix of x = { ϵ, c, bc }

      Language: A language is a set of strings, chosen from some Σ* or we can say- ‘A language is a subset of Σ* ‘. A language which can be formed over ‘ Σ ‘ can be Finite or Infinite.

Example:

L1 = {set of all strings of length 2}

     = { aa, ab, ba, bb}   è finite

L2 = {set of all strings which starts with ‘a’}

    = { a, aa, ab, aba,aaa, abb,…………….} è Infinite

      Formal Language  :

                The word formal refers to the fact that all the rules for the language are explicitly stated in terms of what strings of symbol can occur and which are valid sentence.

Example: language over alphabet {a, b} having equal number of a and b.

Σ* = { ϵ, ab, ba, abab, baab, aabb,…………….}

             If we exclude ϵ, then

Σ+ = { ϵ, ab, ba, abab, baab, aabb,…………….}

Operations on Languages

There are three operations which we can apply on Languages:

1.     Union :

Given language L1 and L2 we define their union to be the language is

 L1 U L2 = { x | xϵ L1  or x ϵ L2 }

2.     Concatenation :

Given languages L1 and L2 we define their concatenation to be the language is

L1L2= {xy | x ϵ L1 and  y ϵ L2}

Ex. L1 = { hello } and L2 = {world} then L1L2 = {helloworld} 

3.     Kleene Closure (*)  : It is denoted by L* and is defined as      

           

L*  =    Li

         i=0

  Ex.  If ∑ = {a, b},     L* = { ϵ, a, b, aa, ab, ba, bb,………..}

4.     Positive Closure : It is denoted by  L+  is defined as,

         

L+   Li

        i=1

 Ex.  If ∑ = {a, b},           L+ = {a, b, aa, ab, ba, bb,………..}


Regular Languages: A language is regular if it can be expressed in terms of regular expression.

Regular Expressions

Regular Expressions are used to denote regular languages. An expression is regular if:

·         ɸ is a regular expression for regular language ɸ.

·         ɛ is a regular expression for regular language {ɛ}.

·         If a  Σ (Σ represents the input alphabet), a is regular expression with language {a}.

·         If a and b are regular expression, a + b is also a regular expression with language {a, b}.

·         If a and b are regular expression, ab (concatenation of a and b) is also regular.

·         If a is regular expression, a* (0 or more times a) is also regular.

 If r is a regular expression, then the language represented by r is denoted by L(r).

Ex.1. Define the language such that all words begin and end with ‘a’ and in between any word using ‘b’, using regular expression

è Regular expression is

                                             a b*a + a

Ex.2. Describe the set of all strings of a’s and b’s ending with ab.

è In given language we can have zero or more occurrences of ‘a’ or ‘b’ followed by ‘ab’.

     So, (a+b)* for zero more occurrences of ‘a’ or ‘b’ and concatenate ‘ab’ at the end.

     Therefore, regular expression is (a+b)*ab

Ex.3. L={ ɛ,11,1111,111111,………}  What is the regular expression of L?

è In given set of strings any string in L will be either ɛ or string of even number of 1’s.

So Regular expression of L is (11)*

Ex.4. Write a regular expression for language contains atleast one a and atleast one b.

è r = [(a+b)* a (a+b)* b (a+b)*] + [(a+b)* b (a+b)* a (a+b)*]

Ex.5. Write a regular expression for language must containing each string of even length over the alphabet {0}

è r = (00)+

Ex. 6. Describe the language L= {anbn | n ≥ 1}

è ∑ = {a, b}

        L = { ab, aabb, aaabbb, ……………….}

The language contain equal number of a’s followed by equal number of b’s.

Ex. 7. Find the language of the regular expression (a+b)*

è L = { ɛ, a, b, ab, ba, aa, bb, aab, aabb,……….}

Ex. 8. Find regular expression of language staring with aa and ending with bb over alphabet {a, b}

è    r =  aa (a+b)* bb

Ex.9. Find regular expression of that language having string not containing substring 01 over alphabet {0,1}

è     r = 1* 0*

Ex.10. Find regular expression of the language ending with 011 over alphabet

{0, 1}

è      r= (0+1)*011

Ex.11. Write regular expression for a language consists of string having length divisible by 3 over { a }

è  r = ( aaa )*

Ex.12. Find regular expression of the language consists of string over {0, 1} whose 3rd digit from right end is always 1.

=è   r = (0+1)* 1(0+1)(0+1)

Ex.13. Write regular expression for a language consisting of string such that total number of b’s in each string is divisible by 3 over {a, b}

è   L = { ɛ, a, aa, abbb, bbba, ababab……}

        r = (a*ba*ba*ba*)* + a*

Ex. 14. Write regular expression for a language of string with total number of 0’s are even over {0, 1}

è    r = 1* + (1*01*01*)*

 Regular Expression Identities

     Two regular expressions P and Q are equivalent and written as P = Q if P and Q represent the same set of strings.

Following are the identities for regular expressions which are useful for simplification of regular expression

1.     ɸ + R = R

2.     ɸR = Rɸ = R

3.     ɛR = Rɛ = R

4.     ɛ* = ɛ  and   ɸ* = ɛ

5.     R + R = R

6.     R*R* = R*

7.     RR* = R*R = R+

8.     (R*)* = R*

9.      ɛ + RR* = R* = ɛ + R*R

10.                         (PQ)*P = P(QP)*

11.                         (P + Q)* = (P*Q*)* = (P* + Q*)

12.                         (P + Q)R = PR + QR

13.                         R(P + Q) = RP + RQ

 

In order to find out a regular expression of a Finite Automaton, we use Arden’s Theorem along with the properties of regular expressions.

Arden’s Theorem: Let P and Q be two regular expressions. If P does not contain null string, then R = Q + RP has a unique solution that is R = QP*