Vous êtes sur la page 1sur 12

1

Rapport de laboratoire 1

INF4705
Analyse et conception dalgorithmes

Fait par :
Simon Parent - 1433553

Polytechnique de Montral
Le vendredi 4 octobre 2013

Table des matires


Introduction...............................................................................................................................................3
Description du jeu de donnes.............................................................................................................3
Rsultats exprimentaux.......................................................................................................................3
Analyse et discussion.............................................................................................................................5
Algorithme Conventionnel et de Strassen seuil calcul................................................................5

Test de puissance :...................................................................................................................5

Test du rapport..........................................................................................................................6

Analyse asymptotique..............................................................................................................7

Conclusion................................................................................................................................................8
Bibliographie..............................................................................................................................................9
Annexe :...................................................................................................................................................10
Temps dexcution de chaque algorithme et chaque matrice :............................................................10

Introduction
Lors de ce laboratoire, il nous faudra multiplier des matrices de taille diffrente, grce un
algorithme conventionnel (naf), ainsi que la mthode de Strassen (diviser-pour-rgner). Chacun
de ces algorithmes est efficace, mais il est annonc que cette efficacit dpend de la taille des
matrices considres. En effet, il nous faudra trouver le seuil de taille qui dtermine quel
algorithme est plus efficace que lautre. Lorsque le seuil aura t dtermin, plusieurs autres
seuils seront tests pour mettre en perspective lefficacit du changement dalgorithme lorsquon
dpasse le seuil. Le code de limplmentation est compil en Java.

Description du jeu de donnes


Les donnes sont contenues dans le dossier donnees , mais il est possible
lutilisateur de spcifier un dossier personnalis. Les donnes sont dans des documents texte,
nomms ex_n(chiffre).(chiffre de 1 5) (ex : ex_n5.2), parcourues dans le programme et
mises dans des tableaux en mmoire. Le format des donnes est :
Seed : la base de la matrice. La taille de la matrice est 2seed . Dans les documents de
donnes, il sagit dun nombre sur la premire ligne du document.
Donnes : les valeurs de la matrice. Matrices carres de taille 2seed , les valeurs
varient entre 0 et 3

Rsultats exprimentaux
Le tableau suivant rsume les temps dexcution pour chacun des algorithmes
considrs, ainsi que pour les diffrents seuils

4
Temps d'execution selon les seuils
60000
50000

Seuil = 5
Seuil Double
Seuil Moitie
Seuil 1
Seuil = 6
Seuil = 7
Seuil = 8
Seuil = 9
Conventionnel

40000
temps (ms)

30000
20000
10000
0

matrices

On peut tout de suite voir que certains algorithmes, spcialement la mthode de


multiplication de matrices de Strassen au seuil, ont un temps dexcution bien plus important au
fur et mesure que la taille de la matrice augmente.

Pour dterminer le seuil, dans lalgorithme de strassen Calcul, qui est la base des
autres, plusieurs valeurs de seuil ont ts testes, comme il est explicit dans le tableau plus
haut. Cependant, la perspective loigne rends difficile lidentification du moment o lalgorithme
conventionnel devient moins efficace que strassen.

Limage ci-dessous montre plus clairement ce seuil :

5
Si vous regardez le tableau 1, qui contient toutes les mthodes testes, vous constaterez
que la ligne bleu ple correspond lalgorithme conventionnel. On voit plus haut que cette
mthode a soudainement un temps dexcution plus lev en passant dun seuil de 7 8. Cela
signifie que lalgorithme conventionnel est plus efficace pour un seuil de 7 et moins. Ce fut cette
preuve qui permit de dterminer le seuil pour la mthode strassenSeuilCalcule. Les donnes
rsultantes directement de tous les algorithmes lancs en bloc sont affiches en annexe, o les
temps sont en (ms).

Le temps le plus long observ est bien avec le seuil de 1, quel que soit la taille de la matrice.

Analyse et discussion

Algorithme Conventionnel et de Strassen seuil calcul

Test de puissance :

Temps d'execution selon les seuils : chelle Logarithmique


14

12
Strassen_seuil_calcul_7
f(x) = 2.06x - 1.26
10

Linear (Strassen_seuil_calcul_7)

Conventionnel

f(x) = 1.69x - 0.61


8
temps (ms)

4
Linear (Conventionnel)
2

0
moyenne 5.* moyenne 6.* moyenne 7.* moyenne 8.* moyenne 9.* moyenne 10.*
matrices

On constate que strassen avec un seuil de 7 a une puissance denviron 1.69, alors que
lalgorithme conventionnel a une puissance denviron 2.06. Cest une surprise, puisque
lalgorithme conventionnel est de lordre de 3, et lalgorithme de strassen est de lordre de
2.795, selon les notes du cours.
Pour obtenir ce graphique, les valeurs de temps moyennes ont ts prises, puis mises
en base 2. Un simple graphique en chelle logarithmique nous donne ensuite cette figure.

Test du rapport

Temps exposant 2
0
0
0
0

Temps (ms)

0
0
0
0
0
moyenne 5.* moyenne 6.* moyenne 7.* moyenne 8.* moyenne 9.* moyenne 10.*

taille
Conventionnel

Temps exposant 3
0
0
0
0

Temps (ms)

0
0
0
0
moyenne 5.* moyenne 6.* moyenne 7.* moyenne 8.* moyenne 9.* moyenne 10.*

taille
Conventionnel

On obtiens ces valeurs avec la formule : b=temps( ms)/taille exposant , o la valeur de b est
la convergence on constate quon converge pour un exposant entre 2 et 3 (certainement plus
prs de 3). Cela est plus proche

Analyse asymptotique

7
160000000
140000000
120000000
100000000
80000000
60000000
40000000
20000000
0

Ordre de n^2.795

Conventionnel
1200000000
1000000000
800000000
600000000
400000000
200000000
0

Ordre de n^3

Aucune droite ne peut tre trace sur ces courbes exponentielles, ne permettant pas de trouver
une constante multiplicative ou un cot fixe.
Ces graphiques on ts pris en mettant le temps dexcution en (ns) en Y, sur laxe des y, et la
fonction connue f(x) en X.

Conclusion
En revenant sur mon exprience de laboratoire, je peux affirmer que jai eu de la difficult
terminer le travail demand. Jai dcid dtre seul, pour bien comprendre les concepts.
Cependant, ma charge de travail sen est trouve augmente, et en combinant le tout avec mes
autres cours, jai ultimement pass de nombreuses heures, et 2 nuits blanches compltes pour
faire ce laboratoire. lavenir, je grugerai plus rapidement le laboratoire, massurant de ne pas
avoir passer des nuits blanches pour un cours que jaurais d passer la premire fois.

Javais galement commenc initialement par la construction dun programme qui stoquait
chaque matrice dans un vecteur en 3D, mais la logistique tait trop lourde, et aprs avoir utilis
plus de 20 heures de programmation sur cette option, je me suis inspir dun code trouv sur
internet (site dans la bibliographie et en commentaire dans le code), simplifiant grandement mon
excution, et me permettant de tout refaire en une nuit.

Suite ce laboratoire, jen retire une comprhension extensive sur les multiplications de
matrices, ainsi que limportance du choix de lalgorithme choisi pour y parvenir.

10

Bibliographie

Notes en ligne du cours INF4705 .

http://martin-thoma.com/strassen-algorithm-in-python-java-cpp/
http://architects.dzone.com/articles/algorithm-week-strassens

11

12

Annexe :
Temps dexcution de chaque algorithme et chaque matrice :

Vous aimerez peut-être aussi