Skip to main content

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

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

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

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

एल्गोरिदम

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

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

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

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

def main():
	for value in range(3):
		
		for value in range(3):
			# 1. डाउन आई सेंसर का उपयोग करके डिस्क पर ड्राइव करें
			जब तक down_eye.near_object() न हो:
				drivetrain.drive(FORWARD)
				wait(5, MSEC)
			drivetrain.stop()
			
			# 2. डिस्क उठाओ
			magnet.energize(BOOST)
			
			# 3. दूरी सेंसर का उपयोग करके लक्ष्य तक ड्राइव करें
			drivetrain.turn_to_heading(180, DEGREES)
			while front_distance.get_distance(MM) > 200:
				drivetrain.drive(FORWARD)
				wait(5, MSEC)
			drivetrain.stop()
			
			# 4. लक्ष्य में डिस्क ड्रॉप करें
			magnet.energize(DROP)
			drivetrain.drive_for(REVERSE, 100, MM)
			
			# 5. अगली डिस्क की ओर मुड़ें
			drivetrain.turn_to_heading(0, DEGREES)
			wait(5, MSEC)
			
		# 6. मुड़ें और अगले लक्ष्य की ओर ड्राइव करें
		drivetrain.turn_to_heading(90, DEGREES)
		drivetrain.drive_for(FORWARD, 800, MM)
		
		# 7. डिस्क पर जाएँ
		drivetrain.turn_to_heading(0, DEGREES)
		
	wait(5, MSEC)

अनुक्रम

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

चयन

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

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

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

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

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

यात्रा

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

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

प्रश्न

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

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