सभी समाधानों को सूचीबद्ध करने से संबंधित जटिलता कक्षाएं?


15

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

क्या समस्याओं का वर्णन करने के लिए एक जटिलता वर्ग है जो "एक बहुपद-समय गणना योग्य predicate और एक स्ट्रिंग , सभी को गणना करते हैं जिसके लिए सही विषय है [कुछ सम्मिलित करें] उपयुक्त जटिलता प्रतिबंध] "? मैं समझता हूं कि यह दिए गए प्रतिबंधों को कम करने के लिए मुश्किल हो सकता है कि समाधानों की संख्या इनपुट के आकार की तुलना में बहुत बड़ी हो सकती है , हालांकि यह असंभव नहीं लगता है।x y P ( x , y ) xP(x,y)xyP(x,y)x


दिलचस्प। हो सकता है व्यवहार में प्रासंगिक समस्याओं के कई उदाहरणों में अक्सर समाधान की एक घातीय संख्या होती है, यदि कोई हो। SAT और CLIQUE के उदाहरण, सामान्य रूप से, एक बड़ा समाधान स्थान है।
ची

3
इसे औपचारिक बनाने के लिए यहां एक और ansatz है। एक समस्या , X E (X-enumerable के लिए) में है अगर कोई X-एल्गोरिथ्म A है जिससे A ( x , i ) i वें समाधान लौटाता है (यानी I th y with P ( x , y ) ) wrt कुछ आदेश दे रहा है। ध्यान दें कि यह कैसे कभी-कभी आरई को परिभाषित करता है के समान है। यह समाधान स्थान के आकार को मापता है और इस पर ध्यान केंद्रित करता है कि अगला समाधान कितना कठिन है। कुल लागत, संक्षेप में उपलब्ध है। PXEAA(x,i)iIyP(x,y)
राफेल

3
(मैं इसे एक के रूप में परिभाषित कभी नहीं देखा है वर्ग है, लेकिन आप की अवधारणा के बारे में पता कर रहे हैं बहुपद देरी से गणन ?)

@ राफेल यह वह नहीं हो सकता है जिसकी हम तलाश कर रहे हैं। उदाहरण के लिए, यदि लिए सबसे अच्छा एल्गोरिथ्म सभी समाधानों पर चलना है, जब तक कि मैंने उनमें से i को नहीं पाया है और समय Θ ( f ( | x ) ) ) में चलता है , तो हम जिस जटिलता की तलाश कर रहे हैं वह Θ है ( ( | x | ) ) , लेकिन योग जटिलता सुझाव है कि Θ ( ( | x | ) 2 )A(x,i)iΘ(f(|x|))Θ(f(|x|))Θ(f(|x|)2)
लेउवे विन्खुइजेन सेप

@ रिकीडेमर यही वह चीज है जो मैं अपने गुलामों से निकाल रहा था, है न? यह जानकर अच्छा लगा कि एक स्थापित औपचारिकता है।
राफेल

जवाबों:


10

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

Precomputation कदम कुछ काम के लिए आवश्यक है कि इससे पहले कि पहले समाधान प्रगणित है प्रदर्शन करती है। इसमें स्वयं समाधान खोजना या कुछ बड़ी डेटा संरचना को प्रारंभ करना शामिल हो सकता है जो प्रत्येक समाधान के बीच समग्र विलंब को कम करेगा।

देरी संसाधन गणना मनमाना enumerated समाधान के बीच में आवश्यक के साथ जुड़े लागत है। दूसरे शब्दों में, देरी स्थान और समय के उत्पादन के लिए आवश्यक का एक उपाय है के बाद समाधान मैं टी एक। ऐसी समस्याएं जिनके समाधान के लिए प्रत्येक एन्यूमरेशन के लिए O ( 1 ) समय लगता है, को निरंतर विलंब कहा जाता है। की एक आवश्यकता हे ( पी एल y ( एन ) ) समय बहुपद देरी के लिए कहा जाता है।i+1thithO(1)O(poly(n))

विशेष रूप से आपके प्रश्न में वर्णित गणना की समस्या के लिए, आपको जोहान्स श्मिट (नीचे स्थित लिंक) द्वारा "Enumeration: Algorithms और Complexity" की धारा 2.1 में वर्ग और उसके संबंधित भाई-बहनों पर ध्यान देना चाहिए।ENUMNP


हम पूर्व-भुगतान समय और देरी के बारे में क्यों परवाह करते हैं?

