जवाबों:
एक समस्या को पूरा करने के लिए एनपी पूरा हो गया है, आपको इसकी आवश्यकता है:
दूसरे शब्दों में, कुछ जानकारी दी C, तो आप एक बहुपद समय एल्गोरिथ्म बना सकते हैं Vकि हर संभव इनपुट के लिए की पुष्टि करेगा Xकि क्या Xआपके डोमेन में है या नहीं।
साबित करें कि वर्टेक्स कवर की समस्या (जो कि किसी ग्राफ के लिए है G, क्या इसका आकार एक वर्टिकल कवर सेट है kजैसे कि हर किनारे में Gकवर सेट में कम से कम एक वर्टेक्स है ?) एनपी में है:
हमारा इनपुट Xकुछ ग्राफ Gऔर कुछ संख्या है k(यह समस्या परिभाषा से है)
हमारी जानकारी के Cलिए " Gआकार के ग्राफ में कोने के किसी भी संभावित सबसेट k" होना
फिर हम एक एल्गोरिथ्म लिख सकते हैं V, जो दिया गया है G, kऔर C, वापस आ जाएगा कि क्या सेट का बहुवचन समय के लिए वर्टिकल कवर है Gया नहीं ।
फिर हर ग्राफ के लिए G, अगर वहाँ " Gआकार के कोने के कुछ संभावित उपसमुच्चय" मौजूद हैं, kजो एक शीर्ष आवरण है, तो Gअंदर है NP।
ध्यान दें कि हमें बहुपद समय में खोजने की आवश्यकता नहीं है C। यदि हम कर सकते हैं, तो समस्या `पी।
ध्यान दें कि एल्गोरिथ्म Vको प्रत्येक के लिए G , कुछ के लिए काम करना चाहिए C। हर इनपुट के लिए वहाँ जाना चाहिए मौजूद जानकारी हमें सत्यापित करें कि क्या इनपुट या समस्या डोमेन में है नहीं मदद कर सकता है। यही है, वहाँ एक इनपुट नहीं होना चाहिए जहाँ जानकारी मौजूद नहीं है।
इसमें सैट जैसी एक ज्ञात एनपी-पूर्ण समस्या , फॉर्म में बूलियन अभिव्यक्तियों का समूह शामिल है:
(ए या बी या सी) और (डी या ई या एफ) और ...
जहाँ अभिव्यक्ति संतोषजनक है , वहाँ इन बूलियंस के लिए कुछ सेटिंग मौजूद है, जो अभिव्यक्ति को सच बनाती है ।
फिर बहुपद समय में अपनी समस्या के लिए एनपी-पूर्ण समस्या को कम करें ।
यही कारण है, कुछ इनपुट दिया जाता है Xके लिए SAT(या जो भी एन पी-सम्पूर्ण समस्या का उपयोग कर रहे), कुछ इनपुट बनाने Yआपकी समस्या के लिए, ऐसा है कि Xसैट में है यदि और केवल यदि Yआपकी समस्या है। समारोह f : X -> Yको बहुपद समय में चलना चाहिए ।
ऊपर दिए गए उदाहरण में, इनपुट Yग्राफ Gऔर कवर के आकार का होगा k।
एक के लिए पूरा सबूत , आप दोनों को साबित करना होगा:
वह आपकी समस्या Xमें SAT=> Yमें है
और Yआपकी समस्या में => Xमें SAT।
marcog के जवाब में कई अन्य एनपी-पूर्ण समस्याओं के साथ एक लिंक है जो आप अपनी समस्या को कम कर सकते हैं।
फुटनोट: चरण 2 में ( साबित करें कि यह एनपी-हार्ड है ), वर्तमान समस्या के लिए एक और एनपी-हार्ड (जरूरी नहीं कि एनपी-पूर्ण) समस्या को कम करना होगा, क्योंकि एनपी-पूर्ण समस्याएं एनपी-हार्ड समस्याओं का एक सबसेट हैं (जो हैं) एनपी में भी)।
आपको जो समस्या है, उसे एक NP-Complete समस्या को कम करने की आवश्यकता है। यदि कमी को बहुपद समय में किया जा सकता है तो आपने साबित कर दिया है कि आपकी समस्या एनपी-पूर्ण है, यदि समस्या पहले से ही एनपी में है, क्योंकि:
यह एनपी-पूर्ण समस्या से आसान नहीं है, क्योंकि इसे बहुपद समय में इसे कम किया जा सकता है जो समस्या को एनपी-हार्ड बनाता है।
अधिक के लिए http://www.ics.uci.edu/~eppstein/161/960312.html का अंत देखें ।
यह साबित करने के लिए कि एक समस्या L, NP- पूर्ण है, हमें निम्नलिखित चरण करने की आवश्यकता है:
सबसे पहले, आप दिखाते हैं कि यह एनपी में बिल्कुल झूठ है।
फिर आपको एक और समस्या का पता चलता है, जिसे आप पहले से जानते हैं कि एनपी पूरा हो चुका है और यह दर्शाता है कि आप अपनी समस्या को कैसे बहुपद से कम करते हैं।