एनपी, एनपी-पूर्ण और एनपी-हार्ड के बीच अंतर क्या हैं?


1107

एनपी , एनपी-पूर्ण और एनपी-हार्ड के बीच अंतर क्या हैं ?

मुझे पूरे वेब पर कई संसाधनों की जानकारी है। मैं आपके स्पष्टीकरणों को पढ़ना चाहता हूं, और इसका कारण यह है कि वे वहां से अलग हो सकते हैं, या ऐसा कुछ है जो मुझे पता नहीं है।

जवाबों:


1437

मुझे लगता है कि आप सहज परिभाषा की तलाश कर रहे हैं, क्योंकि तकनीकी परिभाषा को समझने के लिए काफी समय की आवश्यकता होती है। सबसे पहले, आइए उन परिभाषाओं को समझने के लिए एक प्रारंभिक आवश्यक अवधारणा को याद करें।

  • निर्णय की समस्या : हां या बिना उत्तर वाली समस्या ।

अब, हम उन जटिलता वर्गों को परिभाषित करते हैं

पी

P एक जटिलता वर्ग है जो सभी निर्णय समस्याओं के सेट का प्रतिनिधित्व करता है जिन्हें बहुपद समय में हल किया जा सकता है

यही है, समस्या का एक उदाहरण दिया गया है, उत्तर हां या नहीं का उत्तर बहुपद समय में तय किया जा सकता है।

उदाहरण

एक जुड़े हुए ग्राफ को देखते हुए G, क्या इसके सिरों को दो रंगों का उपयोग करके रंगीन किया जा सकता है ताकि कोई किनारे एक रंग का न हो?

एल्गोरिथम: एक अनियंत्रित शीर्ष के साथ शुरू करें, इसे लाल रंग दें और इसके सभी पड़ोसी नीले और जारी रखें। जब आप बाहर की ओर दौड़ते हैं तो रुकें या आप एक किनारे बनाने के लिए मजबूर हों, इसके दोनों छोर एक ही रंग के होंगे।


एनपी

एनपी एक जटिलता वर्ग है जो सभी निर्णय समस्याओं के सेट का प्रतिनिधित्व करता है जिसके लिए ऐसे उदाहरण हैं जहां उत्तर "हां" में सबूत हैं जिन्हें बहुपद समय में सत्यापित किया जा सकता है।

इसका मतलब यह है कि यदि कोई हमें समस्या का एक उदाहरण देता है और उत्तर के लिए एक प्रमाण पत्र (कभी-कभी एक गवाह कहा जाता है) हां, तो हम जांच सकते हैं कि यह बहुपद समय में सही है।

उदाहरण

एनपी में पूर्णांक कारक है। यह वह समस्या है जो पूर्णांक देता है nऔर m, क्या कोई पूर्णांक fहै 1 < f < m, जैसे कि fविभाजन n( fएक छोटा कारक है n)?

यह एक निर्णय समस्या है क्योंकि उत्तर हां या ना में हैं। अगर किसी हाथ हमें समस्या का एक उदाहरण (ताकि वे हाथ हमें पूर्णांकों nऔर m) और एक पूर्णांक fके साथ 1 < f < m, और दावा है कि fका एक कारक है n(प्रमाण पत्र), हम में जवाब की जांच कर सकते बहुपद समय विभाजन प्रदर्शन करके n / f


एनपी पूरा

एनपी-कम्प्लीट एक जटिलता वर्ग है जो Xएनपी में सभी समस्याओं के सेट का प्रतिनिधित्व करता है जिसके लिए बहुपद समय में किसी अन्य एनपी समस्या Yको कम करना संभव है X

सहज रूप से इसका मतलब है कि हम Yजल्दी से हल कर सकते हैं यदि हम जानते हैं कि कैसे Xजल्दी से हल करना है । संक्षेप में, Yकम करने योग्य है Xअगर वहाँ एक बहुपद समय एल्गोरिथ्म है, fउदाहरणों को बदलने के लिए yकी Yउदाहरणों को x = f(y)की Xसंपत्ति है कि जवाब देने के लिए साथ बहुपद समय में, yहाँ, यदि और केवल यदि जवाब देने के लिए f(y)हां में है।

उदाहरण

3-SAT। यह वह समस्या है जिसमें हमें 3-खंड विच्छेद (ORs) का एक संयोजन (ANDs) दिया जाता है, प्रपत्र के विवरण