विलम्ब समस्याओं की सही पेचीदगियों को समझने के लिए विलंब बहुत महत्वपूर्ण है। के तत्वों की गणना (आकार तक एन ) और { एक्स : φ ( एक्स ) } जहां φ ( एक्स ) एक बूलियन सूत्र (यानी सैट) दोनों घातीय समय लेने के लिए है। हालांकि, के माध्यम से गणना Σ *Σn{x:ϕ(x)}ϕ(x)Σकेवल निरंतर देरी की आवश्यकता है क्योंकि आप बस कुछ क्रम में तत्वों के माध्यम से जा सकते हैं। हम सभी जानते हैं, 3SAT उदाहरण के लिए समाधानों की गणना के लिए देरी घातीय हो सकती है। जटिलता सिद्धांतकारों के रूप में हमारा काम यह पकड़ना है कि पहले की तुलना में बाद की समस्या मौलिक रूप से कठिन (अधिक जटिल) क्यों है। इस अंतर को दर्शाने में देरी बहुत अच्छा काम करती है।

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

जिस क्रम में आप तत्वों की गणना करते हैं, वह जटिलता को भी प्रभावित कर सकता है। एक निर्दिष्ट क्रमबद्ध क्रम में वापस किए जाने के लिए आवश्यक परिणाम हमें दोनों चरणों में अतिरिक्त गणना करने की आवश्यकता हो सकती है। हालांकि ऐसी परिस्थितियाँ जहाँ कोई भी आदेश पर्याप्त होता है (जब तक कि प्रत्येक प्रगणित तत्व अद्वितीय है) निश्चित रूप से अध्ययन किया जाता है।

जहाँ तक मुझे पता है, इन वर्गों में आमतौर पर संक्षिप्त लेबल ( और N P के समान ) नहीं होते हैं। हम संभवत: ऐसा करने में सक्षम होने की उम्मीद नहीं कर सकते क्योंकि गणन जटिलता कक्षाएं 3 या अधिक संसाधनों (पूर्व-निर्धारण / कुल समय, स्थान, देरी और एन्ट्रॉपी) के आसपास कर रही हैं। विशेष नाम रखने के लिए संसाधन सीमा के बहुत सारे संयोजन हैं। यह इन वर्गों को कम दिलचस्प नहीं बनाता है और शोधकर्ताओं को किसी भी तरह की कोशिश करने से नहीं रोकता है।PNP


साधन

यह सर्वेक्षण (वास्तव में औपचारिकता पर एक प्रयास) को आरंभ करने में आपकी सहायता करनी चाहिए। यह कुछ बुनियादी पदानुक्रम प्रमेयों को भी सिद्ध करता है।

गणना: एल्गोरिदम और जटिलता (जोहान्स श्मिट, 2009)

https://www.thi.uni-hannover.de/fileadmin/forschung/arbeiten/schmidt-da.pdf

गणना जटिलता में परिणामों की गणना के लिए, कुनिहिरो वासा द्वारा क्यूरेट किए गए इस संकलन को देखें। चूंकि यह समस्या प्रकार द्वारा वर्गीकृत किया गया है, आप आसानी से ग्राफ़ चक्रों की गणना के लिए समर्पित कई कागजात पा सकते हैं। केवल दिए गए नोड के साथ चक्रों पर विचार करने के लिए शामिल एल्गोरिदम को संशोधित करना सरल होना चाहिए।

http://www-ikn.ist.hokudai.ac.jp/~wasa/enumeration_complexity.html


ΣnO(1)O(1)

1
@j_random_hacker मुझे नहीं लगता कि आपकी सोच गलत है, हालांकि आपके सवाल का असली जवाब "यह निर्भर करता है" है। इन पत्रों के लेखक आमतौर पर यह संकेत देते हैं कि गणना के कौन से मॉडल (नियमित टेप टीएम बनाम रैम बनाम वर्ड रैम) का उपयोग कर रहे हैं। यह विकल्प बदल जाएगा जिसे एक निरंतर समय संचालन माना जा सकता है और क्या नहीं कर सकता है (जैसे कि संख्या बढ़ाना या आउटपुट उत्पन्न करना)। विस्तारित चर्च ट्यूरिंग थीसिस के कारण आपकी देरी के बाद जैसे ही आपकी देरी बहुपद हो जाती है, यह अंतर गायब हो जाता है।
mdxn
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.