सैद्धांतिक कंप्यूटर विज्ञान में आम गलत विश्वास


62

10/12/08 को संपादित करें:

मैं प्रश्न को संशोधित करने की कोशिश करूंगा ताकि यह अधिक लोगों को अपनी राय साझा करने में रुचि ले सके। हमने आपके योगदान की आवश्यकता है!

यह पोस्ट MO में एक से प्रेरित है: गणित में आम झूठी मान्यताओं के उदाहरण । बड़ी सूचियां कभी-कभी बड़ी संख्या में ऐसे गुणों को उत्पन्न करती हैं जिनके गुणों को नियंत्रित करना कठिन होता है, लेकिन MO पर संबंधित पोस्ट की सफलता के बाद मुझे विश्वास है कि यह TCS में आम गलत मान्यताओं के एक समूह को सूचीबद्ध करने में सहायक होगा।

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

सैद्धांतिक कंप्यूटर विज्ञान में आम झूठी मान्यताओं के कुछ (गैर-तुच्छ) उदाहरण हैं, जो इस क्षेत्र में पढ़ने वाले लोगों को दिखाई देते हैं?

सटीक होने के लिए, हम TCS में आश्चर्यजनक परिणामों और प्रतिवाद परिणामों से अलग उदाहरण चाहते हैं ; इस प्रकार के परिणाम लोगों को विश्वास करना कठिन बनाते हैं, लेकिन वे सही हैं। यहां हम आश्चर्यजनक उदाहरणों के लिए पूछ रहे हैं कि लोगों को लगता है कि यह पहली नज़र में सच हो सकता है, लेकिन एक गहन विचार के बाद गलती सामने आ जाती है।


सूची पर उचित उत्तरों के उदाहरण के रूप में, यह एल्गोरिदम और ग्राफ़-सिद्धांत के क्षेत्र से आता है:

एक के लिए -node ग्राफ , एक -edge विभाजक आकार के किनारों का एक सबसेट है , जहां के नोड्स दो अनिकटवर्ती भागों में विभाजन हो सकता है, प्रत्येक अधिक से अधिक होते हैं नोड्स । हमारे पास निम्नलिखित लैमा है":nGkSkGS3n/4

एक पेड़ में 1-किनारे विभाजक होता है।

सही?


सीडब्ल्यू के रूप में अनुरोध करने के लिए पद को चिह्नित किया गया है।
ह्सियन-चिह चांग 張顯

जवाबों:


59

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

इससे भी बदतर, लेकिन अभी भी दुर्भाग्य से सामान्य है: फर्श फ़ंक्शन के साथ वास्तविक रैम के लिए एल्गोरिदम को पूर्णांक रैम में दक्षता की हानि के साथ स्थानांतरित किया जा सकता है। वास्तव में, एक वास्तविक-RAM + मंजिल किसी भी समस्या को PSPACE या #P में बहुपदों की संख्या में हल कर सकती है ।


5
गाऊसी उन्मूलन भ्रांति बहुत व्यापक है। शायद समस्या का हिस्सा यह है कि हम अक्सर परिमित क्षेत्रों पर काम करते हैं और, क्योंकि वहाँ कोई समस्या नहीं है, हम भूल जाते हैं।
स्लिमटन

"जब हमने पूर्णांक गॉसियन उन्मूलन के बाद किया, तो हम जानते हैं कि समाधान कैसे खोजना है।"
अल्बर्ट हेंड्रिक्स

40

मैंने अभी एक और मिथक का पर्दाफाश किया है, जो इस पोस्ट के लिए @ XXYYXX के उत्तर द्वारा योगदान दिया गया है :

  • एक समस्या X यदि कोई बहुपद समय (या, लॉगस्पेस) सभी समस्याओं से X परएन पीNPNP
  • घातीय समय परिकल्पना मान लें, 3-SAT में एक उप-घातांक समय एल्गोरिथ्म नहीं है। इसके अलावा, 3-SAT ।NP
  • तो कोई समस्याएं X में उप-घातांक समय एल्गोरिदम हैं। अन्यथा X + एक बहुपद समय में कमी के लिए एक उप घातीय समय एल्गोरिथ्म = 3-SAT के लिए एक उप घातीय समय एल्गोरिथ्म।NP

लेकिन हमारे पास कुछ एनपी-हार्ड समस्याओं के लिए उप-घातांक समय एल्गोरिदम हैं।


