Pad­zoe­kal­go­rit­men behoren tot de bekendste en meest gebruikte al­go­rit­men. We laten zien hoe padzoeken werkt en waarvoor het wordt gebruikt.

Wat is pa­thfin­ding?

Pa­thfin­ding, ook wel wayfin­ding genoemd, is een fun­da­men­teel probleem in de in­for­ma­ti­ca. Het gaat om het vinden van de kortste of meest ef­fi­ci­ën­te route tussen twee punten. Pa­thfin­ding-al­go­rit­men zijn van cruciaal belang in tal van toe­pas­sings­sce­na­rio’s en er zijn veel ver­schil­len­de al­go­rit­men be­schik­baar om dit probleem aan te pakken.

Hoe pa­thfin­ding werkt en waarvoor het wordt gebruikt

Om een pa­thfin­ding-algoritme te starten, wordt het probleem doorgaans weer­ge­ge­ven als een grafiek of raster. Een grafiek bestaat uit knoop­pun­ten die met elkaar verbonden zijn door randen, zoals een stroom­di­a­gram. Als al­ter­na­tief kan een raster worden gebruikt, een twee­di­men­si­o­na­le reeks cellen zoals een schaak­bord. De knoop­pun­ten of cellen ver­te­gen­woor­di­gen locaties in de pro­bleem­ruim­te en de randen of aan­gren­zen­de cellen ver­te­gen­woor­di­gen de mogelijke paden tussen deze locaties. Pad­zoe­kal­go­rit­men maken gebruik van een reeks tech­nie­ken om het pad tussen twee punten te ontdekken zodra het probleem is weer­ge­ge­ven als een grafiek of raster. Deze al­go­rit­men zijn doorgaans gericht op het iden­ti­fi­ce­ren van het kortste of minst kostbare pad, terwijl ze ook zo efficiënt mogelijk zijn.

Pa­thfin­ding-al­go­rit­men hebben vele toe­pas­sin­gen in de in­for­ma­ti­ca, waaronder:

  • Robotica: Pa­thfin­ding-al­go­rit­men worden gebruikt om autonome robots te helpen bij het navigeren in complexe om­ge­vin­gen. Denk bij­voor­beeld aan zelf­rij­den­de auto’s of slimme stof­zui­gers die zelf­stan­dig door het huis navigeren.
  • Vi­deo­ga­mes: In vi­deo­ga­mes worden pa­thfin­ding-al­go­rit­men gebruikt om de be­we­gin­gen van niet-speelbare per­so­na­ges (NPC’s) te besturen. In een realtime stra­te­gie­spel worden pa­thfin­ding-al­go­rit­men ook gebruikt als je klikt om eenheden naar de vij­an­de­lij­ke basis te sturen.
  • Logistiek: Pa­thfin­ding-al­go­rit­men worden in de logistiek gebruikt om de meest ef­fi­ci­ën­te manier te vinden om goederen of mensen te vervoeren.
  • Ver­keers­plan­ning: Pa­thfin­ding-al­go­rit­men worden gebruikt om de beste routes voor het verkeer in een stad te plannen en files te vermijden.
  • Net­werk­rou­te­ring: In com­pu­ter­net­wer­ken worden pa­thfin­ding-al­go­rit­men gebruikt om de snelste route te vinden voor ge­ge­vens­over­dracht tussen ver­schil­len­de net­werk­knoop­pun­ten. Laten we enkele mogelijke toe­pas­sin­gen van pa­thfin­ding in detail bekijken.

Paden zoeken in de logistiek

Pa­thfin­ding in de logistiek gaat over het vinden van de beste route voor het vervoeren van goederen. Een optimale route mi­ni­ma­li­seert de kosten en reistijd en ga­ran­deert te­ge­lij­ker­tijd de vei­lig­heid van de vervoerde producten. Pa­thfin­ding in de logistiek is dus een cruciaal in­stru­ment voor het op­ti­ma­li­se­ren van het goe­de­ren­ver­voer en het verlagen van de kosten.

Laten we aan de hand van een aantal voor­beel­den il­lu­stre­ren hoe pa­thfin­ding wordt gebruikt in de logistiek:

  • Voer­tuig­rou­ting: In het vracht­ver­voer op­ti­ma­li­se­ren rou­te­al­go­rit­men de route van be­stel­wa­gens. Het algoritme houdt rekening met factoren zoals afstand, ver­keers­om­stan­dig­he­den en le­ve­rings­ter­mij­nen om de meest ef­fi­ci­ën­te route te bepalen.
  • Voor­raad­be­heer: Pa­thfin­ding wordt gebruikt in voor­raad­be­heer of ma­ga­zijn­be­heer om de plaatsing van goederen te op­ti­ma­li­se­ren. Dit zorgt ervoor dat goederen op optimale posities worden op­ge­sla­gen. Dit ver­min­dert de in­span­ning en tijd die nodig is voor het ophalen en afleveren van goederen.
  • Supply chain ma­na­ge­ment: Pa­thfin­ding-al­go­rit­men worden gebruikt om de hele supply chain te op­ti­ma­li­se­ren, van de oorsprong tot de levering. Dit zorgt ervoor dat producten zo efficiënt en kos­ten­ef­fec­tief mogelijk worden vervoerd.

