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

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Mars 2011
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Mars 2011
    Messages : 76
    Points : 35
    Points
    35
    Par défaut génération des permutations seulement qui respectent des contraintes entre tout couple d'éléments des lignes
    Bonjour, SVP j'ai un petit problème et j'ai besoin de votre aide.
    en faite je veux générer des lignes qui sont des permutations différentes de 1 à n dont il ya trois contraintes à respecter qui doivent existent entre tout couple d'éléments de chaque ligne.
    alors j'ai fait le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    n=5;
    b=perms(1:n);
    for i=size(b,1):-1:1
        for j=size(n-1,1):-1:1
            if (E(b(i,j))>=a(b(i,j+1))|(d(b(i,j)>=d(b(i,j+1))))|(B(b(i,j))>=B(b(i,j+1))))
                b(i,:)=[];
            end
        end
    end
    avec E, a, d, et B sont des matrices déjà connu d'avance.
    j'ai crée toutes les permutations possibles de 1 à n, puis on a supprimé les lignes qui ne respectent pas les trois contraintes.
    il est connu que la fonction "perms" est couteuse en temps de calcul surtout avec n grande.
    SVP ya t-il une autre méthode où on peut générer directement et seulement les lignes qui respectent les contraintes

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Bonjour
    Citation Envoyé par sophielow Voir le message
    il ya trois contraintes à respecter qui doivent existent entre tout couple d'éléments de chaque ligne.
    Dans le code que tu montres, tu ne tiens pas compte de tout les éléments d'une ligne, est-ce normal?

    size(n-1,1) renvoie toujours 1 car n est un scalaire.
    Tu ne peux pas supprimer les lignes à l'intérieur des boucles car tu modifies alors la taille de ton tableau, et tu auras une erreur au niveau des indices. Une solution est de conserver dans un vecteur les numéros des lignes à supprimer et de les supprimer après les boucles.

    Citation Envoyé par sophielow Voir le message
    SVP ya t-il une autre méthode où on peut générer directement et seulement les lignes qui respectent les contraintes
    Si tes contraintes portent sur tout les éléments d'une ligne, comment savoir si ces contraintes sont respectées sans la générer?
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

Discussions similaires

  1. Réponses: 3
    Dernier message: 06/05/2014, 21h48
  2. Réponses: 1
    Dernier message: 02/05/2011, 20h46
  3. Génération d'un lien qui ouvre la boite mail notes des utilisateurs
    Par Kakashi_sensei dans le forum Lotus Notes
    Réponses: 3
    Dernier message: 06/11/2010, 17h52
  4. Réponses: 15
    Dernier message: 22/07/2005, 10h49
  5. Des fichiers inexistants qui existent pourtant !
    Par iubito dans le forum Applications et environnements graphiques
    Réponses: 3
    Dernier message: 07/09/2004, 11h29

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