Your SlideShare is downloading. ×
Solution générique pour la résolution des problèmes statiques de tournées de véhicules
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Solution générique pour la résolution des problèmes statiques de tournées de véhicules

1,992
views

Published on


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,992
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
55
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. ii DÉDICACES A mes très chers parents,pour tout lamour dont vous mavez entouré, pour vos attachement, japporte à vous beaucoup daection et de reconnaissance. Je ferais de mon mieu pour rester un sujet de erté à vos yeux avec lespoir de ne jamais vous décevoir. Que ce modeste travail, soit lexaucement de vos veux tant formulés et de vos prières quotidienne. A mes très chers frères :Fayçal,Achraf et Malek, A mon très cher oncle :Mustapha, vous occupez une place particulière dans mon coeur. Je vous dédie ce travail en vous souhaitant un avenir radieux, plein de bonheur et de succès. A mon oncle Kamel et ma tante Aicha,Je noublie pas notre navette chaque matin et lambiance familiale quon a passé durant les 4 ans de mes études universitaires, en souhaitant que mon dieux vous protège. A mes très chers amis, En souvenir de nos éclats de rire et des bons moments. En souvenir de tout ce quon a vécu ensemble. Jéspère de tout mon Coeur que notre amitié durera éternellement. Asma Boudhief
  • 2. DÉDICACES A ce quest toujours mon meilleur exemple dans la vie mon très cher père Pour les sacrices quil a consentis pour mon éducation et pour lavenir quil na cessé dorir. A ce qui ma été toujours la garante dune existence paisible et dun avenir radieux ma mère A ce qui a fait de son mieux pour me soutenir durant ce travail ma chère soeur : Hanen A ceux qui mont soutenu, encouragé, apprécie mon eort et crée le milieu favorable, lambiance joyeuse et latmosphère joviale pour mon procurer ce travail mes adorables frères : Salem, Adnen, Ahmed AmineA toutes ces personnes que jai senties redoutable de leur dédier ce modeste travail avec mes vifs remerciements et les expressions respectueuses de ma profonde gratitude. Slimen Belhaj Ali
  • 3. Remerciements Nous remercions, Monsieur Sami ACHOUR, davoir accepté de présider notre soutenance de projet de n détude. Nous tenons également à remercier profondément, Mademoiselle Nesrine DARRAGI , pour le temps quil a investi pour évaluer notre travail.Nous remercions particulièrement notre encadreur, Madame Zoulel Kouki et notre co-encadreur, Madame Besma Fayech Châar pour leur encadrement de qualité dont il nous a fait bénécier aimablement, leur aideprécieuse, leurs remarques constructives, leur disponibilité et leur soutien inépuisable. Nos plus sincères remerciement sadressent aussi à :Tous les enseignants qui nous ont soutenus durant notre cursus universitaire et qui nous ont appris les bonnes connaissances pour réussir dans la vie professionnelle. Nos collègues qui ont contribué à laboutissement de ce travail par de nombreuses discussions, nous ne citerons pas de noms ici pour ne pas oublier certains.
  • 4. Table des matièresIntroduction générale 11 Etat dart 3 1.1 Le Problème du voyageur de commerce(PVC) . . . . . . . . . . . . . . 3 1.2 Le problème de tournées de véhicules(PTV) . . . . . . . . . . . . . . . 4 1.2.1 Dénition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2.2 Les variantes du problème . . . . . . . . . . . . . . . . . . . . . 5 1.2.3 Les caractéristiques et les diérents types du PTV . . . . . . . . 5 1.2.4 Les méthodes de résolution . . . . . . . . . . . . . . . . . . . . . 8 1.2.4.1 Méthodes de résolution exactes . . . . . . . . . . . . . 8 1.2.4.2 Lutilité des heuristiques . . . . . . . . . . . . . . . . 8 1.2.4.3 Métaheuristiques utiles pour la résolution du PTV . . 9 1.2.4.4 Comparaison de quelques algorithmes heuristiques . . 112 Etude théorique 14 2.1 Formulation mathématique . . . . . . . . . . . . . . . . . . . . . . . . 14 2.1.1 Formulation mathématique du problème du voyageur de com- merce(PVC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
  • 5. TABLE DES MATIÈRES vi 2.1.2 Formulation mathématique du problème de tournées des véhi- cules(PTV) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.1.3 Formulation mathématique du problème de tournées des véhi- cules à capacités limitées(PTV à capacités) . . . . . . . . . . . . 18 2.1.4 Formulation mathématique du problème de tournées des véhi- cules avec fenêtre de temps(PTV à fenêtre de temps) . . . . . . 19 2.2 Résolution des variantes PTV basée sur la recherche taboue(RT) . . . . 19 2.2.1 Principe de la RT . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.2.2 Algorithme de la méthode de recherche taboue . . . . . . . . . . 21 2.2.3 Choix de la solution initiale . . . . . . . . . . . . . . . . . . . . 22 2.2.4 La liste taboue . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.2.5 La Mémoire Adaptative . . . . . . . . . . . . . . . . . . . . . . 23 2.2.6 Le critère daspiration . . . . . . . . . . . . . . . . . . . . . . . 23 2.2.7 Le critère dintensication . . . . . . . . . . . . . . . . . . . . . 24 2.2.8 Les critères darrêt . . . . . . . . . . . . . . . . . . . . . . . . . 243 Etude conceptuelle 26 3.1 Spécication des besoins . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.1.1 Besoins fonctionnels . . . . . . . . . . . . . . . . . . . . . . . . 26 3.1.1.1 Diagramme des cas dutilisation . . . . . . . . . . . . 27 3.1.2 Besoins non fonctionnels . . . . . . . . . . . . . . . . . . . . . . 28 3.2 Conception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.2.1 Structure statique du système . . . . . . . . . . . . . . . . . . . 28 3.2.1.1 Description des classes . . . . . . . . . . . . . . . . . . 28 3.2.1.2 Diagramme de classes pour chaque problème . . . . . . 29 3.2.1.3 Diagramme de classes général . . . . . . . . . . . . . . 33
  • 6. TABLE DES MATIÈRES vii 3.2.2 Etude dynamique du système . . . . . . . . . . . . . . . . . . . 34 3.2.2.1 Diagramme de séquence : Visualisation dune solution dun problème TSP . . . . . . . . . . . . . . . . . . . . 35 3.2.2.2 Diagramme de séquence : Ajout dun problème VRP . 364 Réalisation 38 4.1 Environnement de travail . . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.1.1 Environnement matériel . . . . . . . . . . . . . . . . . . . . . . 38 4.1.2 Environnement logiciel . . . . . . . . . . . . . . . . . . . . . . . 39 4.1.2.1 DotNet . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.1.2.2 EDraw (conception) . . . . . . . . . . . . . . . . . . . 40 4.1.2.3 Latex (traitement du texte) . . . . . . . . . . . . . . . 40 4.1.2.4 Photoshop cs4 . . . . . . . . . . . . . . . . . . . . . . 41 4.2 Choix technologiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 4.2.1 Framework 3.5 . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 4.2.2 WPF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 4.2.3 Les langages de programmation . . . . . . . . . . . . . . . . . . 42 4.2.3.1 CSharp.net . . . . . . . . . . . . . . . . . . . . . . . . 42 4.2.3.2 XML . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 4.3 Réalisation de lapplication . . . . . . . . . . . . . . . . . . . . . . . . . 44 4.3.1 Page dacceuil . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 4.3.2 Page principale . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 4.3.3 Résolution dun problème PTV : Choix dune insatance . . . . . 46 4.3.4 Suppression dun problème . . . . . . . . . . . . . . . . . . . . . 47 4.3.5 Ajout dun problème . . . . . . . . . . . . . . . . . . . . . . . . 47
  • 7. TABLE DES MATIÈRES viiiConclusion générale 50Bibliographie 52A Réalisation de la carte graphique de grand Tunis 54
  • 8. Liste des gures2.1 Représentation graphique du problème TSP . . . . . . . . . . . . . . . 162.2 Représentation graphique du problème VRP . . . . . . . . . . . . . . . 183.1 Diagramme des cas dutilisation . . . . . . . . . . . . . . . . . . . . . . 273.2 Diagramme de classes pour le PVC . . . . . . . . . . . . . . . . . . . . 303.3 Diagramme de classes pour le PTV . . . . . . . . . . . . . . . . . . . . 313.4 Diagramme de classes pour le PTV à capacités . . . . . . . . . . . . . . 323.5 Diagramme de classes pour le PTV à fenêtres de temps . . . . . . . . . 333.6 Diagramme de classes général . . . . . . . . . . . . . . . . . . . . . . . 343.7 DS pour la visualisation dune solution au problème . . . . . . . . . . . 353.8 DS pour lajout dun problème . . . . . . . . . . . . . . . . . . . . . . . 374.1 Architecture de framework DotNet . . . . . . . . . . . . . . . . . . . . 404.2 Séparation code / design . . . . . . . . . . . . . . . . . . . . . . . . . 424.3 page dacceuil du problème de transport . . . . . . . . . . . . . . . . . 454.4 Interface de la page principale . . . . . . . . . . . . . . . . . . . . . . . 464.5 Interface dachage dune solution . . . . . . . . . . . . . . . . . . . . 464.6 Interface de conrmation de suppression . . . . . . . . . . . . . . . . . 474.7 Interface de choix dun problème . . . . . . . . . . . . . . . . . . . . . 47
  • 9. LISTE DES FIGURES x 4.8 Interface de saisie des données . . . . . . . . . . . . . . . . . . . . . . . 48 4.9 Interface de saisie du nom du problème . . . . . . . . . . . . . . . . . . 48 4.10 Interface de conrmation de lenregistrement . . . . . . . . . . . . . . . 49 A.1 Relation entre altitudes,niveaux et images . . . . . . . . . . . . . . . . 54 A.2 La zone achée de limage . . . . . . . . . . . . . . . . . . . . . . . . . 55 A.3 Directions de déplacement . . . . . . . . . . . . . . . . . . . . . . . . . 55
  • 10. Liste des tableaux1.1 Tableau des caractéristiques des problèmes issus des tournées de véhicules. 61.2 Comparaison entre la recherche Taboue et lalgorithme génétique appli- qués sur des problèmes de TSP. . . . . . . . . . . . . . . . . . . . . . . 12
  • 11. Introduction générale A vec la mondialisation , les délocalisations des centres de production et lexpansion des marchés, le transport revêt une importance ca- pitale en assurant les liaisons entre ces derniers. Le domaine detransport soulève un grand nombre de problèmes, très souvent diciles à résoudre demanière optimale.Ces problèmes concernent généralement le service dun ensemble de lieux appelés clients(pouvant être considérés ponctuels comme un site bien précis, ou longiligne comme unerue) à un coût minimum.Lintérêt pour ce genre dactivité est grandissant dans la vie actuelle, puisquelle peutsappliquer à de nombreux domaines, de plus, la mondialisation implique des coûtslogistiques de plus en plus importants pour les entreprises.Ainsi un élément fondamental de tout système logistique, est la gestion et la planica-tion des réseaux de distribution des ottes de véhicules.Lutilisation des modèles mathématiques doptimisation des tournées de véhicules, aété lun des plus beaux succès de la Recherche Opérationnelle au cours de la dernièredécennie. Les recherches récentes incluent des eorts signicatifs en formulation duproblème et en construction, analyse et implantation dalgorithmes.Lintérêt du recours à des méthodes pour loptimisation des activités de transport, de-vient évident dès que lon se rend compte de limportance des coûts de distribution.Cest pour cela que des eorts sont nécessaires an de développer des systèmes de trans-
  • 12. INTRODUCTION GÉNÉRALE 2port exibles et ecaces répondant aux préoccupations actuelles relatives à léconomieet à notre qualité de vie.
  • 13. 1CHAPITRE Etat dartIntroduction Le problème de transport est un problème vague qui contient plusieurs variantescommençant par le problème de voyageur de commerce jusquà atteindre le problèmede tournées des véhicules et ses diérentes variantes.La recherche de méthodes ecaces de résolution de ces problèmes a été à loriginedimportants développements en programmation mathématiques et en optimisationcombinatoire. Et comme les algorithmes exacts ne sont applicables quà des problèmesde taille souvent trop petite, nous nous concentrons plutôt sur les algorithmes heuris-tiques.Quels sont les diérents types de problèmes de transport ?Quels sont les algorithmes utilisés pour résoudre ces diérents problèmes ?Quel est lalgorithme le plus approprié aux problèmes choisis ?1.1 Le Problème du voyageur de commerce(PVC) Le problème du voyageur de commerce(PVC) appelé en anglais Traveling Sales-man Problem (TSP) est lun des plus connu des problèmes doptimisation combina-toire.Son énoncé est le suivant : étant donné n points (des villes ) et les distances sé-parant chaque point, on va trouver un chemin de longueur totale minimale qui passe
  • 14. CHAPITRE 1. ETAT DART 4exactement une fois par chaque point et revienne au point de départ.Ce problème est plus compliqué quil ny paraît ; on ne connaît pas de méthode derésolution permettant dobtenir des solutions exactes en un temps raisonnable pour degrandes instances (grand nombre de villes) du problème. Pour ces grandes instances,on devra donc souvent se contenter de solutions approchées, car on se retrouve face àune explosion combinatoire : le nombre de chemins possibles passant par 69 villes estdéjà un nombre dune longueur de 100 chires. Pour comparaison, un nombre dunelongueur de 80 chires permettrait déjà de représenter le nombre datomes dans toutlunivers connu.Rigoureusement, résoudre le problème du voyageur de commerce est une tâche dicile :on doit trouver le plus petit cycle hamiltonien (au sens quon doit prouver quil nenexiste pas de longueur inférieure) dans le graphe dentrée. Toutefois il arrive quon sesatisfasse dune bonne solution, cest-à-dire dun cycle hamiltonien qui ne soit pastrop loin de la meilleure solution possible.[2]1.2 Le problème de tournées de véhicules(PTV)1.2.1 Dénition Le problème de tournées de véhicules(PTV, connu par VRP) est une classe deproblèmes de recherche opérationnelle et doptimisation combinatoire. Il sagit de dé-terminer les tournées dune otte de véhicules an de livrer une liste de clients. Le butest de minimiser le coût de livraison des biens. Ce problème est une extension clas-sique du problème du voyageur de commerce, et fait partie de la classe des problèmesNP-complet(Problème dont on ne peut pas trouver un algorithme polynomial pour lerésoudre).[3]Dans ce qui suit nous nous intéressons uniquement des variantes statiques du PTV.
  • 15. CHAPITRE 1. ETAT DART 51.2.2 Les variantes du problème Quelques variantes classiques du problème de tournées de véhicules : • Problème de tournées de véhicules avec contraintes de capacité : Les véhicules ont une capacité demport limitée (quantité, taille, poids, etc.). • Problème de tournées de véhicules avec fenêtre de temps : Pour chaque client on impose une fenêtre de temps dans laquelle la livraison doit être eectuée. • Problème de tournées de véhicules avec collecte et livraison : Un certain nombre de marchandises doivent être déplacées de sites de collecte vers des sites de livraisons.1.2.3 Les caractéristiques et les diérents types du PTV Les caractéristiques sont représentées comme suit :a) Une tournée contient des collectes et des livraisons, toutes les livraisons doiventêtre eectuées avant les collectesb) Une tournée ne peut contenir uniquement des collectes ou uniquement deslivraisons.c) A tout moment, la capacité du véhicule doit être respectéed) On doit utiliser tous les véhicules disponiblese) Toutes les tournées commencent et se terminent dans le même dépôt (1 dépôt)f) Les véhicules sont homogènes : ont la même capacitég) Pour chaque collecte (client source), une livraison (client destination) lui estassociée, cest-à-dire quil y a des livraisons que lon ne peut pas faire sans avoir faiten amont des collectes (Contrainte de précédence )h) Si un véhicule arrive sur un client avant la fenêtre le temps de ce dernier alors ildoit attendre le début de la fenêtre de temps pour commencer son service (contraintede fenêtre de temps)i) Un véhicule ne peut eectuer son service sil arrive après la fenêtre de temps(contrainte rigide de fenêtre de temps)j) Pour chaque client, on eectue deux services, une livraison puis une collecte
  • 16. CHAPITRE 1. ETAT DART 6k) Chaque client est lié à un dépôt, il ne peut être servi que par ce dernierl) Tous les véhicules doivent revenir au dépôt à la n de la tournée.Dans le tableau de la gure 1.1, nous récapitulons les diérents problèmes detournées de véhicules en déterminant les caractéristiques présentées ci-dessus : a) b) c) d) e) f) g) h) i) j) k) l) VRP X X X MDVRP X X SDVRP X X X HVRP X X OVRP X X X X VRPB X X X X X X VRPTW X X X X X MVRPB X X X X VRPPD X X X X VRPSPD X X X X VRPBTW X X X X X X MVRPBTW X X X X X VRPPDTW X X X X X X VRPSPDTW X X X X X X Tableau 1.1 Tableau des caractéristiques des problèmes issus des tournées de véhicules.
  • 17. CHAPITRE 1. ETAT DART 7 VRP : Vehicle Routing Problem, problème de tournées de véhicules.MDVRPB : Multi Depot Vehicle Routing Problem, problème de tournées de véhicules,multi-dépôtsSDVRP : Site-Depenent Vehicle Routing Problem, problème de tournées de véhiculesavec aectation des dépôtsHVRP : Heterogeneous Vehicle Routing Problem, problème de tournées avec des véhi-cules à capacité variableOVRP : Open Vehicle Routing Problème, problème de tournées de véhicules ouvertVRPB : Vehicle Routing Problem with Backhaul, problème de tournées de véhiculesavec livraison et collecteVRPTW : Vehicle Routing Problem with Time Window, problème de tournées de vé-hicules avec fenêtre de tempsMVRPB : Mix Vehicle Routing Problem with Backhaul, problème de tournées de véhi-cules avec livraison et collecte, mixteVRPPD : Vehicle Routing Problem with PickUp and Delivery, problème de tournéesde véhicules avec livraison et collecteVRPSPD : Vehicle Routing Problem with Simultaneous PickUp and Delivery, problèmede tournées de véhicules avec livraison et collecte simultanéeVRPBTW : Vehicle Routing Problem with Backhaul and Time Window, problème detournées de véhicules avec livraison et collecte et fenêtre de tempsMVRPBTW : Mix Vehicle Routing Problem with Backhaul and Time Window, pro-blème de tournées de véhicules avec livraison et collecte et fenêtre de temps, mixteVRPPDTW : Vehicle Routing Problem with PickUp and Delivery and Time Window,problème de tournées de véhicules avec livraison et collecte et fenêtre de tempsVRPSPDTW : Vehicle Routing Problem with Simultaneous PickUp and Delivery andTime Window.
  • 18. CHAPITRE 1. ETAT DART 81.2.4 Les méthodes de résolution1.2.4.1 Méthodes de résolution exactes Les méthodes exactes reposent sur lutilisation dalgorithmes qui mènent de façonsûre vers la solution optimale. Le principe essentiel de ces méthodes est dénumérer demanière implicite lensemble des solutions de lespace de recherche.Malgré limportant temps de calcul que nécessitent, généralement, ces approches, plu-sieurs méthodes ont été développées. Elles permettent de résoudre ecacement desproblèmes allant jusquà 50 clients.Mais vu que les méthodes exactes restreignent le nombre des clients envisageables dansles problèmes et impliquent, dans la plupart des cas, un temps de calcul important,lélaboration et lutilisation des heuristiques se sont avérées dune grande utilité. Cesméthodes permettent de gérer des problèmes de grandes tailles avec des temps derésolution et des résultats acceptables et admissibles.1.2.4.2 Lutilité des heuristiques Comme pour la plupart des problèmes NP-complet il est dicile de résoudre desinstances de grande taille de façon optimale. On se contente alors de trouver des so-lutions de bonne qualité . An dobtenir des solutions dans des temps de calculsraisonnables, on se tourne généralement vers des méthodes approchées à base dheu-ristique pour construire une première solution que lon améliore ensuite avec dautresheuristiques ou des méthodes de recherche locale.Lutilisation des heuristiques est nécessaire pour résoudre des problèmes appelés NP-Complet soit non-déterministe polynomial. Cette appellation vient du fait que plus onaugmente le nombre de clients à visiter lors dune tournée plus on a de la diculté àdonner une bonne réponse dans un temps respectable. De plus, on ne peut déterminerune réponse exacte pour ces problèmes puisque cela prendrait beaucoup trop de tempset cause un nombre earant de possibilités.Voici la formule pour calculer le nombre de possibilités : 1/2(n-1) !
  • 19. CHAPITRE 1. ETAT DART 91.2.4.3 Métaheuristiques utiles pour la résolution du PTV Les métaheuristiques étant très généralistes, elles peuvent être adaptées à tout typede problème doptimisation pouvant se réduire à une boîte noire . Elles sont souventmoins puissantes que des méthodes exactes sur certains types de problèmes. Elles negarantissent pas non plus la découverte de loptimum global en un temps ni. Cepen-dant, un grand nombre de problèmes réels nest pas optimisable ecacement par desapproches purement mathématiques, les métaheuristiques peuvent alors être utiliséesavec prot. • Algorithme de colonies de fourmis : Un algorithme de colonies de fourmis est un algorithme itératif à population où tous les individus partagent un savoir commun qui leur permet de guider leurs futurs choix et dindiquer aux autres individus des directions à suivre ou au contraire à éviter. Fortement inspiré du déplacement des groupes de fourmis, cette méthode a pour but de construire les meilleures solutions à partir des éléments qui ont été explo- rés par dautres individus. Chaque fois quun individu découvre une solution au problème, bonne ou mauvaise, il enrichit la connaissance collective de la colonie. Ainsi, chaque fois quun nouvel individu aura à faire des choix, il pourra sappuyer sur la connaissance collective pour pondérer ses choix.[4] • Lalgorithme génétique : Il sagit plus précisément dune classe des algorithmes évolutionnistes. Les al- gorithmes génétiques sont des algorithmes doptimisation sappuyant sur des techniques dérivées de la génétique et des théories de Darwin sur lévolution : croisements, mutations, sélection...Les algorithmes génétiques travaillent sur une population et peuvent être décomposés en trois phases : une phase dévaluation, une phase de sélection et une phase de recombinaison.[5] • Recuit simulé : Le recuit simulé sappuie sur lalgorithme de Metropolis-Hastings, qui permet de décrire lévolution dun système thermodynamique. Par analogie avec le processus
  • 20. CHAPITRE 1. ETAT DART 10 physique, la fonction à minimiser deviendra lénergie E du système. On introduit également un paramètre ctif, la température T du système. Partant dune solution donnée, en la modiant, on en obtient une seconde. Soit celle-ci améliore le critère que lon cherche à optimiser, on dit alors quon a fait baisser lénergie du système, soit celle-ci le dégrade. Si on accepte une solution améliorant le critère, on tend ainsi à chercher loptimum dans le voisinage de la solution de départ. Lacceptation dune mauvaise solution permet alors dexplorer une plus grande partie de lespace de solution et tend à éviter de senfermer trop vite dans la recherche dun optimum local.[6] • Algorithme doptimisation par essaims particulaires : Cette méthode doptimisation se base sur la collaboration des individus entre eux. Elle a dailleurs des similarités avec les algorithmes de colonies de fourmis, qui sappuient eux aussi sur le concept dauto-organisation. Cette idée veut quun groupe dindividus peu intelligents puisse posséder une organisation globale com- plexe. Ainsi, grâce à des règles de déplacement très simples (dans lespace des solu- tions), les particules peuvent converger progressivement vers un minimum local. Cette métaheuristique semble cependant mieux fonctionner pour des espaces en variables continues.[7] • Recherche taboue : La méthode taboue est une méthode de recherche locale. Son principe repose sur une méthode de déplacement sur lespace des solutions, tout en cherchant constamment à améliorer la meilleure solution courante et en conservant en mé- moire la liste des précédents déplacements et ainsi guider la recherche en dehors de zones précédemment parcourues. En général, on ne va pas garder tous les dé- placements (trop couteux en mémoire), mais on va seulement empêcher laccès à certaines solutions pendant un certain nombre ditérations. La méthode consiste à se déplacer dune solution vers une autre par observation
  • 21. CHAPITRE 1. ETAT DART 11 du voisinage de la solution de départ et à dénir des transformations taboues que lon garde en mémoire.[8]1.2.4.4 Comparaison de quelques algorithmes heuristiques Dans notre projet on a choisi de travailler avec la méthode de recherche tabouepuisque : • Les algorithmes génétiques sont coûteux en temps de calcul, à cause quils manipulent plusieurs solutions simultanément. Cest le calcul de la fonction de performance qui est le plus pénalisant, et on optimise généralement lalgorithme de façon à éviter dévaluer trop souvent cette fonction. Ensuite, lajustement dun algorithme génétique est délicat. Lun des problèmes les plus caractéristiques est celui de la dérive génétique, qui fait quun bon individu se met, en lespace de quelques générations, à envahir toute la popu- lation. On parle dans ce cas de convergence prématurée, qui revient à lancer à une recherche locale autour dun minimum... qui nest pas forcément loptimum attendu. Les méthodes de sélection proportionnelle peuvent en particulier favoriser ce genre de dérive. Un autre problème surgit lorsque les diérents individus se mettent à avoir des performances similaires : les bons éléments ne sont alors plus sélectionnés, et lalgorithme ne progresse plus. • Pour le recuit simulé, une fois lalgorithme piégé à basse température dans un minimum local, il lui est impossible de sen sortir tout seul. Plusieurs solutions ont été proposées pour tenter de résoudre ce problème, par exemple en acceptant une brusque remontée de la température, de temps en temps, pour relancer la recherche sur dautres régions plus éloignées. Il est également possible dempêcher la température de descendre trop bas : on lui donne une valeur minimale au delà de laquelle on ne change plus de palier de température. Mais si cette valeur est trop grande, lalgorithme passera son temps
  • 22. CHAPITRE 1. ETAT DART 12 à augmenter et diminuer son énergie car il acceptera trop de perturbations dégradantes et il narrivera pas à explorer à fond une vallée. Ainsi, il est fort possible que lalgorithme arrive à trouver la vallée dans laquelle se cache un minimum global, mais il aura beaucoup de mal à lex- plorer et donc risque de sen éloigner sans avoir décelé la solution au problème...[9]Meme si on a essayé de tester le problème de voyageur de commerce (TSP) par appli-cation de recherche taboue et de lalgorithme génétique pour la comparaison entre eux,on a obtenu la variation du cout en fonction de la solution optimale présenté dans letableau 2. RT AG Problème Taille Solution optimale cout pourcentage cout pourcentage Eil76 76 545 545 100 572 95 Eil101 101 642 657 97 711 90 Gr96 96 512 527 97 558 91 KroA100 100 21285 21521 98 22638 94 KroC100 100 20750 20940 99 22626 91 KroD100 100 21249 21835 97 24134 88 Lin105 105 14382 14878 96 15490 92 Pr76 76 108159 109044 99 115553 93 Tableau 1.2 Comparaison entre la recherche Taboue et lalgorithme génétique appliqués sur des problèmes de TSP.
  • 23. CHAPITRE 1. ETAT DART 13Conclusion Pour récapituler, on peut dire que le problème de voyageur de commerce (TSP)et les instances de grande taille du problème de tournées de véhicules (VRP, CVRP,VRPTW,...) sont NP-complet ; pour les résoudre il faut utiliser des méthodes heuris-tiques.Dans le cadre de notre projet de n détudes nous nous focalisons sur la recherchetaboue que nous avons choisie pour les performances quelle présente comparées auxautres heuristiques.
  • 24. 2CHAPITRE Etude théoriqueIntroduction Dans ce chapitre, nous nous focalisons sur létude théorique de quelques problèmesprésentés dans le premier chapitre. Nous déterminons en premier lieu les formulationsmathématiques qui les concernent et nous nous intéressons aussi à létude de lalgo-rithme de recherche taboue.2.1 Formulation mathématique Les problèmes de tournées de véhicules gurent parmi les problèmes doptimisationcombinatoire où lensemble de paramètres soumis à des contraintes.Le but de résolution de ces problèmes est lamélioration dun certain critère ou unensemble de critères.2.1.1 Formulation mathématique du problème du voyageur de commerce(PVC) Plusieurs modèles de tournées de véhicules sont des variantes et extensions du fa-meux problème du voyageur de commerce (PVC, connue par :TSP). Le TSP consisteen la détermination du parcours de coût minimal (distance, temps, etc.), dun seulvéhicule partant dune localité, visitant n autres localités, et revenant à son départ.
  • 25. CHAPITRE 2. ETUDE THÉORIQUE 15En théorie de graphe, le problème consiste à chercher le circuit hamitonien de coûtminimal dans un graphe complet G= (V, A) valorisé (cout cij associé a chaque arc (i,j)de A).voici la signication des notations quon va utilisé dans la formulation du problème :n=|V|, nombre de sommets du réseaucij =cout de larcs (i,j)bj = nombre de s arcs incidents au sommet jai =nombre des arcs partant de sommetxij = 1 si larc (i,j) appartient à la tournéexij = 0 sinonDonc la fonction objective a pour formulation : n n minimiser cij xij i=1 j=1Mais cette formulation nécessite des contraintes à respecter qui sont : • Tout les villes doit être visitée et quittée une et une seul fois, soit mathématique- ment : n xij = bj = 1 i=1 n xij = ai = 1 j=1 • Il faut assurée la continuité dun tournée : une véhicule entre un sommet, il faudra quil sort. Soit mathématiquement : n n xip xpj = 0 p = 1, 2, 3, ...n i=1 j=1
  • 26. CHAPITRE 2. ETUDE THÉORIQUE 16 La gure 2.1 consiste en une représentation graphique du TSP : Figure 2.1 Représentation graphique du problème TSP2.1.2 Formulation mathématique du problème de tournées des véhicules(PTV) Le problème de tournées des véhicules (PTV, connu par VRP) est une généralisationdu TSP au cas où on désire construire m circuit hamiltoniens de coût total minimal,ayant un sommet (le dépôt). Ce problème peut être considéré comme une versionsimpliée de CVRP où la capacité de chaque véhicule est supérieure à la totalité de lademande (ou considérée inni) et où les m véhicules sont utilisés.On va travailler avec les mêmes variables utilisés dans le TSP mais en posant : a1 = b1 = m ai = bi = 1
  • 27. CHAPITRE 2. ETUDE THÉORIQUE 17Donc la fonction objective à pour formulation : n n m minimiser cij xij k i=1 j=1 k=1Cette formulation nécessite des contraintes à respecter qui sont : • Tout les villes doit être visitées et quittées une et une seule fois et par une seule véhicule, soit mathématiquement : n m xk = 1 j = 1, 2, 3, ...n ij i=1 k=1 n m xk = 1 i = 1, 2, 3, ...n ij j=1 k=1 • Il faut assurée la continuité dun tournée : une véhicule entre un sommet, il faudra quil sort. Soit mathématiquement : n n xk ip − xk = 0 p = 1, 2, 3, ...n k = 1, 2, 3, ...m ip i=1 j=1 • Respect du nombre de véhicules : la disponibilité des véhicules nest pas dépassée : n xk ≤ 1 j = 1, 2, 3, ...n i1 i=1 n xk ≤ 1 i = 1, 2, 3, ...n 1j j=1
  • 28. CHAPITRE 2. ETUDE THÉORIQUE 18 La gure 2.2 consiste en une représentation graphique du VRP : Figure 2.2 Représentation graphique du problème VRP2.1.3 Formulation mathématique du problème de tournées des véhicules à capacités limitées(PTV à capacités) Le problème de tournées de véhicules à capacités (connu par CVRP) est une géné-ralisation du VRP au cas où chaque sommet est aecté dun poids (demande) connu.On va utiliser les mêmes variables que VRP en ajoutant quelques uns.Soient :m= nombre de véhicule k.Dk = capacité du véhicule k.di = demande du sommet i (d1 =0)Pour le Variable de décision :xk = 1 si larc (i,j) est parcouru par la véhicule k ijxk = 0 sinon ij
  • 29. CHAPITRE 2. ETUDE THÉORIQUE 19Donc la fonction objective a pour formulation : n n m minimiser cij xij k i=1 j=1 k=1Tout les contraintes de m-TSP doit être vérier. En plus la capacité des véhicules doitêtre respectée : n n di ( xij k ) ≤ Dk i=1 j=12.1.4 Formulation mathématique du problème de tournées des véhicules avec fenêtre de temps(PTV à fenêtre de temps) Ce problème est connu par VRPTW et cest une généralisation du CVRP qui mo-délise les contextes de transport du monde réel en prenant compte à laspect temporeldes opérations de transport. Chaque client possède un intervalle de temps, cest-à-dire,il exige un intervalle de temps dans lequel il soit servi.Toutes les contraintes de CVRP doit être vérieés.Soient :tk =temps nécessaire au véhicule k pour décharger ou charger dans le sommet i (tk = 0) i 1tk = temps nécessaire au véhicule k pour traverser larc (i,j) (tk =inni). ij ijEn assurant la non-violation des contraintes temporelles [10] : xk (Dateservicei + tk + tk Dateservicej ) ≤ 0 ij ij i oi ≤ Dateservicei ≤ ci2.2 Résolution des variantes PTV basée sur la re- cherche taboue(RT) En optimisation combinatoire, de nombreux problèmes savèrent souvent diciles àrésoudre de manière exacte. Ceci nest pas dû à un manque de connaissances mathéma-tiques, mais plutôt à des problèmes techniques. En eet, la résolution dun problème
  • 30. CHAPITRE 2. ETUDE THÉORIQUE 20dans lequel on considère des instances de taille comparable à celle rencontrées dans lapratique conduit souvent à se heurter à des problèmes de taille mémoire et de tempsde calcul trop importants.La méthode taboue ou aussi la recherche taboue a été développée respectivement par Glover et Hansen .Cette méthode fait appel à un ensemble de règles et de mécanismes généraux pourguider la recherche de manière intelligente à travers lespace des solutions. Elle sest ré-vélée particulièrement ecace et a été appliquée avec succès à de nombreux problèmesNP-complets.2.2.1 Principe de la RT La méthode taboue est perçue comme une généralisation des méthodes daméliora-tion locales traditionnelles. En eet, tout comme celles-ci explore itérativement lespaceS des solutions du problème à optimiser jusquà atteindre un optimum local. Toutefois,contrairement aux méthodes itératives classiques qui sarrêtent dès quil ny a plus desolutions permettant daméliorer la fonction objective, ici, la solution suivante retenueest dénie comme étant la moins mauvaise solution parmi les éléments du voisinage.Ceci permet à la méthode taboue de poursuivre la recherche de solutions meilleuresmême si cela entraine une dégradation de la fonction objective. Autrement dit, on choi-sit parmi les solutions voisines de la solution courante, celle dont la valeur de la foctionobjective est inférieure ou légèrement supérieure.Cette modication du processus dexploration rend donc la méthode taboue insensibleaux optima locaux, mais elle introduit le risque de cycler dès que lon sort de lunde ces optima, en y retournant aussitôt. Cest là que la notion de mémoire trouve sajustication.Pour régler ce problème, la méthode taboue conserve des informations sur le chemi-nement récent eectué à travers lensemble des solutions an de sintroduire certainestransformations de la solution courante qui pourrait ramener la procédure vers dessolutions déjà rencontrées. Ces transformations sont alors déclarées taboue, doù le
  • 31. CHAPITRE 2. ETUDE THÉORIQUE 21nom de la méthode. Ceci a pour eet de restreindre laccès à certaines solutions et parsuite dorienter en quelques sorte la recherche. Néanmoins, pour conserver lapprochesusamment de exibilité, le caractère tabou de ces transformations ne doit pas êtremaintenu en permanence.En limitant la durée de vie des tabous, on permet à la méthode de remettre en questionses choix passés (une fois le risque de cycler disparus) et ainsi de mener une explorationbeaucoup plus large du domaine des solutions.Dans la description que nous venons de faire, il est clair que le type de voisinage ainsique les paramètres de la méthode taboue sont déterminants pour avoir une bonnesolution.2.2.2 Algorithme de la méthode de recherche taboue 1. Choisir une solution initiale X0 et linsérer dans la mémoire adaptative et dans la liste taboue. 2. Poser f ∗ =f (X0 ) et k=0 (k étant le nombre ditérations eectuées). 3. Tant que critère darrêt non satisfait (k ≤ nombre ditérations maximal) faire : (a) k=k+1. (b) Choisir une solution aléatoire L de la mémoire adaptative. (c) Faire des permutations à lintérieur de la liste L. (d) Vérier que la liste L satisfait les conditions après les permutations. (e) Ajouter L à la liste Taboue si elle nexiste pas auparavant. (f) Si L est une bonne solution, lajouter ou la remplacer par la mauvaise solution de la mémoire adaptative. (g) Si f (L) f ∗ alors f ∗ = f (L). 4. Fin tant que.Nous allons donc, dans ce qui suit, décrire chacun des paramètres nécessaires à laméthode taboue et de dégager son importance vis-à-vis du processus de la recherche.
  • 32. CHAPITRE 2. ETUDE THÉORIQUE 222.2.3 Choix de la solution initiale Etant donné que la recherche avec tabous nest en fait quun algorithme de des-cente un peu plus élaboré, il soit évident que le choix de la solution de départ inueconsidérablement sur la qualité de la solution ainsi que sur le temps dexécution. Eneet, partir dune solution médiocre nous demanderait plus de temps pour atteindrela meilleure solution, mais débuter avec une bonne solution impliquerait lutilisationdune autre heuristique (classique) pour sa construction. En outre, commencer par unebonne solution ne voudrait en aucun cas dire quelle soit assez proche de la meilleuresolution.2.2.4 La liste taboue La dénition et la gestion de la liste taboue jouent un rôle primordial dans laméthode taboue. Celle-ci correspond à une sorte de mémoire à court terme qui indiqueà la procédure où elle est déjà été, lui permettant donc de diriger son exploration versdes régions du domaine des solutions non encore visitées.La façon le plus simple de mettre en oeuvre cet élément de la méthode consiste à garderune liste des derniers k solutions visitées et dinterdire à la procédure dy retourner.Malheureusement, si cette méthode empêche de retourner immédiatement à la solutionprécédente, elle ne permet pas déliminer complètement le risque de cyclage. De plus,elle empêche la procédure de visiter certaine partie de lespace qui aurait pu nousdonner de bons résultats.Tout ceci fait en sorte que la taille de cette liste taboue doit convenablement êtrechoisie de façon à avoir un compromis entre la exibilité (petite taille de la liste) etlélimination du risque de cyclage (grande taille de la liste). Cette taille est dautantplus dicile à déterminer quelle peut dépendre de la taille et de la nature du problème.
  • 33. CHAPITRE 2. ETUDE THÉORIQUE 232.2.5 La Mémoire Adaptative Cest une mémoire centrale chargée de stocker les composantes des meilleures solu-tions rencontrées. Ces composantes sont combinées an de créer de nouvelles solutions.Au début de la recherche, la mémoire centrale contient des composantes provenant desolutions très diverses et le processus de combinaison aura donc tendance à créer unediversité de nouvelles solutions.Plus la recherche avance et plus la mémoire centrale aura tendance à ne mémoriser queles composantes dun sous-ensemble très restreint de solutions. La recherche devientdonc petit à petit un processus dintensication.2.2.6 Le critère daspiration Les tabous sont un mécanisme dont le but principal est dempêcher le cyclage de laméthode, mais ceux-ci peuvent savérer parfois trop forts et restreindre ainsi inutilementlexploration du domaine des solutions. En particulier, lorsque les tabous sont dénis enfonction des transformations, ils ninterdisent pas seulement de retourner à la solutionprécédente, mais à tout un sous ensemble de solutions dont certaines peuvent ne pasavoir été encore visitées.Il faut donc quil y ait un mécanisme inverse à celui des tabous qui permettre derévoquer le statut taboue dune transformation si son application à la solution courantepermet datteindre une solution jugée intéressante, sans pour autant introduire unrisque de cyclage dans le processus.Cest le concept de critère daspiration (ou fonction daspiration) qui remplit ce rôle.Il est à noter toutefois, que le critère daspiration perd toute son utilité si lon stockela solution entière dans la liste taboue. En eet, dans ce cas, toute annulation duncritère tabou amène à un cyclage.De nombreux critères daspiration ont été proposés dont certains sont très sophistiqués.Le critère le plus simple à mettre en oeuvre consiste à révoquer le statut tabou associé àune transformation si cela permet dobtenir une solution plus bénéque que la meilleure
  • 34. CHAPITRE 2. ETUDE THÉORIQUE 24solution rencontrée jusquà présent. Cest évidement un critère très sévère qui ne devraitpas être souvent vérié. Il najoute donc pas beaucoup de exibilité à la méthode, maisil lui évite de commettre des oublis agrants lorsque ce genre de situation se présente.2.2.7 Le critère dintensication Lidée à la base de lintensication consiste à retourner périodiquement visiter deszones de lespace de recherche qui semblent particulièrement prometteuses.De nombreuses techniques ont été proposées : • Repartir de bonnes solutions déjà rencontrées . • Reconstruire une solution de départ qui tente de combiner des attributs qui ont été présents souvent dans les congurations visitées . • Geler certains attributs qui ont été souvent présents dans les congurations visi- tées ou dans les congurations délite relevées.2.2.8 Les critères darrêt Le critère ou la condition darrêt est très importante dans nimporte quel algorithmeet en particulier pour les algorithmes doptimisation combinatoire dont le temps dexé-cution est un facteur primordial. Dans le cas de la recherche avec tabous, on peut citerdeux critères darrêts essentiels.Le premier consisterait à xer un nombre maximal ditérations (solutions visitées) à nepas dépasser et ce en fonction de la taille du problème. Ce critère nest toutefois pastrès signicatif.Le deuxième serait de sarrêter si après un nombre ditérations donné, aucune amélio-ration de la meilleure solution na eu lieu.
  • 35. CHAPITRE 2. ETUDE THÉORIQUE 25Conclusion Dans ce chapitre on a parlé dans une première partie de formules mathématiquesspéciées au problème de voyageur de commerce et aux problèmes des tournées desvéhicules, ces formules nous ont aidé à mieux comprendre les diérentes contraintes etde traités ces problèmes. En deuxième partie, on a détaillé lalgorithme de recherchetabou en spéciant son principe de base, son comportement, et ses critères damélio-ration tel que laspiration, lintensication et ses critères darrêt, ainsi que les listesutilisées tel que la liste taboue et la mémoire adaptative.
  • 36. 3CHAPITRE Etude conceptuelleIntroduction Ce chapitre est consacré à la conception de la structure et du fonctionnement denotre système. Nous dénissons, tout dabord, les besoins de lapplication en termesdexigences fonctionnelles et non fonctionnelles, puis nous décrivons une vue appro-fondie qui explique les diagrammes des classes en abordant la partie de conceptiondétaillée. Enn nous développons quelques scénarios en se basant sur les diagrammesde séquences qui représentent une vue dynamique de notre application.3.1 Spécication des besoins Dans cette partie nous étudions les besoins fonctionnels et non fonctionnels de notresystème.3.1.1 Besoins fonctionnels Les besoins fonctionnels constituent une sorte de promesse ou de contrat au com-portement dapplication générée.Donc dans cette partie nous représentons une description du diagramme des cas duti-lisation.
  • 37. CHAPITRE 3. ETUDE CONCEPTUELLE 273.1.1.1 Diagramme des cas dutilisation Ce diagramme permet de formaliser les besoins. Cest le diagramme principal dumodèle UML, celui où sassure la relation entre lutilisateur et les objets que le systèmemet en oeuvre.Dans notre projet nous avons localisé un principal acteur qui est : lutilisateur.Un utilisateur peut gérer un problème, c.à.d. quil peut lajouter ou le supprimer.Il peut aussi résoudre un problème en choisissant son type et linstance quil va larésoudre.Une autre fonctionnalité consiste dans la visualisation de la solution résolue.Il peut aussi gérer une instance du problème soit par lajout, soit par la suppression,soit par la modication. Figure 3.1 Diagramme des cas dutilisation
  • 38. CHAPITRE 3. ETUDE CONCEPTUELLE 283.1.2 Besoins non fonctionnels Les besoins non fonctionnels peuvent être considérés comme des besoins fonctionnelsspéciaux. Parfois, ils ne sont pas rattachés à un cas dutilisation particulier, mais ilscaractérisent tout le système (larchitecture, la sécurité, le temps de réponse, etc.). Lesystème doit garantir les besoins opérationnels suivants : • Le temps de réponse de lapplication doit être rapide. • Les interfaces doivent être conviviales et claires. • Le système doit être souple pour une extension future (ajouter des nouvelles fonctionnalités). • Lapplication doit préserver une bonne qualité en termes de gestion derreur.3.2 Conception3.2.1 Structure statique du système Elle est représentée sous forme dun diagramme de classe car cest le plus utiliséet le plus indispensable. Il représente larchitecture conceptuelle du système : il décritles classes que le système utilise, ainsi que leurs liens. Ces derniers représentent unemboîtage conceptuel (héritage) ou une relation organique (agrégation).3.2.1.1 Description des classes Dans notre projet, on a détecté 9 classes dont quatre représentent les problèmestraités dans notre projet. Ces classes sont : • Classe Dépôt : qui est caractérisé par un numéro et des coordonnées XD et YD. • Classe Client : qui est caractérisé par un numéro et des coordonnées x et y. • Classe ClientQuantite : qui hérite de Client , mais elle est caractérisée de plus par une quantité. • Classe ClientTw : qui hérite de ClientQuantite , mais elle est caractérisée de
  • 39. CHAPITRE 3. ETUDE CONCEPTUELLE 29 plus par une fenêtre de temps. • Classe PVC : cest une classe qui représente le problème de voyageur de commerce. • Classe PTV : cest une classe qui représente le problème de tournées des véhicules, elle hérite de PVC et elle est liée à un nombre ni des véhicules qui ont une capacité innie. • Classe PTVC : cest une classe qui représente le problème de tournées des véhi- cules à capacités, elle hérite de PTV et elle est liée à un nombre ni des véhicules, mais quils ont une capacité nie. • Classe PTVFT : cest une classe qui représente le problème de tournées des véhi- cules avec fenêtres de temps, elle hérite de PTVC et elle est caractérisée par une contrainte de temps quil faut la respecter. • Classe véhicule : qui est caractérisée par une capacité nie ou innie.3.2.1.2 Diagramme de classes pour chaque problème Dans la gure 3.2 on a une classe PVC qui constitue un agrégat pour les deux classeClient et Dépôt.Elle a aussi un lien avec la classe Véhicule et elle à des méthodes tel que la rechercheTabou, chercherChemin...
  • 40. CHAPITRE 3. ETUDE CONCEPTUELLE 30 Figure 3.2 Diagramme de classes pour le PVC Dans la gure 3.3 on a la même présentation que celle de PVC sauf que le nombredes véhicules dans le PTV passe de 1 à plusieurs.
  • 41. CHAPITRE 3. ETUDE CONCEPTUELLE 31 Figure 3.3 Diagramme de classes pour le PTV Dans la gure 3.4 on a aussi le même principe que les précédentes sauf que pourPTV à capacités le client possède une quantité et lattribut capacité de la classeVéhicule va avoir une valeur nie.
  • 42. CHAPITRE 3. ETUDE CONCEPTUELLE 32 Figure 3.4 Diagramme de classes pour le PTV à capacités Dans la gure 3.5 on a une présentation du PTV à fenêtres de temps dans laquelleune classe PTVFT est liée à la classe Véhicules, Dépôt et ClientTw (qui posséde à partla quantité, une fenetre de temps).
  • 43. CHAPITRE 3. ETUDE CONCEPTUELLE 33 Figure 3.5 Diagramme de classes pour le PTV à fenêtres de temps3.2.1.3 Diagramme de classes général Après quon a détaillé les diagrammes de classes chacun à part, on va les rassemblerensemble dans un seul diagramme, en cherchant des propriétés communes entre eux.
  • 44. CHAPITRE 3. ETUDE CONCEPTUELLE 34 Figure 3.6 Diagramme de classes général3.2.2 Etude dynamique du système Un diagramme de séquence montre les interactions entre les systèmes arrangés enséquences dans le temps et les messages échangés. Dans cette partie, nous présenteronsdeux diagrammes de séquences illustrant deux scénarios de notre application.
  • 45. CHAPITRE 3. ETUDE CONCEPTUELLE 353.2.2.1 Diagramme de séquence : Visualisation dune solution dun pro- blème TSPDans le diagramme de séquence : visualisation dune solution Tsp, lorsque lutilisateurclique sur un problème tsp existant dans larbre des problèmes, une méthode selection-nerTsp() de la classe choix est invoqué.Dans le code de cette méthode on fait appel à la méthode chargerFichier de la classeTsp qui a le rôle de chargement du chier XML, ensuite elle invoque la méthode des-sinerRoute de la classe Tsp pour dessiner les routes et enn elle invoque la méthodedessinerVille pour dessiner les villes. Figure 3.7 DS pour la visualisation dune solution au problème
  • 46. CHAPITRE 3. ETUDE CONCEPTUELLE 363.2.2.2 Diagramme de séquence : Ajout dun problème VRP Dans ce diagramme de séquence, une méthode ajouter de la classe choix estinvoquée, dans laquelle on fait appel aux méthodes : • SaisirNbVehicule : dans laquelle on fait appel à SetNbVehicule de la classe Vrp. • SaisirDonnées : cette méthode est invoquée n fois jusquà satisfaire la condition darrêt. Dans cette méthode on test si le compteur==-1, on appel aecterDepot de la classe Vrp, sinon on appel aecterClient . Aussi il ya appel à la méthode ajouterLigne de la classe Vrp. Dans le cas où le bouton supprimer est clicker,une méthode suppDonnées de la classe choix est invoquée. Et dans le cas où le bouton enregistrer est clicker, une méthode EnregDonnées est invoqueé dans laquelle on appel la méthode enregistrer de la classe Vrp.
  • 47. CHAPITRE 3. ETUDE CONCEPTUELLE 37 Figure 3.8 DS pour lajout dun problèmeConclusion Dans ce chapitre, nous avons passé à la conception détaillée pour expliquer lesclasses de notre application.Ensuite, nous avons conçu quelques aspects dynamiquesde notre application en se basant sur les diagrammes de séquence. Dans le prochainchapitre, nous passerons à une description de létat de la réalisation du projet.
  • 48. 4CHAPITRE RéalisationIntroduction Le présent chapitre décrit la réalisation de notre application doptimisation de pro-blème de transport. Lorganisation de ce chapitre commence tout dabord, par la pré-sentation de lenvironnement matériel et logiciel suivi par la description des interfaceshomme-machine de lapplication réalisée toute en détaillant la fonctionnalité de notreapplication. Nous présenterons à la n les problèmes rencontrés lors de lélaborationde ce travail.4.1 Environnement de travail4.1.1 Environnement matériel Pour implémenter notre application, nous avons utilisé 2 PCs dont leurs congura-tions sont les suivantes : • Systèmes dexploitation : Microsoft Windows Vista service Pack1/Microsoft Win- dows Vista service Pack2. • Processeurs : Processeur Intel(R) Pentium R DUAL CPU 2.00GHz / Intel R Centrino Core 2 Duo CPU 1.66 GHz • Mémoires : 3 GO RAM / 2 GO RAM • Disque dur : 250 GO
  • 49. CHAPITRE 4. RÉALISATION 394.1.2 Environnement logiciel Notre projet doit être basé sur une bonne conception et réalisé à laide des logicielsperformants, ce qui facilite la phase de la réalisation et de la maintenance. Nous avonschoisi :4.1.2.1 DotNet Le .NET Framework permet le développement dapplications fonctionnelles sur ma-chine Windows équipée de ce Framework. Malgré la simplicité de développement appa-rente, il nen est pas moins complexe à connaître et à maitriser tant les outils proposéssont nombreux..NET se base sur plusieurs technologies : • Des protocoles de communication basée sur le Framework .NET et non plus sur les modèles COM ou OLE. • Des langage de programation telque C++.net, VB.NET, JSharp et CSharp... • Une bibliothèque compatible Framework .NET et non plus MFC, GDI... • une machine virtuelle basée sur la CLI multi-langage. • MSBuild : un outil de gestion de projet avec plusieurs compilateurs. • Windows Live ID,Framework .NET : un ensemble de bibliothèques de haut ni- veau. • Une portabilité pour les systèmes dexploitation Windows et Windows Mobile. • Des composants facilitant le développement de services (MapPoint) et dapplica- tions locales ou web (ASP.NET).[11]
  • 50. CHAPITRE 4. RÉALISATION 40 Figure 4.1 Architecture de framework DotNet4.1.2.2 EDraw (conception) Edraw Max est un logiciel de graphiques polyvalent, avec des fonctionnalités quile rendent parfait non seulement pour des diagrammes dallure professionnelle, que cesoit pour des diagrammes réseau, daaires, didées, de travaux, UML, de structure, debase de données, des plans de batîment, designs de mode, cartes directionnelles...[12]4.1.2.3 Latex (traitement du texte) LaTeX est un ensemble de programmes libres pour le traitement de texte scienti-que. Il a été initialement développé en 1984 à la suite de TeX (développé par DonaldKnuth en 1977).Toute une communauté de développeurs (informaticiens et mathématiciens ; étudiantset chercheurs) a contribué ensuite à mettre au point la version actuelle LaTeX2e :un coeur générique, auquel peuvent sajouter des extensions spécialisées. Cette com-
  • 51. CHAPITRE 4. RÉALISATION 41munauté demeure très active et lon trouve beaucoup de sites Internet proposant destutoriels et des exemples (principalement en anglais).[13]4.1.2.4 Photoshop cs4 Photoshop est un logiciel de retouche, de traitement et de dessin assisté par ordina-teur édité par Adobe. Il est principalement utilisé pour le traitement de photographiesnumériques, mais sert également à la création dimages.Reconnu aussi par les infographistes professionnels à travers sa puissante galerie deltres et doutils graphiques performants, il est maintenant utilisé par une grande ma-jorité des studios et agences de créations.[1]4.2 Choix technologiques4.2.1 Framework 3.5De même que la version 3.0, la version 3.5 utilise la version 2.0 de la CLR. Cette versiondu Framework inclut le .NET Framework 2.0 SP1 qui ajoute des méthodes et des pro-priétés aux bibliothèques de bases de la version 2.0. Celles-ci sont nécessaires à certainesfonctionnalités du framework 3.5 telle que le framework Language Integrated Query(LINQ) permettant des requêtes objet sur des Data, des Collections, du XML ou desDataSets. Elle intègre également le framework Ajax.Net avec de nouveaux protocoles(AJAX, JSON, REST, RSS, Atom) et dautres standards WS.[14]4.2.2 WPFIl est basé sur Direct3D (dont il nutilise pas toutes les possibilités) et entièrementvectoriel, pour le dessin comme pour le texte. Cela permet daugmenter la taille des
  • 52. CHAPITRE 4. RÉALISATION 42objets en fonction de la résolution de lécran sans eet de pixelisation.Il supporte lachage de nombreux formats dimages ou vidéo comme MPEG, AVI, etbien sûr WMV de Microsoft.Séparation code / designWPF nous permet de séparer en couches notre application, il va se charger de séparerle code designer du code behind (classe darrière plan). Cest à dire que le designer vapouvoir travailler sur le design de lapplication, via un langage commun basé sur duXML qui est le XAML .Quant au développeur de son côté via le code behind il va pouvoir travailler sur lacouche métier. Cela va permettre une meilleure productivité et un support de lappli-cation plus facile.[15] Figure 4.2 Séparation code / design4.2.3 Les langages de programmation4.2.3.1 CSharp.net CSharp.net est le langage par excellence de .Net, apparu en 2001. Ce langage estun langage de programmation orientée objet, étant un carrefour entre diérent langage
  • 53. CHAPITRE 4. RÉALISATION 43comme le Java, le C++ ou encore le Visual Basic, tout en restant un langage à part.Le CSharp est très polyvalent, Il permet de coder de simples applications consolesjusquà de gros programmes avec une multitude de fenêtres, en passant par les jeux.Cest donc au l des années que ce langage devint de plus en plus ecace et plusfacile daccès que beaucoup dautres langages orientés objet, ce qui fait aujourdhui sapopularité.[16]4.2.3.2 XML • Dénition du XML XML (eXtensible MarKup language) est en quelque sorte un langage HTML amélioré permettant de dénir de nouvelles balises. La force de XML réside dans sa capacité à pouvoir décrire nimporte quel domaine de données grâce à son extensibilité. Il va permettre de structurer, poser le vocabulaire et la syntaxe des données quil va contenir. • Structure de nos documents XML Un document XML doit suivre scrupuleusement les conventions de notation XML et donc appelé document bien formé. Dans notre projet, un document XML est caractérisé par une balise racine appelée Villes qui contient ou non des attributs tel que le nombre des véhicules ou la capacité de la véhicule. Cette balise racine, contient un nombre ni des balises appelées Client . Un client est caractérisé par des cordonnées x et y et parfois un temps de début et un temps de n. On trouve aussi dans la balise Villes une balise dépôt qui est lui-même caractérisé par des coordonnées x et y. • XAML Le XAML (eXtensible Application Markup Language) est un langage déclaratif basé sur la syntaxe du XML. Il permet grâce à des balises et des attributs de créer très facilement des objets.
  • 54. CHAPITRE 4. RÉALISATION 44 Pour cela, le compilateur XAML se charge de déclarer et dénir des objets dyna- miquement grâce aux balises (équivalent des classes) et aux attributs (équivalents aux propriétés) XAML. Malgré sa syntaxe simple, le XAML permet de restituer des graphiques vectoriels, ou des modèles 3D aisément. Les possibilités graphiques sont donc innies. • XPath Cest le résultat dun eort dhomogénéisation de la syntaxe et de la sémantique de fonctions communes à [XSLT] et [XPointer]. Lobjectif premier de XPath est de dénir la manière dadresser des parties dun document [XML]. En vue de pourvoir à cet objectif premier, cette spécication fournit également les moyens pour traiter des chaînes de caractères, des nombres et des booléens. XPath représente les documents XML comme un arbre de noeuds. Il y a plusieurs types de noeuds, parmi lesquels les noeuds déléments, dattributs et de texte. XPath fournit un mécanisme pour associer une valeur de type chaîne de caractères à chaque type de noeud. Certains ont également un nom.[17]4.3 Réalisation de lapplication Le but de cette partie est de présenter quelques aspects visuels de notre application.Les diérentes fonctionnalités et les principaux objets constituant les interfaces serontdécrits dans ce qui suit.4.3.1 Page dacceuil La gure 4.3 présente lentrée de notre application dans laquelle est indiqué le typedu problème traité.
  • 55. CHAPITRE 4. RÉALISATION 45 Figure 4.3 page dacceuil du problème de transport4.3.2 Page principale La gure 4.4 présente la page principale de gestion du problème de transport. Atravers cette interface lutilisateur peut soit ajouter, soit supprimer un problème.Elle contient aussi une carte graphique de grand Tunis accompagnée dun Slider permettant de faire un zoom.Linterface contient de plus un arbre des problèmes existants dans notre base commele montre la gure.
  • 56. CHAPITRE 4. RÉALISATION 46 Figure 4.4 Interface de la page principale4.3.3 Résolution dun problème PTV : Choix dune insatance • Achage dune solution : Sur linterface de la gure 4.5 sache une solution à un problème sélectionné, en donnant le cout total de la solution ainsi que les informations relatives à chaque client. Figure 4.5 Interface dachage dune solution
  • 57. CHAPITRE 4. RÉALISATION 474.3.4 Suppression dun problème Si on appuie sur le bouton de suppression indiqué dans la gure 4.4, une boite dedialogue qui sache, soit pour conrmer soit pour annuler laction, comme lindiquela gure 4.6. Figure 4.6 Interface de conrmation de suppression4.3.5 Ajout dun problème Lors de lappuie sur le bouton dajout présentée dans la gure 4.4, une nouvelleinterface de la gure 4.7 sache, dans laquelle il ya un choix entre des problèmes detransport. Figure 4.7 Interface de choix dun problème
  • 58. CHAPITRE 4. RÉALISATION 48 Ensuite lorsque lutilisateur appuie sur le bouton valider de la gure 4.7, sachelinterface représentée par la gure 4.8. Dans cette interface seectue la saisie desdonnées relatives au problème choisi en donnant la possibilité de supprimer une ligneerronée. Figure 4.8 Interface de saisie des données Quand lutilisateur appuie sur la disquette de lenregistrement, une boite sachepour la saisie du nom du chier contenant les données déjà saisie, comme le montre lagure 4.9. Figure 4.9 Interface de saisie du nom du problème
  • 59. CHAPITRE 4. RÉALISATION 49 Enn lorsque lutilisateur appuie sur le bouton enregistrer de la gure 4.9 unenouvelle boite souvre représentée par la gure 4.10.Cette boite a le rôle de conrmationde lenregistrement. Figure 4.10 Interface de conrmation de lenregistrementConclusion Dans ce chapitre, nous avons passé de la spécication de lenvironnement matérielet logiciel au présentation de quelques interfaces graphiques de notre application pourmieux comprendre sa déroulement.
  • 60. Conclusion généralec e rapport sinscrit dans le cadre de notre projet de n détude élaboré au sein de lEcole Supérieure des Sciences et Techniques de Tunis (ESSTT). Il sagit de la réalisation dune solution générique pour la résolution desproblèmes statiques de tournées de véhicules.Pour la réalisation de notre application, nous nous sommes impliqués sur une étudeminutieuse des outils de travail an de dégager les diérents besoins et exigences et dechoisir larchitecture informatique la mieux adaptée. Ainsi, nous nous sommes baséssur UML pour la spécication et la conception, sur CSharp pour la programmation etsur XML pour le stockage des informations.Nous avons essayé, dans ce rapport de présenter tout ce qui savère indispensable pourdécrire clairement toutes étapes du projet : Etat dart, étude théorique, spécicationet conception et enn la réalisation.lélaboration de ce projet, nous a été bénéque sur divers plans : - Sur le plan théorique, il nous a permis de découvrir des nouvelles technologies(comme le WPF) et le langage de programmation CSharp. - Sur le plan pratique, ce projet nous a été favorable en nous orant la possibilité dapprofondir nos connaissances acquises tout au long du cursus universitaire à lESSTT et de nous familiariser avec la conduite des projets informatiques. - De façon générale : nous sommes contents à la fois du travail réalisé, mais également davoir eectué un projet qui a enrichi nos connaissances dans le développement dapplications .Net. Ce dé nétait pas gagné davance, car nous avons dû nous former en toute autonomie à la plupart des outils et techniques utilisés pendant ce projet, chose qui nous a fait douter sérieusement de nos capacités pendant les
  • 61. CONCLUSION GÉNÉRALE 51 premières semaines.Plusieurs améliorations restent envisageables dans ce travail, ces améliorations touchentessentiellement lergonomie des interfaces, ainsi que lextensibilité de notre applicationpour prendre en charge dautres problèmes.En eet, le fait davoir développé cette application en suivant une plateforme .Net, larend facilement évolutive, ce qui est primordial, car une application gée est, tôt outard, vouée à ne plus être utilisée.Finalement, nous avons fait de notre mieux pour bien laisser une bonne impression ausein de notre école et présenter un bon travail digne de notre préparation et de nosétudes et restera dans la bibliothèque de lécole pour les futurs promotions.
  • 62. Bibliographie [1] Utilisation dADOBE PHOTOSHOP CS4 , Adobe Systems Incorporated, 2008. [2] http ://fr.wikipedia.org/wiki/Problème-du-voyageur-de-commerce, Février 2010. [3] http ://fr.wikipedia.org/wiki/Problème-de-tournées-de-véhicules, Février 2010. [4] ftp ://ftp-developpez.com/khayyam/articles/algo/ voyageur-de- commerce/colonies-de-fourmis/colonies-de-fourmis.pdf, Février 2010. [5] http ://hal.archives-ouvertes.fr/docs/00/13/56/51/PDF/TheseBourazza.pdf, Fé- vrier 2010. [6] http ://fr.wikipedia.org/wiki/Recuit-simulé, Février 2010. [7] http ://fr.wikipedia.org/wiki/Optimisation-par-essaims-particulaires, Février 2010. [8] http ://hal.archives-ouvertes.fr/docs/00/14/37/82/PDF/These-KAMMARTI- Ryan.pdf, Février 2010. [9] http ://www.baptisteautin.com/.../Rapport-Metaheuristiques-Optimisation- Combinatoire.doc, Février 2010.[10] http ://hal.archives-ouvertes.fr/docs/00/07/44/74/PDF/RR-2197.pdf, Février 2010.[11] http ://www.dotnet-france.com/Documents/Framework/Framework.NET- Notions-fondamentales.pdf, Avril 2010.[12] http ://fr.giveawayoftheday.com/edraw-max-43/, Avril 2010.[13] http ://euler.ac-versailles.fr/webMathematica/LaTeX/index.htm, Avril 2010.
  • 63. BIBLIOGRAPHIE 53[14] http ://fr.wikipedia.org/wiki/Framework-.NEThttp ://www.xaml.fr/windows- wpf.html, Avril 2010.[15] http ://www.dotnet-france.com/Documents/WPF/Introduction à WPF.pdf, Avril 2010.[16] http ://rangiroa.polytech.unice.fr/riveill/2009-10/dotnet/CSharp-base.pdf, Avril 2010.[17] http ://xmlfr.org/w3c/TR/xpath/, Avril 2010.
  • 64. AANNEXE Réalisation de la carte graphique de grand Tunis Pour réaliser la carte de grand Tunis, on a besoin de trois images avec des altitudesdiérentes : 30 Km(N1), 15Km(N2) et 7.5 Km(N3).Chaque altitude est reliée à un niveau et chaque niveau est représenté par une image : • LimageN1 de résolution 640*680. • LimageN2 de résolution 1220*1320. • LimageN3 de résolution 2530*2710.Voici la gure A.1 qui illustre la description ci-dessus. Figure A.1 Relation entre altitudes,niveaux et images
  • 65. ANNEXE A. RÉALISATION DE LA CARTE GRAPHIQUE DE GRAND TUNIS 55 Dans notre carte, chaque image possède un intervalle de dimension, il est propor-tionnel par rapport a lattitude. Donc à chaque situation de la carte, une zone xe delimage 600*600 est achée. Pour préciser laltitude de limage, on utilise un Slider. Figure A.2 La zone achée de limageA chaque variation de ce dernier on détermine laltitude puis on ache limage corres-pondante et si on a des clients et des chemins déjà dessinés, on les dessine une autrefois.Pour se déplacer sur la carte, il sut de positionner le curseur sur la carte et de mainte-nir le bouton gauche de souris foncé. La direction de déplacement est déterminée selonla position de souris. Figure A.3 Directions de déplacement

×