La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Samedi 31 mai 2014Page 1 PFA Optimisation des Trajets de Collecte Réalisé par : Eymat Loïc Grange Benoît Fournier Jérémy Moutmir Hamza Garon Sébastien.

Présentations similaires


Présentation au sujet: "Samedi 31 mai 2014Page 1 PFA Optimisation des Trajets de Collecte Réalisé par : Eymat Loïc Grange Benoît Fournier Jérémy Moutmir Hamza Garon Sébastien."— Transcription de la présentation:

1 samedi 31 mai 2014Page 1 PFA Optimisation des Trajets de Collecte Réalisé par : Eymat Loïc Grange Benoît Fournier Jérémy Moutmir Hamza Garon Sébastien Senhaji Mohammed Responsable pédagogique : Pellegrini François Responsables scientifiques : Sopena Eric et Dussech Bruno

2 samedi 31 mai 2014Page 2 Plan Présentation du projet –Contexte du projet –Analyse de lexistant Approche théorique et solutions proposées Réalisation Tests Recherche et amélioration Conclusion

3 samedi 31 mai 2014Page 3 Contexte du projet (1) Ce projet sinscrit dans le cadre du projet de fin dannée à lENSEIRB. Le projet est proposé par le LaBRI dans le but de développer une plate-forme logicielle à destination des professionnels de la collecte des déchets ménagers pour la société ECOBOX.

4 samedi 31 mai 2014Page 4 Contexte du projet (2) Le but du projet est de fournir une bibliothèque de fonctions permettant doptimiser le trajet de collecte des bennes à ordures. Notre projet se découpe en deux parties : 1.Constituer des zones de ramassage à partir de tronçons de ramassage ; 2.Puis déterminer un cycle qui minimisera le trajet entre les zones, le cycle étant découpé en morceaux que nous appellerons tournées.

5 samedi 31 mai 2014Page 5 Analyse de lexistant 1.Zones : Nécessité dadapter ces algorithmes et implémenter lalgorithme « KMEANS ». Éventuellement rechercher dautres algorithmes permettant de résoudre les même problèmes. 2.Cycle : Les algorithmes « RAI » et « Hongrois », permettant de créer le cycle, ont déjà été implémentés et ont été fournis par le client lors du démarrage du projet.

6 samedi 31 mai 2014Page 6 Plan Présentation du projet Approche théorique et solutions proposées –Constitution de zones Présentation de lalgorithme « KMEANS » Adaptation au problème Choix des centres Problèmes rencontrés –Constitution de cycles Présentation de lalgorithme « Hongrois » Présentation de lalgorithme « RAI » –Constitution de tournées Réalisation Tests Recherche et amélioration Conclusion

7 samedi 31 mai 2014Page 7 Constitution de zones Le but est de constituer des zones, cest-à-dire de regrouper des points proches, de manière à diminuer le nombre dentités manipulées lors de la constitution dun cycle.

8 samedi 31 mai 2014Page 8 Présentation de lalgorithme « KMEANS » Lalgorithme « KMEANS » permet le partitionnement dun groupe dobjets en K sous- groupes. Lalgorithme « KMEANS » fonctionne de la manière suivante : –Choisir un nombre de zones initial K eut et gard au nombres de points à traiter ; –Tirer aléatoirement K points qui seront les centres de zone –Attacher chaque point à son centre de zone le plus proche –Calculer le nouveau centre de chaque zone –Réitérer les deux dernières opérations jusquà stabilité

9 samedi 31 mai 2014Page 9 KMEANS : Schéma conceptuel

10 samedi 31 mai 2014Page 10 KMEANS : Adaptation au problème (1) Nous ne pouvons pas utiliser cet algorithme tel quel car nous ne connaissons pas à lavance le nombre de zones K, celui-ci dépend en effet de divers paramètres : –le poids maximum dune zone ; –le coût maximum dune zone ; –les caractéristiques des points. Nous allons donc utiliser une version dynamique de lalgorithme « KMEANS ».

