4.6.24 · Coding › Theory of Computation
Intuition Ek sentence mein problem ki jaan
Kya koi answer dhundhna utna hi aasaan hai jitna usse check karna?
Agar koi tumhe ek completed Sudoku de de, tum usse jaldi verify kar sakte ho. Lekin usse scratch se bharna kaafi mushkil lagta hai. P vs NP yahi poochta hai: kya yeh "feeling" ek real mathematical wall hai, ya sirf humari cleverness ki kami?
Hum decision problems study karte hain — woh questions jinke yes/no answers hote hain (jaise "Kya is graph mein ek aisa route hai jo saare cities ko 100 se kam length mein visit kare?"). Hum difficulty ko is baat se measure karte hain ki running time, input size n ke saath kaise badhti hai.
Definition Polynomial time
Ek algorithm polynomial time mein run karta hai agar uska worst-case step count O ( n k ) ho kisi constant k ke liye (jaise n 2 , n 3 ). Inhe "efficient / tractable" maana jaata hai.
Iska ulta exponential hota hai jaise 2 n — bade n ke liye practically impossible.
P = un decision problems ka set jo ==deterministic algorithm se polynomial time mein solve kiye ja sakte hain==.
Example: "Kya x is sorted list mein hai?" → binary search, O ( log n ) . ✔ P mein hai.
N P = un decision problems ka set jinke yes-answers ko polynomial time mein verify kiya ja sake , ek short hint (ek "certificate" / "witness") dene par.
"NP" = N ondeterministic P olynomial — "Non-Polynomial" NAHI! (neeche steel-manned kiya hai)
Intuition NP ka Verifier view (yaad rakhne wala)
Ek problem N P mein hai agar ek polynomial-time checker V ( x , c ) exist kare aisa ki:
agar input x ka sahi answer yes hai, toh koi na koi certificate c (polynomial length ka) aisa ho jisse V ( x , c ) = yes mile;
agar answer no hai, toh koi bhi certificate V ko fool na kar sake.
Sudoku: certificate = the filled grid; checker = "kya saare rows/cols/boxes valid hain?" — fast. Toh Sudoku-completion NP mein hai.
Intuition Solve karna, check karne se zyada powerful hota hai
Agar tum kisi problem ko poly time mein solve kar sakte ho, toh usse poly time mein verify bhi kar sakte ho — bas certificate ko ignore karo aur khud solve karo! Toh P mein har problem automatically N P mein bhi hai.
Definition NP-hard / NP-complete
Ek problem NP-hard hai agar har N P problem usmein poly time mein reduce ho sake (woh kam se kam utni hi mushkil hai jitna poora NP).
Woh NP-complete hai agar woh NP-hard bhi ho AUR khud NP mein bhi ho — "NP ke andar ki sabse mushkil problems".
Cook–Levin Theorem (1971): SAT (Boolean satisfiability) NP-complete hai — pehli wali.
Intuition NP-complete problems master key kyun hain
Agar tum sirf EK bhi NP-complete problem ke liye poly-time algorithm dhundh lo (SAT, Travelling Salesman decision, 3-Colouring, Subset-Sum...), toh tum poore NP ko poly time mein solve kar sakte ho → P = N P . Yeh sab saath khade hain ya saath girte hain.
Worked example Concrete consequences agar
P = N P
Cryptography collapse ho jaayegi. RSA ki security is baat par depend karti hai ki factoring find karna hard hai lekin check karna easy. Agar P = N P , toh encryption todna easy ho jaayega.
Optimization trivial ho jaayega. Logistics, protein folding, chip design, scheduling — sab jaldi solve ho jaayenge.
Mathematics badal jaayega. Short proofs dhundhna utna hi easy ho jaayega jitna unhe check karna; bahut saari "creativity" automated ho jaayegi.
Yeh 7 Clay Millennium Prize Problems mein se ek hai — kisi bhi taraf proof ke liye $1,000,000 .
Worked example Worked reasoning: kya "Subset-Sum" NP mein hai?
Problem: diye gaye integers S aur target t ke liye, kya koi subset hai jo t sum karta ho?
Certificate? Subset khud. — Yeh step kyun? Yeh woh "hint" hai jo ek prover dega.
Check fast? Chuney hue numbers add karo, t se compare karo → O ( n ) . — Kyun? Verification polynomial hona chahiye; addition hai.
✔ Toh Subset-Sum ∈ N P . Kya yeh P mein bhi hai, yeh mushkil part hai (yeh NP-complete hai).
Common mistake "NP ka matlab Non-Polynomial / poly time mein solve nahi hota."
Kyun sahi lagta hai: "NP" "non-polynomial" jaisa lagta hai, aur NP problems slow lagte hain.
Fix: NP = N ondeterministic P olynomial = poly time mein verifiable . Actually P ⊆ N P , toh easy problems NP ke andar hain! NP checking ke baare mein hai, slowness ke baare mein nahi.
Common mistake "P vs NP pehle hi solve ho chuka hai — sab jaante hain
P = N P ."
Kyun sahi lagta hai: Experts maante hain P = N P aur aise hi behave karte hain.
Fix: Belief ≠ proof. Yeh open hai. Kisi bhi direction mein proof Millennium Prize jeetta hai.
Common mistake "Agar kisi problem ka exponential brute force hai, toh woh NP-complete hogi /
P mein nahi hogi."
Kyun sahi lagta hai: Brute force exponential lagta hai, toh problem mushkil lagti hai.
Fix: Brute force slow hona best algorithm ke baare mein kuch nahi kehta. Kai problems jinke naive exponential approaches hain woh actually P mein hain (jaise shortest path, primality testing — AKS 2002).
Common mistake "NP-hard problems NP mein hain."
Kyun sahi lagta hai: naam mein "NP" hai.
Fix: NP-hard ka matlab hai "kam se kam poore NP jitna mushkil" — yeh zyada mushkil ho sakta hai aur NP ke bahar bhi ho sakta hai (jaise Halting Problem NP-hard hai lekin undecidable hai). Sirf NP-complete = NP-hard ∩ NP.
Recall Feynman: ek 12-saal ke bachche ko explain karo
Ek jigsaw puzzle imagine karo. Check karna ki finished puzzle sahi hai aasaan hai — bas ek nazar daalo aur picture dekho. Lekin usse pieces ki dher se solve karna mehnat ka kaam hai. "P" problems waise puzzles hain jo ek robot jaldi finish kar sakta hai. "NP" problems waise puzzles hain jahan, agar koi tumhe finished picture dikhaaye, tum jaldi keh sako "haan, sahi hai!" Yeh bada mystery — P vs NP — yeh hai: kya inhi check-easy puzzles ke liye hamesha koi secret quick way hai unhe solve karne ka, ya kuch puzzles hamesha slow rehne ke liye doomed hain? Dharti par koi nahi jaanta. Jo bhi pata lagaaye uske liye ek million dollars wait kar rahe hain.
Mnemonic Dono classes yaad rakhne ka trick
P = "Promptly solve." NP = "Notarize a Proof."
P solve karta hai; NP sirf ek diya hua proof notarize (verify) karna chahta hai. Aur: "N P = N ice if someone P rovides the answer."
P ka kya matlab hai (class) Woh problems jo deterministic polynomial time O ( n k ) mein solvable hain.
NP ka kya matlab hai N ondeterministic P olynomial — woh problems jinke yes-answers ek short certificate ke saath polynomial time mein verifiable hain.
P vs NP question kya hai Kya P = N P ? Kya har woh problem jo verify karna easy hai, solve karna bhi easy hai?
P ⊆ N P kyun haiEk poly-time solver ek verifier ki tarah kaam kar sakta hai jo certificate ignore karta hai aur instance khud solve kar leta hai.
Certificate/witness kya hota hai Ek short (poly-length) hint jo verifier ko ek yes-instance ko poly time mein confirm karne deta hai.
NP-complete define karo Ek aisi problem jo N P mein bhi ho aur NP-hard bhi ho (har N P problem poly time mein usmein reduce hoti hai).
Cook–Levin theorem kya kehta hai SAT (Boolean satisfiability) NP-complete hai — pehli proven NP-complete problem.
Agar ek NP-complete problem P mein hai, toh kya hoga P = N P — sab ek saath collapse ho jaayenge.
Common myth: NP ka matlab "non-polynomial" hai. Sahi hai? Nahi. NP = verifiable in poly time; actually P ⊆ N P .
NP-hard aur NP-complete mein kya fark hai NP-hard = kam se kam poore N P jitna mushkil (N P ke bahar bhi ho sakta hai); NP-complete = NP-hard aur N P mein bhi.
Agar P = N P ho toh ek consequence batao Zyaatar public-key cryptography (jaise RSA) toot jaayegi.
Kya P vs NP solve ho chuka hai? Nahi — yeh ek open Clay Millennium Prize problem hai ($1M).
Class NP: verifiable fast