Kmean modifié pour trouver un barycentre de drone avec ses utilisateurs
Bonjour tout le monde, Je suis très fière d'être une nouvelle membre et débutante en programmation.
Donc dans cette algorithme de vient de trouver le barycentre des drones avec ses utilisateurs connectés et a chaque fois je mis à jours leurs matrice d'association et Eta(ij) dans une autre fonction (que j'ai initialisé les coordonnés à travers HPPP )
Si vous plait quelqu'un pourrait m'aider de me dire comment je fait le mise de ces 2 matrices dans l'autre fonction et comment je peux afficher ces groupes et les coordonnées de drones et est ce que ce programme est vrai ou non ?et merci d'avance en MATLAB
Code:
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 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
| function [cluster,center] = Placement(H,B)] = Placement(H,B)
global xu yu
%initialisation
e=length(B);
k = e ;%cardinal de B^A
numP = 3 ; %nombre des utilisateur
Xmax=1000; %X entre 0 et Xmax
Ymax=1000; %Y entre 0 et Ymax
y=3;
U=5;
%% Choose k data points as initial centroids
xP = Xmax * rand(1,numP); % position des drones aleatoires
yP = Ymax * rand(1,numP); % position des drones aleatoires
UAVspoints = [xP; yP]; %coordonées des drones
%% Repeat until number of iteration is reached or barycenter is inchangeabale
% init cluster array
cluster=zeros(3,5);
max_iteration=20;
% debut de programme Kmeans
for j=1:e
c=xP(j); %initialisation
b=yP(j);
res=0;
iteration=1;
while( res~=1 && (iteration < max_iteration) ) % boucle pour la convergence de Kmean
[Association,Eta]=Matching(H,B,xP(j),yP(j)); %update de Eta et Association par l'algorithme 1(Matching)
for j=1:e-1
c=0;
for i=1:U-1
if Association(i,j)==1 && Association(i+1,j)==1 % si un utilisateur est associer a une drone alor A(ij)=1
[~, clusterP] =; %je veux obtenir les indices des utilisateurs associés pour chaque drone
% debut de recherche de barycentre (il faut drones prendre sa position au barycentre des utilisateurs connecté a lui )
xP(j)=(xP(j)+xu(i))/length(c);
yP(j)=(yP(j)+yu(i))/length(c);
xP(j+1)=(xP(j+1)+xu(i+1))/length(c);
yP(j+1)=(yP(j+1)+yu(i+1))/length(c);
end;
% cette etape pour verifier que la drone est trouvé sa barycentre donc ses coordonnées ne changent pas
%(d'ou sortie de la boucle While)
if xP(j)~= yP(j+1) && yP(j)~=yP(j+1)
res=0;
else res =1;
end;
Center(j)=[xP(j); yP(j)];
end;
L=length(c);
cluster(1:L,j) = c';
end;
iteration = iteration + 1;
end
%affichage de coordonnés de tous les drones
end
end |