Greedy methods guarantee an optimal solution when:
A
Overlapping subproblems exist
B
Problems have optimal substructure and greedy choice property
C
Divide and conquer can be applied
D
Subproblems are independent
উত্তরের বিবরণ
Greedy Algorithm হলো এমন একটি কৌশল যা প্রতিটি ধাপে স্থানীয়ভাবে সর্বোত্তম (locally optimal) পছন্দ গ্রহণ করে, আশা করা হয় এই ধারাবাহিক নির্বাচনের মাধ্যমে সামগ্রিকভাবে সর্বোত্তম (globally optimal) সমাধানে পৌঁছানো যাবে।
মূল তথ্যসমূহ:
-
কার্যপদ্ধতি: Greedy অ্যালগরিদম প্রতিটি ধাপে এমন সিদ্ধান্ত নেয় যা সেই মুহূর্তে সবচেয়ে ভালো মনে হয়, এবং পূর্ববর্তী সিদ্ধান্ত পরিবর্তন না করেই পরবর্তী ধাপ এগিয়ে চলে।
-
সর্বোত্তম সমাধান নিশ্চিতে দুটি মূল বৈশিষ্ট্য প্রয়োজন:
-
Optimal Substructure: একটি সমস্যার সর্বোত্তম সমাধান তার সাবপ্রবলেমগুলোর সর্বোত্তম সমাধান থেকে গঠিত হতে পারে।
-
উদাহরণ: Shortest path problem, যেখানে ছোট ছোট পথে সর্বোত্তম সিদ্ধান্ত নিয়ে পুরো পথের সর্বনিম্ন মান পাওয়া যায়।
-
-
Greedy Choice Property: প্রতিটি ধাপে স্থানীয়ভাবে সেরা পছন্দ (locally optimal choice) করলে সেটি শেষ পর্যন্ত গ্লোবাল অপ্টিমাম সমাধানে পৌঁছায়।
-
ভুল বিকল্পসমূহ:
-
ক) Overlapping subproblems: এটি Dynamic Programming-এর বৈশিষ্ট্য, Greedy নয়।
-
গ) Divide and Conquer: এটি সমস্যাকে স্বাধীন অংশে ভাগ করে, Greedy এই পদ্ধতি অনুসরণ করে না।
-
ঘ) Independent subproblems: এটি DP বা Divide and Conquer-এর জন্য উপযুক্ত, Greedy নয়।
অতএব, Greedy অ্যালগরিদমের কার্যকারিতা নিশ্চিত করতে সমস্যায় থাকতে হবে Optimal Substructure এবং Greedy Choice Property, তাই সঠিক উত্তর খ)।

0
Updated: 2 days ago
In machine learning, supervised learning means:
Created: 2 days ago
A
Training with unlabeled data
B
No training is required
C
Training with labeled data
D
Only reinforcement signals are used
Supervised Learning হলো এমন একধরনের মেশিন লার্নিং পদ্ধতি যেখানে লেবেলযুক্ত (labeled) ডেটা ব্যবহার করে মডেলকে প্রশিক্ষিত করা হয়। এতে ইনপুট ও আউটপুট দুটোই আগে থেকে জানা থাকে, এবং মডেল সেই সম্পর্ক শিখে নেয়।
মূল তথ্যসমূহ:
-
প্রশিক্ষণ প্রক্রিয়া: মডেলকে এমন ডেটাসেটে প্রশিক্ষণ দেওয়া হয় যেখানে প্রতিটি ইনপুটের সাথে সঠিক আউটপুট (label) নির্ধারিত থাকে।
-
উদ্দেশ্য: ইনপুট থেকে সঠিক আউটপুট পূর্বানুমান করার মতো ম্যাপিং (mapping) শেখানো।
-
উদাহরণ:
-
Classification: যেমন—ইমেইল স্প্যাম কিনা তা নির্ধারণ করা (spam/not spam)।
-
Regression: যেমন—বাড়ির বৈশিষ্ট্যের উপর ভিত্তি করে মূল্য অনুমান করা।
-
ভুল বিকল্পসমূহ:
-
ক) লেবেলবিহীন ডেটা দিয়ে প্রশিক্ষণ → এটি Unsupervised Learning-এর বৈশিষ্ট্য।
-
খ) কোনো প্রশিক্ষণের প্রয়োজন নেই → ভুল; Supervised Learning সর্বদা ট্রেনিং প্রয়োজন করে।
-
ঘ) শুধু Reinforcement Signal ব্যবহৃত হয় → এটি Reinforcement Learning-এর বৈশিষ্ট্য, Supervised নয়।