(x_v11 OR x_v21 OR x_v31) AND 
(x_v12 OR x_v22 OR x_v32) AND 
...                       AND 
(x_v1n OR x_v2n OR x_v3n)

जहां प्रत्येक x_vijएक बूलियन चर या परिमित पूर्वनिर्धारित सूची से एक चर का निषेध है (x_1, x_2, ... x_n)

यह दिखाया जा सकता है कि हर एनपी समस्या को 3-सैट तक कम किया जा सकता है । इसका प्रमाण तकनीकी है और इसे एनपी की तकनीकी परिभाषा ( गैर-नियतात्मक ट्यूरिंग मशीनों के आधार पर ) के उपयोग की आवश्यकता है । इसे कुक के प्रमेय के रूप में जाना जाता है

एनपी-पूर्ण समस्याओं को महत्वपूर्ण बनाता है अगर एक नियतात्मक बहुपद समय एल्गोरिथ्म उनमें से एक को हल करने के लिए पाया जा सकता है, तो हर एनपी समस्या बहुपद समय में हल करने योग्य है (एक समस्या उन सभी पर शासन करने के लिए)।


एनपी कठिन

सहज रूप से, ये वे समस्याएं हैं जो एनपी-पूर्ण समस्याओं के रूप में कम से कम कठिन हैं । ध्यान दें कि एनपी-हार्ड समस्याओं को एनपी में नहीं होना चाहिए , और उन्हें निर्णय की समस्याएं नहीं होनी चाहिए

यहां सटीक परिभाषा यह है कि एक समस्या Xएनपी-हार्ड है, अगर एक एनपी-पूर्ण समस्या है Y, जैसे कि बहुपद समय में Yreducible हैX

लेकिन चूंकि किसी भी एनपी-पूर्ण समस्या को बहुपद समय में किसी अन्य एनपी-पूर्ण समस्या को कम किया जा सकता है, इसलिए सभी एनपी-पूर्ण समस्याओं को बहुपद समय में किसी भी एनपी-कठिन समस्या को कम किया जा सकता है। फिर, यदि बहुपद समय में एक एनपी-हार्ड समस्या का समाधान है, तो बहुपद समय में सभी एनपी समस्याओं का समाधान है।

उदाहरण

हॉल्टिंग समस्या एक एनपी कठिन समस्या है। यह एक समस्या है जिसने एक कार्यक्रम Pऔर इनपुट दिया है I, क्या यह रुक जाएगा? यह निर्णय की समस्या है लेकिन यह एनपी में नहीं है। यह स्पष्ट है कि किसी भी एनपी-पूर्ण समस्या को कम किया जा सकता है। एक अन्य उदाहरण के रूप में, कोई भी एनपी-पूर्ण समस्या एनपी-हार्ड है।

मेरा पसंदीदा एनपी-पूर्ण समस्या माइन्सवेपर समस्या है


पी = एनपी

यह कंप्यूटर विज्ञान में सबसे प्रसिद्ध समस्या है, और गणितीय विज्ञान में सबसे महत्वपूर्ण बकाया प्रश्नों में से एक है। वास्तव में, क्ले संस्थान समस्या के समाधान के लिए एक मिलियन डॉलर की पेशकश कर रहा है ( क्ले वेबसाइट पर स्टीफन कुक का लेखन काफी अच्छा है)।

यह स्पष्ट है कि P, NP का सबसेट है। खुला सवाल यह है कि क्या एनपी समस्याओं में नियतात्मक बहुपद समय समाधान है या नहीं। यह काफी हद तक माना जाता है कि वे ऐसा नहीं करते हैं। यहां पी = एनपी समस्या के नवीनतम (और महत्व) पर एक उत्कृष्ट हालिया लेख है: पी बनाम एनपी समस्या की स्थिति

इस विषय पर सर्वश्रेष्ठ पुस्तक गैरी एंड जॉनसन द्वारा कंप्यूटर और इंट्रेक्टबिलिटी है।


32
@ पाॅल फिशर: मैं बताता हूं कि SAT बहुपद समय में हॉल्टिंग समस्या के लिए अतिरेक है। निम्नलिखित एल्गोरिथ्म पर विचार करें: चर Iपर प्रस्ताव के रूप में दिए गए n, चर के लिए सभी 2^nसंभव असाइनमेंट का प्रयास करें और अगर प्रस्ताव को संतुष्ट करता है और अन्यथा एक अनंत लूप दर्ज करें। हम देखते हैं कि यह एल्गोरिथ्म अगर और केवल अगर Iसंतोषजनक है तो रुक जाता है। इस प्रकार, अगर हम रुकने की समस्या को हल करने के लिए एक बहुपद समय एल्गोरिथ्म थे तो हम बहुपद समय में SAT को हल कर सकते थे। इसलिए, रोकने की समस्या एनपी-हार्ड है।
जेसन

