4.6.17 · Coding › Theory of Computation
Ek Turing Machine (TM) jo input padh rahi hai, exactly teen cheezein kar sakti hai: accept , reject , ya loop forever . Woh teesra option is topic ka poora drama hai.
Agar machine hamesha yes/no jawab deti hai (kabhi loop nahi karti), toh woh language ko decide karti hai → decidable .
Agar machine members pe "yes" bolti hai lekin non-members pe loop forever kar sakti hai, toh woh language ko sirf recognize karti hai → recognizable .
YEH KYUN MATTER KARTA HAI: yeh precisely woh line draw karta hai jo problems ek computer solve kar sakta hai aur jo problems woh sirf partially answer kar sakta hai.
Alphabet Σ par ek language L bas strings ka ek set hai, L ⊆ Σ ∗ . Ek "computational problem" ko un sab inputs ki language ke roop mein encode kiya jaata hai jinका jawab "yes" hai.
Intuition Loop kyun key difference hai
Ek decider promise karta hai ki woh halt karega — isliye uska rejection ek asli "NO" hai. Ek recognizer woh promise kabhi nahi karta; ek infinite run aapko koi jaankari nahi deta. Aap kabhi sure nahi ho sakte ki "woh abhi bhi compute kar raha hai" vs "woh kabhi nahi rukega". Yeh ek akela asymmetry poori decidable ⊊ recognizable hierarchy generate karta hai.
KYUN: Ek decider pehle se members ko accept karta hai aur non-members ko reject karta hai. Members ko accept karna exactly recognizer ki requirement hai; non-members ko reject karna "may loop" condition se zyada strong hai (aur usse imply karta hai). Isliye:
Decidable ⊆ Recognizable .
"Decidable ⇒ complement ke under closed" ka derivation:
Maano M L ko decide karta hai. M ′ banao: M run karo; agar M accept kare, M ′ reject kare; agar M reject kare, M ′ accept kare. Kyunki M hamesha halt karta hai, M ′ hamesha halt karega aur L decide karega. Accept/reject swap karna tabhi kaam karta hai kyunki machine halt karti hai. ∎
Iff theorem ka derivation (famous "dovetailing" argument):
(⇒ ) Agar L decidable hai, toh L recognizable hai (§2.1), aur L decidable hai (§2.2), isliye recognizable bhi hai.
(⇐ ) Maano M 1 L ko recognize karta hai aur M 2 L ko recognize karta hai. Decider D banao input w par:
M 1 aur M 2 ko parallel mein run karo, step-by-step (ek ek step dono ka, alternating). Parallel kyun? Kyunki hum ek ko pehle puri tarah run nahi kar sakte — woh loop kar sakti hai.
Har w exactly L ya L mein se kisi ek mein hai. Isliye ek M 1 ya M 2 guaranteed hai finite time mein w accept karegi.
Agar M 1 accept kare → D accept kare.
Agar M 2 accept kare → D reject kare.
D hamesha halt karta hai (ek machine zarur accept karegi), isliye D L decide karta hai. ∎
Intuition "Parallel run karo" kyun, "
M 1 pehle run karo" kyun nahi
Agar aap pehle M 1 ko completion tak run karo, aur w ∈ / L ho, toh M 1 loop forever kar sakti hai aur aap kabhi M 2 tak pahunch hi nahi paate. Steps alternate karna (dovetailing) guarantee karta hai ki aap kisi non-halter ka wait karte karte stuck nahi hote.
Worked example Example 1 — Ek decidable language
A D F A = {⟨ B , w ⟩ : B is a DFA that accepts w } decidable hai.
Decider: DFA B ko exactly ∣ w ∣ steps tak w par simulate karo; accept karo iff B ek accept state mein khatam ho.
Yeh step kyun? Ek DFA ek step mein ek symbol padhta hai aur loop nahi kar sakta — woh hamesha ∣ w ∣ steps mein finish karta hai. Isliye simulation hamesha halt karta hai → decidable. ✔
Worked example Example 2 — Recognizable lekin decidable NAHI
A T M = {⟨ M , w ⟩ : M is a TM that accepts w } — Acceptance Problem .
Recognizer U (universal TM): M ko w par simulate karo; agar M accept kare, accept karo; agar M reject kare, reject karo.
Yeh step kyun? Jab M accept karta hai, U finite time mein accept karta hai → members handled.
Decider kyun nahi? Agar M w par loop kare , toh U bhi loop karta hai — U kabhi "no" nahi deta. Aur yeh ek gahri theorem hai (diagonalization) ki A T M ke liye koi decider exist hi nahi karta. Isliye A T M recognizable lekin undecidable hai. ✔
Worked example Example 3 — Iff theorem use karna
Claim: A T M (⟨ M , w ⟩ ki language jahaan M w ko accept NAHI karta) not recognizable hai.
Kyun? Agar A T M recognizable hoti, toh dono A T M aur A T M recognizable hain, isliye iff theorem se A T M decidable hota. Lekin woh hai nahi. Contradiction.
Conclusion: A T M ek aisi language hai jo na recognizable hai na co-recognizable ki achi partner — woh strictly RE ke bahar rehti hai. ✔
Worked example Example 4 — "Enumerable" naam mein kyun hai
Ek language recognizable hai ⟺ koi TM ise enumerate kare (apni saari strings print kare, kisi bhi order mein, repeats ke saath bhi).
Yeh match kyun karta hai: Ek enumerator jo L ki saari strings list kare, humein L recognize karne deta hai — w test karne ke liye, enumerator run karo aur jab w appear ho, accept karo. Agar w ∈ / L , woh kabhi appear hi nahi karta (loop forever). Woh "kabhi appear nahi karna" exactly non-members par loop-karne ka behavior hai. ✔
Common mistake "Recognizable matlab hum recognize kar sakte hain ki string in hai YA out hai."
Kyun sahi lagta hai: "Recognize" poori classification jaisi lagti hai, jaise kisi chehra ko recognize karna — yes ya no.
Fix: Recognition one-sided hai. Yeh members ke liye "yes" guarantee karta hai lekin non-members ke liye koi guarantee nahi (possible infinite loop). Do-sided guarantee = decidable , ek strictly stronger property.
Common mistake "Recognizable languages complement ke under closed hain, jaise decidable wale."
Kyun sahi lagta hai: Deciders ke liye, accept/reject swap karna complement deta hai, isliye log assume karte hain ki same trick kaam karti hai.
Fix: Swap trick ko machine ka halt karna chahiye tabhi pata chale ki swap kab karein. Ek recognizer jo non-members par loop karta hai, uske paas kuch bhi swap karne ke liye nahi hai. Sach mein A T M recognizable hai lekin A T M nahi → class complement ke under closed nahi hai.
L undecidable hai, toh L recognizable nahi hai."
Kyun sahi lagta hai: Undecidable sunne mein lagta hai "koi machine ise bilkul handle nahi kar sakti."
Fix: A T M undecidable phir bhi recognizable hai. Undecidable bas matlab hai koi total decider nahi; ek recognizer phir bhi exist kar sakta hai.
M 1 puri tarah run karo, phir M 2 " iff-theorem proof mein.
Kyun sahi lagta hai: Sequential simulation sabse pehle natural thought hai.
Fix: M 1 loop kar sakti hai, aapko forever block karke. Aapko dovetail karna hoga (steps alternate karo) taaki ek halting machine hamesha reach ho.
"DECIDE = D for Done."
Ek D ecider hamesha D one (halts) hota hai — Yes aur No dono final hain.
RE cognizable = RE ad-only-Yes: woh Yes par reply karta hai, lekin No par RE -run kar sakta hai forever.
Aur: "Dono sides recognizable ⇒ Decidable" → handshake yaad rakho: L aur L haath milaate hain (dono RE) toh ek decider ban jaata hai.
Recall Feynman: ek 12-saal ke bachche ko explain karo
Socho ek robot hai jo check karta hai ki tumhara guess ek chhupi hui word hai ya nahi.
Ek decider robot dono taraf honest hai: woh hamesha beep karta hai "YES, sahi!" ya "NO, galat!" aur phir ruk jaata hai.
Ek recognizer robot sirf "YES!" beep karta hai jab tum sahi hote ho. Jab tum galat hote ho, woh bas sochta rehta hai... aur sochta rehta hai... aur kabhi "no" nahi bolta. Tum wahan hamesha ke liye baithe rahoge yeh jaane bina ki woh almost done hai ya stuck hai.
Toh ek decider hamesha answer deta hai; ek recognizer sirf good news confirm karta hai. Aur yahan ek magic trick hai: agar tumhare paas ek robot hai jo "sahi" confirm kare aur doosra jo "galat" confirm kare, tum dono ko ek saath run kar sakte ho aur jo pehle beep kare woh asli jawab batata hai — do aadhe-adhoore robots se ek poora decider bana do!
Property
Decidable (Recursive)
Recognizable (RE)
Members par halt karta hai
hamesha (accept)
hamesha (accept)
Non-members par halt karta hai
hamesha (reject)
loop kar sakta hai
Complement ke under closed?
✅ Haan
❌ Nahi
Relationship
Decidable ⊊ Recognizable
superset
Key theorem
—
L decidable ⟺ L , L dono RE
Example
A D F A
A T M (RE, undecidable)
Decider kya hai? Ek TM jo har input par halt karta hai, members ko accept karta hai aur non-members ko reject karta hai.
Ek language decidable hai iff kaise TM exist kare? Ek TM jo sabhi inputs par halt kare (ek total decider / recursive).
Ek language recognizable hai iff kaise TM exist kare? Ek TM jo exactly members ko accept kare; non-members par woh reject YA loop forever kar sakta hai.
True/False: Har decidable language recognizable hoti hai. True (ek decider pehle se recognizer ki condition aur usse zyada satisfy karta hai).
True/False: Recognizable languages complement ke under closed hain. False — e.g. A T M RE hai lekin A T M nahi.
True/False: Decidable languages complement ke under closed hain. True — accept/reject swap karo; kaam karta hai kyunki deciders hamesha halt karte hain.
Decidable aur recognizable ko link karne wala iff theorem batao. L decidable hai iff dono L aur L recognizable hain.
Iff-theorem proof mein M 1 aur M 2 parallel kyun run karte hain? Kyunki ek ko puri tarah run karna loop forever kar sakta hai; dovetailing guarantee karta hai ki halting wali machine reach ho.
Ek recognizable lekin undecidable language batao. A T M = {⟨ M , w ⟩ : M accepts w } .
A D F A decidable kyun hai?Ek DFA exactly ∣ w ∣ steps mein halt karta hai, isliye simulation hamesha terminate karta hai.
A T M recognizable kyun nahi hai?Agar hoti, toh A T M aur uska complement dono RE hote, A T M ko decidable bana dete — contradiction.
Yahan "enumerable" ka matlab kya hai? Ek TM language ki saari aur sirf wohi strings list (print) kar sakta hai; recognizable hone ke equivalent hai.
iff L and complement both
Halt guarantee difference