This post is also available in: English العربية (Arabic)
एल्गोरिथम शब्द बच्चों के लिए प्रासंगिक नहीं लगता है, लेकिन सच्चाई यह है कि एल्गोरिथम उनके चारों ओर हैं, जो उनके द्वारा उपयोग की जाने वाली तकनीक से लेकर हर दिन उनके द्वारा किए जाने वाले सांसारिक निर्णयों तक सब कुछ नियंत्रित करते हैं। एल्गोरिथम हर जगह हैं और हमारे जीवन में हर दिन मौजूद हैं, भले ही हमें इसका एहसास न हो। एल्गोरिथम आकर्षक हैं और, हालांकि कुछ काफी जटिल हैं, किन्तु वास्तव में काफी सरल है। इस लेख में, हम चर्चा करेंगे कि एल्गोरिथम क्या है?
गणित और कंप्यूटर विज्ञान में एल्गोरिथम की बड़ी उपस्थिति है, और निश्चित रूप से, वे बच्चों की ऐप बनाने, गेम डिजाइन करने या कोड सीखने की प्रक्रिया में अनुपस्थित नहीं हैं।
किसी भी कार्य के बारे में सोचें, जैसे स्कूल के लिए तैयार होना या वैनिला केक बनाना। आप एक विशेष क्रम में कुछ चरणों का पालन करते हैं। यदि आप एक बॉक्स मिश्रण से एक वेनिला केक सेंकना चाहते हैं, तो आप बॉक्स पर या शामिल निर्देश मैनुअल पर लिखे गए चरणों की संख्या का पालन करेंगे।

