"पी = एनपी?" क्या है, और यह इतना प्रसिद्ध प्रश्न क्यों है? [बन्द है]


234

यह सवाल कि क्या पी = एनपी कंप्यूटर विज्ञान में शायद सबसे प्रसिद्ध है। इसका क्या मतलब है? और यह इतना दिलचस्प क्यों है?

ओह, और अतिरिक्त क्रेडिट के लिए, कृपया कथन के सत्य या असत्य होने का प्रमाण दें। :)


11
जैसा कि स्कॉट एरोनसन, एमआईटी "अगर पी = एनपी द्वारा निर्धारित किया गया है, तो दुनिया पूरी तरह से अलग जगह होगी, जहां हम आमतौर पर इसे मान लेते हैं।" रचनात्मक छलांग में कोई विशेष मूल्य नहीं होगा, "हल करने के बीच कोई मौलिक अंतर नहीं है। समस्या और समाधान मिलने के बाद उसे पहचान लेना। हर कोई जो एक सिम्फनी की सराहना कर सकता है वह मोजार्ट होगा; हर कोई जो एक कदम-दर-चरण तर्क का पालन कर सकता है, वह गॉस होगा ... " en.wikipedia.org/wiki/Compxity_classes_P_and_NP से उद्धरण ।
gts

जवाबों:


365

P का मतलब बहुपद समय है। एनपी गैर-नियतात्मक बहुपद समय के लिए खड़ा है।

परिभाषाएं:

  • बहुपद समय का अर्थ है कि एल्गोरिथ्म की जटिलता हे (n ^ k), जहां n आपके डेटा का आकार है (उदाहरण के लिए किसी सूची में मौजूद तत्वों की संख्या), और k एक स्थिर है।

  • डेटा आइटम की संख्या के एक फ़ंक्शन के रूप में जटिलता को समय पर मापा जाता है, जो इसे ले जाएगा।

  • ऑपरेशन वह है जो किसी विशेष कार्य के लिए मूल ऑपरेशन के रूप में समझ में आता है। छंटाई के लिए, मूल ऑपरेशन एक तुलना है। मैट्रिक्स गुणन के लिए, मूल संचालन दो संख्याओं का गुणन है।

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

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

यह साबित हो चुका है कि किसी भी समस्या को एक गैर-नियतात्मक TM द्वारा हल किया जा सकता है जो एक निर्धारक TM द्वारा हल किया जा सकता है। हालांकि, यह स्पष्ट नहीं है कि इसमें कितना समय लगेगा। बयान पी = एनपी का मतलब है कि यदि कोई समस्या एक गैर-नियतात्मक टीएम पर बहुपद समय लेती है, तो एक निर्धारक टीएम का निर्माण कर सकता है जो बहुपद समय में भी इसी समस्या को हल करेगा। अब तक कोई भी यह दिखाने में सक्षम नहीं है कि यह किया जा सकता है, लेकिन कोई भी यह साबित करने में सक्षम नहीं है कि यह नहीं किया जा सकता है, या तो।

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

एनपी-पूर्ण समस्या का एक उदाहरण एक सच असाइनमेंट खोजने की समस्या है जो एन वेरिएबल्स वाले बूलियन अभिव्यक्ति को सच बना देगा।
अभ्यास के क्षण के लिए किसी भी समस्या जो गैर-नियतात्मक टीएम पर बहुपद समय लेती है, केवल घातीय समय में एक नियतात्मक टीएम पर या एक पारंपरिक कंप्यूटर पर किया जा सकता है।
उदाहरण के लिए, सत्य असाइनमेंट की समस्या को हल करने का एकमात्र तरीका 2 ^ n संभावनाओं का प्रयास करना है।


5
यह सच नहीं है कि SAT को हल करने का एकमात्र तरीका मामलों की गणना है। DPLL एल्गोरिथ्म की जानकारी के लिए en.wikipedia.org/wiki/… देखें , जो वास्तव में कई सामान्य मामलों में बहुत ही कुशल है।
डग मैकक्लीन

44
डेरेक, मैं असहमत होने की भीख माँगता हूँ। मैं वास्तव में नहीं देखता कि आप ट्यूरिंग मशीनों के बिना पी और एनपी की व्याख्या कैसे करते हैं। मैं एक बार एक एल्गोरिथम वर्ग में था, जिसने यह कोशिश की। अगर मुझे TM के बारे में पता नहीं है, तो मैं पूरी तरह से खो जाऊंगा।
दिमा

