Futura Sciences
Image de la rubrique en cours

Forum FS Generation

Précédent   Vous êtes ici : Forum FS Generation » Informatique » Logiciel - Software - Open Source

Découvrir d'autres sujets sur ces thèmes : , ,


Réponse
Vieux 25/11/2004, 10h37   Sujet Vitesse d'un algorithme - Message #1
Evil.Saien
 
Date d'inscription: janvier 2003
Localisation: Montreal
Âge: 26
Messages: 1 260
Vitesse d'un algorithme
Bonjour,
je suis pas informaticien de formation, pourtant je suis en train de programmer des algo dont j'aimerais connaitre la vitesse.
Comment est-ce qu'on fait ?
Par exemple, pour une simple boucle for (int i=0; i<max; i++) je me doute que la vitesse et en fonction de max de manière linéaire, noté il me semble, O(N).
Mais lorsque ca se complique, je sais pas trop comment faire.
De plus si on utilise plusieurs algorithme a la suite, par exemple une FFT O(N^2logN) et une boucle O(N), quelle devient la vitesse ??

Merci
++
Evil.Saien est déconnecté   Réponse avec citation
Alt Aujourd'hui
Publicité

Beitrag Liens sponsorisés

   
Vieux 25/11/2004, 13h06   Sujet Vitesse d'un algorithme - Message #2
uinet_propane
 