मेरी भी यही धारणा थी।
मोहम्मद अल-तुर्कस्टनी

तो यह हमें समय की परिकल्पना के बारे में क्या बताता है? या मुझे तर्क की इस पंक्ति में कुछ दोष याद आया?
मिखाइल ग्लुशेनकोव

2
बिंदु 3 में एक गलती है। यह वही है जो मैंने लंबे समय से गलत समझा है :)
हसीन-चिह चांग 張顯 張顯

मुझे यकीन नहीं है कि अगर मुझे गलती नहीं मिली। क्या यह है कि बाद से , कमी जरूरी बहुपद नहीं होनी चाहिए, लेकिन यह समय में घातांक हो सकती है, क्योंकि दोनों समस्याएं एक्सपीटीईईएम (ईटीएच के कारण?) में PNP
होंगी

43
बहुपद-समय में कटौती एक बहुपद राशि द्वारा इनपुट आकार को बदल सकती है। इसलिए यदि आप P के आकार के n n वर्ग के आकार के Q के आकार की Q की आवृत्ति को कम करते हैं, तो P के लिए 2 से रूट n एल्गोरिथ्म आपको केवल Q के लिए 2 से n एल्गोरिथम देता है।
रसेल इम्पेग्लियाज़ो

29

एक गलत धारणा जो इस साल लोकप्रिय हुई थी और कई बार बताई जाती है जब कोई व्यक्ति पूरी समस्या को समझाने की कोशिश करता है, क्योंकि को कुशल के रूप में समझाया जाता है:पीPNPP

"यदि , तो हम बड़ी संख्या में समस्याओं को कुशलता से हल कर सकते हैं। यदि नहीं, तो हम नहीं कर सकते"P=NP

यदि को में हल किया जा सकता है तो । मुझे नहीं लगता कि कोई भी इस एल्गोरिथम को चलाने के बारे में सोचेगा।( एन जी जी एल पी एल एक्स ) पी = एन पी3SATO(ngoogolplex)P=NP

यदि , हम अभी भी में चलने वाले लिए एक एल्गोरिथ्म रख सकते हैं , जो लिए से छोटा है । अधिकांश लोग 4 बिलियन शहरों के लिए को हल करने में सक्षम होने से ज्यादा खुश होंगे ।टी एस पी एन लॉग ( लॉग ऑन एन ) एन 5 एन 2 32 टी एस पीPNPTSPnlog(logn)n5n232TSP


5
लिपटन द्वारा ब्लॉग पोस्ट अच्छा है: rjlipton.wordpress.com/2009/07/03/is-pnp-an-ill-posed-problem
Hsien-Chih Chang 張顯

6
"हर बहुपद-समय एल्गोरिथ्म के लिए, एक घातीय एल्गोरिथ्म है जो मैं बल्कि चलाऊंगा" - एलन पेर्लिस, गोडेल के लॉस्ट लेटर और पी = एनपी के माध्यम से
पाएल जीडी

24

यह वास्तव में गणित में एक गलत विश्वास है, लेकिन अक्सर टीसीएस संदर्भों में सामने आता है: यदि यादृच्छिक चर और स्वतंत्र हैं, तो पर सशर्त वे स्वतंत्र रहते हैं। (झूठा भले ही और दोनों से स्वतंत्र हो ।)वाई जेड जेड एक्स वाईXYZZXY


2
क्या आपके पास इसका पसंदीदा सरल उदाहरण है जो आप सुझाएंगे, लोगों को जल्दी से पहचानने में मदद करने के लिए कि यह गलत क्यों है?
डीडब्ल्यू

21
कहो कि और स्वतंत्र और समान रूप से यादृच्छिक बिट्स हैं, और (mod 2)। फिर, से स्वतंत्र है और से स्वतंत्र है , लेकिन करने के लिए सशर्त , जानते हुए भी का पता चलता है और इसके विपरीत। Y Z = X + Y Z X Y Z X YXYZ=X+YZXYZXY
एमसीएच

22

वितरित कंप्यूटिंग = उच्च प्रदर्शन कंप्यूटिंग (क्लस्टर, ग्रिड, क्लाउड, सेटी @ होम, ...) वितरित की।

वितरित एल्गोरिदम = इन प्रणालियों के लिए एल्गोरिदम।


