एलर का एल्गोरिथम भूलभुलैया जेनरेटर
प्रकाशित: 16 फ़रवरी 2025 को 8:08:01 pm UTC बजे
एलर के एल्गोरिथ्म का उपयोग करके एक आदर्श भूलभुलैया बनाने वाला भूलभुलैया जनरेटर। यह एल्गोरिथ्म दिलचस्प है क्योंकि इसमें केवल वर्तमान पंक्ति (पूरी भूलभुलैया नहीं) को मेमोरी में रखने की आवश्यकता होती है, इसलिए इसका उपयोग बहुत सीमित सिस्टम पर भी बहुत बड़ी भूलभुलैया बनाने के लिए किया जा सकता है।Eller's Algorithm Maze Generator
एलर का एल्गोरिथ्म एक भूलभुलैया निर्माण एल्गोरिथ्म है जो पंक्ति-दर-पंक्ति दृष्टिकोण का उपयोग करके कुशलतापूर्वक परिपूर्ण भूलभुलैया (बिना किसी लूप वाली भूलभुलैया और किसी भी दो बिंदुओं के बीच एक ही पथ) का निर्माण करता है। यह क्रुस्कल के एल्गोरिथ्म के समान भूलभुलैया का निर्माण करता है, लेकिन यह एक बार में केवल एक पंक्ति उत्पन्न करके ऐसा करता है, बिना संपूर्ण भूलभुलैया को मेमोरी में संग्रहीत करने की आवश्यकता के। यह इसे बहुत सीमित प्रणालियों पर बहुत बड़ी भूलभुलैया बनाने और प्रक्रियात्मक सामग्री निर्माण के लिए उपयोगी बनाता है।
एक आदर्श भूलभुलैया वह भूलभुलैया होती है जिसमें भूलभुलैया के किसी भी बिंदु से किसी अन्य बिंदु तक जाने के लिए बिल्कुल एक ही रास्ता होता है। इसका मतलब है कि आप चक्कर लगाते हुए नहीं रह सकते, लेकिन आप अक्सर ऐसे रास्ते पर आएँगे जहाँ आपको पीछे मुड़ना होगा और वापस लौटना होगा।
यहाँ बनाए गए भूलभुलैया मानचित्रों में बिना किसी आरंभ और समाप्ति स्थिति के एक डिफ़ॉल्ट संस्करण शामिल है, इसलिए आप उन्हें स्वयं तय कर सकते हैं: भूलभुलैया के किसी भी बिंदु से किसी भी अन्य बिंदु तक एक समाधान होगा। यदि आप प्रेरणा चाहते हैं, तो आप सुझाए गए आरंभ और समाप्ति स्थिति को सक्षम कर सकते हैं - और यहां तक कि दोनों के बीच समाधान भी देख सकते हैं।
एलर के एल्गोरिदम के बारे में
एलर एल्गोरिथ्म का परिचय डेविड एलर द्वारा दिया गया था।
यह एल्गोरिथ्म भूलभुलैया निर्माण के लिए अपनी कुशल पंक्ति-दर-पंक्ति दृष्टिकोण के लिए उल्लेखनीय है, जो इसे अनंत भूलभुलैया या वास्तविक समय में उत्पन्न भूलभुलैया के लिए आदर्श बनाता है। इसे आमतौर पर प्रक्रियात्मक सामग्री निर्माण और भूलभुलैया-निर्माण साहित्य में उद्धृत किया जाता है, लेकिन मैं इसके मूल प्रकाशन का विवरण देने वाले प्राथमिक स्रोत नहीं खोज पाया हूँ।
भूलभुलैया निर्माण के लिए एलर का एल्गोरिदम कैसे काम करता है
एलर का एल्गोरिदम एक बार में एक पंक्ति को प्रोसेस करता है, जुड़े हुए सेल के सेट को बनाए रखता है और संशोधित करता है। यह लूप से बचते हुए कनेक्टिविटी सुनिश्चित करता है, और यह कुशलता से भूलभुलैया को नीचे की ओर बढ़ाता है।
सैद्धांतिक रूप से इसका उपयोग अनंत भूलभुलैया उत्पन्न करने के लिए किया जा सकता है, हालांकि यह सुनिश्चित करने के लिए कि उत्पन्न भूलभुलैया वास्तव में हल करने योग्य है, भूलभुलैया को समाप्त करने के लिए किसी बिंदु पर "अंतिम पंक्ति" तर्क पर स्विच करना आवश्यक है।
चरण 1: पहली पंक्ति आरंभ करें
- पंक्ति में प्रत्येक कक्ष को एक अद्वितीय सेट आईडी निर्दिष्ट करें.
चरण 2: कुछ आसन्न कोशिकाओं को क्षैतिज रूप से जोड़ें
- आसन्न कोशिकाओं को एक ही सेट आईडी पर सेट करके यादृच्छिक रूप से मर्ज करें। यह सुनिश्चित करता है कि क्षैतिज मार्ग हैं।
चरण 3: अगली पंक्ति के लिए लंबवत कनेक्शन बनाएं
- पंक्ति में दिखाई देने वाले प्रत्येक सेट के लिए, कम से कम एक सेल को नीचे की ओर जुड़ना चाहिए (कनेक्टिविटी सुनिश्चित करने के लिए)।
- अगली पंक्ति से जोड़ने के लिए प्रत्येक सेट से एक या अधिक कक्षों को यादृच्छिक रूप से चुनें।
चरण 4: अगली पंक्ति पर जाएँ
- नीचे दिए गए संगत कक्षों को समान सेट आईडी निर्दिष्ट करके ऊर्ध्वाधर कनेक्शन को आगे बढ़ाएं।
- किसी भी असाइन न किए गए कक्षों को नई सेट आईडी असाइन करें.
चरण 5: अंतिम पंक्ति तक पहुंचने तक चरण 2-4 को दोहराएं
- पंक्ति दर पंक्ति प्रसंस्करण जारी रखें.
चरण 6: अंतिम पंक्ति की प्रक्रिया करें
- शेष पृथक सेटों को मिलाकर सुनिश्चित करें कि अंतिम पंक्ति की सभी कोशिकाएं एक ही सेट से संबंधित हों।