11 samedi 31 mai 2014Page 11 KMEANS : Adaptation au problème (2) Le fonctionnement de lalgorithme est le suivant : –Nous évaluons un nombre de zones initiales k en fonction du poids total à collecter et du poids maximum dune zone ; –Nous choisissons k points qui seront les centres de zone soit de manière aléatoire, soit en quadrillant la carte ; –Chaque point est rattaché au centre de zone le plus proche ; –Nous parcourons toutes les zones en vérifiant quaucune ne dépasse le poids ou le coût maximum ; –Tant quil existe des zones invalides, nous divisons ces zones en deux puis nous vidons toutes les zones et rattachons chaque point au centre de zone qui lui est le plus proche.

12 samedi 31 mai 2014Page 12 KMEANS : Schéma conceptuel

13 samedi 31 mai 2014Page 13 KMEANS : Exemple (1)

14 samedi 31 mai 2014Page 14 KMEANS : Exemple (2)

15 samedi 31 mai 2014Page 15 KMEANS : Exemple (3)

16 samedi 31 mai 2014Page 16 KMEANS : Choix des centres Initialisation aléatoire : –Il sagit simplement de tirer aléatoirement les k points qui deviendront des centres de zone parmi tous les points. Initialisation avec quadrillage de la carte : –Nous commençons par rechercher les quatre points ayant les coordonnées extrêmes afin de connaître le rectangle dans lequel sera situé chaque point; –Ensuite nous créons k centres de zones fictifs de manière à obtenir un quadrillage régulier. –Nous rattachons chaque point au centre fictif le plus proche.

17 samedi 31 mai 2014Page 17 KMEANS : Problèmes rencontrés Problème : résultat non reproductible Solution : utilisation de srand() Problème : choix du centre lors de la division dune zone. Solution : le centre de la deuxième zone sera le deuxième centre de la zone (ie le centre de la zone privée du centre).

18 samedi 31 mai 2014Page 18 Plan Présentation du projet Approche théorique et solutions proposées –Constitution de zones Présentation de lalgorithme « KMEANS » Adaptation au problème Choix des centres Problèmes rencontrés –Constitution de cycles Présentation de lalgorithme « Hongrois » Présentation de lalgorithme « RAI » –Constitution de tournées Réalisation Tests Recherche et amélioration Conclusion

19 samedi 31 mai 2014Page 19 Construction de cycles Une fois les zones construites, le but est de constituer un chemin de collecte dont le cycle est minimal. Ce problème est également connu sous le nom de ATSP (Asymetric Travelling Salesman Problem). Nous avons implémenté deux solutions à ce problème : –Un premier algorithme, appelé algorithme Hongrois construit une matrice de 1 et de 0 (les 1 montrent ladjacence des deux zones) telle que la somme des coûts où se situent les 1 soit minimal. –Un deuxième appelé RAI construisant un cycle par ajout/suppression de zones à un cycle considéré comme étant minimal.

20 samedi 31 mai 2014Page 20 Présentation de lalgorithme « Hongrois » (1) Lalgorithme hongrois comporte six étapes : 1.Réduction des lignes : créer une nouvelle matrice des coûts en choisissant la coût minimal de chaque ligne et en le soustrayant à chaque coût sur cette ligne ; 2.Trouver un zéro dans la matrice : sil ny a aucun zéro marqué dans la ligne ou la colonne, marquer ce zéro. Réitérer ceci pour tous les zéros puis aller à létape 3 ; 3.Déterminer le nombre minimal de lignes nécessaires sur les lignes et les colonnes pour couvrir tous les zéros. Si ce nombre est égal au nombre de lignes, la matrice est réduite, passer à létape 6 ;

