क्या एल्गोरिदम के स्वचालित रनटाइम विश्लेषण के लिए एक विधि है?


10

मैं सोच रहा हूं, क्या स्वचालित रनटाइम विश्लेषण के लिए एक विधि है जो कम से कम एल्गोरिदम (एल्गोरिदम का विश्लेषण किया जा सकता है) के एक प्रासंगिक सबसेट पर काम करता है?

मैंने "स्वचालित एल्गोरिथ्म विश्लेषण" को गुगला दिया जिसने मुझे यह दिया लेकिन यह बहुत ही कम है। मैं बस एक सरल उदाहरण चाहता हूं कि मैं इसे समझ सकूं। बहुत विशिष्ट हो सकता है, लेकिन मुझे लगा कि यह एक शॉट के लायक था।


मैं यह देखने में विफल रहता हूं कि "किसी भी" और "ए" के बीच का तनाव कितना स्पष्ट होता है। यदि कुछ निर्णय प्रक्रिया एक विशेष एल्गोरिथ्म बी से जुड़ी है, तो कोई वास्तविक इनपुट नहीं है और उत्तर हमेशा एक ही होता है। मुझे लगता है कि आप जो पूछना चाहते हैं, वह यह है कि 'एल्गोरिदम के कुछ वर्ग के भीतर कोई एल्गोरिथ्म' जहां वर्ग बाध्य / ज्ञात है। (संपादित करें: यह मेरे mhum की टिप्पणी के रूप में अच्छी तरह से बताया गया है)।
निकोलस मंचुसो

2
"A" और "any" के आपके उपयोग में अस्पष्टता वास्तव में है कि क्वांटिफायर का आविष्कार क्यों किया गया।
नैट एल्ड्रेडज

2
मैंने संबंधित भागों पर ध्यान केंद्रित करने के लिए प्रश्न संपादित किया। ध्यान दें कि मैं समस्या को सही ढंग से व्यक्त करने के लिए बिल्कुल शून्य गणित का उपयोग करता हूं (जहाँ तक आपने अपना प्रश्न अब तक निर्दिष्ट किया है) और संक्षेप में। अब, सवाल अभी भी बीमार है: निश्चित रूप से ऐसे एल्गोरिदम हैं। उदाहरण के लिए, एक सरल एल्गोरिथ्म है जो एल्गोरिदम के वर्ग (बहुत प्रासंगिक) से सभी एल्गोरिदम का विश्लेषण करता है जो समय में चलते हैं । इसलिए आपको स्पष्ट रूप से इनपुट के सेट पर कुछ प्रतिबंध लगाने की आवश्यकता है । (ध्यान दें कि वहाँ नहीं हो सकता है "psuedocode है कि मैं समझ सकता हूँ में एक सरल उदाहरण"।)Θ(nlogn)
राफेल

जवाबों:


12

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

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


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

12

कोई एल्गोरिथ्म यह तय नहीं कर सकता है कि दिया गया एल्गोरिथम कभी रुकता है या नहीं, इसलिए विशेष रूप से कोई एल्गोरिथ्म किसी दिए गए एल्गोरिथम की जटिलता का विश्लेषण नहीं कर सकता है।


2
मेरा प्रश्न एक मनमाने ढंग से इनपुट किए गए एल्गोरिदम के बारे में नहीं है, जो अगर होता, तो आपका जवाब सही होता, क्योंकि समस्या हल होने के कारण सही थी। यदि आपका प्रश्न सही था, तो आप सही होंगे: "क्या कोई एल्गोरिथ्म ए है जो किसी भी एल्गोरिथ्म बी में लेता है, और फिर एल्गोरिदम बी की समय जटिलता का आउटपुट देता है?"
नाथवी

6
यदि एल्गोरिदम बी तय हो गया है, तो सुनिश्चित करें कि एक एल्गोरिथ्म ए है। यह एक एल्गोरिथ्म है जो कुछ भी नहीं करता है, लेकिन "O (n)" प्रिंट करता है या जो भी जटिलता माप बी से मेल खाता है। यदि एल्गोरिथम ए के लिए केवल एक ही संभव इनपुट है, तो तब हमें केवल एक आउटपुट की आवश्यकता होती है।
mhum