6
@ जेसन - आप उस तरीके से एक अनिर्णायक समस्या के लिए एक निर्णायक समस्या को कम नहीं कर सकते। निर्णायक समस्याओं का एक निश्चित हां में परिणाम होता है या कोई जवाब नहीं होने के लिए निर्णय लेने योग्य माना जाता है। हॉल्टिंग समस्या का कोई निश्चित हाँ नहीं है या अब उत्तर है क्योंकि एक मनमाना उत्तर किसी भी समाधान को लूप में फेंक सकता है।
rjzii

11
@ रोब: हाँ, मैं कर सकता हूँ। रिड्यूसबल की परिभाषा के लिए आवश्यक नहीं है कि समस्या को हल करने के लिए कम किया जाए। यह या तो कई-एक कटौती या ट्यूरिंग कटौती के लिए सही है।
जसन

5
@ रोब: ठीक है, ठीक है, अगर आप इसे जारी रखना चाहते हैं। सबसे पहले, "निर्णय योग्य" "निर्णय की समस्या" के साथ समान नहीं है जैसा कि आपने इसका उपयोग किया है। "निर्णायक" का अर्थ है, मोटे तौर पर, इसका उत्तर निर्धारित करने के लिए एक "प्रभावी तरीका" है। "प्रभावी विधि", निश्चित रूप से, एक तकनीकी परिभाषा है। इसके अलावा, "गणना योग्य" को "गणना योग्य कार्यों" के संदर्भ में भी परिभाषित किया जा सकता है। तो, हॉल्टिंग समस्या एक निर्णय समस्या है ("क्या यह कार्यक्रम रुकता है?" हाँ / कोई प्रश्न नहीं है) लेकिन यह अनिर्णायक है; यह निर्धारित करने के लिए कोई प्रभावी तरीका नहीं है कि पड़ाव की समस्या का एक उदाहरण रुक जाएगा या नहीं।
जेसन

21
एनपी-हार्ड समस्या के "क्लासिक उदाहरण" के रूप में हॉल्टिंग समस्या का उपयोग करना गलत है। यह कहने जैसा है: "प्रशांत महासागर एक खारे पानी के मछलीघर का एक उत्कृष्ट उदाहरण है।"
माइकल

261

मैं चारों ओर देख रहा हूं और कई लंबे स्पष्टीकरण देख रहा हूं। यहाँ एक छोटा चार्ट दिया गया है जो संक्षेप में उपयोगी हो सकता है:

ध्यान दें कि कठिनाई कैसे ऊपर से नीचे तक बढ़ती है: किसी भी एनपी को एनपी-पूर्ण तक कम किया जा सकता है , और किसी भी एनपी-पूर्ण को एनपी-हार्ड तक कम किया जा सकता है , सभी पी (बहुपद) समय में।

यदि आप P समय में समस्या के अधिक कठिन वर्ग को हल कर सकते हैं, तो इसका मतलब होगा कि आपने पाया कि P समय में सभी आसान समस्याओं को कैसे हल किया जाए (उदाहरण के लिए, P = NP को साबित करना, अगर आपको पता है कि किसी भी NP- पूर्ण समस्या को कैसे हल किया जाए? पी समय)।

____________________________________________________________
| समस्या का प्रकार | P समय में सत्यापन योग्य | P समय में हल करने योग्य | बढ़ती कठिनाई
___________________________________________________________ | |
| पी | हाँ | हाँ | |
| एनपी | हाँ | हां या ना * | |
| एनपी-पूर्ण | हाँ | अज्ञात | |
| एनपी-हार्ड | हाँ या नहीं ** | अज्ञात *** | |
____________________________________________________________________ वी

नोट Yesया Noप्रविष्टियों पर:

  • * एक एनपी समस्या जो P भी P समय में हल करने योग्य है।
  • ** एक एनपी-हार्ड समस्या जो एनपी-पूर्ण भी है, पी समय में सत्यापन योग्य है।
  • *** एनपी-पूर्ण समस्याएं (सभी जो एनपी-हार्ड का सबसेट बनती हैं) हो सकती हैं। बाकी एनपी हार्ड नहीं है।

