C++ இல் சீரற்ற தேடல் (Random Search) அல்காரிதம்- விளக்கம், எடுத்துக்காட்டு மற்றும் குறியீடு

ரேண்டம் சர்ச் அல்காரிதம் என்பது தேடல் இடத்திலிருந்து தீர்வுகளின் தொகுப்பைத் தோராயமாகத் தேர்ந்தெடுத்து, சிக்கலைத் தீர்க்க முடியுமா எனச் சரிபார்ப்பதை அடிப்படையாகக் கொண்ட ஒரு தேடல் முறையாகும். தேடலுக்கு வழிகாட்டும் குறிப்பிட்ட தகவல் அல்லது உத்தி எதுவும் இல்லாதபோது இந்த அணுகுமுறை பெரும்பாலும் பயன்படுத்தப்படுகிறது.

எப்படி இது செயல்படுகிறது

  1. துவக்கம்: தோராயமாக உருவாக்கப்பட்ட ஆரம்ப தீர்வுகளின் தொகுப்புடன் தொடங்கவும்.
  2. மதிப்பீடு: புறநிலை செயல்பாடு அல்லது மதிப்பீட்டு அளவுகோல்களின் அடிப்படையில் ஒவ்வொரு தீர்வின் தரத்தையும் மதிப்பீடு செய்யவும்.
  3. தேர்வு: நிகழ்தகவுகள் அல்லது சீரற்ற தேர்வின் அடிப்படையில் தொகுப்பிலிருந்து சிறந்த தீர்வுகளின் துணைக்குழுவைத் தேர்ந்தெடுக்கவும்.
  4. சோதனை: தேர்ந்தெடுக்கப்பட்ட தீர்வுகள் சிக்கலைத் தீர்க்கும் திறன் கொண்டவையா என்று சோதிக்கவும்.
  5. மீண்டும் செய்யவும்: திருப்திகரமான முடிவை அடையும் வரை அல்லது முன் வரையறுக்கப்பட்ட எண்ணிக்கையிலான மறு செய்கைகளை அடையும் வரை 2 முதல் 4 படிகளை மீண்டும் செய்யவும்.

எடுத்துக்காட்டு: Fibonacci செயல்பாட்டை மேம்படுத்துதல்

F(0) = 0, F(1) = 1 உடன் F(x) = F(x-1) + F(x-2) செயல்பாட்டின் தேர்வுமுறை சிக்கலைக் கவனியுங்கள். Fibonacci எதற்காக 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