Vous êtes sur la page 1sur 20

REPUBLIQUE DU CAMEROUN REPUBLIC OF CAMEROON

Paix-Travail-Patrie Peace-Work-Fatherland

UNIVERSITÉ DE YAOUNDE I UNIVERSITY OF YAOUNDE I

ÉCOLE NATIONALE SUPERIEURE NATIONAL ADVANCED SCHOOL


POLYTECHNIQUE OF ENGINNERING

Département de Génie Civil et Department of Civil Engineering and


Urbanism
Urbanisme

GCU 451 : Recherche Opérationnelle


Thème : Algorithme de Ford

Membre du groupe 4 :

 MBOUSSI ABOKO Boris Hervé (11P137))


Responsable de l’UE :
 MBUNDA Louisa CHONDE (16P166)
 ONANA MOUTASSI Christian (16P142)

Professeur Thomas Tamo Tatietse

Polytechnicien (XY, Ing, PhD, HDR)

Professeur Titulaire des Universités

Année Scolaire 2019-2020


Table des matières :
.......................................................................................................................................... 5
.............................................................................. 6
1) QUELQUES RAPPELS SUR LES GRAPHES ET CONCEPTS ORIENTÉS : ........................................ 6
a) Produit cartésien et carré cartésien :................................................................................... 6
b) Application univoque :............................................................................................................ 6
c) Application multivoque : ....................................................................................................... 6
d) Graphe : ...................................................................................................................................... 6
e) Arcs : ............................................................................................................................................. 7
f) Chemin : ...................................................................................................................................... 7
g) Circuit : ........................................................................................................................................ 8
h) Valuation de graphe : ............................................................................................................. 8
i) Longueur d’un chemin : .......................................................................................................... 8
j) Écart entre deux sommets 𝒅(𝒙, 𝒚) : ....................................................................................... 8
2) ALGORITHMES POUR LA RECHERCHE DU PLUS COURT CHEMIN D’UN SOMMET À TOUS LES
AUTRES : CAS GÉNÉRAL .......................................................................................................................... 9
a) Motivation : ................................................................................................................................ 9
b) Algorithme de Ford : ................................................................................................................ 9
...................................................... 10
......................................... 11
1) AVANTAGES :................................................................................................................................... 11
2) INCONVÉNIENTS : ........................................................................................................................... 11
........................................................................ 12
1) VERSION RÉCURCIVE : .................................................................................................................. 12
2) VERSION DYNAMIQUE RÉCURCIVE :............................................................................................. 13
3) VERSION DYNAMIQUE RÉDUITE : ................................................................................................. 14
............................................................................. 15
1) CAS DES GRAPHES À VALEURS POSITIVES :............................................................................... 15
a) Problème posé : ....................................................................................................................... 15
b) Solution proposée : ................................................................................................................. 16
2) CAS DES GRAPHES À VALEURS POSITIVES :............................................................................... 17
a) Problème posé : ....................................................................................................................... 17
b) Solution proposée : ................................................................................................................. 18
............................................................................................................................................ 19
...................................................................................................................................... 20
Figure 1 : Schéma d’un arc ................................................................................................. 7
Figure 2 : Schéma d’un graphe valué .................................................................................. 8
Figure 3 : Version récursive de l’algorithme de Ford ....................................................... 12
Figure 4 : Version dynamique récursive de l’algorithme de Ford ..................................... 13
Figure 5 : Version dynamique itérative de l’Algorithme de Ford ..................................... 14
Figure 6 : Forme simplifiée de la version dynamique itérative de l’algorithme de Ford ... 15
Figure 7 : Carte définissant l’emplacement des différents entrepôts................................. 16
Figure 8 : Schéma du problème ........................................................................................ 17
Dans le temps, les grands stratèges agissaient pour la plupart de façon intuitive. Avec
l’évolution du monde les progrès scientifiques et autres les données à traiter pour établir
différentes stratégies sont devenues plus volumineuse et surtout très complexes. La recherche
opérationnel est donc devenu au fil du temps un domaine transversale avec des chercheurs tel
qu’Archimède en stratégie de guerre, pascal et Fermat en mathématiques, Gaspard Monge en
économie sur les problèmes combinatoire de déblai et remblai, Blackett sur l’implantation
optimale des radars de surveillance, la théorie des graphes avec Ford qui a travaillé sur la
recherche d’un plus court chemin d’un nœud à tous les autres nous allons donc travailler par la
suite tous les contours liés à l’algorithme de Ford. Son utilité dans l’ingénierie, ses avantages et
inconvénients et les éventuelles améliorations.

