कम्प्यूटेशनल विधियां: कंप्यूटर से पहले एल्गोरिदम

आर्यभट्ट का कुट्टक और चक्रवाल, प्राचीन भारत में पुनरावृत्ति और इटरेशन

रैखिक समीकरणों को हल करने के लिए कुट्टक (पल्वराइज़र) एल्गोरिदम और पेल के समीकरण को हल करने के लिए चक्रवाल चक्रीय विधि का अन्वेषण करें।

कम्प्यूटेशनल विधियां: कंप्यूटर से पहले एल्गोरिदम

"एल्गोरिदम" शब्द अल-ख़्वारिज़मी से आया है, जो 9वीं सदी के फारसी गणितज्ञ थे। लेकिन यह विचार - एक चरण-दर-चरण प्रक्रिया जो समाधान की गारंटी देती है - अल-ख़्वारिज़मी के जन्म से सदियों पहले भारत में फला-फूला।

Bhaskara II working the chakravala cyclic method under a night sky

भारतीय गणितज्ञों ने बहुत ही जटिल एल्गोरिदम बनाए: कुट्टक जो एक साथ कई रैखिक समीकरणों को हल करने के लिए, चक्रवाल जो कठिन द्विघात समीकरणों का पूर्ण संख्या समाधान खोजने के लिए, और वर्गमूल और त्रिकोणमिति के कार्यों की गणना के लिए पुनरावर्ती विधियां। ये सिर्फ चालाकी नहीं थीं। ये व्यवस्थित प्रक्रियाएं थीं जो हमेशा खत्म होती थीं और जिनके सही होने को साबित किया जा सकता था।

एक तरह से, प्राचीन भारतीय गणितज्ञ प्रोग्रामिंग कर रहे थे। वे ऐसी प्रक्रियाएं लिख रहे थे जो एक तरीके से चलाई जा सकती थीं और सही जवाब देती थीं। आधुनिक कंप्यूटिंग से एकमात्र अंतर यह था कि "प्रोसेसर" एक मशीन नहीं, बल्कि एक इंसान था।

एल्गोरिदम क्या चीज़ होती है?

एक एल्गोरिदम के कुछ विशेष गुण होते हैं:

  1. स्पष्टता: हर चरण बिल्कुल साफ होता है। यह पता होता है कि क्या करना है
  2. सीमितता: प्रक्रिया कुछ समय बाद खत्म हो जाती है
  3. इनपुट/आउटपुट: यह कुछ इनपुट लेता है और आउटपुट देता है
  4. प्रभावशीलता: हर चरण को असली में किया जा सकता है। कल्पना नहीं करनी पड़ती

आधुनिक कंप्यूटर हर सेकंड लाखों बार एल्गोरिदम चलाते हैं। लेकिन कंप्यूटर बनने से बहुत पहले ही एल्गोरिदम थे। ये सोचने के तरीके हैं। ये समस्या हल करने की प्रक्रियाएं हैं। आप इन्हें संस्कृत के श्लोकों में भी लिख सकते हैं या पायथन प्रोग्रामिंग में भी।

Aryabhata teaching the Kuṭṭaka algorithm to students

कुट्टक: समस्या को पीसना

कुट्टक ("पीसने वाली विधि") रैखिक अनिर्धारित समीकरणों को हल करने का एक एल्गोरिदम है। ये ऐसी समीकरणें होती हैं जिनके अनंत समाधान होते हैं। मान लीजिए:

ax + c = by

(यहां a, b, और c ज्ञात संख्याएं हैं), तो ऐसी संख्याएं x और y खोजो जो इस समीकरण को सही करें।

उदाहरण के लिए: 23x + 7 = 30y। x और y की कौन-सी संख्याएं काम करेंगी?

कुट्टक इस समस्या को "पीस" देता है। यानी, संख्याओं को धीरे-धीरे छोटा करता है जब तक समाधान स्पष्ट नहीं हो जाता। फिर पीछे की ओर जाकर असली जवाब खोजता है।

