(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 ، اور حاصل کردہ اعلیٰ ترین Fibonacci قدر کے مطابق x کی قدر کا انتخاب کر سکتا ہے۔

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 ، اور پھر x کی قیمت کا انتخاب کرتے ہیں جو Fibonacci ہم نے شمار کی گئی بلند ترین قدر سے مماثل ہے۔