मुझे यह आरेख भी देखने में काफी उपयोगी लगा कि ये सभी प्रकार एक-दूसरे से कैसे मेल खाते हैं (आरेख के बाएं आधे भाग पर अधिक ध्यान दें)।


मुझे आपके उत्तर से संबंधित संदेह है। मैंने इसे एक अलग प्रश्न में पूछा, लेकिन मुझे इसे यहां पोस्ट करने के लिए कहा गया। क्या आप कृपया यहाँ मेरी मदद कर सकते हैं? stackoverflow.com/questions/21005651/…
श्रीकांत

यह अज्ञात है कि बहुपद समय में एनपी-पूर्ण समस्याएं हल करने योग्य हैं या नहीं। इसके अलावा, एनपी-पूर्ण समस्याएं एनपी-हार्ड हैं, इसलिए कुछ एनपी-कठिन समस्याएं बहुपद समय में पुष्टि योग्य हैं, और कुछ संभव बहुपद-समय हल भी हैं।
फॉक हफनर

यह तालिका गलत और आत्म-विरोधाभासी है। यहां तक ​​कि अगर आप मानते हैं कि एनपी! = पी, जो अभी तक साबित नहीं हुआ है, तो भी यह गलत होगा। उदाहरण के लिए, एनपी-हार्ड वर्ग में एनपी-पूर्ण समस्याएं शामिल हैं; इसलिए आपकी तालिका का दावा है कि एनपी-पूर्ण समस्याएं बहुपद समय में एक साथ सत्यापन योग्य हैं और बहुपद समय में सत्य नहीं हैं।
माइकल

3
@ FalkHüffner धन्यवाद, तालिका अपडेट की गई है (वेन आरेख से अनुवाद करने में एक त्रुटि थी)।
जॉनसन वोंग

1
@PeterRaeves सभी NP- पूर्ण समस्याएँ NP-hard हैं, परिभाषा के अनुसार: NP-complete = (NP और NP-hard)। उलटा सच नहीं है: एनपी-हार्ड में समस्याएं (जैसे कि हॉल्टिंग समस्या) हैं जो एनपी-पूर्ण में नहीं हैं। "एनपी (बहुपद समय में हल नहीं)" - यही नहीं एनपी का मतलब है। एनपी "गैर-निर्धारक-बहुपद" है। P में सभी समस्याएं NP में भी हैं। क्या उलटा सच है प्रसिद्ध अज्ञात है।
जिम बेल्टर

73

यह पूछे गए प्रश्न का बहुत ही अनौपचारिक उत्तर है।

क्या 3233 को 1 से बड़ी दो अन्य संख्याओं के उत्पाद के रूप में लिखा जा सकता है? क्या किसी भी पुल को दो बार लेने के बिना कोनिग्सबर्ग के सेवन ब्रिज के चारों ओर एक रास्ता चलना है ? ये उन सवालों के उदाहरण हैं जो एक सामान्य लक्षण साझा करते हैं। यह स्पष्ट नहीं हो सकता है कि उत्तर को कुशलता से कैसे निर्धारित किया जाए, लेकिन यदि उत्तर 'हां' है, तो प्रमाण की जांच करने के लिए एक छोटा और त्वरित तरीका है। पहले मामले में 51 का एक गैर-तुच्छ कारक है; दूसरे में, पुलों को चलाने के लिए एक मार्ग (बाधाओं की फिटिंग)।

एक निर्णय समस्या हाँ या नहीं के साथ प्रश्नों का एक संग्रह है जो केवल एक पैरामीटर में भिन्न होता है। समस्या कहो COMPOSITE = {" nसमग्र है": nएक पूर्णांक है} या EULERPATH = {"क्या ग्राफ़ Gमें एक यूलर पथ है?": Gएक परिमित ग्राफ़ है}।

यदि स्पष्ट एल्गोरिदम नहीं है, तो अब कुछ निर्णय समस्याएं खुद को कुशल करने के लिए उधार देती हैं। 250 साल पहले यूलर ने "सेवन ब्रिग्स ऑफ़ कोनिग्सबर्ग" जैसी समस्याओं के लिए एक कुशल एल्गोरिथ्म की खोज की।

