यह साबित करना क्यों महत्वपूर्ण है कि एक समस्या एनपी-पूर्ण है?


18

क्या मैं यह समझने में सही हूं कि एक समस्या एनपी पूर्ण साबित करना एक शोध सफलता है? यदि हां तो क्यों?

जवाबों:


26

अली, अच्छा सवाल।

मान लीजिए आप दिखाना चाहते हैं कि कुछ समस्या पी कम्प्यूटेशनल रूप से कठिन है। अब, आप अनुमान लगा सकते हैं कि पी इस तथ्य पर आधारित है कि हमारे पास अभी तक इसके लिए कोई कुशल एल्गोरिदम नहीं है। लेकिन यह बल्कि भड़कीला सबूत है, नहीं? यह हो सकता है कि हम पी को देखने के लिए कुछ अच्छे तरीके से चूक गए हैं जिससे इसे हल करना बहुत आसान हो जाएगा। इसलिए, यह अनुमान लगाने के लिए कि पी कठिन है, हम और अधिक सबूत जमा करना चाहेंगे। कटौती बिल्कुल ऐसा करने के लिए एक उपकरण प्रदान करती है! यदि हम कुछ अन्य प्राकृतिक समस्या Q से P को कम कर सकते हैं, तो हमने दिखाया है कि P, Q से कम से कम कठिन है। लेकिन Q गणित के कुछ पूरी तरह से अलग क्षेत्र से एक समस्या हो सकती है, और लोगों ने Q को हल करने के लिए दशकों तक संघर्ष किया होगा। । इस प्रकार, हम Q के लिए एक कुशल एल्गोरिथ्म खोजने में अपनी विफलता को देख सकते हैं कि यह प्रमाण है कि P कठिन है। अगर हमारे पास इस तरह के क्यू '

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


तो प्रारंभिक उद्देश्य पी के लिए एक कुशल एल्गोरिदम खोजने के लिए है, लेकिन जब से यह प्रतीत होता है कि कोई भी मानता है कि पी कम्प्यूटेशनल रूप से कठिन है और फिर आपके उत्तर बाकी बताते हैं?
अली

हम यह दिखाना चाहते हैं कि हमारी समस्या P कम्प्यूटेशनल रूप से कठिन है, लेकिन हम यह नहीं मानना ​​चाहते हैं कि P यह साबित करना कठिन है कि P कठिन है :) इसके बजाय, यदि आप P को NP- पूर्ण (या NP- हार्ड लेकिन चलो यहाँ भेद को अनदेखा करें), आपने दिखाया है कि यदि पहले से ही अच्छी तरह से जांच की गई सैकड़ों समस्याओं में से कोई एक कठिन है, तो पी भी कठिन है। ऐसा इसलिए है क्योंकि यदि पी के लिए एक कुशल एल्गोरिदम था, तो सैकड़ों समस्याओं में से प्रत्येक के लिए कुशल एल्गोरिदम भी होगा।
अर्नब

4
@ अली: मैं दृढ़ता से सुझाव देता हूं कि आप एक परिचयात्मक जटिलता सिद्धांत पाठ्यपुस्तक को देखें। यह वेबसाइट वास्तव में इस तरह के सवालों के लिए एक मंच नहीं है, बल्कि अनुसंधान-स्तर के सवालों के लिए अधिक है।
अर्नब

5
@ अली: मैं निश्चित रूप से आपको गैरी और जॉनसन पढ़ने की सलाह देता हूं । पुस्तक में प्रसिद्ध कार्टून एक देखना होगा!
त्सुयोशी इतो

9

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

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


समस्या को शांत करने के तीन तरीकों के लिए अच्छा बिंदु! मुझे लगता है कि यादृच्छिक एल्गोरिदम "कुशल-और-अनुभवहीन और सामान्य" श्रेणी में आता है।
Hsien-Chih चांग 張顯

वास्तव में? सभी यादृच्छिक एल्गोरिदम अक्षम नहीं हैं।
जेफ

और निश्चित रूप से आप सही हैं, जेफ़ई। इसके अलावा, मैं समझता हूं कि आप एल्गोरिदम में एक पूर्व छात्र को निर्देश दे रहे हैं (या थे)! Hsien-Chih के बिंदु के रूप में, मुझे नहीं लगता कि यादृच्छिक एल्गोरिदम इस योजना में अच्छी तरह से फिट हैं। निश्चित रूप से कुछ यादृच्छिक एल्गोरिदम (आनुवंशिक एल्गोरिदम और तंत्रिका जाल दिमाग में आते हैं) अभी तक कुशल और सामान्य हैं, लेकिन कुछ यादृच्छिक एल्गोरिदम काफी सटीक हैं - एक संख्या को सत्यापित करने के लिए एल्गोरिदम पर विचार करना प्रमुख है! यह एक यादृच्छिक एल्गोरिथ्म है, लेकिन मुझे पूरा विश्वास है कि किसी ने भी किसी भी उचित कार्यान्वयन से गैर-प्राइम को प्राप्त नहीं किया है।
पीटर ब्यूह

