क्या यह आवश्यक है कि एक एनपी-कठिन समस्या कम्प्यूटेशनल होनी चाहिए?
मुझे ऐसा नहीं लगता, लेकिन मुझे यकीन नहीं है।
क्या यह आवश्यक है कि एक एनपी-कठिन समस्या कम्प्यूटेशनल होनी चाहिए?
मुझे ऐसा नहीं लगता, लेकिन मुझे यकीन नहीं है।
जवाबों:
नहीं, एक -हार्ड समस्या गणनीय होने की जरूरत नहीं। परिभाषा काफी हद तक पूरी हो चुकी है: एक समस्या , भार है, यदि उस समस्या का पॉली-टाइम समाधान है, जिसका अर्थ है में हर समस्या है, तो पॉली-टाइम समाधान है (यानी कमी N P में प्रत्येक समस्या के लिए मौजूद है। ।)।
निर्विवाद समस्याएं तब बहुत कठिन होती हैं: मान लीजिए कि हम बहुपद में एक को हल कर सकते हैं। फिर हम इस प्रमाण का उपयोग करते हैं कि यह प्राप्त करने के लिए कि यह कम्प्यूटेशनल और असुविधाजनक दोनों है, एक विरोधाभास है। इस झूठ से, हम कुछ भी प्राप्त कर सकते हैं, एक बहुपद समय एल्गोरिथ्म जो कुछ के लिए है अर्थात् है कि वहाँ समस्या हम देख रहे हैं।
उदाहरण के लिए, हॉल्टिंग समस्या विचार करें । हम किसी भी कम कर सकते हैं भाषा करने के लिए इस प्रकार, यह मानते हुए कि हम एक polytime चेकर है जो जांच करता है कि के लिए एक प्रमाण पत्र है :
इस प्रकार, पॉली-टाइम एल्गोरिथ्म को हल करने की समस्या को हल करने के लिए एकल कॉल के साथ, हम बहुपद समय में किसी भी समस्या को हल कर सकते हैं ।
इस तरह की कमी उपयोगी नहीं है, क्योंकि यह सब बताता है कि "अगर झूठ है तो कुछ"। हम पहले से ही जानते हैं कि असुविधाजनक समस्याओं के लिए कोई पॉलीटाइम एल्गोरिथम नहीं है।
इस प्रश्न को लेकर इस समुदाय में कुछ काफी भ्रम हैं। मैं पानी को साफ करने और कम्प्यूटेबिलिटी और एनपी-कठोरता के बीच के संबंध को रोशन करने की उम्मीद में एक विस्तृत जवाब दूंगा।
पहले, मेरा मानना है कि इसमें शामिल विभिन्न परिभाषाओं के बारे में स्पष्ट और स्पष्ट होने से बहुत सारी उलझनें दूर हो जाएंगी।
एक स्ट्रिंग कुछ निश्चित परिमित वर्णमाला के पात्रों का एक परिमित अनुक्रम है।
एक निर्णय समस्या तार का एक सेट है। (यह सेट आम तौर पर अनंत है।) कुछ संपत्ति के लिए परीक्षण स्ट्रिंग के रूप में निर्णय समस्या के बारे में सोचो: संपत्ति के साथ तार सेट में हैं, और संपत्ति के बिना तार नहीं हैं।
मान लें कि हमारे पास दो निर्णय समस्याएं हैं, और बी । कहते हैं एक है बहुपद समय कम करने योग्य करने के लिए बी अगर कोई बहुपद है पी ( एक्स ) और एल्गोरिथ्म कुछ एल्गोरिथ्म एम कि इस तरह के, सभी स्ट्रिंग्स के लिए ,
- यदि आप को इनपुट s के साथ प्रदान करते हैं , M , P से कम में रुकता है ( | s । ) स्टेप्स (जहाँ | s | स्ट्रिंग s की लंबाई है ) और एक स्ट्रिंग M को आउटपुट करता है (।
- में है एक अगर और सिर्फ़ अगर एम ( रों ) में है ।
एक निर्णय समस्या , NP की कठिन है, यदि हर NP निर्णय समस्या A , A के लिए है करने के लिए बहुपद समय कम करने योग्य है ।
एक एल्गोरिथ्म एम है अगर एक निर्णय समस्या कम्प्यूटेशनल है , उस के लिए सभी स्ट्रिंग्स, ,
- यदि आप इनपुट एस के साथ प्रदान करते हैं , तो हाल्ट और आउटपुट या तो "हां" या "नहीं" है।
- उत्पादन "हाँ" अगर है में है एक और "नहीं" अन्यथा।
उपरोक्त परिभाषाओं के साथ, हम तुरंत स्पष्ट कर सकते हैं कि मुझे क्या लगता है कि आपके प्रश्न में मूल भ्रम हो सकता है: निर्णय समस्या, कटौती, या एनपी-कठोरता की परिभाषाओं में कुछ भी निर्णय की समस्याओं की गणना करने योग्य नहीं है। परिभाषाएँ निर्णय की समस्याओं के बारे में सही समझ रखती हैं, क्योंकि स्ट्रिंग्स के मनमाने ढंग से सेट, और ये सेट वास्तव में बहुत खराब हो सकते हैं।
टेबल पर दो प्रश्न छोड़ता है:
प्रश्न 1 का उत्तर देना आसान है। गैर-गणना योग्य निर्णय समस्याओं को खोजने के लिए दो विशेष रूप से महत्वपूर्ण तरीके हैं जो एनपी-हार्ड हैं। पहली है रुकने की समस्या: हॉल्टिंग की समस्या, , की संपत्ति है कि हर कम्प्यूटेशनल निर्णय समस्या बहुपद-टाइम रिड्यूस टू एच है । चूंकि एनपी समस्याएं कम्प्यूटेशनल हैं, इसलिए एनपी की हर समस्या बहुपद-टाइम रिड्यूसबल टू एच है , इसलिए एनपी-हार्ड है।
गैर-कम्प्यूटेबल, एनपी-हार्ड समस्या का निर्माण करने का दूसरा महत्वपूर्ण तरीका यह है कि हम किसी ज्ञात एनपी-हार्ड समस्या को किसी भी ज्ञात गैर-कम्प्यूटेबल समस्या के साथ जोड़ सकते हैं। चलो एनपी कठिन हो सकता है और बी गैर गणनीय हो। निर्णय समस्या फार्म एक ⊕ बी इस प्रकार है: एक ⊕ बी रूप से उन लोगों के तार "0, में एक स्ट्रिंग के बाद होता है एक " और रूप से उन लोगों के लिए "1, में एक स्ट्रिंग के बाद बी "। एक ⊕ बी क्योंकि हम करने के लिए (किसी भी समस्या के) किसी भी कमी को बदल सकते हैं एनपी कठिन है एक करने के लिए एक कमी में एक: बस इसके आउटपुट स्ट्रिंग के सामने एक अतिरिक्त "0" आउटपुट के लिए एल्गोरिथ्म को ट्वीक करें। , गैर गणनीय है कंप्यूटिंग के बाद से एक ⊕ बी निर्णय लेने की आवश्यकता है जो तार कि "1" के साथ शुरू सेट में कर रहे हैं; यह असंभव है, क्योंकि बी गैर-संगणक है।
प्रश्न 2 काफी पेचीदा है, लेकिन वास्तव में गैर-गणना योग्य निर्णय समस्याएं हैं जो एनपी-हार्ड (पी एनपी मानकर ) नहीं हैं। युवल का ठीक उत्तर इस तरह की निर्णय समस्या का स्पष्ट रूप से निर्माण करता है। (कमरे, किसी भी "कोहेन में किसी भी कम्प्यूटेबिलिटी सिद्धांतकारों के लिए Π 0 1 -generic" चाल, के रूप में अच्छी तरह से करना होगा।) मैं से विभाजित करेंगे क्यों अंतर्ज्ञान है कि "एनपी कठिन समस्याओं कठिन, गैर गणनीय समस्याओं कड़ी मेहनत कर रहे हैं " गलत है।
एनपी-कठोरता और गैर-कम्प्यूटेबिलिटी दोनों का कहना है कि एक समस्या बहुत ही सामान्य अर्थों में "कठिन" है, लेकिन वे बहुत अलग हैं और एक ही तरह की घटना के साथ एक साथ गांठ नहीं होनी चाहिए। विशेष रूप से, एनपी-कठोरता एक "सकारात्मक" संपत्ति है: एक एनपी-कठिन समस्या इस अर्थ में कठिन है कि, ए के लिए एक धोखा पत्र तक पहुंच को देखते हुए , आप समस्याओं का एक कठिन वर्ग हल कर सकते हैं । दूसरी ओर, गैर कम्प्यूटेबिलिटी एक "नकारात्मक" संपत्ति है: एक गैर गणनीय समस्या कठिन अर्थ है कि आप में नहीं कर सकते का समाधान एक संसाधनों की किसी वर्ग के साथ ।
("जबरदस्ती," वैसे, तकनीक का उपयोग "कोहेन जेनेरिक" के उत्पादन के लिए किया जाता है, जिसका मैंने उल्लेख किया है। बहुत अस्पष्ट होने के लिए, जबरदस्ती उन चीजों का उत्पादन करने का एक सामान्य तरीका है जो "सामान्य" हैं। कोई सकारात्मक गुण और हर नकारात्मक संपत्ति। इसीलिए मजबूरन सीधे एक ऐसी समस्या उत्पन्न हो सकती है जो न तो संगणक है और न ही एनपी-हार्ड।)
नहीं। एनपी-हार्ड का अर्थ है कि यह कठिन एनपी-समस्याओं की तुलना में कठिन या कठिन है। सहज रूप से, अप्रतिस्पर्धी होने से यह एनपी की तुलना में बहुत अधिक कठिन हो जाएगा।
विकिपीडिया:
निर्णय की समस्याएं हैं जो एनपी-हार्ड हैं लेकिन एनपी-पूर्ण नहीं हैं, उदाहरण के लिए हॉल्टिंग समस्या।
सभी जानते हैं कि गणना योग्य नहीं है
problem()
फ़ंक्शन नहीं है जिसे हम कॉल कर सकते हैं।
पूर्णता के लिए, हम निम्नलिखित प्रमेय को सिद्ध करते हैं:
एक uncomputable भाषा है जो एनपी कठिन यदि और केवल यदि पी नहीं है मौजूद है एनपी।
यदि पी = एनपी है तो कोई भी गैर-तुच्छ भाषा (जो ) से भिन्न है , वह एनपी-हार्ड (व्यायाम) है, और विशेष रूप से कोई भी असंबद्ध भाषा एनपी-हार्ड है।
अब मान लीजिए कि पी एनपी। चलो टी मैं सब ट्यूरिंग मशीन के कुछ गणन किया। हम चरणों में आवश्यक भाषा एल का निर्माण करेंगे । प्रत्येक चरण में हम एक { 0 , 1 , रखेंगे ? } का रंग { 0 , 1 } * जो हम भी द्वारा निरूपित एल ; यहाँ 0 का मतलब है कि हमने तय किया है कि स्ट्रिंग L में नहीं है , 1 का मतलब है कि हमने तय कर लिया है कि स्ट्रिंग L , और में है ?इसका मतलब है कि हमने अभी तक फैसला नहीं किया है। सभी लेकिन सूक्ष्मता से कई तार रंगे होंगे ।
चरण , हम T i को एक मशीन के रूप में सोचते हैं जो या तो इसके इनपुट को स्वीकार करता है, इसे अस्वीकार करता है, या कभी भी रुकता नहीं है। यदि T i हमेशा रुकता नहीं है तो हम कुछ भी नहीं करते हैं। यदि T i हमेशा रुका रहता है तो हम एक स्ट्रिंग x पाते हैं जैसे कि L ( x ) = ? , और सेट L ( x ) : = 0 यदि T i ( x ) स्वीकार करता है और L ( x ) : = 1 यदि मैं अस्वीकार करता है।
चरण , हम T i को उसके इनपुट पर एक (संभवतः) आंशिक कार्य करने वाली मशीन के रूप में सोचते हैं । यदि T i कुल नहीं है, या यदि यह कुल है, लेकिन बहुपद समय में नहीं चलता है, या यदि यह कुल है, लेकिन इसकी सीमा परिमित है, तो हम कुछ नहीं करते हैं। यदि T i कुल है, तो बहुपद समय में चलता है, और इसकी अनंत सीमा होती है, तो हम एक स्ट्रिंग x पाते हैं जैसे कि L ( T i ( x ) ) = ? । यदि एक्स ∈ एस ए टी (है कि, अगर एक्सएक संतोषजनक CNF एन्कोड करता है) फिर हम सेट करते हैं, और अन्यथा हम L ( x ) : = 1 सेट करते हैं ।
असीम कई कदम के बाद, हम एक मिल का रंग { 0 , 1 } * जो हम एक मनमाना तरीके से एक वास्तविक भाषा को पूरा करें।
परिणामी भाषा अभिकलन योग्य नहीं है: चरण 2 मैं सुनिश्चित करता हूं कि T i इसकी गणना नहीं करता है। यह एनपी-हार्ड भी नहीं है, लेकिन यहां तर्क थोड़ा अधिक नाजुक है। मान लीजिए कि टी i , एसएटी से एल तक एक पॉलीटाइम कमी है । अगर की सीमा टी मैं परिमित है तो हम बदल सकते हैं टी मैं एक polytime मशीन सैट निर्णय लेने से, की सच्चाई तालिका में सूचीबद्ध करके में एल की सीमा पर टी मैं । यह धारणा पी द्वारा असंभव है ≠ एनपी। इस प्रकार T i की अनंत सीमा है, लेकिन फिर चरण 2 नियम से सैट से L तक की कमी को दर्शाता है।
एक भाषा अगर हर के लिए एनपी कठिन है एल ' ∈ एन पी हम उस राशि एल ' के लिए बहुपद समय कम करने योग्य है एल । Nondeterministic ट्यूरिंग मशीनों के लिए स्वीकृति की समस्या
अनिर्णायक है और एनपी-हार्ड है। एक पर विचार के लिए । एल ' कुछ गैर नियतात्मक ट्यूरिंग मशीन द्वारा निर्णय लिया गया है एम ' बहुपद समय जटिलता के साथ। L ′ से A N T M तक एक पाली-टाइम कमी f द्वारा दी जाती है
मुझे लगता है कि लोगों को यह सोचने के लिए मजबूर किया जाता है कि कोई अप्रिय-कठिन एनपी-कठिन समस्या नहीं है, क्योंकि वे इस बात को याद करते हैं कि एनपी-कठोरता एक समस्या की कठोरता पर कम बाध्य है, पी या एनपी जैसी उनकी कठोरता पर एक ऊपरी बाध्य नहीं है।
एक भाषा L को NP-hard होने का मतलब है कि यह NP की भाषा से ऊपर है और यह है। अब अगर आप यह समझते हैं कि यह दिखाने की क्या आवश्यकता है कि मनमाने ढंग से कठिन समस्याएँ हैं।
को भाषा होने दो । एक ब्लैक-बॉक्स के साथ संवर्धित एल्गोरिदम पर विचार करें जो वे ए में सदस्यता तय करने के लिए उपयोग कर सकते हैं । सी ए द्वारा उन्हें निरूपित करते हैं । यह देखने के लिए कि के लिए हॉल्टिंग समस्या आसान है सी ए , एच एक एल टी सी ए में नहीं है सी ए ।
Computablity सिद्धांत रूप में यह कहा जाता है कूद के और से दर्शाया जाता है एक ' । तो A < A ′ सख्ती से। और कुछ भी नहीं है हमें इस दोहरा से बंद हो जाता है: एक < एक ' < एक " < एक ‴ < । । ।