Date d'inscription: juillet 2004
Localisation: Vaud, Suisse
Âge: 25
Messages: 775
Re : Vitesse d'un algorithme
Ben moi, je suis informaticien de formation et je ne connais pas la formule pour calculer exactement la vitesse (d'ailleurs si qqun la connais, je suis preneur). Je me base plutot sur le nombre d'instruction a executé (sachant qu'une boucle est une suite a prendre en compte, genre NbLigne*NbBoucle = nombre de cycle CPU). Un CPU execute une instruction a la fois (une ligne peut contenir plusieurs instruction), donc moi je decompose le code en ligne simple (1 ligne = 1 instruction), je calcul le nombre de cycle et je compare la frequence de mon CPU avec le nombre de cycle pour avoir le temps d'execution, pour une fonction par exemple. Mais si tu es sur un environnement multitache, tu doit prendre en compte le fait que ton applic n'est pas constamment executé, donc la vitesse depend des instructions a executé, mais aussi des autres applic qui tourne. Se qui forcement diminue le temps CPU disponible pour toi.
__________________
underinet, l'information appartient à l'humanité
uinet_propane est déconnecté   Réponse avec citation
Vieux 25/11/2004, 13h45   Sujet Vitesse d'un algorithme - Message #3
Lambda0
 
Date d'inscription: juillet 2004
Messages: 889
Re : Vitesse d'un algorithme
salut

en complément à ce que dit uinet (tout à fait exact) :

Tout dépend de l'application.
S'il s'agit d'un programme pour un micro-controleur pilotant un système temps réel, on peut effectivement avoir besoin de connaitre le temps d'exécution à la µs près, et il faut dans ce cas compter proprement les instructions.
Pour une application scientifique écrite dans un langage de plus haut niveau, on s'intéresse plutôt au comportement asymptotique des algorithmes : le fait de savoir qu'un algorithme a une complexité en O(N) ou O(N.log(N)).
Mathématiquement O(N)+O(N.log(N)=O(N.log(N)) si les deux
algorithmes s'exécutent consécutivement (ne sont pas imbriqués).
La détermination de la complexité d'un algorithme est en général un problème difficile.
Bon, c'est la théorie.
En pratique, la constante de proportionnalité est aussi importante, et quand on ne connait pas le détail de tous les processus qui s'exécutent simultanément, le mieux est de faire quelques mesures, ce qui permet d'écrire explicitement une formule du type T = K0 + K1.N + K2.N*log(N).
Plus qu'à faire quelques mesures pour déterminer K0, K1, K2.

A+
Lambda0 est déconnecté   Réponse avec citation
Vieux 25/11/2004, 13h45   Sujet Vitesse d'un algorithme - Message #4
Evil.Saien
 
Date d'inscription: janvier 2003
Localisation: Montreal
Âge: 26
Messages: 1 260
Re : Vitesse d'un algorithme
Salut,
pour etre plus précis, il ne sagit pas de la vitesse de l'algorithme, mais de sa compléxité (le mot m'avait échappé de la bouche).
Donc les instructions simples a l'intérieur des boucles ne sont pas a prendre en compte. Ce que je doit trouver, c'est plutot le nombre de boucle que je fais en fonction de la taille du signal...
Evil.Saien est déconnecté   Réponse avec citation
Vieux 25/11/2004, 13h51   Sujet Vitesse d'un algorithme - Message #5
Lambda0
 
Date d'inscription: juillet 2004
Messages: 889
Re : Vitesse d'un algorithme
Alors il faut bien faire une analyse mathématique.
Pour la FFT 1D, la complexité est N.log(N), ce qui se démontre en analysant l'algorithme (démo par récurrence il me semble).

A+
Lambda0 est déconnecté   Réponse avec citation
Vieux 25/11/2004, 14h11   Sujet Vitesse d'un algorithme - Message #6
acx01b
 
Date d'inscription: avril 2004
Messages: 646
Re : Vitesse d'un algorithme
ça dépend énormément du language où tu programmes....

si tu programmes en assembleur tu vas pouvoir exactement calculer sans executer ton programme le temps qu'il va mettre...
si c'est en c, tu vas devoir le faire par la pratique, en comparant diverses valeurs que tu auras mesuré...
acx01b est déconnecté   Réponse avec citation
Vieux 25/11/2004, 15h37   Sujet Vitesse d'un algorithme - Message #7
cricri
 
Date d'inscription: juillet 2004
Messages: 910
Re : Vitesse d'un algorithme
tu as la fonction elle retourne les milliseconde depuis l ouverture de windows soit par 1 soit par 16
Public Declare Function timeGetTime Lib "winmm.dll" () As Long

ces 2 fonctions serve a passer de 1 a 16 milliseconde mais bon ca marche pas toujours
Public Declare Function timeBeginPeriod Lib "winmm.dll" (ByVal uPeriod As Long) As Long
Public Declare Function timeEndPeriod Lib "winmm.dll" (ByVal uPeriod As Long) As Long

tu ne peux pas comparer une fft et une simple boucle
une fft c est tous un algo qui comporte n boucle imbriquer ou pas
tu choisi le fft parce que c est rapide apres tu l ecrit comme tu veux en essayant de diminuer les boucles

j ai ecrit une fft en vb et je suis en train de l ammeliorer pour aller plus vite pour l instant 3*1048576 de chiffre en 5s sur un amd 1.3 ghz
cricri est déconnecté   Réponse avec citation
Vieux 25/11/2004, 15h40   Sujet Vitesse d'un algorithme - Message #8
cricri
 
Date d'inscription: juillet 2004
Messages: 910
Re : Vitesse d'un algorithme
Citation:
Posté par Evil.Saien
Salut,
pour etre plus précis, il ne sagit pas de la vitesse de l'algorithme, mais de sa compléxité (le mot m'avait échappé de la bouche).
Donc les instructions simples a l'intérieur des boucles ne sont pas a prendre en compte. Ce que je doit trouver, c'est plutot le nombre de boucle que je fais en fonction de la taille du signal...

il me semble

nbmulti = Log(nbchiffre) / Log(2)
nbadd = nbmulti + 1
donc si tu prend 1048576 valeur faut faire 21 x la boucle d addition
pour les 1048576 valeur
et 20 x boucle de multi en sachant que tu ne multiplie jamais tous les 1048576 a chaque fois
cricri est déconnecté   Réponse avec citation
Bienvenue
Si ceci est votre première visite, vous devez vous inscrire avant de pouvoir envoyer des messages. En étant inscrit vous pourrez poster votre question, participer aux débats, joindre vos images... alors n'attendez-plus, cela vous prendra 1 minute !

Pour commencer à lire les messages, depuis la page d'accueil des forums, sélectionnez le forum qui vous tente et partez ensuite à sa découverte...

Publicité

A voir aussi
A la recherche d'un algorithme ... (Forum Mathématiques du supérieur)
Vitesse d'un gaz (Forum Physique)
Algorithme de calcul d'un déterminant de matrice (Forum Mathématiques du supérieur)
représentation mathématique d'un algorithme (Forum Mathématiques du collège et du lycée)
Orion : Google embauche l'auteur d'un algorithme révolutionnaire (Forum Commentez les actus, dossiers et définitions)










A voir aussi (Futura Sciences n'est pas responsable du contenu de ces publicités)
Réponse


Dossiers à découvrir

Outils
Modes d'affichage

Règles de messages
Vous pouvez ouvrir de nouvelles discussions : nonoui
Vous pouvez envoyer des réponses : nonoui
Vous pouvez insérer des pièces jointes : nonoui
Vous pouvez modifier vos messages : nonoui

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Navigation rapide


Les dernières actualités
06/09 14:03 - L'ATV Jules-Verne a quitté l'ISS pour son dernier voyage
06/09 10:55 - Tabagisme passif : de très jeunes enfants hospitalisés…
05/09 16:12 - 2008 KV42, l'astéroïde qui tourne à l'envers
05/09 13:21 - Un thon robot pour l'armée américaine
05/09 11:37 - La Nasa envisage de prolonger la vie de ses navettes
05/09 09:34 - Flambée de fièvre Q aux Pays-Bas
04/09 17:30 - Bataille autour du sang de tyrannosaure

Fuseau horaire GMT +2. Il est actuellement 10h36.

Propulsé par vBulletin
Copyright © 2000 - 2008, Jelsoft Enterprises Ltd. Tous droits réservés.
Traduction par l'association vBulletin francophone