जब तक आप गणित या प्रोग्रामिंग में नहीं होते हैं, शब्द "एल्गोरिथ्म" आपके लिए ग्रीक हो सकता है, लेकिन यह इस लेख को पढ़ने के लिए आपके द्वारा उपयोग की जाने वाली हर चीज के बिल्डिंग ब्लॉक्स में से एक है। यहां बताया गया है कि वे क्या हैं और कैसे काम करते हैं।
अस्वीकरण: मैं गणित या कंप्यूटर विज्ञान का शिक्षक नहीं हूं, इसलिए मेरे द्वारा उपयोग किए जाने वाले सभी शब्द तकनीकी नहीं हैं। ऐसा इसलिए है क्योंकि मैं लोगों के लिए सादे अंग्रेजी में सब कुछ समझाने की कोशिश कर रहा हूँ जो गणित के साथ बिल्कुल सहज नहीं हैं। कहा जा रहा है, इसमें कुछ गणित शामिल है, और यह अपरिहार्य है। मैथ गीक्स, टिप्पणियों में सही या बेहतर व्याख्या करने के लिए स्वतंत्र महसूस करते हैं, लेकिन कृपया, इसे हमारे बीच गणितीय रूप से विघटित करने के लिए सरल रखें।
द्वारा छवि इयान रूट्सला
एल्गोरिथ्म क्या है?
To एल्गोरिथ्म ’शब्द में m बीजगणित के समान एक व्युत्पत्ति है,’ सिवाय इसके कि यह स्वयं अरबी गणितज्ञ, अल-ख्वारिज़मी (सिर्फ एक दिलचस्प tidbit) को संदर्भित करता है। हमारे बीच गैर-प्रोग्रामर के लिए एक एल्गोरिथ्म, निर्देशों का एक सेट है जो एक इनपुट, ए, और आउटपुट प्रदान करता है, जो किसी तरह से शामिल डेटा को बदल देता है। एल्गोरिदम में कई तरह के एप्लिकेशन होते हैं। गणित में, वे डेटा सेट में अंकों से कार्यों की गणना करने में मदद कर सकते हैं, और अधिक उन्नत चीजों के बीच। प्रोग्रामिंग में अपने उपयोग के अलावा, वे फ़ाइल संपीड़न और डेटा एन्क्रिप्शन जैसी चीजों में प्रमुख भूमिका निभाते हैं।
निर्देशों का एक मूल सेट
मान लें कि आपका मित्र आपसे एक किराने की दुकान में मिल रहा है और आप उसे अपनी ओर निर्देशित कर रहे हैं। आप कहते हैं, "दाईं ओर के दरवाज़े से अंदर आओ," "बाईं ओर मछली अनुभाग पास करें," और "यदि आप डेयरी देखते हैं, तो आपने मुझे पास कर दिया है।" एल्गोरिथम उसी तरह काम करते हैं। हम एक फ़्लोचार्ट का उपयोग कर सकते हैं कि हम समय से पहले के मानदंडों के आधार पर निर्देशों का वर्णन करें या प्रक्रिया के दौरान पता करें।
(छवि हकदार ” आइसब्रेकिंग रूटीन "संपादित: के सौजन्य से ट्रिगर और फ़्रीव्हील )
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
एक और चीज जो हम कर सकते हैं वह है एक प्रारंभिक बिंदु, उसके बीच की रेखा का ढलान और अगला बिंदु, और संकेत करें कि ग्राफ के मानक रूप का उपयोग करके अगले बिंदु की अपेक्षा कहां की जाए = {(starting point}, [m1, x1, h1],…, [mn, xn, hn]}। यहाँ, चर ’m 'रेखा के ढलान का प्रतिनिधित्व करता है, represents 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]}
आप एक ही ग्राफ के साथ समाप्त होंगे। आप देख सकते हैं कि इस अभिव्यक्ति के अंतिम तीन शब्द समान हैं, इसलिए हम किसी भी तरह से "उस तीन बार दोहराएं" कहकर ट्रिम करने में सक्षम हो सकते हैं। बता दें कि कभी भी आपको वैरिएबल 'आर' दिखाई देता है, तो इसका मतलब आखिरी चीज को दोहराना है। हम यह कर सकते हैं:
ग्राफ = {(0,0), [0,x,3], [0,y,3], [1,x,2], [2.5,x,2], [-3,x,1], [R=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 बताते हैं: एन्क्रिप्शन क्या है और यह कैसे काम करता है?
एल्गोरिदम गणितीय उपकरण हैं जो कंप्यूटर विज्ञान में विभिन्न प्रकार के उपयोग प्रदान करते हैं। वे एक सुसंगत तरीके से एक शुरुआती बिंदु और एक अंतिम बिंदु के बीच एक पथ प्रदान करने के लिए काम करते हैं, और इसका पालन करने के लिए निर्देश प्रदान करते हैं। हमने जो उजागर किया, उससे अधिक जानें? टिप्पणी में अपने स्पष्टीकरण साझा करें!