Transcript Télécharger le Fichier PowerPoint
Présenté par: SARI OMAR M1 S1 G5 ** T.I.C **
PROBLEME DU POSTIER CHINOIS « CHINESE POSTMAN PROBLEM » ( CCP)
Professeur : Mr hamdaoui
Promotion 2011/2012
PLAN DE TRAVAIL INTRODUCTION
• objectifs.
DISCRIPTION DU PROBLEME
•
COMPLIXITE
•
APPLICATION MODELISATION
•
DEFINITION
•
FORMULATION
•
METHODE DE RESOLUTION
•
EXEMPLE
DISCRIPTION DU PROBLEM
MODELISATION D’UNE VILLE
RESOLUTION DU PROBLEM
COMPLIXITE CONCLUSION & PERSPICTIVE
Introduction
La recherche opérationnelle (RO) vise à l'amélioration du fonctionnement des entreprises et des organismes publics par l'application de l'approche scientifique.
Reposant sur l'utilisation de méthodes scientifiques, de techniques spécialisées et des ordinateurs, la RO permet d'obtenir une évaluation quantitative des politiques, stratégies et actions possibles dans le cours des opérations d'une organisation ou d'un système.
Le problème du postier chinois (CPP) est bien connu et résolu dans sa version classique. Petit à petit, des contraintes supplémentaires sont venues s'ajouter pour obtenir une meilleure modélisation du monde réel. Ainsi, nous avons le problème du postier chinois asymétrique (PPCA) ou le cout de traversée de l'arête diffère suivant le sens du parcours, le problème du postier rural (PPR) et le problème du postier hiérarchique (PPH).
Ce rapport est consacré à présenter un problème du postier chinois CPP (Chinese Postman Problème) sur un graphe connexe non dirigé.
Objectifs
Reconnaître le problème du postier chinois.
Comprendre et appliquer l’algorithme du facteur chinois
DISCRIPTION DU PROBLEME
Etant donné un graphe connexe G = (V,E), le problème CPP (Chinese Postman Problem) consiste à trouver une tournée de cout total minimal qui passe par toutes les arêtes ou arcs, chacune au moins une seule fois. Les méthodes de résolution exploitent la remarque suivante : le cycle recherché correspond à un cycle eulérien dans un multi-graphe G’ = (V, E’), comprenant les arêtes originales plus les copies d'arêtes nécessaires pour avoir un graphe eulérien, c'est-à-dire pour rendre pair le degré de chaque nœud.
Ainsi, le UCPP revient à construire un graphe eulérien G’ minimisant le coût total des copies.
COMPLEXITE
Le problème du postier chinois est résoluble en temps polynomial si le graphe est orienté ou non orienté. Dans le cas d’un graphe mixte, il devient NP-difficile.
APPLICATION
Les différentes versions des problèmes de tournées de véhicule modélisent un nombre important d'applications réelles ,qui peuvent être intéressantes dans les deux domaines publique et privé. Pour cette raison ce problème a été très étudié par les chercheurs surtout dans les dernières années. On citera quelques diverses applications :
Calendrier aérien (Airline Scheduling)
Cette application peut se modéliser en un problème de tournées sur arcs. Plus précisément, quand il s'agit de la planification du calendrier des avions sur les routes de vol (en anglais c'est
"scheduling of planes to flight legs
") et de la planification de l'équipage ("
scheduling of crew
"). Dans le graphe du modèle, chaque nœud représente une destination et chaque arc représente une route de vol. Plusieurs contraintes peuvent être considérées dans cette modélisation directe du problème, comme la capacité de routes de vol en avions, les horaires de départ et d'arrivée des avions, contraintes de temps de rester sur place, etc. Dans cette application, les coûts sont très élevés en comparant aux autres applications de problème CARP(Capacitated Arc Routing Problem), ce qui rend une réduction très élevée au niveau de millions des dollars de revenus pour les compagnies aériennes, d'où l'importance de traiter ce problème.
Relevé des compteurs électriques (Electric Meter Reading)
Nous rencontrons cette application dans des organismes de service publiques et municipaux dans certains pays. Elle se produit, périodiquement, quand il s'agit de recueillir des données d'une maison en maison par des lecteurs à fin d'établir les factures individuelles. Les lecteurs sont transportés vers le début de leur parcours, travaillent pour un nombre d'heures et sont libres de quitter après. Pour minimiser le coût du travail, les entreprises veulent minimiser les temps morts-position, et donc, minimiser le nombre de travailleurs.
Cette application alors, peut se modéliser comme un problème CARP, parce qu'il s'agit d'organiser les tournées des lecteurs en supposant le temps de la lecture de chaque compteur est limité.
d’autres Applications la distribution des lettres.
le ramassage des poubelles (la collecte des ordure).
le nettoyage des rues.
le déneigement des rues.
La surveillance de la patrouille de police.
l’ordinateur qui dessine le traçage d’un réseau (ou ploter mécanique).
…..
Dans ce rapport on a pris ‟la collecte des ordures” comme exemple à modélisé .
MODELSATON Idée
Rendre le graphe «eulérien» en ajoutant un nombre d’arêtes dont la longueur totale est minimale.
Définition (ucpp)
La variable Xij est le nombre de copies de l'arête (i,j). La fonction objectif est le coût total du parcours à une constante près (le coût total des arêtes).
Les contraintes stipulent que le nombre de copies incidentes à un nœud i doit être pair si et seulement si le nœud est pair. Pij : le poids de l’arête (i; j).
A :ensemble des arêtes de G*.
σ(i) = ensemble des arêtes incidentes au sommet vi.
V = ensemble de nœuds du graphe G.
T = ensemble des nœuds de degré impair appartenant à V.
MODELSATON Formulation
En 1973 Edmonds et Johnson ont montré que le problème peut se formuler par le programme linéaire suivant. La variable xij est le nombre de copies de l'arête (i,j). La fonction objectif est le coût total du parcours à une constante près (le coût total des arêtes).
Minimiser sous réserve de = Xij (Vi,Vj) A Où Pij = le poids de l’arête (i; j) Xij = nombre de copies de l’arête (i; j) A = ensemble des arêtes de G* vi = sommet i et vj = sommet j (i) = ensemble des arêtes incidentes au sommet vi V = ensemble de noeuds du graphe G T = ensemble des noeuds de de degré impair appartenant à V
MODELSATON METHODE DE RESOLUTION
Un graphe est eulérien si on peut parcourir toutes les arêtes une et une seule fois en partant d’un sommet et en y revenant.
Si le graphe de la ville est eulérien,
Sinon,
la solution optimale est directement trouvée en parcourant le graphe à partir du dépôt.
notre algorithme va trouver les rues qu’il faut parcourir plusieurs fois pour que le chemin soit optimal.
Input : graphe G connexe et non orienté 3) 4) 5) 6) 1) 2) L’ensemble S de sommets impair.
pour chaque paire de sommets (u,v) ds S.
Trouver le chemin le plus court P dans G entre (u, v) (Algorithme de Soit d(u, v) la longueur de ce chemin P.
Créer un graphe complet K avec les sommets de S.
Djikstra ).
Pour chaque arête e de K, Assigner à l’arête e la longueur d(u ,v) où u et v sont les extrémités de e.
Trouver le couplage parfait M dans K pour que le poids total soit minimum (Algorithme hongrois ).
Pour chaque arête e dans M Reprendre P correspondant au chemin le plus court entre les extrémités de e.
Pour chaque arête f de P, ajouter au graphe G une copie de f avec sa longueur 7) 8) 9) Soit G* un graphe eulérien formé en ajoutant à G les arêtes dupliquées au point précédent.
Construire un cycle eulérien W dans G* (Algorithme de Fleury ) .
Le cycle eulérien W correspond au chemin optimal du problème du facteur Chinois du graphe G de départ .
Exemple ( collecte des ordures ) Description du problème
La ville a décidé de faire des économies. Notre camionneur doit parcourir à partir du dépôt toutes les rues de la ville pour ramasser les poubelles et de manière minimale, pour ne pas gaspiller du mazout ni du temps et revenir au dépôt.
Le problème n’est pas aussi facile qu’on pourrait l’imaginer…
MODELISATION D’UNE VILLE
Un graphe est une structure de données constituée d’arêtes modélisant les routes et de sommets modélisant les carrefours. Les arêtes ont un coût représentant la distance entre deux carrefours.
MODELISATION D’UNE VILLE
6
Soit G, le graphe suivant 4 B 7 7 6 12 C 5 1).Trouver l’ensemble S des sommets impairs.
A D S ={A,C,E,D} où d°(A) = d°(C) = d°(E) = 3 et d °(D) = 5.
3 10 F 6 _ Graphe G_ E 9 10 2). Pour chaque paire de sommets (U,V ) Є S, trouver le chemin le plus court entre U et V dans G. (Alg Djistkra).
d(A,C) = d(A,B) + d(B,C) = 4 + 7 = 11 , d(C,E) = 9 .
d(A,D) = d(A,B) + d(B,D) = 4 + 6 = 10 , d(C,D) = 5.
d(A,E) = d(A,F) + d(F,E) = 3 + 6 = 9 , d(D,E) = 4.
3 & 4). Construire un graphe complet K avec les sommets appartenant à S. Le poids de l’arête entre chaque sommet est la distance calculée précédemment .
A 11 C 5 10 4 9 4 E _ Graphe complet K _ D
5). le couplage parfait M ?
construire un graphe bipartie K’ avec les sommets de K.
11 C 9 10 D 4 A 9 E Aplliqué l’Algorithme Hangrois.
A C D E
A’
100 11 10 9
C’
11 100 5 9
D’
10 5 100 4
E’
9 9 4 100 A’ 11 C’ 5 9 10 5 D’ _ Graphe bipartie K’ _ 4 9 A C D E A’ 100 0 0 0 C’ 11 100 0 0 D’ 10 5 100 0 E’ 9 9
4
100 E’
A C D E A’ 100 0 0 0 C’ 7 100 0 0 D’ 6 1 100 0 E’ 5 5 0 100 A C D E A’ 100 0 0 0 C’ 0 100 0 0 D’ 1 0 100 0 E’ 0 4 0 100 A C D E A’ 100 0 0 0 C’ 2 100 0 0 D’ 1 0 100 0 E’ 0 4 0 100 A C D E A’ 100 0 1 0 C’ 0 100 0 4 D’ 1 0 100 0 E’ 0 4 0 100
A A C D E A’ 100 0 1 0 C’ 0 100 0 4 D’ 1 0 100 0 E’ 0 4 0 100 11 C 5 10 4 9 4 E _ Graphe complet K _ D A C D E A’ on ne peut pas le choisir car d (A,C) > d (A,E) C’ D’ E’ 100 0 1 0 0 1 0 100 0 4 0 100 0 4 0 100 A’ C’ D’ E’ donc Le couplage de poids minimum est le couplage A,E et C,D, de poids 9 + 5 = 14 A 100 0 1 0 C D E 1 1 3 100 0 4 0 100 0 4 0 100
6 & 7). Transformer le graphe G en un graphe eulérien G*, en doublant les arêtes du chemin le plus court entre les sommets du couplage réalisé 4 7 B 7 C 5 5 A 3 3 8 & 9). Trouver le chemin eulérien qui parcourt toutes les arêtes de G* en appliquant L’algorithme de Fleury. Le chemin eulérien parcourt les sommets tel quel : A, B, C, D, E, F, A, D, B, F, D, C, E, F, A.
Complexité
Lorsqu’il s’agit d’un graphe eulérien, la complexité est en O(jEj).
Dans le cas général, on utilise l’algorithme de Dijkstra sur chaque sommet : la complexité totale est de O( ⃓ E ⃓ ( ⃓ E ⃓ log ⃓ V ⃓ ) ).et On utilise ensuite l’algorithme hongrois dont la complexité est de O( ). L’étape 6 s’effectue en O( ) et la complexité du chemin eulérien est en O( ⃓ E ⃓ ). Ceci nous amène à une complexité totale de O ( ).
Conclusion
Les Algorithmes étudiés dans ce rapport ne résout pas tous les cas, ils sont valables que pour les graphes non- orientés, Le problème du postier chinois (CPP ou Chinese Postman Problem) est résoluble en temps polynomial si le graphe est orienté ou non orienté. Dans le cas d’un graphe mixte, il devient NP-difficile.
Perspectives
Il y’a une possibilité de trouver d’autre algorithme plus efficace qui résout tous les cas y compris pour les graphes orientés, Mixte ….