विशुद्ध रूप से कार्यात्मक डेटा संरचनाओं में बकाया प्रश्न क्या हैं?


51

यह सवाल 1998 में ओकासाकी की पुस्तक के प्रकाशन के बाद से PFDS में नया क्या है, इस सवाल से प्रेरित है ।

मैं दो सवालों के साथ शुरू करूँगा:

  • क्या विशुद्ध रूप से कार्यात्मक सेट डेटा संरचना है जो हैश तालिकाओं की गति से संपर्क करती है? Tries अभी तक वहाँ नहीं हैं।
  • क्या O (1) परिशिष्ट के साथ विशुद्ध रूप से कार्यात्मक उंगली के पेड़ हैं? अब तक का सबसे अच्छा O (lg lg n) है, जो कपलान और टार्जन द्वारा तैयार किया गया है।

अन्य विशुद्ध रूप से कार्यात्मक डेटा संरचना समस्याएं क्या हैं?


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

जवाबों:


19

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

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

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


5
पूरी तरह से लगातार (लेकिन निरंतर नहीं) सरणियों के लिए एक उम्मीदवार एंग्लो वर्जन कंट्रोल के लिए कंफ्लुएंटली कंटीन्यूअस ट्रीट्स में प्रस्तुत किया गया है । लेखकों का दावा है कि ओट (lg lg n) स्लोडाउन, बीटज़ एट अल के O (lg lg m) स्लोडाउन, जहां मीटर सरणी पर किए गए ऑपरेशनों की संख्या है।
jbapple

1
मैं यह भी जोड़ूंगा, हालांकि ओकासाकी की आलसी परिशोधन संरचनाएं अक्सर विकल्पों की तुलना में बहुत सरल होती हैं, मुझे किसी भी डेटा संरचना के बारे में पता नहीं है जिसे उस तरह से लागू किया जा सकता है जिसे लागू नहीं किया जा सकता है (एक ही समय सीमा के साथ, लेकिन सबसे खराब मामला) वास्तव में विशुद्ध रूप से कार्यात्मक तरीके से।
21

12

अन्य विशुद्ध रूप से कार्यात्मक डेटा संरचना समस्याएं क्या हैं?

यहां एक है:

विशुद्ध रूप से कार्यात्मक एक कमजोर हैश तालिका के बराबर क्या है?


15
उम .... ओपी ने अनुत्तरित प्रश्न पूछे हैं, इसलिए यह ओपी के प्रश्न के संभावित उत्तर के रूप में योग्य होगा।
जेसन एस

6
ठीक है, मैं काटता हूँ। क्या कमजोर हैश तालिका है?
जेफ

4
यह एक हैश तालिका है जो इसके तत्वों को एकत्र करने की अनुमति देती है यदि केवल यह (और अन्य कमजोर नक्शे) इसके संदर्भ हैं।
हैवी

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

5
@ नीलकृष्णस्वामी, मुझे नहीं लगता कि ऐसा है। आप कमजोर डेटा संरचनाएँ बना सकते हैं जो गैर-नियतत्ववाद नहीं बनाते हैं, जैसे कि एक कमजोर तालिका जो गणन (या गिनती) का समर्थन नहीं करती है। उदाहरण के लिए wiki.ecmascript.org/doku.php?id=harmony:weak_maps देखें ।
सैम टोबिन-होचस्टाट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.