pfa optimisation des trajets de collecte

54
Wednesday, June 15, 2022 Page 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

Upload: malina

Post on 22-Jan-2016

49 views

Category:

Documents


0 download

DESCRIPTION

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 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 1

PFAOptimisation des Trajets de

Collecte

Réalisé par :

Eymat Loïc Grange BenoîtFournier Jérémy Moutmir HamzaGaron Sébastien Senhaji Mohammed

Responsable pédagogique : Pellegrini François

Responsables scientifiques : Sopena Eric et Dussech Bruno

Page 2: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 2

Plan

• Présentation du projet– Contexte du projet– Analyse de l’existant

• Approche théorique et solutions proposées• Réalisation• Tests• Recherche et amélioration• Conclusion

Page 3: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 3

Contexte du projet (1)

• Ce projet s’inscrit dans le cadre du projet de fin d’année à l’ENSEIRB.

• 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.

Page 4: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 4

Contexte du projet (2)

• Le but du projet est de fournir une bibliothèque de fonctions permettant d’optimiser le trajet de collecte des bennes à ordures.

• Notre projet se découpe en deux parties : – Constituer des zones de ramassage à partir de

tronçons de ramassage ;– Puis déterminer un cycle qui minimisera le trajet

entre les zones, le cycle étant découpé en morceaux que nous appellerons tournées.

Page 5: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 5

Analyse de l’existant

• 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.

• Il faut donc adapter ces algorithmes et implémenter l’algorithme « KMEANS » d’une part et éventuellement rechercher d’autres algorithmes permettant de résoudre les même problèmes.

Page 6: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 6

Plan

• Présentation du projet

• Approche théorique et solutions proposées

– Constitution de zones• Présentation de l’algorithme « KMEANS »• Adaptation au problème• Choix des centres• Problèmes rencontrés

– Constitution de cycles• Présentation de l’algorithme « Hongrois »• Présentation de l’algorithme « RAI »

– Constitution de tournées

• Réalisation• Tests• Recherche et amélioration• Conclusion

Page 7: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 7

Constitution de zones

• Le but est de constituer des zones, c’est-à-dire de regrouper des points proches, de manière à diminuer le nombre d’entités manipulées lors de la constitution d’un cycle.

Page 8: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 8

Présentation de l’algorithme « KMEANS »

• L’algorithme « KMEANS » permet le partitionnement d’un groupe d’objets en K sous-groupes.

• L’algorithme « 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é

Page 9: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 9

KMEANS : Schéma conceptuel

Page 10: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 10

KMEANS : Adaptation au problème (1)

• Nous ne pouvons pas utiliser cet algorithme tel quel car nous ne connaissons pas à l’avance le nombre de zones K, celui-ci dépend en effet de divers paramètres :– le poids maximum d’une zone ;– le coût maximum d’une zone ;– les caractéristiques des points.

• Nous allons donc utiliser une version dynamique de l’algorithme « KMEANS ».

Page 11: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 11

KMEANS : Adaptation au problème (2)

• Le fonctionnement de l’algorithme est le suivant :– Nous évaluons un nombre de zones initiales k en

fonction du poids total à collecter et du poids maximum d’une 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 qu’aucune ne dépasse le poids ou le coût maximum ;

– Tant qu’il 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.

Page 12: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 12

KMEANS : Schéma conceptuel

Page 13: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 13

KMEANS : Exemple (1)

Page 14: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 14

KMEANS : Exemple (2)

Page 15: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 15

KMEANS : Exemple (3)

Page 16: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 16

KMEANS : Choix des centres

• Initialisation aléatoire :– Il s’agit 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.

Page 17: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 17

KMEANS : Problèmes rencontrés

• Problème : résultat non reproductibleSolution : utilisation de srand()

• Problème : choix du centre lors de la division d’une 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).

Page 18: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 18

Plan

• Présentation du projet

• Approche théorique et solutions proposées

– Constitution de zones• Présentation de l’algorithme « KMEANS »• Adaptation au problème• Choix des centres• Problèmes rencontrés

– Constitution de cycles• Présentation de l’algorithme « Hongrois »• Présentation de l’algorithme « RAI »

– Constitution de tournées

• Réalisation• Tests• Recherche et amélioration• Conclusion

Page 19: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 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 l’adjacence 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.

Page 20: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 20

Présentation de l’algorithme « Hongrois »

(1)• L’algorithme 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 : s’il n’y 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 ;

Page 21: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 21

Présentation de l’algorithme « Hongrois »

(2)4. Trouver un zéro non couvert et le primer. S’il n’y 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 qu’il y a des zéros non-couverts. Retenir la plus petite valeur Z0 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 Z1 le zéro marqué de la colonne de Z0 s’il existe, et Z2 le zéro primé de la ligne de Z1. Continuer ainsi de façon à ce que la série termine lorsqu’un zéro primé n’ait 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.

Page 22: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 22

Présentation de l’algorithme « RAI » (1)

• L’algorithme 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 n’est pas encore dans le cycle ;3. Insérer ce sommet de façon optimum. Si le cycle n’est

pas complet, retourner à l’étape 2 ; 4. Soit S la solution trouvée ;5. Répéter 2n2 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 n’est

pas complet, retourner à l’étape 8 ; 10. Comparer la solution trouvée à la solution S et garder

la meilleure.

Page 23: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 23

Présentation de l’algorithme « RAI » (2)

• L’algorithme 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.

Page 24: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 24

Plan

• Présentation du projet

