मुख्य सामग्री पर जाएं

पाठ 1: एल्गोरिदम क्या है?

इस पाठ में, आप सीखेंगे कि एल्गोरिदम क्या होता है और VEXcode VR Python में एल्गोरिदम का उपयोग करके आप अधिक विविध व्यवहार वाले प्रोजेक्ट कैसे बना सकते हैं। एल्गोरिथम आधारित परियोजनाएं वीआर रोबोट को उसके वातावरण पर प्रतिक्रिया देने का निर्देश देती हैं, जो डायनेमिक कैसल क्रैशर चैलेंज को हल करने के लिए आवश्यक होगा।

सीखने के परिणाम

  • यह पहचानें कि एल्गोरिदम अनुक्रम, चयन और पुनरावृति (लूप) से मिलकर बने होते हैं।
  • यह पहचानें कि एल्गोरिदम निर्देशों के सटीक अनुक्रम होते हैं, जिन्हें प्रोग्रामिंग भाषाओं का उपयोग करके कार्यान्वित किया जाता है, ताकि वीआर रोबोट द्वारा प्रक्रियाओं को पूरा किया जा सके।

एल्गोरिदम

एल्गोरिदम निर्देशों के सटीक अनुक्रम होते हैं, जिन्हें वीईएक्सकोड वीआर पायथन जैसी प्रोग्रामिंग भाषाओं का उपयोग करके कार्यान्वित किया जाता है, ताकि वीआर रोबोट द्वारा प्रक्रियाओं को पूरा किया जा सके।

किसी एल्गोरिदम के मूल तत्व अनुक्रम, चयन और पुनरावृति हैं।

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

यूनिट 8 की चुनौती से लिया गया यह उदाहरण प्रोजेक्ट एक एल्गोरिदम का उदाहरण है। इसमें डिस्क मूवर चैलेंज को हल करने के लिए लूप, सेंसर डेटा और कमांड का एक संयोजन शामिल है, जिन्हें एक क्रम में व्यवस्थित किया गया है।

def main():
	for value in range(3):
		
		for value in range(3):
			# 1. डाउन आई सेंसर
			का उपयोग करके डिस्क पर ड्राइव करें जबकि डाउन_आई.नियर_ऑब्जेक्ट() नहीं है:
				ड्राइवट्रेन.ड्राइव (फॉरवर्ड)
				प्रतीक्षा करें (5, एमएसईसी)
			ड्राइवट्रेन.स्टॉप()
			
			# 2. डिस्क
			मैग्नेट उठाएँ. एनर्जाइज़ (बूस्ट)
			
			# 3. डिस्टेंस सेंसर
			ड्राइवट्रेन का उपयोग करके लक्ष्य तक ड्राइव करें। हेडिंग की ओर मुड़ें (180, डिग्री)
			जबकि फ्रंट डिस्टेंस (MM) प्राप्त करें > 200:
				ड्राइवट्रेन (फॉरवर्ड)
				प्रतीक्षा करें (5, एमएसईसी)
			ड्राइवट्रेन (स्टॉप)
			
			# 4. लक्ष्य में डिस्क गिराएँ
			चुंबक.ऊर्जा (ड्रॉप)
			ड्राइवट्रेन.ड्राइव_फॉर (रिवर्स, 100, एमएम)
			
			# 5. अगले डिस्क का सामना करने के लिए मुड़ें
			ड्राइवट्रेन.टर्न_टू_हेडिंग(0, डिग्री)
			प्रतीक्षा(5, एमएसईसी)
			
		# 6. मुड़ें और अगले लक्ष्य की ओर ड्राइव करें
		ड्राइवट्रेन.टर्न_टू_हेडिंग(90, डिग्री)
		ड्राइवट्रेन.ड्राइव_फॉर(फॉरवर्ड, 800, एमएम)
		
		# 7. डिस्क की ओर मुड़ें
		ड्राइवट्रेन.टर्न_टू_हेडिंग(0, डिग्री)
		
	प्रतीक्षा करें(5, मिलीसेकंड)

अनुक्रम

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

चयन