इनमें से प्रत्येक कार्य में चरणों की एक श्रृंखला होती है जो एक विशेष क्रम में पूरी होती हैं। इसी तरह, एक एल्गोरिथम उन चरणों की एक सूची है जो आप कंप्यूटर को किसी समस्या को हल करने या कुछ करने के लिए देते हैं। हालांकि, सभी चरणों को सही क्रम में समझाना महत्वपूर्ण है, क्योंकि मशीनें आसानी से भ्रमित हो सकती हैं।
एल्गोरिथम क्या है?
एल्गोरिथम शब्द का अर्थ है “गणना या अन्य समस्या-समाधान कार्यों में पालन की जाने वाली एक प्रक्रिया या नियमों का समूह“। इसलिए एल्गोरिथम नियमों/निर्देशों के एक सेट को संदर्भित करता है जो चरण-दर-चरण परिभाषित करता है कि अपेक्षित परिणाम प्राप्त करने के लिए किसी कार्य को कैसे निष्पादित किया जाना है।
एल्गोरिथम अपेक्षित आउटपुट प्राप्त करने के लिए प्रोग्रामिंग में एक कार्य करने में मदद करते हैं। एल्गोरिथम भाषा-स्वतंत्र (machine independent) हैं, यानी वे केवल सादे निर्देश हैं जिन्हें किसी भी भाषा में लागू किया जा सकता है, और फिर भी आउटपुट वही होगा, जैसा अपेक्षित था।
एल्गोरिथम में दिए गए निर्देशों का एक ऐसे रूप में अनुवाद किया जाता है जिसकी व्याख्या कंप्यूटर द्वारा की जा सकती है, जिसे आमतौर पर प्रोग्राम कहा जाता है। एक प्रोग्राम मशीन पर निर्भर होता है और एक लक्ष्य मशीन द्वारा व्याख्या की जाती है। मशीन द्वारा निर्देशों के निष्पादन पर हमें वांछित परिणाम प्राप्त होता है।
यद्यपि एल्गोरिथम की व्याख्या और निष्पादन (execution) कंप्यूटर द्वारा नहीं किया जाता है, ये प्रोग्राम लेखन, समझ और डॉक्यूमेंटेशन में महत्वपूर्ण भूमिका निभाते हैं। प्रोग्राम को समझने और दस्तावेज़ीकरण (documentation) के लिए उपयोग किए जाने वाले अन्य उपकरण फ़्लोचार्ट और स्यूडोकोड (Pseudocode) हैं।
आइए दो संख्याओं का योग ज्ञात करने के एक उदाहरण को देखें।
दो संख्याओं का योग ज्ञात करने के लिए एल्गोरिथम:
Step 1: Start
Step 2: Declare variables num1, num2 and sum.
Step 3: Read values num1 and num2.
Step 4: Add num1 and num2 and assign the result to sum.
sum←num1+num2
Step 5: Display sum
Step 6: Stop
C प्रोग्राम दो संख्याओं का योग ज्ञात करने के लिए:
#include<stdio.h>
int main() {
int num1, num2, sum;
printf("\nEnter two no: ");
scanf("%d %d", &num1, &num2);
sum = num1 + num2;
printf("Sum : %d", sum);
return(0);
}
दो संख्याओं का योग खोजने के लिए पायथन प्रोग्राम
num1 = int(input("enter first number: "))
num2 = int(input("enter second number: "))
sum = num1 + num2
print("sum:", sum)
ऊपर दिए गए उदाहरण से आप देख सकते हैं कि दिए गए एल्गोरिथम को किसी भी भाषा में प्रोग्राम में अनुवाद किया जा सकता है।
एल्गोरिथम शब्द की उत्पत्ति
शब्द “एल्गोरिथम” की उत्पत्ति 9वीं शताब्दी, विद्वान, खगोलशास्त्री, भूगोलवेत्ता और गणितज्ञ मुहम्मद इब्न मूसा अल-ख्वारिज्मी से हुई है, जो बीजगणित के अध्ययन में अपने योगदान के लिए जाने जाते हैं। यह उनके नाम का लैटिनकरण है, जिसका अर्थ फ़ारसी में ‘ख़्वेरेज़म का मूल निवासी‘ (मध्य एशिया का एक शहर, आधुनिक तुर्कमेनिस्तान और उज़्बेकिस्तान की सीमाओं के साथ) है, जिसने अंग्रेजी को एल्गोरिथम शब्द दिया।
अल-ख्वारिज्मी ने अरबी में हिंदू-अरबी अंकों के बारे में एक किताब लिखी, जिसका बाद में लैटिन में अनुवाद किया गया। अल्गोरित्मी दे नुमेरो इंदोरुम (अंग्रेजी में, अल-ख्वारिज्मी ऑन द हिंदू आर्ट ऑफ रेकनिंग) नामक पुस्तक का लैटिन अनुवाद। लैटिन शब्द अल्गोरिथ्मि का तब अंग्रेजी में ‘एल्गोरिथम’ के रूप में अनुवाद किया गया था।
एल्गोरिथम की विशेषताएं
सभी प्रक्रियाओं को एल्गोरिथम नहीं कहा जा सकता है। एक एल्गोरिथ्म में निम्नलिखित विशेषताएं होनी चाहिए:
- स्पष्ट: एल्गोरिथम स्पष्ट होना चाहिए। इसका प्रत्येक चरण सभी पहलुओं में स्पष्ट होना चाहिए और केवल एक ही अर्थ की ओर ले जाना चाहिए।
- अच्छी तरह से परिभाषित इनपुट: यदि एक एल्गोरिथम को इनपुट की आवश्यकता होती है, तो इसे अच्छी तरह से परिभाषित किया जाना चाहिए।
- अच्छी तरह से परिभाषित आउटपुट: एल्गोरिथम को स्पष्ट रूप से परिभाषित करना चाहिए कि कौन सा आउटपुट प्राप्त होगा और इसे अच्छी तरह से परिभाषित भी किया जाना चाहिए।
- परिमितता: एल्गोरिथम परिमित होना चाहिए, अर्थात यह एक अनंत लूप या इसी तरह की स्थितियों में समाप्त नहीं होना चाहिए।
- व्यवहार्य: एल्गोरिथम सरल, सामान्य और व्यावहारिक होना चाहिए, जैसे कि इसे उपलब्ध संसाधनों पर निष्पादित किया जा सकता है। इसमें भविष्य की कोई तकनीक, या ऐसा कुछ भी शामिल नहीं होना चाहिए।
- भाषा स्वतंत्र: डिज़ाइन किया गया एल्गोरिथम भाषा-स्वतंत्र होना चाहिए, यानी यह केवल सादा निर्देश होना चाहिए जिसे किसी भी भाषा में लागू किया जा सकता है, और फिर भी आउटपुट वही होगा, जैसा अपेक्षित था।
एल्गोरिथम कैसे लिखें?
यद्यपि एल्गोरिथम लिखने के लिए कोई अच्छी तरह से परिभाषित मानक नहीं हैं, फिर भी कुछ निश्चित बिंदु हैं जिनका पालन किया जाना चाहिए। जैसा कि हम जानते हैं कि सभी प्रोग्रामिंग भाषाएं लूप (do, for, while), फ्लो-कंट्रोल (if-else), आदि जैसे बुनियादी कोड निर्माण साझा करती हैं। इन सामान्य निर्माणों का उपयोग एल्गोरिथम लिखने के लिए किया जा सकता है।
हम एल्गोरिथम को चरण-दर-चरण तरीके से लिखते हैं, लेकिन हमेशा ऐसा नहीं होता है। एल्गोरिथम लेखन एक प्रक्रिया है जिसे प्रॉब्लम डोमेन के अच्छी तरह से परिभाषित होने के बाद निष्पादित किया जाता है। यानी हमें उस प्रॉब्लम क्षेत्र का पता होना चाहिए, जिसके लिए हम एक समाधान तैयार कर रहे हैं।
एल्गोरिथम के फायदे और नुकसान
एल्गोरिथम के निम्नलिखित लाभ हैं:
- यह किसी प्रॉब्लम के समाधान का चरणबद्ध प्रतिनिधित्व है, जिससे इसे समझना आसान हो जाता है।
- एल्गोरिथम के प्रत्येक चरण का अपना तार्किक क्रम (logical sequence) होता है इसलिए इसे डीबग (Debug) करना आसान होता है।
- एल्गोरिथम का उपयोग करके समस्या को छोटे टुकड़ों या चरणों में तोड़ दिया जाता है, इसलिए प्रोग्रामर के लिए इसे वास्तविक प्रोग्राम में परिवर्तित करना आसान होता है।
- एल्गोरिथम प्रोग्राम के ब्लूप्रिंट के रूप में कार्य करता है और प्रोग्राम डेवलपमेंट के दौरान मदद करता है।
- एक एल्गोरिथम एक निश्चित प्रक्रिया का उपयोग करता है।
- पहले एल्गोरिथम विकसित करना और फिर उसे फ़्लोचार्ट में और फिर कंप्यूटर प्रोग्राम में बदलना आसान है।
- यह किसी प्रोग्रामिंग भाषा पर निर्भर नहीं है, इसलिए प्रोग्रामिंग ज्ञान के बिना भी किसी के लिए भी इसे समझना आसान है।
एल्गोरिथम के नुकसान निम्नलिखित हैं:
- एल्गोरिथम समय लेने वाली प्रक्रिया हैं।
- एल्गोरिथम में बड़े कार्य करना मुश्किल है।
- एल्गोरिथम में ब्रांचिंग और लूपिंग दिखाना कठिन होता है।
- एल्गोरिथम के माध्यम से जटिल तर्क को समझना बहुत मुश्किल हो सकता है।
बच्चों को अपने स्वयं के एल्गोरिथम लिखने के लिए प्रोत्साहित करें
अपने बच्चे को अपने सुबह के एल्गोरिथम, या एल्गोरिथम को और भी सरल कार्य के लिए प्रोत्साहित करें, जैसे कि अपने दाँत ब्रश करना या नाश्ता खाना। इसे जाने बिना, वे महत्वपूर्ण कम्प्यूटेशनल अवधारणाओं की खोज कर सकेंगे, जैसे पुनरावृत्ति (ब्रश नीचे, बाएं दांत, पांच बार), अनुक्रमण (एक कटोरे में कॉर्न फ्लेक्स डालें और फिर दूध डालें), और सशर्त तर्क (यदि कटोरा खाली है, तो खाना बंद कर दें), आदि।
अपने बच्चे को यथासंभव निर्देशों के साथ विशिष्ट होने के लिए चुनौती दें। कंप्यूटर आपके इरादों को नहीं समझते हैं, इसलिए यदि आप यह निर्दिष्ट नहीं करते हैं कि आपको पहले कटोरा बाहर निकालने की आवश्यकता है, तो आप अंत में फर्श पर दूध डाल देंगे!
गणित की कक्षा में, बच्चे महत्तम समापवर्तक और लघुतम समापवर्त्य (HCF और LCM) के बारे में सीखते हैं और HCF और LCM कैसे निकालते हैं। दो छोटी संख्याओं का HCF निकालना आसान है। लेकिन बड़ी संख्या के साथ, यह बहुत कठिन है! ऐसे मामलों में, आपको कई चरणों तक प्रयास करना होता है। ये चरण एक एल्गोरिथम के अलावा और कुछ नहीं हैं!
यह भी पढ़ें: एल्गोरिथम के प्रकार, सॉर्टिंग एल्गोरिथम, सर्च एल्गोरिथम