(Random Search) C++-এ র্যান্ডম সার্চ অ্যালগরিদম- ব্যাখ্যা, উদাহরণ এবং কোড

র্যান্ডম অনুসন্ধান অ্যালগরিদম হল একটি অনুসন্ধান পদ্ধতি যা এলোমেলোভাবে অনুসন্ধান স্থান থেকে সমাধানের একটি সেট নির্বাচন করে এবং তারা সমস্যাটি সমাধান করতে পারে কিনা তা পরীক্ষা করে। এই পদ্ধতিটি প্রায়শই ব্যবহৃত হয় যখন অনুসন্ধান পরিচালনা করার জন্য কোন নির্দিষ্ট তথ্য বা কৌশল নেই।

কিভাবে এটা কাজ করে

  1. সূচনা: প্রাথমিক সমাধানগুলির একটি এলোমেলোভাবে তৈরি করা সেট দিয়ে শুরু করুন।
  2. মূল্যায়ন: বস্তুনিষ্ঠ ফাংশন বা মূল্যায়নের মানদণ্ডের উপর ভিত্তি করে প্রতিটি সমাধানের গুণমান মূল্যায়ন করুন।
  3. নির্বাচন: সম্ভাব্যতা বা এলোমেলো নির্বাচনের উপর ভিত্তি করে সেট থেকে সেরা সমাধানগুলির একটি উপসেট নির্বাচন করুন।
  4. পরীক্ষা: নির্বাচিত সমাধানগুলি সমস্যা সমাধান করতে সক্ষম কিনা তা পরীক্ষা করুন।
  5. পুনরাবৃত্তি করুন: একটি সন্তোষজনক ফলাফল অর্জন না হওয়া পর্যন্ত বা পূর্বনির্ধারিত সংখ্যক পুনরাবৃত্তি না হওয়া পর্যন্ত 2 থেকে 4 ধাপের মাধ্যমে পুনরাবৃত্তি করুন।

উদাহরণ: Fibonacci ফাংশন অপ্টিমাইজ করা

Fibonacci F(x) = F(x-1) + F(x-2) এর সাথে F(0) = 0, F(1) = 1 ফাংশনের অপ্টিমাইজেশন সমস্যাটি বিবেচনা করুন। আমরা x এর মান খুঁজে পেতে চাই যার জন্য F(x) সর্বোচ্চ করা হয়েছে। র‍্যান্ডম অনুসন্ধান পদ্ধতি এলোমেলোভাবে x এর মান নির্বাচন করতে পারে, প্রতিটি x-এ মান গণনা করতে পারে এবং প্রাপ্ত Fibonacci সর্বোচ্চ মানের সাথে x-এর মান নির্বাচন করতে পারে। Fibonacci

C++ এ কোডের উদাহরণ

#include <iostream>  
#include <cstdlib>  
#include <ctime>  
  
int fibonacci(int n) {  
    if(n <= 0) return 0;  
    if(n == 1) return 1;  
    return fibonacci(n- 1) + fibonacci(n- 2);  
}  
  
int randomSearchFibonacci(int maxIterations) {  
    int bestX = 0;  
    int bestValue = 0;  
  
    srand(time(0));  
  
    for(int i = 0; i < maxIterations; ++i) {  
        int x = rand() % maxIterations;  
        int value = fibonacci(x);  
        if(value > bestValue) {  
            bestValue = value;  
            bestX = x;  
        }  
    }  
  
    return bestX;  
}  
  
int main() {  
    int maxIterations = 20;  
    int result = randomSearchFibonacci(maxIterations);  
  
    std::cout << "Optimal x for maximum Fibonacci value: " << result << std::endl;  
  
    return 0;  
}  

এই উদাহরণে, আমরা ফাংশনটি অপ্টিমাইজ করতে র্যান্ডম অনুসন্ধান পদ্ধতি ব্যবহার করি Fibonacci । আমরা এলোমেলোভাবে x এর মান নির্বাচন করি, প্রতিটি x এ মান গণনা করি Fibonacci এবং তারপরে Fibonacci আমাদের গণনা করা সর্বোচ্চ মানের সাথে সম্পর্কিত x এর মান নির্বাচন করি।