क्या -complete समस्याएं स्वाभाविक रूप से


66

वर्तमान में, बड़े इनपुट के लिए सामान्य स्थिति में NP -complete समस्या या PSPACE -complete समस्या को हल करना संभव है। हालांकि, दोनों घातीय समय और बहुपद स्थान में विलेय हैं।

चूँकि हम nondeterministic या 'lucky' कंप्यूटर बनाने में असमर्थ हैं, तो क्या इससे हमें कोई फ़र्क पड़ता है अगर कोई समस्या NP -complete या PSPACE -complete है?

जवाबों:


82

यह एक बहुत अच्छा सवाल है जो मैंने बहुत कुछ सोचा है: क्या यह तथ्य यह है कि एक समस्या अपूर्ण है या अपूर्ण वास्तव में समस्या की सबसे खराब स्थिति को प्रभावित करती है? NPPSPACEअधिक स्पष्ट रूप से, क्या इस तरह का भेद वास्तव में व्यवहार में समस्या के "विशिष्ट मामले" जटिलता को प्रभावित करता है?

अंतर्ज्ञान कहता है कि अपूर्ण समस्या अपूर्ण एक की तुलना में कठिन है , चाहे आप किस जटिलता का उपयोग करें। लेकिन स्थिति सूक्ष्म है। यह हो सकता है, उदाहरण के लिए, कि (मात्रा निर्धारित बूलियन सूत्र, विहित -Complete समस्या) subexponential समय में है यदि और केवल यदि (satisfiability, विहित -Complete समस्या) subexponential समय में है। (एक दिशा स्पष्ट है, दूसरी दिशा एक प्रमुख परिणाम होगी!) अगर यह सच है, तो हो सकता है कि "मैं सिर्फ इस समस्या को हल करना चाहता हूं" दृष्टिकोण से, यह एक बड़ी बात नहीं है कि क्या समस्या -complete है याPSPACENPQBFPSPACESATNPPSPACENP- अपूर्ण: किसी भी तरह से, एक के लिए एक उपसंचाई एल्गोरिथ्म का तात्पर्य है दूसरे के लिए एक उप-रूपात्मक एल्गोरिथ्म।

मुझे एक शैतान का वकील होना चाहिए, और आपको एक उदाहरण देना चाहिए जहां एक समस्या दूसरे की तुलना में "कठिन" होती है, लेकिन फिर भी दूसरे की तुलना में "अधिक ट्रैक्टेबल" हो जाती है।

चलो पर एक बूलियन सूत्र होना चर, जहां भी है। मान लें कि आपके पास दो फ़ार्मुलों के बीच एक विकल्प है जिसे आप तय करना चाहते हैं:F(x1,,xn)nn

Φ1=(x1)(x2)(xn1)(xn)F(x1,,xn)