कुट्टक की विधि

  1. बड़ी संख्या को छोटी से भाग दो: 30 = 1×23 + 7
  2. बचे हुए से नई समस्या बनाओ: अब 23x + 7 = 7y' को हल करो
  3. यह तब तक करो जब तक संख्याएं आसान न हो जाएं: 7 = 3×2 + 1, आदि
  4. जब बचा हुआ 1 हो जाए, तो समाधान सीधा मिल जाता है
  5. पीछे की ओर जाकर पूरा समाधान बनाओ

यह विधि "विस्तारित यूक्लिड एल्गोरिदम" की तरह है, जो आधुनिक गणित और क्रिप्टोग्राफी में बहुत इस्तेमाल होती है। RSA एन्क्रिप्शन, जो इंटरनेट पर खरीदारी को सुरक्षित रखती है, इसी प्राचीन तकनीक पर निर्भर है।

"पीसने वाली विधि" नाम क्यों?

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

भारतीय गणितज्ञों की गणितीय शब्दावली बहुत सुंदर और रोज़मर्रा के उदाहरणों पर आधारित थी। यह नाम समझना आसान है और याद रखना भी आसान है: आप एक समस्या को पीस रहे हो।

आर्यभट्ट की विधि

आर्यभट्ट (499 CE) ने कुट्टक को संस्कृत के श्लोकों में समझाया। उनकी विधि रैखिक सर्वांगसमता समीकरणें हल करती है:

ऐसा x खोजो जहां x ≡ r₁ (mod m₁) और x ≡ r₂ (mod m₂)

Astronomers watching a rare planetary alignment over Ujjain

यह तरह की समस्या खगोल में हमेशा आती है। अगर सूर्य का एक परिक्रमा काल है और चंद्रमा का दूसरा, तो वे एक ही जगह कब आएंगे? इसका जवाब देने के लिए बिल्कुल इसी तरह की समीकरणें हल करनी पड़ती हैं।

आर्यभट्ट की प्रतिभा सिर्फ समस्या हल करने में नहीं थी। उन्होंने एक सामान्य विधि दी जो किसी भी ऐसी समस्या पर काम करती है। उनके श्लोक एक एल्गोरिदम को कूटबद्ध करते थे, सिर्फ एक जवाब नहीं।

ब्रह्मगुप्त की विधि

ब्रह्मगुप्त (628 CE) ने कुट्टक को और बेहतर बनाया। उन्होंने यह खगोल की समस्याओं के लिए इस्तेमाल किया:

ये सवाल कैलेंडर बनाने और त्योहार के लिए बहुत जरूरी थे। कुट्टक इन्हीं समीकरणों को हल करता है।

ब्रह्मगुप्त ने "ब्रह्मगुप्त-फिबोनाची पहचान" भी बनाई:

(a² + nb²)(c² + nd²) = (ac + nbd)² + n(ad - bc)² = (ac - nbd)² + n(ad + bc)²

यह पहचान हमें समाधानों को जोड़ने देती है। अगर आप दो समाधान जानते हो, तो उन्हें मिलाकर नए समाधान बना सकते हो। यही विधि चक्रवाल को शक्तिशाली बनाती है।

चक्रवाल: घूमकर समाधान तक पहुंचना

चक्रवाल ("घूमने की विधि") इस समीकरण को हल करने का एल्गोरिदम है:

x² - Ny² = 1

जहां N एक ऐसी संख्या है जो किसी संख्या का वर्ग नहीं है। इसे "पेल की समीकरण" कहते हैं (पर पेल इसके लिए ज़्यादा जिम्मेदार नहीं था)।

सरल N के लिए, समाधान छोटे होते हैं। N = 2 के लिए: x = 3, y = 2 काम करता है (9 - 8 = 1)।

दूसरी N के लिए, समाधान बहुत बड़े होते हैं। N = 61 के लिए:

ऐसी बड़ी संख्याएं अंदाज़ेबाज़ी से नहीं मिल सकतीं। चक्रवाल विधि से वे धीरे-धीरे मिल जाती हैं।