5

आइए दो अलग-अलग मामलों को देखें कि दो अलग-अलग व्यक्ति एक समस्या को क्यों साबित करना चाहते हैं :एनपी-सीपीएलटी

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

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

एनपी-सीपीएलटी

पी=एनपी3-एसटी

एनपी-सीपीएलटीसीएलमैंक्यूयू

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


2
बहुत से लोग एनपी-पूर्ण समस्याओं को व्यवहार में हल करते हैं, भले ही वे लगभग एनपी-कठिन हों। औसत मामले में कई समस्याएं बहुत आसान हो जाती हैं, हालांकि यह दिखाना मुश्किल हो सकता है; व्यवहार में अच्छी तरह से काम करने वाले अनुमानी एल्गोरिदम के बारे में कुछ भी साबित करना कठिन है। मैं सॉफ्टवेयर आर्किटेक्ट को सुझाव देता हूं कि वह किसी से पूछे कि क्या समस्या "वास्तव में" कठिन है, लेकिन उसके डिजाइन को बदलने और बदलने से पहले।
युवल फिल्मस 5

मैं यह नहीं कह रहा हूं कि डिजाइन को बदलने की जरूरत है। समस्या को बदलने की तरह एक हेयुरिस्टिक या अंदाजा लगाने वाले एल्गोरिथ्म का उपयोग मुझे लगता है (जैसे?) समस्या को बदलने की तरह ... चूंकि आप जानते हैं कि आप कम सटीक समाधान पूछ रहे हैं (क्या वे स्वीकार्य हैं? यह आवेदन पर निर्भर करता है!)।
चेज़िसोप

3

प्रत्येक समस्या अन्य समस्याओं के साथ कई कनेक्शन है। इसके अलावा, एक समस्या और जटिलता वर्गों के बीच संबंध हैं।

इसलिए, एनपीसी के रूप में एक समस्या को वर्गीकृत करना आमतौर पर हमें अन्य समस्याओं के साथ-साथ जटिलता वर्गों में अंतर्दृष्टि प्रदान करता है।

उदाहरण के लिए, ग्राफ आइसोमॉर्फिज्म (जीआई) समस्या को लें। निम्नलिखित कागज में:

Uwe Schöning, ग्राफ आइसोमॉर्फिज्म कम पदानुक्रम में है , प्रोसीडिंग्स ऑफ़ द थ्योरिटिकल एस्पेक्ट्स ऑफ़ कंप्यूटर साइंस , 1987, 114–124; यह भी: कंप्यूटर और सिस्टम विज्ञान के जर्नल, वॉल्यूम। 37 (1988), 312–323।

यह साबित होता है कि यदि GI PC NPC, तो बहुपद पदानुक्रम (PH) अपने दूसरे स्तर तक गिर जाता है; जो संरचनात्मक जटिलता सिद्धांत में एक प्रमुख सफलता होगी।


3

मैं देखता हूं कि पिछले उत्तर स्पष्ट करते हैं कि यह जानना महत्वपूर्ण है कि कोई समस्या एनपी-पूर्ण नहीं है या नहीं, लेकिन कोई भी सीधे प्रश्न को संबोधित नहीं करता है: इसका प्रमाण "पीएनपी-पूर्ण है "को सभी के लिए एक शोध सफलता नहीं माना जाता हैपी। यह विभिन्न चीजों पर निर्भर करता है, जैसे कि क्यापी दिलचस्प है, क्या प्रमाण में नई तकनीकें हैं या नहीं, "पी एनपी-पूर्ण है "के दिलचस्प परिणाम हैं, आदि।


1
मैंने सुना है कि एक समय था जब आपने साबित किया था कि कुछ समस्याएं एनपी-पूर्ण हैं, तो आपके पास पीएचडी थीसिस होगी। क्या यह सच है?
हसीन-चिह चांग।

@ Hsien-ChihChang 張顯 I: मैं उस पर टिप्पणी नहीं कर सकता, लेकिन वे परिणाम निश्चित रूप से कुछ दशक पहले बहुत अधिक लोकप्रिय हुआ करते थे। एक पेपर प्रकाशित करना इन दिनों बहुत मुश्किल हो रहा है जिसमें आप "केवल" एक कठोरता परिणाम साबित करते हैं (निश्चित रूप से "प्रसिद्ध समस्याओं के अपवाद के साथ), जबकि यह 70 के -80 के दशक में एक समस्या नहीं होगी, जिसे देखते हुए। उस अवधि के दौरान इस तरह के कागजात की प्रचुरता।
एंथोनी लैबर्रे
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.