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:
avec E, a, d, et B sont des matrices déjà connu d'avance.
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
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
Partager