IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Vitesse de convergence des algorithmes


Sujet :

Algorithmes et structures de données

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut Vitesse de convergence des algorithmes
    Salut tous,

    je voudrais savoir comment on demontre la vitesse de convergence des algorithmes ? j'ai par exemple entendu que newton à une vitesse quadratique, la dichotomie logarithmique...

    pourriez vous me dire comment faire pour demontrer ceci et eventuellement me donner un exemple pour les methodes que j'ai cité ci dessus ?

    je vous remercie d'avance pour votre aide

  2. #2
    Membre émérite
    Avatar de Franck Dernoncourt
    Homme Profil pro
    PhD student in AI @ MIT
    Inscrit en
    Avril 2010
    Messages
    894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PhD student in AI @ MIT
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2010
    Messages : 894
    Points : 2 464
    Points
    2 464

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    en fait je n'ai pas vraiment compris ces notions et sur wiki je trouve que c'est un peu compliqué pour un débutant...

    1°) par exemple on a pour la dichotomie:


    Xn+1 - Xn = ecartOrigine/2^n

    J'ai bien compris comment obtenir ceci mais j'ai pas trop compris pourquoi on dit que la convergence est lineaire ?

    par le "n" n'a pas de puissance ?


    2°) pour newton:


    pour newton on dit que la convergence est quadratique car le "n" est au carré dans la relation donnée par Xn+1 - Xn ??

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2010
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2010
    Messages : 59
    Points : 86
    Points
    86
    Par défaut
    je n'ai pas étudier la vitesse de convergence des algo, mais leur complexité,
    il est vrai de dire que la dichotomie est logarithmique et que l'algo de newton quadratique.

    j'ai l'impression que tu peux donc lié cela a la compléxité moyenne de l'algo.
    La compléxité moyenne correspond à l’ordre de grandeur des itérations de ton algo.

    - si t'a un tableau de n élément avec des indices, tu as un indices, tu sais donc ou le récupérer c'est de compléxité 1.

    - maintenant si tu n'as pas l'indice, tu dois le parcourir entièrement, on parlera ici de compléxité linéaire, compléxité n.

    - si maintenant tu fais une recherche par dichotomie (en supposant que ton tableau est trié bien sur), tu vas couper le tableau autant de fois que possible en 2 jusqu’à avoir l’élément, t'aura moins que le linéaire.. compléxité logarithmique.

    - si tu veux trier ton tableau, l’algorithme glouton est quadratique, tu fais un double parcour pour tout ranger.. compléxité n².

    c'était des exemple pour illustrer maintenant pour démontrer, je me rappelle plus trop de formules, c'est long et pénible a lire, essaye de voir ce que tu peux avoir sur le net.

    j’espère que ça pourra t'aider à comprendre le principe.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    oui ça à l'air lié ces choses...

    je vais voir sur le net ce que je trouve là dessus.


    merci en tout cas :-)

  6. #6
    Membre émérite
    Avatar de Franck Dernoncourt
    Homme Profil pro
    PhD student in AI @ MIT
    Inscrit en
    Avril 2010
    Messages
    894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PhD student in AI @ MIT
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2010
    Messages : 894
    Points : 2 464
    Points
    2 464
    Par défaut
    Citation Envoyé par 21did21 Voir le message
    oui ça à l'air lié ces choses...
    Heu, pas tellement :
    • la complexité computationnelle se penche sur l'ordre de grandeur du nombre d'unités de calcul à réaliser pour arriver à la fin d'un algorithme ;
    • la vitesse de convergence étudie l'évolution d'une suite (au sens mathématique).


    Dans certains cas particuliers, l'étude de la vitesse de convergence peut certes éclairer la complexité computationnelle, mais c'est rare ! Et le calcul de la complexité computationnelle ne sert à rien pour déterminer la vitesse de convergence.

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    franck aurais tu un lien pas mal qui explique pour un debutant toutes ces notions depuis zero ?

  8. #8
    Membre émérite
    Avatar de Franck Dernoncourt
    Homme Profil pro
    PhD student in AI @ MIT
    Inscrit en
    Avril 2010
    Messages
    894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PhD student in AI @ MIT
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2010
    Messages : 894
    Points : 2 464
    Points
    2 464
    Par défaut


    Ce sont les liens les moins compliqués que je connaisse... il y a peut-être de meilleurs liens !

  9. #9
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut!
    Il faut être conscient que la complexité ne donne parfois pas une idée exacte du temps de calcul en fonction de la taille du problème. Je te donne deux exemples:
    1. Tu veux remplir un tableau de dimension n*n. Tu peux le faire ligne par ligne ou colonne par colonne. De toute évidence, la complexité est la même dans les deux cas. Or, pour de grandes valeurs de n, le temps de calcul est différent: en Fortran, c'est plus rapide colonne par colonne et en C, ligne par ligne.
    2. Tu veux résoudre des systèmes linéaires d'ordre n. La complexité te dit que le temps de calcul est un polynôme de degré 3 en n. Or si tu traces le graphe du temps de calcul en fonction de n, tu constateras qu'il présente une discontinuité lorsque la taille de ta matrice dépasse la place disponible en mémoire vive et que ton ordinateur doit multiplier les transferts ver son disque dur.

    Alors, je pense qu'une approche "expérimentale" est plus fiable que l'étude de la complexité: on essaie et on observe.
    Jean-Marc Blanc

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    merci pour ces éléments !

    ps : Jean Marc comment montre t on que ça evolue comme un polynome de degres 3 ?

  11. #11
    Membre émérite
    Avatar de Franck Dernoncourt
    Homme Profil pro
    PhD student in AI @ MIT
    Inscrit en
    Avril 2010
    Messages
    894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PhD student in AI @ MIT
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2010
    Messages : 894
    Points : 2 464
    Points
    2 464
    Par défaut
    Citation Envoyé par FR119492 Voir le message
    Alors, je pense qu'une approche "expérimentale" est plus fiable que l'étude de la complexité: on essaie et on observe.
    Disons que cela dépend des objectifs visés.

    Si cela intéresse 21did21 ou d'autres visiteurs de ce thread, plus d'info sur ce sujet : http://www.developpez.net/forums/d11...le-algorithme/

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    merci pour ces compléments

  13. #13
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut!
    Jean Marc comment montre t on que ça evolue comme un polynome de degres 3
    En fait, on n'a plus besoin de le montrer, parce qu'on le sait déjà. Mais, si tu veux le vérifier, il y a plusieurs approches possibles:
    1. Tu essaies avec diverses valeurs de n, tu chronomètres et tu représentes la fonction T(n), ainsi que T(n)/n, T(n)/n^2 et T(n)/n^3. En fait, ça n'est pas très précis, parce que ton ordinateur fait un tas d'autres choses en même temps.
    2. Dans ton programme, tu ajoutes 2 compteurs, l'un pour les additions et soustractions, l'autre pour les multiplications et divisions, puis tu procèdes comme ci-dessus, mais avec les valeurs obtenues par les compteurs, à la place du temps de calcul.
    3. Tu décortiques ton algorithme et tu regardes le nombre de boucles imbriquées.

    Jean-Marc Blanc

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment calculer la vitesses de convergence d'un algorithme d'optimisation?
    Par MaybeStrong dans le forum Traitement d'images
    Réponses: 1
    Dernier message: 05/09/2013, 21h50
  2. Formalisation graphique des algorithmes
    Par David R. dans le forum Algorithmes et structures de données
    Réponses: 14
    Dernier message: 08/12/2012, 10h21
  3. Recherche d'un logiciel pour créer des algorithmes
    Par Seb003 dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 02/10/2005, 17h46
  4. Vitesse de rafraichissement des données
    Par StarMusic dans le forum Bases de données
    Réponses: 2
    Dernier message: 30/09/2005, 10h20
  5. doc sur l'analyse des algorithmes
    Par pinkle dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 28/05/2005, 12h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo