Skip to main content

പാഠം 1: ഒരു അൽഗോരിതം എന്താണ്?

ഈ പാഠത്തിൽ, ഒരു അൽഗോരിതം എന്താണെന്നും VEXcode VR പൈത്തണിലെ അൽഗോരിതങ്ങൾ ഉപയോഗിക്കുന്നത് കൂടുതൽ വൈവിധ്യമാർന്ന പെരുമാറ്റങ്ങളുള്ള പ്രോജക്ടുകൾ സൃഷ്ടിക്കാൻ നിങ്ങളെ എങ്ങനെ പ്രാപ്തമാക്കുന്നുവെന്നും നിങ്ങൾ പഠിക്കും. ഡൈനാമിക് കാസിൽ ക്രാഷർ ചലഞ്ച് പരിഹരിക്കുന്നതിന് ആവശ്യമായ പരിസ്ഥിതിയോട് പ്രതികരിക്കാൻ അൽഗോരിതമിക് പ്രോജക്ടുകൾ വിആർ റോബോട്ടിനെ നിർദ്ദേശിക്കുന്നു.

പഠന ഫലങ്ങൾ

  • അൽഗോരിതങ്ങൾ ക്രമം, തിരഞ്ഞെടുപ്പ്, ആവർത്തനം (ലൂപ്പുകൾ) എന്നിവയാൽ നിർമ്മിതമാണെന്ന് തിരിച്ചറിയുക.
  • ഒരു 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 അല്ലെങ്കിലും Down Eye Sensor
			ഉപയോഗിച്ച് ഡിസ്കിലേക്ക് ഡ്രൈവ് ചെയ്യുക. ഡിസ്ക്
			എടുക്കുക മാഗ്നെറ്റ്.എനർജിസ്(ബൂസ്റ്റ്)
			
			# 3. ഡിസ്റ്റൻസ് സെൻസർ
			drivetrain.turn_to_heading(180, DEGREES)
			ഉപയോഗിച്ച് ലക്ഷ്യത്തിലേക്ക് ഡ്രൈവ് ചെയ്യുക, അതേസമയം front_distance.get_distance(MM) > 200:
				drivetrain.drive(FORWARD)
				wait(5, MSEC)
			drivetrain.stop()
			
			# 4. ഗോൾ
			മാഗ്നെറ്റിൽ ഡിസ്ക് ഡ്രോപ്പ് ചെയ്യുക. ഊർജ്ജസ്വലമാക്കുക(ഡ്രോപ്പ് ചെയ്യുക)
			ഡ്രൈവ്‌ട്രെയിൻ.ഡ്രൈവ്_ഫോർ(റിവേഴ്സ്, 100, എംഎം)
			
			# 5. അടുത്ത ഡിസ്ക്
			ഡ്രൈവ്ട്രെയിനിന് അഭിമുഖമായി തിരിയുക.turn_to_heading(0, DEGREES)
			wait(5, MSEC)
			
		# 6. തിരിഞ്ഞ് അടുത്ത ലക്ഷ്യത്തിലേക്ക് ഡ്രൈവ് ചെയ്യുക
		drivetrain.turn_to_heading(90, DEGREES)
		drivetrain.drive_for(FORWARD, 800, MM)
		
		# 7. ഡിസ്കുകളിലേക്ക് തിരിയുക
		ഡ്രൈവ്‌ട്രെയിൻ.turn_to_heading(0, DEGREES)
		
	കാത്തിരിക്കുക(5, MSEC)

ക്രമം

കമാൻഡുകൾ ക്രമീകരിച്ചിരിക്കുന്നതും സംയോജിപ്പിക്കുന്നതും VR റോബോട്ടിന്റെ സ്വഭാവരീതികളെ നിർണ്ണയിക്കുന്നു. ഈ ഉദാഹരണത്തിൽ, ഒരു ഡിസ്ക് നീക്കാൻ ആവശ്യമായ ഓരോ പെരുമാറ്റരീതികളും മൂന്ന് തവണ നടപ്പിലാക്കുന്നു, തുടർന്ന് VR റോബോട്ട് അടുത്ത ഡിസ്കുകളിലേക്ക് നീങ്ങുകയും എല്ലാ ഡിസ്കുകളും ലക്ഷ്യങ്ങളിലേക്ക് തിരികെ വരുന്നതുവരെ പെരുമാറ്റങ്ങൾ ആവർത്തിക്കുകയും ചെയ്യുന്നു. റോബോട്ടിന്റെ ഡിസ്ക് ശേഖരണ ക്രമം കാണിക്കുന്ന ഒരു ഫ്ലോ ഡയഗ്രം. ഇടതുവശത്ത്, കോഡ് മൂന്ന് തവണ ആവർത്തിക്കുന്ന പ്രധാന ലൂപ്പ് പ്രദർശിപ്പിക്കുന്നു. വലതുവശത്തുള്ള ചുവന്ന ചാക്രിക അമ്പടയാളങ്ങൾ സെൻസർ വ്യവസ്ഥകൾ പാലിക്കുന്നതുവരെ (ഒരു ഡിസ്ക് കണ്ടെത്തുകയോ പിടിക്കുകയോ ചെയ്യുന്നത് പോലെ) പ്രവർത്തിക്കുന്ന തുടർച്ചയായ ലൂപ്പുകളെ സൂചിപ്പിക്കുന്നു, അതേസമയം പച്ച അമ്പടയാളങ്ങൾ ഡിസ്ക് ശേഖരിക്കുന്നതിനും ലക്ഷ്യത്തിലേക്ക് നീക്കുന്നതിനും റിലീസ് ചെയ്യുന്നതിനും അടുത്ത സൈക്കിളിനായി സ്ഥാനം മാറ്റുന്നതിനും ഇടയിലുള്ള സംക്രമണങ്ങളെ സൂചിപ്പിക്കുന്നു.

തിരഞ്ഞെടുപ്പ്

സെൻസർ അവസ്ഥകളെ അടിസ്ഥാനമാക്കി പ്രവർത്തിപ്പിക്കേണ്ട പ്രോജക്റ്റിന്റെ ഭാഗങ്ങൾ നിർണ്ണയിക്കുന്ന തിരഞ്ഞെടുപ്പും ഈ പ്രോജക്റ്റിൽ ഉൾപ്പെടുന്നു. ആദ്യം, VR റോബോട്ട് ഒരു ഡിസ്കിന് സമീപം എപ്പോഴാണെന്ന് നിർണ്ണയിക്കാൻ ഡൗൺ ഐ സെൻസർ ഉപയോഗിക്കുന്നു, അങ്ങനെ ഡിസ്ക് എടുക്കാൻ കഴിയും. പിന്നെ, ഡിസ്റ്റൻസ് സെൻസർ ഉപയോഗിച്ച് VR റോബോട്ട് എപ്പോൾ ലക്ഷ്യത്തിലെത്തുമെന്ന് നിർണ്ണയിക്കുന്നു, അങ്ങനെ ഡിസ്ക് താഴെയിടാം.  യൂണിറ്റ് 8-ൽ നിന്നുള്ള കോഡ് സ്നിപ്പെറ്റിൽ സെൻസർ റീഡിംഗുകളെ അടിസ്ഥാനമാക്കി റോബോട്ടിന്റെ ചലനത്തെ നിയന്ത്രിക്കുന്ന രണ്ട് ഹൈലൈറ്റ് ചെയ്ത while അവസ്ഥകൾ ഉൾപ്പെടുന്നു. ആദ്യം ഹൈലൈറ്റ് ചെയ്തിരിക്കുന്ന അവസ്ഥ, down_eye.near_object() അല്ലെങ്കിലും, ഡൗൺ ഐ സെൻസർ അടുത്തുള്ള ഒരു വസ്തുവിനെ കണ്ടെത്തുന്നതുവരെ റോബോട്ടിനോട് മുന്നോട്ട് പോകാൻ നിർദ്ദേശിക്കുന്നു, അങ്ങനെ നിർത്തുന്നതിന് മുമ്പ് ഒരു ഡിസ്കിനെ സമീപിക്കാൻ റോബോട്ടിനെ അനുവദിക്കുന്നു. front_distance.get_distance(MM) > 200 എന്ന രണ്ടാമത്തെ അവസ്ഥയിൽ, പ്രോക്സിമിറ്റി അളക്കലിനായി ഫ്രണ്ട് ഡിസ്റ്റൻസ് സെൻസർ ഉപയോഗിച്ച്, ലക്ഷ്യത്തിൽ നിന്ന് 200 മില്ലിമീറ്ററിനുള്ളിൽ എത്തുന്നതുവരെ റോബോട്ടിനെ മുന്നോട്ട് നയിക്കാൻ നിർദ്ദേശിക്കുന്നു. ഈ അവസ്ഥകൾ ലൂപ്പുകൾ സൃഷ്ടിക്കുന്നു, ഓരോ നിർദ്ദിഷ്ട സെൻസർ അവസ്ഥയും പാലിക്കുമ്പോൾ മാത്രം റോബോട്ടിനെ നിർത്തുന്നു.

