WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Méthodologie d'évaluation de la capacité de l'aire de mouvement et gestion automatique de l'aire de trafic. Application à l'aéroport de Dakar

( Télécharger le fichier original )
par Alidou SINARE, MOUSTAPHA Amadou Roufa? et Juliette de Confia
EAMAC - Ingénieur 2007
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

1.3.2 Calcul de la capacité du réseau de voies de circulation :

Notre raisonnement sera bâti sur la théorie des graphes. Nous supposerons que tous les aéronefs peuvent emprunter toutes les voies de circulation sans restriction aucune.

La théorie des graphes nous dit que la valeur du flot maximal sur un réseau est égale à la capacité de la coupe minimale sur ce réseau (théorème de Ford et Fulkerson). La coupe se définie comme étant l'ensemble des arcs déconnectant la source du puits.

Nous manipulerons dans la suite une (s, t)-coupe (nous dirons simplement une coupe) comme une partition S ? T. Il est clair que si nous enlevons tous les arcs (x, y) ayant leur origine x dans S et leur destination y dans T, il ne peut plus exister de chemin orienté allant de s à t.

Prenons l'exemple du réseau ci-dessous :

Figure 1 7:Coupe d'un graphe

La coupe ci-dessus est définie par la partition S= { s, a, b, c } et T= { d, e, t }. Elle comporte les arcs (a,d) (b,d) et (c,e). Sa capacité est de 6.

Le problème qui va nous intéresser est de déterminer parmi toutes les coupes d'un réseau, celle de capacité minimale. Cette capacité est égale à la valeur du flot maximal, qui sort de la source ou qui est déversé au puits. C'est en fait le flot maximal possible dans le réseau sans goulots d'étranglements.

En outre, nous rappelons ceci :

Un réseau de transport est la donnée :

- d'un graphe orienté G(X, A),

- de deux sommets distincts e et s (entrée et sortie)

- chaque arc possède une certaine capacité (débit maximum autorisé sur cet arc) donnée par la fonction :

c : A - R+

Un flot sur le graphe G(X, A) est une fonction f : A - R+ respectant les contraintes suivantes :

- V a E A, f(a) < c(a) (c(a) indique la limite supérieure du flot admissible sur l'arc a)

- V xE X, ?yf(x,y)= ?yf(y,x) (Loi de noeuds)

Ainsi le flot total dans le graphe est F =?yf(e,y)= ?yf(y,s). Notre problème revient à calculer Fmax. Sur la figure ci-dessous F=f1 +f2 = f3 +f4 + f5.

Figure 18: Flot dans un graphe de voies de circulation

La plupart des algorithmes de calcul de flot maximum sont basés sur l'idée selon laquelle partant d'un flot déjà existant (au départ il peut être nul), on va augmenter le flot allant de la source au puits en poussant littéralement la commodité là où c' est possible. Les algorithmes se distinguent seulement par la méthode utilisée afin de déterminer par où et comment pousser du flot.

On définit pour cela un autre réseau dit réseau auxiliaire ; ce graphe dépend du flot f déjà établi, nous le notons N(f).

? Définition Réseau auxiliaire : Étant donné un réseau de flot N = (G, s, p, c) et un flot f, nous allons construire le réseau auxiliaire associé N(f) = (G(f), s, p, cf ). Pour cela, on pose :

cf (u, v) = c(u, v) - f(u, v) + f(v, u) pour tout couple de sommets (u, v), avec c(u, v), f(u, v) et f(v, u) égales à 0 si elles ne sont pas définies. Le réseau G(f) est alors défini comme suit :

X(G(f)) = X(G), (X(G) est l'ensemble de sommets du graphe G.)

A(G(f)) = {(u, v) | cf(u, v) > 0}, (A(G) est l'ensemble des arcs de G)

L'algorithme le plus populaire pour la détermination du flot maximal Fmax est dû à Ford et Fulkerson et fut développé dans les années 60. Ils proposent de partir d'un flot réalisable dans le réseau. A chaque étape, l'algorithme cherche un chemin augmentant c'est-à-dire un chemin orienté entre e et s dans le réseau auxiliaire. Si un tel chemin existe, il est saturé et le flot additionnel est ajouté à F (flot de sortie). S 'il n'existe plus de chemin augmentant, l'algorithme s'arrête et le flot courant est retourné. En d'autres termes, Le principe de cet algorithme est de trouver un chemin menant de la source au puits capable d'améliorer le flot, de l'augmenter et de recommencer jusqu'à ce qu'il n'existe plus de chemin pouvant être maximisé.

? Enoncé de l 'Algorithme de Ford et Fulkerson : Entrées : Graphe G, points d'entrée et sortie e et s Sorties : Flot F de type réel.

- Initialiser F à zéro.

- Tant qu'il existe un chemin augmentant p de e à s faire:

· Calculer le graphe auxiliaire N(f)

· Pousser un flot fp le long de p dans le réseau résiduel

· à F on donne la valeur F+fp (F4--F+fp)

- Fin faire

- Retourner F.

Cet algorithme se termine après F-Fi itérations. (F étant la valeur du flot à retourner et Fi la valeur flot initiale)

A chaque itération, le flot est augmenté d'une unité si les capacités sont rationnelles (si les capacités sont irrationnelles, la vitesse de convergence est faible), il se terminera donc après F itérations. L'algorithme de recherche d'un chemin non saturé a une complexité de O(Card(A) + Card(X)× log(card(X)). L'algorithme de Ford et Fulkerson a donc pour complexité F× O( Card(A) + Card(X)× log(card(X)).

Cet algorithme est convergent ; mais comme il est fonction de la valeur du flot à retourner, le temps de calcul peut souvent être très élevé.

En 1972, un autre algorithme a amélioré l'algorithme précédent : il s'agit de l'algorithme d'Edmonds et Karp. Il est presque identique à celui de Ford et Fulkerson, sauf que le chemin augmentant à chaque fois est choisi le plus court :

Edmonds et Karp = Ford et Fulkerson + plus court chemin.

? Algorithme d'Edmonds et Karp :

1. Débuter par le flot nul F = 0 ;

2. Calculer le réseau auxiliaire N(F) ;

3. Chercher un plus court chemin de s vers p dans G(F) ;

4. S'il existe un tel chemin P, pousser du flot le long de P, mettre F à jour (F4--F+fp) et aller au point 2 ;

5. Sinon terminer et retourner F comme solution du problème.

Sa complexité est O(card(A)× card(X))/2. Il converge plus rapidement que l'algorithme de Ford et Fulkerson et surtout il n'est pas fonction du flot à retourner. Nous avons retenu ce dernier algorithme et l'avons programmé en Visual Basic.

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Nous voulons explorer la bonté contrée énorme où tout se tait"   Appolinaire