Φ2=(x1)(x2)(xn1(xn)F(x1,,xn)

(यह, , मात्रात्मक वैकल्पिक है।)Φ2

आप किसको हल करना ज्यादा आसान समझते हैं? प्रकार के सूत्र , या प्रकार के सूत्रों ?Φ1Φ2

एक सोच सकता है कि स्वाभाविक पसंद है , के रूप में यह केवल है यह तय करने के लिए -Complete, जबकि एक है -Complete समस्या। लेकिन वास्तव में, हमारे सबसे अच्छे ज्ञात एल्गोरिदम के अनुसार, एक आसान समस्या है। हमें यह पता नहीं है कि से कम चरणों में सामान्य लिए को कैसे हल किया । (यदि हम ऐसा कर सकते हैं, तो हमारे पास नए फॉर्मूले का आकार कम सीमाएँ !) लेकिन यादृच्छिक समय में यादृच्छिक गेम ट्री खोज का उपयोग करके किसी भी लिए को आसानी से हल किया जा सकता है ! एक संदर्भ के लिए, अध्याय 2, धारा 2.1, मोटवानी और राघवन में देखें।Φ1NPΦ2PSPACEΦ2Φ1F2nΦ2FO(2.793n)

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


16
अच्छा जवाब, और एक दिलचस्प लेना।
सुरेश वेंकट

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

37

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

निर्णय की समस्याओं के लिए - ऐसी समस्याएं जिनके लिए हर उदाहरण में ' YES ' या ' NO ' उत्तर होता है - NP उन समस्याओं का वर्ग होता है जिनके लिए हम कुशलतापूर्वक एक पुष्ट प्रमाण को सत्यापित कर सकते हैं कि एक दिया गया उदाहरण ' YES ' का उदाहरण है, नियत रूप से, यदि हमें एक के साथ प्रस्तुत किया गया है। उदाहरण के लिए, यदि आपके पास 3-सैट के उदाहरण के लिए चर का एक संतोषजनक असाइनमेंट है, तो यह असाइनमेंट आपको कुशलता से साबित करने की अनुमति देता है कि उदाहरण संतोषजनक है। इस तरह के एक संतोषजनक कार्य को खोजना मुश्किल हो सकता है, लेकिन एक बार आपके पास एक, आप आसानी से दूसरों को साबित कर सकते हैं कि उदाहरण संतोषजनक है बस उन्हें आपके द्वारा हल किए गए समाधान को सत्यापित करने से।

इसी तरह, कोएनपी के लिए , ' NO ' उदाहरणों के लिए कुशलतापूर्वक जाँच योग्य प्रमाण मौजूद हैं ; और में समस्याओं के लिए एनपी  ∩  coNP , आप दोनों कर सकते हैं। लेकिन PSPACE- अपूर्ण समस्याओं के लिए, ऐसी कोई प्रक्रिया मौजूद नहीं है - जब तक कि आप जटिलता वर्गों की कुछ काफी शानदार समानताएं साबित नहीं कर सकते।


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

@Lamine: मुझे नहीं पता है कि आप उस अंतर का पता लगा रहे हैं जो आप सवाल कर रहे हैं (कम से कम, केवल निर्णय और पूर्ण अनुकूलन के बीच)। शायद आपका मतलब है कि पूछने वाला केवल उस सवाल का जवाब खोजने के लिए आवश्यक संसाधनों के सवाल में दिलचस्पी रखता है, और समस्या की कठिनाई के अन्य उपायों में निर्लिप्त है, जिस स्थिति में मैं सहमत हूं कि मेरी प्रतिक्रिया इसका जवाब नहीं देती है। किसी भी मामले में, इस सवाल के लिए ऊपर मेरा जवाब है क्योंकि यह खड़ा है।
नील दे बेउड्राप

5
बहुत अच्छा जवाब।
डेव क्लार्क

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

@ एंड्रस: सच - इस प्रकार मेरा जोर है कि समाधान ढूंढना मेरे जवाब की प्रस्तावना में एकमात्र महत्वपूर्ण चीज नहीं है।
नेल डी बेउड्राप

36

हम नहीं जानते कि एनपी-पूर्ण समस्याओं से औसत-केस कठिन समस्याओं का निर्माण कैसे किया जाए लेकिन हम समान वितरण पर भी समस्याएं पैदा करने के लिए PSPACE (देखें कोब्लर एंड शूलर (1998) ) के लिए ऐसा कर सकते हैं जो नहीं हो सकता अधिकांश आदानों पर हल किया गया जब तक कि सभी PSPACE की गणना करना आसान नहीं है।


20

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

मैं PSPACE में समस्याओं के लिए समान रूप से अच्छी तरह से इंजीनियर solvers के बारे में पता नहीं हूँ।



7

आप इसे इस तरह से सोच सकते हैं: क्या गणित की समस्या का एक प्रमाण है जो मानव-पठनीय है, या क्या उसे "" प्राथमिक प्रमाण की आवश्यकता है। उदाहरण: चेकर्स की प्रारंभिक स्थिति एक ड्रा है? (उत्तर: हां।) शतरंज की शुरुआती स्थिति सफेद के लिए एक जीत है? (उत्तर: अज्ञात, लेकिन अधिकांश ग्रेडमास्टर्स सोचते हैं कि यह एक ड्रॉ है।)

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

यह रूपक टूट जाएगा यदि बहुत मुश्किल धक्का दिया गया - आकार का एक एनपी-सबूत शायद कभी किसी के सिर में फिट नहीं होगा। लेकिन मूल विचार "गवाह छोटे हैं" इस कारण का हिस्सा है कि एनपी-पूर्ण समस्याओं का इतना औद्योगिक महत्व है।n1000000


क्या कोई यह भी तर्क दे सकता है कि कोएनपी-पूर्ण समस्याओं को (कभी-कभी) "कंप्यूटर प्रमाण" की आवश्यकता होती है?
फिलिप व्हाइट

@ प्रदीप व्हाइट: मुझे नहीं लगता कि यह समान है। "शतरंज ड्रा" बोलो कोएनपीपी में है। नहीं कहने के लिए, मुझे बस इतना करना है कि एक एकल मजबूर लाइन का प्रदर्शन करना है जो आसानी से सत्यापित हो। हालांकि, हम उम्मीद करते हैं कि, भले ही इस तरह की रेखा मौजूद हो, यह साबित करना बहुत मुश्किल होगा कि यह वास्तव में "मजबूर" है। यदि समस्या किसी विशेष दिशा में हल करने योग्य है तो सादगी की कोई गारंटी नहीं है। "शतरंज एक ड्रा है" शायद स्वाभाविक रूप से यह साबित करने के लिए एक कंप्यूटर की आवश्यकता होती है, चाहे वह सही हो या गलत।
हारून स्टर्लिंग

5

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

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


0

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

मुझे लगता है कि यह समस्याओं की संरचना के कारण है। हां, यदि आप केवल समाधानों की गणना करते हैं, तो SAT समाधान सुपर धीमा है। लेकिन क्योंकि इसमें क्वांटिफायर अल्टरनेशन नहीं है, इसलिए लोग फॉर्मूले में स्ट्रक्चर को खोजते हैं और इसलिए एन्यूमरेशन से बचते हैं। मुझे लगता है कि रयान विलियम्स ने इस बात को नजरअंदाज कर दिया।

क्वांटिफायर अल्टरनेशन के साथ, हाँ, चुभने के स्मार्ट तरीके हैं, लेकिन फिर भी संरचना CNF फॉर्मूला की तरह समृद्ध नहीं है।

मुझे भविष्य की भविष्यवाणी करने दो। SAT समाधान सूत्र की जांच करके और खोज से अनिवार्य रूप से बचने के लिए, इसे P से कर देगा, जबकि शतरंज खेल के पेड़ में खोज पर पूंजी लगाकर इसे P बना देगा।

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