Algorithme de Ford Recherche Opérationnelle


5
1) QUELQUES RAPPELS SUR LES GRAPHES ET CONCEPTS ORIENTÉS :

a) Produit cartésien et carré cartésien :

Soit deux ensembles E et F,

On appelle produit cartésien de E par F l’ensemble noté

𝐸 × 𝐹 = {(𝑥, 𝑦)/𝑥 ∈ 𝐸, 𝑦 ∈ 𝐹 }

On appelle carré cartésien de E, l’ensemble

𝐸 × 𝐸 = {(𝑥, 𝑦)/𝑥 ∈ 𝐸, 𝑦 ∈ 𝐸 }

b) Application univoque :

Étant donné deux ensembles E et F, une loi 𝛼 qui fait correspondre à tout élément 𝑥 Є 𝐸
un élément bien défini de F noté 𝛼𝑋 s’appelle une application univoque de E vers F.

c) Application multivoque :

Une application multivoque 𝚪 de E dans F est une loi qui fait correspondre à tout élément
𝑥 Є 𝐸 un sous-ensemble bien déterminé de F note Γ𝑌 .

d) Graphe :

Le graphe G, noté G = (𝐸, Γ) est un couple constitué par l’ensemble E et l’application Γ


remplissant les conditions suivantes :

• 𝐸 = {𝑥1 , 𝑥2 , … , 𝑥𝑛 } est un ensemble dénombrable ;

• Γ est une application multivoque de E dans lui-même ;

Algorithme de Ford Recherche Opérationnelle


6
Si |𝐸|= n et s’il existe une application multivoque Γ de E dans lui-même, alors le couple
(𝐸, Γ) est un graphe d’ordre n. En d’autres termes, l’ordre d’un graphe c’est son cardinal.

Le graphe peut être aussi définie par le couple G = (E, U) ou E est un ensemble
dénombrable et U désigne l’ensemble des couples issus de l’application de la loi Γ, l’application
multivoque de E dans lui-même.

Ainsi, card (U) = m désigne la taille du graphe.

e) Arcs :

On appelle arc tout couple de points distincts du graphe donc tout couple (𝑥𝑝 , 𝑥𝑞 ) avec
𝑥𝑝 ≠ 𝑥𝑞 et 𝑥𝑝 𝑅𝑥𝑞 .

On appelle arcs adjacents deux arcs (𝑥𝑝 , 𝑥𝑞 ), (𝑥𝑞 , 𝑥𝑟 ) avec 𝑥𝑝 𝑅𝑥𝑞 et 𝑥𝑞 𝑅𝑥𝑟 . Les 𝑥𝑝 , 𝑥𝑞 , 𝑥𝑟
sont des sommets adjacents.

Figure 1 : Schéma d’un arc

f) Chemin :

On appelle chemin une suite de sommets adjacents permettant de passer d’une manière
continue d’un sommet à l’autre c’est-à-dire une suite non vide d’arcs (𝑥𝑖 𝑅𝑥𝑗 ) et (𝑥𝑗 𝑅𝑥𝑘 ),
l’extrémité de chacun d’eux coïncident aves l’origine de l’arc suivant, sauf pour le dernier arc
de la suite.

• Un chemin est élémentaire s’il ne passe pas deux fois par le même sommet ;

• Un chemin est simple s’il ne contient pas deux fois le même arc ;

Algorithme de Ford Recherche Opérationnelle


7
• Un chemin est hamiltonien s’il passe par tous les sommets une fois et une
seule ;

g) Circuit :

On appelle circuit un chemin où l’origine et l’extrémité sont confondus.

h) Valuation de graphe :

Soit G = (𝐸, Γ) un graphe. On associe à chaque arc u = (𝑥𝑝 , 𝑥𝑞 ) du graphe un nombre


réel positif, négatif ou nulle noté 𝑣𝑖𝑗 = 𝑣(𝑢). On appellera ce nombre valuation ou longueur de
l’arc même si 𝑣(𝑢) < 0. Un graphe est dit valué si tout arc est muni d’une longueur.

Figure 2 : Schéma d’un graphe valué

i) Longueur d’un chemin :

Soit G = (𝐸, Γ) un graphe orienté, sans boucle et valué. La longueur d’un chemin
quelconque est par définition la somme des longueurs des arcs qui comptent ce chemin.

j) Écart entre deux sommets 𝒅(𝒙, 𝒚) :

