सैद्धांतिक विश्लेषण और वास्तविकता के बीच एक बड़ा अंतर किस एल्गोरिदम के लिए है?


52

एक एल्गोरिथ्म की दक्षता का विश्लेषण करने के दो तरीके हैं

  1. अपने रनटाइम पर एक असममित ऊपरी सीमा लगाने के लिए, और
  2. इसे चलाने के लिए और प्रयोगात्मक डेटा एकत्र करने के लिए।

मुझे आश्चर्य है कि अगर ज्ञात मामले हैं जहां (1) और (2) के बीच एक महत्वपूर्ण अंतर है। इससे मेरा मतलब है कि या तो (ए) प्रयोगात्मक डेटा एक तंग स्पर्शोन्मुख का सुझाव देता है या (बी) एल्गोरिदम एक्स और वाई ऐसे हैं कि सैद्धांतिक विश्लेषण से पता चलता है कि एक्स वाई की तुलना में बहुत बेहतर है और प्रयोगात्मक डेटा का सुझाव है कि वाई की तुलना में बहुत बेहतर है एक्स।

चूँकि प्रयोग आमतौर पर औसत-मामले के व्यवहार को प्रकट करते हैं, मैं औसत-केस ऊपरी सीमा को संदर्भित करने के लिए सबसे दिलचस्प जवाबों की अपेक्षा करता हूं। हालाँकि, मैं अलग-अलग सीमाओं के बारे में संभवत: दिलचस्प जवाबों से इनकार नहीं करना चाहता, जैसे कि नोआम का सिम्पलेक्स के बारे में जवाब।

डेटा संरचनाओं को शामिल करें। कृपया प्रति उत्तर एक एल्गो / डीएस लगाएं।


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

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

जवाबों:


37

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

अधिक आम तौर पर, इंटीजर-प्रोग्रामिंग के कई उदाहरणों को मानक आईपी-सॉल्वर का उपयोग करके काफी अच्छी तरह से हल किया जा सकता है, जैसे कि महत्वपूर्ण आकार के इनपुट पर किए गए अधिकांश वितरणों के लिए दहनशील नीलामियों को हल किया जा सकता है - http://www.cis.upenn.edu/~mffearns /teaching/cgt/combinatorial-auctions-survey.pdf


3
क्या रेखीय कार्यक्रमों का एक स्पष्ट परिवार पाया गया है जिसके लिए सिम्प्लेक्स घातीय समय लेता है?
ऑप्ट

1
जहां तक ​​मैं समझता हूं, ऐसे कई स्पष्ट परिवार हैं जिनके लिए घातांक समय की आवश्यकता होती है (जैसे, क्ले और मिन्टी द्वारा दी गई पहली मधुमक्खी: "सिम्प्लेक्स एल्गोरिथ्म कितना अच्छा है?", 1972)। हालाँकि, इन परिणामों के लिए धुरी नियम का चुनाव प्रासंगिक है। मुझे लगता है कि इन परिणामों के अधिकांश संदर्भ स्पीलमैन और टेंग के पेपर ( arxiv.org/abs/cs/0111050 ) में देखे जा सकते हैं ।
MRA

2
@ सहायता: हाँ। क्ली-मिन्टी घन: glossary.computing.society.informs.org/notes/Klee-Minty.pdf

वहाँ इस पत्र में कुछ विशिष्ट पिवट शासन के लिए lowerbounds हैं cs.au.dk/~tdh/papers/random_edge.pdf
इगोर Shinkar

26

ग्रोबर के ठिकाने । सबसे खराब स्थिति में चलने का समय दोगुना-घातीय है (चर की संख्या में)। हालांकि, विशेष रूप से अच्छी तरह से संरचित समस्याओं के लिए, F4 और F5 एल्गोरिदम प्रभावी होते हैं (यानी काफी जल्दी समाप्त हो जाते हैं)। यह अभी भी अनुसंधान का एक सक्रिय क्षेत्र है जो यह अनुमान लगाता है कि औसत या अपेक्षित चलने के समय के बारे में भी उचित अनुमान क्या होना चाहिए। यह अनुमान लगाया जाता है कि यह अंतर्निहित आदर्श के न्यूटन पॉलीटॉप की मात्रा से किसी तरह संबंधित है।