चक्रवाल कैसे काम करता है

  1. शुरुआत: एक अनुमानित संख्या m₀ चुनो ताकि m₀² - N बहुत छोटी हो (अच्छा तो ±1 या ±2 हो)
  2. घूमना: हर बार:
    • अगली संख्या चुनो जो m² - N को सबसे छोटा बने
    • जोड़ने की विधि से नए (x, y) मान निकालो
  3. रुकना: जब x² - Ny² = 1 मिल जाए

इसे "चक्रवाल" कहते हैं क्योंकि यह विधि बार-बार घूमती है। हर बार बचा हुआ भाग छोटा होता जाता है जब तक 1 नहीं आ जाता।

भास्कर द्वितीय का सिद्धांत

भास्कर द्वितीय (1150 CE) ने चक्रवाल को पूर्ण किया। उन्होंने अपनी पुस्तक बीजगणित में सबसे साफ तरीके से समझाया। उनकी विधि यह सुनिश्चित करती है:

भास्कर ने x² - 61y² = 1 का पूरा समाधान दिखाया। यूरोपीय गणितज्ञ (फ़र्मा, यूलर, लाग्रांज) 600 साल बाद भी इसी समीकरण से जूझते रहे। उन्हें नहीं पता था कि भास्कर ने पहले ही हल कर दिया था।

पुनरावर्ती विधियां: अनुमान को सुधारना

इन बीजगणितीय विधियों के अलावा, भारतीय गणितज्ञों ने संख्यात्मक विधियां भी बनाईं:

वर्गमूल निकालने की विधि

√N खोजने के लिए:

  1. एक अनुमानित संख्या x₀ से शुरू करो
  2. x₁ = (x₀ + N/x₀)/2 निकालो
  3. यह तब तक दोहराओ जब तक सही न हो जाए

यह "बेबीलोनियन विधि" (भारत में भी प्रसिद्ध थी) तेज़ी से काम करती है। √2 के लिए x₀ = 1 से शुरू करो:

सिर्फ तीन बार में पाँच सही अंक मिल जाते हैं!

साइन की तालिका बनाना

आर्यभट्ट की साइन की तालिका बनाने की विधि भी बार-बार करने वाली थी:

sin(θₙ₊₁) - sin(θₙ) ≈ [sin(θₙ) - sin(θₙ₋₁)] - sin(θₙ)/225

sin(0) = 0 और sin(90°) = R से शुरू करके, यह सूत्र पूरी तालिका बना देता है। यह उसी विचार जैसा है जो कलन में साइन को परिभाषित करता है।

एल्गोरिदम को संस्कृत श्लोकों में लिखना

भारतीय गणितज्ञ एल्गोरिदम को श्लोकों में कूटबद्ध करते थे ताकि वह याद रहें। लेकिन श्लोकों के नियम कठिन थे। कुछ श्लोक इतने छोटे थे कि समझना मुश्किल भी था।

कुट्टक को श्लोक में लिखने के बारे में सोचो:

यह कोड लिखने जैसा है जब आपके पास बहुत कम जगह हो। हर शब्द महत्वपूर्ण है। और सब कुछ सही और किफ़ायती होना चाहिए।

चीनी शेषफल प्रमेय से संबंध

कुट्टक उसी तरह की समस्या हल करता है जिसे "चीनी शेषफल प्रमेय" कहते हैं:

ऐसा x खोजो जहां:

चीनी गणित में भी ऐसी विधि उसी समय थी। क्या एक से दूसरे को प्रभाव पड़ा? पता नहीं। लेकिन दोनों सभ्यताओं ने यह समझ लिया था कि यह समस्या महत्वपूर्ण है। कैलेंडर बनाने और आसमान की घटनाओं का पूर्वानुमान देने के लिए दोनों को इसकी जरूरत थी।

आधुनिक उपयोग: क्रिप्टोग्राफी और उससे आगे

कुट्टक की आधुनिक संतानें आजकल के सभी तकनीकों में हैं:

RSA एन्क्रिप्शन: जब आप ऑनलाइन खरीदारी करते हो, RSA एन्क्रिप्शन तुम्हारे पैसों की रक्षा करता है। यह विस्तारित यूक्लिड एल्गोरिदम (यानी कुट्टक) का इस्तेमाल करता है।

गलती सुधारना: CDs, DVDs, और QR कोड को खरोंचें या गंदगी के बावजूद काम करने देने वाली तकनीकें इसी परिवार से आती हैं।

