Ek clean translation ek function f hai jo poly time mein computable hai jisme
x∈A⟺f(x)∈L.
Yahi many-one (Karp) reduction A≤pL hai.
"HarA∈ NP se kam-se-kam utna hard" ⇒ yeh sabA∈NP ke liye require karo.
Yahi literally NP-hard ki definition hai. Kuch extra (jaise L∈ NP) ki zarurat nahi thi — yahi precisely reason hai ki NP-hard NP ke upar stick out kar sakta hai.
Socho ek classroom mein "NP" naam ke homework problems hain. Ek problem NP-hard hoti hai agar woh ek "master key" ho: agar tum use fast solve kar sako, toh tum us classroom ki har problem quickly solve kar sakte ho — pehle unhe isme translate karke. Lekin surprise yeh hai — master key kisi bilkul alag, aur bhi impossible room ki problem se belong kar sakti hai (jaise "kya yeh computer program kabhi band hoga?"). Woh key NP room kholne ke liye kaafi strong hai, chahe woh khud kahin aur mushkil jagah mein rehti ho. Toh "NP-hard" ka matlab hai poori NP class jitna kam-se-kam tough, iska member hona nahi.
Ek problem L jisme har A∈ NP, polynomial time mein usmein reduce hota hai (A≤pL sabhi A∈NP ke liye) — NP ke sab se kam-se-kam utna hi hard.
NP-complete vs NP-hard?
NP-complete = NP-hard AND NP mein; NP-hard akele NP mein membership require nahi karta.
Ek NP-hard problem bataao jo NP mein NAHI hai.
Halting Problem (undecidable, isliye koi poly-time verifier nahi) — ya optimization TSP (decision problem nahi).
Ek NP-hard problem NP mein fail kyun ho sakti hai?
NP ko ek yes/no decision problem chahiye jisme poly-time-checkable certificate ho; NP-hard sirf ek hardness lower bound demand karta hai, toh optimization/undecidable problems hard toh qualify karti hain lekin certificate/type nahi rakhtin.
Ek naya problem L NP-hard prove karne ke liye kya karte ho?
Ek KNOWN NP-hard problem K ko L mein reduce karo (K≤pL); transitivity se poora NP L mein reduce ho jaata hai.
NP-hardness prove karne ke liye reduction direction kaun si hai — L mein ya L se bahar?
L mein: known-hard ≤pL. L ko kisi easy mein reduce karna sirf L ki easiness prove karta hai, hardness nahi.
≤p ki transitivity state karo aur justify karo.
Agar A≤pB aur B≤pC toh A≤pC, h=g∘f ke zariye; poly∘poly poly hai aur answers preserve hote hain.
Agar P=NP, toh kya sab NP-hard problems poly-time ban jaati hain?
Nahi — sirf woh jo NP mein bhi hain (NP-complete). Undecidable NP-hard problems jaise HALT unsolvable rehti hain.
SAT NP-hard kyun hai?
Cook–Levin: kisi bhi NP machine ki poly-time accepting computation ko ek Boolean formula ke roop mein encode kiya ja sakta hai jo satisfiable hai iff input accept hota hai, poly size mein.