Site icon Gyanodhan

Unit 11: Theory of Computation

📘 1. Introduction (परिचय)

Automata Theory वह शाखा है जो यह समझाती है कि कंप्यूटर या मशीनें कैसे भाषा को पहचानती और प्रोसेस करती हैं

यह मुख्य रूप से तीन चीजों पर आधारित है:


🔤 2. Alphabets, Strings, and Languages

👉 Alphabets (वर्णमाला)

👉 Strings (स्ट्रिंग्स)

👉 Language (भाषा)


🤖 3. Automata and Grammars


⚙️ 4. Deterministic Finite Automata (DFA)

👉 परिभाषा:

DFA एक finite automata है जिसमें हर स्थिति (state) पर, हर input symbol के लिए सिर्फ एक next state होती है।

📌 Formal Definition:

DFA को 5-टुपल में परिभाषित किया जाता है:

M=(Q, Σ, δ, q0, F)

जहाँ:


📊 5. Simplified Notation

🔹 State Transition Graph:

🔹 Transition Table:

StateInput 0Input 1
q0q1q2
q1q0q2

🌐 6. Language of DFA


🔁 7. Non-Deterministic Finite Automata (NFA)

👉 परिभाषा:

🤍 NFA with ε (epsilon) transitions:


🔄 8. Language of NFA


🔁 9. Equivalence of NFA and DFA


🔽 10. Minimization of Finite Automata


🆚 11. Distinguishing One String from Other


संक्षेप सारांश (Summary Table)

टॉपिकविवरण
AlphabetsSymbols का finite set
StringsAlphabets का क्रम
Languageस्ट्रिंग्स का सेट जो किसी ऑटोमेटा को स्वीकार हो
DFAएक निश्चित finite मशीन
NFAएक अनिश्चित मशीन जिसमें multiple transitions हो सकती हैं
ε-NFANFA जिसमें बिना input के transitions हो सकती हैं
DFA vs NFAदोनों समान शक्ति वाले हैं
Minimization of DFAStates को merge कर छोटा बनाना
Distinguishing Stringsस्ट्रिंग्स को अलग पहचान देना

🔁 1. Regular Expression (RE) – रेगुलर एक्सप्रेशन

👉 परिभाषा (Definition):

Regular Expression (RE) एक तरीका है जिससे हम किसी Regular Language को symbolic रूप में व्यक्त करते हैं।
यह describe करता है कि किस तरह की string उस language में आ सकती है।


2. Operators of Regular Expression and Their Precedence

🔹 मुख्य ऑपरेटर:

ऑपरेटरकार्य
+ (Union)दो languages का जोड़ (OR)
. (Concatenation)दो strings को जोड़ना
* (Kleene Star)0 या अधिक बार दोहराना

🔸 Precedence (Priority):

  1. * (सबसे पहले लागू होता है)
  2. . (Concatenation)
  3. + (Union)

🧮 3. Algebraic Laws for Regular Expressions

कुछ महत्वपूर्ण नियम:


💡 4. Kleene’s Theorem

Kleene’s Theorem बताता है कि:

👉 इससे RE और FA के बीच equivalence साबित होती है।


🔄 5. Regular Expression to Finite Automata (RE → FA)


🔁 6. DFA to Regular Expression (DFA → RE)


🔢 7. Arden’s Theorem

Arden’s Theorem का उपयोग Regular Expression निकालने के लिए किया जाता है जब हमें equations के रूप में state transitions दिए गए हों।

👉 Useful in DFA → RE conversion.

Statement:
अगर equation है:


🚫 8. Non-Regular Languages


💣 9. Pumping Lemma for Regular Languages

👉 क्या है?

📌 Statement (संक्षेप में):

कोई भी regular language L के लिए कोई constant p (pumping length) होता है, ऐसा कि
हर string s ∈ L जहाँ |s| ≥ p, को 3 हिस्सों में बाँटा जा सकता है: s=xyzs = xyzs=xyz