किस वितरण के तहत औसत / अपेक्षित? मैंने सोचा कि चल रहे समय को परिभाषित करना भी बीजीय समस्याओं के लिए कठिन था ...
जोशुआ ग्रूचो

1
मुझे एफ 4 और एफ 5 विधियों द्वारा जल्दी से हल किए गए मामलों के लिए नहीं पता है, लेकिन कई चर और कम डिग्री वाले पॉलिनॉमिलेस की एक प्रणाली का निर्माण करना काफी आसान है जो एसएटी उदाहरण को एन्कोड करता है। ऐसे मामले में यह मेरे लिए ज्ञात नहीं है कि एल्गोरिथ्म डीपीएलएल / डीपीएलएल + को बेहतर बनाता है। मैं वास्तव में इन चीजों पर प्रयोगात्मक परिणामों के बारे में अधिक जानना चाहूंगा!
मास्सिमो लौरिया

@ जोशुआ: इस बिंदु पर, कोई भी वितरण जो परिणाम की अनुमति देता है ... @ मासिमो: वाई की एक आवृत्ति के रूप में एन्कोडिंग समस्या एक्स लगभग एक्स के लिए विशेष एल्गोरिदम को कभी नहीं धड़कता है! लेकिन GB और DPLL अनिवार्य रूप से समतुल्य हैं, इसलिए मुझे एक प्रभावी अंतर देखकर अतिरिक्त आश्चर्य होगा।
जैक्स केयरटे

1
@ मैसिमो: हां, जीबी की गणना एनपी-हार्ड है। निरूपण पर निर्भर करता है। वास्तव में, अधिकांश प्रश्न (पूर्ण, आदर्श सदस्यता, बीजगणितीय रूप से बंद क्षेत्र बनाम बूलियन) PSPACE पूर्ण या बदतर (EXPSPACE पूर्ण) हैं। कहने का तात्पर्य यह है कि एनपी-पूर्ण समस्याओं की तुलना में जीबी कम्प्यूटेशंस बहुत कठिन होने की उम्मीद है (और इसलिए एवीजी मामला भी, उनके लिए किसी भी एल्गोरिथ्म जैसे एफ 5 सबसे अधिक संभावना डीपीएलएल से बेहतर नहीं होगा)।
मिच

22

हे(2((nएलजीn))) समय, लेकिन ग्राफ आइसोमॉर्फिज़्म व्यवहार में बहुत जल्दी हल करने योग्य हो जाता है।

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


1
हे(2nलॉग इन करेंn)

2
ओह! शायद आप बाबई-कुचेरा के बारे में सोच रहे हैं, जो जीआई के लिए एक रेखीय-समय औसत-केस एल्गोरिथ्म देता है: doi.ieeecomocusociety.org/10.1109/SFCS.1979.8
जोशुआ ग्रूचो

हाँ, बाबई-कुचेरा एक है! संदर्भ के लिए धन्यवाद।
आनंद कुलकर्णी

20

डेविड जॉनसन से, सैद्धांतिक बनाम प्रयोगात्मक सन्निकटन अनुपात में एक विसंगति: द ट्रैवलिंग सेल्समैन समस्या: ए केस स्टडी इन लोकल ऑप्टिमाइज़ेशन, डीएस जॉनसन और ला मैकगॉच । इस पत्र में वे एसिम्पोटिक्स के प्रायोगिक साक्ष्य देते हैं (चूंकि प्रयोग एन = 10,000,000 तक के आकार तक चलते हैं!) जो सैद्धांतिक एसिम्पोटिक्स को परिभाषित करते हैं: जॉन बेंटले का "लालची" या "मल्टी-फ्रेगमेंट" एल्गोरिथ्म (कम से कम लॉगएन / सबसे खराब स्थिति सन्निकटन अनुपात) loglogN) निकटतम सम्मिलन और डबल एमएसटी को हराता है, जिसमें दोनों में 2 के सबसे खराब स्थिति सन्निकटन अनुपात हैं।