स्पॉयलर: यदि यह "गलत विश्वास" की तरह नहीं लगता है, तो मेरा सुझाव है कि आपके पास PODC और DISC जैसे सम्मेलनों पर एक नज़र है, और देखें कि वितरित कंप्यूटिंग के सैद्धांतिक पहलुओं का अध्ययन करने पर लोग किस तरह के काम कर रहे हैं।

एक विशिष्ट समस्या सेटिंग निम्नलिखित है: हमारे पास नोड्स के साथ एक चक्र है ; नोड्स को सेट से विशिष्ट पहचानकर्ताओं के साथ लेबल किया जाता है ; नोड्स नियतात्मक हैं और वे एक दूसरे के साथ एक समकालिक तरीके से संदेशों का आदान-प्रदान करते हैं। एक अधिकतम स्वतंत्र सेट को खोजने के लिए कितने समकालिक संचार दौर ( कार्य के रूप में ) की आवश्यकता होती है? कम से कम नोड्स के साथ एक स्वतंत्र सेट खोजने के लिए कितने राउंड की आवश्यकता होती है ? [इन दोनों प्रश्नों का उत्तर बिल्कुल , जिसे 1986-2008 में खोजा गया था]।{ 1 , 2 , , पाली ( एन ) } एन एन / 1000 Θ ( लॉग * n )n{1,2,...,poly(n)}nn/1000Θ(logn)

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

लक्ष्य उनकी कम्प्यूटेशनल जटिलता के अनुसार मौलिक ग्राफ की समस्याओं को वर्गीकृत करके एक जटिलता सिद्धांत का निर्माण करना है (उदाहरण के लिए, कितने तुल्यकालिक राउंड की आवश्यकता है; कितने बिट्स प्रेषित होते हैं)। चक्र में स्वतंत्र सेट जैसी समस्याएं व्यर्थ लग सकती हैं, लेकिन वे केंद्रीकृत कंप्यूटिंग में 3-सैट के समान भूमिका निभाते हैं: कटौती में एक बहुत ही उपयोगी प्रारंभिक बिंदु। ठोस वास्तविक दुनिया के अनुप्रयोगों के लिए, यह ग्रिड और कंप्यूटर में कंप्यूटर के बजाय संचार नेटवर्क में राउटर और स्विच जैसे उपकरणों पर एक नज़र रखने के लिए अधिक समझ में आता है।

यह गलत धारणा पूरी तरह से हानिरहित नहीं है। यह वास्तव में सामान्य TCS दर्शकों के लिए वितरित एल्गोरिदम के सिद्धांत से संबंधित काम को बेचना काफी कठिन बना देता है। मुझे टीसीएस सम्मेलनों से उल्लसित रेफरी की रिपोर्ट मिली है ...


1
कंप्यूटिंग के बारे में, मैं यह नहीं कहूंगा कि यह एक गलत विश्वास नहीं है, बल्कि एक पुराना है। मल्टीकोर प्रोसेसर के अलावा, छोटे पैमाने पर वितरित कंप्यूटिंग उच्च-प्रदर्शन वाले (जो मैं कम से कम जानता हूं) से एक तुच्छ मामला था। कोर के "कंप्यूटर" होने के साथ लेकिन इतनी कम दूरी में, जिनके बीच कोई नेटवर्क नहीं है, नई समस्याएं पैदा होती हैं। मैं इस बात से सहमत हूं कि वितरित एल्गोरिदम का उपयोग m> = 2 नोड्स के लिए किया जाना चाहिए।
चेज़िसॉप

तो आप बस कह रहे हैं कि लोग वितरित कंप्यूटिंग के साथ समानांतर कंप्यूटिंग को भ्रमित करते हैं?
साशो निकोलोव

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

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

@MassimoCafaro: निश्चित रूप से वितरित कंप्यूटिंग के क्षेत्र में काम करने वाले लोग जानते हैं कि वितरित कंप्यूटिंग क्या है। हालांकि, मेरा अनुभव यह है कि सामान्य रूप से सैद्धांतिक कंप्यूटर वैज्ञानिक यह नहीं जानते हैं कि वितरित कंप्यूटिंग क्या है।
जुल्का सुमेला

20

एक प्राथमिक, लेकिन आम जब हम पहली बार स्पर्शोन्मुख नोटेशन से निपटते हैं। पुनरावृत्ति संबंध और : निम्नलिखित "प्रमाण" पर विचार करेंT ( 1 ) = 1T(n)=2T(n/2)+O(nlogn)T(1)=1