दूसरी ओर, कई निर्णय समस्याओं के लिए, यह स्पष्ट नहीं है कि उत्तर कैसे प्राप्त किया जाए - लेकिन यदि आप कुछ अतिरिक्त जानकारी जानते हैं, तो यह स्पष्ट है कि आपको यह साबित करना है कि आपको उत्तर सही कैसे मिला। COMPOSITE इस तरह से है: ट्रायल डिवीजन स्पष्ट एल्गोरिथ्म है, और यह धीमा है: 10 अंकों की संख्या को कारक करने के लिए, आपको 100,000 संभावित विभाजकों की तरह कुछ प्रयास करना होगा। लेकिन, अगर, उदाहरण के लिए, किसी ने आपको बताया कि 61 3233 का विभाजक है, तो साधारण लंबा विभाजन यह देखने का एक कारगर तरीका है कि वे सही हैं।

जटिलता वर्ग एनपी निर्णय की समस्याओं का वर्ग है, जहां 'हां' के जवाब में राज्य के लिए संक्षिप्त, साक्ष्यों की जांच करने के लिए त्वरित है। COMPOSITE की तरह। एक महत्वपूर्ण बात यह है कि यह परिभाषा कुछ भी नहीं कहती है कि समस्या कितनी कठिन है। यदि आपके पास किसी निर्णय समस्या को हल करने का एक सही, कुशल तरीका है, तो समाधान में चरणों को लिखना ही पर्याप्त है।

एल्गोरिदम अनुसंधान जारी है, और हर समय नए चतुर एल्गोरिदम बनाए जाते हैं। एक समस्या जिसे आप नहीं जानते कि कैसे कुशलतापूर्वक हल किया जाए आज कल एक कुशल (यदि स्पष्ट नहीं है) समाधान हो सकता है। वास्तव में, यह COMPOSITE का कुशल समाधान खोजने के लिए 2002 तक शोधकर्ताओं को ले गया! इन सभी अग्रिमों के साथ, किसी को वास्तव में आश्चर्य करना होगा: क्या यह छोटा सा सबूत होने के बारे में सिर्फ एक भ्रम है? हो सकता है कि हर निर्णय समस्या जो कुशल साक्ष्यों के लिए उधार देती है, एक कुशल समाधान है? किसी को पता नहीं है

शायद इस क्षेत्र में सबसे बड़ा योगदान एनपी समस्याओं की एक अजीब श्रेणी की खोज के साथ आया था। गणना के लिए सर्किट मॉडल के साथ खेलने के द्वारा, स्टीफन कुक ने एनपी किस्म की एक निर्णय समस्या पाई जो कि हर दूसरे एनपी समस्या की तुलना में कठिन या कठिन थी । के लिए एक कुशल समाधान बूलियन satisfiability समस्या के लिए एक कुशल समाधान बनाने के लिए इस्तेमाल किया जा सकता है किसी अन्य एनपी में समस्या। इसके तुरंत बाद, रिचर्ड कार्प ने दिखाया कि कई अन्य निर्णय समस्याएं उसी उद्देश्य को पूरा कर सकती हैं। ये समस्याएं, एनपी में "सबसे कठिन" समस्याओं के रूप में, एनपी-पूर्ण समस्याओं के रूप में जानी जाती हैं ।

बेशक, एनपी केवल निर्णय की समस्याओं का एक वर्ग है। कई समस्याओं को स्वाभाविक रूप से इस तरह से नहीं कहा गया है: "एन के कारकों को ढूंढें", "ग्राफ में सबसे छोटा रास्ता खोजें जो हर शीर्ष पर जाता है", "चर असाइनमेंट का एक सेट दें जो निम्नलिखित बूलियन अभिव्यक्ति को सच बनाता है"। हालाँकि, कुछ लोग ऐसी समस्याओं के बारे में अनौपचारिक रूप से "एनपी" में होने की बात कर सकते हैं, तकनीकी रूप से इसका कोई मतलब नहीं है - वे समस्याओं का निर्णय नहीं कर रहे हैं। इन समस्याओं में से कुछ में एनपी-पूर्ण समस्या के समान शक्ति भी हो सकती है: इन (गैर-निर्णय) समस्याओं का एक कुशल समाधान सीधे किसी भी एनपी समस्या के कुशल समाधान के लिए नेतृत्व करेगा। इस तरह की समस्या को एनपी-हार्ड कहा जाता है ।


67

पी (बहुपद समय): जैसा कि नाम से ही पता चलता है, ये ऐसी समस्याएं हैं जिन्हें बहुपद में हल किया जा सकता है।

