Skip to content
Snippets Groups Projects
README.md 4.62 KiB
Newer Older
gossa's avatar
gossa committed

# P4z : Analyse de performances de différents tris

gossa's avatar
gossa committed
[Grille d'évaluation P4z](https://docs.google.com/spreadsheets/d/1VXeO91rhy04xa0p8KUhWliFl228utHaDir8MstO5Z-M/edit?usp=sharing
gossa's avatar
gossa committed
)

gossa's avatar
gossa committed
## Problème

Description du Problème.

Description de tous les paramètres exploratoires du problème

## Dispositif expérimental

### Application

chafiol's avatar
chafiol committed
[code source de l'application](src/Lib)
>Pour utiliser les tris, vous avez besoin de 2 choses:<br>
    - Le binaire `tri`<br>
    - Un document texte contenant les éléments du tableau, chaque élément est séparé du prochain par un espace et pour finit par un `.`. <br>
    Ex : `4 3 11 29 .`<br>

> Le binaire demande une option et un fichier, le fichier est du type de ceux définit plus haut, quant aux option il en existe plusieures : <br>
    - `-i` ou `--insertion` pour le tri à insertion
    - `-f` ou `--fusion` pour le tri à fusion
    - `-r` ou `--rapide` pour le tri rapide
    - `-a` ou `--all` pour tout les tris disponibles 
    - `-iv` ou `--insertion-verbose` pour le tri à insertion avec les affichages avancés
    - `-fv` ou `--fusion-verbose` pour le tri à fusion avec les affichages avancés
    - `-rv` ou `--rapide-verbose` pour le tri rapide avec les affichages avancés 
    - `-g` qui génére un nouveau tableau sur stdout avec une taille du tableau et un nombre max 

gossa's avatar
gossa committed

### Environnement de test

Description de la plateforme de test
```
Extrait pertinent de /proc/cpuinfo
```

### Description de la démarche systématique

Description de la démarche systématique et de l'espace d'exploration pour chaque paramètres.

```
Suite des commandes, ou script, à exécuter pour produire les données.
```

## Résultats préalables

gossa's avatar
gossa committed
### Temps d'exécution

| Jeu de test          | Tri par Insertion         | Tri Fusion                | Tri Rapide                |
|----------------------|---------------------------|---------------------------|---------------------------|
| Aléatoire            | ![plot](path/to/plot.png) | ![plot](path/to/plot.png) | ![plot](path/to/plot.png) |
| Trié                 | ![plot](path/to/plot.png) | ![plot](path/to/plot.png) | ![plot](path/to/plot.png) |
| Tri inversé          | ![plot](path/to/plot.png) | ![plot](path/to/plot.png) | ![plot](path/to/plot.png) |

### Consommation mémoire

gossa's avatar
gossa committed
| Jeu de test          | Tri par Insertion         | Tri Fusion                | Tri Rapide                |
|----------------------|---------------------------|---------------------------|---------------------------|
| Aléatoire            | ![plot](path/to/plot.png) | ![plot](path/to/plot.png) | ![plot](path/to/plot.png) |
| Trié                 | ![plot](path/to/plot.png) | ![plot](path/to/plot.png) | ![plot](path/to/plot.png) |
| Tri inversé          | ![plot](path/to/plot.png) | ![plot](path/to/plot.png) | ![plot](path/to/plot.png) |

### Analyse des résultats préalables

Explications précises et succinctes des résultats préalables.

### Discussion des résultats préalables

gossa's avatar
gossa committed
Explications précises et succinctes des limites des résultats
gossa's avatar
gossa committed
préalables et ce qu'ils ne permettent pas de vérifier.

## Etude approfondie

### Hypothèse

chafiol's avatar
chafiol committed
Le tri insertion devient de plus en plus long quand la taille du tableau augmente, et donc celui-ci ne sait traiter efficacement uniquement des petits tableaux, étant donnée que tout les autres algorithmes coupent leurs tableaux en de plus petit tableaux, Notre hypothése est, que si le tri insertion est donc plus performant que les autres tris sur des petit tableaux, alors nous allons utiliser le tri insertion dans les autres tris, par exemple avec tri rapide.  
gossa's avatar
gossa committed

### Protocole expérimental de vérification de l'hypothèse

chafiol's avatar
chafiol committed
Pour ce faire nous allons donc voir si effectivement le tri insertion se déroule plus rapidement sur plein de petit tableaux, pour le test nous avons commencé avec des tableaux de taille 100, et au lieux de regarder le temps de chaque tri de faire le tri d'un tableau puis d'un autre, etc..., on va juste prendre le temps pour trier tout les tableaux.
chafiol's avatar
chafiol committed
En faisant certains test, nous avons aussi remarqué que le tri insertion est encore plus rapide lorsque les tableaux à traiter sont déjà presque triés.
gossa's avatar
gossa committed

chafiol's avatar
chafiol committed
Tout d'abord pour tester l'hypothése on fait un petit [script](src/Scripts/hypothese_perf.sh) pour tester, ce script à été réalisé avec 1000 tableaux de 100 éléments. 
gossa's avatar
gossa committed
```
chafiol's avatar
chafiol committed
./hypothese_perf.sh 
gossa's avatar
gossa committed
```
chafiol's avatar
chafiol committed
ce qui nous donne ![ceci](src/Images/Tri_insertion_plus_rapide.png)
gossa's avatar
gossa committed

chafiol's avatar
chafiol committed
Donc maintenant il faut faire un tri rapide qui utilise le tri insertion et l'intégrer au main.

gossa's avatar
gossa committed
### Résultats expérimentaux

### Analyse des résultats expérimentaux

### Discussion des résultats expérimentaux

## Conclusion et travaux futurs