• Aucun résultat trouvé

Répétez jusqu’à ce qu’il ne soit pas possible de continuer

Dans le document Recherche Opérationnelle (Page 148-154)

Évaluation de l’unité

Activité 1 – Flots dans les réseaux

3. Répétez jusqu’à ce qu’il ne soit pas possible de continuer

Le sous-graphe résultant est l’arbre minimal souhaité.

En utilisant le graphe de l’exemple précédent et en commençant par le sommet r, on obtient:

Le recouvrement minimal a un poids total de 290 (soit égale à celle obtenue par la méthode de Kruskal) -.

Le plus court chemin

Exemple: Un exemple typique de ce problème est le suivant:

Soit V le nombre d’aéroports dans un pays où un transporteur aérien se propose d’étudier les coûts associés aux différentes voies indiquées dans chaque le graphe pondéré de la route afin de minimiser le coût du carburant:

Comment déterminer le chemin le plus court (par rapport au poids) entre le sommet d’origine g et le sommet de destination j?

La méthode de la «force brute» liste tous les chemins possibles et détermine l’itinéraire le plus court.

Toutefois, lorsque la complexité du réseau augmente cette méthode consomme trop de ressources informatiques et devient inefficace.

Si la pondération est non négative, l’algorithme de Dijkstra fournit des résultats satisfaisants:

1. Préparer un tableau avec tous les sommets dans l’en-tête des colonnes;

2. circuler de sommet à origine et commencer une itération avec ce sommet dans le 1er ligne;

3. Enregistrer-dans chaque colonne les poids des arêtes adjacentes et les non adjacentes et marquer avec un symbole, à savoir (∞)

4. Le poids le plus bas enregistré en ligne est distribué en indiquant la fin de l’itération dans cette colonne et le sommet correspondant à il va à la ligne suivante:

5. Répéter la procédure avec le nouveau sommet sur la ligne, sans oublier d’ajouter la valeur circulant dans l’itération précédente pour tous les poids de arêtes adjacentes au nouveau sommet dans la ligne:

• Si la valeur résultante est inférieure à celle déjà inscrite dans la colonne, puis remplace la valeur précédemment enregistrée ,

• si la valeur est égale garde l’ancien, mais marque comme un chemin alternatif

• si la valeur est supérieure à garder le registre antérieur

les registres entourés indiquent que dans la colonne correspondante on ne fait pas de changements:

6. Répétez le processus et si deux valeurs égales sont trouvées, l’un d’eux est choisi parce que l’autre sera revue plus tard,

7. Le processus se poursuit jusqu’à ce que le sommet-destination soit distribué:

Le chemin trouvé «arrivé» a j provenant de c parce qu’il était dans la ligne de c qui était le dernier changement dans la colonne j , de à 41; Nous sommes arrivé à c en provenant de e parce qu’il était sur la ligne de e et qui était le dernier changement dans la colonne c de ∞ à 23; Nous sommes venus à e et en provenance de g comme on peut le lire directement sur la colonne.

Pour cela, on peut reconstituer le chemin le plus court:

avec la longueur de 41 (unités de poids).

S’il y a des marques pour des voies alternatives, on peut identifier les «sortant» dans les marques respectives.

Il peut y avoir d’autres chemins de g à j, mais ils doivent avoir une longueur supérieure à 41.

Le tableau montre les chemins les plus courts du sommet-origine g aux colonnes circulaires, comme ce fut le cas de j.

On poursuit le tableau jusqu’ à avoir toutes les colonnes entourés on obtient tous les chemins les plus courts à partir du sommet d’origine g

:

Par exemple, le chemin le plus court, en partant de g pour atteindre x, est:

g→r→s→t →x

et a une longueur de 102:

Flux maximal

Dans le problème de flux de réseau au lieu de pénalisation (coût de l’utilisation) en utilisant la ligne comme on le voit dans les problèmes de transport et de désignation, nous avons une capacité de limitation de flux associée à l’arête ..

Exemple: Un exemple typique de ce problème est la suivant:

Quel est le flux maximal qui peut circuler sur le réseau (m3 / h), de la source1 au puits 5?

La matrice de contiguïté binaire, laissée sans remplir les entrées nulles est donnée par:

La colonne 1 seulement avec des entrées nulles indique que ce sommet est une source.

La ligne 5 seulement avec des entrées nulles indique que ce sommet est un puits.

Dans le problème typique de flux maximal, on suppose que:

• e régime transitoire a été dépassé et donc nous ne considérons pas les magasins locaux (à chaque sommet)

• état d’équilibre étant atteint: tous les flux entrant dans la source quitte le puits.

• La quantité disponible à la source est infinie;

• Le montant perdu au puits est infini;

L’objectif est de maximiser flux total z circulant sur le réseau de la source1 au puits 5.

Chaque arête a une capacité non négative u〖_(ij.)〗≥0, où i,j=1,…,m, et la numérotation des sommets, et si deux sommets ne sont pas adjacents alorsc〖_ij〗=0.

Le flux au niveau de l’arête est la variable de décision 0≤x〖_ij〗≤u〖_ij〗où i,j=1,...,m, la numérotation des sommets, et si deux sommets ne soient pas adjacents alors le flux est nulx〖_ij〗=0.

Comme le régime est stationnaire, la loi de Kirchhoff s’applique: le flux total entrant dans un sommet k est égal au flux total quittant ce sommet

Avec cette description, le problème de flux maximal dans un réseau est formulé par:

maximiser le flux z entrant dans la source et quittant le puits en régime stationnaire.

z=∑_(j=1)^m x〖_1j〗 ou z=∑_(i=1)^n x〖_〗

sous la contrainte

0≤x〖_ij〗≤U〖_ij〗 pour i,j=1,...,m

〖∑_(m=n)^1 x〗_ik=∑_(j=n)^1 x〖_kj〗 pour i,j=1,...,m

Ce problème peut être résolu par le Simplex/SOLVER, mais lorsque le réseau est complexe, il y a d’autres algorithmes plus faciles à réaliser.

Dans le document Recherche Opérationnelle (Page 148-154)