summaryrefslogtreecommitdiff
path: root/ero1/README.md
blob: 3e1343f85d624e79324c2c9158418cecc4258aa7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
# ERO1

## Le projet

### Descriptif rapide du projet

La ville de Montréal demande une étude pour rendre le déneigement plus efficace et moins coûteux.
Il faut organiser le survol des routes par drone, planifier les trajets des véhicules et proposer
différents scénarios de coûts selon le matériel utilisé.

### Récapitulatif des attentes

#### Science et outils d'ingénieurie

- Données, variables et contraintes clairement définies,

- Modèle détaillé & justifié,

- Optimisation expliquées en lien avec le contexte

#### Identification des ressources et outils

- Recherche de méthodes variées,

- Comparaison argumentée avec le contexte

#### Prototype

- Programme lisible | testable,

- Interface,

- Plusieurs cas testés,

- Identification des goulets d'étranglement

#### Qualité

- Comparatifs avec des indicateurs variés + justifiés,

- Plusieurs scénarios

### Architecture du projet

Les détails donnés sont en lien avec le code produit et les résultats obtenus.
Ne seront pas mentionnés dans ces descriptifs: `venv`, les dossiers cache, `AUTHORS` et `README.md`

#### Description des dossiers : 

- `src` : Ce dossier contient l'ensemble des dossiers dédiés au code source.
    Un détail de chaque dossier est présent dans `./src/README.md`

- `temp` : Ce dossier contient les fichiers temporaires générés pendant l'exécution du programme.
    Un détail de chaque fichier est présent dans `./temp/README.md`

- `paths` : Ce dossier contient des fichiers YAML qui correspondent aux résultats des différents
    parcous de drône avec les différentes versions du postier chinois

#### Description des fichiers :

- `setup.sh` : Script shell qui initialise un venv et télécharge les modules pythons à partir de `requirements.txt`

- `clear.sh` : Script shell qui supprime le venv créé par `setup.sh`

- `run.sh` : Script shell qui permet de lancer la démo de notre projet

- `requirements.txt` : L'ensemble des modules/libs python utilisés directement et indirectement pour ERO1

- `start_dev.py` : L'ANCIEN fichier à executer, il controlait et mettais en commun les grandes étapes du projet,
    A NE PAS UTILISER

- `parameters.py` : Contient nos 'variables d'environnement' pour ce projet afin de pouvoir 
    modifier chaque paramètre du projet facilement et d'avoir des comparaisons plus exhaustives

- `demo.py` : Le nouveau fichier de test; lance une démonstration intercative où vous pouvez choisir
    le parcours du drone, le parcours des déneigeuses, le nombre de déneigeuses ...
    Voici quelques précision:
        => l'implémentation naive ne permet pas de gérer plusieurs déneigeuses, elle ne peut pas non plus gérer les 5 quartiers en même temps
        => l'implémantion du chinese postman problem pour les déneigeuses est limité à seul quartier

## Mode d'emploi

### Installation
Pré-requis: `requirements.txt`, `setup.sh`, le package `python3`, un shell fonctionnel
Exécuter `./setup.sh`

Une fois l'éxecution de `setup.sh` terminée, vous pouvez :
1. utiliser `./venv/bin/python` comme interpreteur python
2. OU activer manuellement le venv avec la commande : `source ./venv/bin/activate`

### Execution
Pré-requis: `run.sh`, un shell fonctionnel
Exécuter `./run.sh`

Ce fichier lancera la démonstration (`demo.py`), il est nécessaire d'avoir réaliser l'étape d'installation car le fichier `run.sh` utilise lui même l'environemment `./venv/bin/python`

A l'issue de cette démo, vous pourrez retrouver le path du drone dans `paths` et les résultats de la déneigeuse sous format KML dans `temp`

### Désinstallation
Pré-requis: `clear.sh`, un shell fonctionnel
Exécuter `./clear.sh`

Ce fichier supprimera le dossier `venv`. Les dossiers de cache comme `cache` et 
`__pycache__` ne sont pas automatiquement supprimés pour éviter de devoir re-télécharger
chaque module python se trouvant dans `requirements.txt` à chaque initialisation du venv.

*Attention*: Si le venv a manuellement été activé, il est recommandé d'utiliser la commande
`deactivate` avant d'exectuer le script `clear.sh`