ആദ്യത്തെwhileലൂപ്പിൽ, ഏതൊക്കെ കമാൻഡുകൾ പ്രവർത്തിപ്പിക്കണമെന്ന് തിരഞ്ഞെടുക്കുന്നത് ഡൗൺ ഐ സെൻസർ റിപ്പോർട്ട് ചെയ്ത സെൻസർ മൂല്യങ്ങളെ അടിസ്ഥാനമാക്കിയാണ്.

  • ഒരു വസ്തുവും കണ്ടെത്താനായില്ലെങ്കിലും, വിആർ റോബോട്ട് മുന്നോട്ട് നീങ്ങും.
  • ഒരു വസ്തു കണ്ടെത്തുമ്പോൾ, VR റോബോട്ട് നിർത്തും.

രണ്ടാമത്തെwhile ലൂപ്പിൽ, ഏത് കമാൻഡ് പ്രവർത്തിപ്പിക്കണമെന്ന് തിരഞ്ഞെടുക്കുന്നത് ഡിസ്റ്റൻസ് സെൻസർ റിപ്പോർട്ട് ചെയ്ത സെൻസർ മൂല്യങ്ങളെ അടിസ്ഥാനമാക്കിയാണ്.

  • റിപ്പോർട്ട് ചെയ്യപ്പെട്ട ദൂരം 200 മില്ലിമീറ്ററിൽ (മില്ലീമീറ്ററിൽ) കൂടുതലാണെങ്കിലും, വിആർ റോബോട്ട് മുന്നോട്ട് ഓടും.
  • റിപ്പോർട്ട് ചെയ്യപ്പെട്ട ദൂരം 50 മില്ലിമീറ്ററിൽ (മില്ലീമീറ്ററിൽ) കുറവാണെങ്കിലും, വിആർ റോബോട്ട് ഡ്രൈവിംഗ് നിർത്തി ഇലക്ട്രോമാഗ്നറ്റിനെ ഊർജ്ജസ്വലമാക്കുന്നതിനായി പദ്ധതിയുടെ അടുത്ത ഭാഗത്തേക്ക് നീങ്ങും.

ആവർത്തനം