21 samedi 31 mai 2014Page 21 Présentation de lalgorithme « Hongrois » (2) 4.Trouver un zéro non couvert et le primer. Sil ny a aucun zéro marqué dans sa ligne, aller à létape 5. Sinon couvrir cette ligne et découvrir sa colonne. Reproduire cette procédure tant quil y a des zéros non-couverts. Retenir la plus petite valeur Z 0 de ces zéros non couverts et aller à létape 6 ; 5.Construire une série alternée de zéros primés et marqués comme suit, soit Z 1 le zéro marqué de la colonne de Z 0 sil existe, et Z 2 le zéro primé de la ligne de Z 1. Continuer ainsi de façon à ce que la série termine lorsquun zéro primé nait aucun zéro marqué dans sa colonne. Démarquer tous les zéros marqués de la série, marquer tous les zéros primés, transformer les zéros primés en non primés et découvrir chaque ligne de la matrice. Retourner à létape 3. 6.Ajouter la valeur trouvée à létape 4 à tous les éléments de chaque ligne couverte, et lôter de tous les éléments de chaque colonne non couverte. Retourner à létape 4.

22 samedi 31 mai 2014Page 22 Présentation de lalgorithme « RAI » (1) Lalgorithme RAI comporte dix étapes : 1.Initialisation : on choisit un sommet au hasard, le cycle est alors constitué seulement de ce sommet ; 2.Choisir un sommet qui nest pas encore dans le cycle ; 3.Insérer ce sommet de façon optimum. Si le cycle nest pas complet, retourner à létape 2 ; 4.Soit S la solution trouvée ; 5.Répéter 2n 2 fois les étapes 6 à 10 ; 6.Choisir aléatoirement deux entiers i et j (entre 1 et le nombre de zones, avec i < j) 7.Enlever la portion du sommet i au sommet j, et refermer le cycle; 8.Choisir aléatoirement un sommet dans la portion enlevée ; 9.Insérer ce sommet de façon optimum. Si le cycle nest pas complet, retourner à létape 8 ; 10.Comparer la solution trouvée à la solution S et garder la meilleure.

23 samedi 31 mai 2014Page 23 Présentation de lalgorithme « RAI » (2) Lalgorithme RAI a été implémenté de deux façons différentes : –Avec un tableau de taille fixe et une représentation séquentielle du cycle. –Avec un tableau de taille fixe géré en liste chaînée.

24 samedi 31 mai 2014Page 24 Plan Présentation du projet Approche théorique et solutions proposées –Constitution de zones Présentation de lalgorithme « KMEANS » Adaptation au problème Choix des centres Problèmes rencontrés –Constitution de cycles Présentation de lalgorithme « Hongrois » Présentation de lalgorithme « RAI » –Constitution de tournées Réalisation Tests Recherche et amélioration Conclusion

25 samedi 31 mai 2014Page 25 Constitution de tournées Construire des tournées consiste à répartir les zones à collecter entre les bennes à ordure dont nous disposons. Une manière de le faire consiste à découper le cycle en tranches dont le poids est borné par les capacités maximum des bennes. On obtient ainsi un découpage du cycle, chaque tranche étant collectée par une benne. Si le nombre de tranches du cycle est supérieur au nombre de bennes dont on dispose, un deuxième tour de collecte doit être lancé. La notion de tours est laissée au soin de lutilisateur : celui-ci clonera des bennes sil décide de leur faire faire un deuxième tour.

26 samedi 31 mai 2014Page 26 Plan Présentation du projet Approche théorique et solutions proposées Réalisation –Données de départ –Structure –Données retournées à lutilisateur –Affichage des résultats Tests Recherche et amélioration Conclusion

27 samedi 31 mai 2014Page 27 Données de départ Conformément au cahier des charges, le client fourni les coordonnées entières de chaque point de la carte dans un tableau. De la même manière, il devra fournir le poids de chaque rue ainsi que le coût de chacune des rues dans un tableau de réels.

