स्पेस-टाइम ट्रेडऑफ़ पर कुछ परिणामों का प्रारंभिक इतिहास?


14

मुझे सामान्य-उद्देश्य वाले अंतरिक्ष-समय के ट्रेडऑफ़ पर प्रकाशित परिणामों के शुरुआती इतिहास में दिलचस्पी है। विशेष रूप से, मैं यह जानना चाहता हूं कि पहले किसने एल्गोरिथ्म के निम्न प्रकार का वर्णन किया था, जिसमें डेटा मीटर ग्राफ की गहराई (चौड़ाई) के लिए आनुपातिक डेटा प्रवाह ग्राफ के साथ डिग्री ओ (1) के साथ एक मनमाना डेटाफ्लो ग्राफ का उपयोग किया गया (प्लस आकार) इनपुट का) ग्राफ का एक सीधा गहराई से पहला मूल्यांकन करके। विस्तृत रूप में:

बता दें कि डेटाफ्लो ग्राफ G = (V, E) है जहां V कम्प्यूटेशनल वर्टिकल (O (1) -साइज डेटा वैल्यूज) का सेट है और E किनारों का सेट (v_p, v_s) है, जैसे कि उत्तराधिकारी का मान वर्टेक्स v_s \ V में V के पूर्ववर्ती वर्टेक्स v_p \ के मान पर तुरंत निर्भर करता है। v_f वर्टेक्स हो, जिसमें कोई भी उत्तराधिकारी गणना के अंतिम परिणाम का प्रतिनिधित्व न करने वाला हो। चलो मैं एक कैनोनिक रूप से ऑर्डर किए गए इनपुट वर्टिज़ (बिना किसी पूर्ववर्ती) के सेट हो सकता हूं, क्योंकि i \ के लिए I में इसका मान x (i) दिया गया है। V में S के अन्य कोणों के लिए, उनके मानों को x (v) = F_v (x (P (v))) से परिभाषित किया जाता है, जहाँ P (v) v के पूर्ववर्तियों की सूची के लिए एक कैनोनिक रूप से आदेशित सूची है, x (P (v)) उनके मूल्यों की संगत सूची, और F_v वर्टेक्स फ़ंक्शन है जो अपने पूर्ववर्तियों के मूल्यों की सूची के फ़ंक्शन के रूप में इसके मूल्य को निर्धारित करता है।

इस सेटअप को देखते हुए, प्रश्न में एल्गोरिथ्म काफी स्पष्ट और तुच्छ है:

def eval(v):     (v can be any vertex in the graph)
   let P := P(v), the list of v's predecessors  (has O(1) elements by assumption)
   let val[] := uninitialized array of |P| data values
   for each predecessor p[i] in P (i.e. for i from 1 to |P|):
      if p[i] is in I then
         val[i] = x(p)      (look up a given input)
      else
         val[i] = eval(p[i])   (recursive call)
   return F_v(val[])        (apply vertex's function to list of predecessor values)

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

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

बहुत बहुत धन्यवाद, -माइक फ्रैंक

जवाबों:


10

मुझे नहीं पता कि यह पहली घटना है या नहीं, लेकिन निर्माण बोरूलिन सर्किट के मूल्यांकन की अंतरिक्ष जटिलता के बारे में बोरोडिन [बोर77] के लेम्मा 1 के प्रमाण में दिखाई देता है। (इसमें O ( D log S ) बिट्स से O ( D + log S ) बिट्स, जहां D सर्किट की गहराई है और S का आकार है, से आगे अंतरिक्ष जटिलता को कम करने के लिए केवल पुनरावर्ती मूल्यांकन के विचार शामिल हैं । सर्किट।)

[बोर77] एलन बोरोडिन। आकार और गहराई से संबंधित समय और स्थान पर। कम्प्यूटिंग पर SIAM जर्नल , 6 (4): 733–744, दिसंबर 1977। डीओआई: 10.1137 / 0606054

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