ऐसे कि:

  1. |y| > 0
  2. |xy| ≤ p
  3. x y^i z ∈ L for all i ≥ 0

🧪 10. Application of Pumping Lemma


🧱 11. Closure Properties of Regular Languages

Regular languages इन operations के तहत closed होती हैं:

OperationClosed?
Union (L1 ∪ L2)✅ Yes
Intersection✅ Yes
Complement✅ Yes
Concatenation✅ Yes
Kleene Star (L*)✅ Yes

🔍 12. Decision Properties of Regular Languages

हम regular languages पर कुछ सवालों का जवाब algorithmically दे सकते हैं (i.e., decidable):

प्रश्नउत्तर
क्या string L में है?✅ हाँ
क्या L empty है?✅ हाँ
क्या L infinite है?✅ हाँ
क्या दो DFA एक ही language accept करते हैं?✅ हाँ

⚙️ 13. FA with Output – Moore and Mealy Machines

🔸 Moore Machine:

🔸 Mealy Machine:


🔁 14. Equivalence of Moore and Mealy Machine


15. Applications and Limitations of FA

✔️ Applications:

Limitations:


📚 संक्षेप सारांश (Quick Table):

टॉपिकविवरण
Regular ExpressionLanguage describe करने का तरीका
DFA, NFALanguages को accept करने वाली मशीनें
Kleene’s TheoremRE ⇌ FA के बीच equivalence
Arden’s TheoremEquation से RE निकालने के लिए
Pumping LemmaLanguage regular नहीं है, यह सिद्ध करना
Moore MachineOutput → States पर निर्भर
Mealy MachineOutput → Input + State पर निर्भर
Closure/Decision PropertiesRegular languages के गणितीय गुण
ApplicationsCompiler, Pattern Matching आदि
LimitationsComplex structures accept नहीं कर सकता

📘 1. Context Free Grammar (CFG) – परिभाषा और उदाहरण

👉 परिभाषा:

Context-Free Grammar एक grammar होती है जिसका हर production rule निम्न प्रकार का होता है:

A→αA

जहाँ:

👉 यह grammar उन भाषाओं को define करती है जो context-free होती हैं।


📌 Example of CFG:

S → aSb | ε

यह grammar {a^n b^n | n ≥ 0} language को generate करती है।


🌐 2. Context Free Languages (CFL)

CFLs वे भाषाएँ हैं जिन्हें कोई Context-Free Grammar generate कर सकती है।

उदाहरण:


🔄 3. Derivation and Derivation Trees

📌 Derivation:

Grammar के rules को step-by-step apply कर के किसी string को generate करना।

उदाहरण:

S → aSb → aaSbb → ε → aabb

🌳 Derivation Tree / Parse Tree:


🤔 4. Ambiguity in Grammar (ग्रामर में अस्पष्टता)

अगर किसी string की एक से अधिक derivation trees या parse trees बनती हैं, तो वह grammar ambiguous कहलाती है।

उदाहरण: Arithmetic expressions में ambiguity हो सकती है।


⚠️ 5. Inherent Ambiguity

कुछ languages ऐसी होती हैं जिनके लिए कोई भी CFG unambiguous नहीं हो सकती
उन्हें कहते हैं — Inherently ambiguous languages


🔁 6. Ambiguous to Unambiguous CFG

कई बार हम ambiguous grammar को modify कर के उसे unambiguous बना सकते हैं।

उदाहरण:
Ambiguous:

E → E + E | E * E | id

Unambiguous:

E → E + T | T
T → T * F | F
F → id

🚫 7. Useless Symbols (बेकार चिन्ह)

Grammar में ऐसे symbols जो:

उन्हें useless symbols कहते हैं और उन्हें grammar से हटाना चाहिए।


🔧 8. Simplification of CFGs

CFG को simplify करने के लिए:


🧱 9. Normal Forms for CFGs

📌 CNF – Chomsky Normal Form

📌 GNF – Greibach Normal Form

👉 CNF और GNF से parsing और proof आसान हो जाता है।


