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

MATLAB Discussion :

Mutation dans un algorithme génétique


Sujet :

MATLAB

  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : Dominique Rep.

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2014
    Messages : 100
    Points : 47
    Points
    47
    Par défaut Mutation dans un algorithme génétique
    Bonsoir à toute la famille du forum. Je travaille sur un algorithme génétique.
    Je dispose d'un chromosome suivant P=|1|2|5|5|6| dont la longueur est L=5 et les valeurs séparées désignent les gènes. Pi est le (i+1)ième gène de P avec i appartenant à [0;L-1].
    J'aimerai avoir un algorithme qui choisit au hasard 2 nombres entiers i,j appartenant à [0;L-1] (tel que i est différent de j). Ensuite il prend pj et l'insère avant pi si j>i;prend pi et l'insère avant pj si i>j. Je précise aussi que la probabilité de mutation est 1.

    Je suis trop impatient de cet algorithme.

    Merci de votre de compréhension

  2. #2
    Membre éprouvé
    Avatar de soft001
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2008
    Messages
    409
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 409
    Points : 1 146
    Points
    1 146
    Par défaut
    Tu peux peut être regarder cette solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    L=5;
    P=1:L+1
    IJ = randperm(L+1,2)
    insert = @(InsertElement, Vect, Index)cat(2,  Vect(1:Index-1), InsertElement, Vect(Index:end));
    if IJ(2)>IJ(1) % diff(IJ)>0
        insert(P(IJ(2)), P, IJ(1)) 
    else
        insert(P(IJ(1)), P, IJ(2)) 
    end
    Si tu trouves ma réponse utile, n'oublies pas de voter pour ce me message

  3. #3
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : Dominique Rep.

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2014
    Messages : 100
    Points : 47
    Points
    47
    Par défaut
    Bonjour M. Soft001. J'ai essayé d'exécuter ce code mais MATLAB me renvoie cette erreur:

    ??? Error using ==> randperm
    Too many input arguments.
    
    Error in ==> muta at 3
    IJ = randperm(L+1,2)
    Mais je me rend compte que la longueur de P a changé et est maintenant 6 au lieu de 5. Mais je ne sais pas si j'ai mal formulé mon problème bon je vais essayer de le refaire:
    j'ai un chromosome de la forme P=|P0|P1|P2|P3|P4|de longueur L=5 ou P0,P1,P2,P3,P4 sont des gènes et Pi est le (i+1)ième gène de P avec i∈[0,L−1].
    Ma préoccupation est d'avoir un algorithme qui prend au hasard 2 entiers i,j∈[0,L−1] (i différent de j) et qui insère Pi avant Pj si i>j et insère Pj avant Pi si i<j.
    Merci de vous avoir été intéressé sur ce sujet et merci d'apporté plus d'éclaircissements. J'en ai vraiment besoin

  4. #4
    Membre éprouvé
    Avatar de soft001
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2008
    Messages
    409
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 409
    Points : 1 146
    Points
    1 146
    Par défaut
    ça n'affiche aucun message d'erreur !!!!!
    Si tu trouves ma réponse utile, n'oublies pas de voter pour ce me message

  5. #5
    Invité
    Invité(e)
    Par défaut
    Problème de version peut-être, le deuxième paramètre n'a été introduit que dans la version 2011b (Cf. MATLAB Release Notes).

  6. #6
    Membre éprouvé
    Avatar de soft001
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2008
    Messages
    409
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 409
    Points : 1 146
    Points
    1 146
    Par défaut
    pour toi Winjerome
    Si tu trouves ma réponse utile, n'oublies pas de voter pour ce me message

  7. #7
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : Dominique Rep.

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2014
    Messages : 100
    Points : 47
    Points
    47
    Par défaut
    Bonsoir. M. Winjerome vous avez certainement raison je vais essayer avec des versions récentes moi j'utilise plutot la version 2008.
    En passant est-ce qu'il existe une fonction MATLAB qui choisit au hasard 2 nombres de tel qu'ils soient toujours distincts?
    Merci d'avance.

  8. #8
    Invité
    Invité(e)
    Par défaut
    Simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    r = randperm(L+1);
    IJ = r(1:2);

Discussions similaires

  1. calcul des fitness dans un algorithme génétique
    Par eric1708 dans le forum Intelligence artificielle
    Réponses: 2
    Dernier message: 15/12/2013, 13h17
  2. l'utilisation des shémas dans l'algorithme génétique
    Par mayouta dans le forum Intelligence artificielle
    Réponses: 0
    Dernier message: 19/02/2009, 02h40
  3. Les algorithmes génétiques
    Par fred9510 dans le forum Intelligence artificielle
    Réponses: 3
    Dernier message: 27/01/2005, 11h27
  4. Algorithme génétique
    Par senke dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 26/08/2002, 17h55
  5. Algorithme génétique
    Par Stephane.P_(dis Postef) dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 15/03/2002, 18h14

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