हम प्रेरण से साबित होते हैं। आधार मामले के लिए यह । मान लें कि संबंध से छोटे सभी संख्याओं के लिए है ,एनn=1n

T(n)=2T(n/2)+O(nlogn)=2O(n/2logn/2)+O(nlogn)=O(nlogn/2)+O(nlogn)=O(nlogn)

QED (क्या यह है?)


16
मैंने छात्रों को ऐसा करते देखा है। यह गाली देने की सूचनाओं में से एक है और लिखने की बजाय । f(x)=O(g(x))f(x)O(g(x))
हारून रोथ

मैंने देखा है कि सैद्धांतिक कंप्यूटर विज्ञान में शोधकर्ताओं ने इस त्रुटि के भी भिन्न रूप हैं;)
जेरेमी

12

कुछ समय पहले तक मैंने सोचा था कि समय में चलने वाली हर मल्टी-टेप ट्यूरिंग मशीन को समय में में एक दो-टेप विस्मृत ट्यूरिंग मशीन M_o द्वारा सिम्युलेटेड किया जा सकता है। समझ:MT(n)MoO(T(n)logT(n))

  • के प्रमुखों की गति केवल इनपुट लंबाई पर निर्भर करती हैMo
  • एक ही लंबाई के सभी इनपुट के लिए, एक ही समय में बंद हो जाता है (जो कि ) है।MoΘ(T(n)logT(n))

( उदाहरण के लिए rjlipton की यह पोस्ट देखें )

ठीक है, दूसरी लाइन सामान्य रूप से पकड़ में नहीं आती है, अगर । हमें ऑर्डर (पूरी तरह से समय-निर्माण कार्यों) की परिभाषा के लिए यह प्रश्न देखें या हमें को अनंत तक चलने देने की आवश्यकता है में स्वीकार स्थिति तक पहुंचने के बाद का समय (हम को चलने देते हैंEXPTIMENEXPTIMEΘ(T(n)logT(n))MoMoO(T(n)logT(n))T:NNΘ(T(n)logT(n))O(T(n)logT(n))EXPTIME=NEXPTIME

इस दावे का प्रमाण यहां Q1 के उत्तर में प्रमाण के समान है , इस प्रकार हम केवल प्रमुख विचार देंगे।

LNEXPTIMEL{0,1}kNLM2nkM

f(n)={(8n+2)2if (first logn+1k bits of bin(n))L8n+1else
f

g(n)=Θ(f(n)logf(n))g

L

  • xnx000|x|k1x=(first logn+1k bits of bin(n))
  • g(n)g(n)g(n)xLxLng

LLNEXPTIMEEXPTIME=NEXPTIME


11

यहाँ मेरे दो सेंट हैं:

RLRPM

  • M1/2
  • M1

इसके अलावा, मशीन हमेशा रुक जाती है।

क्या परिभाषा सही है? (नहीं)


9

fg1nf(n)g(n)f(n+1)=o(g(n))

NTIME(f(n))NTIME(g(n))

NTIME(g(n))NTIME(f(n))f(n)g(n)NTIME(f(n))NTIME(g(n))f,gf(n+1)=o(g(n))f(n)g(n)

NTIME(f(n))NTIME(g(n))f,gf(n+1)=o(g(n))

f(n)={n+1n odd(n+1)3else
g(n)=f(n+1)2fgf(n+1)=o(g(n))LNTIME((n+1)3)NTIME((n+1)2){0,1}
L1={0x10x20xn;  x1x2xnL}.

L1NTIME(f(n))L1NTIME(g(n))LNTIME((n+1)2)L1NTIME(f(n))NTIME(g(n))


9

NPUPNPRPUPNPRUPNP=UPNPRPPromiseUP

UPLxLUSUSUPcoNPUS


'अर्थ संपत्ति जो सभी उदाहरणों पर' का क्या अर्थ है?
टी .... ०

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

-2

μX{X=μ}


9
यह निश्चित रूप से सैद्धांतिक कंप्यूटर विज्ञान के छात्रों के बीच एक आम गलत विश्वास है , लेकिन सैद्धांतिक कंप्यूटर विज्ञान शोधकर्ताओं के बीच यह इतना आम नहीं है ।
जेफ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.