🔒 10. Closure Properties of CFLs

ऑपरेशनCFLs के लिए Closed?
Union✅ Yes
Concatenation✅ Yes
Kleene Star✅ Yes
Intersection❌ No
Complement❌ No

11. Decision Properties of CFLs

प्रॉपर्टीCFLs के लिए निर्णय किया जा सकता है?
Emptiness (L = ∅?)✅ Yes
Finiteness (L finite?)✅ Yes
Membership (w ∈ L?)✅ Yes

💣 12. Pumping Lemma for CFLs

👉 उपयोग:

📌 Statement (संक्षेप में):

हर CFL के लिए एक constant p (pumping length) होता है
जिसके लिए कोई भी string s ∈ L, जहाँ |s| ≥ p, को 5 भागों में बाँटा जा सकता है: s=uvwxys = uvwxys=uvwxy

ऐसे कि:

❌ इससे हम यह सिद्ध कर सकते हैं कि कुछ languages CFL नहीं हैं।


📚 संक्षेप सारांश (Summary Table):

टॉपिकविवरण
CFGGrammar जो context-free languages generate करे
CFLLanguages जो किसी CFG से बनती हैं
DerivationGrammar rules से string बनाना
Parse TreeDerivation को tree रूप में दिखाना
Ambiguityजब एक से ज्यादा parse trees बनें
Inherent AmbiguityLanguage में ambiguity को हटाया नहीं जा सकता
Useless Symbolsऐसे symbols जो derivation में काम न आएं
CNF, GNFGrammar के simplified standard forms
Closure PropertiesUnion, Concatenation, Star = Closed
Decision PropertiesEmptiness, Finiteness, Membership = Decidable
Pumping Lemma for CFLProve करने के लिए कि language CFL नहीं है

🧠 1. PDA – परिचय और परिभाषा

📌 Push Down Automata (PDA) क्या होता है?

PDA एक Finite Automaton (FA) की तरह ही होता है,
लेकिन इसमें एक Stack भी होता है जो इसे ज़्यादा पावरफुल बनाता है।

PDA का उपयोग Context Free Languages (CFLs) को recognize करने के लिए किया जाता है।


🔹 Formal Definition of PDA:

PDA को एक 7-टुपल के रूप में परिभाषित किया जाता है:


2. Instantaneous Description (ID) – क्षणिक विवरण

ID PDA की एक current snapshot होती है, जिसमें होता है: (q,w,γ)(q, w, \gamma)(q,w,γ)

जहाँ:


🌐 3. Language of PDA

PDA उन strings को accept करता है जो किसी context-free language में आती हैं।

🟢 Acceptance के दो तरीके:


4. Acceptance by Final State


🗑️ 5. Acceptance by Empty Stack

📌 दोनों acceptance methods equivalent हैं यानी दोनों से एक ही CFL को recognize किया जा सकता है।


🔄 6. Deterministic PDA (DPDA)

प्रकारताक़त
Non-Deterministic PDAसभी CFLs
Deterministic PDAकुछ CFLs ही

🔁 7. Equivalence of PDA and CFG

PDA और CFG एक-दूसरे के लिए equivalent हैं।


📤 8. CFG to PDA

✅ विचार:

👉 यह PDA stack का उपयोग derivation को simulate करने के लिए करता है।


📥 9. PDA to CFG

👉 इसमें हर PDA की state के pair के लिए एक non-terminal define किया जाता है।


🧱 10. Two-Stack PDA

💡 एक PDA जिसमें दो stacks हों, वह एक Turing Machine के equivalent हो जाता है।

🧠 ताकत:

Automatonताक़त (Power)
FARegular Languages
PDA (1 stack)Context Free Languages
2-stack PDA / TMTuring complete (all languages)

📝 संक्षेप सारांश (Summary Table)

