(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 ਉੱਚਤਮ ਮੁੱਲ ਦੇ ਅਨੁਸਾਰੀ x ਦਾ ਮੁੱਲ ਚੁਣਦੇ ਹਾਂ । Fibonacci