(Graph Search) PHP இல் வரைபடத் தேடல் அல்காரிதத்தை ஆராய்கிறது

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

வரைபடத் தேடல் அல்காரிதம் எவ்வாறு செயல்படுகிறது

வரைபடத் தேடல் அல்காரிதம் என்பது குறிப்பிட்ட தகவலைத் தேட வரைபடத்தின் செங்குத்துகள் மற்றும் விளிம்புகளைக் கடந்து செல்வதை உள்ளடக்குகிறது.

  1. மூல வெர்டெக்ஸில் இருந்து தொடங்குதல்: அல்காரிதம் ஒரு மூல உச்சியில் தொடங்கி, விரும்பிய இலக்கு உச்சி அல்லது பாதையைத் தேட, விளிம்புகள் வழியாக அடுத்தடுத்த செங்குத்துகள் வழியாகச் செல்கிறது.
  2. அகலம்-முதல் தேடல்(BFS) அல்லது ஆழம்-முதல் தேடல்(DFS): இந்த வழிமுறைக்கு இரண்டு முக்கிய அணுகுமுறைகள் உள்ளன: அகலம்-முதல் தேடல்(BFS) மற்றும் ஆழம்-முதல் தேடல்(DFS). BFS அடுத்த நிலைக்குச் செல்வதற்கு முன் அருகிலுள்ள செங்குத்துகளைத் தேடுகிறது, அதே சமயம் DFS பின்வாங்குவதற்கு முன் ஒரு கிளையை ஆழமாக ஆராய்கிறது.
  3. இலக்கு வெர்டெக்ஸைச் சரிபார்க்கிறது: விரும்பிய இலக்கு உச்சி அல்லது உறவு இருக்கிறதா என்பதை அல்காரிதம் சரிபார்க்கிறது. கண்டறியப்பட்டால், அல்காரிதம் பொருத்தமான முடிவு அல்லது பாதையை வழங்கும்.

வரைபடத் தேடல் அல்காரிதத்தின் நன்மைகள் மற்றும் தீமைகள்

நன்மைகள்:

  • இணைப்பு மற்றும் பாதைக் கண்டுபிடிப்பு: இந்த வழிமுறையானது வரைபடத்தில் உள்ள செங்குத்துகளுக்கு இடையே இணைப்புகள் அல்லது பாதைகளைக் கண்டறிய உதவுகிறது.
  • குறுகிய பாதை கண்டறிதல்: தூர மாறியைப் பயன்படுத்தும் போது, ​​அல்காரிதம் செங்குத்துகளுக்கு இடையே உள்ள குறுகிய பாதையை தீர்மானிக்க முடியும்.

தீமைகள்:

  • செயல்திறன் வரைபட அமைப்பைப் பொறுத்தது: அல்காரிதத்தின் செயல்திறன் வரைபடத்தின் அமைப்பு மற்றும் அளவைப் பொறுத்தது.
  • வரையறுக்கப்பட்ட தேடல் திறன்: பெரிய மற்றும் சிக்கலான வரைபடங்களைக் கையாளும் போது அல்காரிதம் குறைவாக இருக்கலாம்.

எடுத்துக்காட்டு மற்றும் விளக்கம்

நீங்கள் பயனர்களுடன் ஒரு சமூக வலைப்பின்னல் மற்றும் அவர்களின் உறவுகள் வரைபடமாக குறிப்பிடப்படுவதை கற்பனை செய்து பாருங்கள். பயனர் A மற்றும் பயனர் B க்கு இடையே இணைப்பு உள்ளதா என்பதை நீங்கள் தீர்மானிக்க வேண்டும். PHP இல் வரைபடத் தேடல் அல்காரிதத்தை எவ்வாறு செயல்படுத்தலாம் என்பதற்கான எடுத்துக்காட்டு இங்கே:

$graph = array(  
    'A' => array('B', 'C'),  
    'B' => array('A', 'D'),  
    'C' => array('A', 'E'),  
    'D' => array('B'),  
    'E' => array('C', 'F'),  
    'F' => array('E')  
);  
  
$startNode = 'A';  
$endNode = 'B';  
  
function searchGraph($graph, $start, $end) {  
    $visited = array();  
    $queue = new SplQueue();  
    $queue->enqueue($start);  
  
    while(!$queue->isEmpty()) {  
        $node = $queue->dequeue();  
  
        if(!isset($visited[$node])) {  
            $visited[$node] = true;  
  
            if($node === $end) {  
                return true;  
            }  
  
            foreach($graph[$node] as $neighbor) {  
                if(!isset($visited[$neighbor])) {  
                    $queue->enqueue($neighbor);  
                }  
            }  
        }  
    }  
  
    return false;  
}  
  
if(searchGraph($graph, $startNode, $endNode)) {  
    echo "There is a connection between $startNode and $endNode.";  
} else {  
    echo "There is no connection between $startNode and $endNode.";  
}  

இந்த எடுத்துக்காட்டில், நெட்வொர்க்கில் உள்ள இரண்டு பயனர்களுக்கு இடையே ஒரு பாதையைத் தேடுவதை உருவகப்படுத்த ஒரு வரிசையைப் பயன்படுத்தி ஒரு மெய்நிகர் சமூக வலைப்பின்னலை உருவாக்குகிறோம். பயனர் A மற்றும் பயனர் B க்கு இடையேயான தொடர்பைக் கண்டறிய, செங்குத்துகள் மற்றும் விளிம்புகள் வழியாகப் பயணிக்க, அகலம்-முதல் தேடல்(BFS) முறையைப் பயன்படுத்துகிறோம். இணைப்பு கண்டறியப்பட்டால், இரண்டு பயனர்களுக்கு இடையே ஒரு உறவு இருப்பதை அல்காரிதம் வழங்கும்; இல்லையெனில், எந்த உறவும் இல்லை என்று தெரிவிக்கிறது.

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