Algorithme de Ford Recherche Opérationnelle


8
Soient deux sommets x et y d’un graphe G. On appelle écart de sommets entre x et y le
nombre d’arcs du chemin à valeur minimale entre x et y.

Lorsqu’il n’existe aucun chemin allant de x à y, on note :

𝑑(𝑥, 𝑦) = ∞
Le problème qu’on veut résoudre consiste à déterminer les plus courts chemins d’un
sommet à tous les autres dans un graphe valué (positif et/ou négatif) possédant une entrée, 𝒙𝟎 et
une sortie 𝒙𝒏 .

2) ALGORITHMES POUR LA RECHERCHE DU PLUS COURT CHEMIN D’UN


SOMMET À TOUS LES AUTRES : CAS GÉNÉRAL

a) Motivation :

Lorsque l’on modélise un problème de nature économique, la valuation des arcs


correspondent à la notion du cout (ou symétriquement de profit) peut dans un même énonce
avoir des valeurs positives ou négatives suivants les arcs. La recherche de plus court chemin
dans un graphe avec des circuits et des arcs de valuation quelconque peut donc se poser
directement.

b) Algorithme de Ford :

• But de l’algorithme : C’est un algorithme qui calcule les plus courts chemins depuis
un sommet source donné dans un graphe orienté pondéré à tous les autres
sommets. Il autorise la présence de certains arcs de poids négatif et permet de
détecter l’existence d’un circuit absorbant, c’est-à-dire de poids total strictement
négatif accessible depuis le sommet et source. L’algorithme utilise le principe de
la programmation dynamique.
• Principe de l’algorithme : Cet algorithme fonctionne par étapes. À l’étape k, on
cherche de r vers tout sommet x de G, un plus court chemin. Dans un graphe
d’ordre n, les chemins élémentaires ont au plus n-1 arcs, l’ensemble des longueurs
des plus courts chemins trouvées à l’étape n-1 doit être identique à celui de l’étape
n sauf si les chemins que l’on construit ne sont pas tous élémentaires ce qui
implique que le graphe contient un circuit absorbant.

Algorithme de Ford Recherche Opérationnelle


9
• Pseudo-code : On considère un graphe G constitue de n+1 sommets, 𝑥0 a 𝑥𝑛 ; pour
avoir les plus courts chemins d’un sommet 𝑥0 a tous les sommets on utilise le
pseudo-code suivant :
o Marquer chaque sommet 𝑥𝑖 avec un indice 𝑎𝑖 tel que :

𝒂𝟎 = 𝟎 et 𝒂𝒊 = ∞ pour 𝒊 ≠ 𝟎

o Chercher un arc ( 𝑥𝑖 , 𝑥𝑗 ) tel que :


𝒂𝒋 − 𝒂𝒊 > 𝒍(𝒙𝒊 , 𝒙𝒋 )
Où 𝑙(𝑥𝑖 , 𝑥𝑗 ) est la longueur pondérée de ( 𝑥𝑖 , 𝑥𝑗 )
o Remplacer alors 𝑎𝑗 par 𝑎𝑗′ tel que :

𝒂′𝒋 = 𝒂𝒊 + 𝒍(𝒙𝒊 , 𝒙𝒋 ) < 𝒂𝒋

o Continuer ainsi en retournant à l’étape 2 jusqu'à ce qu’aucun arc ne


permette de diminuer les 𝑎𝑖 .
Où 𝑎𝑖 est la longueur du plus court chemin de 𝑥0 à 𝑥𝑖 .
o On peut déterminer la présence d’un cycle de poids négatif si un nouveau
tour de boucle fait diminuer une distance.

L’algorithme de Ford peut être très pratique dans divers aspects de l’ingénierie. Comme
il a été expliqué dans les paragraphes précédentes, l’algorithme de Ford permet de trouver le
plus court chemin entre deux nœuds distincts dans un graphe pondéré et dans beaucoup de
domaines, on peut appliquer cet algorithme, notamment :

➢ En urbanisme, il est possible d’utiliser l’algorithme de Ford pour l’établissement d’un


tracé routier permettant de trouver le plus court chemin d’un lieu à un autre.
➢ Dans l’organisation et la gestion des projets, l’algorithme de Ford pourrait être utile
dans l’agencement des tâches afin de réaliser le projet dans les meilleurs délais.
➢ Dans les réseaux informatiques, l’algorithme de Ford est utilisé pour déterminer le
cheminement des messages à travers le protocole de routage.
➢ De même dans les réseaux électriques et des télécommunications, il est également
utilisé pour faciliter la transmission des ondes téléphoniques et des ondes radios.