പ്രവർത്തനങ്ങൾ ആവർത്തിക്കുന്നതിനും റിപ്പോർട്ട് ചെയ്ത സെൻസർ മൂല്യങ്ങൾ ആവർത്തിച്ച് പരിശോധിക്കുന്നതിനും പ്രോജക്റ്റ് ആവർത്തനം അല്ലെങ്കിൽ "ലൂപ്പുകൾ" ഉപയോഗിക്കുന്നു. ഈ പ്രോജക്റ്റിൽ നെസ്റ്റഡ് ലൂപ്പുകൾ അടങ്ങിയിരിക്കുന്നു - VR റോബോട്ടിന് ഒരേ നിറത്തിലുള്ള മൂന്ന് ഡിസ്കുകളും ശേഖരിക്കാൻ കഴിയുന്ന തരത്തിൽ ഒരു ലൂപ്പ്; പ്ലേഗ്രൗണ്ടിലെ എല്ലാ ഡിസ്കുകളും ശേഖരിക്കുന്നതിന് ആ പ്രക്രിയ ആവർത്തിക്കുന്നതിനുള്ള രണ്ടാമത്തെ ലൂപ്പ്. റോബോട്ടിന്റെ ഡിസ്ക് ശേഖരണ പ്രക്രിയ നിയന്ത്രിക്കുന്നതിന് കോഡ് രണ്ട് നെസ്റ്റഡ് ലൂപ്പുകൾ ഉപയോഗിക്കുന്നു. ഓരോ നിറത്തിലുമുള്ള ഡിസ്കുകൾ ശേഖരിക്കുന്നതിനായി ലൂപ്പ് എന്ന് ലേബൽ ചെയ്തിട്ടുള്ള പുറം ലൂപ്പ്, ഓരോ ഡിസ്ക് നിറത്തിലൂടെയും ആവർത്തിക്കുന്നു. അതിനുള്ളിൽ, ഒരു നിറത്തിലുള്ള 3 ഡിസ്കുകൾ ശേഖരിക്കാൻ ലൂപ്പ് എന്ന് ലേബൽ ചെയ്തിരിക്കുന്ന ആന്തരിക ലൂപ്പ്, നിലവിലെ നിറത്തിലുള്ള മൂന്ന് ഡിസ്കുകൾ ശേഖരിച്ച് സ്ഥാപിക്കാൻ മൂന്ന് തവണ ആവർത്തിക്കുന്നു. ഈ സജ്ജീകരണം റോബോട്ട് അടുത്ത നിറത്തിലേക്ക് നീങ്ങുന്നതിനുമുമ്പ് ഓരോ നിറത്തിന്റെയും മൂന്ന് ഡിസ്കുകൾ ശേഖരിക്കുന്നുവെന്ന് ഉറപ്പാക്കുന്നു, ഓരോ ലൂപ്പ് ആവർത്തനവും വ്യവസ്ഥാപിത ശേഖരണത്തിലും സ്ഥാനത്തിലും ശ്രദ്ധ കേന്ദ്രീകരിക്കുന്നു.

ഡിസ്ക് മൂവർ ചലഞ്ച് പൂർത്തിയാക്കുന്നതിന് മൂന്ന് ഡിസ്കുകൾ മൂന്ന് തവണ ശേഖരിച്ച് തിരികെ നൽകുന്നതിനാണ് ഈ അൽഗോരിതം രൂപകൽപ്പന ചെയ്തിരിക്കുന്നത്. ക്രമം, തിരഞ്ഞെടുപ്പ്, ആവർത്തനം എന്നിവ ഉപയോഗിച്ച് ഡിസ്കുകൾ ആവർത്തിച്ച് ശേഖരിക്കുന്നതിനും നീക്കുന്നതിനും പ്രയോഗിക്കുന്ന അതേ യുക്തി ഡൈനാമിക് കാസിൽ ക്രാഷർ ചലഞ്ച് പോലുള്ള മറ്റ് വെല്ലുവിളികളിലും പ്രയോഗിക്കാൻ കഴിയും.

ചോദ്യങ്ങൾ

പാഠ ക്വിസ് ആക്‌സസ് ചെയ്യുന്നതിന് താഴെയുള്ള ലിങ്ക് തിരഞ്ഞെടുക്കുക.

ഗൂഗിൾ ഡോക് / .ഡോക്സ് / .പിഡിഎഫ്