कंप्यूटर बीजगणित: आधुनिक गणित सॉफ्टवेयर कुट्टक जैसी विधियां इस्तेमाल करके भिन्न को सरल बनाता है या समीकरणें हल करता है।

समय का शेड्यूल: जब तुम्हें ऐसा समय खोजना हो जो कई लोगों को सुविधाजनक हो (यह शख्स सोमवार को फ्री है, वह मंगलवार को), तो तुम सर्वांगसमता का इस्तेमाल करते हो।

एल्गोरिदम एक गणितीय चीज़ है

भारतीय गणितज्ञ समझते थे कि एल्गोरिदम को भी अध्ययन किया जा सकता है:

ये सवाल आधुनिक कंप्यूटर विज्ञान की नींव हैं। ब्रह्मगुप्त और भास्कर ने अपनी किताबों में ये सब सवाल का जवाब दिया था।

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

हाथ से मशीन तक

जब आदमी एल्गोरिदम चलाता था तो और जब मशीन चलाती है, तो सिर्फ तकनीक बदलती है, विचार नहीं। कुट्टक और चक्रवाल को कागज़ पर भी चलाया जा सकता है और कंप्यूटर पर भी।

जब एलन ट्यूरिंग ने 1930 में एल्गोरिदम को सटीकता से परिभाषित किया, तो वह सिर्फ उसे सटीक बना रहे थे जो भारतीय गणितज्ञ हज़ार साल से करते आए थे। यानी, एक बड़ी समस्या को छोटे-छोटे, साफ चरणों में तोड़ना।

आजकल "कंप्यूटर" शब्द का मतलब एक मशीन है, लेकिन पहले यह एक आदमी होता था जो गणना करता था। लेकिन जो एल्गोरिदम वह चलाता था, वह हज़ारों साल बाद भी पहचाने जा सकते हैं।

विरासत: प्रक्रियात्मक तरीके से सोचना

प्राचीन भारतीय गणितज्ञों का सबसे गहरा योगदान यह विचार था: कि बड़ी समस्याओं को छोटे, दोहराए जाने वाले चरणों में तोड़ा जा सकता है। यह नींव है:

जब एक प्रोग्रामर एक loop लिखता है, जब एक कारख़ाना अपनी उत्पादन प्रक्रिया को बेहतर बनाता है, जब एक वैज्ञानिक किसी प्रयोग के नियम का पालन करता है - वह सब प्रक्रियात्मक तरीके से सोच रहे होते हैं। यह परंपरा हज़ार साल पहले भारतीय गणितज्ञों ने संस्कृत के श्लोकों में अपने विचारों को कोडित करके शुरू की थी।

Key figures

आर्यभट

476-550 CE

ब्रह्मगुप्त

598-668 CE

भास्कर द्वितीय

1114-1185 CE

जयदेव

लगभग 1000 CE (सटीक तारीख़ पता नहीं)

Case studies

कुट्टक से साइबर सुरक्षा तक

जब आप ऑनलाइन खरीदारी करते हो, तो RSA एन्क्रिप्शन तुम्हारे पैसों की रक्षा करता है। सुरक्षा बड़ी संख्याओं को तोड़ना मुश्किल होने पर निर्भर है। लेकिन यह विस्तारित यूक्लिड एल्गोरिदम इस्तेमाल करता है - जो कुट्टक ही है।

RSA सर्वांगसमता पर काम करता है। डिक्रिप्शन की चाबी खोजने के लिए ठीक कुट्टक वाली समीकरणें हल करनी पड़ती हैं। इस प्राचीन विधि के बिना आधुनिक ऑनलाइन खरीदारी नहीं हो सकती।

आज का कंप्यूटर विज्ञान भी भविष्य में अलग कामों के लिए काम आ सकता है। क्वांटम एल्गोरिदम संचार की रक्षा कर सकते हैं या तोड़ भी सकते हैं - तब तक नहीं पता जब तक तकनीक परिपक्व न हो।

