एनपी-हार्ड की तुलना में कक्षा एनपी-पूर्ण क्यों महत्वपूर्ण है?


19

मैं कम्प्यूटेशनल जटिलता का अध्ययन कर रहा हूं और मैं सोच रहा था कि क्यों एनपी-कम्प्लीट (एनपीसी) समस्याएं एक महत्वपूर्ण वर्ग है। मुझे यह स्पष्ट लगता है कि हम किसी दिए गए NP समस्या को दिखाने में क्यों रुचि रखते हैं NP-hard।

मैं एनपीसी की परिभाषा को भी समझता हूं, और यह कि दी गई निर्णय समस्या एनपी-हार्ड है, यह जानते हुए कि यह एनपी में है, वास्तव में एनपीसी साधन था।

हालाँकि, जो मुझे समझ नहीं आ रहा है: यह अवधारणा इतनी महत्वपूर्ण क्यों है? निश्चित रूप से, यदि हमें कोई एनपी-हार्ड एल्गोरिथ्म मिलता है जो पी (चाहे वह एनपी में हो या नहीं) में चलता है, तो हमने दिखाया है कि एनपी=पी

यह अवधारणा इतनी महत्वपूर्ण क्यों है?


3
मैंने आपका दूसरा प्रश्न हटा दिया है क्योंकि यह पहले से पूरी तरह अलग है। हालाँकि, यह एक बहुत अच्छा प्रश्न है और मैं आपको इसे एक नया प्रश्न पूछने के लिए प्रोत्साहित करता हूँ। पाठ को पुनर्प्राप्त करने के लिए, "संपादित करें [जो भी समय]] लिंक पर क्लिक करें, जो आपको संपादित इतिहास दिखाएगा और आपको पाठ को कॉपी-पेस्ट करने देगा।
डेविड रिचीर्बी

जवाबों:


16

कम से कम कुछ कारण हैं कि एनपीसी दिलचस्प है:

  • क्लास एनपी में कई समस्याएं हैं जो दिलचस्प हैं (व्यावहारिक रूप से और सैद्धांतिक रूप से दोनों), इनमें से कई समस्याएं एनपी-हार्ड (और इसलिए एनपी-पूर्ण) हैं, लेकिन एनपी के बाहर कई समस्याएं लगभग निश्चित रूप से बहुत मुश्किल हैं सैद्धांतिक रुचि से अधिक , इसलिए एनपीसी समस्याओं का एक (मोटा) समूह प्रदान करता है जो स्पष्ट रूप से कठिन हैं, लेकिन इतना कठिन नहीं है कि हम उनके साथ कुछ करने की कोशिश नहीं कर सकते।
    दूसरे शब्दों में, एनपीसी संभवतः सीमा है जो हम आशा कर सकते हैं कि बहुपद-समय हल हो सकता है, यह PSPACE = P (उदाहरण के लिए) के लिए प्रयास करने के लिए एक खिंचाव प्रतीत होगा।
  • वर्ग एनपी संरचनात्मक रूप से दिलचस्प है। इसका मूल उदाहरण है "क्या हम किसी भी अधिक कम्प्यूटेशनल 'गति को नोंडेटर्मिनिज़्म से प्राप्त करते हैं"। तो हम रुचि रखते हैं कि क्या पी = एनपी या नहीं, और एनपीसी (शायद) काम करने का एक महत्वपूर्ण घटक है।
  • एनपी-हार्ड (एक वर्ग के रूप में) वास्तव में बहुत बड़ी और एक ही चीज़ से निपटने के लिए विविध है, यह सब कुछ है जो एनपी-पूर्ण समस्या से कम किया जा सकता है , जिसमें एनपी के बाहर सामान की एक बड़ी संख्या भी शामिल है, इसलिए बिंदु से सामान्य परिणामों और तकनीकों को विकसित करने की कोशिश के मद्देनजर, इसमें हड़पने के लिए कुछ भी नहीं है।

चूंकि शीर्षक को प्रतिबिंबित करने के लिए मेरा मूल प्रश्न संपादित किया गया था, शायद आपको दूसरे प्रश्न का उत्तर भी छिपाना चाहिए।
15

1
एनपी-हार्ड "एनपी के बाहर सब कुछ" नहीं है, क्योंकि इसमें एनपी में एनपी-पूर्ण समस्याएं शामिल हैं (कम से कम)। मैं समझता हूं कि आपका क्या मतलब है, लेकिन यह नहीं जानते कि इसे कैसे करना है।
वॉनब्रांड

@vbrbrand, हाँ, मैंने बेतहाशा ओवरस्टैट किया (पागलपन की लड़ाई शायद?)। नया संस्करण सटीक है, लेकिन यह दुर्भाग्य से काफी नहीं है।
ल्यूक मैथिसन

9

किसी ऐसे व्यक्ति के दृष्टिकोण से, जो किसी जीवित व्यक्ति के लिए कोड लिखता है, NP- पूर्णता के साथ एक अच्छी परिचितता रखना महत्वपूर्ण है:

1. पहचानते समय कि आप गलत पेड़ को काट रहे हैं

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

2. सही पेड़ ढूँढना

क्योंकि कंप्यूटरों का उपयोग अक्सर एनपी-हार्ड समस्याओं पर हमला करने के लिए किया जाता है, विशेष सॉल्वर विकसित किए गए हैं जो कुशलतापूर्वक कुछ एनपी-हार्ड समस्या उदाहरणों को हल कर सकते हैं । यह समझते हुए कि आपकी समस्या एनपी-पूर्ण है, एक मौजूदा टूल (SAT, ILP, SMT, CSP को कुछ नाम देने की दिशा में पहला कदम है) जो आपको कुछ मामलों में सटीक समाधान खोजने में मदद कर सकता है, जहाँ आपको अन्यथा समाधान करना होगा सन्निकटन।


-4

"निश्चित रूप से, यदि हमें कोई एनपी-हार्ड एल्गोरिथ्म मिलता है, जो पी (चाहे वह एनपी में हो या नहीं) में चलता है, तो हमने दिखाया है कि एनपी = पी। यह अवधारणा इतनी महत्वपूर्ण क्यों है?"

हर एनपी समस्या किसी भी एनपीसी समस्या को कम करती है, लेकिन यह सच नहीं है कि हर एनपी समस्या किसी भी एनपी-हार्ड समस्या को कम करती है, इसलिए एक एल्गोरिथ्म एनपी-हार्ड साबित करना पी में है = पी एनपी बिल्कुल भी साबित नहीं होता है। यह मामला होगा, हालांकि, एनपीसी समस्या के लिए, यह ठीक है कि "कम" का मतलब क्या है। इसलिए, यदि हम एक NPC समस्या के लिए P एल्गोरिथ्म पाते हैं, तो, हमने यह सिद्ध किया है कि P = NP।


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