जटिलता वर्गों के बीच समानताएं ऊपर की ओर क्यों और नीचे की ओर अनुवाद करती हैं?


25

अरे दोस्तों, मैं समझता हूँ कि गद्दी चाल हमें जटिलता वर्गों ऊपर की तरफ का अनुवाद करने की अनुमति देता है - उदाहरण के लिए । पैडिंग इनपुट को "फुलाकर" काम करता है, रूपांतरण चला रहा है ( एन पी से पी कहें ), जो एक "मैजिक" एल्गोरिथ्म देता है जिसे आप गद्देदार इनपुट पर चला सकते हैं। हालांकि यह तकनीकी समझ में आता है, मैं यह कैसे काम करता है का एक अच्छा अंतर्ज्ञान नहीं मिल सकता है। यहाँ वास्तव में क्या हो रहा है? क्या पेडिंग के लिए एक सरल सादृश्य है?P=NPEXP=NEXPNPP

एक सामान्य ज्ञान कारण प्रदान कर सकता है कि यह मामला क्यों है?


11
मैं यह बताना चाहता हूं कि सभी जटिलता वर्ग परिणाम ऊपर की ओर नहीं जाते हैं। उदाहरण के लिए, यदि आप साबित कर दिया , तो उस अर्थ होगा पी एन पी । सामान्य तौर पर, ढह जाते हैं, जबकि अलगाव नीचे जाते हैं। EXPNEXPPNP
रोबिन कोठारी

वास्तव में। वास्तव में, यह इसके बारे में सोचने का एक अच्छा तरीका लगता है, क्योंकि अलगाव ढहने की तुलना में अधिक सहज हैं।
गाबागोह

2
@ रॉबिन, @ गैगाबोह: यहां तक ​​कि कुछ पतन नीचे की ओर जाते हैं, लेकिन पैडिंग तर्कों द्वारा नहीं। उदाहरण के लिए देखें arxiv.org/abs/cs/9910008
जोशुआ ग्रूचो

जवाबों:


30

मुझे लगता है कि इस मुद्दे के लिए अंतर्ज्ञान प्राप्त करने का सबसे अच्छा तरीका यह सोचना है कि घातीय समय वर्गों के लिए पूरी समस्याएं क्या हैं। उदाहरण के लिए, NE के लिए पूर्ण समस्याएँ मानक एनपी-पूर्ण समस्याएँ हैं जो आसानी से वर्णन करने योग्य इनपुट पर होती हैं, उदाहरण के लिए, एक सर्किट जो एक ग्राफ के आसन्न मैट्रिक्स का वर्णन करता है, क्या ग्राफ 3-वर्णनीय है? फिर ई = एनई की समस्या समतुल्य हो जाती है कि क्या एनपी समस्या बहुउपयोगी आदानों पर बहुपद समय में हल करने योग्य हैं, जैसे, छोटे प्रभावी कोलमोगोरोव जटिलता वाले। यह स्पष्ट रूप से मजबूत नहीं है कि क्या वे सभी इनपुट पर हल करने योग्य हैं। समय सीमा जितनी बड़ी होती है, संबंधित इनपुटों की कोलमोगोरोव जटिलता उतनी ही छोटी होती है, इसलिए बड़े समय सीमा के लिए ढह जाते हैं, जो कि एल्गोरिदम में होते हैं जो इनपुट के छोटे उपसमुच्चय पर काम करते हैं।

रसेल इम्प्लैग्लियाज़ो


14

ठीक है, अपने लक्ष्य को दिखाने के लिए है, इसलिए है कि के आधार पर सी एल एस एस 1 [ जी ( n ) ] = C L A S S 2 [ h ( n ) ]CLASS1[g(f(n))]=CLASS2[h(f(n))]CLASS1[g(n)]=CLASS2[h(n)](हम यह निर्दिष्ट नहीं करते हैं कि वास्तव में यह कक्षाएं क्या हैं, हम सिर्फ यह जानते हैं कि वे किसी भी तरह इनपुट आकार के साथ पैरामीट्रिक हैं)। हम एक भाषा है , कुछ कलन विधि द्वारा निर्णय लिया एक । अब हम एक भाषा बनाने के एल ' में प्रत्येक शब्द पैडिंग करते हुए एक्स एल , इतना है कि यह की दूरी अब है ( एन ) , और हम देखते हैं कि यह में निहित है सी एल एस एस 1 [ जीLCLASS1[g(f(n))]ALxLf(n) (हमारा नया एल्गोरिदम मूल रूप से जोड़े गए शून्य को अनदेखा करता है औरवास्तविक, लघु इनपुट पर चलाता है)।CLASS1[g(n)]AA