टॉपिकविवरण
PDAStack वाला FA — CFLs के लिए उपयोगी
ID (Instantaneous Description)PDA की current स्थिति की जानकारी
Acceptance (Final/Empty)PDA string को final state या empty stack से स्वीकार कर सकता है
DPDA vs NPDADPDA कुछ CFLs ही accept करता है
PDA ⇄ CFGदोनों एक-दूसरे के बराबर (equivalent) हैं
Two-stack PDATuring machine के बराबर शक्तिशाली

📘 1. Context Sensitive Languages (CSL)

👉 परिभाषा:

Context Sensitive Languages वे भाषाएँ होती हैं जिन्हें Context Sensitive Grammar (CSG) से generate किया जा सकता है।

📌 Grammar Rules:

Context Sensitive Grammar में हर production rule इस रूप में होता है:

αAβ→αγβ

जहाँ:

और सबसे महत्वपूर्ण बात:

∣αAβ∣≤∣αγβ∣

🔹 यानी कोई भी production rule string की लंबाई को घटा नहीं सकता
(Null production की अनुमति नहीं होती, सिवाय एक exception के लिए: S→εS \rightarrow \varepsilonS→ε, अगर ε language में है और S कहीं और use नहीं होता)


🎯 उदाहरण:

Language: L={anbncn∣n≥1}L = \{ a^n b^n c^n \mid n \geq 1 \}L={anbncn∣n≥1}

यह language context-free नहीं है, लेकिन यह context-sensitive है।


🧠 2. Linear Bounded Automata (LBA)

👉 परिभाषा:

Linear Bounded Automaton (LBA) एक विशेष प्रकार की Turing Machine है जिसकी tape size सीमित होती है — यानी input के आकार के अनुसार ही tape मिलता है।

🧱 Structure:


📌 Key Features:

विशेषताविवरण
टेपकेवल input की length तक सीमित होता है
हेडLeft-most और right-most सीमाएं पार नहीं कर सकता
शक्तियाँContext-sensitive languages को accept करता है

🔁 3. संबंध: CSL ⇄ LBA

Model/GrammarLanguage Class
Context Sensitive Grammar (CSG)Context Sensitive Languages (CSL)
Linear Bounded Automaton (LBA)Context Sensitive Languages (CSL)

👉 मतलब:
LBA और CSG दोनों एक ही class की languages को recognize/generate करते हैं — Context Sensitive Languages।


🧾 4. Language Hierarchy (Chomsky Hierarchy)

यहाँ पर पूरी hierarchy दिखाई गई है जो computational power को दर्शाती है:

Type-0 (Recursively Enumerable) — Turing Machine  
   ⬇  
Type-1 (Context Sensitive) — LBA  
   ⬇  
Type-2 (Context Free) — PDA  
   ⬇  
Type-3 (Regular) — FA

👉 हर ऊपर वाला class नीचे वाले से ज़्यादा शक्तिशाली होता है।


🔐 5. Important Points & Differences

विषयContext-Free (PDA)Context-Sensitive (LBA)
Grammar TypeType-2Type-1
Automaton TypePDALBA (Restricted TM)
Accepted Languageaⁿbⁿaⁿbⁿcⁿ
MemoryStackBounded Tape
Null Production Allowed?हाँनहीं (length can’t decrease)

❓ क्या Context Sensitive Languages Decidable होती हैं?

👉 हाँ, CSLs are decidable — यानी उनके लिए एक TM exist करता है जो हमेशा halt करेगी।


📘 संक्षेप सारांश (Quick Recap):

टॉपिकविवरण
CSLContext Sensitive Language (Type-1)
CSGContext Sensitive Grammar
LBARestricted Turing Machine
PowerPDA से ज्यादा, TM से कम
Example Language{aⁿbⁿcⁿ}

📘 1. Turing Machine (TM) – मूल मॉडल और परिभाषा

📌 परिभाषा:

Turing Machine (TM) एक theoretical model है जो एक infinite tape, एक head और एक finite control (state machine) के साथ काम करता है।

यह मशीन किसी भी computable function को हल कर सकती है — यानी, यह एक idealized computer की तरह है।


🧱 2. Components of Turing Machine

