Tuesday, May 17, 2011

Space Complexity बनाम वो लड़की

Space Complexity का संगणक अभियांत्रिकी(अब कंप्यूटर इंजीनियरिंग का इससे अच्छा अनुवाद मैं नहीं कर सकता, आपको यही पढ़ना होगा.. समझे?) में बहुत महत्त्व है.. वैसे तो Time Complexity को आप Space Complexity का बड़ा भाई मान सकते हैं क्योंकि Time Complexity के पीछे-पीछे ही Space Complexity भी दौड़ा चला आता है.. बीच के उस युग को याद कर रहा हूँ, जी हाँ, यकीन मानिए जनाब, कंप्यूटर में एक साल को भी आप एक युग मान कर चल सकते हैं, जब मोबाईल तकनीक बाजार में अपने वजूद को लेकर संघर्ष में थी और कंप्यूटर के हार्ड डिस्क में इतनी जगह रहने लगी थी की 1GB का साफ्टवेयर भी इंस्टाल करने से पहले दुबारा सोचना नहीं पड़ता था.. उस युग में Space Complexity भी अपनी इज्जत खोकर कहीं सड़क किनारे भिखारी के से हालात में थी.. फिर Embedded Technology जैसे-जैसे जेबों में मोबाईल की शक्ल में समाने लगी वैसे-वैसे Space Complexity साफ्टवेयर के बाजार में फिर से पूरी इज्जत के साथ छाने लगी..



साधारण भाषा में Space Complexity किसी भी प्रोग्राम के कार्यान्वयन होते समय RAM में छेकने वाले कम से कम जगह लेने वाली प्रक्रिया को कार्यान्वयन करने वाले वाले कलन विधि(Algorithm) को कहते हैं.. रुकिए-रुकिए.. मैं मजाक में "साधारण भाषा" शब्द का प्रयोग नहीं किया हूँ.. दरअसल मैं इससे सरल भाषा में इसे नहीं लिख सकता, हाँ कभी आमने-सामने मुलाक़ात हो तो बोल कर जरूर समझा सकता हूँ.. ;)

अगर जरा अधिक अंदर घुसते हुए देखें तो किसी कलन विधि(पहले बताया था ना Alogorithm, अब दुबारा मत पूछना) T और इनपुट x के लिए DSPACE(T,x) बताता है डिस्क सेल की संख्या को जो अभिकलन(Computation) T(x) के दौरान होता है..
नोट - DSPACE (T) = O(f (n)) if DSPACE (T, x) = O(f (n)) with n = |x | (length of x).
नोट - DSPACE (T) अपरिभाषित है जब कभी T(x) हाल्ट नहीं करता..
(अब 'O' के बारे में सवाल जवाब ना ही किये जाएँ तो अच्छा है.. मैं यहाँ Time Complexity के बारे में लिखने नहीं बैठा हूँ..)


अब जरा इसके उदाहरण के ऊपर आते हैं.. पहले ही कहे देता हूँ कि ये मुक्तकछंद कविता सी दिखने वाली चीज मैंने गूगल से सर्च करके निकाला है.. मुझे C अथवा C++ का कोई भी प्रोग्राम किसी मुक्तकछंद से कम नहीं दिखता है.. कभी प्रेम रस में सराबोर तो कभी वीर रस में.. कभी कभी तो ऐसा लगता है जैसे for loop मानो ऐसा कह रहा हो जैसे for you.. जन्म-जन्मांतर का साथ हो.. continue के कार्यान्वित होने भर से ही एक उल्लास सा छा जाता है, कि यह कोड अभी छोड़ कर नहीं गया है, पुनः कार्यान्वित होगा.. break शब्द के आने मात्र से दिल टूटने का अहसास होने लगता है.. वहीं Stack Overflow हो कर प्रोग्राम के क्रैश होने की तुलना मैं मृत्यु से करना चाहूँगा..