Algorithme de Ford Recherche Opérationnelle


10
➢ Dans le domaine des transports l’algorithme de Ford pourrait également servir pour
l’établissement du plus court chemin pour la livraison des matériaux dans un chantier
par exemple.

Tous ceux-ci sont des exemples parmi tant d’autre de l’utilité de l’algorithme de Ford dans
les domaines de l’ingénierie.

1) AVANTAGES :

En insérant astucieusement une instruction de comparaison entre l’étape 1 et 2, on peut


terminer l’algorithme dès que l’on tombe sur le nœud d’arrivé. Ceci permet d’éviter de
parcourir tous les nœuds pour trouver un chemin. Cependant, en court-circuitant l’algorithme
ainsi, on risque de passer à côté d’un autre chemin plus optimal.

Un autre avantage non négligeable est sa capacité à travailler avec les arcs de poids
négatifs. Néanmoins, l’algorithme doit être capable de détecter les cycles d’arcs de poids tous
négatifs comme cité précédemment.

2) INCONVÉNIENTS :

À partir du nœud de départ, cet algorithme se réitère jusqu’à ce qu’il trouve plus de nœud
dont la distance (ou étiquette) peut être améliorée. Dans de nombreux cas, il examine plusieurs
fois un nœud déjà visité. Ceci pose aussi un problème de performance non négligeable.

De plus, le danger d’un tel algorithme est le fait d’être pris dans le piège d’un cycle dont
la somme des distances (ou étiquettes) est négative. Puisque l’algorithme compare la distance
de chaque nœud, cette dernière se trouve être améliorée continuellement dans un tel cycle.

Algorithme de Ford Recherche Opérationnelle


11
L’algorithme de Ford est un algorithme glouton au niveau de la mémoire (complexité :
O(MN)). De plus, il comporte des problèmes de cycles améliorants (il s’agit d’une boucle infinie
dans lequel il est possible de tomber lors de l’exécution du programme vu qu’une pondération
peut désormais être négative) qui vont sans cesse diminuer la distance parcourue. Ainsi, pour
palier au problème des cycles améliorants et de complexité, plusieurs versions de l’algorithme
ont été mise en place :

1) VERSION RÉCURCIVE :

Ford (nbÉtape, nœud) ;

Si nbÉtape = 0

Si c’est le nœud d’arrivée

Retourner 0

Sinon

Retourner INFINI car le chemin est invalide

cheminMin = Ford(nbÉtape - 1, nœud)

Pour chaque voisin du nœud

cheminVoisin = pondérationArc + Ford(nbÉtape - 1, voisin)

cheminMin = min (cheminMin, cheminVoisin)

Retourner cheminMin

Figure 3 : Version récursive de l’algorithme de Ford

Ce pseudo-code traduit une simple récursion permettant d’explorer tous les chemins en
moins de nbÉtape jusqu’à l’arrivée, tout en sélectionnant le plus court d’entre eux. Pour cela,
l’algorithme utilise une simple boucle sur tous les voisins d’un nœud ainsi qu’une variable
cheminMin qu’on actualise pour toujours avoir le chemin avec la pondération minimale entre
tous les choix possibles.

Algorithme de Ford Recherche Opérationnelle


12
2) VERSION DYNAMIQUE RÉCURCIVE :

plusCourtChemin[NB_ÉTAPE_MAX][NB_NOEUD_MAX]

Ford (nbÉtape, nœud) ;

Si nbÉtape = 0

Si c’est le nœud d’arrivée

Retourner 0

Sinon

Retourner INFINI car le chemin est invalide

Si plusCourtChemin[nbÉtape][nœud] != -1

Retourner plusCourtChemin[nbÉtape][nœud]

cheminMin = Ford(nbÉtape - 1, nœud) ;

Pour chaque voisin du nœud

cheminVoisin = pondérationArc + Ford(nbÉtape - 1, voisin)

cheminMin = min (cheminMin, cheminVoisin)

plusCourtChemin[nbÉtape][nœud] = cheminMin

Retourner cheminMin

Figure 4 : Version dynamique récursive de l’algorithme de Ford

On a seulement ajouté les trois points fondamentaux qu’on retrouve dans un processus de
dynamisation d’un algorithme :

➢ L’initialisation du tableau plusCourtChemin à -1 pour marquer toutes les