20

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


10

आवारा पेड़ों के लिए गतिशील इष्टतमता अनुमान के प्रक्षेपवक्र, छिन्न और विभाजित कोरोलरीज इस तरह के अंतराल के उदाहरण हैं। प्रयोग रैखिक समय के लिए दावे का समर्थन करते हैं, लेकिन कोई ज्ञात प्रमाण नहीं है।


3
सेठ पेटी ने साबित किया कि एन डेके ऑपरेशन ओ (एन अल्फा * (एन)) समय से अधिक नहीं लेते हैं, जहां "अल्फा *" एक उलटा एकरमैन फ़ंक्शन है, जो एक बहुत छोटा अंतर है।
jbapple

9

प्रश्न के साथ थोड़ा सा मुद्दा है। एक एल्गोरिथ्म का विश्लेषण करने के दो से अधिक तरीके हैं, और उन सैद्धांतिक तरीकों में से एक जिन्हें उपेक्षित किया गया है, वे सबसे खराब स्थिति के समय की बजाय रन टाइम की उम्मीद करते हैं। यह वास्तव में यह औसत मामला व्यवहार है जो प्रयोगों को करने के लिए प्रासंगिक है। यहां एक बहुत ही सरल उदाहरण है: कल्पना करें कि आपके पास आकार n के इनपुट के लिए एक एल्गोरिथ्म है, जो कि प्रत्येक लंबाई के एक विशिष्ट इनपुट को छोड़कर आकार n के प्रत्येक संभावित इनपुट के लिए समय n लेता है जो समय 2 ^ n लेता है। सुनें कि सबसे खराब स्थिति रन टाइम घातीय है, लेकिन औसत मामला [(2 ^ n -1) n + (2 ^ n) 1] / (2 ^ n) = n - (n-1) / 2 ^ n है एन की सीमा। स्पष्ट रूप से दो प्रकार के विश्लेषण बहुत अलग जवाब देते हैं, लेकिन यह उम्मीद की जानी चाहिए क्योंकि हम विभिन्न मात्राओं की गणना कर रहे हैं।

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

इस तरह की समस्या का निर्माण करना अपेक्षाकृत आसान है: यदि पहले n / 2 बिट्स सभी शून्य हैं, तो अंतिम n / 2 बिट्स के साथ एन्कोड किए गए 3SAT उदाहरण को हल करें। अन्यथा अस्वीकार। जैसा कि n बड़ी हो जाती है समस्या 3 एसएटी के लिए सबसे कुशल एल्गोरिथ्म के रूप में सबसे खराब स्थिति में लगभग एक ही रन समय है, जहां औसत रन समय बहुत कम होने की गारंटी है।


मैंने पहले ही ऊपर जेम्स किंग को जवाब दिया कि मैं उम्मीद कर रहा हूं कि सबसे दिलचस्प जवाब अपेक्षित रनटाइम के बारे में होगा। मैं इस प्रश्न को और अधिक दृश्यमान बनाने के लिए संपादित करूँगा।
रादु GRIGore

9

डेमास-मिलनर प्रकार का अनुमान घातीय समय के लिए पूरा साबित होता है, और परिणाम के आकार में घातीय ब्लूप के साथ आसानी से निर्मित मामले होते हैं। फिर भी, अधिकांश वास्तविक-विश्व इनपुट पर यह एक प्रभावी ढंग से रैखिक फैशन में व्यवहार करता है।


क्या कोई संदर्भ है जो आप इस परिणाम के लिए सुझाएंगे? मैं इसके बारे में अधिक पढ़ना चाहता हूं।
रादु GRIGore