उफ़.. मैं भी क्या बक-बक करने लगा.. फिलहाल तो आप यह मुक्तकछंद कविता के रूप में Space Complexity का एक उदाहरण पर गौर फरमाएं..
// note: x is an unsorted array
int findMin(int[] x) {
int k = 0; int n = x.length;
for (int i = 1; i < n; i++) { if (x[i] < x[k]) { k = i; }// IF END }// FOR LOOP END return k; }


क्या हुआ? इतनी अच्छी कविता है, कम से कम तारीफ़ के एक बोल-बचन तो बनते हैं यार!!

समझ सकता हूँ की आप अब तक बोर हो चुके होंगे.. तो कुछ और बात करें? Space Complexity से बात चली थी, सो उसी की बात करूँगा.. आप आगे पढ़ें..


===========================================

रात के बारह बज कर सैतालिस मिनट पर मोबाइल हल्का सा वाइब्रेट करता है, सोचता हूँ की शायद किसी ने GTalk पर पिंग किया होगा.. मोबाइल उठा कर देखता हूँ, एक SMS है..
swd

कुछ दिनों पहले तक ऐसे ही मैसेज "Swt drm" की शक्ल लिए होता था, चलो कुछ और जगह बची!!
सोचता हूँ कि "ये लड़की रातों की नींद खराब करके Sweet Dreams का मैसेज भेज रही है.." ख्यालों का घोडा कुछ और दौडाने पर ये पाता हूँ की "बड़का ना खुद IT Professional बनता फिरता हूँ.. Space Complexity का सही उपयोग तो यहाँ किया जा रहा है, वो भी एक Arts विषय की लड़की के द्वारा.. तिस पर भी बिना किसी Algorithm के.."


Note - हर कहानी में सच्चाई की तलाश अच्छी नहीं होती मित्र.. कहानी अक्सर सच एवं कल्पना के मिश्रण से ही तैयार होता है.. ;-)

15 comments:

  1. व्यक्तिगत को सार्वजनिक करने का यह तरीका मनभाया।
    ये कंप्यूटर और इस के कबाड़ के बारे में अपनी थियरी कुछ अलग है। कभी अपनी पोस्ट पे डिस्कस करेंगे। बिलकुल बाजारू भाषा में।

    ReplyDelete
  2. इतनी टेक्नीकल और डिफिकल्ट पोस्ट हमारे लिए नहीं बनी... स्वीट ड्रीम्स को छोड़कर कुछ समझ में नहीं आया!

    ReplyDelete
  3. भाषा से अभाषा की ओर उन्‍मुख प्रेम की अभिव्‍यक्ति.

    ReplyDelete
  4. बहुत सानदार लिखे हो बे ....ई ब्लॉगिंग में अपना कंपूटर कोर्स घुसेडना जरूरी था रे ..अबे आर्टस वालों के लिए लिखो जादे से जादे ..साईंस वाले लोग के लिए कौनो कमी है क्या बे ..आयं । आर्टस की तलाश में भटको वत्स ..देखो आर्ट्स सिनेमा भी गाईबे जैसा हो गया है तो हे पार्थ ..इत्ती electronicstic computrogina टाईप का पोस्ट लिखने की कौन आवश्यकता पड गई ..बच्चा ..चलो ये तो संधान का विषय है ...

    ReplyDelete
  5. स्पेस कॉम्प्लेक्सिटी ठीक है, उसके साथ लड़की पोस्ट में इंजेक्ट करना क्या जरूरी है?
    ओह, तब शायद पढ़ने वाले भाग खड़े हों! :)

    ReplyDelete
  6. पास्कल में प्रोग्राम बनाते बनाते रात बीत जाती थी तब time complexity का पता चलता था।

    ReplyDelete
  7. हेहे... गज़ब इस बडे वाले ओ के साथ बडी यारी रही है.. ’ओ’झा जी की अभी भी हो शायद.. वैसे हम अपनी स्पेस कॉम्प्लेक्सिटी की समस्या कुछ दिन पहले ही खत्म कर दिये हैं.. १ टेराबाईट की हार्ड डिस्क ले लिये.. अब ससुर दुनिया में लोगो को स्पेस की कितनी भी दिक्कत हो हमारे पास बहुत जगह है :-) (देखते हैं कब तक.. वरना तुम्हारा वाला swd है न!)

    ReplyDelete
  8. खाली सबको इ बतलाने के लिए कि एक ठो बेचारी लड़की तुमको रोज sms करती है इतना बड़का ठो पोस्ट लिख मारे हो!
    सच्ची सच्ची बताओ इतना जो कोडिंग समझाए हो, किसको पढ़ के बुझाया है? जिसको जिसको परसांत का इ पोस्ट समझ में आया है उ हाथ ऊपर करे.

    ReplyDelete
  9. कुछ समझ आया कुछ नहीं... रोचक पोस्ट है टेक्नीकल शब्दावली को यूं बांधना आसन नहीं होता :)

    ReplyDelete
  10. पूजा - मेरा दोस् जो मेरे साथे रहता है और घोर टेक्नीकल आदमी है, ऊ भी पढ़ के गरिया रहा था कि क्या क्या लिख दिया है.. सब ऊपर से निकल गया.. ;)

    ReplyDelete
  11. बहुत सुन्दर अभिव्यक्ति| धन्यवाद|

    ReplyDelete
  12. भाई हम तो आस लगा रहे थे कि आज Big O नोटेशन समझना पूरा क्लियर हो जायेगा लगता है इतनी मजेदार शैली में जो समझा रहे थे | पर आगे जाकर आप भी हाथ खड़े कर दिए कि Big O के बारे में मत पूछना !! भाई ये तो सरासर ठगी और चम्पू बनाने वाला काम हो गया | ऊँची दूकान फीका पकवान | ना पूछने कि नियम और शर्तें बीच में घुसेड़े हुए है |

    ReplyDelete
  13. क्या आप हमारीवाणी के सदस्य हैं? हमारीवाणी भारतीय ब्लॉग्स का संकलक है.


    अधिक जानकारी के लिए पढ़ें:
    हमारीवाणी पर ब्लॉग पंजीकृत करने की विधि


    हमारीवाणी पर ब्लॉग प्रकाशित करने के लिए क्लिक कोड लगाएँ

    ReplyDelete
  14. // note: x is an unsorted array
    int findMin(int[] x) {
    int k = 0; int n = x.length;
    for (int i = 1; i < n; i++) {
    if (x[i] < x[k]) {
    k = i;
    }// IF END
    }// FOR LOOP END
    return k;
    }

    वाह.. क्या भाव हैं, क्या चाव हैं..
    मन हो रहा है कि गाऊँ
    प्रोग्रामर होगा पहला कवि, कोड से उपजा होगा गान
    क्रैश कर वो हार्ड-डिस्क सरकी होगी कविता अनजान

    ReplyDelete