valeurs comme non calculées.
➢ Une condition au début de notre récursion afin de vérifier si la valeur n’a pas déjà
été calculée (et si c’est le cas, on la retourne directement).
➢ Une mise à jour du tableau après avoir trouvé une nouvelle valeur.

Algorithme de Ford Recherche Opérationnelle


13
3) VERSION DYNAMIQUE RÉDUITE :

Une fois qu’on a réussi à obtenir une complexité en temps non exponentielle (puisque
désormais on ne parcourt pas inutilement des parties du graphe), il est toujours intéressant de
tenter de réduire notre complexité en mémoire si possible. Dans le dernier pseudo-code, on a
une complexité mémoire de l’ordre O(KN), ce qui est équivalent à du O(N2), car on choisit la
limite K, tel que K=N pour éviter les cycles améliorants. Cet ordre de grandeur est tout à fait
correct en termes d’espace mémoire, surtout vu le gain de temps qu’on acquiert grâce au
tableau, mais il peut être encore largement amélioré.

plusCourtChemin [NB_ÉTAPE_MAX][NB_NOEUD_MAX] (initialisé à l’infini)

plusCourtChemin [0][arrivée] = 0

pour chaque étape

Pour chaque nœud

cheminMin = plusCourtChemin[étape - 1][nœud]

Pour chaque voisin du nœud

cheminVoisin = pondérationArc + plusCourtChemin[nbÉtape - 1][voisin]

cheminMin = min (cheminMin, cheminVoisin)

plusCourtChemin[étape][nœud] = cheminMin

Retourner plusCourtChemin[nbÉtape - 1][départ]

Figure 5 : Version dynamique itérative de l’Algorithme de Ford

Plusieurs points importants à comprendre dans cette version itérative de l’algorithme :

➢ Le tableau plusCourtChemin est initialisé à INFINI car on n’a plus besoin


de détecter le cas où l’on retombe sur un appel de fonction déjà rencontré
auparavant, puisque désormais on utilise des boucles (passage de la version
récursive à itérative). On choisit donc la valeur INFINI pour noter qu’on ne
connaît pas de plus court chemin pour un nœud donné à une étape précise.
➢ On a transformé les appels récursifs en deux boucles imbriquées, une sur les étapes,
l’autre sur les nœuds. En réalité, on parcourt simplement notre tableau
plusCourtChemin, et c’est exactement ce que réalisait implicitement notre
fonction récurcive puisqu’on retrouve la première boucle grâce au paramètre de

Algorithme de Ford Recherche Opérationnelle


14
la fonction nbÉtape (que l’on diminuait à chaque fois de 1, et qui nous
permettait d’arrêter la récursion lorsqu’elle atteignait 0), et la boucle sur les nœuds
lors des appels récursifs sur les nœuds voisins.
➢ Notre structure au niveau de la boucle des voisins n’a pas changé, et on cherche
toujours à garder le minimum dans notre tableau plusCourtChemin.

Pour ce qui est de l’espace mémoire, on peut se contenter de conserver une ligne unique
que l’on peut mettre à jour à chaque itération. On réussit alors à supprimer une dimension
entière et cela nous donne une complexité mémoire de O(N). Cette amélioration nécessite une
simplification du pseudo-code comme ci-dessous :

plusCourtChemin[NB_NOEUD_MAX] (initialisé à -1)

plusCourtChemin[arrivée] = 0

Pour chaque étape

Pour chaque arc

cheminVoisin = pondérationArc + plusCourtChemin[noeud2arc]

plusCourtChemin[noeud1arc]= min(plusCourtChemin[noeud1arc], cheminVoisin)

Retourner plusCourtChemin[départ]

Figure 6 : Forme simplifiée de la version dynamique itérative de l’algorithme de Ford

En plus de réaliser une optimisation de l’espace mémoire, on facilite la lecture du pseudo-


code en utilisant plus que deux boucles imbriquées à la place de trois. En effet, au lieu de
parcourir les nœuds puis leurs voisins respectifs dans deux boucles imbriquées, on peut se
contenter de visiter les arcs du graphe en entrée comme une liste d’arcs pour permettre de
parcourir tous les arcs en une seule boucle.

1) CAS DES GRAPHES À VALEURS POSITIVES :

a) Problème posé :

Algorithme de Ford Recherche Opérationnelle


15
Une entreprise contacte votre société d’entreposage pour stocker des produits
alimentaires. Vos différents entrepôts sont localisés à l’aide de la carte fournie ci-après.

