Skip to content

Commit d4f6d37

Browse files
committed
pseudo code génération graphes, figures, rapport
1 parent d4c95e5 commit d4f6d37

5 files changed

Lines changed: 41 additions & 4 deletions

File tree

tp1/TP1.md

Lines changed: 40 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -164,12 +164,49 @@ Fin démarrerParcoursEnProfondeur
164164

165165
### Jeux d'essais
166166

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+
![Figure1](/tp1/figure1.png?raw=true)
168189

169190
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.
171192

172-
![Alt text](diagram.png?raw=true)
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.
173194

195+
![Figure2](/tp1/figure2.png?raw=true)
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` :
174206

207+
```python
208+
def main() -> 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
175212
```

tp1/diagram.png

-40.9 KB
Binary file not shown.

tp1/figure1.png

51.5 KB
Loading

tp1/figure2.png

80.4 KB
Loading

tp1/src/graph.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
def main() -> None:
1212
min_graph_size = 1
1313
max_graph_size = 21
14-
number_of_executions = 10000
14+
number_of_executions = 1000
1515

1616
print("{} executions".format(number_of_executions))
1717

0 commit comments

Comments
 (0)