पृष्ठभूमि
बाह्य मेमोरी, या DAM मॉडल, I / Os की संख्या से एल्गोरिथ्म की लागत को परिभाषित करता है जो इसे निष्पादित करता है (अनिवार्य रूप से, कैश की संख्या याद आती है)। ये रनिंग टाइम आम तौर पर , मेमोरी के आकार और संदर्भ में दिए जाते हैं , उन शब्दों की संख्या जिन्हें एक समय में मेमोरी में ट्रांसफर किया जा सकता है। कभी-कभी और का उपयोग क्रमशः और लिए किया जाता है।
उदाहरण के लिए, छंटाई के लिए की लागत की आवश्यकता होती है और भोले मैट्रिक्स गुणन के लिए ।
इस मॉडल का उपयोग "कैश-गुमनामी एल्गोरिदम" का विश्लेषण करने के लिए किया जाता है, जिसमें या एम का ज्ञान नहीं होता है । आम तौर पर लक्ष्य कैश-गुमनामी एल्गोरिदम के लिए बाहरी मेमोरी मॉडल में बेहतर प्रदर्शन करना है; यह हमेशा संभव नहीं है, उदाहरण के लिए पर्मुटेशन समस्या में ( ब्रोडल, फादरबर्ग 2003 में दिखाया गया है )। सॉर्टिंग और मैट्रिक्स गुणन की चर्चा सहित कैश- विस्मृत एल्गोरिदम के एक और स्पष्टीकरण के लिए एरिक डेमेन द्वारा इस राइटअप को देखें ।
हम देख सकते हैं कि M को बदलने से छँटाई के लिए एक लघुगणक गति और मैट्रिक्स गुणन के लिए एक बहुपद गति का कारण बनता है। (यह परिणाम मूल रूप से हांग कांग, कुंग 1981 से है और वास्तव में कैश विस्मृति और बाहरी मेमोरी मॉडल के औपचारिककरण दोनों को दर्शाता है)।
मेरा सवाल यह है:
क्या कोई ऐसा मामला है जहां एम में स्पीडअप घातीय है ? चलने का समय f (N, B) / 2 ^ {O (M)} जैसा कुछ होगा । मैं विशेष रूप से कैश-विस्मृत एल्गोरिथ्म या डेटा संरचना में रुचि रखता हूं जो इस विवरण को फिट करता है, लेकिन कैश-अवेटेड एल्गोरिदम / डेटा संरचना या यहां तक कि एक सबसे अच्छी तरह से ज्ञात निचले बाउंड के साथ खुश होगा।
यह आम तौर पर ज्यादातर मॉडलों में माना जाता है कि शब्द का आकार यदि इनपुट आकार है और स्पष्ट रूप से । फिर का एक स्पीडअप में एक बहुपद स्पीडअप देता है । यह मुझे विश्वास दिलाता है कि यदि मैं जिस समस्या की तलाश कर रहा हूं, वह मौजूद नहीं है, तो यह बहुपद नहीं है। (अन्यथा हम I / Os की निरंतर संख्या प्राप्त करने के लिए एक निरंतर द्वारा कैश आकार को बदल सकते हैं, जो संभावना नहीं लगती है)।