एनपी (गैर-नियतात्मक-बहुपद समय): ये निर्णय समस्याएं हैं जिन्हें बहुपद समय में सत्यापित किया जा सकता है। इसका मतलब है, अगर मैं दावा करता हूं कि किसी विशेष समस्या के लिए एक बहुपद समय समाधान है, तो आप मुझे इसे साबित करने के लिए कहेंगे। फिर, मैं आपको एक प्रमाण दूंगा जिसे आप बहुपद समय में आसानी से सत्यापित कर सकते हैं। इस तरह की समस्याओं को एनपी समस्या कहा जाता है। ध्यान दें, यहां हम इस बारे में बात नहीं कर रहे हैं कि इस समस्या के लिए एक बहुपद समय समाधान है या नहीं। लेकिन हम बहुपद समय में किसी समस्या के समाधान की पुष्टि करने के बारे में बात कर रहे हैं।

एनपी-हार्ड: ये कम से कम एनपी में सबसे कठिन समस्याओं के रूप में कठिन हैं। यदि हम बहुपद समय में इन समस्याओं को हल कर सकते हैं, तो हम किसी भी एनपी समस्या को हल कर सकते हैं जो संभवतः मौजूद हो सकते हैं। ध्यान दें कि ये समस्याएं आवश्यक रूप से एनपी समस्याएं नहीं हैं। इसका मतलब है, हम बहुपद समय में इन समस्याओं के समाधान को सत्यापित / कर सकते हैं।

एनपी-कम्पलीट: ये वे समस्याएं हैं जो एनपी और एनपी-हार्ड दोनों हैं। इसका मतलब है, अगर हम इन समस्याओं को हल कर सकते हैं, तो हम किसी अन्य एनपी समस्या को हल कर सकते हैं और इन समस्याओं के समाधान को बहुपद समय में सत्यापित किया जा सकता है।


तो आपने अभी-अभी कहीं से परिभाषाएँ कॉपी करने का फैसला किया है?
अरुण सत्यार्थ

1
जवाब समझ में आता है!
Konstantin

2
@ अरुनसतीर्थ कहाँ से?
अर्थ-मायने 13

3
सर्वश्रेष्ठ उत्तर के रूप में यह छोटा है, बस पर्याप्त शब्दावली का उपयोग करता है, सामान्य मानव वाक्य हैं (पढ़ने के लिए मुश्किल नहीं है-जैसा-सही-सही-संभव सामान है), और आश्चर्यजनक रूप से पर्याप्त एकमात्र उत्तर है जो लिखता है कि एन क्या है।
अर्थ-मामलों

62

अन्य महान उत्तरों के अलावा, यहाँ विशिष्ट स्कीमा लोग एनपी, एनपी-पूर्ण और एनपी-हार्ड के बीच अंतर दिखाने के लिए उपयोग करते हैं:

यहां छवि विवरण दर्ज करें


1
क्या यह सिद्ध है कि एनपी-हार्ड में एक समस्या मौजूद है जो एनपी-पूर्ण में नहीं है? क्योंकि यह छवि यह बताती है। धन्यवाद।
हिल्डर विटर लीमा परेरा

9
@VitorLima हाँ जैसे EXPSPACE- पूर्ण समस्याएं NP-कठिन हैं, लेकिन NP- पूर्ण नहीं साबित हुई हैं।
फ्रेंक डर्नोनकोर्ट

2
ठीक है धन्यवाद। मुझे इसके बारे में बात करते हुए कुछ संदर्भ मिले। उदाहरण के लिए, यह एक: princeton.edu/~achaney/tmve/wiki100k/docs/NP-hard.html
हिलर विटर लीमा परेरा

47

P v। NP और इस तरह की तकनीकी में शामिल हुए बिना समझाने का सबसे आसान तरीका है "शब्द समस्याओं" की तुलना "बहुविकल्पी समस्याओं" से करना।

जब आप एक "शब्द समस्या" को हल करने की कोशिश कर रहे हैं, तो आपको खरोंच से समाधान ढूंढना होगा। जब आप एक "बहुविकल्पी समस्या" को हल करने की कोशिश कर रहे हैं, तो आपके पास एक विकल्प है: या तो इसे हल करें जैसा कि आप एक "शब्द समस्या" है, या आपके द्वारा दिए गए प्रत्येक उत्तर में प्लग करने का प्रयास करें, और फिट होने वाले उम्मीदवार के उत्तर को चुनें।

