शक्तिशाली एल्गोरिदम लागू करने के लिए बहुत जटिल है


67

वैध उपयोगिता के कुछ एल्गोरिदम क्या हैं जो लागू करने के लिए बस बहुत जटिल हैं?

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

इसके अलावा स्वागत लगभग असंभव-से-लागू करने वाले एल्गोरिदम हैं जिनमें अच्छे एसिम्पोटिक्स हैं लेकिन संभवतः खराब वास्तविक प्रदर्शन होगा।


1
यह सीडब्ल्यू बना रहा है, क्योंकि यह एक लंबी सूची हो सकती है।
सुरेश वेंकट

4
क्या met निकट-असंभव-से-कार्यान्वयन ’के लिए एक मीट्रिक है? क्या कोई सिद्धांत है जो इसे परिभाषित करता है?
ऋत्विक बोस

@ मिचको, शायद सबसे छोटी ट्यूरिंग मशीन के आकार पर एक कम बाउंड है जो ट्यूरिंग मशीन के विवरण का आउटपुट देता है जो एल्गोरिथ्म का कार्यान्वयन है। :)
राडु GRIGore

@Radu GRIGore यह एक स्वीकृत मीट्रिक है या जिसे विकसित किया जाना चाहिए? मुझे लगता है कि (अभी के लिए) एक सरल, अचल रेखा है जो 'मेह को परिभाषित करती है, इसके लायक नहीं है' ...: D
ऋत्विक बोस

4
मुझे सुझाव है कि Coppersmith-Winograd को लागू करने के लिए उचित है से दिलचस्पी है। क्या किसी ने कभी उच्च स्तर के छद्म कोड में भी एक कार्यान्वयन को देखा है और क्या कभी किसी ने स्थिरांक का अनुमान लगाया है?
राफेल

जवाबों:


33

Chazelle ने एक साधारण बहुभुज को त्रिभुज बनाने के लिए एक रैखिक समय का एल्गोरिदम दिया । स्कीना ने लिखा (p.575, एलगोरिदम डिजाइन मैनुअल) कि "यह लागू करने के लिए पर्याप्त रूप से निराशाजनक है कि यह एक अस्तित्व के रूप में अधिक योग्य है"


3
क्या एल्गोरिथ्म में उचित स्थिरांक हैं?
जब्बाल

क्या यह समस्या के लिए केवल ज्ञात रैखिक समय एल्गोरिथ्म है?
थॉमस अहले

2
@ThomasAhle मेरा मानना ​​है कि यह केवल ज्ञात नियतात्मक रैखिक समय एल्गोरिथ्म है। : अमाटो, गुडरिक, और रामोस एक सरल यादृच्छिक एक है cs.princeton.edu/courses/archive/fall05/cos528/handouts/...
Sasho निकोलोव

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

मैं फिर से पूछूंगा: क्या एल्गोरिथ्म में उचित स्थिरांक हैं?
user1271772

29

Risch एल्गोरिथ्म प्राथमिक antiderivatives की गणना के लिए। विकिपीडिया के अनुसार, किसी भी सॉफ्टवेयर पैकेज को इसकी जटिलता के कारण पूर्ण एल्गोरिथ्म को लागू करने के लिए नहीं जाना जाता है।


3
विकिपीडिया यह भी बताता है कि यह एक एल्गोरिथ्म नहीं है बल्कि एक अर्ध-एल्गोरिथ्म है क्योंकि इसे निरंतर समस्या को हल करने के लिए सांख्यिकी की आवश्यकता होती है।
sclv

उत्तराधिकार क्या है? क्या आप इसके बारे में अधिक पढ़ने के लिए कुछ लिंक दे सकते हैं?
जिग्मंटस

22

कोई भी एल्गोरिथ्म जो रॉबर्टसन-सीमोर का उपयोग करता है वह ग्राफ से जुड़ी चीजों के लिए एक "पॉलीटाइम" एल्गोरिथ्म का अनुमान लगाने के लिए करता है जो एक निश्चित नाबालिग को बाहर करता है जो परेशानी पूछ रहा है। उनके परिणाम में छिपा निरंतर "गांगेय" है।


3
क्या यह भी लागू करना मुश्किल है या बस एक बड़ा स्थिरांक है?
लेव रेइजिन

5
हां, यह एक अच्छा उदाहरण नहीं दिखता है। अगर मैं सही तरीके से समझूं, तो सवाल एल्गोरिदम के बारे में है जो व्यावहारिक हो सकता है (इसलिए 'छोटे' स्थिरांक) लेकिन लागू करने के लिए बस बहुत जटिल हैं। बेशक, पूरा प्रश्न अलग-अलग व्याख्याओं के लिए खुला है :-)
आर्यभट्ट

5
समस्या यह है कि निरंतर नाबालिगों की बहुत बड़ी सूची से आती है जिसे किसी विशेष संपत्ति के लिए बाहर करने की आवश्यकता होती है। मुझे दी गई संपत्ति के लिए अपवर्जित नाबालिगों की वांछित सूची तैयार करने का कोई तरीका नहीं पता है, इसलिए यह सिर्फ एक पैमाना नहीं है।
सुरेश वेंकट

2
उदाहरण के लिए, हम टोरस में एम्बेड किए गए ग्राफ़ के लिए अपवर्जित नाबालिगों की सूची भी नहीं जानते हैं।
डेरिक स्टोले 15

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

16

O(n)O(log2nB)B