4
यह व्यवहार में सच है कि एनपी-पूर्ण समस्याओं को हल करने में एक वास्तविक कंप्यूटर पर बहुपद से अधिक समय लगता है, लेकिन इसका मतलब यह नहीं है, यह सिर्फ कला की वर्तमान स्थिति है, इस तथ्य के परिणामस्वरूप कि पी = एनपी अज्ञात है। अगर किसी को किसी भी एनपी-पूर्ण समस्या को हल करने के लिए एक बहुपद एल्गोरिथ्म मिला, जो पी = एनपी साबित होगा, और हम जानते हैं कि ऐसा नहीं हुआ है क्योंकि यह समाचार में होगा! इसके विपरीत अगर यह साबित हो जाता है कि पी! = एनपी है, तो हम आत्मविश्वास से कह सकते हैं कि कोई एनपी-पूर्ण समस्या बहुपद समय में हल नहीं है।
स्टीव जेसोप

21
मुझे पता है कि यह काफी पुराना है, लेकिन मैं सिर्फ यह कहना चाहता हूं कि उत्तर महाकाव्य है और यह पहला है जो मेरे लिए क्लिक किया गया है! अच्छी नौकरी
दिमितर दिमित्रोव

4
दूसरे से अंतिम पैराग्राफ में सुधार: "हम निश्चित होंगे कि एक पारंपरिक कंप्यूटर पर बहुपद समय में एक एनपी पूरी समस्या को हल करने का कोई तरीका नहीं है ", क्योंकि पी एनपी का सबसेट है और पी! = एनपी साबित करने के लिए जरूरी नहीं है! एनपी में जो समस्याएं एनपी-कम्पलीट नहीं हैं, उनके बारे में कुछ भी वास्तव में पी। में है
मिल्ली स्मिथ

88
  1. एक हां या नहीं कोई समस्या P ( P olynomial time) में है यदि उत्तर बहुपद समय में गणना की जा सकती है।
  2. एक हाँ-या-कोई समस्या एनपी में है ( एन पर-नियतात्मक पी ऑलिनोमिअल समय) यदि एक हाँ उत्तर को बहुपद समय में सत्यापित किया जा सकता है

सहज रूप से, हम देख सकते हैं कि यदि कोई समस्या पी में है , तो यह एनपी में हैP में किसी समस्या के संभावित उत्तर को देखते हुए , हम केवल उत्तर को पुन: परिकलित करके उत्तर को सत्यापित कर सकते हैं।

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

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

अधिकांश वैज्ञानिकों का मानना ​​है कि पी ! = एनपी । हालाँकि, अभी तक P = NP या P ! = NP के लिए कोई प्रमाण स्थापित नहीं किया गया है । यदि कोई भी अनुमान के लिए कोई प्रमाण प्रदान करता है, तो वे US $ 1 मिलियन जीतेंगे


23

सबसे सरल उत्तर देने के लिए मैं सोच सकता हूं:

