bonjour,
je suis entrain de programmer problème d'optimisation de la maintenance préventive avec la technique du recuit simulé ,je veux parcourir cette matrice
je dois prendre une valeur aléatoire entre [1 20](colonne 2 et3) et ajouter le 7(colonne 4) à cette valeur ensuite soustraire 555 (colonne 1)de la somme totale de la première ligne(D1=sum(D(:,1))), ainsi de suite pour toute la matrice ,pour cela j'ai fait une boucle for pour la création d'une valeur aléatoire .
Code MATLAB : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 D=[555 1 20 7 10 10 5 5 5 5 3 555 10 20 5 10 10 10 5 5 zeros(1,2) 180 1 20 2 15 15 zeros(1,5) . . . 21 ]
et pour avoir la valeur souhaité j'ai fait
Code MATLAB : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 for i=1:Nsol for j=1:Nu;%Nu=21 et Nsol=1 nombre de solutions initiales pour recuit simulé Sol(i,j)=randi([EDR(1,j) EDR(2,j)],1); end end
sachant que N(i,j) est une matrice ligne contient 20 colonnes N=D1*ones(1,20).
Code MATLAB : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 idice=Sol(i,j):Sol(i,j)+D(:,4)-1 N(i,j)=N(i,j)-D(j,1);
mais le programme ne marche pas
comment dois je introduire l'indice dans la valeur souhaitée ?
merci
![]()
Partager