पेपर 55 पृष्ठों लंबा है, और इसके निष्कर्ष में स्थिरांक में कई सुधार शामिल हैं जो लेखक अंतरिक्ष के कारणों का वर्णन नहीं करता है। इससे मुझे संदेह है कि शायद स्थिरांक इतने मंदाकिनी नहीं हैं, और यह डेटा संरचना "वैध उपयोगिता" की होगी, खासकर जब से यह कई बार उद्धृत किया गया है।


12

Qian द्वारा रैखिक समय उच्च-क्रम पैटर्न एकीकरण एल्गोरिथ्म को इसकी जटिलता AFAIK के कारण कभी लागू नहीं किया गया है।


सौभाग्य से इसके लिए अभी भी व्यावहारिक एल्गोरिदम हैं। स्वचालित तर्क की हैंडबुक कहती है कि यह पॉलीटाइम में किया जा सकता है (ठीक इसके बगल में जहां यह कियान के एल्गोरिथ्म का हवाला देता है) बहुत सुंदर है।
जेक

11

रेखीय-समय एल्गोरिथ्म यह जांचने के लिए कि क्या एक निश्चित सतह में एक ग्राफ को एम्बेड किया जा सकता है।

केन-इचि कवाराबयशी, बोजन मोहर, ब्रूस ए रीड: ए सिंपलियर लीनियर टाइम एलगोरिदम फॉर एंबेडिंग ग्राफ्स इन ए आर्बिटवर्स सर्फेस एंड द जीनस ऑफ ग्राफ्स ऑफ बाउंडेड ट्री-विडथ। एफओसीएस 2008: 771-780।

Bojan Mohar: एक रेखीय समय एल्गोरिथ्म एक महत्वाकांक्षी सतह में एंबेडेड रेखांकन के लिए। सियाम जे। डिस्क्रीट मैथ। 12 (1): 6-26 (1999)


1
जीनस पर बड़ी घातांक (एसआईसी) निर्भरता के कारण, लागू होने पर भी इसका व्यावहारिक मूल्य होने की संभावना नहीं है।
जेफ

8

मुझे यकीन नहीं है कि यह व्यवहार में कितना उपयोगी हो सकता है (हालांकि मैं प्रोटीन फोल्डिंग और तुलना के साथ-साथ आरएनए माध्यमिक संरचना भविष्यवाणी के बारे में सोच रहा हूं), लेकिन वोल्फगैंग हेकन ने यह तय करने के लिए पहला बहुपद-समय एल्गोरिथ्म दिया कि क्या एक गाँठ एक है साधारण लूप ( थिरिर डेर नॉर्मलफैचेन। एक्टा मठ। 105, 1961, पीपी 245--375)। जैसा कि मुझे याद है, अभी भी उन सभी दशकों के बाद इसे लागू किया जाना बहुत जटिल है।

यदि विकिपीडिया पर विश्वास किया जाए, तो बाद में कई अन्य एल्गोरिदम दिए गए, और "इन एल्गोरिदम की जटिलता को समझना अध्ययन का एक सक्रिय क्षेत्र है।"


4
हेकेन ने पहला एल्गोरिथ्म दिया, लेकिन यह बहुपद समय में नहीं चलता है; वास्तव में, कोई पॉली-टाइम एल्गोरिथ्म (या एनपी-कठोरता परिणाम) ज्ञात नहीं है। अधिक हालिया काम ने पूर्णांक प्रोग्रामिंग के लिए गाँठ तुच्छता (हेकन के सामान्य-सतह सूत्रीकरण के माध्यम से) को कम कर दिया है, जो आमतौर पर अभ्यास में हल करने के लिए त्वरित है।
जेफ

3

पेड़ के सड़ने और शायद फाइबोनैचि ढेर


14
फाइबोनैचि ढेर निश्चित रूप से लागू करने के लिए बहुत जटिल नहीं हैं; उन्हें लागू किया गया है, और परीक्षण किया गया है। उनके साथ समस्या यह है कि उनका व्यावहारिक प्रदर्शन उतना अच्छा नहीं है जितना कि उनके चलने के समय में लगातार स्थिर कारकों के कारण कुछ अन्य ढेर हैं।
डेविड एप्पस्टीन

1
मैंने पेड़ के अपघटन को खोजने के लिए एक पैकेज लिखा है, और मुझे नहीं लगता कि yaroslavvb.blogspot.com/2011/01/building-junction-trees.html
यारोस्लाव बुलटोव

2
मेरा कोड सिर्फ एक हेयुरिस्टिक ट्री-अपघटन है, न कि ब्रांच-एंड-बाउंड और डायनेमिक प्रोग्रामिंग एप्रोच की तरह इष्टतम ... मैं आपको अनुमान लगा रहा हूं कि आपका मतलब है बोडलेंडर का "ए लीनियर टाइम एल्गोरिथम ..."? मैंने उस का कोई भी कार्यान्वयन नहीं देखा है
यारोस्लाव बुलटोव

4
2O(k3)O(n)

3
मुझे लगता है कि यह सबसे अच्छा कार्यान्वयन प्रयास है: hein.roehrig.name/dipl
डिएगो डे एस्ट्राडा

1

परफेक्ट हैश कंस्ट्रक्शन ( https://en.wikipedia.org/wiki/Perfect_hash_function#Construction ) स्टैटिक या अनजाने-बदलते कीज़ के साथ किसी भी उपयोग-केस पर लागू होगा (जैसे राउटर पर शीर्ष स्तर के डोमेन नाम, कंपाइलर में कीवर्ड, या फ़ंक्शन नाम। मानक पुस्तकालयों में) लेकिन पिछली बार जब मैंने देखा कि मुझे कोई कार्यान्वयन नहीं मिला।

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

knO(nlogn+k)O((n+k)logn)


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