0
Updated: 2 days ago
Which data structure allows insertion at one end and deletion at the other end?
Created: 2 days ago
A
Stack
B
Tree
C
Queue
D
Graph
Queue হলো একটি FIFO (First In, First Out) ভিত্তিক ডেটা স্ট্রাকচার, যেখানে প্রথমে প্রবেশ করা উপাদানটি সবার আগে বের হয়। এটি এমনভাবে কাজ করে যাতে এক প্রান্তে ইনসার্ট (rear বা enqueue) এবং অন্য প্রান্ত থেকে ডিলিট (front বা dequeue) করা হয়।
মূল তথ্যসমূহ:
-
Insertion (Enqueue): নতুন উপাদান সবসময় queue-এর পেছনের প্রান্তে (rear) যোগ হয়।
-
Deletion (Dequeue): উপাদান মুছে ফেলা হয় queue-এর সামনের প্রান্ত (front) থেকে।
-
ব্যবহার: Queue ব্যবহৃত হয় job scheduling, printer buffer, CPU task management, এবং network packet handling-এর মতো ক্ষেত্রে।
ভুল বিকল্পসমূহ:
-
ক) Stack: এটি LIFO (Last In, First Out), অর্থাৎ ইনসার্ট ও ডিলিট একই প্রান্তে ঘটে।
-
খ) Tree: এটি একটি hierarchical structure, যেখানে parent-child সম্পর্ক থাকে, FIFO নয়।
-
ঘ) Graph: এটি নোডগুলোর মধ্যে সম্পর্ক প্রদর্শন করে, কিন্তু কোনো নির্দিষ্ট লিনিয়ার ইনসার্ট/ডিলিট কাঠামো অনুসরণ করে না।
অতএব, যেখানে এক প্রান্তে ইনসার্ট এবং অন্য প্রান্তে ডিলিট হয়, সেটি হলো Queue — সঠিক উত্তর গ) Queue।

0
Updated: 2 days ago
To solve a problem using recursion we should use a:
Created: 2 days ago
A
Linked list
B
Stack
C
Queue
D
Array
Recursion হলো এমন একটি প্রোগ্রামিং কৌশল যেখানে একটি ফাংশন নিজেকে নিজেই কল করে। প্রতিটি কলের সময় প্রোগ্রামকে সেই কল সম্পর্কিত তথ্য—যেমন লোকাল ভেরিয়েবল, রিটার্ন অ্যাড্রেস, ও প্যারামিটার—সংরক্ষণ করতে হয় যাতে ফাংশন সম্পূর্ণ হলে ঠিক জায়গায় ফিরে আসতে পারে।
মূল তথ্যসমূহ:
-
Stack ব্যবহারের কারণ: এই তথ্যগুলো সংরক্ষণের জন্য ব্যবহৃত হয় একটি Call Stack, যা একটি LIFO (Last In, First Out) কাঠামো অনুসরণ করে।
-
কাজের প্রক্রিয়া:
-
Function Call: প্রতিটি কলের সময় একটি stack frame তৈরি হয়ে stack-এর উপরে push হয়।
-
Recursive Calls: প্রতিটি নতুন recursive কলের জন্য নতুন ফ্রেম push হয়।
-
Return: যখন ফাংশন শেষ হয়, তখন সংশ্লিষ্ট ফ্রেমটি stack থেকে pop হয়ে প্রোগ্রাম পূর্বাবস্থায় ফিরে আসে।
-
-
এই প্রক্রিয়াই recursion-কে সঠিকভাবে কার্যকর ও ট্র্যাকযোগ্য করে তোলে।
ভুল বিকল্পসমূহ:
-
ক) Linked List: ডেটা সংরক্ষণে ব্যবহৃত হয়, কিন্তু recursion-এর স্বাভাবিক কাঠামো নয়।
-
গ) Queue: এটি FIFO (First In, First Out) ক্রমে কাজ করে, যেখানে recursion-এর জন্য LIFO প্রয়োজন।
-
ঘ) Array: ডেটা সংরক্ষণে পারে, কিন্তু এটি ডাইনামিক ফাংশন কল স্ট্রাকচার পরিচালনা করতে সক্ষম নয়।
অতএব, recursion পরিচালনায় stack ব্যবহৃত হয়, যা প্রতিটি ফাংশন কলের ট্র্যাক রাখে এবং সঠিক ক্রমে এক্সিকিউশন নিশ্চিত করে।

0
Updated: 2 days ago