मान लीजिए कि हमारे पास एक समस्या है जो एक निश्चित संख्या में इनपुट लेती है, और विभिन्न संभावित समाधान हैं, जो दिए गए इनपुट के लिए समस्या का समाधान कर सकते हैं या नहीं कर सकते हैं। एक पहेली पत्रिका में एक तर्क पहेली एक अच्छा उदाहरण होगा: इनपुट स्थितियां हैं ("जॉर्ज ब्लू या ग्रीन हाउस में नहीं रहता है"), और संभावित समाधान बयानों की एक सूची है ("जॉर्ज पीले रंग में रहता है" घर, मटर बढ़ता है, और कुत्ते का मालिक है ")। एक प्रसिद्ध उदाहरण ट्रैवलिंग सेल्समैन समस्या है: शहरों की एक सूची दी गई है, और किसी भी शहर से किसी अन्य शहर में जाने के लिए समय, और एक समय सीमा, एक संभावित समाधान उन शहरों की सूची होगी, जहां सेल्समैन उनसे मिलने जाता है, और यह काम करेगा यदि यात्रा समय का योग समय सीमा से कम था।

ऐसी समस्या एनपी में है अगर हम कुशलता से एक संभावित समाधान की जांच कर सकते हैं कि क्या यह काम करता है। उदाहरण के लिए, सेल्समैन को क्रम में आने के लिए शहरों की एक सूची दी गई है, हम शहरों के बीच प्रत्येक यात्रा के लिए समय जोड़ सकते हैं, और आसानी से देख सकते हैं कि यह समय सीमा के अंतर्गत है या नहीं। एक समस्या पी में है अगर हम कुशलता से एक समाधान पा सकते हैं यदि कोई मौजूद है।

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

इसलिए, पी = एनपी समस्या को इस तरह से व्यक्त किया जा सकता है: यदि आप कुशलतापूर्वक ऊपर वर्णित प्रकार की समस्या के लिए एक समाधान को सत्यापित कर सकते हैं, तो क्या आप कुशलता से एक समाधान पा सकते हैं (या साबित करें कि कोई भी नहीं है)? स्पष्ट उत्तर है "आपको सक्षम क्यों होना चाहिए?", और यह बहुत ज्यादा है जहां मामला आज खड़ा है। कोई भी इसे एक या दूसरे तरीके से साबित नहीं कर पाया है और यह बहुत सारे गणितज्ञों और कंप्यूटर वैज्ञानिकों को परेशान करता है। इसलिए कोई भी जो समाधान साबित कर सकता है वह क्लेपुल फाउंडेशन से एक मिलियन डॉलर तक है।

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

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

तो, अगर आप किसी भी एनपी-पूर्ण समस्या के लिए एक कुशल सामान्य समाधान तकनीक पा सकते हैं, या यह साबित कर सकते हैं कि ऐसी कोई मौजूद नहीं है, प्रसिद्धि और भाग्य आपका है।


1
आपके दूसरे अंतिम पैराग्राफ में "एक तरह से, सबसे कठिन प्रकार" है। आपको कहना चाहिए कि एनपी-पूर्ण सबसे कठिन हैं क्योंकि वे एनपी-हार्ड हैं।
ग्रोम

1
मुझे यकीन नहीं है कि भाग्य तुम्हारा होगा। सरकार आपका सिर चाहती है।
मिल्ली स्मिथ

9

मेरे विनम्र ज्ञान से एक संक्षिप्त सारांश:

कुछ आसान कम्प्यूटेशनल समस्याएं हैं (जैसे एक ग्राफ़ में दो बिंदुओं के बीच सबसे छोटा रास्ता खोजना), जिसकी गणना बहुत तेज़ी से की जा सकती है (O (n ^ k), जहां n इनपुट का आकार है और k एक स्थिरांक है (में है) ग्राफ़ का मामला, यह वर्टेक्स या किनारों की संख्या है))।

अन्य समस्याएं, जैसे कि एक ग्राफ में प्रत्येक शीर्ष को पार करने वाला रास्ता खोजना या सार्वजनिक कुंजी से आरएसए निजी कुंजी प्राप्त करना कठिन है (O (e ^ n))।

लेकिन सीएस बोलते हैं कि समस्या यह है कि हम एक नियतात्मक के लिए एक गैर-नियतात्मक ट्यूरिंग-मशीन को 'रूपांतरित' नहीं कर सकते हैं, फिर भी, हम निर्धारक लोगों के लिए गैर-नियतात्मक परिमित ऑटोमेटन (रेगेक्स पार्सर की तरह) को बदल सकते हैं (अच्छी तरह से, आप कर सकते हैं, लेकिन मशीन के रन-टाइम में लंबा समय लगेगा)। यही है, हमें हर संभव पथ का प्रयास करना होगा (आमतौर पर स्मार्ट सीएस प्रोफेसर कुछ को बाहर कर सकते हैं)।

यह दिलचस्प है क्योंकि किसी को भी समाधान का कोई विचार नहीं है। कुछ कहते हैं कि यह सच है, कुछ कहते हैं कि यह गलत है, लेकिन आम सहमति नहीं है। एक और दिलचस्प बात यह है कि एक समाधान सार्वजनिक / निजी कुंजी एन्क्रिप्शन (RSA) की तरह हानिकारक होगा। आप उन्हें तोड़ सकते हैं जितनी आसानी से आरएसए कुंजी उत्पन्न होती है।

और यह एक बहुत ही प्रेरणादायक समस्या है।


1
यह बिल्कुल सच नहीं है - आप NDTM को DTM में परिवर्तित कर सकते हैं, लेकिन नई मशीन में मूल के चलने के समय में समय चल रहा है (आप प्रभावी रूप से पहले एनडीटीएम के राज्य संक्रमण ग्राफ को खोज लेंगे)।
एडम राइट

6

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


5

