NFA over Σ={a,b}, states {q0,q1}, start q0, final {q1}:
δN(q0,a)={q0,q1}, δN(q0,b)={q0}, δN(q1,b)={q1}.
(Yeh un strings ko accept karta hai jisme ek a ke baad eventually ek b ho… chaliye bas build karte hain.)
DFA state
on a
on b
A={q0} (start)
{q0,q1}=B
{q0}=A
B={q0,q1} (accept)
{q0,q1}=B
{q0,q1}=B
AaB kyun? MOVE({q0},a)={q0,q1}, koi ε nahi toh ECLOSE aise hi chhod deta hai. Naya state → ise B kehte hain.
B accepting kyun hai?B∩F={q0,q1}∩{q1}={q1}=∅. ✔
BbB kyun? MOVE({q0,q1},b)={q0}∪{q1}={q0,q1}=B.
Possible 22=4 subsets mein se sirf 2 reachable hain — hum unreachable wale kabhi list nahi karte.
NFA: states {0,1,2}, start 0, final {2}, Σ={a}.
δ(0,ε)={1}, δ(1,a)={2}, δ(2,ε)={1}.
Step 1 — start:q0′=ECLOSE({0})={0,1}.
Kyun?0 se ek ε-edge 1 par jaati hai; 1 se koi nahi. Ise A={0,1} kaho.
Step 2 — A on a: MOVE({0,1},a)={2} (sirf 1 ke paas a-edge hai). Phir ECLOSE({2})={2,1}={1,2} (ε-edge 2→1). B={1,2} kaho.
Step 3 — B on a: MOVE({1,2},a)={2}, ECLOSE → {1,2}=B. Self-loop.
DFA state
on a
accept?
A={0,1} (start)
B
{0,1}∩{2}=∅ → no
B={1,2}
B
2 hai → yes
Toh DFA a,aa,aaa,… yaani a+ accept karta hai. "aa" trace karo: AaBaB (accept). ✔ "" trace karo: A par rehta hai, reject. ✔
Recall Feynman: explain to a 12-year-old
Socho ek aisa maze hai jahan kuch forks par ek magic robot copies mein split ho sakta hai aur ek saath har path try karta hai. Woh NFA hai. Ek normal robot (DFA) split nahi ho sakta — woh ek path chalata hai. Toh uski jagah, normal robot ek notebook carry karta hai jisme likha hota hai "magic robot abhi kin-kin rooms mein khada ho sakta hai." Har baar jab woh ek letter padhta hai, woh poori list ek saath update karta hai. Agar list mein koi bhi room exit hai, woh "Accepted!" chilla deta hai. Notebook ka content = ek DFA state. Kyunki rooms ki sirf finite possible lists hain, robot kabhi hamesha ke liye nahi kho sakta.