Pa­thfin­ding in vi­deo­ga­mes

Pa­thfin­ding is een cruciale techniek voor het creëren van mee­sle­pen­de en re­a­lis­ti­sche spel­we­rel­den in vi­deo­ga­mes. Het stelt niet-speelbare per­so­na­ges (NPC’s) en eenheden in staat om zich efficiënt en re­a­lis­tisch door de spel­we­reld te bewegen. Pa­thfin­ding-al­go­rit­men worden gebruikt om het optimale pad voor NPC-be­we­gin­gen te iden­ti­fi­ce­ren en te­ge­lij­ker­tijd obstakels en andere gevaren te vermijden, zodat een naadloze en ple­zie­ri­ge gameplay wordt ge­ga­ran­deerd.

In vi­deo­ga­mes wordt pa­thfin­ding onder andere gebruikt voor de volgende taken:

  • Vijandige NPC’s: Pa­thfin­ding wordt gebruikt om het gedrag van vijandige NPC’s te con­tro­le­ren. Hierdoor kunnen NPC’s de speler volgen terwijl ze obstakels en andere gevaren vermijden.
  • Een­heids­con­tro­le: Pa­thfin­ding con­tro­leert de be­we­gin­gen van vrien­de­lij­ke eenheden in de spel­we­reld. Dit kan onder meer het be­ge­lei­den van NPC’s naar hun be­stem­ming of het volgen van het personage van de speler omvatten.
  • Ob­sta­kel­pre­ven­tie: Pa­thfin­ding-al­go­rit­men zorgen ervoor dat eenheden obstakels zoals muren, kliffen of andere gevaren vermijden.
  • Kaart-/le­vel­ge­ne­ra­tie: Pa­thfin­ding-al­go­rit­men worden ook gebruikt voor het pro­ce­du­reel genereren van kaarten of levels. Hierdoor kunnen re­a­lis­ti­sche en ge­va­ri­eer­de spel­we­rel­den worden gecreëerd.

Pad­be­pa­ling in net­werk­rou­te­ring

Pa­thfin­ding wordt gebruikt in net­werk­rou­ting om optimale paden voor da­tapak­ket­ten door een netwerk te vinden. Met pa­thfin­ding-al­go­rit­men kunnen net­werk­be­heer­ders de net­werk­pres­ta­ties ver­be­te­ren op basis van de spe­ci­fie­ke om­stan­dig­he­den. Het wordt gebruikt in ver­schil­len­de net­werk­rou­ting­toe­pas­sin­gen, waaronder:

  • Ver­keers­en­gi­nee­ring: Pa­thfin­ding-al­go­rit­men op­ti­ma­li­se­ren het net­werk­ver­keer en mi­ni­ma­li­se­ren congestie. Door de net­werk­t­o­po­lo­gie en ver­keers­pa­tro­nen te ana­ly­se­ren, kunnen pa­thfin­ding-al­go­rit­men de meest ef­fi­ci­ën­te paden voor da­tapak­ket­ten door het netwerk iden­ti­fi­ce­ren.
  • Kwaliteit van de dienst­ver­le­ning (QoS): Pa­thfin­ding-al­go­rit­men worden ook gebruikt om net­werk­ver­keer te pri­o­ri­te­ren op basis van Quality of Service (QoS)-vereisten. Zo krijgen tijd­kri­ti­sche gegevens, zoals Voice over IP (VoIP) of vi­deo­st­reams, voorrang bij het routeren door het netwerk. Pri­o­ri­te­ring is ge­ïn­te­greerd in de kos­ten­func­tie als onderdeel van pa­thfin­ding-al­go­rit­men.
  • Load balancing: Speciaal aan­ge­pas­te pa­thfin­ding-al­go­rit­men worden gebruikt om net­werk­ver­keer over meerdere paden te verdelen. Door middel van load balancing helpen pa­thfin­ding-al­go­rit­men de net­werk­pres­ta­ties te ver­be­te­ren en het risico op congestie te ver­min­de­ren.
  • Be­trouw­baar­heid: Pa­thfin­ding-al­go­rit­men worden gebruikt om al­ter­na­tie­ve paden voor de ge­ge­vens­stroom te vinden in geval van net­werk­sto­rin­gen. Dit zorgt ervoor dat ge­ge­vens­pak­ket­ten be­trouw­baar worden af­ge­le­verd als een net­werk­com­po­nent uitvalt.

