C++-এ স্থানীয় অনুসন্ধান (Local Search) অ্যালগরিদম- ব্যাখ্যা, উদাহরণ এবং কোড

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

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

  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) সর্বোচ্চ করা হয়েছে। আমরা স্থানীয় অনুসন্ধান পদ্ধতি ব্যবহার করতে পারি পুনরাবৃত্তভাবে প্রতিটি ধাপ থেকে আরও দূরে অন্বেষণ করতে।

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

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

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