28 samedi 31 mai 2014Page 28 Les différents modules

29 samedi 31 mai 2014Page 29 Structure (1) Structure point : –Indice du point –Pointeur sur le point suivant Structure zone : –Pointeur vers la zone suivante –Numéro de la zone –Poids de la zone –Coût de la zone –Liste des points quelle contient –Centre de la zone

30 samedi 31 mai 2014Page 30 Structure (2) Lors de la construction de zones, il est nécessaire de connaître un certain nombres de constantes, nous les avons regroupés dans la structure configuration. Structure configuration : –Nombre de points de la carte –Type dinitialisation choisie –Nombre de tours maximal –Poids maximal dune zone –Poids minimal dune zone –Coût maximal dune zone –Coût minimal dune zone –Coût minimal entre deux centres de zone

31 samedi 31 mai 2014Page 31 Structure (3) Nous avons également créé une structure benne : –Numéro de la benne –Charge maximal Ainsi que la structure tournée : –Numéro de benne associé (1 benne = 1 tournée) –Poids total –Coût total –Indices des zones collectés lors de cette tournée –Pointeur sur la prochaine tournée

32 samedi 31 mai 2014Page 32 Données retournées à lutilisateur Les données exploitables par lutilisateur sont : –Un pointeur sur une liste chaînée de zones : zone * zones; –Un pointeur sur une liste chainée de tournées : Tournee * tournees;

33 samedi 31 mai 2014Page 33 Affichage des résultats (1) Exemple de fichier Scilab : X = [1, 4, 8, 5]; Y = [7, 3, 6, 1]; plot(X,Y);

34 samedi 31 mai 2014Page 34 Affichage des résultats (2) Exemple de fichier Scilab : X = [4, 3, 4, 5, 4, 3, 4, 5, 4, 2]; Y = [4, 6, 4, 2, 4, 1, 4, 6, 4, 3]; plot(X,Y);

35 samedi 31 mai 2014Page 35 Plan Présentation du projet Approche théorique et solutions proposées Réalisation Tests Recherche et amélioration Conclusion

36 samedi 31 mai 2014Page 36 Tests (1) Nous allons ici comparer les résultats obtenues avec nos différents algorithmes : –Lalgorithme KMEANS avec initialisation aléatoire et avec initialisation par quadrillage ; –Lalgorithme KMEANS avec différents paramètres ; –Lalgorithme hongrois et lalgorithme RAI. Les tests sont réalisés à laide du jeu de tests réel fourni par le client.

37 samedi 31 mai 2014Page 37 Tests (2) Comparaison des deux initialisations de KMEANS : Résultats assez proches Initialisation aléatoire Initialisation par le quadrillage Temps de calcul0,5s0,7s Nombre de zones crées 5249

38 samedi 31 mai 2014Page 38 Zones après initialisation aléatoire

39 samedi 31 mai 2014Page 39 Zones après initialisation quadrillage

40 samedi 31 mai 2014Page 40 Tests (3) Tests de lalgorithme KMEANS avec différents paramètres : Poids max dune zone : 1000 Poids max dune zone : entre 500 et 3000 (ie avec fusion) Poids max dune zone : 3000 Temps de calcul 0,7 s0,4 s0,5 s Nombre de zones crées

41 samedi 31 mai 2014Page 41 Zones avec poids maximale égale à 1000

42 samedi 31 mai 2014Page 42 Zones avec fusion

43 samedi 31 mai 2014Page 43 Tests (4) Comparaison entre les deux algorithmes qui créent un cycle. Les tests ont été réalisés dans le cas suivant : poids maximum dune zone : 2000, initialisation aléatoire, poids minimum dune zone 300. Ceci conduit à 74 zones. –Avec lalgorithme hongrois, le résultat de lalgorithme est quasi instantané et la longueur du cycle est –Avec lalgorithme RAI, le temps de calcul est denviron 0,3s et la longueur du cycle est Sur ce jeu de test, lalgorithme RAI est nettement plus efficace : sa solution est environ 10% moins longue que celle proposée par lalgorithme hongrois.

