Algartam Cuardaigh Heorastúil a Iniúchadh (Search Algorithm) i PHP

Is teicníocht chumhachtach é an t-algartam Heoristic Search i ríomhchlárú PHP a úsáidtear chun réitigh a aimsiú i spásanna cuardaigh casta agus móra trí chinntí eolasacha a dhéanamh bunaithe ar heuristics nó ar mhodhanna garbha. Tá an t-algartam seo an-úsáideach nuair a bhíonn cuardach uileghabhálach praiticiúil, agus nuair a bhíonn gá le réiteach éifeachtach ach beagnach optamach.

Conas a Oibríonn Algartam Cuardaigh Heoraíoch

Feidhmíonn an t-algartam Heoristic Search ag baint úsáide as heuristics, arb iad rialacha ordóg nó straitéisí a threoraíonn an cuardach i dtreo cosáin a d'fhéadfadh a bheith tuar dóchais inti. Baineann sé leis na céimeanna seo a leanas:

  1. Meastóireacht Heorastúil: Sanntar luach heorastúil do gach réiteach féideartha a dhéanann meastachán ar a inmhianaithe atá sé. Treoraíonn an luach seo an t-algartam chun na réitigh is bisiúla a roghnú.
  2. Straitéis Chuardaigh: Úsáideann an t-algartam straitéis chuardaigh, mar an Cuardach is Fearr den Chéad Uair nó an Cuardach A*, chun an spás cuardaigh a iniúchadh trí réitigh a bhfuil luachanna heorastúla níos airde acu a chur in ord tosaíochta.
  3. Gnóthachtáil Sprioc: Leanann an algartam dá chuardach go dtí go bhfaighidh sé réiteach a chomhlíonann na critéir atá ag teastáil nó go dtí go gcomhlíontar coinníoll foirceanta.

Buntáistí agus Míbhuntáistí Algartam Cuardaigh Heuristic

Buntáistí:

  • Éifeachtach le haghaidh Spásanna Móra: Tá cuardach heoraíoch éifeachtach i gcásanna nach féidir cuardach iomlán a dhéanamh ar an spás iomlán mar gheall ar a chastacht ríomhaireachtúil.
  • Réitigh Near-Optimal: Tá sé mar aidhm ag an algartam réitigh a aimsiú atá gar do bharrmhaith, fiú i spásanna fadhbanna casta agus nach dtuigeann go leor.

Míbhuntáistí:

  • Cáilíocht Réitigh: Seans nach ráthóidh modhanna heorastúla an réiteach is fearr, mar go bhfuil siad bunaithe ar mheastacháin agus ar thoimhdí.
  • Dearadh Heorastúil: Is féidir le heuristics éifeachtach a chruthú a bheith dúshlánach agus b’fhéidir go mbeadh gá le heolas fearainn.

Sampla agus Míniú

Smaoinigh ar fheidhmchlár nascleanúna a aimsíonn an bealach is giorra idir dhá shuíomh ar léarscáil. Is féidir an t-algartam A*, cineál cuardaigh heorastúil, a úsáid chun é seo a bhaint amach go héifeachtach.

class Node {  
    public $location;  
    public $heuristicValue;  // Estimated cost from current node to goal  
  
    public function __construct($location, $heuristicValue) {  
        $this->location = $location;  
        $this->heuristicValue = $heuristicValue;  
    }  
}  
  
function AStarSearch($start, $goal) {  
    $openSet = new SplPriorityQueue();  
    $openSet->insert(new Node($start, heuristic($start, $goal)), 0);  
  
    while(!$openSet->isEmpty()) {  
        $currentNode = $openSet->extract();  
  
        if($currentNode->location === $goal) {  
            return "Path found from $start to $goal.";  
        }  
  
        // Expand current node's neighbors and calculate heuristic values  
        // Add neighbors to openSet based on their heuristic values  
    }  
  
    return "Path not found from $start to $goal.";  
}  
  
function heuristic($node, $goal) {  
    // Calculate heuristic value(e.g., Euclidean distance)  
}  
  
$startLocation = "A";  
$goalLocation = "F";  
  
$result = AStarSearch($startLocation, $goalLocation);  
echo $result;  

Sa sampla seo, úsáideann an algartam A* feidhm heorastúil chun an fad ón suíomh reatha go dtí an suíomh sprice a mheas. Scrúdaíonn an algartam bealaí féideartha go héifeachtach trí bhreithniú a dhéanamh ar an gcostas chun an suíomh reatha a bhaint amach agus ar an gcostas measta don sprioc. Treoraíonn úsáid heuristics an t-algartam i dtreo na gcosán is bisiúla, agus mar thoradh air sin tá réiteach éifeachtach ach beagnach optamach.

Cé go léiríonn an sampla seo coincheap an chuardaigh heorastúil i gcomhthéacs phleanáil bealaigh, is féidir algartaim chuardaigh heorastúla a chur i bhfeidhm ar éagsúlachtaí