अक्सर ऐसा होता है कि एक "बहुविकल्पी समस्या" संबंधित "शब्द समस्या" की तुलना में बहुत आसान होती है: उम्मीदवार के उत्तरों को प्रतिस्थापित करना और यह जाँचना कि क्या वे फिट हैं, खरोंच से सही उत्तर खोजने की तुलना में काफी कम प्रयास की आवश्यकता हो सकती है।

अब, यदि हम बहुपद के समय को "आसान" मानने वाले प्रयास को स्वीकार करेंगे तो कक्षा P में "आसान शब्द समस्याएं" शामिल होंगी, और वर्ग NP में "आसान बहुविकल्पी समस्याएं" शामिल होंगी।

पी। वी। एनपी का सार प्रश्न है: "क्या कोई आसान बहुविकल्पी समस्याएं हैं जो शब्द समस्याओं के रूप में आसान नहीं हैं"? यही है, क्या ऐसी समस्याएं हैं जिनके लिए दिए गए उत्तर की वैधता को सत्यापित करना आसान है लेकिन खरोंच से उस उत्तर को ढूंढना मुश्किल है?

अब जब हम समझ लेते हैं कि एनपी क्या है, तो हमें अपने अंतर्ज्ञान को चुनौती देनी होगी। यह पता चला है कि "बहुविकल्पी समस्याएं" हैं, जो किसी भी तरह से, उन सभी में सबसे कठिन हैं: यदि कोई उन सभी में से किसी एक का "सबसे कठिन" समाधान ढूंढ लेगा, तो सभी को एक समाधान मिल सकेगा एनपी की समस्या! 40 साल पहले जब कुक को यह पता चला तो यह पूरी तरह से आश्चर्यचकित कर देने वाला था। इन "उन सभी में सबसे कठिन" समस्याओं को एनपी-हार्ड के रूप में जाना जाता है। यदि आप उनमें से एक के लिए "शब्द समस्या समाधान" पाते हैं, तो आप प्रत्येक "आसान समस्या समाधान" के लिए स्वचालित रूप से "शब्द समस्या समाधान" पाएंगे!

अंत में, एनपी-पूर्ण समस्याएं वे हैं जो एक साथ एनपी और एनपी-हार्ड हैं। हमारे सादृश्य के बाद, वे एक साथ "बहुविकल्पी समस्याओं के रूप में आसान" और "शब्द की समस्याओं के रूप में उन सभी में सबसे कठिन" हैं।


18

एनपी-पूर्ण समस्याएं वे समस्याएं हैं जो एनपी-हार्ड और जटिलता वर्ग एनपी दोनों हैं। इसलिए, यह दिखाने के लिए कि कोई भी समस्या एनपी-पूर्ण है, आपको यह दिखाने की आवश्यकता है कि समस्या एनपी दोनों में है और यह एनपी-हार्ड है।

एनपी जटिलता वर्ग में आने वाली समस्याओं को बहुपद में गैर-नियतात्मक रूप से हल किया जा सकता है और एनपी में एक समस्या के लिए एक संभावित समाधान (यानी, एक प्रमाण पत्र) को बहुपद समय में शुद्धता के लिए सत्यापित किया जा सकता है।

K-clique समस्या के लिए गैर-नियतात्मक समाधान का एक उदाहरण कुछ इस प्रकार होगा:

1) बेतरतीब ढंग से एक ग्राफ से कश्मीर नोड का चयन करें

2) सत्यापित करें कि ये k नोड्स एक क्लिक बनाते हैं।

उपरोक्त रणनीति इनपुट ग्राफ के आकार में बहुपद है और इसलिए k-clique समस्या NP में है।

ध्यान दें कि बहुपद समय में नियत रूप से हल करने वाली सभी समस्याएं एनपी में भी हैं।

यह दर्शाता है कि एक समस्या एनपी-हार्ड है जिसमें आमतौर पर एक बहुपद समय मैपिंग का उपयोग करके आपकी समस्या के लिए कुछ अन्य एनपी-हार्ड समस्या से कमी शामिल है: http://en.wikipedia.org/wiki/Reduction_(complexity)


ऐसा नहीं है कि मुझे इस उत्तर में कुछ भी गलत है, लेकिन मुझे नहीं पता कि इसे क्यों स्वीकार किया गया। यह वास्तव में बहुत कुछ प्रदान नहीं करता है जो ओपी पूछ रहा था। यह वास्तव में इन समस्याओं के मानक स्पष्टीकरण से अलग नहीं है, और इन वर्गों में इन समस्याओं को बनाने के लिए कोई स्पष्ट स्पष्टीकरण नहीं हैं। एक मूल्य के नीचे नहीं है, लेकिन निश्चित रूप से जवाब देने के लायक नहीं है।
सैन जैसिंटो