एक काम के लिए बनाया गया एल्गोरिदम (खगोल) सदियों बाद बिल्कुल अलग काम के लिए काम आ सकता है (सुरक्षा)। गणित की नींव विशेष उपयोग से आगे जाती है।

Every secure online transaction, from banking to messaging apps like Signal, depends on number theory algorithms. The RSA encryption protecting your credit card uses modular arithmetic principles that Aryabhata formalized for astronomical calculations. Ancient algorithm design powers modern cybersecurity.

Indian mathematical concepts, including the decimal system and zero, are used by over 7 billion people worldwide today.

ग्रह कब एक जैसे होंगे?

[5वीं-12वीं सदी CE] खगोलविद को यह पता करना है कि बृहस्पति और शनि कब एक ही जगह पर होंगे। बृहस्पति 12 साल में एक चक्कर लगाता है, शनि 29 साल में। तो दोनों कब फिर से एक जैसे होंगे?

इसके लिए ऐसा n चाहिए जो 12 और 29 दोनों से भाग हो जाए। कुट्टक इसे व्यवस्थित रूप से हल करता है। n = 348 साल (या इसका गुणक)। जटिल मामलों के लिए पूरी विधि चलानी पड़ती है।

आजका शेड्यूलिंग सॉफ्टवेयर भी ऐसी समस्याएं हल करता है (इस आदमी को सोमवार फ्री है, वह कमरा मंगलवार को खाली है)। गणितीय ढांचा एक ही है।

एल्गोरिदम असली समस्याओं से आते हैं। कुट्टक सिर्फ सैद्धांतिक नहीं था - यह त्योहारों की तारीख़ और कैलेंडर के लिए जरूरी था।

Scheduling algorithms face the same mathematical structure today. When should two satellites pass over the same ground station? When will two periodic maintenance cycles coincide? These questions reduce to the same modular arithmetic that Indian astronomers developed for planetary conjunction problems.

12 years - referenced in the context of When Will the Planets Align?.

सुई खोजना: x² - 61y² = 1

[12वीं सदी CE] भास्कर x² - 61y² = 1 को हल करते हैं। सबसे छोटा समाधान बहुत बड़ा है: x = 1,766,319,049 और y = 226,153,980। अंदाज़ेबाज़ी से ऐसा कभी नहीं मिल सकता। वह कैसे मिला?

चक्रवाल व्यवस्थित तरीके से समस्या को छोटा करता है। छोटी संख्याओं से शुरू करके, हर बार समाधान के करीब पहुंचता है। यादृच्छिक नहीं, बल्कि एक निश्चित रास्ता जो लक्ष्य तक ज़रूर पहुंचता है।

आजके अनुकूलन एल्गोरिदम भी ऐसा ही करते हैं (gradient descent, genetic algorithms)। सिद्धांत एक ही है: संरचना का फायदा उठाओ, अंदाज़ेबाज़ी मत करो।

व्यवस्थित विधियां ऐसे समाधान खोज सकती हैं जो अंदाज़े से कभी नहीं मिल सकते। चक्रवाल की ताकत भाग्य में नहीं, बल्कि गणितीय संरचना में है।

Modern optimization algorithms in machine learning, like gradient descent, share the Chakravala's core insight: use mathematical structure to converge on solutions that brute-force search could never find. The difference between a good algorithm and random guessing can be the difference between seconds and centuries of computation.

Indian mathematical concepts, including the decimal system and zero, are used by over 7 billion people worldwide today.

Historical context

भारतीय गणित का स्वर्ण काल (5वीं-12वीं सदी CE)

Living traditions

हर बार जब आप ऑनलाइन खरीदारी करते हो, कुट्टक तुम्हारी रक्षा करता है। गलती सुधार के कोड, प्रोग्रामिंग में सर्वांगसमता, सब कुछ भारतीय गणित से आया है। भारत का IT उद्योग हर दिन ऐसी विधियां इस्तेमाल करता है जिनके पूर्वज भारत में हज़ार साल पहले विकसित हुए थे।

Reflection

More in गणित: वह गणित जिसने दुनिया बदल दी

All lessons in गणित: वह गणित जिसने दुनिया बदल दी · भारतीय विज्ञान: आविष्कार और खोजें course