Dans le cadre du contrat, l’entreprise vous demande de déterminer les chemins minimaux
du réseau afin d’optimiser les prix de transport de leurs marchandises. Les entrepôts sont
schématisés par des points et les routes reliant ces différents entrepôts par des droites.

Figure 7 : Carte définissant l’emplacement des différents entrepôts

La valuation de chaque arc indique la distance séparant les entrepôts reliés par cet arc.

Déterminer la longueur du chemin minimal menant l’entrepôt d’entrée 0 à un entrepôt de sortie


tout en précisant ce chemin.

b) Solution proposée :

Tout d’abord c’est un problème de plus court chemin donc l’algorithme de Ford est
utilisable, avec les valuations, les distances entre des entrepôts, positives.

Considèrons le tableau qui récapitule les étapes de l’algorithme de Ford comme dit le
pseudo-code ci-dessus :

Algorithme de Ford Recherche Opérationnelle


16
Entrepôt 𝒂𝒊 𝒂𝟏𝒊 𝒂𝟐𝒊 𝒂𝟑𝒊 𝒂𝟒𝒊 𝒂𝟓𝒊
1 0 0 0 0 0 0
2 ∞ 8 8 8 8 8
3 ∞ 13 12 12 12 12
4 ∞ 20 19 9 9 9
5 ∞ 17 17 17 17 17
6 ∞ 23 14 14 14 14
7 ∞ 28 19 19 19 19
8 ∞ 26 18 18 18 18
9 ∞ 32 20 20 20 20
10 ∞ 37 21 21 21 21
11 ∞ 31 15 15 15 15
12 ∞ 50 32 32 32 32

Les valeurs des plus courts chemins partant de 0 sont données par les 𝒂𝟓𝒊 .

2) CAS DES GRAPHES À VALEURS POSITIVES :

a) Problème posé :

On souhaite déterminer le plus court chemin du sommet A aux autres sommets.

Figure 8 : Schéma du problème

Algorithme de Ford Recherche Opérationnelle


17
b) Solution proposée :

Tout d’abord c’est un problème de plus court chemin donc l’algorithme de Ford est
utilisable, avec les valuations positives et négatives.

Considère le tableau qui récapitule les étapes de l’algorithme de Ford comme dit le
pseudo-code ci-dessus,

sommet 𝒂𝒊 𝒂𝟏𝒊 𝒂𝟐𝒊 𝒂𝟑𝒊 𝒂𝟒𝒊 𝒂𝟓𝒊


A 0 0 0 0 0 0
B ∞ 3 2 1 -1 -1
C ∞ 4 4 4 4 4
D ∞ 10 5 4 4 4
E ∞ 8 8 8 8 8
F ∞ 6 3 2 2 2
G ∞ 1 1 1 1 1
H ∞ 3 -2 -2 -2 -2

Les valeurs des plus courts chemins partant de A sont données par les 𝒂𝟓𝒊 .

Algorithme de Ford Recherche Opérationnelle


18
Parvenus au terme de ce travail où il était question pour nous de d’étudier les l’algorithme
de Ford sur la recherche de plus courts chemins à tous les autres. Nous avons tout d’abord
rappelé quelques notions de bases sur la théorie des graphes et concepts d’arc orienté, le
principe de l’algorithme de Ford, les motivations de cet algorithme. On a pu établir non
seulement l’utilité de l’algorithme de Ford mais aussi ses différents avantages et inconvénients.
Dans un souci d’optimisation, nous avons proposé une amélioration de l’algorithme à travers
trois versions : récursive, dynamique récursive et dynamique réduite. Plusieurs chercheurs ont
travaillé sur la recherche des plus courts chemins d’un sommet à tous les autres tel que Dantzig
dont l’algorithme présente certains avantages dont on pourrait mettre à profit.

Algorithme de Ford Recherche Opérationnelle


19
✓ Éléments de recherche opérationnelle pour ingénieurs, chercheurs, et décideurs-
gestionnaires par Professeur Thomas Tamo Tatietse, polytechnicien, Ing, PhD, HDR,
professeur titulaire des universités

✓ Méthodes d’optimisation, licence professionnelle logistique, Université du littoral- Cote


d’Opale, Pole Lamartine, Laurent Smoch

✓ Algorithme de Bellman-Ford Article de Thibault Allançon publié le 10 Juillet 2016

✓ Opencity Recherche du plus court chemin de Duong-khang NGUYEN et de Julien Polo

Vous aimerez peut-être aussi