1
मैंने इसे स्वयं नहीं पढ़ा है, लेकिन सबसे अक्सर उद्धृत पेपर हैरी जी। मेयर्सन है, "प्रोग्रामिंग टाइपिंग के सिद्धांतों पर 17 वीं संगोष्ठी के लिए एमएल टाइपिंग की निर्णायकता नियतात्मक घातीय समय के लिए पूरी हो गई है (1990)।
sclv 17

9

ग्रह के रेखांकन में स्टेनर के पेड़ के लिए PTAS एप्सिलॉन पर एक हास्यास्पद निर्भरता है। हालांकि एक कार्यान्वयन है जो अभ्यास में आश्चर्यजनक रूप से अच्छा प्रदर्शन दिखाता है।


8

पेयरिंग हीप्स, [1] से - वे हीप्स को कार्यान्वित करते हैं, जहां डालने और मर्ज में O (लॉग एन) amortized जटिलता होती है, लेकिन उन्हें O (1) माना जाता है। व्यवहार में, वे बेहद कुशल हैं, खासकर मर्ज के उपयोगकर्ताओं के लिए।

मैंने अभी-अभी उन्हें सेकण्ड पढ़ते हुए खोजा था। सी। ओकासाकी की पुस्तक "विशुद्ध रूप से कार्यात्मक डेटा संरचनाएं" में से 5.5, तो मैंने सोचा कि मुझे उनके बारे में जानकारी साझा करनी चाहिए।

[१] फ्रेडमैन, एम एल, सेडगेविक, आर।, स्लेटोर, डीडी, और टार्जन, आरई 1986। द पेयरिंग हीप: सेल्फ-एडजस्टिंग हीप का एक नया रूप। अल्गोरिथमिका 1, 1 (जनवरी 1986), 111-129। DOI = http://dx.doi.org/10.1007/BF01840439


ओकासाकी के बाद से कुछ प्रगति हुई है, और अब (अत्यावश्यक) हे (0) मेल्ड, हे (1) डालने और ढूँढने के साथ ढेर लगाने हैं, ओ (lg lg n) घटाना, और O (lg n) deleteMin: arxiv। org / abs / 0903.4130 । यह ढेर फ्रेडमैन एट अल की मूल जोड़ी ढेर की तुलना में एक अलग युग्मन तंत्र का उपयोग करता है।
jbapple

7

शाखा और बाध्य, पटकी एट अल के बारे में इलियराज की टिप्पणी से संबंधित दिखाते हैं कि शाखा और बाउंड प्लस जाली आधार में कमी लगभग सभी यादृच्छिक आईपी को पॉलीटाइम में हल कर सकती है।


6

TSP के लिए लिन-कार्निघन हेयरिस्टिक ("ट्रैवलिंग सेल्समैन समस्या के लिए एक प्रभावी हेयुरिस्टिक", ऑपरेशंस रिसर्च 21: 489-516, 1973) अभ्यास में बहुत सफल है, लेकिन अभी भी इसके प्रदर्शन को समझाने के लिए एक औसत-मामले या चिकनी विश्लेषण का अभाव है। । इसके विपरीत, मैथियस एंगलर्ट, हेइको रोगलिन, और बर्थोल्ड वॉकिंग (एलगोरिदमिका, दिखाई देने के लिए) द्वारा टीएसपी के लिए 2-विकल्प हेयुरिस्टिक का एक सुचारू विश्लेषण है।


5

विभिन्न एनपी-कठिन समस्याओं के लिए अभ्यास शाखा और बाध्य एल्गोरिदम में कई बहुत तेज़ और कुशल हैं जिन्हें हम कठोरता से विश्लेषण नहीं कर सकते हैं: टीएसपी, स्टेनर ट्री, बिन पैकिंग और इतने पर।

Ω(n)


आपका मतलब ओ (एमएन) है, या मैं भ्रमित हूं?
रादु GRIGore

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