Wegwijzer in ver­keers­plan­ning

Pa­thfin­ding wordt in het transport gebruikt om de ver­keers­stroom te op­ti­ma­li­se­ren en congestie te ver­min­de­ren. Pa­thfin­ding-al­go­rit­men helpen ver­keers­in­ge­ni­eurs bij het ontwerpen van ef­fi­ci­ën­te ver­keers­net­wer­ken en het ont­wik­ke­len van stra­te­gie­ën om de ver­keers­stroom te ver­be­te­ren. Enkele van de be­lang­rijk­ste toe­pas­sin­gen van pa­thfin­ding in het transport zijn:

  • Rou­te­plan­ning: Pa­thfin­ding-al­go­rit­men worden gebruikt om optimale routes voor voer­tui­gen te plannen, waarbij drukke gebieden worden vermeden. Dit verbetert de door­stro­ming van het verkeer en ver­min­dert ver­tra­gin­gen.
  • Op­ti­ma­li­sa­tie van ver­keers­lich­ten: Pa­thfin­ding-al­go­rit­men kunnen worden gebruikt om de scha­ke­ling van ver­keers­lich­ten te op­ti­ma­li­se­ren op basis van ver­keers­pa­tro­nen en ver­keers­vraag. Het syn­chro­ni­se­ren van ver­keers­lich­ten en het aanpassen van schema’s kan de ver­keers­door­stro­ming ver­be­te­ren.
  • Eve­ne­men­ten­be­heer: Pa­thfin­ding-al­go­rit­men worden gebruikt om al­ter­na­tie­ve routes voor voer­tui­gen te iden­ti­fi­ce­ren in geval van on­ge­val­len of weg­af­slui­tin­gen. Op deze manier helpt pa­thfin­ding om congestie te ver­min­de­ren en de ver­keers­door­stro­ming in de getroffen gebieden te ver­be­te­ren.
  • Openbaar vervoer: Pa­thfin­ding-al­go­rit­men kunnen worden gebruikt om routes en dienst­re­ge­lin­gen van het openbaar vervoer te op­ti­ma­li­se­ren. Dit kan de ef­fi­ci­ën­tie van open­baar­ver­voer­sys­te­men helpen ver­be­te­ren en ver­keers­op­stop­pin­gen ver­min­de­ren.

Welke pa­thfin­ding-al­go­rit­men zijn er?

De com­plexi­teit van pa­thfin­ding ontstaat door de be­per­kin­gen van de spe­ci­fie­ke pro­bleem­ruim­te. Dit betekent dat pa­thfin­ding-al­go­rit­men rekening moeten houden met alle obstakels die het directe pad blokkeren en met de kosten die gepaard gaan met het navigeren door de ruimte. Kosten kunnen mul­ti­di­men­si­o­naal zijn, zoals de afweging tussen ener­gie­zui­ni­ge paden die een langere reistijd vereisen versus snellere routes die meer energie vergen. In bepaalde gevallen moeten bepaalde punten in het pad worden opgenomen, en pa­thfin­ding-al­go­rit­men zorgen ervoor dat de gebruiker niet in cirkels blijft lopen wanneer hij door de ruimte navigeert. Doorgaans is het doel van pa­thfin­ding-al­go­rit­men om zo efficiënt mogelijk een optimaal pad te iden­ti­fi­ce­ren, met name wanneer realtime pa­thfin­ding vereist is.

Enkele veel­ge­bruik­te al­go­rit­men voor het vinden van paden zijn:

  • Breedte-eerst zoeken (BFS): Dit algoritme on­der­zoekt alle naburige knoop­pun­ten van het startpunt voordat het naar het volgende niveau van knoop­pun­ten gaat, totdat het doel is bereikt.
  • Dijkstra-algoritme: Dit algoritme verkent de grafiek door eerst een onverkend knooppunt te bezoeken dat het dichtst bij het startpunt ligt en ver­vol­gens her­haal­de­lijk de afstand van alle knoop­pun­ten vanaf het startpunt bij te werken totdat het doel is bereikt.
  • A* zoek­op­dracht: Dit algoritme com­bi­neert de ideeën van BFS en het algoritme van Dijkstra door een heu­ris­ti­sche functie te gebruiken om de zoek­op­dracht naar het doel­knoop­punt te leiden.
  • Greedy best-first search: Dit algoritme se­lec­teert het volgende te verkennen knooppunt op basis van een heu­ris­ti­sche schatting van de afstand tot het doel­knoop­punt.
  • Bi­di­rec­ti­o­ne­le zoek­op­dracht: dit algoritme zoekt te­ge­lij­ker­tijd vanuit zowel het start- als het be­stem­mings­knoop­punt naar het midden van de grafiek om de kortste weg tussen beide te bepalen.
Ga naar hoofdmenu