सबसे पहले, कुछ परिभाषाएँ:

  • एक विशेष समस्या पी में है यदि आप किसी समाधान की तुलना में कम समय के n^kलिए गणना कर सकते हैं k, जहां nइनपुट का आकार है। उदाहरण के लिए, छँटाई की जा सकती है n log nजिसमें से कम है n^2, इसलिए छँटाई बहुपद समय है।

  • एक समस्या एनपी में है अगर वहां kऐसा मौजूद है n^kजिसमें आकार का एक समाधान मौजूद है जिसमें आप अधिकतम समय में सत्यापित कर सकते हैं n^k। 3-कलरिंग ऑफ ग्राफ्स लें: एक ग्राफ दिया गया, 3-कलरिंग (वर्टेक्स, कलर) जोड़े की एक सूची है, जिसका आकार है O(n)और आप समय में सत्यापित कर सकते हैं O(m)(या O(n^2)) क्या सभी पड़ोसियों के अलग-अलग रंग हैं। तो एक ग्राफ 3-रंग का है केवल अगर एक छोटा और आसानी से सत्यापन योग्य समाधान है।

NP की समतुल्य परिभाषा है " P olynomial time में एक N ondeterministic Turing machine द्वारा हल की जाने वाली समस्याएं "। जबकि यह बताता है कि नाम कहाँ से आता है, यह आपको वही सहज ज्ञान नहीं देता है जो एनपी की समस्याओं की तरह होता है।

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

क्यों P =? NPदिलचस्प है सवाल ? इसका जवाब देने के लिए, सबसे पहले यह देखने की जरूरत है कि एनपी-पूर्ण समस्याएं क्या हैं। सीधे शब्दों में कहें,

  • एक समस्या L NP-पूर्ण है यदि (1) L P में है, और (2) एक एल्गोरिथ्म जो L को हल करता है, जिसका उपयोग NP में किसी भी समस्या L को हल करने के लिए किया जा सकता है; यह है कि L का एक उदाहरण दिया गया है, तो आप L का एक उदाहरण बना सकते हैं, जिसमें एक समाधान है यदि और केवल L के उदाहरण में समाधान है। औपचारिक रूप से, एनपी में हर समस्या L 'L के लिए reducible है।

ध्यान दें कि L का उदाहरण बहुपद-समय-योग्य होना चाहिए और बहुपद का आकार होना चाहिए, L 'के आकार में; इस तरह, बहुपद समय में एनपी-पूर्ण समस्या को हल करने से हमें सभी एनपी समस्याओं का एक बहुपद समय समाधान प्राप्त होता है।

यहाँ एक उदाहरण है: मान लीजिए कि हम जानते हैं कि ग्राफ़ का 3-रंग एक एनपी-कठिन समस्या है। हम यह साबित करना चाहते हैं कि बूलियन फॉर्मूलों की संतोषजनकता तय करना एक एनपी-कठिन समस्या है।

प्रत्येक शीर्ष v के लिए, दो बूलियन चर v_h और v_l हैं, और आवश्यकता (v_h या v_l): प्रत्येक जोड़ी में केवल मान {01, 10, 11} हो सकते हैं, जिन्हें हम रंग 1, 2 और 3 के रूप में सोच सकते हैं।

प्रत्येक किनारे (यू, वी) के लिए, आवश्यकता है कि (u_h, u_l)! = (V_h, v_h)। अर्थात्,

not ((u_h and not u_l) and (v_h and not v_l) or ...) सभी समान विन्यासों और वसीयत को मानने से कि उनमें से कोई भी मामला नहीं है।

AND'इन सभी बाधाओं को मिलाकर एक बूलियन सूत्र मिलता है जिसका बहुपद आकार होता है ( O(n+m))। आप जांच कर सकते हैं कि यह बहुपद समय लगता है और साथ ही गणना करने के लिए: आप O(1)प्रति शीर्ष और प्रति किनारे सीधा सामान कर रहे हैं ।

यदि आप मेरे द्वारा किए गए बूलियन सूत्र को हल कर सकते हैं, तो आप ग्राफ रंग को भी हल कर सकते हैं: चर v_h और v_l की प्रत्येक जोड़ी के लिए, v का रंग उन चर के मूल्यों से मेल खाने वाला एक होने दें। सूत्र के निर्माण से, पड़ोसियों के पास समान रंग नहीं होंगे।

इसलिए, यदि ग्राफ़ का 3-रंग एनपी-पूर्ण है, तो बूलियन-सूत्र-संतोषजनकता है।

हम जानते हैं कि रेखांकन का 3-रंग एनपी-पूर्ण है; हालाँकि, ऐतिहासिक रूप से हमें यह पता चला है कि पहले बूलियन-सर्किट-संतोषजनकता की एनपी-पूर्णता को दिखाते हुए, और फिर उस 3-colorability (इसके बजाय अन्य तरीके से) को कम करने के लिए।

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