• Approche théorique et solutions proposées

– Constitution de zones• Présentation de l’algorithme « KMEANS »• Adaptation au problème• Choix des centres• Problèmes rencontrés

– Constitution de cycles• Présentation de l’algorithme « Hongrois »• Présentation de l’algorithme « RAI »

– Constitution de tournées

• Réalisation• Tests• Recherche et amélioration• Conclusion

Page 25: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 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 l’utilisateur : celui-ci clonera des bennes s’il décide de leur faire faire un deuxième tour.

Page 26: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 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 à l’utilisateur– Affichage des résultats

• Tests• Recherche et amélioration• Conclusion

Page 27: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 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.

Page 28: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 28

Les différents modules

Page 29: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 29

Structure (1)

• Structure zone :– 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 qu’elle contient– Centre de la zone

Page 30: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 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 d’initialisation choisie– Nombre de tours maximal– Poids maximal d’une zone– Poids minimal d’une zone– Coût maximal d’une zone– Coût minimal d’une zone– Coût minimal entre deux centres de zone

Page 31: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 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

Page 32: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 32

Données retournées à l’utilisateur

• Les données exploitables par l’utilisateur 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;

Page 33: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 33

Affichage des résultats (1)

• Exemple de fichier Scilab :

X = [1, 4, 8, 5];Y = [7, 3, 6, 1];plot(X,Y);

Page 34: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 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);

Page 35: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 35

Plan

• Présentation du projet• Approche théorique et solutions

proposées• Réalisation

• Tests• Recherche et amélioration• Conclusion

Page 36: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 36

Tests (1)

• Nous allons ici comparer les résultats obtenues avec nos différents algorithmes :– L’algorithme KMEANS avec initialisation aléatoire et

avec initialisation par quadrillage ;– L’algorithme KMEANS avec différents paramètres ;– L’algorithme hongrois et l’algorithme RAI.

• Les tests sont réalisés à l’aide du jeu de tests réel fourni par le client.

Page 37: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 37

Tests (2)

• Comparaison des deux initialisations de KMEANS :

Initialisation aléatoire

Initialisation par le quadrillage

Temps de calcul 0,5s 0,7s

Nombre de zones crées

52 49

Résultat Figure 5.1 Figure 5.2

Page 38: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 38

Figure 5.1

Page 39: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 39

Figure 5.2

Page 40: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 40

Tests (3)

• Tests de l’algorithme KMEANS avec différents paramètres :Poids max

d’une zone : 1000

Poids max d’une zone : entre 500 et

3000 (ie avec fusion)

Poids max d’une zone :

3000

Temps de calcul

0,7 s 0,4 s 0,5 s

Nombre de zones crées

207 47 52

Résultat Figure 5.3 Figure 5.4 Figure 5.1

Page 41: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 41

Figure 5.3

Page 42: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 42

Figure 5.4

Page 43: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 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 d’une zone : 2000, initialisation aléatoire, poids minimum d’une zone 300. Ceci conduit à 74 zones.– Avec l’algorithme hongrois , le résultat de l’algorithme est

quasi instantané et la longueur du cycle est 21922.– Avec l’algorithme RAI , le temps de calcul est d’environ

0,3s et la longueur du cycle est 19933.

• Sur ce jeu de test, l’algorithme RAI est nettement plus efficace : sa solution est environ 10% moins longue que celle proposée par l’algorithme hongrois.

Page 44: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 44

Résultat Hongrois

Page 45: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 45

Résultat RAI

Page 46: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 46

Tests (6)

• D’autres jeux de tests pourraient nous permettre de confirmer, ou au contraire d’infirmer les observations réalisées avec ce jeu de test.

• Cependant ces tests sont tout à fait cohérents et aucune aberration n’a été notée.

• De plus, nous pouvons noter que le temps de calcul nécessaire pour trouver une solution est tout à fait acceptable.

Page 47: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 47

Plan

• Présentation du projet• Approche théorique et solutions

proposées• Réalisation• Tests

• Recherche et amélioration• Conclusion

Page 48: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 48

Recherche et amélioration (1)

• Les algorithmes génétiques appartiennent à la famille des algorithmes méta heuristiques dont le but est d’obtenir une solution approchée à un problème d’optimisation.

• Le principe de ce type d’algorithmes est de se rapprocher par   ``bonds’’ successifs d’une solution grâce à la notion de sélection naturelle.

Page 49: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 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 à l’adaptation ;– La sélection par tournoi ;– La sélection uniforme.

Page 50: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 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 à l’aide d’un algorithme génétique.– Fonction d’adaptation d’un 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 à l’extérieur des locus qui se trouvent

déjà à l’inté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.

Page 51: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 51

Recherche et amélioration (4)

– Procédure de mutation : permuter deux zones présentes dans le cycle

• L’objet que l’on cherche à optimiser est un cycle, il se peut que deux cycles soient identiques à une rotation près. Une solution possible est d’imposer une zone par laquelle devront commencer tous les cycles (par exemple la zone de dépôt des bennes à ordures).

Page 52: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 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 qu’il s’adapte parfaitement à l’environnement dans lequel il est placé.

Page 53: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 53

Plan

• Présentation du projet• Approche théorique et solutions

proposées• Réalisation• Tests• Recherche et amélioration

• Conclusion

Page 54: PFA Optimisation des Trajets de Collecte

Friday, April 21, 2023 Page 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 d’utiliser 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 l’implémentation d’autres solutions n’a pas pu être réalisée.