diff options
Diffstat (limited to 'ero1/src/README.md')
| -rw-r--r-- | ero1/src/README.md | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/ero1/src/README.md b/ero1/src/README.md new file mode 100644 index 0000000..7e34150 --- /dev/null +++ b/ero1/src/README.md @@ -0,0 +1,88 @@ +# Dossier Source + +Ce dossier contient plusieurs dossiers qui contiennent la logique du projet à travers +des fichiers python. +Afin d'éviter d'avoir un trop grand nombre de fichiers README.md, les détails des fichiers +seront, en plus des détails des dossier, donnés ci-dessous; + + +## Dossier `src/deneigeuses` + +Ce dossier contient l'ensemble des algorithmes clés pour l'étape des déneigeuses; + +### Descriptif des dossiers/fichiers de `deneigeuses` + +- `basic_euler.py` : Une des premières implémentations du parcours par la déneigeuse. Très mauvais car nécessite d'avoir un graph Eulériser par NetworkX ce qui le rends non orienté et non valide pour un parcours de déneigeuse + +- `directed_cpp.py` : Une version du problème du postier chinois sur un graphe orienté. ATTENTION, ne fonctionne que sur des graphes **fortement connexes**. Voici le document sur lequel est basé notre implémentation: https://www3.cs.stonybrook.edu/~algorith/implement/cpp/distrib/SPAEcpp.pdf + +- `drone_path.py` : Implémentation naïve qui extrapole le parcours de la déneigeuse à partir de celui du drone. + +- `hierolzer.py` : TODO + +- dossier `maps` : TODO + - `verdun.py` : TODO + + +## Dossier `src/drone` + +Ce dossier contient l'ensemble des algorithmes clés pour l'étape des déneigeuses; + +### Descriptif des dossiers/fichiers de `drone` + +- `couverture_sommets.py` : approche gloutonne du problème du drône + +- `postier_chinois_Martial.py` : première implémentation du postier chinois sur un seul quartier + +- `postier_chinoisV1.py` : parcours du drone sur tout montréal via une décomposition par arrondissement. Utilisation de l'algorithme du Postier chinois avec une eulerization du graphe fait à la main. + +- `postier_chinoisV2.py` : parcours du drone sur tout montréal via une décomposition par arrondissement. Utilisation de l'algorithme du Postier chinois avec l'eulerization de networkX. + +- `postier_chinoisV3.py` : parcours du drone sur tout montréal via une décomposition par arrondissement. Utilisation de l'algorithme du Postier chinois avec une eulerization issue de NetworkX mais légerement modifier pour etre plus rapide. + + +## Dossier `src/generation` + +Ce dossier contient diverses fonctions de génération en tout genre; + +### Descriptif des dossiers/fichiers de `generation` + +- `graph_generation.py` : génère un graph à partir d'un nom de lieu et de la lib osmnx + +- `snow_generation.py` : dépose de manière aléatoire de la neige sur une partie du graphe + +TODO : vérif si `suburb_snowplow_generation.py` existe sur la branche main +- `suburb_snowplow_generation.py` : créer un graphe à partir d'une liste de noms de lieux et + du résultat du parcours du drône + + +## Dossier `src/helper` + +Ce dossier des fonctions en tout genre qui sont utiles pour certains algorithmes; + +### Descriptif des dossiers/fichiers de `helper` + +- `check_eulerian.py` : vérifie si un graphe est eulerien (pour graphes orientés et non orientés) + +- `color_suburbs.py` : affiche chaque quartiers de Montréal, à partir du résulat du drone, chacun avec une couleur unique + +- `debug_printer.py` : affiche l'heure et le message donné seulement si le mode debug est activé + +- `display_graph.py` : fonctions pour un affichage légendé d'un graphe + +- `duplicate_removal.py` : supprime tous les doublons de la forme (u,v) pour les graphes générés pas osmnx + +- `export_cost.py` : créer le fichier `temp/export_cost.txt` à partir des différents parcours (drone/déneigeuse) + +- `export_import_yaml.py` : charge et sauvegarde le parcours du drone sous format yaml dans le dossier `paths` + +- `export_to_kml.py` : exporte le parcours des déneigeuses dans le fichier `temp/parcours_deneigeuse.kml` + +- `main_parcours.py` : la fonction qui appelle toutes les fontions de parcours et potentielles fonctions helpers au besoin + +- `output_debug.py` : utilisé pour faire des tests fonctionnels des fonctions nouvellement implémentées sans avoir a casser toute la logique de `main_parcours.py` + +- `partitions.py` : partitionne un graphe en K sous graphes, propose aussi une fonction d'affichage pour les partitions + +- `prune_maps.py` : enlève les arrêtes symptomatiques (les graphes de osmnx + n'étant pas fortement connexes, les déneigeuses peuvent rester bloquées) |