हम क्या करते हैं: हम एक भाषा को बड़े वर्ग से लेते हैं और हम इसे पैड करते हैं, ताकि इसे एक कमजोर एल्गोरिथ्म द्वारा हल किया जा सके जो हमें छोटी कक्षा में सम्‍मिलित करता है - कमजोर एल्गोरिथम इसे कर सकता है, क्योंकि इसमें समान राशि है 'वास्तविक कार्य' पहले की तरह करने के लिए, लेकिन इसमें इनपुट को बढ़ाकर अपने प्रतिबंध (इनपुट लंबाई का एक कार्य) है।

अब हम जानते हैं कि और इसलिए एल 'सी एल एस एस 2 [ एच ( एन ) ] (कुछ कलन विधि द्वारा निर्णय लिया बी ' )। हम यहाँ से करने के लिए प्राप्त करना चाहते हैं एल सी एल एस एस 2 [ एच ( ( एन ) ) ]LCLASS1[g(n)]LCLASS2[h(n)]BLCLASS2[h(f(n))]। लेकिन उस सीधा है - एल्गोरिथ्म निर्णय लेने से एल बस तदनुसार इनपुट पैड और चलाता बी ' गद्देदार इनपुट पर।BLB

इस चरण को संक्षेप में प्रस्तुत किया जा सकता है: हम को बड़े, अधिक संसाधन वाले वर्ग में तय करना चाहते हैं । अपने अतिरिक्त संसाधनों का उपयोग करके हम इनपुट को पैड करते हैं और गद्देदार भाषा को तय करने वाले एल्गोरिथ्म को चलाते हैंL

बेशक यहाँ कुछ तकनीकी विवरण शामिल हैं (फ़ा कि हमें यह सुनिश्चित करना है कि जिन कक्षाओं में हम विचार करते हैं उनमें पैडिंग को लागू किया जा सकता है) लेकिन मैं सिर्फ सामान्य अंतर्ज्ञान देने के लिए उन्हें अनदेखा करता हूं।


13

मैं प्रतिनिधित्व की कॉम्पैक्टनेस के संदर्भ में पैडिंग तर्क देखता हूं। दो अनुवादक ट्यूरिंग मशीनों के बारे में सोचें: उदाहरणों को उड़ा देता है, और सी उन्हें फिर से संपीड़ित करता है।BC

पैडिंग तर्क साथ काम करता है, कम nondeterministic वर्ग में भाषा के लिए टीएम के निर्धारक संस्करण के साथ बी की रचना करके । बी के आउटपुट सामूहिक रूप से एक ऐसी भाषा बनाते हैं, जो कॉम्पैक्ट रूप से प्रतिनिधित्व नहीं करता है, इसलिए यह "आसान" हो जाता है।BBB

का उपयोग करके विचार को दूसरे तरीके से लागू करना संभव नहीं है , क्योंकि आसान वर्ग में कुछ भाषाएं केवल कठिन वर्ग में भाषाओं को उड़ाने से उत्पन्न होती हैं।C


5

इसे और अधिक सहज बनाने के लिए यह देखना चाहिए कि क्या अधिक अमूर्त है!

pad

इन दो परिवर्तनों में निम्नलिखित गुण हैं:

AΣxΣ

pad(x)pad(A)xA

AEXPNEXPpad(A)PNP

EXP

यह स्पष्ट है कि पैडिंग के लिए परिवर्तनों में ये गुण हैं।

EXPPNEXPNP

मेरे पास औपचारिक तर्क नहीं है कि इस समय इस तरह के परिवर्तन क्यों नहीं हैं, लेकिन सहज रूप से अंद्र दास सलामन ने जो कहा वह सही है। इनपुट के आकार को बढ़ाना आसान है, लेकिन यह स्पष्ट नहीं है कि उन्हें कैसे संपीड़ित किया जा सकता है?

P=NPNEXP=NTime(2nO(1))xnN=2nO(1)

NEXP(n)=NTime(2nO(1))=NTime(N)NP(N)P(N)=Time(NO(1))=Time(2nO(1))=EXP(n)


1
N=log(n)

1
यह सोचने का एक तीसरा तरीका है, वास्तव में, कांड को देखना है। मैंने उस दृष्टिकोण से कड़वे अंत तक पीछा नहीं किया है, लेकिन यदि कोई महान अंतर्दृष्टि आती है, तो मैं इसे स्वयं की प्रतिक्रिया के रूप में पोस्ट करूंगा।
गाबगोह

1
N=2nO(1)nNNnN=log(n)
केवह

1
nN=log(n)PNPEXPNEXP

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