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 :

Recuit simulé ..


Sujet :

Algorithmes et structures de données

  1. #1
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 31
    Par défaut Recuit simulé ..
    Bonjour,
    J'utilise la méthode du recuit simulé pour la reconstruction d'un signal grâce à des signaux connu.
    Tout marche parfaitement, mais le seul soucis est que je ne trouve pas de lois de décroissance pour ma température T.
    Comment puis je faire?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    1/n, ça marche pas?
    Bonne journée

  3. #3
    Membre expérimenté
    Inscrit en
    Décembre 2003
    Messages
    272
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 272
    Par défaut
    Bonjour,
    Je n'ai pas de connaissance pratique sur le sujet, je vais donc te renvoyer directement vers le (très bon) cours que j'avais suivi sur le sujet :
    Cours de B. Ycart
    Ce qui t'intéresse est dans la quatrième partie. Tu y trouveras quoi prendre comme loi de température.

  4. #4
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 31
    Par défaut
    ça s'ouvre avec quel logiciel?
    J'ai trouvé (N/2)^2 pour descendre d'un palier, et T=T*coef pour la lois de décroissance.
    Pour moi mon algo est juste j'ai regardé sur plusieurs site. Quand je rajoute des composantes ou que je complique un peu le truc il a vraiment du mal à converger..et je sais pas pourquoi!!!!! rrrrgggrrr ça fait 3 jours que je suis la dessus, quelqu'un pourrait m'aider et regarder mon code (pas gros) et me dire ce qu'il en pense?
    Pourquoi je converge pas j'ai même essayé en mettant la température initial un peu plus haute et augmenter le temps avant de descendre d'un palier...sans résultats!
    Merci à celui qui pourra m'aider..!

    Merci à vous deux aussi! (au dessus )

  5. #5
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 31
    Par défaut
    Personne peut me donner un petit coup de main pour ameliorer les parametres?
    J'ai tout fait comme decrit sur les cours et apparement ça marche pas comme il faudrait...

  6. #6
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par polodu84 Voir le message
    rrrrgggrrr ça fait 3 jours que je suis la dessus, quelqu'un pourrait m'aider et regarder mon code (pas gros) et me dire ce qu'il en pense?
    Si tu le postais on pourrait sans doute mieux le lire.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  7. #7
    Membre expérimenté
    Inscrit en
    Mars 2008
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 209
    Par défaut
    voila ce que j'ai trouvé
    "les performances du recuit simulé dépend largement du schéma de refroidissement utilisé.
    De nombreux schémas théoriques et pratiques ont été proposés. De manière générale , les schémas de refroidissement connus peuvent être classé en trois catégories:
    -réduction par palier: ( fonction en escalier décroissante )une température est maintenue constante pendant un nombre d itérations puis réduite.
    -réduction continue température modifiée à chaque itération
    -réduction non monotone la température décroit avec des augmentations occasionnelles"

  8. #8
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 31
    Par défaut
    Oui et tu as essayé de faire tourner mon code? Les courbes doivent normalement converger...
    J'ai tester les 2 premières méthodes (que tu cite) avant de poster le code et même en mettant beaucoup de temps pour baisser la température...rien n'y fait, y a t'il une erreur autre part??
    Merci de votre aide!

  9. #9
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Par défaut
    Citation Envoyé par polodu84 Voir le message
    ça s'ouvre avec quel logiciel?[...]
    C'est un postscript. Il te faut un lecteur approprié : GSView fait le travail
    http://pages.cs.wisc.edu/~ghost/gsview/index.htm

  10. #10
    Membre expérimenté
    Inscrit en
    Mars 2008
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 209
    Par défaut
    si ton problème est le critère de Metropolis dans le RS , tu peut utiliser une méthode dérivée :Treshold (acceptation avec seuil).
    la seul différence avec le recuit classique c'est l acceptation de la dégradation se fait de manière déterministe à chaque étape.
    à chaque itération k l'acceptation d'un voisin de l'état actuel x se base uniquement sur une fonction auxiliaire G(x,x') et un seuil Tk.
    si G(x,x')< Tk x' est accepté.
    G(x,x')= f(x')-f(x).
    le paramètre Tk est définit de manière analogue à la température dans le RS. Tk tend vers 0.Tk est une suite décroissante.
    généralement la difficulté des méthodes RS est la détermination des seuils d acceptations.

  11. #11
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 31
    Par défaut
    ouai...j'ai pas tout compris mais bon..je vais essayé de chercher un peu...merci de ta reponse...
    tu pense que ça pourrait mieux marcher? y a pas une autre erreur dans mon code?
    T'aurais pas un lien vers des explications de ta methode...?

    C'est possible que tu me montre par rapport à mon code...?

  12. #12
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 31
    Par défaut
    Citation Envoyé par Ulmo Voir le message
    Bonjour ...
    Ce qui t'intéresse est dans la quatrième partie. Tu y trouveras quoi prendre comme loi de température.
    Comme loi de température j'avais T=T*0.90, dans le cours il propose T=1/T+1..?? là je vois plus...

  13. #13
    Membre expérimenté
    Inscrit en
    Décembre 2003
    Messages
    272
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 272
    Par défaut
    Hum, non. La loi de température qu'il propose est du type :
    T(n) = h / log(n)
    h étant un paramètre à ajuster.
    Ou plus simplement, prendre la température constante sur des paliers de plus en plus long :
    pour exp((k-1)*h) < n < exp(k*h) on prend : T(n) = 1 / k

    De toute façon, il faut faire des essais et voir ce qui marche.

  14. #14
    Membre expérimenté
    Inscrit en
    Mars 2008
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 209
    Par défaut
    j'ai demandé à un de mes profs qui a plus d expérience que moi dans le domaine du recuit .il dit que c'est le plus grand désavantage de la méthode. ce qu'il faut faire c'est d'essayer les trois types que j'ai mentionné puis d'affiner la fonction de température qui donne les meilleur résultats.

  15. #15
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 31
    Par défaut
    J'ai tout essayé, différent paramètres (palier, température, h...), différente méthodes.. ça rend fou, c'est la folie à ajuster...si quelqu'un peut m'aider pour trouver la meilleur méthode ça serait sympa...et me dire ce que vous en pensais...Même si le resultat final est à peu prêt cohérent pourquoi ça converge pas de plus en plus...
    J'ai essaye T(n)=1/k ou T(n) = h / log(n) en effet la température descend beaucoup plus lentement à basse température...je dirais même trop lentement...!

  16. #16
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 61
    Par défaut
    Citation Envoyé par polodu84 Voir le message
    J'ai tout essayé, différent paramètres (palier, température, h...), différente méthodes.. ça rend fou, c'est la folie à ajuster...si quelqu'un peut m'aider pour trouver la meilleur méthode ça serait sympa...et me dire ce que vous en pensais...Même si le resultat final est à peu prêt cohérent pourquoi ça converge pas de plus en plus...
    J'ai essaye T(n)=1/k ou T(n) = h / log(n) en effet la température descend beaucoup plus lentement à basse température...je dirais même trop lentement...!
    Salut ,

    je ne sais pas si je vais t'aider ..mais voila j'ai travaillé avec le Recuit : voila mes remarques :
    C'est normal que le recuit ne converge pas toujours : il suit une loi "au hasard" et parfois, il va dans une mauvaise direction et ne converge pas. Théoriquement, il converge toujours au minimum absolu quand le nombre d'itérations est très grand.

    Pour avoir un bon résultat, il faut donc le lancer plusieurs fois.

    Moi j'ai utilisé une loi de décroissance de la température : T(k)= 0,95*T(k-1) et ca marchait bien.

    a mon avis, le recuit est utile quand tu le combine avec une technique d'optimisation dite locale (exemple : le simplexe).

    Tu commence par le simplexe : converge rapidement vers un optimum "local". pour s'extraire de cet optimum local, et espérer tomber sur un optimum "global", tu lances le recuit à partir de ce dernier optimum.

    Si le temps calcul est un facteur important pour toi , n'utilise pas le recuit : C'est lent . mais un autre algorithme que tu lance à partir de différents points initiaux.

  17. #17
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 31
    Par défaut
    Merci à toi de m'aider.
    J'avais moi aussi utiliser cette lois de décroissance mais ça ne fonctionnait pas très bien quand la température était basse car il me fallait des paliers de plus en plus long. Effectivement la méthode fonctionne à peu prés mais demande du temps et des expérimentations afin de trouver le bon réglage. C'est donc pas super adapter surtout si on doit commercialiser un système...

    Mon objectif est de comparer différents signaux connus avec un signal de mesure, de travailler en poids (%) à partir des signaux connu pour "reconstruire" ou me rapprocher au plus proche du signal de mesure (sa forme donc) pour en ressortir un résultat proportionnel à ceux connus..
    J'avais donc utilisé le recuit simulé mais on m'a dis qu'on pouvait aussi faire cela avec un algorithme basé sur la méthode des moindres carrés. Le résultat serait donc instantané.
    Je n'ai pas les équations des signaux connu mais seulement des points.
    Les moindres carré me permettent d'interpoler par exemple (ce que j'avais appris à l'école...)
    Mais quelqu'un peut m'aider à faire cela, mathématiquement comment faire pour travailler en poids à partir de plusieurs signaux connus et me rapprocher de ma mesure?

    Merci

  18. #18
    Membre expérimenté
    Inscrit en
    Mars 2008
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 209
    Par défaut
    je vois mieux les choses.
    soit tu fait un échantillonnage et tu t oriente vers la méthodes des moindres carrés ... soit tu étudie la fonction différence (si tu connais la fonction génératrice )

Discussions similaires

  1. Probleme Voyageur de Commerce - Recuit Simulé
    Par dinver dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 21/06/2009, 22h26
  2. demande d'un programme de recuit simulé
    Par salim_1 dans le forum C++
    Réponses: 5
    Dernier message: 21/01/2008, 09h56
  3. voyageur de commerce par recuit simulé
    Par siviuze dans le forum C
    Réponses: 6
    Dernier message: 11/01/2007, 16h14
  4. sudoku, recuit simulé
    Par mimst dans le forum Langage
    Réponses: 5
    Dernier message: 19/12/2006, 15h13
  5. Double recuit simulé
    Par bbefa dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 05/05/2004, 20h27

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