5
@ नाथवी यह मेरे लिए भी स्पष्ट नहीं था - मैं भी इस सवाल को समझ गया क्योंकि "क्या किसी अन्य एल्गोरिथ्म की जटिलता को खोजने के लिए एक एल्गोरिथ्म है", और मैं अभी भी आपके वास्तविक प्रश्न को नहीं समझता हूं । यदि आप उल्टी गिनती में हैं, तो जाहिरा तौर पर> 2 लोगों ने इसकी व्याख्या की। भ्रम की स्थिति में, अपने प्रश्न को संपादित करना वास्तव में एक अच्छा विचार है, अन्यथा केवल वे लोग जो इस वार्तालाप को पढ़ते हैं (प्रश्न पढ़ने वाले हर व्यक्ति के बजाय) समझेंगे कि आप क्या पूछ रहे हैं और अच्छे उत्तर दें। ऐसा लगता है कि आपको डीडब्ल्यू की प्रतिक्रिया शत्रुतापूर्ण
लगी

6
@ignis उत्तर अधूरा हो सकता है लेकिन युवल ने जो वाक्य लिखा है वह बिल्कुल सही है। और रुकने की समस्या कुछ विदेशी पक्ष मामला नहीं है: यह गणना का बहुत सार है।
डेविड रिचेर्बी

3
@ मिक्की यह सवाल है जहाँ तक मदद नहीं करता है; रनटाइम सीमा हमेशा सर्वव्यापी एल्गोरिदम के सेट पर भी अनिर्दिष्ट है।
राफेल

9

मैं एक (औसत) स्वचालित औसत केस विश्लेषण के लिए दृष्टिकोण जानता हूं, जिसका नाम है MaLiJAn ( । यह बारीकी से TAOCP में Knuth उपयोग के विश्लेषण से मिलता जुलता है। मूल विचार के लिए है

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

ध्यान दें कि केवल additive लागत उपाय (जैसे तुलना, "समय") काम करते हैं और केवल अपेक्षित मूल्य सटीक है (सही संभावना कार्यों को मानते हुए), उच्च क्षणों को प्राप्त नहीं किया जा सकता है।

सभी कदम लेकिन एक्सट्रपलेशन कठोर हैं [2] और उच्च परिशुद्धता के साथ अच्छी तरह से ज्ञात परिणामों को पुन: पेश करने के लिए विधि का प्रदर्शन किया गया है - बिल्कुल उपयुक्त यादृच्छिक नमूना इनपुट। हालांकि परिणामों पर कोई सबूत या यहां तक ​​कि अनुमान की गारंटी नहीं है (एक्सट्रपलेशन कदम है, अब तक, विशुद्ध रूप से हेयुरिस्टिक) उपकरण के साथ प्राप्त परिणाम एल्गोरिदम का विश्लेषण करने और परिकल्पना तैयार करने के लिए कठिन प्रयोग करते हैं [3,4]।


  1. पूर्ण प्रकटीकरण: मैं इस शोध समूह का सदस्य था और उपकरण के विकास में शामिल था।
  2. यू। ल्यूब और एम। नेबेल (2010) द्वारा एल्गोरिदम और डेटा संरचनाओं की अधिकतम संभावना विश्लेषण [ छाप ]
  3. इंजीनियरिंग जावा 7 के दोहरे धुरी quicksort MaLiJAn का उपयोग करते हुए एस जंगली द्वारा एट अल (2012) [ प्रीप्रिंट ]
  4. U. Laube und M. Nebel (2015) द्वारा विशेष रेखांकन पर Ford-Fulkerson विधि की अधिकतम संभावना विश्लेषण [ छाप ]

क्या ये तकनीकें औसत केस विश्लेषण की सटीकता पर एक अनुमान के साथ आती हैं?
मार्टिन बर्गर

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

यह तो दिलचस्प है। मुझे उम्मीद है कि आप इस अतिरिक्त काम को करने के लिए तैयार हो जाएंगे।
मार्टिन बर्गर

8

बेशक, जैसा कि युवल फिल्मस ने नोट किया है, किसी को ऐसी समस्याओं के सामान्य समाधान की उम्मीद नहीं करनी चाहिए। लेकिन जैसा कि आमतौर पर होता है, सामान्य मामले के दिलचस्प सबसेट के लिए समाधान खोजे जा सकते हैं।

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

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

एक पेपर जो मुझे वेब पर मिला वह एक 1990 का पेपर है: फिलिप फ्लेजलेट, पॉल ज़िमरमैन और ब्रूनो सालवी द्वारा एल्गोरिदम का स्वचालित औसत-केस विश्लेषण

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

अब, मुझे डर है कि फ्लैजलेट और उनके सहयोगियों का काम बहुत गणितीय था, और मैं बहुत आसान पढ़ने की उम्मीद नहीं करूंगा।

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