मुखपृष्ठ » कैसे » कंप्यूटर एल्गोरिदम क्या हैं, और वे कैसे काम करते हैं?

    कंप्यूटर एल्गोरिदम क्या हैं, और वे कैसे काम करते हैं?

    जब तक आप गणित या प्रोग्रामिंग में नहीं होते हैं, शब्द "एल्गोरिथ्म" आपके लिए ग्रीक हो सकता है, लेकिन यह इस लेख को पढ़ने के लिए आपके द्वारा उपयोग की जा रही हर चीज़ के बिल्डिंग ब्लॉक्स में से एक है। यहां बताया गया है कि वे क्या हैं और कैसे काम करते हैं.

    अस्वीकरण: मैं गणित या कंप्यूटर विज्ञान शिक्षक नहीं हूं, इसलिए मेरे द्वारा उपयोग किए जाने वाले सभी शब्द तकनीकी नहीं हैं। ऐसा इसलिए है क्योंकि मैं लोगों के लिए सादे अंग्रेजी में सब कुछ समझाने की कोशिश कर रहा हूं जो गणित के साथ काफी सहज नहीं हैं। कहा जा रहा है, इसमें कुछ गणित शामिल है, और यह अपरिहार्य है। Math geeks, टिप्पणियों में सही या बेहतर व्याख्या करने के लिए स्वतंत्र महसूस करते हैं, लेकिन कृपया, इसे हमारे लिए गणितीय रूप से विघटित करने के लिए सरल रखें.

    द्वारा छवि इयान रूट्सला

    एक एल्गोरिथ्म क्या है?

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

    निर्देशों का एक मूल सेट

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

    (छवि "आइसब्रेकिंग रूटीन" EDIT: ट्रिगर एंड फ्रीवेल के सौजन्य से)

    START से, आप मार्ग को समाप्त कर देंगे, और इस बात पर निर्भर करता है कि आप अंतिम परिणाम के लिए "प्रवाह" का पालन करते हैं। फ़्लोचार्ट्स दृश्य उपकरण हैं जो कंप्यूटर द्वारा उपयोग किए जाने वाले निर्देशों के एक सेट का अधिक समझदारी से प्रतिनिधित्व कर सकते हैं। इसी तरह, एल्गोरिदम अधिक गणित-आधारित मॉडल के साथ भी ऐसा करने में मदद करता है.

    रेखांकन

    आइए हम उन विभिन्न तरीकों को चित्रित करने के लिए एक ग्राफ का उपयोग करें, जिन्हें हम दिशा दे सकते हैं.

    हम इस ग्राफ को इसके सभी बिंदुओं के बीच संबंध के रूप में व्यक्त कर सकते हैं। इस छवि को पुन: पेश करने के लिए, हम किसी और को निर्देशों का एक सेट दे सकते हैं.

    विधि 1

    हम इसे अंकों की एक श्रृंखला के रूप में दर्शा सकते हैं, और जानकारी ग्राफ के मानक रूप = (X1, y1), (x2, y2),…, (xn, yn) का अनुसरण करेगी।.

    ग्राफ = (0,0), (3,0), (3,3), (5,5), (7,10), (8,7), (9,4), (10,1)

    प्रत्येक बिंदु को, एक के बाद एक, और उन्हें पिछले बिंदु से जोड़ना बहुत आसान है। हालांकि, एक हजार अंकों या कई खंडों के साथ एक ग्राफ की कल्पना करें जो हर तरह से चल रहा है। उस सूची में बहुत सारा डेटा होगा, है ना? और फिर हर एक, एक समय में एक को जोड़ने के लिए, एक दर्द हो सकता है.

    विधि 2

    एक और चीज जो हम कर सकते हैं वह है एक शुरुआती बिंदु, उसके और अगले बिंदु के बीच की रेखा का ढलान, और संकेत करें कि ग्राफ के मानक रूप का उपयोग करके अगले बिंदु की अपेक्षा कहाँ की जाए = (प्रारंभिक बिंदु, [m1, X1, h1] ],…, [Mn, xn, hn]। यहाँ, चर represents m ’रेखा के ढलान का प्रतिनिधित्व करता है, line x’ (चाहे x या y) में गिनने की दिशा का प्रतिनिधित्व करता है, और 'h ’आपको बताता है कि कैसे उक्त दिशा में गणना करने के लिए कई। आप प्रत्येक आंदोलन के बाद एक बिंदु पर साजिश करना भी याद कर सकते हैं.

    ग्राफ = (0,0), [0, x, 3], [0, y, 3], [1, x, 2], [2.5, x, 2], [-3, x, 1], [-3, x, 1], [-3, x, 1]

    आप उसी ग्राफ़ के साथ समाप्त होंगे। आप देख सकते हैं कि इस अभिव्यक्ति के अंतिम तीन शब्द समान हैं, इसलिए हम किसी भी तरह से "तीन बार दोहराएं" यह कहकर ट्रिम कर सकते हैं। मान लीजिए कि आप कभी भी चर को 'R' के रूप में देखते हैं, तो इसका मतलब है कि पिछली बात को दोहराना। हम यह कर सकते हैं:

    ग्राफ = (0,0), [0, x, 3], [0, y, 3], [1, x, 2], [2.5, x, 2], [-3, x, 1], [आर = 2]

    क्या होगा यदि व्यक्तिगत बिंदु वास्तव में मायने नहीं रखते हैं, और केवल ग्राफ ही करता है? हम उन अंतिम तीन खंडों को समेकित कर सकते हैं जैसे:

    ग्राफ = (0,0), [0, x, 3], [0, y, 3], [1, x, 2], [2.5, x, 2], [-3, x, 3]

    यह उन चीजों को थोड़ा छोटा करता है जहां से वे पहले थे.

    विधि 3

    आइए इसे दूसरे तरीके से करने का प्रयास करें.

    y = 0, 0 =x≤3
    x = 0, 0 =y≤3
    y = x, 3 =x≤5
    y = 2.5x-7.5, 5≤x≤7
    y = -3x + 29, 7≤x≤8
    y = -3x + 29, 8≤x≤9
    y = -3x + 29, 9≤x≤10

    यहाँ हम इसे शुद्ध बीजीय शब्दों में रखते हैं। एक बार फिर, यदि अंक स्वयं मायने नहीं रखते हैं और केवल ग्राफ ही करता है, तो हम अंतिम तीन वस्तुओं को समेकित कर सकते हैं.

    y = 0, 0 =x≤3
    x = 0, 0 =y≤3
    y = x, 3 =x≤5
    y = 2.5x-7.5, 5≤x≤7
    y = -3x + 29, 7≤x≤10

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

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

    फ़ाइल संपीड़न

    जब आप एक .zip फ़ाइल डाउनलोड करते हैं, तो आप सामग्री को निकालते हैं ताकि आप जो भी इसके अंदर है उसका उपयोग कर सकें। आजकल, अधिकांश ऑपरेटिंग सिस्टम .zip फ़ाइलों में गोता लगा सकते हैं, जैसे वे सामान्य फ़ोल्डर थे, पृष्ठभूमि में सब कुछ कर रहे थे। एक दशक से अधिक पहले मेरे विंडोज 95 मशीन पर, मुझे अंदर के फ़ाइल नाम से अधिक कुछ भी देखने से पहले मुझे सब कुछ मैन्युअल रूप से निकालना पड़ा। ऐसा इसलिए है क्योंकि एक .zip फ़ाइल के रूप में डिस्क पर जो संग्रहित किया गया था वह प्रयोग करने योग्य रूप में नहीं था। पुल-आउट काउच के बारे में सोचें। जब आप इसे एक बिस्तर के रूप में उपयोग करना चाहते हैं, तो आपको कुशन को हटाना होगा और इसे खोलना होगा, जो अधिक स्थान लेता है। जब आपको इसकी आवश्यकता नहीं है, या आप इसे ट्रांसपोर्ट करना चाहते हैं, तो आप इसे वापस ऊपर कर सकते हैं.

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

    डेटा एन्क्रिप्शन

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


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