एनपी-पूर्ण समस्या क्या है? कंप्यूटर विज्ञान में यह इतना महत्वपूर्ण विषय क्यों है?
एनपी-पूर्ण समस्या क्या है? कंप्यूटर विज्ञान में यह इतना महत्वपूर्ण विषय क्यों है?
जवाबों:
एनपी गैर-नियतात्मक बहुपद समय के लिए खड़ा है ।
इसका अर्थ है कि गैर-नियतात्मक ट्यूरिंग मशीन (एक नियमित ट्यूरिंग मशीन की तरह लेकिन गैर-निर्धारक "पसंद" फ़ंक्शन सहित) का उपयोग करके समस्या को बहुपद समय में हल किया जा सकता है। मूल रूप से, एक समाधान को पाली समय में परीक्षण करने योग्य होना चाहिए । अगर ऐसा है, और एक ज्ञात एनपी समस्या को संशोधित इनपुट के साथ दी गई समस्या का उपयोग करके हल किया जा सकता है (एनपी समस्या को दी गई समस्या को कम किया जा सकता है) तो समस्या एनपी पूर्ण है।
एनपी-पूर्ण समस्या से दूर करने के लिए मुख्य बात यह है कि इसे किसी भी ज्ञात तरीके से बहुपद समय में हल नहीं किया जा सकता है। एनपी-हार्ड / एनपी-कम्प्लीट यह दिखाने का एक तरीका है कि यथार्थवादी समय में समस्याओं की कुछ कक्षाएं हल नहीं हैं।
संपादित करें: जैसा कि अन्य ने उल्लेख किया है, एनपी-पूर्ण समस्याओं के लिए अक्सर अनुमानित समाधान होते हैं। इस मामले में, अनुमानित समाधान आमतौर पर विशेष संकेतन का उपयोग करते हुए एक अनुमान लगाता है जो हमें बताता है कि सन्निकटन कितना करीब है।
एनपी सभी निर्णय की समस्याओं का सेट है (हाँ-या-उत्तर के साथ प्रश्न) जिसके लिए 'हाँ'-उत्तर को बहुपद समय (O (n k )) में सत्यापित किया जा सकता है जहाँ n समस्या का आकार है, और k एक है एक नियतात्मक ट्यूरिंग मशीन द्वारा निरंतर) । बहुपद समय का उपयोग कभी-कभी तेज या जल्दी की परिभाषा के रूप में किया जाता है ।
पी सभी निर्णय समस्याओं का एक सेट है जिसे एक नियतात्मक ट्यूरिंग मशीन द्वारा बहुपद समय में हल किया जा सकता है । चूंकि उन्हें बहुपद समय में हल किया जा सकता है, इसलिए उन्हें बहुपद समय में भी सत्यापित किया जा सकता है। इसलिए P, NP का सबसेट है।
एक समस्या x जो NP में है वह NP-Complete में भी है और यदि केवल NP की हर दूसरी समस्या जल्दी (यानी बहुपद में) x में तब्दील हो सकती है।
दूसरे शब्दों में:
तो, एनपी-पूर्ण क्या इतना दिलचस्प है कि अगर एनपी-पूर्ण समस्याओं में से किसी एक को जल्दी से हल किया जाना था, तो सभी एनपी समस्याओं को जल्दी से हल किया जा सकता है।
पोस्ट भी देखें "पी = एनपी?", और यह इतना प्रसिद्ध प्रश्न क्यों है?
एनपी-हार्ड ऐसी समस्याएं हैं जो कम से कम एनपी में सबसे कठिन समस्याएं हैं। ध्यान दें कि एनपी-पूर्ण समस्याएं भी एनपी-हार्ड हैं। हालाँकि, NP
उपसर्ग के रूप में होने के बावजूद सभी एनपी-हार्ड समस्याएं एनपी (या यहां तक कि एक निर्णय समस्या) नहीं हैं । यही एनपी में एनपी-हार्ड का मतलब गैर-नियतात्मक बहुपद समय नहीं है । हां, यह भ्रामक है, लेकिन इसका उपयोग उलझा हुआ है और बदलने की संभावना नहीं है।
एनपी-कम्प्लीट का मतलब कुछ बहुत विशिष्ट है और आपको सावधान रहना होगा या आपको परिभाषा गलत मिलेगी। सबसे पहले, एक एनपी समस्या एक हाँ / ऐसी कोई समस्या नहीं है
एक समस्या X, NP- पूर्ण है यदि
यदि X एनपी-पूर्ण है और एक नियतात्मक, बहुपद-समय एल्गोरिथ्म मौजूद है जो X के सभी उदाहरणों को सही ढंग से हल कर सकता है (0% गलत-सकारात्मक, 0% गलत-नकारात्मक), तो NP की किसी भी समस्या को निर्धारक-बहुपद में हल किया जा सकता है- समय (एक्स में कमी करके)।
अब तक, कोई भी इस तरह के निर्धारक बहुपद-समय एल्गोरिथ्म के साथ नहीं आया है, लेकिन किसी ने भी साबित नहीं किया है कि कोई मौजूद नहीं है (किसी के लिए भी एक लाख रुपये हैं जो या तो कर सकते हैं: पी = एनपी समस्या है )। इसका मतलब यह नहीं है कि आप NP-Complete (या NP-Hard) समस्या के किसी विशेष उदाहरण को हल नहीं कर सकते। इसका मतलब यह है कि आपके पास ऐसा कुछ नहीं हो सकता है जो किसी समस्या के सभी उदाहरणों पर उसी तरह से काम करेगा जैसे आप पूर्णांकों की सूची को विश्वसनीय ढंग से क्रमबद्ध कर सकते हैं। आप बहुत अच्छी तरह से एक एल्गोरिथ्म के साथ आने में सक्षम हो सकते हैं जो एनपी-हार्ड समस्या के सभी व्यावहारिक उदाहरणों पर बहुत अच्छी तरह से काम करेगा।
मूल रूप से इस दुनिया की समस्याओं को वर्गीकृत किया जा सकता है
1) अनसॉल्वेबल प्रॉब्लम 2) इंट्रेक्टेबल प्रॉब्लम 3) एनपी-प्रॉब्लम 4) पी-प्रॉब्लम
1) पहली समस्या का कोई हल नहीं है। 2) दूसरा जरूरत घातीय समय है (जो कि O (2 ^ n) ऊपर है)। 3) तीसरे को एनपी कहा जाता है। 4) चौथी आसान समस्या है।
P: बहुपद समय की समस्या के समाधान को संदर्भित करता है।
एनपी: एक समाधान खोजने के लिए अभी तक बहुपद समय को संदर्भित करता है। हमें यकीन नहीं है कि बहुपद समय समाधान नहीं है, लेकिन एक बार जब आप कोई समाधान प्रदान करते हैं, तो इस समाधान को बहुपद समय में सत्यापित किया जा सकता है।
एनपी पूरा: बहुपद समय में संदर्भित करता है हम अभी भी एक समाधान खोजने के लिए अभी भी है, लेकिन यह बहुपद समय में सत्यापित किया जा सकता है। एनपी में समस्या एनपीसी अधिक कठिन समस्या है, इसलिए यदि हम यह साबित कर सकते हैं कि हमारे पास एनपीसी समस्या का पी समाधान है तो एनपी समस्याएं जिन्हें पी समाधान में पाया जा सकता है।
एनपी हार्ड: संदर्भित करता है बहुपद समय अभी तक एक समाधान खोजने के लिए है, लेकिन यह सुनिश्चित नहीं है कि बहुपद समय में सत्यापित किया जा सकता है। एनपी हार्ड समस्या एनपीसी कठिनाई को पार करती है।
एनपी-कम्पलीट समस्याओं की एक श्रेणी है।
वर्ग P
में वे समस्याएं होती हैं जो बहुपद समय में हल करने योग्य होती हैं । उदाहरण के लिए, उन्हें कुछ स्थिर कश्मीर के लिए O (n k ) में हल किया जा सकता है , जहां n इनपुट का आकार है। सीधे शब्दों में कहें, आप एक कार्यक्रम लिख सकते हैं जो उचित में चलेगा समय ।
वर्ग NP
में वे समस्याएं होती हैं जो सत्य हैं बहुपद समय में। यही है, अगर हमें एक संभावित समाधान दिया जाता है, तो हम जांच सकते हैं कि क्या दिए गए समाधान बहुपद समय में सही हैं।
कुछ उदाहरण बूलियन संतुष्टि (या सैट ) समस्या, या हैमिल्टन-चक्र समस्या हैं। कई समस्याएं हैं जिन्हें एनपी श्रेणी में जाना जाता है।
NP-Complete
इसका मतलब यह है कि समस्या कम से कम एनपी में किसी भी समस्या के रूप में कठिन है।
यह कंप्यूटर विज्ञान के लिए महत्वपूर्ण है क्योंकि यह साबित हो गया है कि एनपी में कोई भी समस्या एनपी-पूर्ण में एक और समस्या में बदल सकती है । इसका मतलब है कि किसी एक एनपी-पूर्ण समस्या का समाधान सभी एनपी समस्याओं का समाधान है।
सुरक्षा में कई एल्गोरिदम इस तथ्य पर निर्भर करते हैं कि एनपी कठिन समस्याओं के लिए कोई ज्ञात समाधान मौजूद नहीं है। यह निश्चित रूप से कंप्यूटिंग पर एक महत्वपूर्ण प्रभाव पड़ेगा अगर कोई समाधान पाया गया।
यह समस्याओं का एक वर्ग है जहां हमें हर संभावना का अनुकरण करना चाहिए सुनिश्चित करें कि हमारे पास इष्टतम समाधान है।
कुछ एनपी-पूर्ण समस्याओं के लिए बहुत सारे अच्छे आंकड़े हैं, लेकिन वे केवल एक शिक्षित अनुमान हैं।
यदि आप एनपी-पूर्ण समस्या का एक उदाहरण देख रहे हैं तो मेरा सुझाव है कि आप 3-सैट पर एक नज़र डालें ।
मूल आधार यह है कि आपके पास सामान्य सामान्य रूप में एक अभिव्यक्ति है , जो यह कहने का एक तरीका है कि आपके पास ओआरएस में शामिल होने वाले अभिव्यक्तियों की एक श्रृंखला है जो सभी को सच होनी चाहिए:
(a or b) and (b or !c) and (d or !e or f) ...
3-SAT समस्या का एक समाधान खोजना है जो उस अभिव्यक्ति को संतुष्ट करेगा जहां प्रत्येक OR-अभिव्यक्तियों में मिलान करने के लिए वास्तव में 3 बूलियन हैं:
(a or !b or !c) and (!a or b or !d) and (b or !c or d) ...
इसका एक समाधान (a = T, b = T, c = F, d = F) हो सकता है। हालांकि, कोई एल्गोरिथ्म नहीं खोजा गया है जो बहुपद समय में सामान्य स्थिति में इस समस्या को हल करेगा। इसका मतलब यह है कि इस समस्या को हल करने का सबसे अच्छा तरीका अनिवार्य रूप से एक ब्रूट फोर्स का अनुमान लगाना और जांचना है और जब तक आप काम नहीं करते तब तक विभिन्न संयोजनों का प्रयास करें।
3-SAT समस्या के बारे में विशेष बात यह है कि किसी भी NP- पूर्ण समस्या को 3-SAT समस्या में कम किया जा सकता है। इसका मतलब यह है कि यदि आप इस समस्या को हल करने के लिए एक बहुपद-समय एल्गोरिथ्म पा सकते हैं, तो आपको दुनिया भर के कंप्यूटर वैज्ञानिकों और गणितज्ञों के सम्मान और प्रशंसा का उल्लेख करने के लिए $ 1,000,000 मिलते हैं।
ईमानदारी से, इसका उत्तर खोजने के लिए विकिपीडिया सबसे अच्छी जगह हो सकती है।
यदि एनपी = पी, तो हम बहुत कठिन समस्याओं को बहुत तेजी से हल कर सकते हैं जितना हमने पहले सोचा था। यदि हम पी (बहुपद) समय में केवल एक एनपी-पूर्ण समस्या को हल करते हैं, तो इसे एनपी-पूर्ण श्रेणी में अन्य सभी समस्याओं पर लागू किया जा सकता है।
हमें एल्गोरिदम और समस्याओं को अलग करने की आवश्यकता है। हम समस्याओं को हल करने के लिए एल्गोरिदम लिखते हैं, और वे एक निश्चित तरीके से स्केल करते हैं। हालाँकि यह एक सरलीकरण है, आइए एक एल्गोरिथ्म को 'P' के साथ लेबल करें यदि स्केलिंग अच्छी है, और 'NP' यदि यह नहीं है।
हम उन समस्याओं के बारे में चीजों को जानना मदद कर रहे हैं जिन्हें हम हल करने के लिए उपयोग किए जाने वाले एल्गोरिदम के बजाय हल करने की कोशिश कर रहे हैं। तो हम कहेंगे कि अच्छी तरह से स्केलिंग एल्गोरिथम वाली सभी समस्याएं "पी" में हैं। और जिनके पास खराब-स्केलिंग एल्गोरिदम है, वे "एनपी" में हैं।
इसका मतलब है कि बहुत सी सरल समस्याएं "एनपी" में भी हैं, क्योंकि हम आसान समस्याओं को हल करने के लिए खराब एल्गोरिदम लिख सकते हैं। यह जानना अच्छा होगा कि एनपी में कौन सी समस्याएं वास्तव में मुश्किल हैं, लेकिन हम केवल यह नहीं कहना चाहते हैं "यह उन लोगों के लिए है जिन्हें हमने एक अच्छा एल्गोरिथ्म नहीं मिला है"। आखिरकार, मैं एक समस्या (इसे एक्स कह सकता हूं) के साथ आ सकता हूं जो मुझे लगता है कि एक सुपर-अद्भुत एल्गोरिथ्म की आवश्यकता है। मैं दुनिया को बताता हूं कि सबसे अच्छा एल्गोरिथ्म मैं एक्स तराजू को बुरी तरह से हल करने के लिए आ सकता हूं, और इसलिए मुझे लगता है कि एक्स वास्तव में एक कठिन समस्या है। लेकिन कल, हो सकता है कि मेरे मुकाबले कोई चतुर व्यक्ति एक एल्गोरिथ्म का आविष्कार करता है जो एक्स को हल करता है और पी में है। इसलिए यह कठिन समस्याओं की बहुत अच्छी परिभाषा नहीं है।
सभी समान, एनपी में बहुत सारी समस्याएं हैं जिनके लिए कोई भी अच्छा एल्गोरिथ्म नहीं जानता है। तो अगर मैं यह साबित कर सकता हूं कि एक्स एक निश्चित प्रकार की समस्या है: एक जहां एक्स को हल करने के लिए एक अच्छा एल्गोरिथ्म भी इस्तेमाल किया जा सकता है, कुछ राउंडअबाउट तरीके से, एनपी में हर दूसरी समस्या के लिए एक अच्छा एल्गोरिदम देने के लिए । खैर अब लोग थोड़ा और आश्वस्त हो सकते हैं कि X वास्तव में एक कठिन समस्या है। और इस मामले में हम एक्स एनपी-पूर्ण कहते हैं।
ऊपर एनपी पूर्ण समस्याओं के लिए परिभाषा सही है, लेकिन मैंने सोचा कि मैं उनके दार्शनिक महत्व के बारे में गीतात्मक रूप से मोम लगा सकता हूं क्योंकि किसी ने भी उस मुद्दे को संबोधित नहीं किया है।
लगभग सभी जटिल समस्याएं जो आप के खिलाफ आएंगी वे एनपी कम्प्लीट होंगी। इस वर्ग के बारे में बहुत कुछ मौलिक है, और जो आसानी से हल करने योग्य समस्याओं से कम्प्यूटेशनल रूप से अलग प्रतीत होता है। उनका अपना स्वाद है, और उन्हें पहचानना इतना कठिन नहीं है। यह मूल रूप से इसका मतलब है कि किसी भी सामान्य रूप से जटिल एल्गोरिथ्म आपके लिए सटीक रूप से हल करना असंभव है - शेड्यूलिंग, अनुकूलन, पैकिंग, कवरिंग आदि।
लेकिन अगर आप एनकाउंटर पूरा कर रहे हैं तो कोई समस्या नहीं है। एक विशाल और बहुत ही तकनीकी क्षेत्र है जहां लोग सन्निकटन एल्गोरिदम का अध्ययन करते हैं, जो आपको एनपी पूर्ण समस्या के समाधान के करीब होने की गारंटी देगा। इनमें से कुछ अविश्वसनीय रूप से मजबूत गारंटी हैं - उदाहरण के लिए, 3sat के लिए, आप वास्तव में स्पष्ट एल्गोरिथ्म के माध्यम से 7/8 गारंटी प्राप्त कर सकते हैं। इससे भी बेहतर, वास्तव में, कुछ बहुत ही मजबूत आंकड़े हैं, जो इन समस्याओं के लिए महान जवाब (लेकिन कोई गारंटी नहीं!) देने में उत्कृष्टता प्राप्त करते हैं।
ध्यान दें कि दो बहुत प्रसिद्ध समस्याएं - ग्राफ समरूपता और फैक्टरिंग - पी या एनपी होने के लिए ज्ञात नहीं हैं।
मैंने एक स्पष्टीकरण सुना है, वह यह है: "एनपी-पूर्णता शायद एल्गोरिदम के अध्ययन में अधिक गूढ़ विचारों में से एक है।" एनपी "का अर्थ" नॉनडेर्मिनिस्टिक बहुपद समय, "है और जिसे जटिलता वर्ग कहा जाता है उसका नाम है। कौन सी समस्याएं हो सकती हैं। एनपी जटिलता वर्ग के बारे में महत्वपूर्ण बात यह है कि उस वर्ग के भीतर समस्याएं हो सकती हैं सत्यापित हैएक बहुपद समय एल्गोरिथ्म द्वारा। एक उदाहरण के रूप में, सामान गिनने की समस्या पर विचार करें। मान लीजिए कि एक मेज पर सेब का एक गुच्छा है। समस्या यह है कि "कितने सेब हैं?" आपको एक संभावित उत्तर प्रदान किया जाता है। 8. आप इस उत्तर को बहुपद समय में, दोहे के एल्गोरिथ्म का उपयोग करके, सेब की गिनती करके सत्यापित कर सकते हैं। सेब की गिनती O (n) (वह बिग-ओह अंकन) समय में होती है, क्योंकि प्रत्येक सेब को गिनने में एक कदम लगता है। एन सेब के लिए, आपको एन चरणों की आवश्यकता है। यह समस्या एनपी जटिलता वर्ग में है।
एक समस्या को एनपी-पूर्ण के रूप में वर्गीकृत किया जाता है यदि यह दिखाया जा सकता है कि यह एनपी-हार्ड और बहुपद समय में सत्यापन दोनों है । एनपी-हार्ड की चर्चा में बहुत गहराई से जाने के बिना, यह कहने के लिए पर्याप्त है कि कुछ समस्याएं हैं जिनके लिए बहुपद समय समाधान नहीं मिला है। अर्थात, यह n जैसा कुछ लेता है! (एन factorial) उन्हें हल करने के लिए कदम। हालाँकि, यदि आपको एनपी-पूर्ण समस्या का समाधान दिया गया है, तो आप इसे बहुपद समय में सत्यापित कर सकते हैं।
एनपी-कम्प्लीट प्रॉब्लम का एक क्लासिक उदाहरण द ट्रैवलिंग सेल्समैन प्रॉब्लम है। "
लेखक: ApoxyButt From: http://www.everything2.com/title/NP-complete
एनपी पूरी समस्या: -
1 निर्णय समस्या A को दो संपत्तियों का पालन करने पर एनपी पूर्ण कहा जाता है: -
कुछ पूर्व: -
एनपी-पूर्ण समस्याएं उन समस्याओं में से एक हैं, जिनमें से किसी भी अन्य एनपी-समस्या को बहुपद समय में कम किया जा सकता है, और जिसका समाधान अभी भी बहुपद समय में सत्यापित किया जा सकता है। यानी किसी भी NP समस्या को किसी भी NP-complete समस्या में बदला जा सकता है। - अनौपचारिक रूप से, एक एनपी-पूर्ण समस्या एक एनपी समस्या है जो एनपी में किसी भी अन्य समस्या के रूप में कम से कम "कठिन" है।
जहां तक मैं समझता हूं
P उन समस्याओं का समूह है, जिन्हें एक नियतकालिक TM के साथ बहुपदों में हल किया जा सकता है।
एनपी उन समस्याओं का समूह है जिनके लिए एक गैर-नियतात्मक TM की आवश्यकता होती है ताकि बहुपद समय में हल किया जा सके। इसका मतलब है कि सभी संभव चर की समानांतर जांच करना, प्रत्येक उदाहरण बहुपद समय ले रहा है। यदि समस्या हल होती है, तो कम से कम उन समानांतर राज्यों में से एक समस्या का समाधान होना चाहिए। इसका मतलब यह भी है कि यदि आपने समाधान चर के बारे में अनुमान लगाया है, तो केवल एक चीज की आवश्यकता है कि बहुपद समय में समाधान की वैधता की जांच करें।
एनपी-हार्ड वह सेट है जहां समस्याएं कम से कम एनपी जितनी कठिन हैं। एनपी में कोई भी समस्या बहुपद समय में एनपी-हार्ड समस्या में बदल सकती है। इन समस्याओं को बहुपद समय में हल नहीं किया जा सकता है यदि P, NP के बराबर नहीं है। जब एनपी में सबसे कठिन समस्या बहुपद समय हल है तो केवल एनपी-हार्ड समस्याएं बहुपद समय हल कर सकते हैं।
एनपी-पूरा एनपी और एनपी-हार्ड का चौराहा सेट है। किसी भी एनपी समस्या को बहुपद समय में एनपी-पूर्ण समस्या में बदला जा सकता है। इसका मतलब है कि अगर एनपी-कम्पलीट में से कोई एक कुशल समाधान हो सकता है तो किसी भी एनपी समस्या को उसी दक्षता के साथ हल किया जा सकता है।
कृपया मुझे बताएं कि क्या मैंने कोई गलती की है।
एक एनपी समस्या वह है जहां एक कंप्यूटर एल्गोरिथ्म जो एक समाधान का सत्यापन करता है उसे बहुपद में बनाया जा सकता है।
एक एनपी-पूर्ण समस्या एनपी है, लेकिन यह भी यदि आप इसे बहुपद समय (पी कहा जाता है) में हल कर सकते हैं तो सभी एनपी समस्याएं हैं।
तो क्रैकिन मिलता है ’।