18

मुझे लगता है कि हम इसका जवाब ज्यादा सक्सेसफुल तरीके से दे सकते हैं। मैंने एक संबंधित प्रश्न का उत्तर दिया, और वहां से मेरे उत्तर की प्रतिलिपि बनाई

लेकिन सबसे पहले, एक एनपी-हार्ड समस्या एक ऐसी समस्या है जिसके लिए हम यह साबित नहीं कर सकते कि एक बहुपद समय समाधान मौजूद है। कुछ "समस्या-पी" की एनपी-कठोरता आमतौर पर बहुपद समय में पहले से ही साबित एनपी-कठिन समस्या को "समस्या-पी" में परिवर्तित करके साबित होती है।

शेष प्रश्न का उत्तर देने के लिए, आपको सबसे पहले यह समझने की आवश्यकता है कि एनपी-कठिन समस्याएं भी एनपी-पूर्ण हैं। अगर NP- हार्ड समस्या NP सेट करने के लिए आती है, तो यह NP-complete है। एनपी सेट करने के लिए, एक समस्या होने की जरूरत है

(i) एक निर्णय समस्या,
(ii) समस्या के समाधान की संख्या परिमित होनी चाहिए और प्रत्येक समाधान बहुपद लंबाई का होना चाहिए, और
(iii) एक बहुपद लंबाई समाधान दिया जाए, हम यह कहने में सक्षम होना चाहिए कि क्या उत्तर समस्या हाँ / नहीं है

अब, यह देखना आसान है कि कई एनपी-मुश्किल समस्याएं हो सकती हैं जो एनपी सेट करने के लिए नहीं हैं और हल करने के लिए कठिन हैं। एक सहज उदाहरण के रूप में, ट्रैवलिंग सेल्समैन का ऑप्टिमाइज़ेशन-संस्करण जहां हमें एक वास्तविक शेड्यूल खोजने की आवश्यकता होती है, ट्रैवल सेल्समैन के निर्णय-संस्करण की तुलना में कठिन है, जहां हमें यह निर्धारित करने की आवश्यकता है कि लंबाई के साथ एक शेड्यूल <= k मौजूद है या नहीं।


5

इस विशेष प्रश्न के लिए वास्तव में बहुत अच्छे उत्तर हैं, इसलिए मेरी खुद की व्याख्या लिखने का कोई मतलब नहीं है। इसलिए मैं कम्प्यूटेशनल जटिलता के विभिन्न वर्गों के बारे में एक उत्कृष्ट संसाधन के साथ योगदान करने की कोशिश करूंगा।

किसी के लिए जो सोचता है कि कम्प्यूटेशनल जटिलता केवल पी और एनपी के बारे में है, यहां विभिन्न कम्प्यूटेशनल जटिल समस्याओं के बारे में सबसे अधिक संपूर्ण संसाधन है। ओपी द्वारा पूछे जाने वाली समस्याओं के अलावा, इसने कम्प्यूटेशनल समस्याओं के लगभग 500 अलग-अलग वर्गों को अच्छे विवरणों के साथ सूचीबद्ध किया और मौलिक शोध पत्रों की सूची भी दी, जो कक्षा का वर्णन करते हैं।


3

जैसा कि मैं इसे समझता हूं, एक एनपी-हार्ड समस्या एक एनपी-पूर्ण समस्या की तुलना में "कठिन" नहीं है। वास्तव में, परिभाषा के अनुसार, हर np-complete समस्या है:

  1. एनपी में
  2. एनपी कठिन

यहां छवि विवरण दर्ज करें

- परिचय। कॉर्मेन, लिसेर्सन, रिवेस्ट, और स्टीन द्वारा एल्गोरिथम (3ed), पृष्ठ 1069


3
आपकी समझ गलत है। एनपी-पूर्ण की आपकी परिभाषा सही है लेकिन आपके पहले कथन पर इसका कोई असर नहीं है। एनपी-हार्ड में सभी समस्याएं कम से कम एनपी-पूर्ण के रूप में कठिन हैं ; कुछ (जैसे कि हॉल्टिंग समस्या, जो असीम रूप से कठिन है, और en.wikipedia.org/wiki/EXPSPACE ) काफी कठिन हैं।
जिम बेल्टर

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.