44 samedi 31 mai 2014Page 44 Résultat Hongrois

45 samedi 31 mai 2014Page 45 Résultat RAI

46 samedi 31 mai 2014Page 46 Tests (6) Dautres jeux de tests pourraient nous permettre de confirmer, ou au contraire dinfirmer les observations réalisées avec ce jeu de test. Cependant ces tests sont tout à fait cohérents et aucune aberration na été notée. De plus, nous pouvons noter que le temps de calcul nécessaire pour trouver une solution est tout à fait acceptable.

47 samedi 31 mai 2014Page 47 Plan Présentation du projet Approche théorique et solutions proposées Réalisation Tests Recherche et amélioration Conclusion

48 samedi 31 mai 2014Page 48 Recherche et amélioration (1) Les algorithmes génétiques appartiennent à la famille des algorithmes méta heuristiques dont le but est dobtenir une solution approchée à un problème doptimisation. Le principe de ce type dalgorithmes est de se rapprocher par ``bonds successifs dune solution grâce à la notion de sélection naturelle.

49 samedi 31 mai 2014Page 49 Recherche et amélioration (2) La sélection naturelle : la sélection des individus est effectuée en fonction du critère à optimiser, les principaux types de sélection sont : –La sélection par rang ; –La sélection proportionnelle à ladaptation ; –La sélection par tournoi ; –La sélection uniforme.

50 samedi 31 mai 2014Page 50 Recherche et amélioration (3) Nous présentons ci-après des pistes qui pourraient permettre de résoudre le problème du voyageur de commerce à laide dun algorithme génétique. –Fonction dadaptation dun chemin : sa longueur (ou son coût de passage entre les zones). –Procédure de croisement : Choisir aléatoirement deux points de découpe que nous appellerons « locus » ; Intervertir les zones qui se trouvent entre ces deux locus ; Éliminer les zones à lextérieur des locus qui se trouvent déjà à lintérieur des locus ; Recenser les zones qui ne figurent pas dans ces deux cycles ; Compléter les cycles aléatoirement avec les zones recensés précédemment.

51 samedi 31 mai 2014Page 51 Recherche et amélioration (4) –Procédure de mutation : permuter deux zones présentes dans le cycle Lobjet que lon cherche à optimiser est un cycle, il se peut que deux cycles soient identiques à une rotation près. Une solution possible est dimposer une zone par laquelle devront commencer tous les cycles (par exemple la zone de dépôt des bennes à ordures).

52 samedi 31 mai 2014Page 52 Recherche et amélioration (5) Cet algorithme présente en inconvénient important : il est parfaitement adapté pour un espace de solutions très grand, par contre pour un nombre de points réduit ou raisonnable, il est peut être plus sur de parcourir cet espace de façon exhaustive. Le gros avantage de cet algorithme est quil sadapte parfaitement à lenvironnement dans lequel il est placé.

53 samedi 31 mai 2014Page 53 Plan Présentation du projet Approche théorique et solutions proposées Réalisation Tests Recherche et amélioration Conclusion

54 samedi 31 mai 2014Page 54 Conclusion Ce projet fut très intéressant et enrichissant du point de vue organisationnel même si les motivations de chacun étaient diverses. Il nous a permis dutiliser de nouveaux outils de communication (SVN, WIKI, liste de diffusion). Tous les objectifs fixés dans le cahier des charges ont été atteints, mais par manque de temps limplémentation dautres solutions na pas pu être réalisée.


Télécharger ppt "Samedi 31 mai 2014Page 1 PFA Optimisation des Trajets de Collecte Réalisé par : Eymat Loïc Grange Benoît Fournier Jérémy Moutmir Hamza Garon Sébastien."

Présentations similaires


Annonces Google