Skip to main content

পাঠ ১: অ্যালগরিদম কী?

এই পাঠে, আপনি শিখবেন অ্যালগরিদম কী এবং কীভাবে VEXcode VR Python-এ অ্যালগরিদম ব্যবহার আপনাকে আরও বৈচিত্র্যময় আচরণ সহ প্রকল্প তৈরি করতে সক্ষম করে। অ্যালগরিদমিক প্রকল্পগুলি ভিআর রোবটকে তার পরিবেশের প্রতি সাড়া দেওয়ার নির্দেশ দেয়, যা ডায়নামিক ক্যাসেল ক্র্যাশার চ্যালেঞ্জ সমাধানের জন্য প্রয়োজনীয় হবে।

শেখার ফলাফল

  • অ্যালগরিদমগুলি ক্রম, নির্বাচন এবং পুনরাবৃত্তি (লুপ) দিয়ে তৈরি তা চিহ্নিত করুন।
  • অ্যালগরিদম হল নির্দেশাবলীর সুনির্দিষ্ট ক্রম, যা প্রোগ্রামিং ভাষা ব্যবহার করে বাস্তবায়িত হয়, যাতে একটি VR রোবট প্রক্রিয়াগুলি সম্পাদন করে।

অ্যালগরিদম

অ্যালগরিদম হল নির্দেশাবলীর সুনির্দিষ্ট ক্রম, যা VEXcode VR Python এর মতো প্রোগ্রামিং ভাষা ব্যবহার করে বাস্তবায়িত হয়, যাতে একটি VR রোবট দ্বারা প্রক্রিয়াগুলি সম্পন্ন করা হয়।

একটি অ্যালগরিদমের মৌলিক উপাদান হল ক্রম, নির্বাচন এবং পুনরাবৃত্তি।

  • ক্রম - একটি প্রকল্পে কাঙ্ক্ষিত ফলাফল তৈরির জন্য আচরণ এবং আদেশগুলিকে একত্রিত করার ক্রম।     
  • নির্বাচন - একটি প্রকল্পে শর্তসাপেক্ষ বিবৃতির ব্যবহার। শর্তসাপেক্ষ বিবৃতি, যেমন যদিহয় অথবা যদি elseহয়, তাহলে একটি প্রকল্পের প্রকল্প প্রবাহকে প্রভাবিত করে।
  • পুনরাবৃত্তি - অ্যালগরিদমগুলি প্রায়শই নির্দিষ্ট সংখ্যক বার, অথবা একটি নির্দিষ্ট শর্ত পূরণ না হওয়া পর্যন্ত ধাপগুলি সম্পাদন করার জন্য পুনরাবৃত্তি ব্যবহার করে। এটি "লুপিং" নামেও পরিচিত। পুনরাবৃত্তি একটি আচরণকে নির্দিষ্ট সংখ্যক বার পুনরাবৃত্তি করে অথবা একটি শর্ত পূরণ না হওয়া পর্যন্ত প্রকল্পের প্রবাহ পরিবর্তন করতে পারে।  

ইউনিট 8 চ্যালেঞ্জের এই উদাহরণ প্রকল্পটি একটি অ্যালগরিদমের উদাহরণ। এতে লুপ, সেন্সর ডেটা এবং ডিস্ক মুভার চ্যালেঞ্জ সমাধানের জন্য একটি ক্রমানুসারে একত্রিত কমান্ডের সমন্বয় রয়েছে।

def main():
	রেঞ্জ(3) এর মানের জন্য:
		
		রেঞ্জ(3) এর মানের জন্য:
			# 1। ডাউন আই সেন্সর
			ব্যবহার করে ডিস্কে ড্রাইভ করুন, down_eye.near_object() ব্যবহার না করে:
				drivetrain.drive(FORWARD)
				wait(5, MSEC)
			drivetrain.stop()
			
			# 2। ডিস্ক
			ম্যাগনেট.এনারাইজ(বুস্ট)
			
			# 3 তুলে নাও। দূরত্ব সেন্সর ব্যবহার করে লক্ষ্যে যান
			drivetrain.turn_to_heading(180, DEGREES)
			যখন 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 এ ডিস্ক ড্রপ করুন। পরবর্তী ডিস্কের মুখোমুখি ঘুরুন
			ড্রাইভট্রেন.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 রোবট কখন লক্ষ্যের উপরে চলে গেছে তা নির্ধারণ করা হয়, যাতে ডিস্কটি ফেলে দেওয়া যায়।  ইউনিট ৮-এর কোড স্নিপেটে দুটি হাইলাইট করা while অবস্থা রয়েছে যা সেন্সর রিডিংয়ের উপর ভিত্তি করে রোবটের গতিবিধি নিয়ন্ত্রণ করে। প্রথম হাইলাইট করা অবস্থা, যদিও down_eye.near_object() নয়, রোবটটিকে এগিয়ে যাওয়ার নির্দেশ দেয় যতক্ষণ না ডাউন আই সেন্সর কাছাকাছি কোনও বস্তু সনাক্ত করে, এটি থামার আগে একটি ডিস্কের কাছে যেতে দেয়। দ্বিতীয় হাইলাইট করা অবস্থা, যেখানে front_distance.get_distance(MM) > 200, রোবটটিকে লক্ষ্যস্থলের 200 মিলিমিটারের মধ্যে না আসা পর্যন্ত এগিয়ে যেতে নির্দেশ দেয়, প্রক্সিমিটি পরিমাপের জন্য সামনের দূরত্ব সেন্সর ব্যবহার করে। এই while শর্তগুলি লুপ তৈরি করে যা রোবটকে কেবল তখনই থামাতে বাধ্য করে যখন প্রতিটি নির্দিষ্ট সেন্সর শর্ত পূরণ হয়।