Componentकार्य
Infinite TapeInput/output और intermediate data रखने के लिए
Tape Headएक cell पढ़ता और लिखता है, left/right move करता है
State ControlCurrent state के आधार पर transition करता है

🔹 Formal Definition:

TM को 7-टुपल में परिभाषित किया जाता है:


🧾 3. Instantaneous Description (ID)

ID = Turing Machine की वर्तमान स्थिति का snapshot:

αqβ

जहाँ:


🌐 4. Language Acceptance by TM

Turing Machine एक language को accept करती है अगर:


🔁 5. Variants of Turing Machine

प्रकारविवरण
Multi-tape TMएक से अधिक tapes होती हैं
Non-deterministic TMहर input पर कई transitions possible
Multi-head TMएक ही tape पर multiple heads
TM with Stay OptionHead को रुकने की अनुमति

👉 ये सभी equivalent in power होते हैं (i.e. एक-दूसरे को simulate कर सकते हैं)।


🧮 6. TM as Computer of Integer Functions

Turing Machine का उपयोग केवल language accept करने के लिए नहीं,
बल्कि किसी भी integer function को compute करने के लिए भी किया जा सकता है,
जैसे:


🌍 7. Universal Turing Machine (UTM)

यह एक ऐसा Turing Machine है जो किसी भी दूसरे TM को simulate कर सकती है।

👉 यह एक general-purpose computer की तरह होती है।
👉 UTM को input के साथ किसी दूसरे TM का description दिया जाता है।


🧠 8. Church’s Thesis

Church और Turing का कहना था कि:

“जो भी problem algorithm से हल की जा सकती है, उसे Turing Machine से हल किया जा सकता है।”

👉 यह theoretical आधार है computability का।


🔁 9. Recursive और Recursively Enumerable Languages

प्रकारविवरण
Recursive Languages (R)हर input के लिए TM halt करती है और सही निर्णय देती है (accept/reject)
Recursively Enumerable (RE)अगर string language में है तो TM accept करेगी, लेकिन reject के लिए halt जरूरी नहीं

👉 हर recursive language, RE भी होती है, पर हर RE language recursive नहीं होती।


10. Halting Problem

🧩 परिभाषा:

यह जानना कि कोई Turing Machine किसी input पर halt करेगी या नहीं, यह undecidable है।

👉 इसका कोई general algorithm नहीं हो सकता।


🚫 11. Introduction to Undecidability

कुछ problems ऐसे होते हैं जिन्हें किसी भी algorithm से हल नहीं किया जा सकता, यानी:

❌ कोई Turing Machine exist नहीं करती जो सभी cases में सही निर्णय दे सके।

उन्हें कहते हैं — Undecidable Problems


🔐 12. Undecidable Problems about TMs

ProblemStatus
TM halts on input www?❌ Undecidable
Two TMs accept same language?❌ Undecidable
TM accepts all strings?❌ Undecidable
TM accepts empty language?❌ Undecidable

💌 13. Post Correspondence Problem (PCP)

🔸 परिभाषा:

PCP में आपको दो lists of strings दी जाती हैं:

👉 PCP एक classic undecidable problem है।


🛠️ 14. Modified PCP (MPCP)


🔢 15. Introduction to Recursive Function Theory

यह theory यह अध्ययन करती है कि कौन-कौन से functions effectively computable हैं।

यह तीन मुख्य functions से शुरू होती है:

  1. Zero Function
  2. Successor Function
  3. Projection Function

और उनके combination से complex recursive functions बनते हैं।


📘 संक्षेप सारांश (Quick Recap)

टॉपिकविवरण
TMकंप्यूटेशन का सबसे पावरफुल मॉडल
UTMGeneral-purpose TM
Recursive vs RER ⊆ RE
Halting ProblemUndecidable
Undecidable TM Problemsकई महत्वपूर्ण सवालों का हल नहीं
PCP / MPCPMatching problem → Undecidable
Recursive Function TheoryComputable functions का अध्ययन

Exit mobile version