4.6.13 · Coding › Theory of Computation
Intuition Bada picture (WHY hume yeh chahiye?)
Finite automata toh { a n b n } ko bhi properly check nahi kar sakte bina help ke, aur pushdown automata ke paas sirf ek stack hoti hai. Hume ek aisa model chahiye jo ek real computer jo bhi compute kar sakta hai, sab kuch capture kare — koi memory limit nahi, koi clever trick chhuti nahi. Ek Turing machine aisa hi sabse simple model hai: cells ki ek infinite tape , ek head jo ek cell read/write karta hai, aur ek chota sa finite control jo decide karta hai aage kya karna hai. Yeh almost bewaqoofi se simple lagta hai — aur yahi toh point hai. Church–Turing thesis kehti hai yeh simple cheez utni hi powerful hai jitni koi bhi cheez ho sakti hai .
Definition Turing machine (7-tuple)
Ek (deterministic) Turing machine hai M = ( Q , Σ , Γ , δ , q 0 , q accept , q reject ) jahan:
Q — states ka finite set
Σ — input alphabet, jisme blank symbol ⊔ nahi hota
Γ — tape alphabet, jisme ⊔ ∈ Γ aur Σ ⊆ Γ
δ : Q × Γ → Q × Γ × { L , R } — transition function
q 0 ∈ Q — start state
q accept , q reject ∈ Q — do halting states , jisme q accept = q reject
HAR piece kya karta hai:
δ ( q , a ) = ( r , b , D ) ka matlab: state q mein symbol a padhte hue, state r mein switch karo, cell ko b se overwrite karo, phir head ko direction D (L ya R ) mein ek cell move karo.
Intuition WHY 7-tuple aur kam nahi?
Hum Σ ko Γ se alag isliye rakhte hain kyunki machine ko aksar extra working symbols chahiye hote hain (jaise X , # markers) jo input mein kabhi nahi aane chahiye.
Hume ⊔ (blank) isliye chahiye taaki machine "real input" aur "right side ki empty tape" mein fark kar sake. Input finite hoti hai; tape infinite hai — baaki sab blank se bhara rehta hai.
Do halting states (accept/reject) machine ko moment-bhar mein ruk jaane dete hain jab woh decide kar le, unlike DFAs jo poori string padhte hain.
Intuition WHY configurations?
Kisi bhi moment par machine ka poora future teen cheezon se determine hota hai: current state , tape contents , aur head position . Inhe ek object mein bundle karo aur computation ko snapshots ki sequence ki tarah describe kar sako — jaise ek movie ke frames.
Ek configuration likhi jaati hai u q v jahan:
q ∈ Q current state hai,
u ∈ Γ ∗ head ke left ki tape content hai,
v ∈ Γ ∗ head se shuru hone wali tape content hai (toh head v ke pehle symbol par point karta hai).
v ke aage sab kuch blank hai. Example: 1011 q 7 01111 ka matlab tape hai 101101111, state q 7 , head 1011 ke baad wale 0 par.
Definition Special configurations
Input w par Start configuration : q 0 w (state q 0 , head pehle symbol par).
Accepting configuration : state hai q accept .
Rejecting configuration : state hai q reject .
Halting configurations : accepting aur rejecting wale (aage koi move nahi).
Intuition "Yields" ka MATLAB kya hai? (Computation steps KAISE hote hain)
Ek configuration C 1 yields karta hai C 2 ko (likha jaata hai C 1 ⊢ C 2 ) agar C 2 exactly wahi hai jo δ ek baar apply karne se milta hai. Hume tape edges par aur head ke neeche overwrite karte waqt dhyan rakhna hoga.
Maano δ ( q , b ) = ( r , c , D ) , head symbol b padh raha hai. a woh symbol hai jo head ke bilkul left mein hai, u baaki left part hai, v baaki right part hai.
Input w par M sequence C 0 ⊢ C 1 ⊢ C 2 ⊢ ⋯ run karta hai jahan C 0 = q 0 w , har C i + 1 C i se yield hota hai, aur yeh tab tak jaari rehta hai jab tak halting configuration nahi aati (ya phir forever run karta rehta hai).
M accepts w agar koi C i accepting hai.
M rejects w agar koi C i rejecting hai.
Warna M loops karta hai (kabhi halt nahi hota).
Definition Recognizable vs decidable
L ( M ) = { w : M accepts w } woh language hai jo M recognize karta hai.
Ek language Turing-recognizable (a.k.a. recursively enumerable ) hai agar koi TM use recognize kare. (Non-members par, M loop kar sakta hai.)
Ek language Turing-decidable (recursive ) hai agar koi TM use recognize kare aur har input par halt kare (kabhi loop na kare). Ek TM jo hamesha halt kare woh decider hai.
Intuition Crucial asymmetry
"Recognize" sirf members ke liye eventually yes ka promise karta hai. "Decide" har input ke liye definite yes ya no ka promise karta hai. Hamesha loop karte rehna inke beech ka gap hai — aur yahi gap undecidability ka dil hai (jaise Halting Problem).
Worked example Example A — TM
A = { 0 2 n : n ≥ 0 } ke liye (jinki length power of 2 ho)
Idea: baar baar har doosre 0 ko cross off karo. Har pass count ko half karta hai. Accept tab karo jab har pass ek even count chhode jab tak ek akela 0 na bache.
δ behavior ka sketch:
Right sweep karo, har doosre 0 ko cross out karo (X se replace karo).
Yeh step kyun? 0s ki sankhya half ho rahi hai; power of two halving ke baad power of two hi rehti hai.
Agar ek pass mein exactly ek 0 dikha → accept . Kyun? 2 0 = 1 base case hai.
Agar kabhi odd count > 1 dikhe → reject . Kyun? ek odd number > 1 power of two nahi hota; halving fail ho jaata hai.
Warna head ko left end par rewind karo aur repeat karo.
0000 input par Trace (4 = 2 2 ):
q 0 0000 → mark karo, alternate cross karo: tape ban jaati hai 0X0X, 0s ki count = 2 (even, > 1 ) → rewind.
Pass 2: 0X0X → cross karke 0XXX, count = 1 → accept . ✓
Worked example Example B — step by step yields trace karna
Tiny machine: δ ( q 0 , 0 ) = ( q 0 , 0 , R ) , δ ( q 0 , ⊔ ) = ( q accept , ⊔ , R ) . (0s ke upar right walk karta hai, pehle blank par accept karta hai.)
Input 00:
q 0 00 ⊢ 0 q 0 0 ⊢ 00 q 0 ⊢ 00 q accept
Step 1 Kyun? 0 padha, δ = ( q 0 , 0 , R ) : 0 wapas likha, right move kiya → 0 left part mein join ho gaya.
Step 2 Kyun? same rule, head doosre 0 par.
Step 3 Kyun? head blank padh raha hai (empty right part), δ ( q 0 , ⊔ ) → accept. ✓
Worked example Example C — configuration size count karna
Tape content 1#0, state q 3 , head # par. Configuration = 1 q 3 #0 . Apply δ ( q 3 , # ) = ( q 5 , Y , L ) (move left):
1 q 3 #0 ⊢ q 5 1 Y 0
Kyun? # ki jagah Y likha, 1 par left step kiya, toh 1 naya head symbol hai, Y0 uske baad aata hai. Ab head left edge par hai — aage koi L move stay put hi karega.
Common mistake "Head pehle
write karta hai phir move karta hai, toh yeh ek step mein write aur move nahi kar sakta."
Kyun sahi lagta hai: real CPUs bahut saare micro-ops karte hain. Fix: ek TM step dono karta hai — current cell overwrite karo aur exactly ek cell move karo. Yeh ek single atomic transition hai jo δ ke ek application se define hoti hai.
Common mistake "Recognizable = decidable."
Kyun sahi lagta hai: agar ek TM "yes" bol sakta hai, toh zaroor "no" bhi bol sakta hoga. Fix: ek recognizer ke liye, non-members infinite loop cause kar sakte hain — woh kabhi "no" nahi kehta. Deciders strictly stronger class hain jo hamesha halt karte hain.
Common mistake "Edge se left move karne par machine crash ho jaati hai."
Kyun sahi lagta hai: arrays out-of-bounds error throw karte hain. Fix: convention ke mutabik head simply cell 0 par ruk jaata hai ; computation normally jaari rehti hai.
Common mistake "Input alphabet aur tape alphabet same hain."
Kyun sahi lagta hai: input tape par hi rehti hai. Fix: generally Σ ⊊ Γ — TM ko extra symbols chahiye (⊔ , markers) apna bookkeeping karne ke liye. Blank ⊔ kabhi Σ mein nahi hota.
δ total hai / hamesha defined hai."
Kyun sahi lagta hai: functions usually total hote hain. Fix: δ ( Q ∖ { q accept , q reject }) × Γ par defined hai — halting states se koi transition nahi nikalti (woh ruk jaate hain).
Recall Feynman: ek 12-saal ke bachche ko samjhao
Socho ek endless kagaz ki patti hai jo boxes mein bata hui hai, aur ek chota robot ek box par baitha hai. Robot ke paas ek tiny notebook hai jisme kuch "moods" (states) hain. Woh apne box ka letter dekhta hai, phir uski rulebook kehti hai: "ise mita do, yeh naya letter likho, aur ek box left ya right khisak jao, aur uss mood mein switch ho jao." Yeh karta rehta hai. Do special moods matlab hain STOP-YES aur STOP-NO . Agar yeh kabhi STOP mood par nahi pahuncha, toh bas khisakta rehta hai hamesha ke liye. Yahi Turing machine hai — aur kamal ki baat yeh hai ki yeh bewaqoof robot woh sab compute kar sakta hai jo koi bhi computer kar sakta hai.
Mnemonic 7-tuple yaad karo
"Q-SAT-D-q₀-AR" se
Q states, S igma (input), A lphabet-tape Γ, T ransition δ — phir q₀ start, A ccept, R eject. Bolo: "Cue-SAT-Delta, q-zero, Accept-Reject."
Recall Active recall checkpoint
Note cover karo. Kya tum (1) 7-tuple likh sakte ho, (2) teen yield rules state kar sakte ho, (3) recognizable vs decidable define kar sakte ho, (4) Example B ke liye q_0 00 trace kar sakte ho?
What are the 7 components of a Turing machine? ( Q , Σ , Γ , δ , q 0 , q accept , q reject ) — states, input alphabet, tape alphabet, transition function, start state, accept aur reject states.
What is the type signature of the transition function δ ? δ : Q × Γ → Q × Γ × { L , R } .
Why must Σ ⊆ Γ and ⊔ ∈ / Σ ? Input tape par rehti hai (isliye Σ ⊆ Γ ), lekin blank ka matlab hai "yahan koi input nahi" isliye yeh input mein kabhi appear nahi hona chahiye.
What is a configuration u q v ? Ek snapshot: state q , head ke left ki tape content u , head se shuru hone wali content v (v ke pehle symbol par head), aage sab blank.
Yield rule for moving right: u a q b v ⊢ ? (given δ ( q , b ) = ( r , c , R ) ) u a cr v — c likho, head right step kare toh c left part mein join ho jaata hai.
Yield rule for moving left: u a q b v ⊢ ? (given δ ( q , b ) = ( r , c , L ) ) u r a c v — c likho, head a par left step kare.
What happens when the head tries to move left off cell 0? Woh cell 0 par ruk jaata hai (left-edge convention); computation jaari rehti hai.
Difference between Turing-recognizable and Turing-decidable? Recognizable: koi TM members ko accept karta hai (non-members par loop kar sakta hai). Decidable: ek TM jo hamesha halt kare har input ke liye yes/no deta hai.
What is a decider? Ek TM jo har input par halt karta hai (kabhi loop nahi karta).
What are the three outcomes of a TM running on input w ? Accept, reject, ya hamesha ke liye loop karna (kabhi halt nahi).
Why are there exactly two halting states? Taaki machine "yes" ya "no" decide kar sake aur turant ruk sake, bina poori input padhe.
On which domain is δ defined? ( Q ∖ { q accept , q reject }) × Γ — halting states ke koi outgoing transitions nahi hote.
Finite Automata — TMs ek writable, infinite, two-way tape add karte hain (FAs read-only, one-way hote hain).
Pushdown Automata — PDAs ke paas stack hoti hai; TMs head movement ke zariye full random-ish access tak generalize karte hain.
Church-Turing Thesis — claim karta hai ki TMs sab effective computation capture karte hain.
Halting Problem — canonical undecidable language; recognizable-but-not-decidable gap mein rehta hai.
Recursively Enumerable Languages / Recursive Languages — yahan define hone wali language classes.
Nondeterministic Turing Machines — same power, possibly faster; ek yield relation se define hote hain, function se nahi.
Multitape Turing Machines — power mein equivalent, cleaner constructions ke liye use hote hain.
reads writes moves L or R
extra work symbols and blank fill tape
Need model for all computation
Transition function delta
Sigma vs Gamma with blank
State plus tape plus head