প্রথমwhileলুপে, কোন কমান্ডগুলি চালানো হবে তা নির্বাচন ডাউন আই সেন্সর দ্বারা রিপোর্ট করা সেন্সর মানের উপর ভিত্তি করে করা হয়।

  • কোনো বস্তু শনাক্ত না করলেও, VR রোবট এগিয়ে যাবে।
  • যখন একটি বস্তু সনাক্ত করা হয়, তখন VR রোবট বন্ধ হয়ে যাবে।

দ্বিতীয়while লুপে, কোন কমান্ডটি চালানো হবে তা নির্বাচন করা হয় দূরত্ব সেন্সর দ্বারা রিপোর্ট করা সেন্সর মানের উপর ভিত্তি করে।

  • রিপোর্ট করা দূরত্ব 200 মিলিমিটার (মিমি) এর বেশি হলেও, ভিআর রোবটটি এগিয়ে যাবে।
  • রিপোর্ট করা দূরত্ব 50 মিলিমিটার (মিমি) এর কম হলেও, ভিআর রোবটটি গাড়ি চালানো বন্ধ করবে এবং ইলেক্ট্রোম্যাগনেটকে শক্তিশালী করতে প্রকল্পের পরবর্তী অংশে চলে যাবে।

পুনরাবৃত্তি

প্রকল্পটি পুনরাবৃত্তি, বা "লুপ" ব্যবহার করে, ক্রিয়াগুলি পুনরাবৃত্তি করতে এবং বারবার রিপোর্ট করা সেন্সর মানগুলি পরীক্ষা করে৷ এই প্রকল্পে নেস্টেড লুপ রয়েছে - একটি লুপ যাতে ভিআর রোবট একই রঙের তিনটি ডিস্ক সংগ্রহ করতে পারে; এবং খেলার মাঠের সমস্ত ডিস্ক সংগ্রহ করার জন্য সেই প্রক্রিয়াটি পুনরাবৃত্তি করার জন্য দ্বিতীয় লুপ। রোবটের ডিস্ক সংগ্রহ প্রক্রিয়া নিয়ন্ত্রণ করতে কোডটি দুটি নেস্টেড লুপ ব্যবহার করে। প্রতিটি রঙের ডিস্ক সংগ্রহের জন্য লুপ লেবেলযুক্ত বাইরের লুপটি প্রতিটি ডিস্ক রঙের মাধ্যমে পুনরাবৃত্তি করে। এর ভেতরে, "এক রঙের ৩টি ডিস্ক সংগ্রহ করতে লুপ" লেবেলযুক্ত ভেতরের লুপটি তিনবার পুনরাবৃত্তি করে বর্তমান রঙের তিনটি ডিস্ক সংগ্রহ করে স্থাপন করে। এই সেটআপটি নিশ্চিত করে যে রোবটটি পরবর্তী রঙে যাওয়ার আগে প্রতিটি রঙের তিনটি ডিস্ক সংগ্রহ করে, প্রতিটি লুপ পুনরাবৃত্তি পদ্ধতিগত সংগ্রহ এবং স্থান নির্ধারণের উপর দৃষ্টি নিবদ্ধ করে।

এই অ্যালগরিদমটি ডিস্ক মুভার চ্যালেঞ্জ সম্পূর্ণ করার জন্য তিনটি ডিস্ক সংগ্রহ এবং ফেরত দেওয়ার জন্য ডিজাইন করা হয়েছে। একই যুক্তি যা ক্রম, নির্বাচন এবং পুনরাবৃত্তি ব্যবহার করে বারবার ডিস্ক সংগ্রহ এবং সরানোর জন্য প্রয়োগ করা হয় তা ডায়নামিক ক্যাসল ক্র্যাশার চ্যালেঞ্জের মতো অন্যান্য চ্যালেঞ্জেও প্রয়োগ করা যেতে পারে।

প্রশ্ন

পাঠ কুইজ অ্যাক্সেস করতে নীচের একটি লিঙ্ক নির্বাচন করুন.

গুগল ডক / .ডকএক্স / .পিডিএফ