1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
N = 50; % Nombre de système à coloniser
Max = 100;
Origine = [Max/2, Max/2, 0];
ind = randperm(Max*Max);
[x,y] = ind2sub([Max Max],ind(1:N));
P = [x(:),y(:),zeros(N,1)];
% Algorithme
VectorO = zeros(N,3);
NormesO = zeros(N,1);
All_Best_ways = zeros(N,1);
for i = 1 : N
VectorO(i,1:2) = P(i,1:2) - Origine(1,1:2);
NormesO(i,1) = sqrt((VectorO(i,1))^2+(VectorO(i,2))^2);
end
Emplacement_Best_way = find(NormesO == min(NormesO(:)));
Best_way = min(NormesO);
All_Best_ways(1,1) = Best_way;
P(Emplacement_Best_way,3) = 1;
clear VectorO NormesO
Vector = zeros(N-1,3);
Normes = zeros(N-1,1);
for j = 2 : N
for i = 1 : N
if i ~= Emplacement_Best_way
if P(i,3) == 0
Vector(i,1:2) = P(i,1:2) - P(Emplacement_Best_way,1:2);
Normes(i) = sqrt((Vector(i,1))^2+(Vector(i,2))^2);
else
Normes(i) = inf;
end
else
Normes(i) = inf;
end
end
Emplacement_Best_way = find(Normes == min(Normes(:)));
Best_way = min(Normes);
All_Best_ways(j,1) = Best_way;
P(Emplacement_Best_way,3) = 1;
end |
Partager