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

avec Java Discussion :

ma méthode ne retourne pas le vecteur mis à jour ?


Sujet :

avec Java

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Février 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Février 2011
    Messages : 40
    Points : 37
    Points
    37
    Par défaut ma méthode ne retourne pas le vecteur mis à jour ?
    Bonjour,
    Je suis coincé sur ce petit code qui comporte deux classes: individu qui génère un vecteur aléatoire et la classe mutation qui mis a jour et affiche le nouveau individu.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    public class individu implements constant {
    	Random random = new Random();
    	double[] parent = new double[2];
    	double[] stepSize = new double[1];
     
    	//===============crrer vecteur initial============
    	public individu(){
    		System.out.print("[");
    		for (int i=0; i<parent.length; i++) {
    			parent[i]= range();
    			System.out.print(parent[i]);
    			System.out.print("  ");
    		}
    		System.out.print("]   ");
    		for(int i=0; i<stepSize.length; i++) {
    			stepSize[i]=random.nextDouble();
    			System.out.println("step size  "+ stepSize[i]);
    		}
    	}
    voila la classe mutation qui returne toujours l'individu initiale
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    public class mutation implements constant {
     
    	public static individu mutate(individu parent) {
    		individu fils = new individu();
    		fils.stepSize= parent.stepSize;
     
    		for (int i=0; i<fils.stepSize.length; i++) {
    			fils.stepSize[i]= fils.stepSize[i] * Math.exp(MUTATION_T_N * random.nextGaussian());
    			System.out.println(fils.stepSize[i]);
    			}
     
     
    		for(int i=0; i<NUMBER_OF_DIMENSION; i++) {
    			fils.parent[i]=fils.parent[i] + random.nextGaussian()*fils.stepSize[0];
    		}
    		 return fils;	// j'attend le nouveau individu
                    }
     
    }
    Aprés l'exécution je reçois aucune mise a jour de l'individu créer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public class run {
     
    	public static void main(String[] args) {
    		// creer un objet individu
    		individu vector = new individu();
    		vector.setFitness();
    		mutation.mutate(vector);
    		}
     
    }
    Merci d'avance ))

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 552
    Points : 21 608
    Points
    21 608
    Par défaut
    Hello,

    C'est quoi exactement, "recevoir une mise à jour" ? Tu voudrais qu'il se passe quoi, et tu observes quoi à la place de ça ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Février 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Février 2011
    Messages : 40
    Points : 37
    Points
    37
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Hello,

    C'est quoi exactement, "recevoir une mise à jour" ? Tu voudrais qu'il se passe quoi, et tu observes quoi à la place de ça ?
    la classe indivu crée un vecteur aléatoire en entrée et je veux avoir en sortie un autre vecteur grâce a la méthode mutate de la classe mutation.
    ex: vecteur généré [3, 2, 1] et le pas de mutation [5] ===> nouveau vecteur [3+5, 2+5, 1+5]

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 552
    Points : 21 608
    Points
    21 608
    Par défaut
    Je t'ai demandé ce que tu observes. Comment sais-tu que tu n'as pas déjà exactement ce que tu veux avoir ?

    Je vois juste un appel de mutate() qui ne fait rien ensuite. Si tu ne fais rien, alors rien ne se passe, et si rien ne se passe tu n'as aucune information, donc il est impossible que tu saches si mutate() a fait ou pas ce que tu voulais que ça fasse.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Février 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Février 2011
    Messages : 40
    Points : 37
    Points
    37
    Par défaut
    Citation Envoyé par thelvin Voir le message

    Je vois juste un appel de mutate() qui ne fait rien ensuite. Si tu ne fais rien, alors rien ne se passe, et si rien ne se passe tu n'as aucune information, donc il est impossible que tu saches si mutate() a fait ou pas ce que tu voulais que ça fasse.
    Merci Monsieur pour votre réponse peut être que je vous ai mal expliqué, mais comme il est clair dans ma classe mutation , la méthode mutate() prend l'objet parent comme argument et puis elle le fait évoluer par les deux boucles.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    public class mutation implements constant {
     
    	public static individu mutate(individu parent) {
    		individu fils = new individu();
    		fils.stepSize= parent.stepSize;
     
    		for (int i=0; i<fils.stepSize.length; i++) {
    			fils.stepSize[i]= fils.stepSize[i] * Math.exp(MUTATION_T_N * random.nextGaussian());
    			System.out.println(fils.stepSize[i]);
    			}
     
     
    		for(int i=0; i<NUMBER_OF_DIMENSION; i++) {
    			fils.parent[i]=fils.parent[i] + random.nextGaussian()*fils.stepSize[0];
    		}
    		 return fils;	// j'attend le nouveau individu avec les nouvelles modifications stepSize[] et parent[]
                    }
     
    }
    J'espere que vous m'avez compris?

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 552
    Points : 21 608
    Points
    21 608
    Par défaut
    Citation Envoyé par fortman1987 Voir le message
    J'espere que vous m'avez compris?
    Non, toujours pas. Depuis le début je te demande ce que tu veux et ce qui ne te plaît pas. Et toi à la place, tu me montres le code que tu as.
    Ce n'est pas ma question, et donc pas une réponse. C'est très bien de montrer le code, il faut. Mais la première fois suffisait.

    Maintenant il faut que tu nous montres de quoi tu te plains.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Méthode qui ne retourne pas la bonne valeur
    Par clubiste1920 dans le forum Débuter avec Java
    Réponses: 15
    Dernier message: 31/03/2011, 17h14
  2. Réponses: 9
    Dernier message: 20/06/2010, 20h30
  3. [Applet]méthode reconnue...ou pas
    Par Vieux_Lars dans le forum Applets
    Réponses: 8
    Dernier message: 15/02/2006, 06h11
  4. Query Contains dans Full-Text qui ne retourne pas de valeurs
    Par icebe dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 08/02/2006, 14h04
  5. [VB.NET] DataSet qui ne retourne pas de résultat
    Par Lois dans le forum Windows Forms
    Réponses: 4
    Dernier message: 02/06/2004, 17h07

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