4.6.29 · Coding › Theory of Computation
Bahut saare problems jinki hum parwah karte hain wo NP-hard hain — hum believe karte hain ki koi algorithm unhe exactly polynomial time mein solve nahi kar sakta. Lekin humein answers toh chahiye hi. Trick yeh hai: perfect answer ki demand karna band karo. Balki fast chalo aur guarantee do ki answer optimal se "zyada door" nahi hai. Ek approximation algorithm ek polynomial-time algorithm hota hai jo ek provable guarantee ke saath aata hai ki woh kitna bura ho sakta hai.
Key insight jo ise possible banata hai: jab hum optimum OPT dhundh nahi sakte, tab bhi hum aksar OPT par ek sasta lower/upper bound dhundh sakte hain aur apne solution ko OPT se compare karne ki bajaye us bound se compare karte hain.
Definition Approximation ratio
Maano OPT optimal value hai aur ALG woh value hai jo hamaara algorithm same input par return karta hai.
Ek minimization problem ke liye, ALG ek ==ρ -approximation== hai agar har input ke liye:
OPT ALG ≤ ρ , ρ ≥ 1
Ek maximization problem ke liye:
OPT ALG ≥ ρ , ρ ≤ 1
(kuch books max-ratios ko flip kar deti hain taaki ρ ≥ 1 ho OPT / ALG ke through — convention dhyan se dekho.)
ρ saare inputs par worst-case ratio hai. Chhota-lekin-≥ 1 (min ke liye) matlab better algorithm. ρ = 1 exact hoga.
Intuition WHY bound se compare karein, OPT se nahi?
Hum OPT compute nahi kar sakte (yahi toh problem hai!). Isliye har minimization proof mein yeh pattern dikhega. Ek lower bound LB dhundho optimum par (taaki LB ≤ OPT ), phir dikhao ki tumhara algorithm kabhi ρ times us bound se zyada nahi jaata:
ALG ≤ ρ ⋅ LB ≤ ρ ⋅ OPT .
Pehli inequality tum directly apne algorithm ke baare mein prove karte ho; doosri free hai kyunki LB ≤ OPT . OPT khud kabhi compute nahi karna padta — woh bas beech mein baitha rehta hai.
Graph G = ( V , E ) diya hua hai, sabse chhota set C ⊆ V dhundho taaki har edge ka kam se kam ek endpoint C mein ho. (Decision version NP-complete hai.)
Algorithm (Maximal Matching based):
C ← ∅ .
Jab tak koi uncovered edge ( u , v ) ho: dono u aur v ko C mein daalo, saari edges jo u ya v ko touch karti hain unhe delete karo.
C return karo.
Worked example Yeh ratio 2 kyun deta hai? (Scratch se derivation)
Woh edges ( u , v ) jo humne step 2 mein choose kiye woh ek matching M banate hain (koi do vertex share nahi karte — jab hum ( u , v ) choose karte hain toh unki saari edges delete kar dete hain).
Yeh step kyun? Do facts (yahaan lower bound LB = ∣ M ∣ hai):
Lower bound on OPT: kisi bhi vertex cover ko M ki har edge cover karni padti hai. Kyunki M ki edges disjoint hain, tumhe kam se kam ek distinct vertex per matched edge chahiye. Isliye LB = ∣ M ∣ ≤ OPT .
Upper bound on ALG: humne exactly 2 vertices per matched edge daale, isliye ALG = 2∣ M ∣ = 2 LB .
Standard pattern mein combine karo:
ALG = 2∣ M ∣ = 2 LB ≤ 2 ⋅ OPT .
Isliye ρ = 2 . ✅ Yeh ek 2-approximation hai, aur notice karo ki humne OPT kabhi compute nahi kiya — sirf lower bound ∣ M ∣ .
Cities jinke distances triangle inequality d ( a , c ) ≤ d ( a , b ) + d ( b , c ) satisfy karte hain. Sabse chhoti tour dhundho jo saari cities ko ek baar visit kare.
Algorithm (Double-tree):
Ek Minimum Spanning Tree T banao.
T ka DFS/Euler walk karo (har edge twice) → walk cost = 2 ⋅ cost ( T ) .
Repeated cities ko shortcut karo (already-visited ko skip karo) → ek valid tour.
Worked example Ratio 2 ki derivation
Yahaan lower bound LB = cost ( T ) hai, MST cost.
Lower bound: kisi bhi optimal tour se ek edge delete karo → ek spanning tree (ek path ek tree hai). Isliye LB = cost ( T ) ≤ OPT . (MST sabse sasta tree hai.)
Yeh step kyun? OPT saare vertices visit karta hai; ek edge hatao toh woh saare vertices par connected & acyclic rehta hai = ek spanning tree, jo minimum spanning tree se ≥ hai.
Doubling: Euler walk ki cost 2 cost ( T ) = 2 LB hai.
Shortcutting: triangle inequality se, kisi vertex ko skip karna kabhi cost nahi badhata .
Yeh step kyun? a → b → c jaana, a → c se replace karna ≤ original hai.
Isliye ALG ≤ 2 cost ( T ) = 2 LB ≤ 2 OPT . ✅ (Christofides ise 3/2 tak improve karta hai.)
n jobs ko m machines pe assign karo, makespan (max load) minimize karo.
Worked example Greedy + do lower bounds
Greedy: har job ko currently sabse kam loaded machine par daalo.
Maano machine i sabse last mein finish karti hai load L ke saath, aur j woh last job hai jo wahaan rakkha gaya (size t j ).
j daalne se thoda pehle, machine i minimum thi, isliye saari machines ka load ≥ L − t j tha. Sum karo:
∑ k t k ≥ m ( L − t j ) ⇒ L − t j ≤ m 1 ∑ t k .
OPT par do lower bounds:
OPT ≥ m 1 ∑ t k (avg load — koi na koi toh average se zyada paayega hi).
OPT ≥ max k t k ≥ t j (ek single job kaheen toh jaayegi).
Isliye L = ( L − t j ) + t j ≤ OPT + OPT = 2 OPT . ✅
(Yahaan humne do lower bounds use kiye aur unhe add kiya — same spirit: sab kuch OPT se neeche se bound karo.)
Common mistake Common errors ko steel-man karna
Mistake A: "2-approximation ka matlab main 50% time sahi hoon / 50% galat hoon."
Kyun sahi lagta hai: "2" ek percentage jaisa lagta hai. Fix: iska matlab cost ≤ 2 × optimal worst case mein, hamesha, deterministically — yeh probability nahi hai. Usually tum 2 × se kaafi close hote ho.
Mistake B: "Ratio prove karne ke liye mujhe OPT pata hona chahiye."
Kyun sahi lagta hai: ratio mein literally OPT hai. Fix: tum ek lower bound LB ≤ OPT (matching size, MST cost, average load) se compare karte ho: dikhao ALG ≤ ρ LB , phir LB ≤ OPT finish karta hai. OPT kabhi compute nahi hota.
Mistake C: MST-double-tree ko non-metric TSP par use karna.
Kyun sahi lagta hai: algorithm theek se run hota hai. Fix: shortcutting ke liye triangle inequality chahiye; uske bina bound collapse ho jaata hai, aur general TSP mein koi constant-factor approximation nahi hoti (unless P=NP).
Mistake D: Maximization ke liye likhna ALG / OPT ≤ ρ .
Fix: maximization ratios neeche se bound karte hain: ALG ≥ ρ OPT jahan ρ ≤ 1 .
Recall Active recall — answers cover karo
2-approximation kya guarantee karta hai?
Vertex Cover mein, OPT ≥ ∣ M ∣ kyun hai?
Metric TSP mein, cost(MST) ≤ OPT kyun hai?
Kaunsi property shortcutting ko cost nahi badhane deti?
PTAS aur FPTAS mein kya farq hai?
Recall Feynman: ek 12-saal ke bacche ko explain karo
Socho ek backpack ko perfect tarike se pack karna forever lagg jaata hai. Iske bajaye tum ek quick rule of thumb use karte ho. Tum exactly nahi bata sakte ki perfect packing kitni achi hai — lekin tum ek floor dhundh sakte ho: "perfect packing ko kam se kam itni space chahiye." Phir tum dikhate ho "mera quick tarika us floor se zyada se zyada double use karta hai." Kyunki perfect answer bhi floor ke upar hai, mera quick answer perfect wale se zyada se zyada double hai. Woh promise — perfect answer jaane bina — approximation ratio hai.
Mnemonic Proof pattern yaad rakho
"LB-LADDER": ALG ≤ ρ ⋅ LB ≤ ρ ⋅ OPT . Step 1: prove karo ki tumhara algorithm ek Lower Bound ke ρ times se kam hai. Step 2: woh LB ≤ OPT hai, isliye tum free mein OPT tak chadh jaate ho. Tumhare teen favourite lower bounds: Matching, MST, Average .
NP-completeness — kyun hum approximate karte hain.
Vertex Cover · Maximum Matching — 2-approx lower bound.
Minimum Spanning Tree — Metric TSP ka bound.
Greedy Algorithms — load balancing.
PTAS and FPTAS · Inapproximability / PCP theorem .
Triangle Inequality — shortcutting enable karta hai.
Minimization problem ke liye approximation ratio kya hota hai? Worst-case ratio ALG/OPT ≤ ρ (ρ≥1) saare inputs par; ρ=1 exact hai.
Hum OPT jaane bina ratios kyun prove kar sakte hain? Ek lower bound LB ≤ OPT dhundho (matching size, MST cost, average load), prove karo ALG ≤ ρ·LB, phir ALG ≤ ρ·LB ≤ ρ·OPT.
Vertex Cover 2-approx: algorithm kya hai? Baar baar koi bhi uncovered edge chuno, DONO endpoints ko cover mein daalo, incident edges remove karo.
Vertex Cover proof mein OPT ≥ |M| kyun hai? Choose ki gayi edges ek matching banati hain; har disjoint edge ko ≥1 distinct cover vertex chahiye, isliye OPT ≥ matching size.
Vertex Cover mein ALG = 2|M| kyun hai? Hum exactly 2 vertices per matched edge dalete hain.
Metric TSP double-tree: OPT par lower bound? Optimal tour se ek edge hatao toh spanning tree milta hai, isliye cost(MST) ≤ OPT.
Shortcutting tour cost kyun nahi badhata? Triangle inequality: ek city skip karna (a→c instead of a→b→c) ≤ detour cost hai.
Load balancing greedy ratio aur kyun? 2; kyunki OPT ≥ average load aur OPT ≥ max job size, aur L ≤ (L−t_j)+t_j ≤ 2·OPT.
PTAS aur FPTAS mein kya farq hai? Dono (1+ε)-approx dete hain; FPTAS n AND 1/ε mein polynomial time mein chalta hai, PTAS sirf n mein (1/ε mein exponential ho sakta hai). Har FPTAS ek PTAS hai.
Kya general (non-metric) TSP mein constant-factor approximation hai? Nahi (unless P=NP).
"2-approximation" ke baare mein common myth? Yeh probability/percentage NAHI hai; yeh deterministic worst-case bound hai: ALG ≤ 2·OPT hamesha.
lower bound LB = size of M le OPT
adds 2 verts per edge, ALG = 2 times size of M
Bound on OPT, not OPT itself
Maximal matching algorithm