Algoritme van Bellman-Ford

Dit artikel gaat in op het onderwerp Algoritme van Bellman-Ford, dat op verschillende gebieden onderwerp van belangstelling en discussie is geweest. Algoritme van Bellman-Ford heeft de aandacht getrokken van onderzoekers, experts en het grote publiek vanwege zijn relevantie in de huidige context. Om een ​​alomvattend en gedetailleerd beeld van Algoritme van Bellman-Ford te geven, zullen relevante aspecten, historische achtergrond, toekomstperspectieven en mogelijke implicaties worden geanalyseerd. Deze verkenning zal ons in staat stellen het belang van Algoritme van Bellman-Ford in de huidige samenleving en de invloed ervan op verschillende gebieden te begrijpen. In het hele artikel zullen verschillende benaderingen, meningen en empirisch bewijsmateriaal worden onderzocht die zullen bijdragen aan het verrijken van het begrip van Algoritme van Bellman-Ford en de implicaties ervan.

Het algoritme van Bellman-Ford is een graaf-algoritme dat, voor een gegeven knoop van een gerichte, gewogen graaf, de kortste route naar alle knopen van die graaf bepaalt. Het kortstepad-algoritme, ook bekend als het algoritme van Dijkstra, lost dit probleem sneller op, maar dat algoritme kan alleen bij een graaf met niet-negatieve gewichten worden gebruikt. Het algoritme van Bellman-Ford wordt dus in de praktijk alleen gebruikt bij een graaf met negatieve gewichten. Het algoritme van Bellman-Ford kan namelijk een negatieve cirkel opsporen. Het algoritme is naar de ontwikkelaars ervan genoemd, Richard Bellman en Lester Ford.

Algoritme

De invoer van het algoritme bestaat uit een gewogen graaf, gegeven door

  • een verzameling knopen (van het Engelse vertices),
  • een verzameling zijden (van het Engelse edges),
  • een afbeelding die aan elke zijde een gewicht toekent, en uit
  • een startknoop .

Het algoritme bepaalt de kortste paden van naar de andere knopen.

In het onderstaande algoritme is:

  • het aantal knopen in de verzameling ,
  • een afbeelding die aan elke knoop een afstand vanaf de startknoop toekent, en
  • een partiële afbeelding die aan elke knoop een voorganger toekent.

De afbeeldingen en worden tijdens het uitvoeren van het algoritme opgebouwd.

 01  voor elke                
 02      , 
 03  
 
 04  herhaal  keer              
 05      voor elke 
 06          als  dan
 07              
 08              
   
 09  voor elke         
 10      als  dan
 11      STOP met uitkomst "Er is een negatieve cirkel"
 
 12  uitkomst  en 

Als het algoritme klaar is en er geen cirkel met negatieve afstand is gevonden, levert voor iedere knoop kortste afstand van naar die knoop en kunnen met behulp van de routes met het minste gewicht worden bepaald.

In plaats van gehele getallen () kunnen ook andere soorten getallen als gewichten worden gebruikt, bijvoorbeeld rationale getallen ().