इस परियोजना में चयन प्रक्रिया भी शामिल है जो सेंसर की स्थितियों के आधार पर परियोजना के उन हिस्सों को निर्धारित करती है जिन्हें चलाया जाएगा। सबसे पहले, डाउन आई सेंसर का उपयोग यह निर्धारित करने के लिए किया जाता है कि वीआर रोबोट डिस्क के पास कब है, ताकि डिस्क को उठाया जा सके। फिर, डिस्टेंस सेंसर का उपयोग यह निर्धारित करने के लिए किया जाता है कि वीआर रोबोट लक्ष्य के ऊपर कब है, ताकि डिस्क को गिराया जा सके।  यूनिट 8 के कोड स्निपेट में दो हाइलाइट किए गए while कंडीशन शामिल हैं जो सेंसर रीडिंग के आधार पर रोबोट की गति को नियंत्रित करते हैं। पहली हाइलाइट की गई स्थिति, जबकि डाउन_आई.नियर_ऑब्जेक्ट() नहीं है, रोबोट को तब तक आगे बढ़ने का निर्देश देती है जब तक कि डाउन आई सेंसर पास में किसी वस्तु का पता नहीं लगा लेता, जिससे उसे रुकने से पहले डिस्क के पास पहुंचने की अनुमति मिल जाती है। दूसरी हाइलाइट की गई स्थिति, जबकि front_distance.get_distance(MM) > 200, रोबोट को तब तक आगे बढ़ने का निर्देश देती है जब तक कि वह लक्ष्य से 200 मिलीमीटर के भीतर न हो, निकटता माप के लिए सामने की दूरी सेंसर का उपयोग करते हुए। ये while स्थितियां ऐसे लूप बनाती हैं जो रोबोट को तभी रोकती हैं जब प्रत्येक विशिष्ट सेंसर की स्थिति पूरी हो जाती है।

पहलेwhileलूप में, कौन से कमांड चलाए जाएंगे इसका चयन डाउन आई सेंसर द्वारा रिपोर्ट किए गए सेंसर मानों पर आधारित होता है।

  • जब तक कोई वस्तु डिटेक्ट नहीं होती, वीआर रोबोट आगे बढ़ता रहेगा।
  • किसी वस्तु का पता चलने पर, वीआर रोबोट रुक जाएगा।

दूसरेwhile लूप में, कौन सा कमांड चलाया जाएगा इसका चयन डिस्टेंस सेंसर द्वारा रिपोर्ट किए गए सेंसर मानों पर आधारित होता है।

  • यदि बताई गई दूरी 200 मिलीमीटर (मिमी) से अधिक है, तो वीआर रोबोट आगे बढ़ेगा।
  • यदि बताई गई दूरी 50 मिलीमीटर (मिमी) से कम है, तो वीआर रोबोट चलना बंद कर देगा और इलेक्ट्रोमैग्नेट को सक्रिय करने के लिए परियोजना के अगले भाग में चला जाएगा।

यात्रा

यह परियोजना क्रियाओं को दोहराने और रिपोर्ट किए गए सेंसर मूल्यों की बार-बार जांच करने के लिए पुनरावृति, या "लूप" का उपयोग करती है। इस प्रोजेक्ट में नेस्टेड लूप शामिल हैं - एक लूप ताकि वीआर रोबोट एक ही रंग की तीनों डिस्क एकत्र कर सके; और दूसरा लूप उस प्रक्रिया को दोहराकर प्लेग्राउंड पर मौजूद सभी डिस्क को एकत्र कर सके। यह कोड रोबोट की डिस्क संग्रहण प्रक्रिया को नियंत्रित करने के लिए दो नेस्टेड लूप का उपयोग करता है। बाहरी लूप, जिसे "प्रत्येक रंग की डिस्क एकत्र करने के लिए लूप" नाम दिया गया है, प्रत्येक डिस्क के रंग के माध्यम से पुनरावृति करता है। इसके अंदर, "एक रंग की 3 डिस्क एकत्र करने के लिए लूप" नामक आंतरिक लूप, वर्तमान रंग की तीन डिस्क एकत्र करने और रखने के लिए तीन बार दोहराता है। यह व्यवस्था सुनिश्चित करती है कि रोबोट अगले रंग पर जाने से पहले प्रत्येक रंग की तीन डिस्क एकत्र करे, और प्रत्येक चक्र में व्यवस्थित रूप से डिस्क एकत्र करने और उन्हें रखने पर ध्यान केंद्रित किया जाए।

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

प्रश्न

पाठ की प्रश्नोत्तरी तक पहुँचने के लिए कृपया नीचे दिए गए लिंक का चयन करें।

गूगल डॉक / .docx / .pdf