State minimization techniques
3.4.12· Hardware › Sequential Circuits
WHY minimize karte hain?
- WHY matters karta hai: states ki number decide karti hai flip-flops ki number . States kam karne se ek flip-flop drop ho sakta hai, next-state/output logic shrink ho sakta hai, power aur area bachta hai.
- WHAT exploit karte hain: redundant states — woh states jo kisi doosre state ke equivalent hain.
- HOW dhundhen: states ko "abhi-tak-indistinguishable" groups mein partition karo, phir tab tak refine karte raho jab tak koi group split na ho sake. Jo saath bachte hain woh actually equivalent hain.
HOW: partition-refinement algorithm khud se derive karna
Hum equivalence relation ko layer by layer build karte hain -distinguishability ke idea se.
Refinement rule ka derivation. Maano woh partition hai jahan do states ek block share karte hain iff woh NOT -distinguishable hain (length- inputs tak indistinguishable).
- (base case): length-0 future ke baare mein kuch nahi batata, isliye hum sirf immediate output par split karte hain. States ko same block mein rakho iff woh same output produce karte hain (Moore: same state output; Mealy: har input ke liye same output row).
- Inductive step (): mein saath rahenge iff woh mein saath the AND har input ke liye, aur ke same block mein hain. (Kyunki length- string se distinguishable hona = "abhi alag" YA "aisa state jao jo length- se distinguishable ho".)
- Termination: har refinement ya toh ek block split karta hai ya partition ko unchanged chhod deta hai. Blocks ko forever refine nahi kiya ja sakta (finite states). Jab ho, hum coarsest stable partition tak pahunch gaye hain — yahi exactly equivalence classes hain. Yeh at most steps mein converge karta hai.
Har final block = minimal machine ka ek state (yeh minimal DFA renaming tak unique hota hai — yeh Myhill–Nerode result hai).

Do practical techniques
1. Partitioning (successive refinement) — upar describe kiya
Fast, systematic, state table ke roop mein di gayi machines ke liye acha.
2. Implication chart (pairwise) method
States ke har pair ko ek triangular chart mein list karo. Har cell mein:
- Agar do states ke alag outputs hain → seedha ✗ mark karo (distinguishable).
- Warna implied pairs likho: woh next-state pairs jo BHI equivalent hone chahiye.
- Phir sweep karo: agar koi implied pair ✗ ho jaaye, toh is cell ko bhi ✗ mark karo. Stable hone tak repeat karo.
- Ant mein unmarked cells = equivalent pairs → unhe merge karo.
Worked Example 1 — Partitioning (Moore machine)
State table (input ), output Moore state output hai:
| State | N() | N() | Output |
|---|---|---|---|
| A | B | C | 0 |
| B | A | D | 0 |
| C | D | A | 0 |
| D | D | A | 1 |
Step P0 — output se split karo. Outputs: A,B,C = 0 ; D = 1. Yeh step kyun? Length-0 info = current output; D already distinguishable hai (woh akela 1 hai).
Step P1 — next states ko blocks ke against check karo. Block1, block2 mano.
| State | on 0 | block | on 1 | block |
|---|---|---|---|---|
| A | B | 1 | C | 1 |
| B | A | 1 | D | 2 |
| C | D | 2 | A | 1 |
Yeh step kyun? Do states same output share kar sakte hain lekin alag blocks mein "leak" ho sakte hain — woh length-2 distinguisher hai. A→(1,1), B→(1,2), C→(2,1): teeno signatures alag hain.
Step P2: partition aur refine nahi ho sakta (sab singletons hain). Ruko. Conclusion: koi states merge nahi hote — yeh machine already minimal hai.
Worked Example 2 — states DO merge karte hain
| State | N(0) | N(1) | Output |
|---|---|---|---|
| A | B | C | 0 |
| B | B | D | 0 |
| C | B | C | 0 |
| D | B | D | 1 |
P0 (output se): . Kyun? D akela output-1 state hai.
P1: blocks: 1, 2.
| State | on 0 → block | on 1 → block | signature |
|---|---|---|---|
| A | B → 1 | C → 1 | (1,1) |
| B | B → 1 | D → 2 | (1,2) |
| C | B → 1 | C → 1 | (1,1) |
A aur C ki same signature (1,1) hai; B alag hai.
P2: naye blocks ke saath re-check karo: , , .
| State | on 0 | on 1 | signature |
|---|---|---|---|
| A | B(β) | C(α) | (β,α) |
| C | B(β) | C(α) | (β,α) |
Same signature → A aur C merged rahenge. Partition stable hai.
Minimized table ( rename karo):
| State | N(0) | N(1) | Out |
|---|---|---|---|
| S | B | S | 0 |
| B | B | D | 0 |
| D | B | D | 1 |
Yeh step kyun? 4 states → 3 states. Yahan abhi bhi 2 flip-flops chahiye, lekin logic simplify ho jaata hai aur bade machines mein aksar ek flip-flop drop ho jaata hai. Merge karne se pehle verify karo Forecast se: predict karo "input = 1,1" ka output A se (A→C, out 0; C→C, out 0) vs C se (C→C, out 0; C→C, out 0) — identical, ✓.
Common mistakes (Steel-man + fix)
Active recall
Recall Feynman: ek 12-saal ke bachche ko explain karo
Socho bahut saare toy robots hain. Do robots "same" hain agar chahe tum kaun se bhi buttons dabao, woh same beeps bajaate hain aur same tarah kaam karte hain. Agar tumhe aisa koi "twin" mile, toh ek phenko — tumhe sirf ek chahiye. Twins dhundhne ke liye: pehle un robots ko group karo jo abhi same beep karte hain. Phir dekho har robot kahan jaata hai; agar do "same-beep" robots alag groups mein jaate hain, woh real twins nahi hain — unhe split karo. Tab tak split karte raho jab tak kuch na badle. Jo groups bachte hain woh sache twins hain. Kam robots = sasta toy!
Do states equivalent kab hote hain?
Successive refinement mein base partition P0 kya hai?
Refinement rule P_k → P_{k+1} batao.
Partition refinement kab rukti hai?
k-distinguishable states kya hote hain?
Implication chart mein ek cell mark ✗ ka kya matlab hai?
Implication chart mein final unmarked cell ka kya matlab hai?
States merge karna hardware mein kyun help karta hai?
"Same output" wali common mistake kya hai?
Kya minimized machine unique hoti hai?
Connections
- Finite State Machines — woh object jise hum minimize karte hain.
- Mealy vs Moore Machines — affect karta hai ki kaise define hoti hai.
- State Assignment (Encoding) — minimization ke baad hota hai; flip-flop bits set karta hai.
- Flip-Flops — state count → count .
- Myhill–Nerode Theorem — unique minimal DFA ka theoretical basis.
- Karnaugh Maps — combinational simplification analog (dono redundancy remove karte hain).