You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: tp1/TP1.md
+40-3Lines changed: 40 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -164,12 +164,49 @@ Fin démarrerParcoursEnProfondeur
164
164
165
165
### Jeux d'essais
166
166
167
-
Les 3 différentes fonctions implémentant l'algorithme de Roy-Warshall ont été exécutés 10000 fois chacune avec des graphes dont le nombre de sommets allait de 1 à 15.
167
+
Afin de comparer la performance des différentes implémentations de Roy-Warshall, nous avons écrit une fonction qui génère des graphs aléatoirement.
168
+
169
+
```
170
+
Fonction génèreGraph (nbSommets)
171
+
172
+
graph := liste contenant nbSommets sous-listes vides
173
+
174
+
Pour i allant de 0 à nbSommets-1
175
+
nbSuccesseurs := nombre aléatoire supérieur ou égal à 0 et inférieur ou égal à nbSommets
176
+
On ajoute un nombre aléatoire de successeurs compris entre 0 à nbSommets dans graph[i]
177
+
Fin Pour
178
+
179
+
Retourner graph
180
+
181
+
Fin génèreGraph
182
+
```
183
+
184
+
Cette fonction permet de tester les performances en exécutant n fois chaque algorithme avec des graphs aléatoires dont la taille augmente progressivement de a à b, b non compris.
185
+
186
+
Exemple ci-dessous, avec n = 1000, a = 1, b = 21 (la taille des graphs générés varie de 1 à 20)
187
+
188
+

168
189
169
190
On peut voir sur le diagramme ci-dessous que l'algorithme le plus efficace est Roy-Warshall 2 (environ 2 fois plus efficace que Roy-Warshall 1).
170
-
On remarque également que l'efficacité de Roy-Warshall 1 Bis diminue à mesure que le nombre de sommets augmente, jusqu'à devenir moins efficace que Roy-Warshall 1.
191
+
On remarque également que Roy-Warshall 1 Bis est l'implémantation la moins efficace.
171
192
172
-

193
+
Cependant, si on zoome dans le diagramme, on peut voir que Roy-Warshall 1 bis est très légèrement plus efficace que Roy-Warshall 1 pour des graphs avec des sommets allant de 1 à 7/8.
173
194
195
+

196
+
197
+
Le diagramme peut être visualié en exécutant les commandes suivantes dans un terminal (sur linux) :
198
+
199
+
```bash
200
+
python3 -m venv venv # création d'un environnement virtuel pour installer la bibliothèque matplotlib
201
+
source venv/bin/activate # activation de l'environnement virtuel
202
+
pip3 install matplotlib # installation de la bibliothèque Python matplotlib
203
+
python3 tp1/src/graph.py # exécution du script Python qui génère les diagrammes
204
+
```
205
+
Les paramètres d'exécution peuvent être modifiées au début du fichier `tp1/src/graph.py` :
174
206
207
+
```python
208
+
defmain() -> None:
209
+
min_graph_size =1# i
210
+
max_graph_size =21# j, la taille des graph générés va varier de 1 à 20
211
+
number_of_executions =10000#n, nombre d'exécutions
0 commit comments